kind: CustomResourceDefinition
apiVersion: apiextensions.k8s.io/v1
metadata:
    name: volumesnapshotcontents.snapshot.storage.k8s.io
    selfLink: >-
        /apis/apiextensions.k8s.io/v1/customresourcedefinitions/volumesnapshotcontents.snapshot.storage.k8s.io
    uid: 8c00c785-ec7d-4de2-87c7-619013a46fa2
    resourceVersion: '223929790'
    generation: 1
    creationTimestamp: '2021-04-09T22:02:22Z'
    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":"volumesnapshotcontents.snapshot.storage.k8s.io"},"spec":{"group":"snapshot.storage.k8s.io","names":{"kind":"VolumeSnapshotContent","listKind":"VolumeSnapshotContentList","plural":"volumesnapshotcontents","singular":"volumesnapshotcontent"},"preserveUnknownFields":false,"scope":"Cluster","subresources":{"status":{}},"validation":{"openAPIV3Schema":{"description":"VolumeSnapshotContent
            represents the actual \"on-disk\" snapshot object in the underlying
            storage
            system","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 properties of a VolumeSnapshotContent created by the
            underlying storage system.
            Required.","properties":{"deletionPolicy":{"description":"deletionPolicy
            determines whether this VolumeSnapshotContent and its physical
            snapshot on the underlying storage system should be deleted when its
            bound VolumeSnapshot is deleted. Supported values are \"Retain\" and
            \"Delete\". \"Retain\" means that the VolumeSnapshotContent and its
            physical snapshot on underlying storage system are kept. \"Delete\"
            means that the VolumeSnapshotContent and its physical snapshot on
            underlying storage system are deleted. In dynamic snapshot creation
            case, this field will be filled in with the \"DeletionPolicy\" field
            defined in the VolumeSnapshotClass the VolumeSnapshot refers to. For
            pre-existing snapshots, users MUST specify this field when creating
            the VolumeSnapshotContent object.
            Required.","enum":["Delete","Retain"],"type":"string"},"driver":{"description":"driver
            is the name of the CSI driver used to create the physical snapshot
            on the underlying storage system. This MUST be the same as the name
            returned by the CSI GetPluginName() call for that driver.
            Required.","type":"string"},"source":{"description":"source
            specifies from where a snapshot will be created. This field is
            immutable after creation.
            Required.","properties":{"snapshotHandle":{"description":"snapshotHandle
            specifies the CSI \"snapshot_id\" of a pre-existing snapshot on the
            underlying storage system. This field is
            immutable.","type":"string"},"volumeHandle":{"description":"volumeHandle
            specifies the CSI \"volume_id\" of the volume from which a snapshot
            should be dynamically taken from. This field is
            immutable.","type":"string"}},"type":"object"},"volumeSnapshotClassName":{"description":"name
            of the VolumeSnapshotClass to which this snapshot
            belongs.","type":"string"},"volumeSnapshotRef":{"description":"volumeSnapshotRef
            specifies the VolumeSnapshot object to which this
            VolumeSnapshotContent object is bound.
            VolumeSnapshot.Spec.VolumeSnapshotContentName field must reference
            to this VolumeSnapshotContent's name for the bidirectional binding
            to be valid. For a pre-existing VolumeSnapshotContent object, name
            and namespace of the VolumeSnapshot object MUST be provided for
            binding to happen. This field is immutable after creation.
            Required.","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/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/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"}},"required":["deletionPolicy","driver","source","volumeSnapshotRef"],"type":"object"},"status":{"description":"status
            represents the current information of a
            snapshot.","properties":{"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 the creation time is
            unknown. The format of this field is a Unix nanoseconds time encoded
            as an int64. On Unix, the command `date +%s%N` returns the current
            time in nanoseconds since 1970-01-01 00:00:00
            UTC.","format":"int64","type":"integer"},"error":{"description":"error
            is the latest observed error during snapshot creation, if
            any.","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.","format":"int64","minimum":0,"type":"integer"},"snapshotHandle":{"description":"snapshotHandle
            is the CSI \"snapshot_id\" of a snapshot on the underlying storage
            system. If not specified, it indicates that dynamic snapshot
            creation has either failed or it is still in
            progress.","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: volumesnapshotcontents
        singular: volumesnapshotcontent
        kind: VolumeSnapshotContent
        listKind: VolumeSnapshotContentList
    scope: Cluster
    versions:
        -
            name: v1beta1
            served: true
            storage: true
            schema:
                openAPIV3Schema:
                    description: >-
                        VolumeSnapshotContent represents the actual "on-disk"
                        snapshot object in the underlying storage system
                    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 properties of a
                                VolumeSnapshotContent created by the underlying
                                storage system. Required.
                            type: object
                            required:
                                - deletionPolicy
                                - driver
                                - source
                                - volumeSnapshotRef
                            properties:
                                deletionPolicy:
                                    description: >-
                                        deletionPolicy determines whether this
                                        VolumeSnapshotContent and its physical
                                        snapshot on the underlying storage
                                        system should be deleted when its bound
                                        VolumeSnapshot is deleted. Supported
                                        values are "Retain" and "Delete".
                                        "Retain" means that the
                                        VolumeSnapshotContent and its physical
                                        snapshot on underlying storage system
                                        are kept. "Delete" means that the
                                        VolumeSnapshotContent and its physical
                                        snapshot on underlying storage system
                                        are deleted. In dynamic snapshot
                                        creation case, this field will be filled
                                        in with the "DeletionPolicy" field
                                        defined in the VolumeSnapshotClass the
                                        VolumeSnapshot refers to. For
                                        pre-existing snapshots, users MUST
                                        specify this field when creating the
                                        VolumeSnapshotContent object. Required.
                                    type: string
                                    enum:
                                        - Delete
                                        - Retain
                                driver:
                                    description: >-
                                        driver is the name of the CSI driver
                                        used to create the physical snapshot on
                                        the underlying storage system. This MUST
                                        be the same as the name returned by the
                                        CSI GetPluginName() call for that
                                        driver. Required.
                                    type: string
                                source:
                                    description: >-
                                        source specifies from where a snapshot
                                        will be created. This field is immutable
                                        after creation. Required.
                                    type: object
                                    properties:
                                        snapshotHandle:
                                            description: >-
                                                snapshotHandle specifies the CSI
                                                "snapshot_id" of a pre-existing snapshot
                                                on the underlying storage system. This
                                                field is immutable.
                                            type: string
                                        volumeHandle:
                                            description: >-
                                                volumeHandle specifies the CSI
                                                "volume_id" of the volume from which a
                                                snapshot should be dynamically taken
                                                from. This field is immutable.
                                            type: string
                                volumeSnapshotClassName:
                                    description: >-
                                        name of the VolumeSnapshotClass to which
                                        this snapshot belongs.
                                    type: string
                                volumeSnapshotRef:
                                    description: >-
                                        volumeSnapshotRef specifies the
                                        VolumeSnapshot object to which this
                                        VolumeSnapshotContent object is bound.
                                        VolumeSnapshot.Spec.VolumeSnapshotContentName
                                        field must reference to this
                                        VolumeSnapshotContent's name for the
                                        bidirectional binding to be valid. For a
                                        pre-existing VolumeSnapshotContent
                                        object, name and namespace of the
                                        VolumeSnapshot object MUST be provided
                                        for binding to happen. This field is
                                        immutable after creation. Required.
                                    type: object
                                    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/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/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
                        status:
                            description: >-
                                status represents the current information of a
                                snapshot.
                            type: object
                            properties:
                                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 the creation
                                        time is unknown. The format of this
                                        field is a Unix nanoseconds time encoded
                                        as an int64. On Unix, the command `date
                                        +%s%N` returns the current time in
                                        nanoseconds since 1970-01-01 00:00:00
                                        UTC.
                                    type: integer
                                    format: int64
                                error:
                                    description: >-
                                        error is the latest observed error
                                        during snapshot creation, if any.
                                    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: integer
                                    format: int64
                                    minimum: 0
                                snapshotHandle:
                                    description: >-
                                        snapshotHandle is the CSI "snapshot_id"
                                        of a snapshot on the underlying storage
                                        system. If not specified, it indicates
                                        that dynamic snapshot creation has
                                        either failed or it is still in
                                        progress.
                                    type: string
            subresources:
                status: {}
    conversion:
        strategy: None
status:
    conditions:
        -
            type: NamesAccepted
            status: 'True'
            lastTransitionTime: '2021-04-09T22:02:22Z'
            reason: NoConflicts
            message: no conflicts found
        -
            type: Established
            status: 'True'
            lastTransitionTime: '2021-04-09T22:02:22Z'
            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: volumesnapshotcontents
        singular: volumesnapshotcontent
        kind: VolumeSnapshotContent
        listKind: VolumeSnapshotContentList
    storedVersions:
        - v1beta1

