KRM API backup.gdc.goog/v1

backup.gdc.goog/v1

Backup

Defines the schema for the Backup API.

Appears in: - BackupList

Field Description
apiVersion string backup.gdc.goog/v1
kind string Backup
metadata ObjectMeta Refer to Kubernetes API documentation for fields of metadata.
spec BackupSpec
status BackupStatus

BackupConfig

Represents an inner message type that defines the configuration of creating a backup from this backup plan.

Appears in: - BackupPlanSpec - BackupSpec

Field Description
backupScope BackupScope The resource selection scope of a backup. Examples include all_namespaces, selected namespaces, and selected applications. You must specify a single value for backup_scope. The BackupScope value must be one of the following types: BackupConfig_AllNamespaces, BackupConfig_SelectedNamespaces, or BackupConfig_SelectedApplications.
backupRepository string The name of the BackupRepository resource identifying the secondary storage for this BackupPlan resource.
includeVolumeData boolean Specifies whether volume data is backed up. If unset, the default is False.
includeSecrets boolean Specifies whether secrets are backed up. If unset, the default is False.
encryptionKey EncryptionKey An encryption key. This field is immutable.
volumeStrategy VolumeStrategy The tradeoffs to use when backing up volumes.

BackupInfo

Represents the name and state of a backup in the RecentBackups field .

Appears in: - BackupPlanStatus

Field Description
name string The name of the backup.
state BackupState The status of the most recently executed backup.

BackupList

Contains a list of backups.

Field Description
apiVersion string backup.gdc.goog/v1
kind string BackupList
metadata ListMeta Refer to Kubernetes API documentation for fields of metadata.
items Backup array

BackupPlan

Defines the schema for the BackupPlan API.

Appears in: - BackupPlanList

Field Description
apiVersion string backup.gdc.goog/v1
kind string BackupPlan
metadata ObjectMeta Refer to Kubernetes API documentation for fields of metadata.
spec BackupPlanSpec
status BackupPlanStatus

BackupPlanList

Contains a list of backup plans.

Field Description
apiVersion string backup.gdc.goog/v1
kind string BackupPlanList
metadata ListMeta Refer to Kubernetes API documentation for fields of metadata.
items BackupPlan array

BackupPlanSpec

Defines the desired state of a backup plan.

Appears in: - BackupPlan

Field Description
clusterName string The name of the cluster containing the data this backup plan backs up. By default, it is the cluster in which this backup plan is created.
backupSchedule Schedule The scheduled backup creation under this backup plan.
backupConfig BackupConfig The backup configuration of this backup plan.
retentionPolicy RetentionPolicy The lifecycle of backups created under this plan.
description string A user-specified descriptive string for this backup plan.
deactivated boolean Specifies whether the plan has been deactivated. Setting this field to 'True' locks the plan meaning no further updates are allowed, including changes to the deactivated field. It also prevents new backups from being created under this plan, both manually or scheduled. Default to 'False'.

BackupPlanStatus

Defines the observed state of a backup plan.

Appears in: - BackupPlan

Field Description
lastBackupTime Time The timestamp for the most recently executed backup.
nextBackupTime Time The timestamp for the next scheduled backup.
state State The current state of the backup plan.
lastBackupState BackupState The state of the most recently created backup.
lastBackupStateReason string A human-readable description of why the last backup is in the current state.
errorStatus ErrorStatus The most recent errors with the observed times included.
conditions Condition array Conditions represents the observations of this backup plan's current state.
recentBackups BackupInfo array The most recent backups created by the backup plan.

BackupRepository

Defines the schema for the BackupRepository API.

Appears in: - BackupRepositoryList

Field Description
apiVersion string backup.gdc.goog/v1
kind string BackupRepository
metadata ObjectMeta Refer to Kubernetes API documentation for fields of metadata.
spec BackupRepositorySpec
status BackupRepositoryStatus

BackupRepositoryList

Contains a list of backup repository resources.

Field Description
apiVersion string backup.gdc.goog/v1
kind string BackupRepositoryList
metadata ListMeta Refer to Kubernetes API documentation for fields of metadata.
items BackupRepository array

BackupRepositoryManager

BackupRepositoryManager is the Schema for the backuprepositorymanagers API

Appears in: - BackupRepositoryManagerList

Field Description
apiVersion string backup.gdc.goog/v1
kind string BackupRepositoryManager
metadata ObjectMeta Refer to Kubernetes API documentation for fields of metadata.
spec BackupRepositoryManagerSpec
status BackupRepositoryManagerStatus

BackupRepositoryManagerList

BackupRepositoryManagerList contains a list of BackupRepositoryManager

Field Description
apiVersion string backup.gdc.goog/v1
kind string BackupRepositoryManagerList
metadata ListMeta Refer to Kubernetes API documentation for fields of metadata.
items BackupRepositoryManager array

BackupRepositoryManagerSpec

BackupRepositoryManagerSpec defines the desired state of BackupRepositoryManager

Appears in: - BackupRepositoryManager

Field Description
backupRepositorySpec BackupRepositorySpec BackupRepositorySpec contains all the details needed to create a backup repository inside a user cluster. Note that the ImportPolicy field of the BackupRepositorySpec will not be honored here. The created BackupRepository will be "ReadWrite" if the cluster it is being created in is the ReadWriteCluster. It will be "ReadOnly" if the cluster it is being created in exists in the ReadOnlyClusters list. This field is immutable.
readWriteCluster NamespacedName ReadWriteCluster specifies the single cluster (baremetal.cluster.gke.io/Cluster) which has permission to create a ReadWrite backup repository using the data in the BackupRepositorySpec field. A ReadWrite repository can be used to schedule/create Backups, BackupPlans, and Restores, and is effectively owned by the cluster it is created in. NOTE: A BackupRepository can only be used as ReadWrite by at most one k8s cluster. This field is mutable.
readOnlyClusters NamespacedName array ReadOnlyClusters specifies the list of clusters (baremetal.cluster.gke.io/Cluster) which have permission to create a ReadOnly backup repository using the data in the BackupRepositorySpec field. A ReadOnly repository can only be used to import and view backups. No new backups/resources can be created in this repository, but restores can use and reference read-only backups for restoration. Intended to import backups from another cluster for a cross-cluster restore. There is no restriction on how often a BackupRepository can be used as ReadOnly. This field is mutable.

BackupRepositoryManagerStatus

BackupRepositoryManagerStatus defines the observed state of BackupRepositoryManager

Appears in: - BackupRepositoryManager

Field Description
backupCount integer BackupCount is the total number of backups that have been created inside the storage bucket that the BackupRepositorySpec points to.
backupPlanCount integer BackupPlanCount is the total number of backup plans that have been created inside the storage bucket that the BackupRepositorySpec points to.
restoreCount integer RestoreCount is the total number of restores that have been created inside the storage bucket that the BackupRepositorySpec points to.
restorePlanCount integer RestorePlanCount is the total number of restore plans that have been created inside the storage bucket that the BackupRepositorySpec points to.
clusterStatuses ClusterStatus array ClusterStatuses contains the current status in regard to creating the desired backup repository in each cluster. The list will contain an entry for all clusters specified in the ReadOnlyClusters list as well as the ReadWriteCluster. The backup repository being successfully created in a cluster is indicated by its entry in the ClusterStatuses array having the "Ready" condition as "True", otherwise it will be "False".
conditions Condition Conditions indicates whether or not the Backup Repository Manager and its created backup repositories are in a healthy state.
errorStatus ErrorStatus The most recent errors from reconciliation with the observed times included.

BackupRepositorySpec

Defines the desired state of the backup repository.

Appears in: - BackupRepository

Field Description
secretReference SecretReference A reference to an Access Secret which is dependent on your storage system of choice. This Secret is used requests to this endpoint. For example, an S3 Access Secret.
endpoint string The endpoint used to access the backup repository. In the case of Google Private Cloud, this is the S3 endpoint that provides access to the Tenant project.
type RepositoryType The type of the backup repository. For example, S3 or Google Cloud Storage. This tells the agent which storage system or API to use.
s3Options S3Options The data used for configuring access to an S3-compatible BackupRepo resource.
importPolicy ImportPolicy The policy that determines whether this backup repository is read-only or read-write.
importSubstitution ImportSubstitution This field determines whether to substitute the backup repository name of imported resources with this backup repository name.
force boolean Specifies the action that a read-write backup repository takes if the storage bucket that it is initialized with has already been claimed by a different backup repository. If True, the new backup repository still claims ownership of the storage bucket by replacing the existing sentinel file with its own sentinel file. If False, the creation of the new backup repository fails with an error. The default value is False. This must only be used if the sentinel file that is overridden no longer has a backup repository, otherwise that backup repository enters an error state which might cause undesired side effects.

