apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
  name: infinispans.infinispan.org
  labels:
    name: infinispan-operator
spec:
  group: infinispan.org
  names:
    kind: Infinispan
    listKind: InfinispanList
    plural: infinispans
    singular: infinispan
  scope: Namespaced
  versions:
    - name: v1
      schema:
        openAPIV3Schema:
          description: Infinispan is the Schema for the infinispans API
          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: InfinispanSpec defines the desired state of Infinispan
              properties:
                affinity:
                  description: Affinity is a group of affinity scheduling rules.
                  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
                                      required:
                                        - key
                                        - operator
                                      type: object
                                    type: array
                                  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
                                      required:
                                        - key
                                        - operator
                                      type: object
                                    type: array
                                type: object
                              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
                        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
                                      required:
                                        - key
                                        - operator
                                      type: object
                                    type: array
                                  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
                                      required:
                                        - key
                                        - operator
                                      type: object
                                    type: array
                                type: object
                              type: array
                          required:
                            - nodeSelectorTerms
                          type: object
                      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.
                                    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
                                          required:
                                            - key
                                            - operator
                                          type: object
                                        type: array
                                      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
                                  namespaces:
                                    description: namespaces specifies which namespaces the labelSelector applies to (matches against); null or empty list means "this pod's namespace"
                                    items:
                                      type: string
                                    type: array
                                  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
                        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.
                                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
                                      required:
                                        - key
                                        - operator
                                      type: object
                                    type: array
                                  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
                              namespaces:
                                description: namespaces specifies which namespaces the labelSelector applies to (matches against); null or empty list means "this pod's namespace"
                                items:
                                  type: string
                                type: array
                              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
                      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.
                                    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
                                          required:
                                            - key
                                            - operator
                                          type: object
                                        type: array
                                      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
                                  namespaces:
                                    description: namespaces specifies which namespaces the labelSelector applies to (matches against); null or empty list means "this pod's namespace"
                                    items:
                                      type: string
                                    type: array
                                  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
                        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.
                                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
                                      required:
                                        - key
                                        - operator
                                      type: object
                                    type: array
                                  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
                              namespaces:
                                description: namespaces specifies which namespaces the labelSelector applies to (matches against); null or empty list means "this pod's namespace"
                                items:
                                  type: string
                                type: array
                              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
                      type: object
                  type: object
                autoscale:
                  description: Autoscale describe autoscaling configuration for the cluster
                  properties:
                    disabled:
                      type: boolean
                    maxMemUsagePercent:
                      type: integer
                    maxReplicas:
                      format: int32
                      type: integer
                    minMemUsagePercent:
                      type: integer
                    minReplicas:
                      format: int32
                      type: integer
                  required:
                    - maxMemUsagePercent
                    - maxReplicas
                    - minMemUsagePercent
                    - minReplicas
                  type: object
                cloudEvents:
                  description: InfinispanCloudEvents describes how Infinispan is connected with Cloud Event, see Kafka docs for more info
                  properties:
                    acks:
                      description: Acks configuration for the producer ack-value
                      type: string
                    bootstrapServers:
                      description: BootstrapServers is comma separated list of boostrap server:port addresses
                      type: string
                    cacheEntriesTopic:
                      description: CacheEntriesTopic is the name of the topic on which events will be published
                      type: string
                  required:
                    - bootstrapServers
                  type: object
                container:
                  description: InfinispanContainerSpec specify resource requirements per container
                  properties:
                    cpu:
                      type: string
                    extraJvmOpts:
                      type: string
                    memory:
                      type: string
                  type: object
                dependencies:
                  description: External dependencies needed by the Infinispan cluster
                  properties:
                    artifacts:
                      items:
                        properties:
                          hash:
                            description: Checksum that you can use to verify downloaded files.
                            pattern: ^(sha1|sha224|sha256|sha384|sha512|md5):[a-z0-9]+
                            type: string
                          type:
                            description: Specifies the type of file you want to download. If not specified, the file type is automatically determined from the extension.
                            enum:
                              - file
                              - zip
                              - tgz
                            type: string
                          url:
                            description: URL of the file you want to download.
                            pattern: ^(https?|ftp)://[-a-zA-Z0-9+&@#/%?=~_|!:,.;]*[-a-zA-Z0-9+&@#/%=~_|]
                            type: string
                        required:
                          - url
                        type: object
                      type: array
                    volumeClaimName:
                      description: Name of the persistent volume claim with custom libraries
                      type: string
                  type: object
                expose:
                  description: ExposeSpec describe how Infinispan will be exposed externally
                  properties:
                    annotations:
                      additionalProperties:
                        type: string
                      type: object
                    host:
                      type: string
                    nodePort:
                      format: int32
                      type: integer
                    port:
                      format: int32
                      type: integer
                    type:
                      description: Type specifies different exposition methods for data grid
                      enum:
                        - NodePort
                        - LoadBalancer
                        - Route
                      type: string
                  required:
                    - type
                  type: object
                image:
                  type: string
                logging:
                  properties:
                    categories:
                      additionalProperties:
                        description: LoggingLevelType describe the logging level for selected category
                        enum:
                          - trace
                          - debug
                          - info
                          - warn
                          - error
                        type: string
                      type: object
                  type: object
                replicas:
                  format: int32
                  type: integer
                security:
                  description: InfinispanSecurity info for the user application connection
                  properties:
                    authorization:
                      properties:
                        enabled:
                          type: boolean
                        roles:
                          items:
                            properties:
                              name:
                                type: string
                              permissions:
                                items:
                                  type: string
                                type: array
                            required:
                              - name
                              - permissions
                            type: object
                          type: array
                      type: object
                    endpointAuthentication:
                      type: boolean
                    endpointEncryption:
                      description: EndpointEncryption configuration
                      properties:
                        certSecretName:
                          type: string
                        certServiceName:
                          type: string
                        clientCert:
                          description: ClientCertType specifies a client certificate validation mechanism.
                          enum:
                            - None
                            - Authenticate
                            - Validate
                          type: string
                        clientCertSecretName:
                          type: string
                        type:
                          description: CertificateSourceType specifies all the possible sources for the encryption certificate
                          enum:
                            - Service
                            - service
                            - Secret
                            - secret
                            - None
                          type: string
                      type: object
                    endpointSecretName:
                      type: string
                  type: object
                service:
                  description: InfinispanServiceSpec specify configuration for specific service
                  properties:
                    container:
                      description: InfinispanServiceContainerSpec resource requirements specific for service
                      properties:
                        ephemeralStorage:
                          type: boolean
                        storage:
                          type: string
                        storageClassName:
                          type: string
                      type: object
                    replicationFactor:
                      format: int32
                      type: integer
                    sites:
                      properties:
                        local:
                          properties:
                            expose:
                              description: CrossSiteExposeSpec describe how Infinispan Cross-Site service will be exposed externally
                              properties:
                                annotations:
                                  additionalProperties:
                                    type: string
                                  type: object
                                nodePort:
                                  format: int32
                                  type: integer
                                port:
                                  format: int32
                                  type: integer
                                type:
                                  description: Type specifies different exposition methods for data grid
                                  enum:
                                    - NodePort
                                    - LoadBalancer
                                    - ClusterIP
                                  type: string
                              required:
                                - type
                              type: object
                            name:
                              type: string
                          required:
                            - expose
                            - name
                          type: object
                        locations:
                          items:
                            properties:
                              clusterName:
                                type: string
                              host:
                                description: Deprecated and to be removed on subsequent release. Use .URL with infinispan+xsite schema instead.
                                type: string
                              name:
                                type: string
                              namespace:
                                type: string
                              port:
                                description: Deprecated and to be removed on subsequent release. Use .URL with infinispan+xsite schema instead.
                                format: int32
                                type: integer
                              secretName:
                                type: string
                              url:
                                pattern: (^(kubernetes|minikube|openshift):\/\/(([a-z0-9]|[a-z0-9][a-z0-9\-]*[a-z0-9])\.)*([a-z0-9]|[a-z0-9][a-z0-9\-]*[a-z0-9])*(:[0-9]+)+$)|(^(infinispan\+xsite):\/\/(([a-z0-9]|[a-z0-9][a-z0-9\-]*[a-z0-9])\.)*([a-z0-9]|[a-z0-9][a-z0-9\-]*[a-z0-9])*(:[0-9]+)*$)
                                type: string
                            required:
                              - name
                            type: object
                          type: array
                      required:
                        - local
                      type: object
                    type:
                      enum:
                        - DataGrid
                        - Cache
                      type: string
                  type: object
              required:
                - replicas
              type: object
            status:
              description: InfinispanStatus defines the observed state of Infinispan
              properties:
                conditions:
                  items:
                    description: InfinispanCondition define a condition of the cluster
                    properties:
                      message:
                        description: Human-readable message indicating details about last transition.
                        type: string
                      status:
                        description: Status is the status of the condition.
                        type: string
                      type:
                        description: Type is the type of the condition.
                        type: string
                    required:
                      - status
                      - type
                    type: object
                  type: array
                consoleUrl:
                  type: string
                podStatus:
                  properties:
                    ready:
                      description: Deployments are ready to serve requests
                      items:
                        type: string
                      type: array
                    starting:
                      description: Deployments are starting, may or may not succeed
                      items:
                        type: string
                      type: array
                    stopped:
                      description: Deployments are not starting, unclear what next step will be
                      items:
                        type: string
                      type: array
                  type: object
                replicasWantedAtRestart:
                  format: int32
                  type: integer
                security:
                  description: InfinispanSecurity info for the user application connection
                  properties:
                    authorization:
                      properties:
                        enabled:
                          type: boolean
                        roles:
                          items:
                            properties:
                              name:
                                type: string
                              permissions:
                                items:
                                  type: string
                                type: array
                            required:
                              - name
                              - permissions
                            type: object
                          type: array
                      type: object
                    endpointAuthentication:
                      type: boolean
                    endpointEncryption:
                      description: EndpointEncryption configuration
                      properties:
                        certSecretName:
                          type: string
                        certServiceName:
                          type: string
                        clientCert:
                          description: ClientCertType specifies a client certificate validation mechanism.
                          enum:
                            - None
                            - Authenticate
                            - Validate
                          type: string
                        clientCertSecretName:
                          type: string
                        type:
                          description: CertificateSourceType specifies all the possible sources for the encryption certificate
                          enum:
                            - Service
                            - service
                            - Secret
                            - secret
                            - None
                          type: string
                      type: object
                    endpointSecretName:
                      type: string
                  type: object
                statefulSetName:
                  type: string
              type: object
          type: object
      served: true
      storage: true
      subresources:
        status: {}
