package v1beta2 import "time" // VolumeGroupSnapshot is a user's request for creating either a point-in-time // group snapshot or binding to a pre-existing group snapshot. #VolumeGroupSnapshot: { _embeddedResource // 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 apiVersion?: string // 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 kind?: string metadata?: {} // Spec defines the desired characteristics of a group snapshot requested by a user. // Required. spec!: { // Source specifies where a group snapshot will be created from. // This field is immutable after creation. // Required. source!: { // Selector is a label query over persistent volume claims that are to be // grouped together for snapshotting. // This labelSelector will be used to match the label added to a PVC. // If the label is added or removed to a volume after a group snapshot // is created, the existing group snapshots won't be modified. // Once a VolumeGroupSnapshotContent is created and the sidecar starts to process // it, the volume list will not change with retries. selector?: { // matchExpressions is a list of label selector requirements. The requirements are ANDed. matchExpressions?: [...{ // key is the label key that the selector applies to. key!: string // operator represents a key's relationship to a set of values. // Valid operators are In, NotIn, Exists and DoesNotExist. operator!: string // values is an array of string values. If the operator is In or NotIn, // the values array must be non-empty. If the operator is Exists or DoesNotExist, // the values array must be empty. This array is replaced during a strategic // merge patch. values?: [...string] }] // matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels // map is equivalent to an element of matchExpressions, whose key field is "key", the // operator is "In", and the values array contains only "value". The requirements are ANDed. matchLabels?: [string]: string } // VolumeGroupSnapshotContentName specifies the name of a pre-existing VolumeGroupSnapshotContent // object representing an existing volume group snapshot. // This field should be set if the volume group snapshot already exists and // only needs a representation in Kubernetes. // This field is immutable. volumeGroupSnapshotContentName?: string } // VolumeGroupSnapshotClassName is the name of the VolumeGroupSnapshotClass // requested by the VolumeGroupSnapshot. // VolumeGroupSnapshotClassName may be left nil to indicate that the default // class will be used. // Empty string is not allowed for this field. volumeGroupSnapshotClassName?: string } // Status represents the current information of a group snapshot. // Consumers must verify binding between VolumeGroupSnapshot and // VolumeGroupSnapshotContent objects is successful (by validating that both // VolumeGroupSnapshot and VolumeGroupSnapshotContent point to each other) before // using this object. status?: { // BoundVolumeGroupSnapshotContentName is the name of the VolumeGroupSnapshotContent // object to which this VolumeGroupSnapshot object intends to bind to. // If not specified, it indicates that the VolumeGroupSnapshot object has not // been successfully bound to a VolumeGroupSnapshotContent object yet. // NOTE: To avoid possible security issues, consumers must verify binding between // VolumeGroupSnapshot and VolumeGroupSnapshotContent objects is successful // (by validating that both VolumeGroupSnapshot and VolumeGroupSnapshotContent // point at each other) before using this object. boundVolumeGroupSnapshotContentName?: string // CreationTime is the timestamp when the point-in-time group snapshot is taken // by the underlying storage system. // If not specified, it may indicate that the creation time of the group snapshot // is unknown. // This field is updated based on the CreationTime field in VolumeGroupSnapshotContentStatus creationTime?: time.Time // Error is the last observed error during group 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 group // snapshot to be created based on the type of error reported. // The snapshot controller will keep retrying when an error occurs during the // group snapshot creation. Upon success, this error field will be cleared. error?: { // 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. message?: string // time is the timestamp when the error was encountered. "time"?: time.Time } // ReadyToUse indicates if all the individual snapshots in the group are ready // to be used to restore a group of volumes. // ReadyToUse becomes true when ReadyToUse of all individual snapshots become true. // If not specified, it means the readiness of a group snapshot is unknown. readyToUse?: bool } _embeddedResource: { apiVersion!: string kind!: string metadata?: {...} } apiVersion: "groupsnapshot.storage.k8s.io/v1beta2" kind: "VolumeGroupSnapshot" metadata!: { name!: string namespace!: string labels?: [string]: string annotations?: [string]: string ... } }