BackupRepositoryStatus

Defines the observed state of a backup repository.

Appears in: - BackupRepository

Field Description
sentinelEtag string A field that connects a backup repository to the sentinel file that it owns.
reconciliationError ReconciliationError The errors that have occurred during the most recent reconciliation attempt for the backup repository.
reconciliationErrorMessage string The error messages that might have occurred during reconciliation.
errorStatus ErrorStatus The most recent errors from reconciliation with the observed times included.
initialImportDone boolean Specifies whether this backup repository has completed the initial import or not.
conditions Condition array Conditions represents the observations of this backup repository's current state. Known condition types: Ready.

BackupRetentionPolicy

Represents the retention policy for a Backup

Appears in: - ClusterBackupSpec

Field Description
deleteLockDays integer The number of days from the creation of this backup backup for which deletion is blocked. For backups created automatically from a backup schedule, this field is set to the value of ClusterBackupPlan.RetentionPolicy.backup_delete_block_days. For backups created manually that leave this field unspecified, the service assigns the value of ClusterBackupPlan.RetentionPolicy.backup_delete_block_days. If a backup is created where the value of this field is less than the value of ClusterBackupPlan.RetentionPolicy.backup_delete_block_days, an invalid response is returned from the service. This field must be an integer value between 0-90. This field must only be increased by an update request, or an invalid response is returned by the service. Note, this field only applies to backups with a Succeeded state.
retainDays integer The number of days to keep this cluster backup for, after which it is automatically deleted. This is calculated from the create_time of the cluster backup. If this field is not specified or set to 0, it means the backup is not automatically deleted. For cluster backups automatically created from a schedule, this field is assigned the value of ClusterBackupPlan.RetentionPolicy.backup_retain_days. For backups created manually that leave this field unspecified, the service assigns the value of ClusterBackupPlan.RetentionPolicy.backup_retain_days. If a backup is created where the value of this field is less than the value of delete_lock_days, an invalid response is returned by the service. This field must only be increased by an update request, or an invalid response is returned by the service.

BackupScope

Defines which namespaces and applications to back up.

Appears in: - BackupConfig - RestoreConfig

Field Description
allNamespaces boolean Specifies whether all namespaces are backed up. If set to True, indicates that all namespaces must be backed up.
selectedNamespaces Namespaces The list of namespaces to back up.
selectedApplications NamespacedNames The list of applications to back up.

BackupSpec

Defines the desired state of the backup.

Appears in: - Backup

Field Description
clusterName string The name of the cluster that is backed up. By default, it is the cluster in which this backup is created.
backupPlanName string The name of the backup plan from which this backup was created.
backupConfig BackupConfig A configuration that is used when this backup is generated from the given backup plan. This must be copied from the backup plan that this backup was generated by, rather than a reference. This field must not be set by the user, and must only be set by the backup plan scheduler and the ManualBackupRequest resource.
description string An optional string description of the Backup. This field has no impact on functionality.
manual boolean Specifies whether the backup resource was created manually. If True, this backup has been created manually, If False, this Backup has been created automatically from the backup plan schedule.
deleteLockDays integer The number of days from the create_time of this backup for which deletion is blocked. For backups created automatically from a backup schedule, this field is set to the value of BackupPlan.RetentionPolicy.backup_delete_block_days. For backups created manually that leave this field unspecified, the service assigns the value of BackupPlan.RetentionPolicy.backup_delete_block_days. If a backup is created where the value of this field is less than the value of BackupPlan.RetentionPolicy.backup_delete_block_days, an invalid response is returned from the service. This field must be an integer value between 0-90. This field must only be increased by an update request, or an invalid response is returned by the service. Note, this field only applies to backups with a Succeeded state. Default to 0.
retainDays integer The number of days to keep this backup for, after which it is automatically deleted. This is calculated from the create_time of the backup. If this field is not specified or set to 0, it means the backup is not automatically deleted. For backups automatically created from a a backup schedule, this field is assigned the value of BackupPlan.RetentionPolicy.backup_retain_days. For backups created manually that leave this field unspecified, the service assigns the value of BackupPlan.RetentionPolicy.backup_retain_days. If a backup is created where the value of this field is less than the value of delete_lock_days, an invalid response is returned by the service. This field must only be increased by an update request, or an invalid response is returned by the service. Default to 0.

BackupStatus

Defines the observed state of a backup.

Appears in: - Backup

Field Description
clusterMetadata ClusterMetadata The metadata of the cluster.
jobCreated boolean Specifies whether a backup job has been created for this backup.
state BackupState The current state of the backup.
reason string A human-readable description of why the backup is in the current state.
errorStatus ErrorStatus The most recent errors with the observed times included.
conditions Condition array Conditions represents the observations of this backup's current state. Known condition types: Succeeded
createTime Time The timestamp of when this backup resource was created. This can be converted to and from RFC 3339.
updateTime Time The timestamp of when this backup plan was last updated. This can be converted to and from RFC 3339.
resourceCount integer The total number of resources backed up.
volumeCount integer The total number of volumes backed up.
sizeBytes integer The total size, measured in bytes.
podCount integer The total number of workload pods backed up.
systemPodCount integer The total number of system pods backed up. These pods are excluded from billing.
vmCount integer The total number of virtual machines backed up.
deleteLockExpireTime Time The time when the deletion lock will expire. This is an output only field calculated from the combined value of create_time and delete_lock_days, and is updated accordingly when the delete_lock_days field of a backup is updated. Note, this field only applies to backups with a Succeeded state.
retainExpireTime Time The time when the backup is automatically deleted. It's an output only field calculated from the combined value of create_time and retain_days, and is updated accordingly when the retain_days field of a backup has been updated.
completeTime Time The completion time of the backup.

ClusterBackup

Appears in: - ClusterBackupList

Field Description
apiVersion string backup.gdc.goog/v1
kind string ClusterBackup
metadata ObjectMeta Refer to Kubernetes API documentation for fields of metadata.
spec ClusterBackupSpec
status ClusterBackupStatus

ClusterBackupConfig

Represents an inner message type that defines the configuration of creating a backup from this backup plan.

Appears in: - ClusterBackupPlanSpec - ClusterBackupSpec

Field Description
backupScope BackupScope The resource selection scope of a backup. Examples include all_namespaces, selected namespaces, and selected applications. You must specify a single value for backup_scope. The BackupScope value must be one of the following types: BackupConfig_AllNamespaces, BackupConfig_SelectedNamespaces, or BackupConfig_SelectedApplications.
backupRepositoryName string The name of the BackupRepositoryRef resource identifying the secondary storage for this ClusterBackupPlan resource.
clusterBackupRepositoryName string The name of the ClusterBackupRepositoryRef resource identifying the secondary storage for this ClusterBackupPlan resource.
includeVolumeData boolean Specifies whether volume data is backed up. If unset, the default is false.
includeSecrets boolean Specifies whether secrets are backed up. If unset, the default is false.
volumeStrategy VolumeStrategy The type of volume backup to perform.

ClusterBackupList

Represents a list of cluster backups.

Field Description
apiVersion string backup.gdc.goog/v1
kind string ClusterBackupList
metadata ListMeta Refer to Kubernetes API documentation for fields of metadata.
items ClusterBackup array

ClusterBackupPlan

Appears in: - ClusterBackupPlanList

Field Description
apiVersion string backup.gdc.goog/v1
kind string ClusterBackupPlan
metadata ObjectMeta Refer to Kubernetes API documentation for fields of metadata.
spec ClusterBackupPlanSpec
status BackupPlanStatus

ClusterBackupPlanList

Represents a list of ClusterBackups

Field Description
apiVersion string backup.gdc.goog/v1
kind string ClusterBackupPlanList
metadata ListMeta Refer to Kubernetes API documentation for fields of metadata.
items ClusterBackupPlan array

ClusterBackupPlanSpec

Represents an API that wraps around the backupv1.BackupPlan custom resource. They are mostly identical, but there are some fields that are selectively omitted.

Appears in: - ClusterBackupPlan

Field Description
targetCluster TargetCluster The cluster that will backed up.
backupSchedule Schedule The scheduled backup creation under this backup plan.
clusterBackupConfig ClusterBackupConfig The backup configuration of this backup plan.
retentionPolicy RetentionPolicy The lifecycle of backups created under this plan.
description string A user-specified descriptive string for this backup plan.
deactivated boolean Specifies whether the plan has been deactivated. Setting this field to 'true' locks the plan meaning no further updates are allowed, including changes to the deactivated field. It also prevents new backups from being created under this plan, both manually or scheduled. Default to 'false'.

