kind: CustomResourceDefinition
apiVersion: apiextensions.k8s.io/v1
metadata:
    name: volumesnapshots.snapshot.storage.k8s.io
    selfLink: >-
        /apis/apiextensions.k8s.io/v1/customresourcedefinitions/volumesnapshots.snapshot.storage.k8s.io
    uid: 89ac65b4-b5d1-40b6-b8a5-aa25db76b930
    resourceVersion: '223929791'
    generation: 1
    creationTimestamp: '2021-04-09T22:02:23Z'
    labels:
        addonmanager.kubernetes.io/mode: Reconcile
    annotations:
        api-approved.kubernetes.io: 'https://github.com/kubernetes-csi/external-snapshotter/pull/139'
        components.gke.io/component-name: snapshot-controller-addon
        components.gke.io/component-version: 0.3.1
        components.gke.io/layer: addon
        controller-gen.kubebuilder.io/version: (devel)
        kubectl.kubernetes.io/last-applied-configuration: >
            {"apiVersion":"apiextensions.k8s.io/v1beta1","kind":"CustomResourceDefinition","metadata":{"annotations":{"api-approved.kubernetes.io":"https://github.com/kubernetes-csi/external-snapshotter/pull/139","components.gke.io/component-name":"snapshot-controller-addon","components.gke.io/component-version":"0.3.1","components.gke.io/layer":"addon","controller-gen.kubebuilder.io/version":"(devel)"},"creationTimestamp":null,"labels":{"addonmanager.kubernetes.io/mode":"Reconcile"},"name":"volumesnapshots.snapshot.storage.k8s.io"},"spec":{"group":"snapshot.storage.k8s.io","names":{"kind":"VolumeSnapshot","listKind":"VolumeSnapshotList","plural":"volumesnapshots","singular":"volumesnapshot"},"preserveUnknownFields":false,"scope":"Namespaced","subresources":{"status":{}},"validation":{"openAPIV3Schema":{"description":"VolumeSnapshot
            is a user's request for either creating a point-in-time snapshot of
            a persistent volume, or binding to a pre-existing
            snapshot.","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/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/api-conventions.md#types-kinds","type":"string"},"spec":{"description":"spec
            defines the desired characteristics of a snapshot requested by a
            user. More info:
            https://kubernetes.io/docs/concepts/storage/volume-snapshots#volumesnapshots
            Required.","properties":{"source":{"description":"source specifies
            where a snapshot will be created from. This field is immutable after
            creation.
            Required.","properties":{"persistentVolumeClaimName":{"description":"persistentVolumeClaimName
            specifies the name of the PersistentVolumeClaim object in the same
            namespace as the VolumeSnapshot object where the snapshot should be
            dynamically taken from. This field is
            immutable.","type":"string"},"volumeSnapshotContentName":{"description":"volumeSnapshotContentName
            specifies the name of a pre-existing VolumeSnapshotContent object.
            This field is
            immutable.","type":"string"}},"type":"object"},"volumeSnapshotClassName":{"description":"volumeSnapshotClassName
            is the name of the VolumeSnapshotClass requested by the
            VolumeSnapshot. If not specified, the default snapshot class will be
            used if one exists. If not specified, and there is no default
            snapshot class, dynamic snapshot creation will fail. Empty string is
            not allowed for this field. TODO(xiangqian): a webhook validation on
            empty string. More info:
            https://kubernetes.io/docs/concepts/storage/volume-snapshot-classes","type":"string"}},"required":["source"],"type":"object"},"status":{"description":"status
            represents the current information of a snapshot. NOTE: status can
            be modified by sources other than system controllers, and must not
            be depended upon for accuracy. Controllers should only use
            information from the VolumeSnapshotContent object after verifying
            that the binding is accurate and
            complete.","properties":{"boundVolumeSnapshotContentName":{"description":"boundVolumeSnapshotContentName
            represents the name of the VolumeSnapshotContent object to which the
            VolumeSnapshot object is bound. If not specified, it indicates that
            the VolumeSnapshot object has not been successfully bound to a
            VolumeSnapshotContent object yet. NOTE: Specified
            boundVolumeSnapshotContentName alone does not mean binding       is
            valid. Controllers MUST always verify bidirectional binding
            between       VolumeSnapshot and VolumeSnapshotContent to avoid
            possible security
            issues.","type":"string"},"creationTime":{"description":"creationTime
            is the timestamp when the point-in-time snapshot is taken by the
            underlying storage system. In dynamic snapshot creation case, this
            field will be filled in with the \"creation_time\" value returned
            from CSI \"CreateSnapshotRequest\" gRPC call. For a pre-existing
            snapshot, this field will be filled with the \"creation_time\" value
            returned from the CSI \"ListSnapshots\" gRPC call if the driver
            supports it. If not specified, it indicates that the creation time
            of the snapshot is
            unknown.","format":"date-time","type":"string"},"error":{"description":"error
            is the last observed error during snapshot creation, if any. This
            field could be helpful to upper level controllers(i.e., application
            controller) to decide whether they should continue on waiting for
            the snapshot to be created based on the type of error
            reported.","properties":{"message":{"description":"message is a
            string detailing the encountered error during snapshot creation if
            specified. NOTE: message may be logged, and it should not contain
            sensitive information.","type":"string"},"time":{"description":"time
            is the timestamp when the error was
            encountered.","format":"date-time","type":"string"}},"type":"object"},"readyToUse":{"description":"readyToUse
            indicates if a snapshot is ready to be used to restore a volume. In
            dynamic snapshot creation case, this field will be filled in with
            the \"ready_to_use\" value returned from CSI
            \"CreateSnapshotRequest\" gRPC call. For a pre-existing snapshot,
            this field will be filled with the \"ready_to_use\" value returned
            from the CSI \"ListSnapshots\" gRPC call if the driver supports it,
            otherwise, this field will be set to \"True\". If not specified, it
            means the readiness of a snapshot is
            unknown.","type":"boolean"},"restoreSize":{"description":"restoreSize
            represents the complete size of the snapshot in bytes. In dynamic
            snapshot creation case, this field will be filled in with the
            \"size_bytes\" value returned from CSI \"CreateSnapshotRequest\"
            gRPC call. For a pre-existing snapshot, this field will be filled
            with the \"size_bytes\" value returned from the CSI
            \"ListSnapshots\" gRPC call if the driver supports it. When
            restoring a volume from this snapshot, the size of the volume MUST
            NOT be smaller than the restoreSize if it is specified, otherwise
            the restoration will fail. If not specified, it indicates that the
            size is
            unknown.","type":"string"}},"type":"object"}},"required":["spec"],"type":"object"}},"version":"v1beta1","versions":[{"name":"v1beta1","served":true,"storage":true}]}}
spec:
    group: snapshot.storage.k8s.io
    names:
        plural: volumesnapshots
        singular: volumesnapshot
        kind: VolumeSnapshot
        listKind: VolumeSnapshotList
    scope: Namespaced
    versions:
        -
            name: v1beta1
            served: true
            storage: true
            schema:
                openAPIV3Schema:
                    description: >-
                        VolumeSnapshot is a user's request for either creating a
                        point-in-time snapshot of a persistent volume, or
                        binding to a pre-existing snapshot.
                    type: object
                    required:
                        - spec
                    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/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/api-conventions.md#types-kinds
                            type: string
                        spec:
                            description: >-
                                spec defines the desired characteristics of a
                                snapshot requested by a user. More info:
                                https://kubernetes.io/docs/concepts/storage/volume-snapshots#volumesnapshots
                                Required.
                            type: object
                            required:
                                - source
                            properties:
                                source:
                                    description: >-
                                        source specifies where a snapshot will
                                        be created from. This field is immutable
                                        after creation. Required.
                                    type: object
                                    properties:
                                        persistentVolumeClaimName:
                                            description: >-
                                                persistentVolumeClaimName specifies the
                                                name of the PersistentVolumeClaim object
                                                in the same namespace as the
                                                VolumeSnapshot object where the snapshot
                                                should be dynamically taken from. This
                                                field is immutable.
                                            type: string
                                        volumeSnapshotContentName:
                                            description: >-
                                                volumeSnapshotContentName specifies the
                                                name of a pre-existing
                                                VolumeSnapshotContent object. This field
                                                is immutable.
                                            type: string
                                volumeSnapshotClassName:
                                    description: >-
                                        volumeSnapshotClassName is the name of
                                        the VolumeSnapshotClass requested by the
                                        VolumeSnapshot. If not specified, the
                                        default snapshot class will be used if
                                        one exists. If not specified, and there
                                        is no default snapshot class, dynamic
                                        snapshot creation will fail. Empty
                                        string is not allowed for this field.
                                        TODO(xiangqian): a webhook validation on
                                        empty string. More info:
                                        https://kubernetes.io/docs/concepts/storage/volume-snapshot-classes
                                    type: string
                        status:
                            description: >-
                                status represents the current information of a
                                snapshot. NOTE: status can be modified by
                                sources other than system controllers, and must
                                not be depended upon for accuracy. Controllers
                                should only use information from the
                                VolumeSnapshotContent object after verifying
                                that the binding is accurate and complete.
                            type: object
                            properties:
                                boundVolumeSnapshotContentName:
                                    description: >-
                                        boundVolumeSnapshotContentName
                                        represents the name of the
                                        VolumeSnapshotContent object to which
                                        the VolumeSnapshot object is bound. If
                                        not specified, it indicates that the
                                        VolumeSnapshot object has not been
                                        successfully bound to a
                                        VolumeSnapshotContent object yet. NOTE:
                                        Specified boundVolumeSnapshotContentName
                                        alone does not mean binding       is
                                        valid. Controllers MUST always verify
                                        bidirectional binding between      
                                        VolumeSnapshot and VolumeSnapshotContent
                                        to avoid possible security issues.
                                    type: string
                                creationTime:
                                    description: >-
                                        creationTime is the timestamp when the
                                        point-in-time snapshot is taken by the
                                        underlying storage system. In dynamic
                                        snapshot creation case, this field will
                                        be filled in with the "creation_time"
                                        value returned from CSI
                                        "CreateSnapshotRequest" gRPC call. For a
                                        pre-existing snapshot, this field will
                                        be filled with the "creation_time" value
                                        returned from the CSI "ListSnapshots"
                                        gRPC call if the driver supports it. If
                                        not specified, it indicates that the
                                        creation time of the snapshot is
                                        unknown.
                                    type: string
                                    format: date-time
                                error:
                                    description: >-
                                        error is the last observed error during
                                        snapshot creation, if any. This field
                                        could be helpful to upper level
                                        controllers(i.e., application
                                        controller) to decide whether they
                                        should continue on waiting for the
                                        snapshot to be created based on the type
                                        of error reported.
                                    type: object
                                    properties:
                                        message:
                                            description: >-
                                                message is a string detailing the
                                                encountered error during snapshot
                                                creation if specified. NOTE: message may
                                                be logged, and it should not contain
                                                sensitive information.
                                            type: string
                                        time:
                                            description: >-
                                                time is the timestamp when the error was
                                                encountered.
                                            type: string
                                            format: date-time
                                readyToUse:
                                    description: >-
                                        readyToUse indicates if a snapshot is
                                        ready to be used to restore a volume. In
                                        dynamic snapshot creation case, this
                                        field will be filled in with the
                                        "ready_to_use" value returned from CSI
                                        "CreateSnapshotRequest" gRPC call. For a
                                        pre-existing snapshot, this field will
                                        be filled with the "ready_to_use" value
                                        returned from the CSI "ListSnapshots"
                                        gRPC call if the driver supports it,
                                        otherwise, this field will be set to
                                        "True". If not specified, it means the
                                        readiness of a snapshot is unknown.
                                    type: boolean
                                restoreSize:
                                    description: >-
                                        restoreSize represents the complete size
                                        of the snapshot in bytes. In dynamic
                                        snapshot creation case, this field will
                                        be filled in with the "size_bytes" value
                                        returned from CSI
                                        "CreateSnapshotRequest" gRPC call. For a
                                        pre-existing snapshot, this field will
                                        be filled with the "size_bytes" value
                                        returned from the CSI "ListSnapshots"
                                        gRPC call if the driver supports it.
                                        When restoring a volume from this
                                        snapshot, the size of the volume MUST
                                        NOT be smaller than the restoreSize if
                                        it is specified, otherwise the
                                        restoration will fail. If not specified,
                                        it indicates that the size is unknown.
                                    type: string
            subresources:
                status: {}
    conversion:
        strategy: None
status:
    conditions:
        -
            type: NamesAccepted
            status: 'True'
            lastTransitionTime: '2021-04-09T22:02:23Z'
            reason: NoConflicts
            message: no conflicts found
        -
            type: Established
            status: 'True'
            lastTransitionTime: '2021-04-09T22:02:23Z'
            reason: InitialNamesAccepted
            message: the initial names have been accepted
        -
            type: KubernetesAPIApprovalPolicyConformant
            status: 'True'
            lastTransitionTime: '2021-04-09T22:02:23Z'
            reason: ApprovedAnnotation
            message: >-
                approved in
                https://github.com/kubernetes-csi/external-snapshotter/pull/139
    acceptedNames:
        plural: volumesnapshots
        singular: volumesnapshot
        kind: VolumeSnapshot
        listKind: VolumeSnapshotList
    storedVersions:
        - v1beta1

