apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
  name: scheduledvirusscans.av.mittwald.de
spec:
  group: av.mittwald.de
  names:
    kind: ScheduledVirusScan
    listKind: ScheduledVirusScanList
    plural: scheduledvirusscans
    shortNames:
    - svs
    singular: scheduledvirusscan
  scope: Namespaced
  versions:
  - additionalPrinterColumns:
    - description: The schedule after which the virus scan should be scheduled
      jsonPath: .spec.schedule
      name: Schedule
      type: string
    - description: The latest scan created from this scheduled scan
      jsonPath: .status.lastScheduledScan.name
      name: Last scan
      type: string
    - description: Tells when this scan was last scheduled
      jsonPath: .status.lastScheduledTime
      name: Last scheduled
      type: date
    - jsonPath: .metadata.creationTimestamp
      name: Age
      type: date
    name: v1beta1
    schema:
      openAPIV3Schema:
        description: ScheduledVirusScan is the Schema for the scheduledvirusscans
          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: ScheduledVirusScanSpec defines the desired state of ScheduledVirusScan
            properties:
              historySize:
                description: HistorySize is the amount of VirusScan jobs that should
                  be kept after completion.
                type: integer
              schedule:
                description: Schedule is a crontab schedule that describes how often
                  a VirusScan resource should be created.
                type: string
              template:
                description: Template is the template for the actual VirusScan object.
                properties:
                  metadata:
                    type: object
                  spec:
                    description: VirusScanSpec defines the desired state of VirusScan
                    properties:
                      engine:
                        description: Engine describes which AV engine should be used
                          for the virus scan. May be left empty, in which case the
                          default engine (probably ClamAV) will be used.
                        type: string
                      resources:
                        description: Resources define the resource requirements that
                          should be allocated for the scanner Pod. May be left empty,
                          in which case KubeAV will use some default resource requirements.
                        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-compute-resources-container/'
                            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.
                              More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/'
                            type: object
                        type: object
                      serviceAccountName:
                        description: ServiceAccountName specified the name of the
                          service account that should be used for the actual scanning
                          containers. If left empty, this will fall back to a default
                          value.
                        type: string
                      targets:
                        description: Targets defines which directories to scan.
                        items:
                          properties:
                            excludeDirectories:
                              description: ExcludeDirectories is a list of regular
                                expressions that is used for excluding directories
                                from scanning.
                              items:
                                type: string
                              type: array
                            excludeFiles:
                              description: ExcludeFiles is a list of regular expressions
                                that is used for excluding files from scanning.
                              items:
                                type: string
                              type: array
                            mountPath:
                              type: string
                            subPath:
                              type: string
                            volume:
                              description: Represents the source of a volume to mount.
                                Only one of its members may be specified.
                              properties:
                                awsElasticBlockStore:
                                  description: 'AWSElasticBlockStore represents an
                                    AWS Disk resource that is attached to a kubelet''s
                                    host machine and then exposed to the pod. More
                                    info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore'
                                  properties:
                                    fsType:
                                      description: '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
                                        TODO: how do we prevent errors in the filesystem
                                        from compromising the machine'
                                      type: string
                                    partition:
                                      description: '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: 'Specify "true" to force and set
                                        the ReadOnly property in VolumeMounts to "true".
                                        If omitted, the default is "false". More info:
                                        https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore'
                                      type: boolean
                                    volumeID:
                                      description: '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.
                                  properties:
                                    cachingMode:
                                      description: 'Host Caching mode: None, Read
                                        Only, Read Write.'
                                      type: string
                                    diskName:
                                      description: The Name of the data disk in the
                                        blob storage
                                      type: string
                                    diskURI:
                                      description: The URI the data disk in the blob
                                        storage
                                      type: string
                                    fsType:
                                      description: 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: 'Expected values 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:
                                      description: 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.
                                  properties:
                                    readOnly:
                                      description: Defaults to false (read/write).
                                        ReadOnly here will force the ReadOnly setting
                                        in VolumeMounts.
                                      type: boolean
                                    secretName:
                                      description: the name of secret that contains
                                        Azure Storage Account Name and Key
                                      type: string
                                    shareName:
                                      description: 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
                                  properties:
                                    monitors:
                                      description: '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
                                    path:
                                      description: 'Optional: Used as the mounted
                                        root, rather than the full Ceph tree, default
                                        is /'
                                      type: string
                                    readOnly:
                                      description: '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: '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: '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:
                                          description: 'Name of the referent. More
                                            info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
                                            TODO: Add other useful fields. apiVersion,
                                            kind, uid?'
                                          type: string
                                      type: object
                                    user:
                                      description: '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.
                                    More info: https://examples.k8s.io/mysql-cinder-pd/README.md'
                                  properties:
                                    fsType:
                                      description: '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: 'Optional: 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: 'Optional: points to a secret object
                                        containing parameters used to connect to OpenStack.'
                                      properties:
                                        name:
                                          description: 'Name of the referent. More
                                            info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
                                            TODO: Add other useful fields. apiVersion,
                                            kind, uid?'
                                          type: string
                                      type: object
                                    volumeID:
                                      description: 'volume id 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: 'Optional: mode bits to use on
                                        created files by default. Must be a value
                                        between 0 and 0777. 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: 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: The key to project.
                                            type: string
                                          mode:
                                            description: 'Optional: mode bits to use
                                              on this file, must be a value between
                                              0 and 0777. 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: 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
                                    name:
                                      description: 'Name of the referent. More info:
                                        https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
                                        TODO: Add other useful fields. apiVersion,
                                        kind, uid?'
                                      type: string
                                    optional:
                                      description: Specify whether the ConfigMap or
                                        its keys must be defined
                                      type: boolean
                                  type: object
                                csi:
                                  description: CSI (Container Storage Interface) represents
                                    storage that is handled by an external CSI driver
                                    (Alpha feature).
                                  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: Filesystem type 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:
                                          description: 'Name of the referent. More
                                            info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
                                            TODO: Add other useful fields. apiVersion,
                                            kind, uid?'
                                          type: string
                                      type: object
                                    readOnly:
                                      description: 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 value
                                        between 0 and 0777. 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 and namespace 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
                                          mode:
                                            description: 'Optional: mode bits to use
                                              on this file, must be a value between
                                              0 and 0777. 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
                                        required:
                                        - path
                                        type: object
                                      type: array
                                  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: '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: '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: http://kubernetes.io/docs/user-guide/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
                                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: '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.
                                        TODO: how do we prevent errors in the filesystem
                                        from compromising the machine'
                                      type: string
                                    lun:
                                      description: 'Optional: FC target lun number'
                                      format: int32
                                      type: integer
                                    readOnly:
                                      description: 'Optional: Defaults to false (read/write).
                                        ReadOnly here will force the ReadOnly setting
                                        in VolumeMounts.'
                                      type: boolean
                                    targetWWNs:
                                      description: 'Optional: FC target worldwide
                                        names (WWNs)'
                                      items:
                                        type: string
                                      type: array
                                    wwids:
                                      description: '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
                                  type: object
                                flexVolume:
                                  description: FlexVolume represents a generic volume
                                    resource that is provisioned/attached using an
                                    exec based plugin.
                                  properties:
                                    driver:
                                      description: Driver is the name of the driver
                                        to use for this volume.
                                      type: string
                                    fsType:
                                      description: 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: 'Optional: Extra command options
                                        if any.'
                                      type: object
                                    readOnly:
                                      description: 'Optional: Defaults to false (read/write).
                                        ReadOnly here will force the ReadOnly setting
                                        in VolumeMounts.'
                                      type: boolean
                                    secretRef:
                                      description: '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:
                                          description: 'Name of the referent. More
                                            info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
                                            TODO: Add other useful fields. apiVersion,
                                            kind, uid?'
                                          type: string
                                      type: object
                                  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
                                  properties:
                                    datasetName:
                                      description: Name of the dataset stored as metadata
                                        -> name on the dataset for Flocker should
                                        be considered as deprecated
                                      type: string
                                    datasetUUID:
                                      description: 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. More
                                    info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk'
                                  properties:
                                    fsType:
                                      description: '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
                                        TODO: how do we prevent errors in the filesystem
                                        from compromising the machine'
                                      type: string
                                    partition:
                                      description: '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: '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: 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 URL
                                      type: string
                                    revision:
                                      description: 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. More
                                    info: https://examples.k8s.io/volumes/glusterfs/README.md'
                                  properties:
                                    endpoints:
                                      description: 'EndpointsName 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
                                    --- TODO(jonesdl) We need to restrict who can
                                    use host directory mounts and who can/can not
                                    mount host directories as read/write.'
                                  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
                                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: whether support iSCSI Discovery
                                        CHAP authentication
                                      type: boolean
                                    chapAuthSession:
                                      description: whether support iSCSI Session CHAP
                                        authentication
                                      type: boolean
                                    fsType:
                                      description: '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
                                        TODO: how do we prevent errors in the filesystem
                                        from compromising the machine'
                                      type: string
                                    initiatorName:
                                      description: 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: Target iSCSI Qualified Name.
                                      type: string
                                    iscsiInterface:
                                      description: iSCSI Interface Name that uses
                                        an iSCSI transport. Defaults to 'default'
                                        (tcp).
                                      type: string
                                    lun:
                                      description: iSCSI Target Lun number.
                                      format: int32
                                      type: integer
                                    portals:
                                      description: 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
                                    readOnly:
                                      description: ReadOnly here will force the ReadOnly
                                        setting in VolumeMounts. Defaults to false.
                                      type: boolean
                                    secretRef:
                                      description: CHAP Secret for iSCSI target and
                                        initiator authentication
                                      properties:
                                        name:
                                          description: 'Name of the referent. More
                                            info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
                                            TODO: Add other useful fields. apiVersion,
                                            kind, uid?'
                                          type: string
                                      type: object
                                    targetPortal:
                                      description: 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
                                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: 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
                                  properties:
                                    fsType:
                                      description: 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: 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
                                  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: 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: Items for all in one resources secrets,
                                    configmaps, and downward API
                                  properties:
                                    defaultMode:
                                      description: Mode bits to use on created files
                                        by default. Must be a value between 0 and
                                        0777. 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: list of volume projections
                                      items:
                                        description: Projection that may be projected
                                          along with other supported volume types
                                        properties:
                                          configMap:
                                            description: information about the configMap
                                              data to project
                                            properties:
                                              items:
                                                description: 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: The key to project.
                                                      type: string
                                                    mode:
                                                      description: 'Optional: mode
                                                        bits to use on this file,
                                                        must be a value between 0
                                                        and 0777. 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: 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
                                              name:
                                                description: 'Name of the referent.
                                                  More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
                                                  TODO: Add other useful fields. apiVersion,
                                                  kind, uid?'
                                                type: string
                                              optional:
                                                description: Specify whether the ConfigMap
                                                  or its keys must be defined
                                                type: boolean
                                            type: object
                                          downwardAPI:
                                            description: 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 and namespace
                                                        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
                                                    mode:
                                                      description: 'Optional: mode
                                                        bits to use on this file,
                                                        must be a value between 0
                                                        and 0777. 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
                                                  required:
                                                  - path
                                                  type: object
                                                type: array
                                            type: object
                                          secret:
                                            description: information about the secret
                                              data to project
                                            properties:
                                              items:
                                                description: 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: The key to project.
                                                      type: string
                                                    mode:
                                                      description: 'Optional: mode
                                                        bits to use on this file,
                                                        must be a value between 0
                                                        and 0777. 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: 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
                                              name:
                                                description: 'Name of the referent.
                                                  More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
                                                  TODO: Add other useful fields. apiVersion,
                                                  kind, uid?'
                                                type: string
                                              optional:
                                                description: Specify whether the Secret
                                                  or its key must be defined
                                                type: boolean
                                            type: object
                                          serviceAccountToken:
                                            description: 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
                                  required:
                                  - sources
                                  type: object
                                quobyte:
                                  description: Quobyte represents a Quobyte mount
                                    on the host that shares a pod's lifetime
                                  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.
                                    More info: https://examples.k8s.io/volumes/rbd/README.md'
                                  properties:
                                    fsType:
                                      description: '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
                                        TODO: how do we prevent errors in the filesystem
                                        from compromising the machine'
                                      type: string
                                    image:
                                      description: 'The rados image name. More info:
                                        https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it'
                                      type: string
                                    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: 'A collection of Ceph monitors.
                                        More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it'
                                      items:
                                        type: string
                                      type: array
                                    pool:
                                      description: '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:
                                          description: 'Name of the referent. More
                                            info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
                                            TODO: Add other useful fields. apiVersion,
                                            kind, uid?'
                                          type: string
                                      type: object
                                    user:
                                      description: '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.
                                  properties:
                                    fsType:
                                      description: 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: The host address of the ScaleIO
                                        API Gateway.
                                      type: string
                                    protectionDomain:
                                      description: The name of the ScaleIO Protection
                                        Domain for the configured storage.
                                      type: string
                                    readOnly:
                                      description: 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:
                                          description: 'Name of the referent. More
                                            info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
                                            TODO: Add other useful fields. apiVersion,
                                            kind, uid?'
                                          type: string
                                      type: object
                                    sslEnabled:
                                      description: Flag to enable/disable SSL communication
                                        with Gateway, default false
                                      type: boolean
                                    storageMode:
                                      description: Indicates whether the storage for
                                        a volume should be ThickProvisioned or ThinProvisioned.
                                        Default is ThinProvisioned.
                                      type: string
                                    storagePool:
                                      description: The ScaleIO Storage Pool associated
                                        with the protection domain.
                                      type: string
                                    system:
                                      description: The name of the storage system
                                        as configured in ScaleIO.
                                      type: string
                                    volumeName:
                                      description: 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: 'Optional: mode bits to use on
                                        created files by default. Must be a value
                                        between 0 and 0777. 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: 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: The key to project.
                                            type: string
                                          mode:
                                            description: 'Optional: mode bits to use
                                              on this file, must be a value between
                                              0 and 0777. 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: 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
                                    optional:
                                      description: Specify whether the Secret or its
                                        keys must be defined
                                      type: boolean
                                    secretName:
                                      description: '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.
                                  properties:
                                    fsType:
                                      description: 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: 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:
                                          description: 'Name of the referent. More
                                            info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
                                            TODO: Add other useful fields. apiVersion,
                                            kind, uid?'
                                          type: string
                                      type: object
                                    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
                                  properties:
                                    fsType:
                                      description: 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: Storage Policy Based Management
                                        (SPBM) profile ID associated with the StoragePolicyName.
                                      type: string
                                    storagePolicyName:
                                      description: Storage Policy Based Management
                                        (SPBM) profile name.
                                      type: string
                                    volumePath:
                                      description: Path that identifies vSphere volume
                                        vmdk
                                      type: string
                                  required:
                                  - volumePath
                                  type: object
                              type: object
                          required:
                          - volume
                          type: object
                        type: array
                    required:
                    - targets
                    type: object
                type: object
            required:
            - schedule
            - template
            type: object
          status:
            description: ScheduledVirusScanStatus defines the observed state of ScheduledVirusScan
            properties:
              lastScheduledScan:
                description: LastScheduledScan is a reference to the last VirusScan
                  object created from this ScheduledVirusScan instance.
                properties:
                  apiVersion:
                    description: API version of the referent.
                    type: string
                  fieldPath:
                    description: 'If referring to a piece of an object instead of
                      an entire object, this string should contain a valid JSON/Go
                      field access statement, such as desiredState.manifest.containers[2].
                      For example, if the object reference is to a container within
                      a pod, this would take on a value like: "spec.containers{name}"
                      (where "name" refers to the name of the container that triggered
                      the event) or if no container name is specified "spec.containers[2]"
                      (container with index 2 in this pod). This syntax is chosen
                      only to have some well-defined way of referencing a part of
                      an object. TODO: this design is not final and this field is
                      subject to change in the future.'
                    type: string
                  kind:
                    description: 'Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
                    type: string
                  name:
                    description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                    type: string
                  namespace:
                    description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/'
                    type: string
                  resourceVersion:
                    description: 'Specific resourceVersion to which this reference
                      is made, if any. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency'
                    type: string
                  uid:
                    description: 'UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids'
                    type: string
                type: object
              lastScheduledTime:
                description: LastScheduledTime is the time at which the last VirusScan
                  was scheduled
                format: date-time
                type: string
            type: object
        type: object
    served: true
    storage: true
    subresources:
      status: {}