ClusterBackupRepository

Defines the schema for the ClusterBackupRepository API.

Appears in: - ClusterBackupRepositoryList

Field Description
apiVersion string backup.gdc.goog/v1
kind string ClusterBackupRepository
metadata ObjectMeta Refer to Kubernetes API documentation for fields of metadata.
spec ClusterBackupRepositorySpec
status ClusterBackupRepositoryStatus

ClusterBackupRepositoryList

Contains a list of ClusterBackupRepository resources.

Field Description
apiVersion string backup.gdc.goog/v1
kind string ClusterBackupRepositoryList
metadata ListMeta Refer to Kubernetes API documentation for fields of metadata.
items ClusterBackupRepository array

ClusterBackupRepositorySpec

Defines the desired state of the ClusterBackupRepositorySpec resource.

Appears in: - ClusterBackupRepository

Field Description
secretReference SecretReference A reference to an Access Secret which is dependent on your storage system of choice. This Secret is used requests to this endpoint. For example, an S3 Access Secret.
endpoint string The endpoint used to access the cluster backup repository.
type RepositoryType The type of the cluster backup repository. For example, S3 or Google Cloud Storage. This tells the agent which storage system or API to use.
s3Options S3Options The data used for configuring access to an S3-compatible BackupRepo resource.
importPolicy ImportPolicy The policy that determines whether this backup repository is read-only or read-write.
force boolean Specifies the action that a read-write backup repository takes if the storage bucket that it is initialized with has already been claimed by a different backup repository. If True, the new backup repository still claims ownership of the storage bucket by replacing the existing sentinel file with its own sentinel file. If False, the creation of the new backup repository fails with an error. The default value is False. This must only be used if the sentinel file that is overridden no longer has a backup repository, otherwise that backup repository enters an error state which might cause undesired side effects.

ClusterBackupRepositoryStatus

Defines the observed state of ClusterBackupRepository resource.

Appears in: - ClusterBackupRepository

Field Description
sentinelEtag string A field that connects a backup repository to the sentinel file that it owns.
reconciliationError ReconciliationError The errors that have occurred during the most recent reconciliation attempt for the backup repository.
reconciliationErrorMessage string The error messages that might have occurred during reconciliation.
errorStatus ErrorStatus The most recent errors from reconciliation with the observed times included.
conditions Condition array Specifies the status of the cluster backup repository. Supported conditions include InitialImportDone, Ready, Deprecated.

ClusterBackupSpec

Represents an API that wraps around the backupv1.Backup custom resource. They are mostly identical, but there are some fields that are selectively omitted.

Appears in: - ClusterBackup

Field Description
targetCluster TargetCluster The name of the cluster that will backed up.
clusterBackupPlanName string The name of the cluster backup plan from which this backup was created.
backupConfig ClusterBackupConfig A configuration that is used when this backup is generated from the given backup plan. This must be copied from the cluster backup plan that this cluster backup was generated by, rather than a reference. This field must not be set by the user, and must only be set by the backup plan scheduler and the ManualBackupRequest resource.
description string An optional string description of the backup. This field has no impact on functionality.
manual boolean Specifies whether the cluster backup resource was created manually. If True, this backup has been created manually, If False, this cluster backup has been created automatically from the backup plan schedule.
retentionPolicy BackupRetentionPolicy Retention policy for the Backup.

ClusterBackupStatus

Defines the observed state of a cluster backup.

Appears in: - ClusterBackup

Field Description
clusterMetadata ClusterMetadata The metadata of the cluster.
conditions Condition array Specifies the status of the cluster backup. Supported conditions include JobCreated, Succeeded.
jobCreated boolean Specifies whether a backup job has been created for this cluster backup.
state BackupState The current state of the cluster backup.
stateReason string A human-readable description of why the backup is in the current state.
errorStatus ErrorStatus The most recent errors with the observed times included.
createTime Time The timestamp of when this backup resource was created. This can be converted to and from RFC 3339.
updateTime Time The timestamp of when this cluster backup was last updated. This can be converted to and from RFC 3339.
resourceCount integer The total number of resources backed up.
volumeCount integer The total number of volumes backed up.
sizeBytes integer The total size, measured in bytes.
podCount integer The total number of workload pods backed up.
deleteLockExpireTime Time The time when the deletion lock will expire. This is an output only field calculated from the combined value of create_time and delete_lock_days, and is updated accordingly when the delete_lock_days field of a cluster backup is updated. Note, this field only applies to cluster backups with a Succeeded state.
retainExpireTime Time The time when the cluster backup is automatically deleted. It's an output only field calculated from the combined value of create_time and retain_days, and is updated accordingly when the retain_days field of a cluster backup has been updated.
completeTime Time The completion time of the cluster backup.

ClusterMetadata

Represents the metadata of the cluster.

Appears in: - BackupStatus

Field Description
clusterName string The name of the source cluster from where the backup has been created from.
k8sVersion string The Kubernetes server version.
platformVersion PlatformVersion The platform version types that can be assigned to PlatformVersion. For example, GpcVersion.

ClusterResourceConflictPolicy

Underlying type: string The restoration behavior for non-namespaced cluster resources to follow when a conflict occurs.

Appears in: - RestoreConfig - RestorePolicies

ClusterResourceSelection

Represents the selection of non-namespaced resources for restoration.

Appears in: - RestoreConfig - RestoreResourceSelection

Field Description
selectedGroupKinds GroupKind array A list of GroupKind resources. A non-namespaced resource must be included as one of the GroupKind resources specified in the list. Note, even though PersistentVolume resources are non-namespaced, these are handled separately. See VolumeDataRestorePolicy for details. Specifying a PersistentVolume GroupKind in this list does not affect whether or not a PersistentVolume is restored.

ClusterRestore

Defines the schema for the ClusterRestore API.

Appears in: - ClusterRestoreList

Field Description
apiVersion string backup.gdc.goog/v1
kind string ClusterRestore
metadata ObjectMeta Refer to Kubernetes API documentation for fields of metadata.
spec ClusterRestoreSpec
status ClusterRestoreStatus

ClusterRestoreConfig

Defines the configuration of a ClusterRestore.

Appears in: - ClusterRestorePlanSpec - ClusterRestoreSpec

Field Description
volumeDataRestorePolicy VolumeDataRestorePolicy The policy to use for volume data restoration. Provides a default value of NO_VOLUME_DATA_RESTORATION if no value is specified.
clusterResourceConflictPolicy ClusterResourceConflictPolicy The policy that resolves conflicts when restoring cluster-scoped resources. This request is invalid if this field has a value of CLUSTER_RESOURCE_CONFLICT_POLICY_UNSPECIFIED and cluster_resource_restore_scope is specified.
namespacedResourceRestoreMode NamespacedResourceRestoreMode The restoration mode to use for namespaced resources. The request is invalid if this field has a value of NAMESPACED_RESOURCE_RESTORE_MODE_UNSPECIFIED and namespaced_resource_restore_scope is specified.
clusterResources ClusterResourceSelection The non-namespaced resources to be restored. If this field is not specified, no cluster resource is restored. Note, even though PersistentVolume resources are non-namespaced, they are handled separately. See the VolumeDataRestorePolicy resource for details. Specifying a PersistentVolume GroupKind in this list does not determine whether a PersistentVolume is restored.
namespacedResourceAllowlist GroupKind array The specific namespaced resources to restore. If defined, only the resources defined in this allowlist are restored.
namespacedResourceRestoreScope BackupScope The selected namespace resources to restore. One of the entries must be specified along with a valid Type. The Type values that are valid to be assigned to restoreScope are AllNamespaces, SelectedNamespaces, or SelectedApplications.
substitutionRules SubstitutionRule array The rules followed during the substitution of backed-up Kubernetes resources. An empty list means no substitution will occur. Substitution rules are applied sequentially in the order defined. This order matters, as changes made by a rule may impact the matching logic of the subsequent rule. Only one of SubstitutionRules or TransformationRules can be specified for a given restore operation.
transformationRules TransformationRule array The rules followed during the transformation of backed-up Kubernetes resources. An empty list means no transformation will happen. Transformation rules are applied sequentially in the order defined. This order matters, as changes made by a rule may impact the matching logic of a subsequent rule. Only one of SubstitutionRules or TransformationRules can be specified for a given restore operation.
clusterBackupRepositoryRef string The name of the cluster backup repository which identifies the repository for the restore resource. This field must be attached in read-write mode. If this field is not supplied then it will be selected using the following logic: 1. If the backup that we are performing the restore on points to a read-write repository in the current cluster, this repository is selected. 2. If the backup that we are performing a restore on points to a read-only repository, any read-write repository from the cluster is selected and used.

ClusterRestoreList

Represents a list of cluster restores.

Field Description
apiVersion string backup.gdc.goog/v1
kind string ClusterRestoreList
metadata ListMeta Refer to Kubernetes API documentation for fields of metadata.
items ClusterRestore array

ClusterRestorePlan

Defines the schema for the ClusterRestorePlan API.

Appears in: - ClusterRestorePlanList

Field Description
apiVersion string backup.gdc.goog/v1
kind string ClusterRestorePlan
metadata ObjectMeta Refer to Kubernetes API documentation for fields of metadata.
spec ClusterRestorePlanSpec
status RestorePlanStatus

ClusterRestorePlanList

Represents a list of ClusterRestorePlan resources.

Field Description
apiVersion string backup.gdc.goog/v1
kind string ClusterRestorePlanList
metadata ListMeta Refer to Kubernetes API documentation for fields of metadata.
items ClusterRestorePlan array

ClusterRestorePlanSpec

Represents an API that wraps around the backupv1.RestorePlan custom resource. They are mostly identical, but there are some fields that are selectively omitted. Defines the desired state of the 'ClusterRestorePlan'.

Appears in: - ClusterRestorePlan

Field Description
targetCluster TargetCluster The cluster where data will be restored.
clusterBackupPlanName string The name of the cluster backup plan from which cluster backups may be used as the source for cluster restores created using this ClusterRestorePlan. This field is required and immutable.
clusterRestoreConfig ClusterRestoreConfig The cluster restore configuration of this cluster restore plan.
description string A user-specified descriptive string for this cluster restore plan.

ClusterRestoreSpec

Represents an API that wraps around the backupv1.Restore custom resource. Defines the desired state of a ClusterRestore.

Appears in: - ClusterRestore

Field Description
targetCluster TargetCluster The cluster where data will be restored.
clusterBackupName string The name of the cluster backup, which must be in the same namespace as the cluster restore.
clusterRestorePlanName string The name of the cluster restore plan from which this cluster restore inherited its ClusterRestoreConfig resource.
clusterRestoreConfig ClusterRestoreConfig The configuration of the cluster restore.
description string An optional description of the cluster restore. This has no impact on functionality.
filter Filter Filter can be used to further refine the resource selection of the cluster restore beyond the coarse-grained scope defined in the ClusterRestorePlan.

ClusterRestoreStatus

Defines the observed state of a cluster restore.

Appears in: - ClusterRestore

Field Description
conditions Condition array Specifies the status of the cluster restore. Supported conditions include JobCreated, Succeeded.
state RestoreState The current state of the cluster restore.
stateReason string A human-readable description of why the cluster restore is in the current state.
errorStatus ErrorStatus The most recent errors with the observed times included.
resourcesRestoredCount integer The number of resources restored in this cluster restore action.
resourcesExcludedCount integer The number of resources excluded in this cluster restore action.
resourcesFailedCount integer The number of resources that failed to be restored in this cluster restore action.
restoredVolumesCount integer The number of volumes restored in this cluster restore action.
startTime Time The create time of the cluster restore process.
completeTime Time The end time of the cluster restore process.

ClusterStatus

ClusterStatus contains backup repository creation status for a given cluster.

Appears in: - BackupRepositoryManagerStatus

Field Description
cluster NamespacedName
conditions Condition array

ClusterVolumeBackup

Defines the schema for the ClusterVolumeBackup API.

Appears in: - ClusterVolumeBackupList

Field Description
apiVersion string backup.gdc.goog/v1
kind string ClusterVolumeBackup
metadata ObjectMeta Refer to Kubernetes API documentation for fields of metadata.
spec ClusterVolumeBackupSpec
status ClusterVolumeBackupStatus

ClusterVolumeBackupList

Contains a list of ClusterVolumeBackup resources.

Field Description
apiVersion string backup.gdc.goog/v1
kind string ClusterVolumeBackupList
metadata ListMeta Refer to Kubernetes API documentation for fields of metadata.
items ClusterVolumeBackup array

ClusterVolumeBackupSpec

Defines the desired state of a cluster volume backup.

Appears in: - ClusterVolumeBackup

Field Description
cluster TargetCluster The name of the cluster that this cluster volume backup maintains data for.
clusterBackupName string The name of the associated backup. Each cluster volume backup must be associated with a backup. It will always be in the same namespace.
clusterBackupPlanName string The name of the backup plan from which the asssociated backup was created. It will always be in the same namespace.
sourcePVC TypedObjectReference The source persistent volume claim from which the cluster volume backup is taken from.

ClusterVolumeBackupStatus

Defines the observed state of a cluster volume backup.

Appears in: - ClusterVolumeBackup

Field Description
volumeBackupHandle string An underlying cluster volume backup handle, which uniquely identifies a cluster volume backup inside of a backup repository. This handle doesn't have a unified format and is treated as an opaque string.
format VolumeBackupFormat A cluster volume backup format. For example, PD, Portable, etc.
storageBytes integer The size of the cluster volume backup in the backup storage. For incremental backups this value may dynamically change if one of the previous volume backups was deleted.
diskSizeBytes integer The minimum size of the disk to which this volume backup can be restored.
state VolumeBackupState The current state of the volume backup.
message string A human-readable message indicating details about why the backup is in this state.
completeTime Time The timestamp when this ClusterVolumeBackup resource was completed in the text format of RFC 3339.
conditions Condition array Specifies the status of the cluster volume backup.

ClusterVolumeRestore

Represents an API that wraps around the backupv1.VolumeRestore custom resource. Defines the schema for the ClusterVolumeRestore API.

Appears in: - ClusterVolumeRestoreList

Field Description
apiVersion string backup.gdc.goog/v1
kind string ClusterVolumeRestore
metadata ObjectMeta Refer to Kubernetes API documentation for fields of metadata.
spec ClusterVolumeRestoreSpec
status VolumeRestoreStatus

ClusterVolumeRestoreList

Represents a list of ClusterVolumeRestore resources.

Field Description
apiVersion string backup.gdc.goog/v1
kind string ClusterVolumeRestoreList
metadata ListMeta Refer to Kubernetes API documentation for fields of metadata.
items ClusterVolumeRestore array

ClusterVolumeRestoreSpec

Defines the desired state of a cluster volume restore.

Appears in: - ClusterVolumeRestore

Field Description
targetCluster TargetCluster The name of the cluster where volume will be restored.
clusterRestoreName string The name of the cluster restore resource that created this cluster volume restore.
clusterVolumeBackupName string The name of the cluster volume backup resource that we are restoring.
targetPvc NamespacedName The target PersistentVolumeClaim resource to be restored.

DeleteBackupRequest

Defines the schema for the DeleteBackupRequest API.

Appears in: - DeleteBackupRequestList

Field Description
apiVersion string backup.gdc.goog/v1
kind string DeleteBackupRequest
metadata ObjectMeta Refer to Kubernetes API documentation for fields of metadata.
spec DeleteBackupRequestSpec
status DeleteBackupRequestStatus

DeleteBackupRequestList

Contains a list of DeleteBackupRequest resources.

Field Description
apiVersion string backup.gdc.goog/v1
kind string DeleteBackupRequestList
metadata ListMeta Refer to Kubernetes API documentation for fields of metadata.
items DeleteBackupRequest array

DeleteBackupRequestSpec

Defines the desired state of the DeleteBackupRequest resource.

Appears in: - DeleteBackupRequest

Field Description
backupName string The name of the backup to be deleted. Note, the backup must be exist in the same namespace as the DeleteBackupRequest resource.

DeleteBackupRequestStatus

Defines the observed state of DeleteBackupRequest resource.

Appears in: - DeleteBackupRequest

Field Description
timeToExpire Time The time the resource expires.
statusField StatusFields The status of the observed state of DeleteBackupRequest resource.

DeleteClusterBackupRequest

Defines the schema for the DeleteClusterBackupRequest API.

Appears in: - DeleteClusterBackupRequestList

Field Description
apiVersion string backup.gdc.goog/v1
kind string DeleteClusterBackupRequest
metadata ObjectMeta Refer to Kubernetes API documentation for fields of metadata.
spec DeleteClusterBackupRequestSpec
status DeleteClusterBackupRequestStatus

DeleteClusterBackupRequestList

Contains a list of DeleteBackupRequest resources.

Field Description
apiVersion string backup.gdc.goog/v1
kind string DeleteClusterBackupRequestList
metadata ListMeta Refer to Kubernetes API documentation for fields of metadata.
items DeleteClusterBackupRequest array

DeleteClusterBackupRequestSpec

Defines the desired state of the DeleteClusterBackupRequest resource.

Appears in: - DeleteClusterBackupRequest

Field Description
clusterBackupRef string The name of the ClusterBackup resource to be deleted. Note, the ClusterBackup resource must exist in the same namespace as the DeleteClusterBackupRequest resource.

DeleteClusterBackupRequestStatus

Defines the observed state of DeleteClusterBackupRequest resource.

Appears in: - DeleteClusterBackupRequest

Field Description
timeToExpire Time The time the resource expires.
statusField StatusFields The status of the observed state of DeleteClusterBackupRequest resource.

EncryptionKey

Defines an encryption key. For preview, supports Google Cloud Platform KMS only.

Appears in: - BackupConfig - RestoreConfig

Field Description
gcpKMSEncryptionKey string A Google KMS encryption key in the format: projects/<project>/locations/<location>/keyRings/<key-ring>/cryptoKeys/<key>.

Filter

Defines the fine-grained restore Filter

Appears in: - ManualRestoreRequestSpec - RestoreSpec

Field Description
inclusionFilters ResourceSelector array Selects resources for restoration. If specified, only resources which match inclusion_filters will be selected for restoration. A resource will be selected if it matches any ResourceSelector of the inclusion_filters.
exclusionFilters ResourceSelector array Excludes resources from restoration. If specified, a resource will not be restored if it matches any ResourceSelector of the exclusion_filters.

ImportPolicy

Underlying type: string The policy that determines whether this backup repository is read-only or read-write.

Appears in: - BackupRepositorySpec

ImportSubstitution

Represents whether we substitute the backup repository name on imported resources.

Appears in: - BackupRepositorySpec

Field Description
substituteBRName boolean

ManualBackupRequest

Defines the schema for the ManualBackupRequest API.

Appears in: - ManualBackupRequestList

Field Description
apiVersion string backup.gdc.goog/v1
kind string ManualBackupRequest
metadata ObjectMeta Refer to Kubernetes API documentation for fields of metadata.
spec ManualBackupRequestSpec
status ManualBackupRequestStatus

ManualBackupRequestList

Contains a list of ManualBackupRequest resources.

Field Description
apiVersion string backup.gdc.goog/v1
kind string ManualBackupRequestList
metadata ListMeta Refer to Kubernetes API documentation for fields of metadata.
items ManualBackupRequest array

ManualBackupRequestSpec

Defines the desired state of a ManualBackupRequest resource.

Appears in: - ManualBackupRequest

Field Description
backupName string The name of the manual backup to be created.
backupPlanName string The name of the backup plan from which the BackupConfig resource is pulled.
description string A user-specified descriptive string for the backup created by this ManualBackupRequest resource.
deleteLockDays integer The number of days from the create_time of this backup for which deletion is blocked. For backups automatically created from a schedule, this field is given the value of BackupPlan.RetentionPolicy.backup_delete_block_days. If a backup is created with this field unspecified, it is given the value of BackupPlan.RetentionPolicy.backup_delete_block_days. If this Backup is created with this field set to a value less than the value of BackupPlan.RetentionPolicy.backup_delete_block_days, an invalid response is returned from the agent. This field must be a value within 0-90. This field must only be increased by an update request, or an invalid response is returned by the agent. Note that this field only applies to backups with a Succeeded state. Default to 0.
retainDays integer The number of days to keep this backup for, after which it is automatically deleted. If this field is not specified or set to 0, it means the backup is not automatically deleted. For backups automatically created from a backup schedule, this field is assigned the value of BackupPlan.RetentionPolicy.backup_default_retain_days. For created backups that leave this field unspecified, the agent to uses the value of BackupPlan.RetentionPolicy.backup_default_retain_days. The creation of a backup with this field set to a value less than delete_lock_days results in an invalid response from the agent. This field must only be increased in an update request, or an invalid response is returned by the agent immediately. Default to 0.

ManualBackupRequestStatus

Defines the observed state of a ManualBackupRequest resource.

Appears in: - ManualBackupRequest

Field Description
timeToExpire Time The time the resource should expire.
statusField StatusFields The status of the observed state of ManualBackupRequest resource.
statusMessage string The statusMessage is any error message for ManualBackupRequest resource.

ManualClusterBackupRequest

Defines the schema for the ManualClusterBackupRequest API.

Appears in: - ManualClusterBackupRequestList

Field Description
apiVersion string backup.gdc.goog/v1
kind string ManualClusterBackupRequest
metadata ObjectMeta Refer to Kubernetes API documentation for fields of metadata.
spec ManualClusterBackupRequestSpec
status ManualClusterBackupRequestStatus

ManualClusterBackupRequestList

Contains a list of ManualClusterBackupRequest resources.

Field Description
apiVersion string backup.gdc.goog/v1
kind string ManualClusterBackupRequestList
metadata ListMeta Refer to Kubernetes API documentation for fields of metadata.
items ManualClusterBackupRequest array

ManualClusterBackupRequestSpec

Defines the desired state of a ManualClusterBackupRequest resource.

Appears in: - ManualClusterBackupRequest

Field Description
clusterBackupName string The name of the cluster backup to be created. It is created inside of the same namespace as the ManualClusterBackupRequest resource.
clusterBackupPlanRef string The name of the cluster backup plan from which the ClusterBackupConfig resource is pulled. Note, it is expected that the cluster backup plan exists in the same namespace as the ManualClusterBackupRequest resource.
description string A user-specified descriptive string for the cluster backup created by this ManualClusterBackupRequest resource.
deleteLockDays integer The number of days from the create_time of this backup for which deletion is blocked. For backups automatically created from a schedule, this field is given the value of BackupPlan.RetentionPolicy.backup_delete_block_days. If a Backup is created with this field unspecified, it is given the value of BackupPlan.RetentionPolicy.backup_delete_block_days. If this Backup is created with this field set to a value less than the value of ClusterBackupPlan.RetentionPolicy.backup_delete_block_days, an invalid response is returned from the agent. This field must be a value within 0-90. This field must only be increased by an update request, or an invalid response is returned by the agent. Note that this field only applies to backups with a Succeeded state.
retainDays integer The number of days to keep this backup for, after which it is automatically deleted. If this field is not specified or set to 0, it means the backup is not automatically deleted. For backups automatically created from a backup schedule, this field is assigned the value of BackupPlan.RetentionPolicy.backup_default_retain_days. For created backups that leave this field unspecified, the agent uses the value of ClusterBackupPlan.RetentionPolicy.backup_default_retain_days. The creation of a backup with this field set to a value less than delete_lock_days results in an invalid response from the agent. This field must only be increased in an update request, or an invalid response is returned by the agent immediately.

ManualClusterBackupRequestStatus

Defines the observed state of a ManualClusterBackupRequest resource.

Appears in: - ManualClusterBackupRequest

Field Description
timeToExpire Time The time the resource expires.
statusField StatusFields The status of the observed state a of ManualClusterBackupRequest resource.

ManualClusterRestoreRequest

Defines the schema for the ManualClusterRestoreRequest API.

Appears in: - ManualClusterRestoreRequestList

Field Description
apiVersion string backup.gdc.goog/v1
kind string ManualClusterRestoreRequest
metadata ObjectMeta Refer to Kubernetes API documentation for fields of metadata.
spec ManualClusterRestoreRequestSpec
status ManualRestoreRequestStatus

ManualClusterRestoreRequestList

Represents a list of ManualClusterRestoreRequest resources.

Field Description
apiVersion string backup.gdc.goog/v1
kind string ManualClusterRestoreRequestList
metadata ListMeta Refer to Kubernetes API documentation for fields of metadata.
items ManualClusterRestoreRequest array

ManualClusterRestoreRequestSpec

Defines the desired state of a ManualClusterRestoreRequest resource.

Appears in: - ManualClusterRestoreRequest

Field Description
clusterRestoreName string The name of the cluster restore to be created.
clusterRestorePlanName string The name of the cluster restore plan to pull the ClusterRestoreConfig resource from.
clusterBackupName string The name of the cluster backup that is being restored. Note, it is expected that the cluster restore plan and cluster backup exist in the same namespace as the ManualClusterRestoreRequest resource.
description string A user-specified descriptive string for the cluster restore created by this ManualClusterRestoreRequest resource.
filter Filter Filter which can be used to further refine the resource selection of the cluster restore beyond the coarse-grained scope defined in the ClusterRestorePlan.

ManualRestoreRequest

Defines the schema for the ManualRestoreRequest API.

Appears in: - ManualRestoreRequestList

Field Description
apiVersion string backup.gdc.goog/v1
kind string ManualRestoreRequest
metadata ObjectMeta Refer to Kubernetes API documentation for fields of metadata.
spec ManualRestoreRequestSpec
status ManualRestoreRequestStatus

ManualRestoreRequestList

Contains a list of ManualRestoreRequest resources.

Field Description
apiVersion string backup.gdc.goog/v1
kind string ManualRestoreRequestList
metadata ListMeta Refer to Kubernetes API documentation for fields of metadata.
items ManualRestoreRequest array

ManualRestoreRequestSpec

Defines the desired state of a ManualRestoreRequest resource.

Appears in: - ManualRestoreRequest

Field Description
restoreName string The name of the manual restore to be created.
restorePlanName string The name of the restore plan to pull the RestoreConfig resource from.
backupName string The name of the backup that is being restored.
description string A user-specified descriptive string for the restore created by this ManualRestoreRequest resource.
filter Filter Filter which can be used to further refine the resource selection of the Restore beyond the coarse-grained scope defined in the RestorePlan.

ManualRestoreRequestStatus

Defines the observed state of ManualRestoreRequest resource.

Appears in: - ManualRestoreRequest

Field Description
timeToExpire Time The time when the resource should expire.
statusField StatusFields The status of the observed state of a ManualRestoreRequest resource.

NamespacedName

Defines a name in a specific namespace.

Appears in: - NamespacedNames - NamespacedResourceSelection - VolumeBackupSpec - VolumeRestoreSpec

Field Description
namespace string The namespace of the resource in Kubernetes.
name string The name of the resource in Kubernetes.

NamespacedNames

Appears in: - BackupScope

Field Description
namespacedNames NamespacedName array A list of namespaced names.

NamespacedResourceRestoreMode

Underlying type: string The restoration behavior for namespaced resources.

Appears in: - RestoreConfig - RestorePolicies

NamespacedResourceSelection

Defines the selection of namespaced resources for restoration. One of the following values must be specified along with a matching Type:

`AllNamespaces`, `SelectedNamespaces`, or `SelectedApplications`.

Appears in: - RestoreResourceSelection

Field Description
type NamespacedResourceSelectionType The type of selection to use.
allNamespaces boolean Specifies whether or not to restore all namespaced resources in the backup. Leaving this field unspecified, or setting it to False with the Type set to NamespacedResourceSelectionType.AllNamespaces is invalid.
selectedNamespaces string array A list of the selected namespaces to restore. If a value is provided along with the Type set to NamespacedResourceSelectionType.SelectedNamespaces, resources with an original namespace that feature in the specified list are restored. Note, specifying an empty string in this list does not restore non-namespaced cluster resources. To restore cluster resources, see ClusterResourceSelection.
selectedApplications NamespacedName array A list of selected ProtectedApplication resources to restore. If a value is provided, along with the Type set to NamespacedResourceSelectionType.SelectedApplications, the resources belonging to one of the listed applications are restored.

NamespacedResourceSelectionType

Underlying type: string The type of namespaced resources selection.

Appears in: - NamespacedResourceSelection

Namespaces

Appears in: - BackupScope

Field Description
namespaces string array A list of namespaces.

ObjectStorageBackupConfig

Configures backups of object storage.

Field Description
apiVersion string backup.gdc.goog/v1
kind string ObjectStorageBackupConfig
metadata ObjectMeta Refer to Kubernetes API documentation for fields of metadata.
source ObjectStorageEndpoint The source object storage to be backed up.
target ObjectStorageEndpoint The target to which the backup is written.
timestamp boolean Specifies whether to store each transfer in a timestamped sub-path of the bucket. If set to True, the structure is YYYY-MM-DD-hh:mm:ss. This helps to store copies taken from multiple points in time of a backup. Defaults to False.

ObjectStorageEndpoint

Represents an object storage endpoint as well as the credentials to access it.

Appears in: - ObjectStorageBackupConfig

Field Description
endpoint string The endpoint used to access object storage. For example, https://s3.svc.
bucket string The bucket within the endpoint to scope reference.
secretReference SecretReference The reference to S3 access credentials used to access object storage.

PlatformVersion

Defines the version of the platform.

Appears in: - ClusterMetadata

Field Description
gpcVersion string The Google Private Cloud version.

ReconciliationError

Underlying type: string The errors that have occurred during the most recent reconciliation attempt for the backup repository.

Appears in: - BackupRepositoryStatus

RepositoryType

Underlying type: string The type of endpoint being written to.

Appears in: - BackupRepositorySpec

ResourceFilter

Defines the rules to filter down the list of candidate resources to provide transformation rules against. All fields with ResourceFilter are optional, so not specifying any of the ResourceFilter fields results in matching on all resources.

Appears in: - TransformationRule

Field Description
namespaces string array A list of target namespaces a transformation rule will apply to. A resource's original namespace must match one of the names in the list to be considered as a transformation candidate. An empty string is expected in the list for any non-namespaced resource to be considered. If empty, all namespaces are considered.
groupKinds GroupKind array A list of target GroupKind resources a transformation rule will apply to. A resource's original GroupKind resource must match one of the GroupKind resources specified in the list to be considered as a transformation candidate. If empty, all GroupKind resources are considered. Note, a resource needs to satisfy both the Namespaces requirement and GroupKinds requirement to be considered as a transformation candidate.
jsonPath string The string representation of the path in the JSON which leads to the fields in the target resource for filtering. JSONPath documentation can be viewed here: https://github.com/json-path/JsonPath/blob/master/README.md. JSONPath formats can be tested online (e.g. https://jsonpath.com/).

ResourceSelector

Defines ResourceSelector for fine-grained restore Filter

Appears in: - Filter

Field Description
groupKind GroupKind Selects resources using their Kubernetes GroupKinds. If specified, only resources of provided GroupKind will be selected.
name string Selects resources using their resource names. If specified, only resources with the provided name will be selected.
namespace string Selects resources using their namespaces. This only applies to namespace scoped resources and cannot be used for selecting cluster scoped resources. If specified, only resources in the provided namespace will be selected. If not specified, the filter will apply to both cluster scoped and namespace scoped resources (e.g. name or label). The Namespace resource itself will be restored if and only if any resources within the namespace are restored.
labels object (keys:string, values:string) Selects resources using Kubernetes labels. If specified, a resource will be selected if and only if the resource has all of the provided labels and all the label values match.

Restore

Defines the schema for the Restore API.

Appears in: - RestoreList

Field Description
apiVersion string backup.gdc.goog/v1
kind string Restore
metadata ObjectMeta Refer to Kubernetes API documentation for fields of metadata.
spec RestoreSpec
status RestoreStatus

RestoreConfig

Defines the configuration of a restore.

Appears in: - RestorePlanSpec - RestoreSpec

Field Description
volumeDataRestorePolicy VolumeDataRestorePolicy The policy to use for volume data restoration. Provides a default value of NO_VOLUME_DATA_RESTORATION if no value is specified.
clusterResourceConflictPolicy ClusterResourceConflictPolicy The policy that resolves conflicts when restoring cluster-scoped resources. The request is invalid if this field is not specified. This request is invalid if this field has a value of CLUSTER_RESOURCE_CONFLICT_POLICY_UNSPECIFIED and cluster_resource_restore_scope is specified.
namespacedResourceRestoreMode NamespacedResourceRestoreMode The restoration mode to use for namespaced resources. The request is invalid if this field is not specified. The request is invalid if this field has a value of NAMESPACED_RESOURCE_RESTORE_MODE_UNSPECIFIED and namespaced_resource_restore_scope is specified.
clusterResources ClusterResourceSelection The non-namespaced resources to be restored. If this field is not specified, no cluster resource is restored. Note, even though PersistentVolume resources are non-namespaced, they are handled separately. See the VolumeDataRestorePolicy resource for details. Specifying a PersistentVolume GroupKind in this list does not determine whether a PersistentVolume is restored.
namespacedResourceAllowlist GroupKind array The specific namespaced resources to restore. If defined, only the resources defined in this allowlist are restored.
restoreScope BackupScope The selected namespace resources to restore. One of the entries must be specified along with a valid Type. The Type values that are valid to be assigned to restoreScope are AllNamespaces, SelectedNamespaces, or SelectedApplications.
substitutionRules SubstitutionRule array The rules followed during the substitution of backed-up Kubernetes resources. An empty list means no substitution will occur. Substitution rules are applied sequentially in the order defined. This order matters, as changes made by a rule may impact the matching logic of the subsequent rule. Only one of SubstitutionRules or TransformationRules can be specified for a given restore operation.
transformationRules TransformationRule array The rules followed during the transformation of backed-up Kubernetes resources. An empty list means no transformation will happen. Transformation rules are applied sequentially in the order defined. This order matters, as changes made by a rule may impact the matching logic of a subsequent rule. Only one of SubstitutionRules or TransformationRules can be specified for a given restore operation.
backupRepository string T name of the backup repository which identifies the repository for the restore resource. This field must be attached in read-write mode. Note, this backup repository might differ from the backup repository for the backup this restore references. If this field is not supplied then it will be selected using the following logic: 1. If the backup that we are performing the restore on points to a read-write repository in the current cluster, this repository is selected. 2. If the backup that we are performing a restore on points to a read-only repository, any read-write repository from the cluster is selected and used.
encryptionKey EncryptionKey An encryption key. This field is immutable.

RestoreList

Contains a list of Restore resources.

Field Description
apiVersion string backup.gdc.goog/v1
kind string RestoreList
metadata ListMeta Refer to Kubernetes API documentation for fields of metadata.
items Restore array

RestorePlan

Defines the schema for the RestorePlan API.

Appears in: - RestorePlanList

Field Description
apiVersion string backup.gdc.goog/v1
kind string RestorePlan
metadata ObjectMeta Refer to Kubernetes API documentation for fields of metadata.
spec RestorePlanSpec
status RestorePlanStatus

RestorePlanList

Contains a list of RestorePlan resources.

Field Description
apiVersion string backup.gdc.goog/v1
kind string RestorePlanList
metadata ListMeta Refer to Kubernetes API documentation for fields of metadata.
items RestorePlan array

RestorePlanSpec

Defines the desired state of the restore plan.

Appears in: - RestorePlan

Field Description
backupPlanName string The name of the backup plan from which backups may be used as the source for restores created using this restore plan. This field is required and immutable.
restoreConfig RestoreConfig The restore configuration of this restore plan.
clusterName string The name of the cluster that will contain the data restored by this restore plan. By default, it is the cluster in which the restore plan is created.
description string A user-specified descriptive string for this restore plan.

RestorePlanStatus

Defines the observed state of a restore plan.

Appears in: - RestorePlan

Field Description
lastRestoreTime Time The timestamp for the most recently executed restore.
state StatusFields The current state of the restore plan.

RestoreSpec

Defines the desired state of a restore.

Appears in: - Restore

Field Description
backupName string The full name of the backup resource that this Restore resource uses to restore from.
restorePlanName string The name of the restore plan from which this restore inherited its RestoreConfig resource.
clusterName string The name of the cluster that contains the data restored by this restore. By default, it is the cluster in which the restore was created.
restoreConfig RestoreConfig The configuration of the restore.
description string An optional description of the backup. This has no impact on functionality.
filter Filter Filter can be used to further refine the resource selection of the Restore beyond the coarse-grained scope defined in the RestorePlan.

RestoreState

Underlying type: string

Appears in: - RestoreStatus

RestoreStatus

Defines the observed state of a restore.

Appears in: - Restore

Field Description
state RestoreState The current state of the restore.
stateReason string A human-readable description of why the restore is in the current state.
errorStatus ErrorStatus The most recent errors with the observed times included.
conditions Condition array Conditions represents the observations of this restore's current state. Known condition types: Succeeded
jobCreated boolean Specifies whether a restore job has been created for this restore.
resourcesRestoredCount integer The number of resources restored in this restore action.
resourcesExcludedCount integer The number of resources excluded in this restore action.
resourcesFailedCount integer The number of resources that failed to be restored in this restore action.
restoredVolumesCount integer The number of volumes restored in this restore action.
startTime Time The create time of the restore process.
completeTime Time The end time of the restore process.

RetentionPolicy

Defines a policy that determines when to automatically delete backups created under this backup plan, a plan-level minimum number of backup retain days, plan-level minimum number of backups to be retained, and a lock to disallow any policy updates.

Appears in: - BackupPlanSpec

Field Description
backupDeleteLockDays integer The number of days during for which the deletion of a backup created under this backup plan is blocked. Default to 0. This field must be an integer value between 0-90. A backup created under this backup plan is not deletable until it reaches the combined value of the backup's create_time and backup_delete_lock_days. Updating this backup plan field does not affect existing backups under it. Backups created after a successful update automatically inherit the new value.
backupRetainDays integer The number of days after which the service deletes a backup. If specified, a backup created under this backup plan are automatically deleted after it reaches the the combined value of create_time and backup_retain_days. If not specified, backups created under this backup plan are not subject to automatic deletion. Updating this field does not affect existing backups under it. Backups created after a successful update automatically inherit the new value. Note, specifying a value for backup_retain_days that is less than backup_delete_lock_days at the time of the creation or update is considered invalid, and the request is rejected immediately.
locked boolean Specifies whether the retention policy of this backup plan is locked. If set to True, no further update is allowed on this policy, including the locked field itself. Default to False.
numBackupsToRetain integer The number of backups to retain. If specified, oldest backups of backup plan which reached its combined value of create_time and backup_delete_lock_days are automatically deleted after the total number of backups under this backup plan reaches the value ofnum_backups_to_retain`. If not specified, backups created under this backup plan may or may not subject to automatic deletion based on 'backup_retain_days'. Updating this field does affect existing backups under the backup plan. Note, num_backups_to_retain must be greater than or equal to the number of backups that can be created within backup_delete_lock_days.

S3Options

Defines the options for calling to an S3 endpoint for the backup repository.

Appears in: - BackupRepositorySpec

Field Description
bucket string The bucket within the endpoint to upload backups to.
region string The region of a given endpoint. Formatting is storage system dependent.
forcePathStyle boolean Specifies whether to force path style URLs for objects. For example, https://s3.amazonaws.com// instead of https://.s3.amazonaws.com/.
serverSideEncryption string The server-side encryption algorithm used when storing objects. For example, AES256 oraws:kms`.
kmsKeyId string The KMS key ID to use for object storage if server-side encryption is using KMS.

Schedule

Represents an inner message type that defines a cron schedule.

Appears in: - BackupPlanSpec

Field Description
cronSchedule string A cron string schedule on which an operation is executed.
paused boolean Specifies whether the scheduled operaction is inactive or active. If set to True, the scheduled operation will be inactive. Default to True.
maxConcurrency integer Specifies the maximum number of active scheduled backups that can exist under a backup plan at the same time. If specified, no more than this number of scheduled backups from this backup plan can be in the active state at any given time. If not specified, it defaults to 2.

State

Underlying type: string A value specifying what state the backup plan is currently in.

Appears in: - BackupPlanStatus

SubstitutionRule

Defines the rules for substitution.

Appears in: - RestoreConfig

Field Description
target SubstitutionTarget The matching criteria that checks whether a resource is a substitution candidate and has fields that match the supplied JSONPath value.
originValuePattern string A regular expression pattern string which is applied to the JSON value matched from the supplied Target value. If not specified, the original value is always substituted using the specified NewValue value. Note, an empty string is a legitimate regex pattern, and is treated like any other string.
newValue string The desired value in string format to substitute to.

SubstitutionTarget

Defines the rules of target candidates for substitution.

Appears in: - SubstitutionRule

Field Description
namespaces string array A list of target namespaces a substitution rule is applied to. A resource's original namespace must match one of the names in the list to be considered as a substitution candidate. For any non-namespaced resource to be considered, an empty string must be provided. If empty, all namespaces are considered.
groupKinds GroupKind array A list of target GroupKind resources a substitution rule applies to. A resource's original GroupKind resource must match one of the GroupKind resources specified in the list to be considered as a substitution candidate. If empty, all GroupKind resources are considered. Note, a resource needs to satisfy both namespace requirements and the GroupKind requirements to be considered as a substitution candidate.
jsonPath string The string representation of the JSON Path which leads to the fields in the target resource, which are in the JSON format for substitution.

TargetCluster

Represents a Cluster whose data will be backed up or restored.

Appears in: - ClusterBackupPlanSpec - ClusterBackupSpec - ClusterRestorePlanSpec - ClusterRestoreSpec - ClusterVolumeBackupSpec - ClusterVolumeRestoreSpec

Field Description
targetClusterType TargetClusterType The type of Cluster
targetClusterName TypedLocalObjectReference In case of a UserCluster, the name refers to a GDC Cluster inside of the same namespace under the clusters.cluster.gdc.goog Group Kind. For the Managemnet API, this field should be left empty.

TargetClusterType

Underlying type: string

Appears in: - TargetCluster

TransformationRule

Defines rules of transformation utilizing jsonPatch.

Appears in: - RestoreConfig

Field Description
fieldActions TransformationRuleAction array A list of operations to take against candidate resources based on the JSON Patch RFC.
resourceFilter ResourceFilter The matching criteria to check that determines whether a resource is a transformation candidate. Note, an empty or blank resourceFilter value results in a match on all resources.

TransformationRuleAction

Represents the action the user wants to perform as part of transforming a resource.

Appears in: - TransformationRule

Field Description
op TransformationRuleOperation The type of action the user wants to perform as part of transforming resources upon a restore operation. The list of valid operations can be viewed at https://www.rfc-editor.org/rfc/rfc6902#section-4.4.
from string The JSON patch representation of a path within the JSON which leads to the fields in the target resource for move and copy operations.
path string The JSON patch representation of a path within the JSON which leads to the fields in the target resource for some operations.
value string The desired value in string format to use for transformation.

TransformationRuleOperation

Underlying type: string The intended operation for a transformation rule.

Appears in: - TransformationRuleAction

VMBackupJobList

Contains a list of backups.

Field Description
apiVersion string backup.gdc.goog/v1
kind string VMBackupJobList
metadata ListMeta Refer to Kubernetes API documentation for fields of metadata.
items VMBackupJob array

VMBackupJobSpec

Defines the desired state of the backup.

Appears in: - VMBackupJob

Field Description
backupRef NamespacedName The control plane backup name that the vm backup job is related to. The name is immutable.
vmRef NamespacedName The reference of the VM this CR is backing up This reference could be nil if the backup is a disk backup
vmDiskRefs VMDisk array List of VM Disks this CR is backing up
volumeBackupRefs object (keys:string, values:VolumeBackup) map of volume backup name to VolumeBackup struct under this backup This data is embedded into VMBackupJob and not present in the cluster
description string An optional string description of the Backup. This field has no impact on functionality.
manual boolean Specifies whether the backup resource was created manually. If True, this backup has been created manually, If False, this Backup has been created automatically from the backup plan schedule.
deleteLockDays integer The number of days from the create_time of this backup for which deletion is blocked. For backups created automatically from a backup schedule, this field is set to the value of BackupPlan.RetentionPolicy.backup_delete_block_days. For backups created manually that leave this field unspecified, the service assigns the value of BackupPlan.RetentionPolicy.backup_delete_block_days. If a backup is created where the value of this field is less than the value of BackupPlan.RetentionPolicy.backup_delete_block_days, an invalid response is returned from the service. This field must be an integer value between 0-90. This field must only be increased by an update request, or an invalid response is returned by the service. Note, this field only applies to backups with a Succeeded state. Default to 0.
retainDays integer The number of days to keep this backup for, after which it is automatically deleted. This is calculated from the create_time of the backup. If this field is not specified or set to 0, it means the backup is not automatically deleted. For backups automatically created from a a backup schedule, this field is assigned the value of BackupPlan.RetentionPolicy.backup_retain_days. For backups created manually that leave this field unspecified, the service assigns the value of BackupPlan.RetentionPolicy.backup_retain_days. If a backup is created where the value of this field is less than the value of delete_lock_days, an invalid response is returned by the service. This field must only be increased by an update request, or an invalid response is returned by the service. Default to 0.

VMBackupJobStatus

Defines the observed state of a backup.

Appears in: - VMBackupJob

Field Description
state VMBackupJobState The current state of the backup.
reason string A human-readable description of why the backup is in the current state.
errorStatus ErrorStatus The most recent errors with the observed times included.
conditions Condition array Conditions represents the observations of this VMBackupJob's current state. Known condition types: Succeeded
createTime Time The timestamp of when this VMBackupJob resource was created. This can be converted to and from RFC 3339.
snapshotTime Time The timestamp of when all disks in VMBackupJob resource are snapshotted. This can be converted to and from RFC 3339.
updateTime Time The timestamp of when this VMBackupJob was last updated. This can be converted to and from RFC 3339.
volumeCount integer The total number of volumes backed up.
retryCount integer total number of retries required to backup this VM/VM disk
deleteLockExpireTime Time The time when the deletion lock will expire. This is an output only field calculated from the combined value of create_time and delete_lock_days, and is updated accordingly when the delete_lock_days field of a backup is updated. Note, this field only applies to backups with a Succeeded state.
retainExpireTime Time The time when the backup is automatically deleted. It's an output only field calculated from the combined value of create_time and retain_days, and is updated accordingly when the retain_days field of a backup has been updated.
completeTime Time The completion time of the backup.

VMDisk

Appears in: - VMBackupJobSpec

Field Description
namespace string Namespace where the VM Disk resides in
name string Name of the VM Disk
pvcName string Name of the underlying PVC
uid UID UID of the PVC this field is used to get this particular VMBackupJob given the UID of the PVC
sizeBytes integer The total size, measured in bytes.

VolumeBackup

Defines the schema for the VolumeBackup API.

Appears in: - VMBackupJobSpec - VolumeBackupList

Field Description
apiVersion string backup.gdc.goog/v1
kind string VolumeBackup
metadata ObjectMeta Refer to Kubernetes API documentation for fields of metadata.
spec VolumeBackupSpec
status VolumeBackupStatus

VolumeBackupFormat

Underlying type: string An enum that specifies the format of the volume backup.

Appears in: - VolumeBackupStatus

VolumeBackupList

Contains a list of VolumeBackup resources.

Field Description
apiVersion string backup.gdc.goog/v1
kind string VolumeBackupList
metadata ListMeta Refer to Kubernetes API documentation for fields of metadata.
items VolumeBackup array

VolumeBackupSpec

Defines the desired state of a volume backup.

Appears in: - VolumeBackup

Field Description
clusterName string The name of the cluster that this volume backup maintains data for. By default, it is the cluster in which this volume backup is created.
backupName string The name of the associated backup. Each volume backup must be associated with a backup.
backupPlanName string The name of the backup plan from which the asssociated backup was created.
sourcePVC NamespacedName The source persistent volume claim from which the volume backup is taken from.
volumeBackupHandle string An underlying volume backup handle which uniquely identifies a volume backup inside of a volume backup repository. This handle doesn't have a unified format and is treated as an opaque string. DEPRECATED: Use the status field instead.

VolumeBackupState

Underlying type: string An enum that suggests the current state of a volume backup.

Appears in: - VolumeBackupStatus

VolumeBackupStatus

Defines the observed state of a volume backup.

Appears in: - VolumeBackup

Field Description
volumeBackupHandle string An underlying volume backup handle, which uniquely identifies a volume backup inside of a volume backup repository. This handle doesn't have a unified format and is treated as an opaque string.
format VolumeBackupFormat A volume backup format. For example, PD, Portable, etc.
storageBytes integer The size of the volume backup in the backup storage. For incremental backups this value may dynamically change if one of the previous volume backups was deleted.
diskSizeBytes integer The minimum size of the disk to which this volume backup can be restored.
state VolumeBackupState The current state of the volume backup.
message string A human-readable message indicating details about why the backup is in this state.
completeTime Time The timestamp when this VolumeBackup resource was completed in the text format of RFC 3339.
errorStatus ErrorStatus The most recent errors with the observed times included.
conditions Condition array Conditions represents the observations of this VolumeBackup's current state.

VolumeDataRestorePolicy

Underlying type: string The different volume data restoration policies.

Appears in: - RestoreConfig - RestorePolicies

VolumeRestore

Defines the schema for the VolumeRestore API.

Appears in: - VolumeRestoreList

Field Description
apiVersion string backup.gdc.goog/v1
kind string VolumeRestore
metadata ObjectMeta Refer to Kubernetes API documentation for fields of metadata.
spec VolumeRestoreSpec
status VolumeRestoreStatus

VolumeRestoreList

Contains a list of VolumeRestore resources.

Field Description
apiVersion string backup.gdc.goog/v1
kind string VolumeRestoreList
metadata ListMeta Refer to Kubernetes API documentation for fields of metadata.
items VolumeRestore array

VolumeRestoreSpec

Defines the desired state of a volume restore.

Appears in: - VolumeRestore

Field Description
clusterName string The name of the cluster that contains the data from this volume restore. By default, it is the cluster in which this volume restore is created.
restoreName string The name of the restore resource that created this volume restore.
volumeBackupName string The name of the volume backup resource that we are restoring.
targetPvc NamespacedName The target PersistentVolumeClaim resource to be restored.

VolumeRestoreStatus

Defines the observed state of a volume restore.

Appears in: - VolumeRestore

Field Description
volumeBackupHandle string An underlying volume backup handle, which uniquely identifies a volume backup inside of a volume backup repository. This handle doesn't have a unified format and is treated as an opaque string.
state VolumeRestoreState The current state of the volume restoration.
stateMessage string A human readable description of the current state.
conditions Condition array Conditions represents the observations of this Volume Restore's current state. Known condition types: Ready.
completeTime Time The end time of the volume restore process.

VolumeStrategy

Underlying type: string The tradeoffs to use when backing up volumes.

Appears in: - BackupConfig