# Custom Resource Definition - Application

## Packages

* [triliovault.trilio.io/v1](#triliovaulttrilioiov1)

## triliovault.trilio.io/v1

## Custom Resource Definition Resources

The main CRDs provided by TrilioVault for Kubernetes.

* [Backup](#backup)
* [BackupPlan](#backupplan)
* [ClusterBackup](#clusterbackup)
* [ClusterBackupPlan](#clusterbackupplan)
* [ClusterRestore](#clusterrestore)
* [ClusterSnapshot](#clustersnapshot)
* [ConsistentSet](#consistentset)
* [ContinuousRestorePlan](#continuousrestoreplan)
* [FileRecoveryVM](#filerecoveryvm)
* [Hook](#hook)
* [License](#license)
* [Policy](#policy)
* [Restore](#restore)
* [Snapshot](#snapshot)
* [Target](#target)

### Backup

Backup represents the capture of Kubernetes BackupPlan defined by user at a point in time

| Field                                    | Description                | Default | Validation |
| ---------------------------------------- | -------------------------- | ------- | ---------- |
| `apiVersion` *string*                    | `triliovault.trilio.io/v1` |         |            |
| `kind` *string*                          | `Backup`                   |         |            |
| `spec` [*BackupSpec*](#backupspec)       |                            |         |            |
| `status` [*BackupStatus*](#backupstatus) |                            |         |            |

### BackupPlan

BackupPlan is the Schema for the BackupPlan API

| Field                                            | Description                | Default | Validation   |
| ------------------------------------------------ | -------------------------- | ------- | ------------ |
| `apiVersion` *string*                            | `triliovault.trilio.io/v1` |         |              |
| `kind` *string*                                  | `BackupPlan`               |         |              |
| `spec` [*BackupPlanSpec*](#backupplanspec)       |                            |         | **required** |
| `status` [*BackupPlanStatus*](#backupplanstatus) |                            |         |              |

### ClusterBackup

ClusterBackup is the Schema for the ClusterBackup API

| Field                                                  | Description                | Default | Validation |
| ------------------------------------------------------ | -------------------------- | ------- | ---------- |
| `apiVersion` *string*                                  | `triliovault.trilio.io/v1` |         |            |
| `kind` *string*                                        | `ClusterBackup`            |         |            |
| `spec` [*ClusterBackupSpec*](#clusterbackupspec)       |                            |         |            |
| `status` [*ClusterBackupStatus*](#clusterbackupstatus) |                            |         |            |

### ClusterBackupPlan

ClusterBackupPlan is the Schema for the ClusterBackupPlan API

| Field                                                          | Description                | Default | Validation |
| -------------------------------------------------------------- | -------------------------- | ------- | ---------- |
| `apiVersion` *string*                                          | `triliovault.trilio.io/v1` |         |            |
| `kind` *string*                                                | `ClusterBackupPlan`        |         |            |
| `spec` [*ClusterBackupPlanSpec*](#clusterbackupplanspec)       |                            |         |            |
| `status` [*ClusterBackupPlanStatus*](#clusterbackupplanstatus) |                            |         |            |

### ClusterRestore

ClusterRestore defines the desired state of ClusterRestore

| Field                                                    | Description                | Default | Validation |
| -------------------------------------------------------- | -------------------------- | ------- | ---------- |
| `apiVersion` *string*                                    | `triliovault.trilio.io/v1` |         |            |
| `kind` *string*                                          | `ClusterRestore`           |         |            |
| `spec` [*ClusterRestoreSpec*](#clusterrestorespec)       |                            |         |            |
| `status` [*ClusterRestoreStatus*](#clusterrestorestatus) |                            |         |            |

### ClusterSnapshot

ClusterSnapshot is the Schema for the clustersnapshots API

| Field                                                  | Description                | Default | Validation |
| ------------------------------------------------------ | -------------------------- | ------- | ---------- |
| `apiVersion` *string*                                  | `triliovault.trilio.io/v1` |         |            |
| `kind` *string*                                        | `ClusterSnapshot`          |         |            |
| `spec` [*ClusterSnapshotSpec*](#clustersnapshotspec)   |                            |         |            |
| `status` [*ClusterBackupStatus*](#clusterbackupstatus) |                            |         |            |

### ConsistentSet

ConsistentSet is the Schema for the ConsistentSet API

| Field                                                  | Description                | Default | Validation   |
| ------------------------------------------------------ | -------------------------- | ------- | ------------ |
| `apiVersion` *string*                                  | `triliovault.trilio.io/v1` |         |              |
| `kind` *string*                                        | `ConsistentSet`            |         |              |
| `spec` [*ConsistentSetSpec*](#consistentsetspec)       |                            |         | **required** |
| `status` [*ConsistentSetStatus*](#consistentsetstatus) |                            |         |              |

### ContinuousRestorePlan

ContinuousRestorePlan is the Schema for the ContinuousRestorePlan API

| Field                                                                  | Description                | Default | Validation   |
| ---------------------------------------------------------------------- | -------------------------- | ------- | ------------ |
| `apiVersion` *string*                                                  | `triliovault.trilio.io/v1` |         |              |
| `kind` *string*                                                        | `ContinuousRestorePlan`    |         |              |
| `spec` [*ContinuousRestorePlanSpec*](#continuousrestoreplanspec)       |                            |         | **required** |
| `status` [*ContinuousRestorePlanStatus*](#continuousrestoreplanstatus) |                            |         |              |

### FileRecoveryVM

FileRecoveryVM is the Schema for the hooks API.

| Field                                                    | Description                | Default | Validation |
| -------------------------------------------------------- | -------------------------- | ------- | ---------- |
| `apiVersion` *string*                                    | `triliovault.trilio.io/v1` |         |            |
| `kind` *string*                                          | `FileRecoveryVM`           |         |            |
| `spec` [*FileRecoveryVMSpec*](#filerecoveryvmspec)       |                            |         |            |
| `status` [*FileRecoveryVMStatus*](#filerecoveryvmstatus) |                            |         |            |

### Hook

Hook is the Schema for the hooks API.

| Field                                | Description                | Default | Validation |
| ------------------------------------ | -------------------------- | ------- | ---------- |
| `apiVersion` *string*                | `triliovault.trilio.io/v1` |         |            |
| `kind` *string*                      | `Hook`                     |         |            |
| `spec` [*HookSpec*](#hookspec)       |                            |         |            |
| `status` [*HookStatus*](#hookstatus) |                            |         |            |

### License

License is the Schema for the licenses API

| Field                                      | Description                | Default | Validation |
| ------------------------------------------ | -------------------------- | ------- | ---------- |
| `apiVersion` *string*                      | `triliovault.trilio.io/v1` |         |            |
| `kind` *string*                            | `License`                  |         |            |
| `spec` [*LicenseSpec*](#licensespec)       |                            |         |            |
| `status` [*LicenseStatus*](#licensestatus) |                            |         |            |

### Policy

Policy is the Schema for the policies API

| Field                                    | Description                | Default | Validation   |
| ---------------------------------------- | -------------------------- | ------- | ------------ |
| `apiVersion` *string*                    | `triliovault.trilio.io/v1` |         |              |
| `kind` *string*                          | `Policy`                   |         |              |
| `spec` [*PolicySpec*](#policyspec)       |                            |         | **required** |
| `status` [*PolicyStatus*](#policystatus) |                            |         |              |

### Restore

Restore is the Schema for the restores API

| Field                                      | Description                | Default | Validation |
| ------------------------------------------ | -------------------------- | ------- | ---------- |
| `apiVersion` *string*                      | `triliovault.trilio.io/v1` |         |            |
| `kind` *string*                            | `Restore`                  |         |            |
| `spec` [*RestoreSpec*](#restorespec)       |                            |         |            |
| `status` [*RestoreStatus*](#restorestatus) |                            |         |            |

### Snapshot

Snapshot is the Schema for the snapshots API

| Field                                    | Description                | Default | Validation |
| ---------------------------------------- | -------------------------- | ------- | ---------- |
| `apiVersion` *string*                    | `triliovault.trilio.io/v1` |         |            |
| `kind` *string*                          | `Snapshot`                 |         |            |
| `spec` [*SnapshotSpec*](#snapshotspec)   |                            |         |            |
| `status` [*BackupStatus*](#backupstatus) |                            |         |            |

### Target

Target is a location where TrilioVault stores backup.

| Field                                    | Description                | Default | Validation |
| ---------------------------------------- | -------------------------- | ------- | ---------- |
| `apiVersion` *string*                    | `triliovault.trilio.io/v1` |         |            |
| `kind` *string*                          | `Target`                   |         |            |
| `spec` [*TargetSpec*](#targetspec)       |                            |         |            |
| `status` [*TargetStatus*](#targetstatus) |                            |         |            |

## Supporting Resources

Supporting types and specifications used by the main CRDs.

### ActionFlags

*Appears in:*

* [ClusterRestoreSpec](#clusterrestorespec)
* [RestoreSpec](#restorespec)

| Field                          | Description                                                                                    | Default | Validation   |
| ------------------------------ | ---------------------------------------------------------------------------------------------- | ------- | ------------ |
| `cleanupOnFailure` *boolean*   | CleanupOnFailure is flag to perform cleanup after restore fails. Defaults to false             |         | **optional** |
| `protectRestoredApp` *boolean* | ProtectRestoredApp decides if TVK will setup a backupPlan to protect the restored application. |         | **optional** |
| `imageRestore` *boolean*       | ImageRestore is flag to perform the container image restore                                    |         | **optional** |

### ApplicationSnapshot

ApplicationSnapshot defines the snapshot contents of an Application Backup.

*Appears in:*

* [BackupStatus](#backupstatus)

| Field                                       | Description                                                              | Default | Validation   |
| ------------------------------------------- | ------------------------------------------------------------------------ | ------- | ------------ |
| `helmCharts` [*Helm*](#helm) *array*        | HelmCharts specifies the snapshot of application defined by Helm Charts. |         | **optional** |
| `operators` [*Operator*](#operator) *array* | Operators specifies the snapshot of application defined by Operators.    |         | **optional** |
| `custom` [*Custom*](#custom)                | Custom specifies the snapshot of Custom defined applications.            |         | **optional** |
| `image` [*Image*](#image)                   | Image specifies the snapshot of the all application's container images.  |         | **optional** |

### ApplicationType

*Underlying type:* *string*

ApplicationType specifies type of a Backup of an application

*Validation:*

* Enum: \[Helm Operator Custom Namespace MultiNamespace]

*Appears in:*

* [BackupPlanStatus](#backupplanstatus)
* [BackupStatus](#backupstatus)
* [RestoreStatus](#restorestatus)

| Field            | Description                                                                                                                                                        |
| ---------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| `Helm`           | <p>HelmType means the backup consists helm based backups<br></p>                                                                                                   |
| `Operator`       | <p>OperatorType means the backup consists operator based backups<br></p>                                                                                           |
| `Custom`         | <p>CustomType means the backup consists custom label based backups<br></p>                                                                                         |
| `Namespace`      | <p>TODO: To remove Namespace Application Type as it's a duplicate of Backup scope in status.<br>NamespaceType means the backup consists namespaced backups<br></p> |
| `MultiNamespace` | <p>MultiNSType means the backup is clusterbackup, currently it is only used for showing type column in backup listing<br></p>                                      |

### BackupComponent

BackupComponent defines the namespace and their configurations for backup

*Appears in:*

* [BackupComponentInfo](#backupcomponentinfo)
* [ClusterBackupPlanSpec](#clusterbackupplanspec)

| Field                                                      | Description                                                                                                                         | Default | Validation   |
| ---------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------- | ------- | ------------ |
| `namespace` *string*                                       |                                                                                                                                     |         | **required** |
| `hookConfig` [*HookConfig*](#hookconfig)                   | hookConfig defines backup pre/post hooks and their configurations.                                                                  |         | **optional** |
| `includeResources` [*ResourceSelector*](#resourceselector) | IncludeResources specifies the resources included during backup                                                                     |         | **optional** |
| `excludeResources` [*ResourceSelector*](#resourceselector) | ExcludedResources specifies the resources excluded during backup                                                                    |         | **optional** |
| `retainHelmApps` *boolean*                                 | <p>RetainHelmApps is a bool value that states that backup the helm application using helm way<br>while taking namespace backup.</p> |         | **optional** |

### BackupCondition

BackupCondition specifies the current condition of a backup resource.

*Appears in:*

* [BackupStatus](#backupstatus)

| Field                                                                                                   | Description                                                                      | Default | Validation                                                                                                                                                                                                           |
| ------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------- | ------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `status` [*Status*](#status)                                                                            | Status is the status of the condition.                                           |         | <p>Enum: \[InProgress Error Completed Failed Skipped Canceled]<br><strong>optional</strong></p>                                                                                                                      |
| `timestamp` [*Time*](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.28/#time-v1-meta) | Timestamp is the time a condition occurred.                                      |         | **optional**                                                                                                                                                                                                         |
| `reason` *string*                                                                                       | A brief message indicating details about why the component is in this condition. |         | **optional**                                                                                                                                                                                                         |
| `phase` [*OperationType*](#operationtype)                                                               | Phase defines the current phase of the controller.                               |         | <p>Enum: \[PreBackupValidation Unquiesce Quiesce MetaSnapshot DataSnapshot DataUpload Snapshot MetadataUpload Retention Upload ImageBackup HookTargetIdentification Cleanup Cancel]<br><strong>optional</strong></p> |

### BackupConfig

BackupConfig defines the required configuration for taking the backup such as target and retention policy. NOTE: ClusterBackupConfig field in clusterbackupplan\_types.go is similar to this structure. Changes made here might be required to be reflected there as well.

*Appears in:*

* [BackupPlanSpec](#backupplanspec)

| Field                                                                                                                               | Description                                                                                                                                                              | Default | Validation                                                    |
| ----------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------- | ------------------------------------------------------------- |
| `target` [*ObjectReference*](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.28/#objectreference-v1-core)          | Target is the object reference for the backup target resources                                                                                                           |         | **required**                                                  |
| `retentionPolicy` [*ObjectReference*](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.28/#objectreference-v1-core) | RetentionPolicy is the object reference for the policy of type retention defined                                                                                         |         | **optional**                                                  |
| `schedulePolicy` [*BackupSchedulePolicy*](#backupschedulepolicy)                                                                    | SchedulePolicy includes the object references of 2 type of cron schedule policy: incremental and full                                                                    |         | **optional**                                                  |
| `maxIncrBackupsPerFullBackup` *integer*                                                                                             | <p>MaxIncrBackupsPerFullBackup is the number of incremental backups after which full backup will ge triggered.<br>This is relevant only in case of immutable backups</p> |         | <p>Maximum: 15<br>Minimum: 1<br><strong>optional</strong></p> |

### BackupInfo

BackupInfo contains the relevant information to uniquely identify a child Backup created from a ClusterBackup

*Appears in:*

* [ClusterBackupStatus](#clusterbackupstatus)

| Field                                                                                                                      | Description                                                        | Default | Validation                                                          |
| -------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------ | ------- | ------------------------------------------------------------------- |
| `backup` [*ObjectReference*](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.28/#objectreference-v1-core) | Backup ObjectReference of child Backup                             |         | **optional**                                                        |
| `status` [*Status*](#status)                                                                                               | Status status of child Backup                                      |         | **optional**                                                        |
| `percentageCompletion` *integer*                                                                                           | PercentageCompletion is the amount of backup operation completed.  |         | <p>Maximum: 100<br>Minimum: 0<br><strong>optional</strong></p>      |
| `location` *string*                                                                                                        | Location is the Backup's location on the target                    |         | **optional**                                                        |
| `type` [*BackupType*](#backuptype)                                                                                         | Type is the type of backup. It can be Full, Incremental, or Mixed. |         | <p>Enum: \[Incremental Full Mixed]<br><strong>optional</strong></p> |

### BackupPlanComponents

BackupPlanComponents contains the 3 types of components, helm charts, operators and custom label-based resources

*Appears in:*

* [BackupPlanSpec](#backupplanspec)

| Field                                                       | Description                                                                                                                                                                                                                                                                      | Default | Validation                                      |
| ----------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------- | ----------------------------------------------- |
| `helmReleases` *string array*                               | HelmReleases is the list of release names                                                                                                                                                                                                                                        |         | <p>MinItems: 1<br><strong>optional</strong></p> |
| `operators` [*OperatorSelector*](#operatorselector) *array* | Operators is the list of operator names and their selectors                                                                                                                                                                                                                      |         | <p>MinItems: 1<br><strong>optional</strong></p> |
| `customSelector` [*CustomSelector*](#customselector)        | <p>CustomSelector specify resource selection for custom resources,<br>This is the combination of <code>LabelSelector</code> including match labels and match expressions<br>and <code>GVKSelector</code> which could be <code>GroupVersionKind</code> & <code>Objects</code></p> |         | **optional**                                    |

### BackupPlanCondition

BackupPlanCondition specifies the current condition of a backupPlan resource.

*Appears in:*

* [BackupPlanStatus](#backupplanstatus)

| Field                                                                                                   | Description                                                                      | Default | Validation                                                               |
| ------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------- | ------- | ------------------------------------------------------------------------ |
| `status` [*Status*](#status)                                                                            | Status is the status of the condition.                                           |         | <p>Enum: \[InProgress Completed Failed]<br><strong>optional</strong></p> |
| `timestamp` [*Time*](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.28/#time-v1-meta) | Timestamp is the time a condition occurred.                                      |         | **optional**                                                             |
| `reason` *string*                                                                                       | A brief message indicating details about why the component is in this condition. |         | **optional**                                                             |
| `phase` [*OperationType*](#operationtype)                                                               | Phase defines the current phase of the controller.                               |         | <p>Enum: \[Sync]<br><strong>optional</strong></p>                        |

### BackupPlanFlags

*Appears in:*

* [BackupPlanSpec](#backupplanspec)
* [ClusterBackupPlanSpec](#clusterbackupplanspec)

| Field                       | Description                                                                                                                         | Default | Validation   |
| --------------------------- | ----------------------------------------------------------------------------------------------------------------------------------- | ------- | ------------ |
| `skipImageBackup` *boolean* | SkipImageBackup is flag to skip the container images backup                                                                         |         | **optional** |
| `pauseSchedule` *boolean*   | PauseSchedule is flag to pause all the schedule backups or snapshot for a backupplan/clusterbackupplan.                             |         | **optional** |
| `retainHelmApps` *boolean*  | <p>RetainHelmApps is a bool value that states that backup the helm application using helm way<br>while taking namespace backup.</p> |         | **optional** |

### BackupPlanInfo

BackupPlanInfo defines the object reference and status of a backupPlan

*Appears in:*

* [ClusterBackupPlanStatus](#clusterbackupplanstatus)

| Field                                                                                                                          | Description                                                                                                                                                                           | Default | Validation                                                                      |
| ------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------- | ------------------------------------------------------------------------------- |
| `backupPlan` [*ObjectReference*](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.28/#objectreference-v1-core) | BackupPlan is the object reference of a backupPlan                                                                                                                                    |         | **required**                                                                    |
| `partOf` [*BackupPlanSelector*](#backupplanselector)                                                                           | <p>PartOf specify how backupPlan is selected, it could be<br>by NamespaceSelector or by BackupComponent</p>                                                                           |         | <p>Enum: \[NamespaceSelector BackupComponents]<br><strong>optional</strong></p> |
| `name` *string*                                                                                                                | <p>Name will specify namespace selector's name if backupPlan is PartOf <code>NamespaceSelector</code><br>Name will be empty if backupPlan is PartOf <code>BackupComponents</code></p> |         | **optional**                                                                    |
| `status` [*Status*](#status)                                                                                                   | Status is the status of the backupPlan                                                                                                                                                |         | <p>Enum: \[Available InProgress Unavailable]<br><strong>optional</strong></p>   |

### BackupPlanSelector

*Underlying type:* *string*

BackupPlanSelector used in ClusterBackupPlan Status to identify how corresponding backupPlan is selected by, it could be by NamespaceSelector or by BackupComponent

*Validation:*

* Enum: \[NamespaceSelector BackupComponents]

*Appears in:*

* [BackupComponentInfo](#backupcomponentinfo)
* [BackupPlanInfo](#backupplaninfo)

| Field               | Description |
| ------------------- | ----------- |
| `NamespaceSelector` |             |
| `BackupComponents`  |             |

### BackupPlanSpec

BackupPlanSpec defines the desired state of BackupPlan

*Appears in:*

* [BackupPlan](#backupplan)

| Field                                                                                   | Description                                                                                                                                                                                                                         | Default | Validation   |
| --------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------- | ------------ |
| `backupConfig` [*BackupConfig*](#backupconfig)                                          | BackupConfig is the type containing the object references for all the configurations needed for backup operation                                                                                                                    |         | **optional** |
| `snapshotConfig` [*SnapshotConfig*](#snapshotconfig)                                    | SnapshotConfig is the type containing the object references for all the configurations needed for snapshot operation                                                                                                                |         | **optional** |
| `backupPlanComponents` [*BackupPlanComponents*](#backupplancomponents)                  | <p>BackupPlanComponents includes all the components which defines this BackupPlan i.e Helm charts, operators and<br>label based resources</p>                                                                                       |         | **optional** |
| `hookConfig` [*HookConfig*](#hookconfig)                                                | hookConfig defines backup pre/post hooks and their configurations.                                                                                                                                                                  |         | **optional** |
| `includeResources` [*ResourceSelector*](#resourceselector)                              | <p>IncludeResources specify resources to include for namespace scope backup based on<br><code>LabelSelector</code> & <code>GVKSelector</code>. This acts similar like <code>SelectResources</code> used in custom or operators.</p> |         | **optional** |
| `excludeResources` [*ResourceSelector*](#resourceselector)                              | <p>ExcludeResources specify resources to exclude for namespace scope backup<br>based on <code>LabelSelector</code> & <code>GVKSelector</code></p>                                                                                   |         | **optional** |
| `encryption` [*Encryption*](#encryption)                                                | Encryption specify how to encrypt backups on target for this backupPlan                                                                                                                                                             |         | **optional** |
| `securityScanConfig` [*SecurityScanConfigInfo*](#securityscanconfiginfo)                | SecurityScanConfig defines the Security Scan config to be used for Backup scanning                                                                                                                                                  |         | **optional** |
| `continuousRestoreConfig` [*ContinuousRestoreConfigInfo*](#continuousrestoreconfiginfo) | ContinuousRestoreConfig defines the Continuous Restore config to be used                                                                                                                                                            |         | **optional** |
| `retainHelmApps` *boolean*                                                              | <p>RetainHelmApps is a bool value that states that backup the helm application using helm way<br>while taking namespace backup.<br>Deprecated: RetainHelmApps moved to BackupPlanFlags</p>                                          |         | **optional** |
| `backupPlanFlags` [*BackupPlanFlags*](#backupplanflags)                                 | BackupPlanFlags specifies all the flags specified at the backup plan level.                                                                                                                                                         |         | **optional** |

### BackupPlanStats

BackupPlanStats defines the stats for a BackupPlan

*Appears in:*

* [BackupPlanStatus](#backupplanstatus)

| Field                                                   | Description                                                       | Default | Validation   |
| ------------------------------------------------------- | ----------------------------------------------------------------- | ------- | ------------ |
| `backupSummary` [*BackupSummary*](#backupsummary)       |                                                                   |         | **optional** |
| `snapshotSummary` [*SnapshotSummary*](#snapshotsummary) |                                                                   |         | **optional** |
| `restoreSummary` [*RestoreSummary*](#restoresummary)    |                                                                   |         | **optional** |
| `immutable` *boolean*                                   | Immutable specify whether a backup data is going to be immutable. |         | **optional** |

### BackupPlanStatus

BackupPlanStatus defines the observed state of BackupPlan

*Appears in:*

* [BackupPlan](#backupplan)

| Field                                                                                                                                                                 | Description                                                                                                                                                                  | Default | Validation                                                                                 |
| --------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------- | ------------------------------------------------------------------------------------------ |
| `condition` [*BackupPlanCondition*](#backupplancondition) *array*                                                                                                     | Condition is the current condition of a backupPlan.                                                                                                                          |         | **optional**                                                                               |
| `status` [*Status*](#status)                                                                                                                                          | <p>Status defines the status oif the application resource as available when no operation is running<br>and unavailable when a backup or restore operation is in progress</p> |         | <p>Enum: \[Available InProgress Unavailable]<br></p>                                       |
| `scope` [*ComponentScope*](#componentscope)                                                                                                                           | Scope indicates scope of component in BackupPlan i.e. App or Namespace.                                                                                                      |         | <p>Enum: \[App Namespace]<br><strong>optional</strong></p>                                 |
| `applicationType` [*ApplicationType*](#applicationtype)                                                                                                               | ApplicationType is the type of BackupPlan defining backup                                                                                                                    |         | <p>Enum: \[Helm Operator Custom Namespace MultiNamespace]<br><strong>optional</strong></p> |
| `incrementalCrons` *object (keys:string, values:*[*ObjectReference*](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.28/#objectreference-v1-core)*)* |                                                                                                                                                                              |         | **optional**                                                                               |
| `fullBackupCrons` *object (keys:string, values:*[*ObjectReference*](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.28/#objectreference-v1-core)*)*  |                                                                                                                                                                              |         | **optional**                                                                               |
| `snapshotCrons` *object (keys:string, values:*[*ObjectReference*](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.28/#objectreference-v1-core)*)*    |                                                                                                                                                                              |         | **optional**                                                                               |
| `stats` [*BackupPlanStats*](#backupplanstats)                                                                                                                         |                                                                                                                                                                              |         | **optional**                                                                               |
| `kubevirtStatus` [*KubevirtStatus*](#kubevirtstatus)                                                                                                                  |                                                                                                                                                                              |         | <p>Enum: \[Enabled Disabled]<br><strong>optional</strong></p>                              |
| `pauseSchedule` *boolean*                                                                                                                                             | PauseSchedule shows whether a backup plan schedule is Paused and scheduled backups will not be created.                                                                      |         | **optional**                                                                               |
| `securityScanStatus` *object (keys:string, values:*[*SecurityScanStatus*](#securityscanstatus)*)*                                                                     | SecurityScanStatus contains the information of each Security instanceID defined, and it's Security Scan status                                                               |         | **optional**                                                                               |
| `continuousRestoreStatus` *object (keys:string, values:*[*ContinuousRestoreStatus*](#continuousrestorestatus)*)*                                                      | ContinuousRestoreStatus contains the information of each ContinuousRestore instanceID defined, and it's ContinuousRestore service status                                     |         | **optional**                                                                               |
| `isImmutableBackupDisabled` *boolean*                                                                                                                                 | IsImmutableBackupDisabled states whether immutable backup is disabled for the BackupPlan                                                                                     |         | **optional**                                                                               |
| `isImmutableSnapshotDisabled` *boolean*                                                                                                                               | IsImmutableSnapshotDisabled states whether immutable snapshot is disabled for the BackupPlan                                                                                 |         | **optional**                                                                               |

### BackupScanInfo

*Appears in:*

* [ScanInstance](#scaninstance)

| Field                                                                                      | Description                                                                                                                       | Default | Validation   |
| ------------------------------------------------------------------------------------------ | --------------------------------------------------------------------------------------------------------------------------------- | ------- | ------------ |
| `metadataScannerStatus` *object (keys:string, values:*[*ScannerStatus*](#scannerstatus)*)* | <p>MetadataScannerStatus is the result of Metadata Scanning<br>It is the mapping of scanner name and its corresponding report</p> |         | **optional** |
| `dataScannerStatus` *object (keys:string, values:*[*ScannerStatus*](#scannerstatus)*)*     | <p>DataScannerStatus is the result of Data Scanning<br>It is the mapping of scanner name and its corresponding report</p>         |         | **optional** |
| `imageScannerStatus` *object (keys:string, values:*[*ScannerStatus*](#scannerstatus)*)*    | <p>ImageScannerStatus is the result of Image Scanning<br>It is the mapping of scanner name and its corresponding report</p>       |         | **optional** |

### BackupSchedulePolicy

BackupSchedulePolicy contains the object references for incremental or full backup type schedule policy

*Appears in:*

* [BackupConfig](#backupconfig)

| Field                                                                                                                                       | Description                                                                             | Default | Validation   |
| ------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------- | ------- | ------------ |
| `incrementalBackupPolicy` [*ObjectReference*](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.28/#objectreference-v1-core) | IncrementalBackupPolicy is the object reference for the policy of type schedule defined |         | **optional** |
| `fullBackupPolicy` [*ObjectReference*](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.28/#objectreference-v1-core)        | FullBackupPolicy is the object reference for the policy of type schedule defined        |         | **optional** |

### BackupSnapshotStats

BackupSnapshotStats specifies the stats of a Backup/Snapshot

*Appears in:*

* [BackupStatus](#backupstatus)

| Field                                                                                                                                       | Description                                                                           | Default | Validation   |
| ------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------- | ------- | ------------ |
| `targetInfo` [*TargetInfo*](#targetinfo)                                                                                                    | TargetInfo is the information to a Target backed up                                   |         | **optional** |
| `latestInProgressRestore` [*ObjectReference*](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.28/#objectreference-v1-core) | LatestInProgressRestore is the reference to the latest InProgress Restore of a Backup |         | **optional** |
| `latestCompletedRestore` [*ObjectReference*](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.28/#objectreference-v1-core)  | LatestCompletedRestore is the reference to the latest Completed Restore of a Backup   |         | **optional** |
| `hookExists` *boolean*                                                                                                                      | HookExists is a bool value that states if a backup has hooks in backup plan           |         | **optional** |
| `encryption` [*Encryption*](#encryption)                                                                                                    | Encryption specifies encryption details of a backup                                   |         | **optional** |
| `immutable` *boolean*                                                                                                                       | Immutable specify whether a backup data is immutable                                  |         | **optional** |

### BackupSpec

BackupSpec defines the desired state of Backup

*Appears in:*

* [Backup](#backup)

| Field                                                                                                                          | Description                                                              | Default | Validation                                 |
| ------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------ | ------- | ------------------------------------------ |
| `type` [*BackupType*](#backuptype)                                                                                             | Type is the type of backup in the sequence of backups of an Application. |         | <p>Enum: \[Incremental Full Mixed]<br></p> |
| `backupPlan` [*ObjectReference*](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.28/#objectreference-v1-core) | BackupPlan is a reference to the BackupPlan to be backed up.             |         | **required**                               |

### BackupStatus

BackupStatus defines the observed state of Backup and Snapshot

*Appears in:*

* [Backup](#backup)
* [Snapshot](#snapshot)

| Field                                                                                                                   | Description                                                                                                                                                                               | Default | Validation                                                                                                                                     |
| ----------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------- | ---------------------------------------------------------------------------------------------------------------------------------------------- |
| `backupScope` [*ComponentScope*](#componentscope)                                                                       | <p>BackupScope indicates scope of component in backup i.e. App or Namespace.<br>Deprecated: Use Scope instead.</p>                                                                        |         | <p>Enum: \[App Namespace]<br><strong>optional</strong></p>                                                                                     |
| `scope` [*ComponentScope*](#componentscope)                                                                             | Scope indicates scope of a component in Backup/Snapshot i.e., App or Namespace.                                                                                                           |         | <p>Enum: \[App Namespace]<br><strong>optional</strong></p>                                                                                     |
| `applicationType` [*ApplicationType*](#applicationtype)                                                                 | ApplicationType is the type of Application backed up in the App Scoped backup.                                                                                                            |         | <p>Enum: \[Helm Operator Custom Namespace MultiNamespace]<br><strong>optional</strong></p>                                                     |
| `type` [*BackupType*](#backuptype)                                                                                      | <p>Type indicates the backup type in backup i.e. Full, Incremental or Mixed.<br>this field is required only for Backup CRs and not for Snapshot CRs</p>                                   |         | <p>Enum: \[Incremental Full Mixed]<br><strong>optional</strong></p>                                                                            |
| `location` *string*                                                                                                     | Location is the absolute path of the target where backup resides.                                                                                                                         |         |                                                                                                                                                |
| `startTimestamp` [*Time*](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.28/#time-v1-meta)            | StartTimestamp is the time a backup was started.                                                                                                                                          |         | **optional**                                                                                                                                   |
| `completionTimestamp` [*Time*](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.28/#time-v1-meta)       | CompletionTimestamp is the time a backup was finished.                                                                                                                                    |         | **optional**                                                                                                                                   |
| `phase` [*OperationType*](#operationtype)                                                                               | Phase is the current phase of the backup operation.                                                                                                                                       |         | **optional**                                                                                                                                   |
| `phaseStatus` [*Status*](#status)                                                                                       | PhaseStatus is the status of phase backup operation going through.                                                                                                                        |         | <p>Enum: \[InProgress Pending Error Completed Failed]<br><strong>optional</strong></p>                                                         |
| `status` [*Status*](#status)                                                                                            | Status is the status of the backup operation.                                                                                                                                             |         | <p>Enum: \[Queued InProgress Pending Error Completed Failed Available Coalescing Canceling Canceled Degraded]<br><strong>optional</strong></p> |
| `metadataSize` [*Quantity*](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.28/#quantity-resource-api) | MetadataSize is the size of the metadata backed up.                                                                                                                                       |         | **optional**                                                                                                                                   |
| `size` [*Quantity*](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.28/#quantity-resource-api)         | Size is the aggregate size of metadata and data backed up                                                                                                                                 |         | **optional**                                                                                                                                   |
| `percentageCompletion` *integer*                                                                                        | PercentageCompletion is the amount of backup operation completed.                                                                                                                         |         | <p>Maximum: 100<br>Minimum: 0<br><strong>optional</strong></p>                                                                                 |
| `expirationTimestamp` [*Time*](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.28/#time-v1-meta)       | ExpirationTimeStamp is the time a backup will not be available after retention.                                                                                                           |         | **optional**                                                                                                                                   |
| `snapshot` [*ApplicationSnapshot*](#applicationsnapshot)                                                                | <p>Todo: Do we need this option as optional one?<br>Todo: This is optional because, we are allowing the custom backup as empty<br>Snapshot specifies the contents of captured backup.</p> |         | **optional**                                                                                                                                   |
| `condition` [*BackupCondition*](#backupcondition) *array*                                                               | Condition is the current condition of hooks while backup.                                                                                                                                 |         | **optional**                                                                                                                                   |
| `hookStatus` [*HookComponentStatus*](#hookcomponentstatus)                                                              | HookStatus specifies pre/post hook execution status for current backup.                                                                                                                   |         | **optional**                                                                                                                                   |
| `stats` [*BackupSnapshotStats*](#backupsnapshotstats)                                                                   |                                                                                                                                                                                           |         | **optional**                                                                                                                                   |
| `securityScanStatus` *object (keys:string, values:*[*SecurityScanStatusInfo*](#securityscanstatusinfo)*)*               | SecurityScanStatus contains the information of Security Scan performed for Backup on each Security instanceID defined.                                                                    |         | **optional**                                                                                                                                   |
| `consistentSetStatus` *object (keys:string, values:*[*ConsistentSetInfo*](#consistentsetinfo)*)*                        | <p>ConsistentSetStatus contains the mapping of instanceID and the ContinuousRestore performed<br>for Backup on that ContinuousRestore site instance.</p>                                  |         | **optional**                                                                                                                                   |
| `duration` [*Duration*](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.28/#duration-v1-meta)          | Duration is the amount of time the backup process took to finish.                                                                                                                         |         | **optional**                                                                                                                                   |
| `encryptionEnabled` *boolean*                                                                                           | EncryptionEnabled flag shows that encryption is enabled for backup                                                                                                                        |         | **optional**                                                                                                                                   |
| `hasKubevirtResources` *boolean*                                                                                        | HasKubevirtResources flag will be true if backup contains any kubevirt resources (VirtualMachine etc)                                                                                     |         | **optional**                                                                                                                                   |
| `coalesceInfo` [*CoalesceInfo*](#coalesceinfo)                                                                          | CoalesceInfo contains the information of retention operation performed for backup                                                                                                         |         | **optional**                                                                                                                                   |

### BackupSummary

BackupSummary comprises backup object references and count of backups with different statuses

*Appears in:*

* [BackupPlanStats](#backupplanstats)

| Field                                                                                                                                    | Description                                                                                                         | Default | Validation   |
| ---------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------- | ------- | ------------ |
| `inProgressBackup` [*ObjectReference*](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.28/#objectreference-v1-core)     | InProgressBackup is the reference to an InProgress backup of a BackupPlan                                           |         | **optional** |
| `lastSuccessfulBackup` [*ObjectReference*](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.28/#objectreference-v1-core) | LastSuccessfulBackup is the reference to Latest available Backup of a BackupPlan                                    |         | **optional** |
| `latestBackup` [*ObjectReference*](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.28/#objectreference-v1-core)         | LatestBackup is the reference to Latest Backup in any state, of a BackupPlan                                        |         | **optional** |
| `totalAvailableBackups` *integer*                                                                                                        | TotalAvailableBackups is the count of total number of Available Backups                                             |         | **optional** |
| `totalFailedBackups` *integer*                                                                                                           | TotalFailedBackups is the count of total number of InProgress Backups                                               |         | **optional** |
| `totalCanceledBackups` *integer*                                                                                                         | TotalCanceledBackups is the count of total number of Canceled Backups                                               |         | **optional** |
| `totalQueuedBackups` *integer*                                                                                                           | TotalQueuedBackups is the count of total number of Queued Backups                                                   |         | **optional** |
| `totalDegradedBackups` *integer*                                                                                                         | TotalDegradedBackups is the count of total number of Degraded Backups                                               |         | **optional** |
| `pvcExistsForBackup` *boolean*                                                                                                           | PVCExistsForBackup is a bool value that states if the latest backup of a backup plan has PVCs in its data component |         | **optional** |

### BackupType

*Underlying type:* *string*

BackupType defines the type backup instance of an BackupPlan

*Validation:*

* Enum: \[Incremental Full Mixed]

*Appears in:*

* [BackupInfo](#backupinfo)
* [BackupSpec](#backupspec)
* [BackupStatus](#backupstatus)
* [ClusterBackupSpec](#clusterbackupspec)
* [ClusterBackupStatus](#clusterbackupstatus)
* [DataSnapshot](#datasnapshot)
* [ImageSnapshot](#imagesnapshot)

| Field         | Description                                                                                                  |
| ------------- | ------------------------------------------------------------------------------------------------------------ |
| `Incremental` | <p>Incremental means the backup instance is intermediate part of sequential backups of an BackupPlan<br></p> |
| `Full`        | <p>Full means that the backup instance is whole in itself and can individually restored<br></p>              |
| `Mixed`       | <p>Mixed means that the backup instance has backup ad<br></p>                                                |

### CleanupConfig

CleanupConfig is the configuration for the PolicyType: Cleanup

*Appears in:*

* [PolicySpec](#policyspec)

| Field                      | Description                                                                                                                 | Default | Validation                                                    |
| -------------------------- | --------------------------------------------------------------------------------------------------------------------------- | ------- | ------------------------------------------------------------- |
| `backupDays` [*int*](#int) | <p>BackupDays is the age of backups to be cleaned<br>Deprecated: Renamed to be used for both Backup and Restore cleanup</p> |         | <p>Format: int<br>Minimum: 0<br><strong>optional</strong></p> |
| `days` [*int*](#int)       | Days is the age of backups/restores to be cleaned                                                                           |         | <p>Format: int<br>Minimum: 0<br><strong>required</strong></p> |

### ClusterBackupCondition

ClusterBackupCondition specifies the current condition of a clusterBackup resource.

*Appears in:*

* [ClusterBackupStatus](#clusterbackupstatus)

| Field                                                                                                   | Description                                                                      | Default | Validation                                                                                                              |
| ------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------- | ------- | ----------------------------------------------------------------------------------------------------------------------- |
| `phase` [*OperationType*](#operationtype)                                                               | Phase defines the current phase of the controller.                               |         | <p>Enum: \[Snapshot Backup PreClusterBackupValidation MetadataUpload Retention Cancel]<br><strong>optional</strong></p> |
| `status` [*Status*](#status)                                                                            | Status is the status of the condition.                                           |         | <p>Enum: \[Available InProgress Failed Completed Skipped Canceled]<br><strong>optional</strong></p>                     |
| `timestamp` [*Time*](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.28/#time-v1-meta) | Timestamp is the time a condition occurred.                                      |         | **optional**                                                                                                            |
| `reason` *string*                                                                                       | A brief message indicating details about why clusterBackup is in this condition. |         | **optional**                                                                                                            |

### ClusterBackupConfig

ClusterBackupConfig defines the require configuration for taking the backup such as target and retention policy. NOTE: BackupConfig field in backupplan\_types.go is similar to this structure. Changes made here might be required to be reflected there as well.

*Appears in:*

* [ClusterBackupPlanSpec](#clusterbackupplanspec)

| Field                                                                                                                               | Description                                                                                                                                                              | Default | Validation                                                    |
| ----------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------- | ------------------------------------------------------------- |
| `target` [*ObjectReference*](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.28/#objectreference-v1-core)          | Target is the object reference for the backup target resources                                                                                                           |         | **required**                                                  |
| `retentionPolicy` [*ObjectReference*](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.28/#objectreference-v1-core) | RetentionPolicy is the object reference for the policy of type retention defined                                                                                         |         | **optional**                                                  |
| `schedulePolicy` [*ClusterBackupSchedulePolicy*](#clusterbackupschedulepolicy)                                                      | SchedulePolicy includes the object references of 2 type of cron schedule policy: incremental and full                                                                    |         | **optional**                                                  |
| `maxIncrBackupsPerFullBackup` *integer*                                                                                             | <p>MaxIncrBackupsPerFullBackup is the number of incremental backups after which full backup will ge triggered.<br>This is relevant only in case of immutable backups</p> |         | <p>Maximum: 15<br>Minimum: 1<br><strong>optional</strong></p> |

### ClusterBackupPlanCondition

ClusterBackupPlanCondition specifies the current condition of a cluster backup plan resource.

*Appears in:*

* [ClusterBackupPlanStatus](#clusterbackupplanstatus)

| Field                                                                                                   | Description                                                                      | Default | Validation                                                                                           |
| ------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------- | ------- | ---------------------------------------------------------------------------------------------------- |
| `status` [*Status*](#status)                                                                            | Status is the status of the condition                                            |         | <p>Enum: \[Available InProgress Unavailable Completed Failed Error]<br><strong>optional</strong></p> |
| `timestamp` [*Time*](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.28/#time-v1-meta) | Timestamp is the time a condition occurred.                                      |         | **optional**                                                                                         |
| `reason` *string*                                                                                       | A brief message indicating details about why the component is in this condition. |         | **optional**                                                                                         |
| `phase` [*OperationType*](#operationtype)                                                               | Phase defines the current phase of the controller.                               |         | <p>Enum: \[Sync]<br><strong>optional</strong></p>                                                    |

### ClusterBackupPlanSpec

ClusterBackupPlanSpec defines the desired state of ClusterBackupPlan

*Appears in:*

* [ClusterBackupPlan](#clusterbackupplan)

| Field                                                                                   | Description                                                                                                                                                                                       | Default | Validation                                      |
| --------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------- | ----------------------------------------------- |
| `backupComponents` [*BackupComponent*](#backupcomponent) *array*                        | <p>BackupComponents defines all the BackupComponents for which backups are to be taken.<br>It includes namespaces and their configurations</p>                                                    |         | <p>MinItems: 1<br><strong>optional</strong></p> |
| `namespaceSelector` [*NamespaceSelector*](#namespaceselector) *array*                   | <p>NamespaceSelector defines namespaces for which backups are to be taken based on<br>NamespaceSelector(labels & match expression) & their configurations</p>                                     |         | **optional**                                    |
| `backupConfig` [*ClusterBackupConfig*](#clusterbackupconfig)                            | BackupConfig is the type containing the object references for all the configurations needed for cluster backup operation                                                                          |         | **optional**                                    |
| `snapshotConfig` [*SnapshotConfig*](#snapshotconfig)                                    | SnapshotConfig is the type containing the object references for all the configurations needed for cluster snapshot operation                                                                      |         | **optional**                                    |
| `includeResources` [*ResourceSelector*](#resourceselector)                              | IncludeResources specifies the resources to be explicitly included during backup                                                                                                                  |         | **optional**                                    |
| `excludeResources` [*ResourceSelector*](#resourceselector)                              | ExcludedResources specifies the resources to be excluded from the backup                                                                                                                          |         | **optional**                                    |
| `encryption` [*Encryption*](#encryption)                                                | Encryption specify how to encrypt backups on target for this backupPlan                                                                                                                           |         | **optional**                                    |
| `securityScanConfig` [*SecurityScanConfigInfo*](#securityscanconfiginfo)                | SecurityScanConfig defines the Security Scan config to be used for ClusterBackup scanning                                                                                                         |         | **optional**                                    |
| `continuousRestoreConfig` [*ContinuousRestoreConfigInfo*](#continuousrestoreconfiginfo) | ContinuousRestoreConfig defines the Continuous Restore config to be used                                                                                                                          |         | **optional**                                    |
| `retainHelmApps` *boolean*                                                              | <p>RetainHelmApps is a bool value that states that backup the helm application using helm way<br>while taking namespace backup.<br>Deprecated: RetainHelmApps moved to ClusterBackupPlanFlags</p> |         | **optional**                                    |
| `clusterBackupPlanFlags` [*BackupPlanFlags*](#backupplanflags)                          | BackupPlanFlags specifies all the flags specified at the cluster backup plan level.                                                                                                               |         | **optional**                                    |

### ClusterBackupPlanStats

ClusterBackupPlanStats defines the stats for a ClusterBackupPlan

*Appears in:*

* [ClusterBackupPlanStatus](#clusterbackupplanstatus)

| Field                                                                        | Description                                                      | Default | Validation   |
| ---------------------------------------------------------------------------- | ---------------------------------------------------------------- | ------- | ------------ |
| `clusterBackupSummary` [*ClusterBackupSummary*](#clusterbackupsummary)       |                                                                  |         | **optional** |
| `clusterSnapshotSummary` [*ClusterSnapshotSummary*](#clustersnapshotsummary) |                                                                  |         | **optional** |
| `clusterRestoreSummary` [*ClusterRestoreSummary*](#clusterrestoresummary)    |                                                                  |         | **optional** |
| `immutable` *boolean*                                                        | Immutable specify whether a backup data is going to be immutable |         | **optional** |

### ClusterBackupPlanStatus

ClusterBackupPlanStatus defines the observed state of ClusterBackupPlan

*Appears in:*

* [ClusterBackupPlan](#clusterbackupplan)

| Field                                                                                                                                                                     | Description                                                                                                                                                     | Default | Validation                                                 |
| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------- | ---------------------------------------------------------- |
| `status` [*Status*](#status)                                                                                                                                              | <p>Status defines the current state of the ClusterBackupPlan resource. <code>Available</code> state ClusterBackupPlan only<br>can be used for ClusterBackup</p> |         | <p>Enum: \[Available InProgress Unavailable Error]<br></p> |
| `backupPlans` *object (keys:string, values:*[*BackupPlanInfo*](#backupplaninfo)*)*                                                                                        | BackupPlans is the map of backupPlan name and its object ref managed by cluster backup plan                                                                     |         | **optional**                                               |
| `incrementalCrons` *object (keys:string, values:*[*ObjectReference*](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.28/#objectreference-v1-core)*)*     |                                                                                                                                                                 |         | **optional**                                               |
| `fullBackupCrons` *object (keys:string, values:*[*ObjectReference*](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.28/#objectreference-v1-core)*)*      |                                                                                                                                                                 |         | **optional**                                               |
| `clusterSnapshotCrons` *object (keys:string, values:*[*ObjectReference*](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.28/#objectreference-v1-core)*)* |                                                                                                                                                                 |         | **optional**                                               |
| `condition` [*ClusterBackupPlanCondition*](#clusterbackupplancondition) *array*                                                                                           | Condition is the current condition of a cluster backup plan.                                                                                                    |         | **optional**                                               |
| `stats` [*ClusterBackupPlanStats*](#clusterbackupplanstats)                                                                                                               |                                                                                                                                                                 |         | **optional**                                               |
| `pauseSchedule` *boolean*                                                                                                                                                 | PauseSchedule shows whether a cluster backup plan schedule is Paused and scheduled cluster backups will not be created.                                         |         | **optional**                                               |
| `securityScanStatus` *object (keys:string, values:*[*SecurityScanStatus*](#securityscanstatus)*)*                                                                         | SecurityScanStatus contains the information of each Security instanceID defined, and it's Security Scan status                                                  |         | **optional**                                               |
| `continuousRestoreStatus` *object (keys:string, values:*[*ContinuousRestoreStatus*](#continuousrestorestatus)*)*                                                          | ContinuousRestoreStatus contains the information of each ContinuousRestore instanceID defined, and it's ContinuousRestore service status                        |         | **optional**                                               |
| `isImmutableClusterBackupDisabled` *boolean*                                                                                                                              | IsImmutableClusterBackupDisabled states if the immutable cluster backup is disabled for the ClusterBackupPlan                                                   |         | **optional**                                               |
| `isImmutableClusterSnapshotDisabled` *boolean*                                                                                                                            | IsImmutableClusterSnapshotDisabled states if the immutable cluster snapshot is disabled for the ClusterBackupPlan                                               |         | **optional**                                               |

### ClusterBackupSchedulePolicy

ClusterBackupSchedulePolicy contains the object references for incremental or full backup type schedule policy

*Appears in:*

* [ClusterBackupConfig](#clusterbackupconfig)

| Field                                                                                                                                       | Description                                                                             | Default | Validation   |
| ------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------- | ------- | ------------ |
| `incrementalBackupPolicy` [*ObjectReference*](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.28/#objectreference-v1-core) | IncrementalBackupPolicy is the object reference for the policy of type schedule defined |         | **optional** |
| `fullBackupPolicy` [*ObjectReference*](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.28/#objectreference-v1-core)        | FullBackupPolicy is the object reference for the policy of type schedule defined        |         | **optional** |

### ClusterBackupSnapshotStats

ClusterBackupSnapshotStats specifies the stats of a ClusterBackup/ClusterSnapshot

*Appears in:*

* [ClusterBackupStatus](#clusterbackupstatus)

| Field                                                                                                                                              | Description                                                                                                | Default | Validation   |
| -------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------- | ------- | ------------ |
| `targetInfo` [*TargetInfo*](#targetinfo)                                                                                                           | TargetInfo is the information to a Target backed up                                                        |         | **optional** |
| `latestInProgressClusterRestore` [*ObjectReference*](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.28/#objectreference-v1-core) | LatestInProgressClusterRestore is the reference to the latest InProgress ClusterRestore of a ClusterBackup |         | **optional** |
| `lastCompletedClusterRestore` [*ObjectReference*](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.28/#objectreference-v1-core)    | LastCompletedClusterRestore is the reference to the latest Completed ClusterRestore of a ClusterBackup     |         | **optional** |
| `hookExists` *boolean*                                                                                                                             | HookExists is a bool value that states if a ClusterBackup has hooks in ClusterBackupPlan                   |         | **optional** |
| `encryption` [*Encryption*](#encryption)                                                                                                           | Encryption specifies encryption details of a ClusterBackup                                                 |         | **optional** |
| `immutable` *boolean*                                                                                                                              | Immutable specify whether a clusterBackup data is immutable                                                |         | **optional** |

### ClusterBackupSpec

ClusterBackupSpec defines the desired state of ClusterBackup

*Appears in:*

* [ClusterBackup](#clusterbackup)

| Field                                                                                                                                 | Description                                                                | Default | Validation                                 |
| ------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------- | ------- | ------------------------------------------ |
| `type` [*BackupType*](#backuptype)                                                                                                    | Type is the type of clusterBackup in the sequence of clusterBackups.       |         | <p>Enum: \[Incremental Full Mixed]<br></p> |
| `clusterBackupPlan` [*ObjectReference*](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.28/#objectreference-v1-core) | ClusterBackupPlan is a reference to the ClusterBackupPlan to be backed up. |         |                                            |

### ClusterBackupStatus

ClusterBackupStatus defines the observed state of ClusterBackup and ClusterSnapshot

*Appears in:*

* [ClusterBackup](#clusterbackup)
* [ClusterSnapshot](#clustersnapshot)

| Field                                                                                                                   | Description                                                                                                                                                                  | Default | Validation                                                                                                                       |
| ----------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------- | -------------------------------------------------------------------------------------------------------------------------------- |
| `type` [*BackupType*](#backuptype)                                                                                      | <p>Type indicates the ClusterBackup type in backup i.e. Full, Incremental or Mixed.<br>this field is required only for ClusterBackup CRs and not for ClusterSnapshot CRs</p> |         | <p>Enum: \[Incremental Full Mixed]<br><strong>optional</strong></p>                                                              |
| `location` *string*                                                                                                     | Location is the absolute path of the target where backup resides.                                                                                                            |         |                                                                                                                                  |
| `startTimestamp` [*Time*](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.28/#time-v1-meta)            | StartTimestamp is the time when ClusterBackup was started.                                                                                                                   |         | <p>Format: date-time<br><strong>optional</strong></p>                                                                            |
| `completionTimestamp` [*Time*](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.28/#time-v1-meta)       | CompletionTimestamp is the time when ClusterBackup finished.                                                                                                                 |         | <p>Format: date-time<br><strong>optional</strong></p>                                                                            |
| `status` [*Status*](#status)                                                                                            | Status is the status of the ClusterBackup operation.                                                                                                                         |         | <p>Enum: \[Queued InProgress Completed Failed Available Coalescing Canceling Canceled Degraded]<br><strong>optional</strong></p> |
| `metadataSize` [*Quantity*](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.28/#quantity-resource-api) | MetadataSize is the size of the metadata backed up.                                                                                                                          |         | **optional**                                                                                                                     |
| `size` [*Quantity*](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.28/#quantity-resource-api)         | Size is the aggregate size of the data backuped up.                                                                                                                          |         | **optional**                                                                                                                     |
| `percentageCompletion` *integer*                                                                                        | PercentageCompletion is the percentage of ClusterBackup operation completed.                                                                                                 |         | <p>Maximum: 100<br>Minimum: 0<br><strong>optional</strong></p>                                                                   |
| `expirationTimestamp` [*Time*](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.28/#time-v1-meta)       | ExpirationTimeStamp is the time after which a ClusterBackup will not be available after retention.                                                                           |         | <p>Format: date-time<br><strong>optional</strong></p>                                                                            |
| `condition` [*ClusterBackupCondition*](#clusterbackupcondition) *array*                                                 | Condition is the conditions a ClusterBackup goes through during backup                                                                                                       |         | **optional**                                                                                                                     |
| `duration` [*Duration*](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.28/#duration-v1-meta)          | Duration is the amount of time the ClusterBackup process took to finish.                                                                                                     |         | **optional**                                                                                                                     |
| `backupInfos` *object (keys:string, values:*[*BackupInfo*](#backupinfo)*)*                                              | BackupInfos contains the information of the child Backup CRs created by this ClusterBackup                                                                                   |         | **optional**                                                                                                                     |
| `snapshotInfos` *object (keys:string, values:*[*SnapshotInfo*](#snapshotinfo)*)*                                        | SnapshotInfos contains the information of the child Snapshot CRs created by this ClusterSnapshot                                                                             |         | **optional**                                                                                                                     |
| `stats` [*ClusterBackupSnapshotStats*](#clusterbackupsnapshotstats)                                                     |                                                                                                                                                                              |         | **optional**                                                                                                                     |
| `securityScanStatus` *object (keys:string, values:*[*SecurityScanStatusInfo*](#securityscanstatusinfo)*)*               | SecurityScanStatus contains the information of Security Scan performed for ClusterBackup on each Security instanceID defined.                                                |         | **optional**                                                                                                                     |
| `consistentSetStatus` *object (keys:string, values:*[*ConsistentSetInfo*](#consistentsetinfo)*)*                        | <p>ConsistentSetStatus contains the information of ContinuousRestore performed for ClusterBackup<br>on each ContinuousRestore instanceID defined.</p>                        |         | **optional**                                                                                                                     |
| `encryptionEnabled` *boolean*                                                                                           | EncryptionEnabled flag shows that encryption is enabled for cluster backup                                                                                                   |         | **optional**                                                                                                                     |
| `hasKubevirtResources` *boolean*                                                                                        | HasKubevirtResources flag will be true if any child backup contains kubevirt resources (VirtualMachine etc)                                                                  |         | **optional**                                                                                                                     |
| `coalesceInfo` [*CoalesceInfo*](#coalesceinfo)                                                                          | CoalesceInfo contains the information of retention operation performed for clusterbackup                                                                                     |         | **optional**                                                                                                                     |

### ClusterBackupSummary

ClusterBackupSummary comprises ClusterBackup object references and count of ClusterBackups with different statuses

*Appears in:*

* [ClusterBackupPlanStats](#clusterbackupplanstats)

| Field                                                                                                                                           | Description                                                                                                                                                    | Default | Validation   |
| ----------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------- | ------------ |
| `inProgressClusterBackup` [*ObjectReference*](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.28/#objectreference-v1-core)     | InProgressClusterBackup is the reference to an InProgress ClusterBackup of a ClusterBackupPlan                                                                 |         | **optional** |
| `lastSuccessfulClusterBackup` [*ObjectReference*](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.28/#objectreference-v1-core) | LastSuccessfulClusterBackup is the reference to Latest available ClusterBackup of a ClusterBackupPlan                                                          |         | **optional** |
| `latestClusterBackup` [*ObjectReference*](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.28/#objectreference-v1-core)         | LatestClusterBackup is the reference to Latest ClusterBackup in any state, of a ClusterBackupPlan                                                              |         | **optional** |
| `totalAvailableClusterBackups` *integer*                                                                                                        | TotalAvailableClusterBackups is the count of total number of Available ClusterBackups                                                                          |         | **optional** |
| `totalFailedClusterBackups` *integer*                                                                                                           | TotalFailedClusterBackups is the count of total number of Failed ClusterBackups.                                                                               |         | **optional** |
| `totalCanceledClusterBackups` *integer*                                                                                                         | TotalCanceledClusterBackups is the count of total number of Canceled Cluster Backups                                                                           |         | **optional** |
| `totalQueuedClusterBackups` *integer*                                                                                                           | TotalQueuedClusterBackups is the count of total number of Queued ClusterBackups.                                                                               |         | **optional** |
| `totalDegradedClusterBackups` *integer*                                                                                                         | TotalDegradedClusterBackups is the count of total number of Degraded ClusterBackups.                                                                           |         | **optional** |
| `pvcExistsForBackup` *boolean*                                                                                                                  | <p>PVCExistsForBackup is a bool value that states if the latest clusterBackup of a clusterBackupPlan has any backup<br>that has PVCs in its data component</p> |         | **optional** |

### ClusterRestoreCondition

*Appears in:*

* [ClusterRestoreStatus](#clusterrestorestatus)

| Field                                                                                                   | Description                                                                      | Default | Validation                                                                                                 |
| ------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------- | ------- | ---------------------------------------------------------------------------------------------------------- |
| `phase` [*OperationType*](#operationtype)                                                               | Phase defines the current phase of the controller.                               |         | <p>Enum: \[PreClusterRestore Restore ClusterRestoreCleanup AddProtection]<br><strong>optional</strong></p> |
| `status` [*Status*](#status)                                                                            | Status is the status of the cluster restore.                                     |         | <p>Enum: \[InProgress Error Completed Failed]<br><strong>optional</strong></p>                             |
| `timestamp` [*Time*](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.28/#time-v1-meta) | Timestamp is the time a condition occurred.                                      |         | **optional**                                                                                               |
| `reason` *string*                                                                                       | A brief message indicating details about why the component is in this condition. |         | **optional**                                                                                               |

### ClusterRestoreSource

*Appears in:*

* [ClusterRestoreSpec](#clusterrestorespec)

| Field                                                                                                                                     | Description                                                                                                                    | Default | Validation                                                                                                       |
| ----------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------ | ------- | ---------------------------------------------------------------------------------------------------------------- |
| `type` [*ClusterRestoreSourceType*](#clusterrestoresourcetype)                                                                            | Type is the type of source for restore                                                                                         |         | <p>Enum: \[ClusterBackup ClusterSnapshot Location ClusterBackupPlan ConsistentSet ContinuousRestorePlan]<br></p> |
| `clusterBackup` [*ObjectReference*](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.28/#objectreference-v1-core)         | ClusterBackup is a reference to the ClusterBackup instance restored if type is ClusterBackup.                                  |         | **optional**                                                                                                     |
| `clusterSnapshot` [*ObjectReference*](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.28/#objectreference-v1-core)       | ClusterSnapshot is a reference to the ClusterSnapshot instance restored if type is ClusterSnapshot.                            |         | **optional**                                                                                                     |
| `target` [*ObjectReference*](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.28/#objectreference-v1-core)                | Target is a reference to the Target instance where from restore is performed if type is Location.                              |         | **optional**                                                                                                     |
| `location` *string*                                                                                                                       | Location is an absolute path to remote target from where restore is performed if type is Location.                             |         | **optional**                                                                                                     |
| `clusterBackupPlan` [*ObjectReference*](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.28/#objectreference-v1-core)     | ClusterBackupPlan is a reference to the ClusterBackupPlan whose latest successful backup is to be restored.                    |         | **optional**                                                                                                     |
| `consistentSet` [*ObjectReference*](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.28/#objectreference-v1-core)         | ConsistentSet is a reference to the ConsistentSet where restore is performed if type is ConsistentSet.                         |         | **optional**                                                                                                     |
| `continuousRestorePlan` [*ObjectReference*](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.28/#objectreference-v1-core) | ContinuousRestorePlan is a reference to the ContinuousRestorePlan where restore is performed if type is ContinuousRestorePlan. |         | **optional**                                                                                                     |

### ClusterRestoreSourceType

*Underlying type:* *string*

*Appears in:*

* [ClusterRestoreSource](#clusterrestoresource)

| Field                   | Description                                                                                                           |
| ----------------------- | --------------------------------------------------------------------------------------------------------------------- |
| `ClusterBackup`         | <p>ClusterBackupSource means that the restore is performed from ClusterBackup instance<br></p>                        |
| `ClusterSnapshot`       | <p>ClusterSnapshotSource means that the restore is performed from ClusterSnapshot instance<br></p>                    |
| `Location`              | <p>ClusterLocationSource means that the restore is performed from remote target location<br></p>                      |
| `ClusterBackupPlan`     | <p>ClusterBackupPlanSource means that the restore is performed from ClusterBackup instance<br></p>                    |
| `ConsistentSet`         | <p>ClusterConsistentSetSource means that the restore is performed from ConsistentSet instance<br></p>                 |
| `ContinuousRestorePlan` | <p>ClusterContinuousRestorePlanSource means that the restore is performed from ContinuousRestorePlan instance<br></p> |

### ClusterRestoreSpec

ClusterRestoreSpec defines the source from where the ClusterRestore is to be done

*Appears in:*

* [ClusterRestore](#clusterrestore)

| Field                                                      | Description                                                                                                                                                      | Default | Validation                                      |
| ---------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------- | ----------------------------------------------- |
| `source` [*ClusterRestoreSource*](#clusterrestoresource)   | Type is the type of source for ClusterRestore                                                                                                                    |         | **required**                                    |
| `globalConfig` [*RestoreConfig*](#restoreconfig)           | <p>GlobalConfig is the global restore configuration which is applicable for the components of restore unless explicitly overridden<br>at the component level</p> |         | **optional**                                    |
| `components` [*ComponentConfig*](#componentconfig) *array* | Components defines the components and their custom configuration using which individual component restore is to be done                                          |         | <p>MinItems: 1<br><strong>optional</strong></p> |
| `excludeComponents` *string array*                         | ExcludeComponents specifies the components(namespaces) to be excluded from the ClusterRestore                                                                    |         | <p>MinItems: 1<br><strong>optional</strong></p> |
| `actionFlags` [*ActionFlags*](#actionflags)                |                                                                                                                                                                  |         | **optional**                                    |
| `encryption` [*Encryption*](#encryption)                   | Encryption specify encryption key to decrypt the encrypted data.                                                                                                 |         | **optional**                                    |
| `imageRegistry` [*ImageRegistry*](#imageregistry)          | ImageRegistry specifies the configuration to restore container images                                                                                            |         | **optional**                                    |

### ClusterRestoreStats

ClusterRestoreStats defines the stats for a RestorCluster

*Appears in:*

* [ClusterRestoreStatus](#clusterrestorestatus)

| Field                                                                                                                                 | Description                                                                            | Default | Validation   |
| ------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------- | ------- | ------------ |
| `clusterBackupPlan` [*ObjectReference*](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.28/#objectreference-v1-core) | ClusterBackupPlan is the reference to ClusterBackupPlan associated with ClusterRestore |         | **optional** |
| `clusterBackup` [*ObjectReference*](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.28/#objectreference-v1-core)     | ClusterBackup is the reference to the ClusterBackup associated with ClusterRestore     |         | **optional** |
| `clusterSnapshot` [*ObjectReference*](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.28/#objectreference-v1-core)   | ClusterSnapshot is the reference to the ClusterSnapshot associated with ClusterRestore |         | **optional** |

### ClusterRestoreStatus

ClusterRestoreStatus defines the observed state of ClusterRestore

*Appears in:*

* [ClusterRestore](#clusterrestore)

| Field                                                                                                             | Description                                                                                                                                                                                                    | Default | Validation                                                                             |
| ----------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------- | -------------------------------------------------------------------------------------- |
| `startTimestamp` [*Time*](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.28/#time-v1-meta)      | StartTimestamp is the time when ClusterRestore was started.                                                                                                                                                    |         | <p>Format: date-time<br><strong>optional</strong></p>                                  |
| `completionTimestamp` [*Time*](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.28/#time-v1-meta) | CompletionTimestamp is the time when ClusterRestore finished.                                                                                                                                                  |         | <p>Format: date-time<br><strong>optional</strong></p>                                  |
| `phase` [*OperationType*](#operationtype)                                                                         | Phase is the current phase of the ClusterRestore operation.                                                                                                                                                    |         | **optional**                                                                           |
| `phaseStatus` [*Status*](#status)                                                                                 | PhaseStatus is the status of phase ClusterRestore operation going through.                                                                                                                                     |         | <p>Enum: \[InProgress Pending Error Completed Failed]<br><strong>optional</strong></p> |
| `status` [*Status*](#status)                                                                                      | Status is the status of the ClusterRestore operation.                                                                                                                                                          |         | <p>Enum: \[InProgress Pending Error Completed Failed]<br><strong>optional</strong></p> |
| `size` [*Quantity*](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.28/#quantity-resource-api)   | Size is the aggregate size of the data restored back.                                                                                                                                                          |         | **optional**                                                                           |
| `percentageCompletion` *integer*                                                                                  | PercentageCompletion is the percentage of ClusterRestore operation completed.                                                                                                                                  |         | <p>Maximum: 100<br>Minimum: 0<br><strong>optional</strong></p>                         |
| `condition` [*ClusterRestoreCondition*](#clusterrestorecondition) *array*                                         | Condition is the overall condition of cluster restore resource.                                                                                                                                                |         | **optional**                                                                           |
| `duration` [*Duration*](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.28/#duration-v1-meta)    | Duration is the amount of time the ClusterRestore process took to finish.                                                                                                                                      |         | **optional**                                                                           |
| `components` *object (keys:string, values:*[*ComponentInfo*](#componentinfo)*)*                                   | ComponentInfos contains information related to each individual backup to be restored                                                                                                                           |         | **optional**                                                                           |
| `createdNamespaces` *string array*                                                                                | CreatedNamespaces are the namespaces created for restores.                                                                                                                                                     |         | **optional**                                                                           |
| `stats` [*ClusterRestoreStats*](#clusterrestorestats)                                                             |                                                                                                                                                                                                                |         | **optional**                                                                           |
| `protectingResources` [*Resource*](#resource) *array*                                                             | <p>ProtectingResources lists the Trilio resources and dependent resources which<br>are getting created after user cluster restore operation. It's applicable<br>only if ProtectRestoredApp is set to true.</p> |         | **optional**                                                                           |
| `encryptionEnabled` *boolean*                                                                                     | EncryptionEnabled flag shows that encryption is enabled for cluster backup                                                                                                                                     |         | **optional**                                                                           |

### ClusterRestoreSummary

ClusterRestoreSummary comprises ClusterRestore object references and count of ClusterRestore with different statuses

*Appears in:*

* [ClusterBackupPlanStats](#clusterbackupplanstats)

| Field                                                                                                                                            | Description                                                                                             | Default | Validation   |
| ------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------- | ------- | ------------ |
| `lastSuccessfulClusterRestore` [*ObjectReference*](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.28/#objectreference-v1-core) | LastSuccessfulClusterRestore is the reference to Latest completed ClusterRestore of a ClusterBackupPlan |         | **optional** |
| `latestClusterRestore` [*ObjectReference*](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.28/#objectreference-v1-core)         | LatestClusterRestore is the reference to Latest ClusterRestore in any state, of a ClusterBackupPlan     |         | **optional** |
| `totalInProgressClusterRestores` *integer*                                                                                                       | TotalInProgressClusterRestores is the count of total number of InProgress ClusterRestores               |         | **optional** |
| `totalCompletedClusterRestores` *integer*                                                                                                        | TotalCompletedClusterRestores is the count of total number of Completed ClusterRestores                 |         | **optional** |
| `totalFailedClusterRestores` *integer*                                                                                                           | TotalFailedClusterRestores is the count of total number of Failed ClusterRestores                       |         | **optional** |

### ClusterSnapshotSpec

ClusterSnapshotSpec defines the desired state of ClusterSnapshot

*Appears in:*

* [ClusterSnapshot](#clustersnapshot)

| Field                                                                                                                                 | Description                                                                | Default | Validation |
| ------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------- | ------- | ---------- |
| `clusterBackupPlan` [*ObjectReference*](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.28/#objectreference-v1-core) | ClusterBackupPlan is a reference to the ClusterBackupPlan to be backed up. |         |            |

### ClusterSnapshotSummary

ClusterSnapshotSummary consist of snapshot object references and count of snapshot with different statuses

*Appears in:*

* [ClusterBackupPlanStats](#clusterbackupplanstats)

| Field                                                                                                                                             | Description                                                                                                                                             | Default | Validation   |
| ------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------- | ------- | ------------ |
| `inProgressClusterSnapshot` [*ObjectReference*](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.28/#objectreference-v1-core)     | InProgressClusterSnapshot is the reference to an InProgress ClusterSnapshot of a ClusterBackupPlan                                                      |         | **optional** |
| `lastSuccessfulClusterSnapshot` [*ObjectReference*](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.28/#objectreference-v1-core) | LastSuccessfulClusterSnapshot is the reference to Latest available ClusterSnapshot of a ClusterBackupPlan                                               |         | **optional** |
| `latestClusterSnapshot` [*ObjectReference*](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.28/#objectreference-v1-core)         | LatestClusterSnapshot is the reference to Latest ClusterSnapshot in any state, of a ClusterBackupPlan                                                   |         | **optional** |
| `totalAvailableClusterSnapshots` *integer*                                                                                                        | TotalAvailableClusterSnapshots is the count of total number of Available ClusterSnapshots                                                               |         | **optional** |
| `totalFailedClusterSnapshots` *integer*                                                                                                           | TotalFailedClusterSnapshots is the count of total number of Failed ClusterSnapshots                                                                     |         | **optional** |
| `totalQueuedClusterSnapshots` *integer*                                                                                                           | TotalQueuedClusterSnapshots is the count of total number of Queued ClusterSnapshots                                                                     |         | **optional** |
| `pvcExistsForSnapshot` *boolean*                                                                                                                  | <p>PVCExistsForSnapshot is a bool value that states if the latest cluster backup of a cluster backup plan has PVCs in<br>its backups data component</p> |         | **optional** |

### CoalesceInfo

*Appears in:*

* [BackupStatus](#backupstatus)
* [ClusterBackupStatus](#clusterbackupstatus)

| Field                                                                                                                  | Description                                                                                                                                                     | Default | Validation   |
| ---------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------- | ------------ |
| `retryCount` *integer*                                                                                                 |                                                                                                                                                                 |         | **optional** |
| `errorMessages` *string array*                                                                                         |                                                                                                                                                                 |         | **optional** |
| `retentionFailureStatus` *object (keys:string, values:*[*map\[string\]CoalesceStatus*](#map\[string]coalescestatus)*)* | <p>RetentionFailureStatus points which backup and PVC failed in retention and it which stage.<br>map\[backupName]map\[pvcName]value where valid values are:</p> |         | **optional** |

### CoalesceStatus

*Underlying type:* *string*

*Appears in:*

* [CoalesceInfo](#coalesceinfo)

| Field                    | Description                                                                     |
| ------------------------ | ------------------------------------------------------------------------------- |
| `CommitStarted`          | <p>CommitStarted means the commit process is started<br></p>                    |
| `CommitCompleted`        | <p>CommitCompleted means the commit process is completed<br></p>                |
| `CommitFailed`           | <p>CommitFailed means the commit process is failed<br></p>                      |
| `Qcow2MovementStarted`   | <p>Qcow2MovementStarted means the qcow2 movement process is started<br></p>     |
| `Qcow2MovementCompleted` | <p>Qcow2MovementCompleted means the qcow2 movement process is completed<br></p> |
| `Qcow2MovementFailed`    | <p>Qcow2MovementFailed means the qcow2 movement process is failed<br></p>       |

### ComponentConfig

*Appears in:*

* [ClusterRestoreSpec](#clusterrestorespec)

| Field                                             | Description                                                                        | Default | Validation   |
| ------------------------------------------------- | ---------------------------------------------------------------------------------- | ------- | ------------ |
| `backupNamespace` *string*                        | Deprecated: SourceNamespace should be used to specify Backup or Snapshot namespace |         | **optional** |
| `sourceNamespace` *string*                        | Specify Backup/Snapshot namespace                                                  |         | **optional** |
| `restoreNamespace` *string*                       |                                                                                    |         | **optional** |
| `restoreConfig` [*RestoreConfig*](#restoreconfig) |                                                                                    |         | **optional** |
| `hookConfig` [*HookConfig*](#hookconfig)          |                                                                                    |         | **optional** |

### ComponentInfo

*Appears in:*

* [ClusterRestoreStatus](#clusterrestorestatus)

| Field                                                                                                                        | Description                                                                     | Default | Validation                                                                             |
| ---------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------- | ------- | -------------------------------------------------------------------------------------- |
| `location` *string*                                                                                                          | Location is the location of the backup on target.                               |         | **optional**                                                                           |
| `backup` [*ObjectReference*](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.28/#objectreference-v1-core)   | Backup is the reference of the Backup CR used for backing up this component     |         | **optional**                                                                           |
| `snapshot` [*ObjectReference*](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.28/#objectreference-v1-core) | Snapshot is the reference of the Snapshot CR used for backing up this component |         | **optional**                                                                           |
| `restore` [*ObjectReference*](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.28/#objectreference-v1-core)  | Restore is the reference of the Restore CR used for restoring this component.   |         | **optional**                                                                           |
| `restoreStatus` [*Status*](#status)                                                                                          | Status is the status of particular restore.                                     |         | <p>Enum: \[InProgress Pending Error Completed Failed]<br><strong>optional</strong></p> |
| `percentageCompletion` *integer*                                                                                             | PercentageCompletion is the amount of restore operation completed.              |         | <p>Maximum: 100<br>Minimum: 0<br><strong>optional</strong></p>                         |

### ComponentScope

*Underlying type:* *string*

ComponentScope indicates scope of components i.e. \[App or Namespace] present in backup or restore

*Validation:*

* Enum: \[App Namespace]

*Appears in:*

* [BackupPlanStatus](#backupplanstatus)
* [BackupStatus](#backupstatus)
* [RestoreStatus](#restorestatus)

| Field       | Description                                                                                                                  |
| ----------- | ---------------------------------------------------------------------------------------------------------------------------- |
| `App`       | <p>App ComponentScope indicates that component in backup/restore is application specific i.e. custom, helm, operator<br></p> |
| `Namespace` | <p>Namespace ComponentScope indicates that component in backup/restore is specific namespace<br></p>                         |

### ComponentStatus

ComponentStatus defines the details of restore of application component.

*Appears in:*

* [RestoreCustom](#restorecustom)
* [RestoreHelm](#restorehelm)
* [RestoreOperator](#restoreoperator)

| Field                                                           | Description                                                                                  | Default | Validation                                                                                                                                                                                                                 |
| --------------------------------------------------------------- | -------------------------------------------------------------------------------------------- | ------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `existingResource` [*Resource*](#resource) *array*              | ExistingResource specifies the resources already existing in cluster defined in application. |         | **optional**                                                                                                                                                                                                               |
| `skippedResources` [*Resource*](#resource) *array*              | SkippedResources specifies the resources skipped while restoring.                            |         | **optional**                                                                                                                                                                                                               |
| `failedResources` [*Resource*](#resource) *array*               | FailedResources specifies the resources for which the restore operation failed               |         | **optional**                                                                                                                                                                                                               |
| `newResourcesAdded` [*Resource*](#resource) *array*             | NewResourcesAdded specifies the resources added(duplicated and modified) during restore.     |         | **optional**                                                                                                                                                                                                               |
| `excludedResources` [*Resource*](#resource) *array*             | ExcludedResources specifies the resources excluded during restore                            |         | **optional**                                                                                                                                                                                                               |
| `failedCleanupResources` [*Resource*](#resource) *array*        | FailedCleanupResources specified the resources which doesn't get clean up in failed restore  |         | **optional**                                                                                                                                                                                                               |
| `transformStatus` [*TransformStatus*](#transformstatus) *array* | TransformStatus is the status of transformation performed                                    |         | **optional**                                                                                                                                                                                                               |
| `phase` [*RestorePhase*](#restorephase)                         | Phase is the current phase of the application component while restore.                       |         | <p>Enum: \[TargetValidation Validation DataRestore MetadataRestore PrimitiveMetadataRestore Unquiesce RestoreCleanup AddProtection ImageRestore HookTargetIdentification DataOwnerUpdate]<br><strong>optional</strong></p> |
| `phaseStatus` [*Status*](#status)                               | PhaseStatus is the status of phase restore operation going through.                          |         | <p>Enum: \[InProgress Pending Error Completed Failed]<br><strong>optional</strong></p>                                                                                                                                     |
| `reason` *string*                                               | A brief message indicating details about why the application component is in this state.     |         | **optional**                                                                                                                                                                                                               |

### Conditions

*Appears in:*

* [DataSnapshot](#datasnapshot)
* [VolumeSnapshotInfo](#volumesnapshotinfo)

| Field                                                                                                   | Description                                                                      | Default | Validation                                                                                         |
| ------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------- | ------- | -------------------------------------------------------------------------------------------------- |
| `status` [*Status*](#status)                                                                            | Status is the status of the condition.                                           |         | <p>Enum: \[InProgress Error Completed Failed Skipped Unavailable]<br><strong>optional</strong></p> |
| `timestamp` [*Time*](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.28/#time-v1-meta) | Timestamp is the time a condition occurred.                                      |         | **optional**                                                                                       |
| `reason` *string*                                                                                       | A brief message indicating details about why the component is in this condition. |         | **optional**                                                                                       |
| `phase` [*OperationType*](#operationtype)                                                               | Phase defines the current phase of the data components.                          |         | <p>Enum: \[Snapshot Upload DataRestore DataSnapshot]<br><strong>optional</strong></p>              |

### ConsistentSetCondition

*Appears in:*

* [ConsistentSetStatus](#consistentsetstatus)

| Field                                                                                                   | Description                                                                      | Default | Validation                                                                                 |
| ------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------- | ------- | ------------------------------------------------------------------------------------------ |
| `phase` [*OperationType*](#operationtype)                                                               | Phase defines the current phase of the controller.                               |         | <p>Enum: \[PreConsistentSet DataRestore DataSnapshot]<br><strong>optional</strong></p>     |
| `status` [*Status*](#status)                                                                            | Status is the status of the cluster restore.                                     |         | <p>Enum: \[InProgress Error Completed Failed Unavailable]<br><strong>optional</strong></p> |
| `timestamp` [*Time*](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.28/#time-v1-meta) | Timestamp is the time a condition occurred.                                      |         | **optional**                                                                               |
| `reason` *string*                                                                                       | A brief message indicating details about why the component is in this condition. |         | **optional**                                                                               |

### ConsistentSetInfo

*Appears in:*

* [BackupStatus](#backupstatus)
* [ClusterBackupStatus](#clusterbackupstatus)
* [ContinuousRestorePlanStatus](#continuousrestoreplanstatus)

| Field                                                                                                                          | Description                                                                                                             | Default | Validation                                                                                        |
| ------------------------------------------------------------------------------------------------------------------------------ | ----------------------------------------------------------------------------------------------------------------------- | ------- | ------------------------------------------------------------------------------------------------- |
| `consistentSetName` *string*                                                                                                   | ConsistentSetName is the name of ConsistentSet created for ContinuousRestore corresponding to the Backup/ClusterBackup  |         | **required**                                                                                      |
| `consistentSetUID` [*UID*](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.28/#uid-types-pkg)                 | ScanInstanceUID is the UID of the ConsistentSet created for ContinuousRestore corresponding to the Backup/ClusterBackup |         | **required**                                                                                      |
| `consistentSetStatus` [*Status*](#status)                                                                                      | ConsistentSetStatus is the current Status of ConsistentSet.                                                             |         | <p>Enum: \[Available InProgress Unavailable Failed InUse Queued]<br><strong>optional</strong></p> |
| `consistentSetCreationTimeStamp` [*Time*](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.28/#time-v1-meta)   | ConsistentSetCreationTimeStamp is the creation timestamp of ConsistentSet                                               |         | <p>Format: date-time<br><strong>optional</strong></p>                                             |
| `consistentSetCompletionTimeStamp` [*Time*](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.28/#time-v1-meta) | ConsistentSetCompletionTimeStamp is the completion timestamp of ConsistentSet                                           |         | <p>Format: date-time<br><strong>optional</strong></p>                                             |
| `size` [*Quantity*](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.28/#quantity-resource-api)                | TotalSize is the aggregate size of the data restored                                                                    |         | **optional**                                                                                      |

### ConsistentSetScope

*Underlying type:* *string*

ConsistentSetScope indicates scope of Consistent i.e. \[Namespace or Cluster] as per the location given

*Validation:*

* Enum: \[Namespace Cluster]

*Appears in:*

* [ConsistentSetStatus](#consistentsetstatus)

| Field       | Description                                                                                    |
| ----------- | ---------------------------------------------------------------------------------------------- |
| `Namespace` | <p>NamespaceScope indicates that the ConsistentSet's scope is Namespace i.e. Backup<br></p>    |
| `Cluster`   | <p>ClusterScope indicates that the ConsistentSet's scope is Cluster i.e. ClusterBackup<br></p> |

### ConsistentSetSpec

ConsistentSetSpec defines the desired state of ConsistentSet

*Appears in:*

* [ConsistentSet](#consistentset)

| Field                                                                                                                                     | Description                                                                                            | Default | Validation   |
| ----------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------ | ------- | ------------ |
| `continuousRestorePlan` [*ObjectReference*](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.28/#objectreference-v1-core) | ContinuousRestorePlan specifies the object references of continuousRestorePlan used                    |         | **required** |
| `location` *string*                                                                                                                       | Location is the target location where Backup/ClusterBackup is stored                                   |         | **required** |
| `transformComponents` [*TransformComponents*](#transformcomponents)                                                                       | TransformComponents specifies the transformation configuration for PVCs both in custom and helm charts |         | **optional** |

### ConsistentSetStats

ConsistentSetStats defines the stats for a consistent set

*Appears in:*

* [ConsistentSetStatus](#consistentsetstatus)

| Field                                                            | Description | Default | Validation   |
| ---------------------------------------------------------------- | ----------- | ------- | ------------ |
| `sourceBackupPlan` [*SourceBackupPlan*](#sourcebackupplan)       |             |         | **optional** |
| `sourceInstanceInfo` [*SourceInstanceInfo*](#sourceinstanceinfo) |             |         | **optional** |

### ConsistentSetStatus

ConsistentSetStatus defines the observed state of ConsistentSet

*Appears in:*

* [ConsistentSet](#consistentset)

| Field                                                                                                             | Description                                                                                                                                                                                   | Default | Validation                                                                                              |
| ----------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------- | ------------------------------------------------------------------------------------------------------- |
| `status` [*Status*](#status)                                                                                      | <p>Status defines the status of ConsistentSet.<br>When consistentSet is used in any Restore/ClusterRestore, it's status will be in InUse</p>                                                  |         | <p>Enum: \[Available InProgress Error Failed Unavailable InUse Queued]<br><strong>optional</strong></p> |
| `scope` [*ConsistentSetScope*](#consistentsetscope)                                                               | Scope defines scope of ConsistentSet i.e. Namespace or Cluster                                                                                                                                |         | <p>Enum: \[Namespace Cluster]<br><strong>optional</strong></p>                                          |
| `startTimestamp` [*Time*](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.28/#time-v1-meta)      | StartTimestamp is the time when ConsistentSet was started.                                                                                                                                    |         | <p>Format: date-time<br><strong>optional</strong></p>                                                   |
| `completionTimestamp` [*Time*](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.28/#time-v1-meta) | CompletionTimestamp is the time when ConsistentSet operation finished.                                                                                                                        |         | <p>Format: date-time<br><strong>optional</strong></p>                                                   |
| `backupInfo` *object (keys:string, values:*[*SourceBackupInfo*](#sourcebackupinfo)*)*                             | <p>BackupInfo contains the information of data restored done for each Backup available on the location specified.<br>It contains a mapping of Backup-uuid and related data restored info.</p> |         | **optional**                                                                                            |
| `size` [*Quantity*](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.28/#quantity-resource-api)   | Size is the aggregate size of the data restored back.                                                                                                                                         |         | **optional**                                                                                            |
| `percentageCompletion` *integer*                                                                                  | PercentageCompletion is the percentage of ConsistentSet operation completed.                                                                                                                  |         | <p>Maximum: 100<br>Minimum: 0<br><strong>optional</strong></p>                                          |
| `phase` [*OperationType*](#operationtype)                                                                         | Phase is the current phase of the ConsistentSet operation.                                                                                                                                    |         | **optional**                                                                                            |
| `phaseStatus` [*Status*](#status)                                                                                 | PhaseStatus is the status of phase ConsistentSet operation going through.                                                                                                                     |         | <p>Enum: \[InProgress Pending Error Completed Failed]<br><strong>optional</strong></p>                  |
| `condition` [*ConsistentSetCondition*](#consistentsetcondition) *array*                                           | Condition is the overall condition of ConsistentSet resource.                                                                                                                                 |         | **optional**                                                                                            |
| `duration` [*Duration*](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.28/#duration-v1-meta)    | Duration is the amount of time the ConsistentSet process took to finish.                                                                                                                      |         | **optional**                                                                                            |
| `stats` [*ConsistentSetStats*](#consistentsetstats)                                                               |                                                                                                                                                                                               |         | **optional**                                                                                            |

### ConsistentSetSummary

ConsistentSetSummary comprises of ConsistentSet object references and count of ConsistentSet with different statuses

*Appears in:*

* [ContinuousRestorePlanStats](#continuousrestoreplanstats)
* [ContinuousRestoreStatus](#continuousrestorestatus)

| Field                                                                                                                                           | Description                                                                                                                             | Default | Validation   |
| ----------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------- | ------- | ------------ |
| `lastSuccessfulConsistentSet` [*ObjectReference*](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.28/#objectreference-v1-core) | LastSuccessfulConsistentSet is the reference to Latest completed ConsistentSet of a ContinuousRestorePlan                               |         | **optional** |
| `lastSuccessfulConsistentSetTimestamp` [*Time*](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.28/#time-v1-meta)              | LastSuccessfulConsistentSetTimestamp is the completion timestamp of the last successful ConsistentSet created                           |         | **optional** |
| `latestConsistentSet` [*ObjectReference*](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.28/#objectreference-v1-core)         | LatestConsistentSet is the reference to Latest ClusterRestore in any state, of a ClusterBackupPlan                                      |         | **optional** |
| `latestConsistentSetCreationTimestamp` [*Time*](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.28/#time-v1-meta)              | LatestConsistentSetCreationTimestamp is the creation time stamp of the last ConsistentSet created for this BackupPlan/ClusterBackupPlan |         | **optional** |
| `totalInProgressConsistentSet` *integer*                                                                                                        | TotalInProgressConsistentSet is the count of total number of InProgress ConsistentSets                                                  |         | **optional** |
| `totalAvailableConsistentSet` *integer*                                                                                                         | TotalAvailableConsistentSet is the count of total number of Available ConsistentSets                                                    |         | **optional** |
| `totalUnavailableConsistentSet` *integer*                                                                                                       | TotalUnavailableConsistentSet is the count of total number of Unavailable ConsistentSets                                                |         | **optional** |
| `totalFailedConsistentSet` *integer*                                                                                                            | TotalFailedConsistentSet is the count of total number of Failed ConsistentSets                                                          |         | **optional** |
| `totalQueuedConsistentSet` *integer*                                                                                                            | TotalQueuedConsistentSet is the count of total number of Queued ConsistentSets                                                          |         | **optional** |
| `totalInUseConsistentSet` *integer*                                                                                                             | TotalInUseConsistentSet is the count of total number of InUse ConsistentSets                                                            |         | **optional** |

### ContainerHookStatus

ContainerHookStatus defines hook execution status for a containers

*Appears in:*

* [PodHookStatus](#podhookstatus)

| Field                                                      | Description                                             | Default | Validation   |
| ---------------------------------------------------------- | ------------------------------------------------------- | ------- | ------------ |
| `containerName` *string*                                   | ContainerName is container in which hooks are executed. |         | **required** |
| `preHookStatus` [*PrePostHookStatus*](#preposthookstatus)  | PreHookStatus defines status for pre hooks              |         | **optional** |
| `postHookStatus` [*PrePostHookStatus*](#preposthookstatus) | PostHookStatus defines status for post hooks            |         | **optional** |

### ContainerImage

*Appears in:*

* [ImageSnapshot](#imagesnapshot)

| Field                                                            | Description                                                                                 | Default | Validation   |
| ---------------------------------------------------------------- | ------------------------------------------------------------------------------------------- | ------- | ------------ |
| `ID` *string*                                                    | ID is the image ID to uniquely identify the image                                           |         | **optional** |
| `registry` *string*                                              | Registry of the container image                                                             |         | **optional** |
| `repository` *string*                                            | Repository of the container image                                                           |         | **optional** |
| `image` *string*                                                 | Image is the name of the container image                                                    |         |              |
| `backupImageFQDN` *string*                                       | BackupImageFQDN is the actual image name provided in resource spec at the time of backup    |         |              |
| `tag` *string*                                                   | Tag is the image tag of the container image                                                 |         |              |
| `newTag` *string*                                                | NewTag is populated when the Tag exists on the repo with a different sha in case of restore |         | **optional** |
| `sha` *string*                                                   | Sha is the sha digest of the container image                                                |         | **optional** |
| `imagePullSecrets` [*ImagePullSecret*](#imagepullsecret) *array* | ImagePullSecrets defines imagePullSecrets and resource who used these imagePullSecrets      |         | **optional** |
| `warnings` *string array*                                        | Warnings is the list of warnings captured during image backup or restore of an application  |         | **optional** |

### ContinuousRestoreConfig

*Appears in:*

* [PolicySpec](#policyspec)

| Field                      | Description                                                                   | Default | Validation                                          |
| -------------------------- | ----------------------------------------------------------------------------- | ------- | --------------------------------------------------- |
| `consistentSets` *integer* | ConsistentSets is the number of ConsistentSets to be retained for each Backup |         | <p>Format: int<br>Maximum: 10<br>Minimum: 1<br></p> |

### ContinuousRestoreConfigInfo

ContinuousRestoreConfigInfo defines the Continuous Restore instances info which will be used for Continuous Restore operation

*Appears in:*

* [BackupPlanSpec](#backupplanspec)
* [ClusterBackupPlanSpec](#clusterbackupplanspec)

| Field                                                                                          | Description                                                                                                                     | Default | Validation                                      |
| ---------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------- | ------- | ----------------------------------------------- |
| `continuousRestoreInstances` [*ContinuousRestoreInstance*](#continuousrestoreinstance) *array* | ContinuousRestoreInstances defines the list of Continuous Restore instances which will perform the Continuous Restore operation |         | <p>MinItems: 1<br><strong>required</strong></p> |

### ContinuousRestoreInstance

ContinuousRestoreInstance defines details of Continuous Restore for InstanceID specified

*Appears in:*

* [ContinuousRestoreConfigInfo](#continuousrestoreconfiginfo)

| Field                                                                                                                                       | Description                                                                                                        | Default | Validation   |
| ------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------ | ------- | ------------ |
| `instanceID` *string*                                                                                                                       | InstanceID is the unique Instance ID of the Continuous Restore Service to be used for Continuous Restore           |         | **required** |
| `continuousRestorePolicy` [*ObjectReference*](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.28/#objectreference-v1-core) | ContinuousRestorePolicy is the object reference to the Continuous Restore Policy to be used for Continuous Restore |         | **required** |
| `transformComponents` [*TransformComponents*](#transformcomponents)                                                                         | TransformComponents specifies the transformation configuration for PVCs both in custom and helm charts             |         | **optional** |

### ContinuousRestorePlanCondition

ContinuousRestorePlanCondition specifies the current condition of a ContinuousRestorePlan resource.

*Appears in:*

* [ContinuousRestorePlanStatus](#continuousrestoreplanstatus)

| Field                                                                                                   | Description                                                                      | Default | Validation                                                               |
| ------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------- | ------- | ------------------------------------------------------------------------ |
| `status` [*Status*](#status)                                                                            | Status is the status of the condition.                                           |         | <p>Enum: \[InProgress Completed Failed]<br><strong>optional</strong></p> |
| `timestamp` [*Time*](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.28/#time-v1-meta) | Timestamp is the time a condition occurred.                                      |         | **optional**                                                             |
| `reason` *string*                                                                                       | A brief message indicating details about why the component is in this condition. |         | **optional**                                                             |
| `phase` [*OperationType*](#operationtype)                                                               | Phase defines the current phase of the controller.                               |         | <p>Enum: \[TargetValidation Retention]<br><strong>optional</strong></p>  |

### ContinuousRestorePlanSpec

ContinuousRestorePlanSpec defines the desired state of ContinuousRestorePlan

*Appears in:*

* [ContinuousRestorePlan](#continuousrestoreplan)

| Field                                                                                                                                       | Description                                                                                            | Default | Validation   |
| ------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------ | ------- | ------------ |
| `continuousRestorePolicy` [*ObjectReference*](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.28/#objectreference-v1-core) | ContinuousRestorePolicy specifies the object references of ContinuousRestore policy                    |         | **required** |
| `target` [*ObjectReference*](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.28/#objectreference-v1-core)                  | Target specifies the object references of target used                                                  |         | **required** |
| `transformComponents` [*TransformComponents*](#transformcomponents)                                                                         | TransformComponents specifies the transformation configuration for PVCs both in custom and helm charts |         | **optional** |

### ContinuousRestorePlanStats

ContinuousRestorePlanStats defines the stats for a ContinuousRestorePlan

*Appears in:*

* [ContinuousRestorePlanStatus](#continuousrestoreplanstatus)

| Field                                                                  | Description | Default | Validation   |
| ---------------------------------------------------------------------- | ----------- | ------- | ------------ |
| `sourceBackupPlan` [*SourceBackupPlan*](#sourcebackupplan)             |             |         | **optional** |
| `sourceInstanceInfo` [*SourceInstanceInfo*](#sourceinstanceinfo)       |             |         | **optional** |
| `consistentSetSummary` [*ConsistentSetSummary*](#consistentsetsummary) |             |         | **optional** |

### ContinuousRestorePlanStatus

ContinuousRestorePlanStatus defines the observed state of ContinuousRestorePlan

*Appears in:*

* [ContinuousRestorePlan](#continuousrestoreplan)

| Field                                                                                   | Description                                                                                         | Default | Validation                                                                    |
| --------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------- | ------- | ----------------------------------------------------------------------------- |
| `condition` [*ContinuousRestorePlanCondition*](#continuousrestoreplancondition) *array* | Condition is the current condition of a ContinuousRestorePlan.                                      |         | **optional**                                                                  |
| `status` [*Status*](#status)                                                            | Status defines the status of the ContinuousRestorePlan resource as per the status of target         |         | <p>Enum: \[Available InProgress Unavailable]<br><strong>optional</strong></p> |
| `consistentSetInfo` [*ConsistentSetInfo*](#consistentsetinfo) *array*                   | ConsistentSetInfo is the list of ConsistentSet related info for the number of ConsistentSet defined |         | <p>MinItems: 0<br><strong>optional</strong></p>                               |
| `stats` [*ContinuousRestorePlanStats*](#continuousrestoreplanstats)                     |                                                                                                     |         | **optional**                                                                  |

### ContinuousRestoreStatus

ContinuousRestoreStatus specifies the details of Continuous Restore operation status of an instance

*Appears in:*

* [BackupPlanStatus](#backupplanstatus)
* [ClusterBackupPlanStatus](#clusterbackupplanstatus)

| Field                                                                                                                              | Description                                                                                                                                                                                                             | Default | Validation                                                         |
| ---------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------- | ------------------------------------------------------------------ |
| `continuousRestoreEnabled` *boolean*                                                                                               | ContinuousRestoreEnabled denotes if the Continuous Restore service is actually enabled on the ContinuousRestore site                                                                                                    |         |                                                                    |
| `continuousRestoreSiteStatus` [*Status*](#status)                                                                                  | <p>ContinuousRestoreSiteStatus is the current Status of ContinuousRestore service Available/Unavailable.<br>It is updated as per the heartbeat of ContinuousRestore service</p>                                         |         | <p>Enum: \[Available Unavailable]<br><strong>optional</strong></p> |
| `lastConsistentSetCreationTimestamp` [*Time*](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.28/#time-v1-meta)   | LastConsistentSetCreationTimestamp is the creation time stamp of the last ConsistentSet created for this BackupPlan/ClusterBackupPlan                                                                                   |         | **optional**                                                       |
| `lastSuccessfulConsistentSetTimestamp` [*Time*](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.28/#time-v1-meta) | <p>LastSuccessfulConsistentSetTimestamp is the completion timestamp of the last successful ConsistentSet created<br>for this BackupPlan/ClusterBackupPlan</p>                                                           |         | **optional**                                                       |
| `numAvailableConsistentSet` [*int*](#int)                                                                                          | <p>NumAvailableConsistentSet is the number of available ConsistentSets for this BackupPlan/ClusterBackupPlan<br>on ContinuousRestore site<br>Deprecated: NumAvailableConsistentSet is moved to ConsistentSetSummary</p> |         | **optional**                                                       |
| `continuousRestorePlan` *string*                                                                                                   | <p>ContinuousRestorePlan denotes the name of ContinuousRestorePlan created for this BackupPlan/ClusterBackupPlan on<br>the ContinuousRestore site</p>                                                                   |         | **optional**                                                       |
| `consistentSetSummary` [*ConsistentSetSummary*](#consistentsetsummary)                                                             | ConsistentSetSummary is the summary of ConsistentSets for a ContinuousRestorePlan                                                                                                                                       |         | **optional**                                                       |

### Crons

Crons defines the list of Schedule string and the cronjob references. The list of Schedule string will only be visible to the user to be configured, and the references will be set by the controller

*Appears in:*

* [PolicySpec](#policyspec)

| Field                     | Description | Default | Validation   |
| ------------------------- | ----------- | ------- | ------------ |
| `schedule` *string array* |             |         | **required** |

### Custom

Custom defines the snapshot of Custom defined application.

*Appears in:*

* [ApplicationSnapshot](#applicationsnapshot)
* [RestoreCustom](#restorecustom)

| Field                                                   | Description                                                                                     | Default | Validation   |
| ------------------------------------------------------- | ----------------------------------------------------------------------------------------------- | ------- | ------------ |
| `resources` [*Resource*](#resource) *array*             | Resources defines the Kubernetes resources found from Custom application.                       |         | **optional** |
| `dataSnapshots` [*DataSnapshot*](#datasnapshot) *array* | DataSnapshot specifies the Snapshot of the Volumes resources in the Custom defined application. |         | **optional** |
| `warnings` *string array*                               | Warnings is the list of warnings captured during backup or restore of an application            |         | **optional** |

### CustomHookStatus

CustomHookStatus defines hook execution status for a custom resources

*Appears in:*

* [HookComponentStatus](#hookcomponentstatus)

| Field                                                      | Description                                       | Default | Validation   |
| ---------------------------------------------------------- | ------------------------------------------------- | ------- | ------------ |
| `object` [*Owner*](#owner)                                 | Object is the Object on which hooks are executed. |         | **required** |
| `preHookStatus` [*PrePostHookStatus*](#preposthookstatus)  | PreHookStatus defines status for pre hooks        |         | **optional** |
| `postHookStatus` [*PrePostHookStatus*](#preposthookstatus) | PostHookStatus defines status for post hooks      |         | **optional** |

### CustomSelector

CustomSelector defines custom resource selection using `SelectResources` which defines include resources & `ExcludeResources` specify resource exclusion based on Label based & GVK based selection

*Appears in:*

* [BackupPlanComponents](#backupplancomponents)

| Field                                                      | Description                                                                          | Default | Validation   |
| ---------------------------------------------------------- | ------------------------------------------------------------------------------------ | ------- | ------------ |
| `selectResources` [*ResourceSelector*](#resourceselector)  | SelectResources specify resource selection based on `LabelSelector` & `GVKSelector`  |         | **optional** |
| `excludeResources` [*ResourceSelector*](#resourceselector) | ExcludeResources specify resource exclusion based on `LabelSelector` & `GVKSelector` |         | **optional** |

### CustomTransform

CustomTransform specifies transformation configuration for Custom label-based resources

*Appears in:*

* [TransformComponents](#transformcomponents)

| Field                                   | Description                                                                    | Default | Validation             |
| --------------------------------------- | ------------------------------------------------------------------------------ | ------- | ---------------------- |
| `transformName` *string*                | TransformName specifies the name of transformation                             |         |                        |
| `resources` [*Resource*](#resource)     | Resources specifies the resources for which transformation needs to be applied |         |                        |
| `jsonPatches` [*Patch*](#patch) *array* | JSONPatches specifies the JSON patches to be applied                           |         | <p>MinItems: 1<br></p> |

### DataSnapshot

DataSnapshot defines Snapshot of a Persistent Volume

*Appears in:*

* [Custom](#custom)
* [Helm](#helm)
* [Operator](#operator)

| Field                                                                                                                   | Description                                                                                                                                                                                                                      | Default | Validation                                                          |
| ----------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------- | ------------------------------------------------------------------- |
| `backupType` [*BackupType*](#backuptype)                                                                                | BackupType is the type of Volume backup in the sequence of backups.                                                                                                                                                              |         | <p>Enum: \[Incremental Full Mixed]<br><strong>optional</strong></p> |
| `location` *string*                                                                                                     | Location is the absolute path of qcow2 image of a volume in the target.                                                                                                                                                          |         | **optional**                                                        |
| `persistentVolumeName` *string*                                                                                         | PersistentVolumeName is the name of PersistentVolume which is bound to PersistentVolumeClaim                                                                                                                                     |         |                                                                     |
| `persistentVolumeMetadata` *string*                                                                                     | PersistentVolumeMetadata is the metadata of PersistentVolume which is bound to PersistentVolumeClaim.                                                                                                                            |         |                                                                     |
| `persistentVolumeClaimName` *string*                                                                                    | PersistentVolumeClaimName is the name of PersistentVolumeClaim which is bound to Volume.                                                                                                                                         |         |                                                                     |
| `persistentVolumeClaimMetadata` *string*                                                                                | PersistentVolumeClaimMetadata is the metadata of PersistentVolumeClaim which is bound to Volume(Deprecated).                                                                                                                     |         |                                                                     |
| `owner` [*Owner*](#owner)                                                                                               | <p>Owner specifies the parent for DataComponent.<br>When we backup VirtualMachine, PersistentVolumeClaim which is part of DataVolume owned by that VM.<br>Owner will be nil for DataComponent with no direct/indirect owner.</p> |         | **optional**                                                        |
| `operatorResourceVolume` *boolean*                                                                                      | OperatorResourceVolume will be true for the PVC created by the operator resource.                                                                                                                                                |         | **optional**                                                        |
| `volumeSnapshot` [*VolumeSnapshot*](#volumesnapshot)                                                                    | VolumeSnapshot specifies the CSI snapshot of a Persistent Volume.                                                                                                                                                                |         | **optional**                                                        |
| `pvSize` [*Quantity*](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.28/#quantity-resource-api)       | PVSize is the actual size of the persistent volume for which backup is happening.                                                                                                                                                |         | **optional**                                                        |
| `snapshotSize` [*Quantity*](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.28/#quantity-resource-api) | SnapshotSize is the size of the volume snapshot of a Persistent Volume.                                                                                                                                                          |         | **optional**                                                        |
| `size` [*Quantity*](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.28/#quantity-resource-api)         | Size is the size of qcow2 created/restored in backup/restore.                                                                                                                                                                    |         | **optional**                                                        |
| `uploaded` *boolean*                                                                                                    | Uploaded is to imply whether volume snapshot taken is uploaded to target.                                                                                                                                                        |         | **optional**                                                        |
| `error` *string*                                                                                                        | Error is the error occurred while backing up data component if any.                                                                                                                                                              |         | **optional**                                                        |
| `podContainersMap` [*PodContainers*](#podcontainers) *array*                                                            | PodContainersMap is the set of Pod-Containers which share Persistent Volume.                                                                                                                                                     |         | **optional**                                                        |
| `conditions` [*Conditions*](#conditions) *array*                                                                        | Conditions are the current statuses for backup and restore PVCs.                                                                                                                                                                 |         | **optional**                                                        |

### DayOfWeek

*Underlying type:* *string*

*Validation:*

* Enum: \[Monday Tuesday Wednesday Thursday Friday Saturday Sunday]

*Appears in:*

* [RetentionConfig](#retentionconfig)

| Field       | Description |
| ----------- | ----------- |
| `Monday`    |             |
| `Tuesday`   |             |
| `Wednesday` |             |
| `Thursday`  |             |
| `Friday`    |             |
| `Saturday`  |             |
| `Sunday`    |             |

### Encryption

Encryption defines encryption secret to encrypt/decrypt backup data on target

*Appears in:*

* [BackupPlanSpec](#backupplanspec)
* [BackupSnapshotStats](#backupsnapshotstats)
* [ClusterBackupPlanSpec](#clusterbackupplanspec)
* [ClusterBackupSnapshotStats](#clusterbackupsnapshotstats)
* [ClusterRestoreSpec](#clusterrestorespec)
* [FileRecoveryVMSpec](#filerecoveryvmspec)
* [RestoreSpec](#restorespec)

| Field                                                                                                                                | Description                                                                                    | Default | Validation |
| ------------------------------------------------------------------------------------------------------------------------------------ | ---------------------------------------------------------------------------------------------- | ------- | ---------- |
| `encryptionSecret` [*ObjectReference*](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.28/#objectreference-v1-core) | EncryptionSecret is object ref of a secret which contains encryption key for backup encryption |         |            |

### FileRecoveryVMCondition

FileRecoveryVMCondition specifies the current condition of a FileRecoveryVM resource.

*Appears in:*

* [FileRecoveryVMStatus](#filerecoveryvmstatus)

| Field                                                                                                   | Description                                                                      | Default | Validation                                                                                               |
| ------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------- | ------- | -------------------------------------------------------------------------------------------------------- |
| `status` [*Status*](#status)                                                                            | Status is the status of the condition.                                           |         | <p>Enum: \[InProgress Error Completed Ready Failed]<br><strong>optional</strong></p>                     |
| `timestamp` [*Time*](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.28/#time-v1-meta) | Timestamp is the time a condition occurred.                                      |         | **optional**                                                                                             |
| `reason` *string*                                                                                       | A brief message indicating details about why the component is in this condition. |         | **optional**                                                                                             |
| `phase` [*FileRecoveryVMPhase*](#filerecoveryvmphase)                                                   | Phase defines the current phase of the controller.                               |         | <p>Enum: \[Validation MountingVMBackup Update RecoveryDiskProvisioning]<br><strong>optional</strong></p> |

### FileRecoveryVMPhase

*Underlying type:* *string*

FileRecoveryVMPhase represents the phase of the FileRecovery VM Condition.

*Appears in:*

* [FileRecoveryVMCondition](#filerecoveryvmcondition)
* [FileRecoveryVMStatus](#filerecoveryvmstatus)

| Field                      | Description                                                                                                                                                                 |
| -------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `RecoveryDiskProvisioning` | <p>VMRecoveryDiskProvisioningPhase indicates the phase during which the FileRecovery VM controller is creating the default DataVolume.<br></p>                              |
| `Validation`               | <p>VMValidationPhase indicates the phase during which the FileRecovery VM controller<br>is validating the setup and dependencies required for the recovery process.<br></p> |
| `MountingVMBackup`         | <p>VMBackupMountingPhase indicates when the FileRecovery VM controller creates the recovery VM.<br></p>                                                                     |

### FileRecoveryVMSpec

FileRecoveryVMSpec defines the specification of a FileRecoveryVM.

*Appears in:*

* [FileRecoveryVM](#filerecoveryvm)

| Field                                                                                                                                     | Description                                                                                                                                                                                                        | Default | Validation   |
| ----------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------- | ------------ |
| `vmName` *string*                                                                                                                         | Name of the backed up virtual machine the user intends to recover data from.                                                                                                                                       |         |              |
| `location` *string*                                                                                                                       | Location is the absolute path of the target where VM backup resides.                                                                                                                                               |         |              |
| `target` [*ObjectReference*](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.28/#objectreference-v1-core)                | Target is a reference to the target object where the VM backup is stored.                                                                                                                                          |         |              |
| `dataVolume` [*ObjectReference*](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.28/#objectreference-v1-core)            | DataVolume is an optional reference to the DataVolume object.                                                                                                                                                      |         | **optional** |
| `persistentVolumeClaim` [*ObjectReference*](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.28/#objectreference-v1-core) | PersistentVolumeClaim is an optional reference to the Persistent Volume Claim object.                                                                                                                              |         | **optional** |
| `storageClass` *string*                                                                                                                   | <p>StorageClass is an optional field used during the creation of the default DataVolume (DV)<br>to import Trilio's FileRecoveryVM image.</p>                                                                       |         | **optional** |
| `encryption` [*Encryption*](#encryption)                                                                                                  | <p>Encryption specify an encryption key to decrypt the encrypted VM backup.<br>The encryption key must be the same as the one used during the backup.</p>                                                          |         | **optional** |
| `publicKey` *string*                                                                                                                      | PublicKey is the public SSH key used for accessing the FileRecovery VM.                                                                                                                                            |         |              |
| `externalServiceType` [*ServiceType*](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.28/#servicetype-v1-core)           | <p>ExternalServiceType specifies the type of service created by the FileRecoveryVM<br>to expose the mounted VM backup for external access.<br>Defaults to ClusterIP.</p>                                           |         | **optional** |
| `instancetype` [*InstancetypeMatcher*](#instancetypematcher)                                                                              | <p>Instancetype references a InstancetypeMatcher, which is used<br>to populate fields in the RecoveryVM Template.<br>Supported types are "VirtualMachineInstancetype" and "VirtualMachineClusterInstancetype".</p> |         | **optional** |
| `preference` [*PreferenceMatcher*](#preferencematcher)                                                                                    | <p>Preference references a PreferenceMatcher, which is used to populate<br>fields in the RecoveryVM Template.<br>Supported types are "VirtualMachinePreference" and "VirtualMachineClusterPreference".</p>         |         | **optional** |

### FileRecoveryVMStatus

FileRecoveryVMStatus defines the observed state of FileRecoveryVM.

*Appears in:*

* [FileRecoveryVM](#filerecoveryvm)

| Field                                                                                                             | Description                                                                                                           | Default | Validation                                                                                       |
| ----------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------- | ------- | ------------------------------------------------------------------------------------------------ |
| `backupMountLocation` [*MountLocation*](#mountlocation) *array*                                                   | BackupMountLocation is the location where the VM backup is mounted.                                                   |         | **optional**                                                                                     |
| `startTimestamp` [*Time*](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.28/#time-v1-meta)      | StartTimestamp is the time a filerecovery was started.                                                                |         | **optional**                                                                                     |
| `completionTimestamp` [*Time*](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.28/#time-v1-meta) | CompletionTimestamp is the time a filerecovery was finished.                                                          |         | **optional**                                                                                     |
| `duration` [*Duration*](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.28/#duration-v1-meta)    | Duration is the amount of time the file recovery vm process took to finish.                                           |         | **optional**                                                                                     |
| `phase` [*FileRecoveryVMPhase*](#filerecoveryvmphase)                                                             | Phase indicates the current phase of the FileRecoveryVM operation.                                                    |         | <p>Enum: \[Validation Recovery Update RecoveryDiskProvisioning]<br><strong>optional</strong></p> |
| `phaseStatus` [*Status*](#status)                                                                                 | PhaseStatus provides the status of the current phase.                                                                 |         | <p>Enum: \[InProgress Error Completed Failed]<br><strong>optional</strong></p>                   |
| `status` [*Status*](#status)                                                                                      | Status indicates the overall status of the FileRecoveryVM.                                                            |         | <p>Enum: \[InProgress Error Completed Failed]<br><strong>optional</strong></p>                   |
| `condition` [*FileRecoveryVMCondition*](#filerecoveryvmcondition) *array*                                         | Condition is the current condition of a FileRecoveryVM.                                                               |         | **optional**                                                                                     |
| `failureReason` *string*                                                                                          | <p>FailureReason provides the reason for failure if the ChildJobs such as<br>Validation, Recovery or Update fail.</p> |         | **optional**                                                                                     |

### GVKR

*Underlying type:* [*struct{GroupVersionKind GroupVersionKind "json:"groupVersionKind""; Resource string "json:"resource""}*](#struct{groupversionkind-groupversionkind-"json:"groupversionkind"";-resource-string-"json:"resource""})

GVKR defines the Kubernetes resource type and name

*Appears in:*

* [ImagePullSecret](#imagepullsecret)

### GroupVersionKind

GroupVersionKind defines the Kubernetes resource type

*Appears in:*

* [OLMResource](#olmresource)
* [Owner](#owner)
* [Resource](#resource)
* [TransformationError](#transformationerror)

| Field              | Description | Default | Validation   |
| ------------------ | ----------- | ------- | ------------ |
| `group` *string*   |             |         |              |
| `version` *string* |             |         | **optional** |
| `kind` *string*    |             |         |              |

### Helm

Helm defines the snapshot of application defined by a Helm.

*Appears in:*

* [ApplicationSnapshot](#applicationsnapshot)
* [Operator](#operator)
* [RestoreHelm](#restorehelm)

| Field                                                        | Description                                                                                        | Default | Validation                                       |
| ------------------------------------------------------------ | -------------------------------------------------------------------------------------------------- | ------- | ------------------------------------------------ |
| `release` *string*                                           | Release string is the name of release                                                              |         | <p>MinLength: 1<br><strong>required</strong></p> |
| `newRelease` *string*                                        | NewRelease string is the new release name which will get used while validation and restore process |         | **optional**                                     |
| `revision` *integer*                                         | Revision defines the version of deployed release backed up                                         |         |                                                  |
| `resources` [*Resource*](#resource) *array*                  | Resources are the helm release resources with their GVK and Name                                   |         | **optional**                                     |
| `nonReleaseResources` [*Resource*](#resource) *array*        | NonReleaseResources are the resources which are not part of the helm release                       |         | **optional**                                     |
| `storageBackend` [*HelmStorageBackend*](#helmstoragebackend) | StorageBackend is the enum which can be either configmaps and secrets                              |         | <p>Enum: \[ConfigMap Secret]<br></p>             |
| `version` [*HelmVersion*](#helmversion)                      | Version represents the Helm binary version used at the time of snapshot                            |         | <p>Enum: \[v3]<br></p>                           |
| `dataSnapshots` [*DataSnapshot*](#datasnapshot) *array*      | DataSnapshot specifies the Snapshot of the Volumes defined in the helm chart resources.            |         | **optional**                                     |
| `warnings` *string array*                                    | Warnings is the list of warnings captured during backup or restore of an application               |         | **optional**                                     |

### HelmStorageBackend

*Underlying type:* *string*

HelmStorageBackend defines the enum for the types of storage backend from where the helm release is backed-up

*Validation:*

* Enum: \[ConfigMap Secret]

*Appears in:*

* [Helm](#helm)

| Field       | Description |
| ----------- | ----------- |
| `ConfigMap` |             |
| `Secret`    |             |

### HelmTransform

HelmTransform specifies transformation configuration for Helm

*Appears in:*

* [TransformComponents](#transformcomponents)

| Field                                 | Description                                                                   | Default | Validation             |
| ------------------------------------- | ----------------------------------------------------------------------------- | ------- | ---------------------- |
| `transformName` *string*              | TransformName specifies the name of transformation                            |         |                        |
| `release` *string*                    | Release specifies the release name for which the transformation is to be done |         |                        |
| `set` [*KeyValue*](#keyvalue) *array* | Set specifies the key-value pair to be set                                    |         | <p>MinItems: 1<br></p> |

### HelmVersion

*Underlying type:* *string*

HelmVersion defines the version of helm binary used while backup; currently supported version is v3

*Validation:*

* Enum: \[v3]

*Appears in:*

* [Helm](#helm)

| Field | Description                                          |
| ----- | ---------------------------------------------------- |
| `v3`  | <p>Helm3 specifies the helm 2 binary version<br></p> |

### HookComponentStatus

HookComponentStatus indicates status of hook execution for backup/restore

*Appears in:*

* [BackupStatus](#backupstatus)
* [RestoreStatus](#restorestatus)

| Field                                                                    | Description                                                                                                                                                                                                                                                                | Default | Validation                                                     |
| ------------------------------------------------------------------------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------- | -------------------------------------------------------------- |
| `podReadyWaitSeconds` *integer*                                          | <p>PodReadyWaitSeconds is the wait time for which hook execution waits before performing hook Quiescing/UnQuiescing<br>It is only applicable for pods which are found in NotRunning state during hook execution<br>Default value is 120s, that will be set by webhook.</p> |         | <p>Maximum: 600<br>Minimum: 1<br><strong>optional</strong></p> |
| `hookPriorityStatus` [*HookPriorityStatus*](#hookprioritystatus) *array* | HookPriorityStatuses specifies pre/post hook execution status for current backup.                                                                                                                                                                                          |         | **optional**                                                   |
| `customHookStatus` [*CustomHookStatus*](#customhookstatus) *array*       | CustomHookStatuses specifies pre/post custom hook execution status                                                                                                                                                                                                         |         | **optional**                                                   |

### HookConfig

HookConfig defines the sequence of hook actions and their associated pod-container regexes

*Appears in:*

* [BackupComponent](#backupcomponent)
* [BackupPlanSpec](#backupplanspec)
* [ComponentConfig](#componentconfig)
* [NamespaceSelector](#namespaceselector)
* [RestoreSpec](#restorespec)

| Field                                   | Description                                                                                                                                                                                                                                                                | Default | Validation                                                       |
| --------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------- | ---------------------------------------------------------------- |
| `mode` [*Mode*](#mode)                  | <p>Mode can be sequential or parallel which defines the way hooks will be executed.<br>If mode is parallel, ignore the hook sequence.</p>                                                                                                                                  |         | <p>Enum: \[Sequential Parallel]<br><strong>optional</strong></p> |
| `podReadyWaitSeconds` *integer*         | <p>PodReadyWaitSeconds is the wait time for which hook execution waits before performing hook Quiescing/UnQuiescing<br>It is only applicable for pods which are found in NotRunning state during hook execution<br>Default value is 120s, that will be set by webhook.</p> |         | <p>Maximum: 600<br>Minimum: 1<br><strong>optional</strong></p>   |
| `hooks` [*HookInfo*](#hookinfo) *array* | Hooks defines the config's for hook action object reference to the matching regexes of pod and containers                                                                                                                                                                  |         | <p>MinItems: 1<br></p>                                           |

### HookConfiguration

HookConfiguration contain's configuration for hook implementation.

*Appears in:*

* [HookPriority](#hookpriority)

| Field                      | Description                                                                                                                                                                                                                                                                               | Default | Validation                                                     |
| -------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------- | -------------------------------------------------------------- |
| `maxRetryCount` *integer*  | <p>MaxRetryCount is the maximum number of times pre/post hook execution can be retried.<br>MaxRetryCount will be equal to the RetryCount specified in Hook Spec.</p>                                                                                                                      |         | <p>Maximum: 10<br>Minimum: 0<br><strong>optional</strong></p>  |
| `timeoutSeconds` *integer* | <p>TimeoutSeconds is A Maximum allowed time in seconds to execute Hook.<br>timeout here is a hard timeout.<br>Meaning the command needs to exit in that time, either with exit code 0 or non 0.<br>hook execution will be considered in error if it fails to complete within timeout.</p> |         | <p>Maximum: 300<br>Minimum: 1<br><strong>optional</strong></p> |
| `ignoreFailure` *boolean*  | <p>IgnoreFailure is a boolean, if set to true all the failures will be ignored for<br>both in pre and post hooks<br>Default is false.</p>                                                                                                                                                 |         | **optional**                                                   |

### HookExecution

HookExecution specifies the Hook required to quiesce or unquiesce the application

*Appears in:*

* [HookSpec](#hookspec)

| Field                                                                                                                | Description                                                                                                                                                                                                                                                                                                                                                                                                             | Default | Validation                                                     |
| -------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------- | -------------------------------------------------------------- |
| `execAction` [*ExecAction*](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.28/#execaction-v1-core) | <p>ExecAction is a Command to be executed as a part of Hook. Specifies the action to take.<br>Commands should include what shell to use or the commands and its args which will be able to<br>run without the shell.<br>User can provide multiple commands merged as a part of a single command in the ExecAction.<br>Shell Script Ex. \["/bin/bash", "-c", "echo hello > hello.txt && echo goodbye > goodbye.txt"]</p> |         |                                                                |
| `ignoreFailure` *boolean*                                                                                            | <p>IgnoreFailure is a boolean, if set to true all the failures will be ignored<br>both in pre and post hooks<br>Default is false.</p>                                                                                                                                                                                                                                                                                   |         | **optional**                                                   |
| `maxRetryCount` *integer*                                                                                            | <p>MaxRetryCount count will be used to retry hook execution within the time range specified by Timeout in <code>TimeoutSeconds</code> field.<br>Hook execution will be considered in error if it fails to complete within <code>MaxRetryCount</code>.<br>Each retry count will be run with timeout of <code>TimeoutSeconds</code> field.<br>Default is 0</p>                                                            |         | <p>Maximum: 10<br>Minimum: 0<br><strong>optional</strong></p>  |
| `timeoutSeconds` *integer*                                                                                           | <p>TimeoutSeconds is A Maximum allowed time in seconds for each retry count according to value set in<br><code>MaxRetryCount</code> field to execute Hook.<br>timeout here is a hard timeout.<br>MaxRetryCount field is related to TimeoutSeconds, Meaning each retry count will run with a timeout of <code>TimeoutSeconds</code>.<br>The command needs to exit in that time, either with exit code 0 or non 0.</p>    |         | <p>Maximum: 300<br>Minimum: 1<br><strong>optional</strong></p> |

### HookInfo

HookInfo defines the config for hook action object reference to the matching regexes of pod and containers

*Appears in:*

* [HookConfig](#hookconfig)

| Field                                                                                                                    | Description                                                                                                                                                                                             | Default | Validation   |
| ------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------- | ------------ |
| `hook` [*ObjectReference*](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.28/#objectreference-v1-core) | Hook is the object reference of the Hook resource which will be run while quiescing                                                                                                                     |         | **required** |
| `podSelector` [*PodSelector*](#podselector)                                                                              | <p>PodSelector will identify set of pods for hook config based on<br>either Labels or Regex pattern.</p>                                                                                                |         |              |
| `containerRegex` *string*                                                                                                | <p>ContainerRegex identifies containers for hook execution from pods which are filtered using PodSelector.<br>If not given then hooks will be executed in all the containers of the identified pods</p> |         | **optional** |

### HookPriority

HookPriority contain hook & their targeted resources

*Appears in:*

* [HookPriorityStatus](#hookprioritystatus)

| Field                                                                                                                    | Description                                                                         | Default | Validation   |
| ------------------------------------------------------------------------------------------------------------------------ | ----------------------------------------------------------------------------------- | ------- | ------------ |
| `hook` [*ObjectReference*](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.28/#objectreference-v1-core) | Hook is the object reference of the Hook resource which will be run while quiescing |         | **required** |
| `preHookConf` [*HookConfiguration*](#hookconfiguration)                                                                  | PreHookConf defines how pre hook implementation will be handled                     |         |              |
| `postHookConf` [*HookConfiguration*](#hookconfiguration)                                                                 | PostHookConf defines how post hook implementation will be handled                   |         |              |
| `hookTarget` [*HookTarget*](#hooktarget) *array*                                                                         | HookTarget defines targeting hook resources.                                        |         |              |

### HookPriorityStatus

HookPriorityStatus defines observed state for hooks priority wise.

*Appears in:*

* [HookComponentStatus](#hookcomponentstatus)

| Field                                           | Description                                                                                                                                                                                                                                                                                                                        | Default | Validation             |
| ----------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------- | ---------------------- |
| `priority` *integer*                            | <p>Priority defines priority for hooks.<br>backup controller will use <code>Priority</code> to determine sequence of hook execution.<br>In case of parallel Mode, priority will be same for all,<br>in case of sequential Mode, priority will be same for a group and not individual HookConfig Set.<br>Default Priority is 0.</p> |         | <p>Minimum: 0<br></p>  |
| `hooks` [*HookPriority*](#hookpriority) *array* | Hooks defines list of hooks with priority `Priority`.                                                                                                                                                                                                                                                                              |         | <p>MinItems: 1<br></p> |

### HookSpec

HookSpec defines the desired state of Hook.

*Appears in:*

* [Hook](#hook)

| Field                                    | Description                                                                       | Default | Validation |
| ---------------------------------------- | --------------------------------------------------------------------------------- | ------- | ---------- |
| `pre` [*HookExecution*](#hookexecution)  | PreHook is the Hook executed to quiesce the application before backup operation   |         |            |
| `post` [*HookExecution*](#hookexecution) | PostHook is the Hook executed to unquiesce the application after backup operation |         |            |

### HookStatus

HookStatus defines the observed state of Hook.

*Appears in:*

* [Hook](#hook)

### HookTarget

*Appears in:*

* [HookPriority](#hookpriority)

| Field                                                     | Description                                                                                                                                                                                | Default | Validation   |
| --------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------- | ------------ |
| `owner` [*Owner*](#owner)                                 | <p>Owner specifies the parent for identified pods in PodHookStatus.<br>backup controller will fetch pods from Owner to execute the hooks.<br>Owner will be nil for pods with no owner.</p> |         | **optional** |
| `containerRegex` *string*                                 | ContainerRegex identifies containers in identified pods to execute hooks.                                                                                                                  |         | **optional** |
| `podHookStatus` [*PodHookStatus*](#podhookstatus) *array* | PodHookStatus specifies pre/post hook execution status for current backup.                                                                                                                 |         | **optional** |

### Image

*Appears in:*

* [ApplicationSnapshot](#applicationsnapshot)

| Field                                             | Description                                                                 | Default | Validation   |
| ------------------------------------------------- | --------------------------------------------------------------------------- | ------- | ------------ |
| `imageSnapshot` [*ImageSnapshot*](#imagesnapshot) | ImageSnapshot specifies the Snapshot of the container images in the backup. |         | **optional** |

### ImagePullSecret

ImagePullSecret defines imagePullSecrets and resource who used these imagePullSecrets

*Appears in:*

* [ContainerImage](#containerimage)

| Field                                                                                                                                        | Description                                                                       | Default | Validation |
| -------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------- | ------- | ---------- |
| `referencedBy` [*GVKR*](#gvkr)                                                                                                               | ReferencedBy defines GVK and name of resource who is using these imagePullSecrets |         |            |
| `imagePullSecrets` [*ObjectReference*](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.28/#objectreference-v1-core) *array* | ImagePullSecret is the pull secret to pull the container image                    |         |            |

### ImageRegistry

*Appears in:*

* [ClusterRestoreSpec](#clusterrestorespec)
* [RestoreSpec](#restorespec)

| Field                                                                                                                                  | Description                                                                                                               | Default | Validation               |
| -------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------- | ------- | ------------------------ |
| `repository` *string*                                                                                                                  | Repository is a container repository to restore the backup container images                                               |         | <p>Type: string<br></p>  |
| `registry` *string*                                                                                                                    | Registry is container registry to restore the backup container images                                                     |         | <p>Type: string<br></p>  |
| `registryAuthSecret` [*ObjectReference*](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.28/#objectreference-v1-core) | RegistryAuthSecret contains the docker config auth file or username and password, which will authenticate the docker push |         |                          |
| `skipTLSVerify` *boolean*                                                                                                              | SkipTLSVerify is flag to skip the TLS verification while pushing the images to the registry                               |         | <p>Type: boolean<br></p> |

### ImageSnapshot

ImageSnapshot defines the snapshot of images defined by all applications.

*Appears in:*

* [Image](#image)
* [RestoreImage](#restoreimage)

| Field                                                                                                           | Description                                                                 | Default | Validation                                                          |
| --------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------- | ------- | ------------------------------------------------------------------- |
| `backupType` [*BackupType*](#backuptype)                                                                        | BackupType is the type of image backup in the sequence of backups.          |         | <p>Enum: \[Incremental Full Mixed]<br><strong>optional</strong></p> |
| `location` *string*                                                                                             | Location is the absolute path of image qcow2 in the target.                 |         | **optional**                                                        |
| `size` [*Quantity*](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.28/#quantity-resource-api) | Size is the size of qcow2 created/restored in backup/restore.               |         | **optional**                                                        |
| `error` *string*                                                                                                | Error is the error occurred while backing up image component if any.        |         | **optional**                                                        |
| `containerImages` [*ContainerImage*](#containerimage) *array*                                                   | ContainerImages specifies the list of container images to use in the backup |         | **optional**                                                        |

### KeyValue

*Underlying type:* [*struct{Key string "json:"key""; Value string "json:"value""}*](#struct{key-string-"json:"key"";-value-string-"json:"value""})

KeyValue specifies key-value pair for helm transformation

*Appears in:*

* [HelmTransform](#helmtransform)

### KubevirtStatus

*Underlying type:* *string*

KubevirtStatus specifies the state of kubevirt on cluster

*Appears in:*

* [BackupPlanStatus](#backupplanstatus)

| Field      | Description |
| ---------- | ----------- |
| `Enabled`  |             |
| `Disabled` |             |

### LicenseCondition

LicenseCondition specifies the current condition of a license.

*Appears in:*

* [LicenseStatus](#licensestatus)

| Field                                                                                                   | Description                                                                      | Default | Validation                                                                        |
| ------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------- | ------- | --------------------------------------------------------------------------------- |
| `status` [*LicenseState*](#licensestate)                                                                | Status is the status of the condition.                                           |         | <p>Enum: \[Active Expired Invalid Error Warning]<br><strong>optional</strong></p> |
| `timestamp` [*Time*](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.28/#time-v1-meta) | Timestamp is the time a condition occurred.                                      |         | **optional**                                                                      |
| `message` *string*                                                                                      | A brief message indicating details about why the component is in this condition. |         | **optional**                                                                      |
| `phase` [*OperationType*](#operationtype)                                                               | Phase defines the current phase of the controller.                               |         | <p>Enum: \[Validation]<br><strong>optional</strong></p>                           |

### LicenseEdition

*Underlying type:* *string*

Deprecated : LicenseEdition specifies the edition of the license.

*Appears in:*

* [LicenseProperties](#licenseproperties)

### LicenseProperties

LicenseProperties specifies the properties of a license based on provided license key.

*Appears in:*

* [LicenseStatus](#licensestatus)

| Field                                                                                                                    | Description                                                                                                             | Default | Validation                                                                                    |
| ------------------------------------------------------------------------------------------------------------------------ | ----------------------------------------------------------------------------------------------------------------------- | ------- | --------------------------------------------------------------------------------------------- |
| `company` *string*                                                                                                       | Company is the name of a company purchased license for.                                                                 |         | **optional**                                                                                  |
| `edition` [*LicenseEdition*](#licenseedition)                                                                            | Deprecated: Edition is the type of license purchased to use triliovault application.                                    |         | <p>Enum: \[FreeTrial Basic STANDARD PROFESSIONAL ENTERPRISE]<br><strong>optional</strong></p> |
| `creationTimestamp` [*Time*](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.28/#time-v1-meta)          | CreationTimestamp is the time license created to use triliovault application.                                           |         | **optional**                                                                                  |
| `purchaseTimestamp` [*Time*](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.28/#time-v1-meta)          | PurchaseTimestamp is the time user purchased the license to use triliovault application.                                |         | **optional**                                                                                  |
| `expirationTimestamp` [*Time*](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.28/#time-v1-meta)        | ExpirationTimestamp is the time provided license going to expire and won't be able to perform backup/restore operation. |         | **optional**                                                                                  |
| `maintenanceExpiryTimestamp` [*Time*](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.28/#time-v1-meta) | MaintenanceExpiryTimestamp is the time maintenance support for the provided license going to expire.                    |         | **optional**                                                                                  |
| `kubeUID` *string*                                                                                                       | Deprecated: KubeUID is the kubesystem or namespace uuid of the cluster the license purchased for.                       |         | **optional**                                                                                  |
| `scope` [*Scope*](#scope)                                                                                                | Deprecated: Scope is the scope of a KubeUID the license purchased for.                                                  |         | <p>Enum: \[Cluster Namespaced]<br><strong>optional</strong></p>                               |
| `version` *string*                                                                                                       | Version is the version of a license.                                                                                    |         | **optional**                                                                                  |
| `sen` *string*                                                                                                           | SEN is the unique serial of a license purchased.                                                                        |         | **optional**                                                                                  |
| `numberOfUsers` *integer*                                                                                                | NumberOfUsers is the total number of users the license valid for.                                                       |         | **optional**                                                                                  |
| `serverID` *string*                                                                                                      | ServerID is the unique serverID of license purchased.                                                                   |         | **optional**                                                                                  |
| `licenseID` *string*                                                                                                     | LicenseID is the identifier for the license.                                                                            |         | **optional**                                                                                  |
| `capacity` *integer*                                                                                                     | Deprecated: Capacity is the maximum capacity to use the license in number of CPUs.                                      |         | **optional**                                                                                  |
| `active` *boolean*                                                                                                       | Active is the status of the license.                                                                                    |         | **optional**                                                                                  |

### LicenseSpec

LicenseSpec defines the desired state of License

*Appears in:*

* [License](#license)

| Field          | Description                                                                      | Default | Validation |
| -------------- | -------------------------------------------------------------------------------- | ------- | ---------- |
| `key` *string* | Key is the product key to use triliovault application to perform backup/restore. |         |            |

### LicenseState

*Underlying type:* *string*

LicenseState specifies the overall status of the license.

*Appears in:*

* [LicenseCondition](#licensecondition)
* [LicenseStatus](#licensestatus)

| Field     | Description                                                                             |
| --------- | --------------------------------------------------------------------------------------- |
| `Active`  | <p>LicenseActive means the license key is valid and has not reached expiration.<br></p> |
| `Expired` | <p>LicenseExpired means the license key is valid and has reached expiration.<br></p>    |
| `Invalid` | <p>LicenseInvalid means the license key is not valid.<br></p>                           |

### LicenseStatus

LicenseStatus defines the observed state of License

*Appears in:*

* [License](#license)

| Field                                                                                                                   | Description                                                                                                      | Default | Validation                                                                        |
| ----------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------- | ------- | --------------------------------------------------------------------------------- |
| `status` [*LicenseState*](#licensestate)                                                                                | Status is the overall status of the license based on provided key.                                               |         | <p>Enum: \[Active Expired Invalid Error Warning]<br><strong>optional</strong></p> |
| `type` [*LicenseType*](#licensetype)                                                                                    |                                                                                                                  |         | <p>Enum: \[Trilio AWS Azure]<br><strong>optional</strong></p>                     |
| `message` *string*                                                                                                      | A brief message indicating details about why the license in this state.                                          |         | **optional**                                                                      |
| `properties` [*LicenseProperties*](#licenseproperties)                                                                  | Properties is the details about the license based on provided license key.                                       |         | **optional**                                                                      |
| `condition` [*LicenseCondition*](#licensecondition) *array*                                                             | Condition is the current condition of a license.                                                                 |         | **optional**                                                                      |
| `currentCPUCount` *integer*                                                                                             | Deprecated: CurrentCPUCount is the total number of CPUs currently available.                                     |         | <p>Minimum: 0<br><strong>optional</strong></p>                                    |
| `gracePeriodStartTimestamp` [*Time*](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.28/#time-v1-meta) | Deprecated: GracePeriodStartTimestamp is the time grace period started to use triliovault application.           |         | **optional**                                                                      |
| `gracePeriodEndTimestamp` [*Time*](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.28/#time-v1-meta)   | Deprecated: GracePeriodEndTimestamp is the time grace period for using the triliovault application going to end. |         | **optional**                                                                      |
| `maxCPUs` *integer*                                                                                                     | Deprecated: MaxCPUs is the count of maximum number of CPUs available in cluster.                                 |         | <p>Minimum: 0<br><strong>optional</strong></p>                                    |

### LicenseType

*Underlying type:* *string*

LicenseType specifies the license vendor.

*Appears in:*

* [LicenseStatus](#licensestatus)

| Field    | Description |
| -------- | ----------- |
| `Trilio` |             |
| `AWS`    |             |
| `Azure`  |             |

### Mode

*Underlying type:* *string*

Mode is the enum for 2 modes of quiescing the application components i.e Sequential or Parallel

*Validation:*

* Enum: \[Sequential Parallel]

*Appears in:*

* [HookConfig](#hookconfig)

| Field        | Description                                                                                                                                                                     |
| ------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `Sequential` | <p>Sequential defines the sequential quiescing mode and the quiescing sequence is required for this mode<br></p>                                                                |
| `Parallel`   | <p>Parallel defines the quiescing mode to be parallel which means<br>that the application components will be quiesced parallelly and hence the sequence will be ignored<br></p> |

### MonthOfYear

*Underlying type:* *string*

*Validation:*

* Enum: \[January February March April May June July August September October November December]

*Appears in:*

* [RetentionConfig](#retentionconfig)

| Field       | Description |
| ----------- | ----------- |
| `January`   |             |
| `February`  |             |
| `March`     |             |
| `April`     |             |
| `May`       |             |
| `June`      |             |
| `July`      |             |
| `August`    |             |
| `September` |             |
| `October`   |             |
| `November`  |             |
| `December`  |             |

### MountLocation

MountLocation defines the location where the VM backup is mounted.

*Appears in:*

* [FileRecoveryVMStatus](#filerecoveryvmstatus)

| Field                      | Description | Default | Validation   |
| -------------------------- | ----------- | ------- | ------------ |
| `pvcName` *string*         |             |         | **optional** |
| `mountPath` *string array* |             |         | **optional** |

### NFSCredentials

NFSCredentials defines the credentials to use NFS as a target type.

*Appears in:*

* [TargetSpec](#targetspec)

| Field                 | Description                                                                                  | Default | Validation   |
| --------------------- | -------------------------------------------------------------------------------------------- | ------- | ------------ |
| `nfsExport` *string*  | A NFS location in format trilio.net:/data/location/abcde or 192.156.13.1:/user/keeth/data.   |         |              |
| `nfsOptions` *string* | An additional options passed to mount NFS directory e.g. rw, suid, hard, intr, timeo, retry. |         | **optional** |

### NamespaceSelector

NamespaceSelector defines namespaces for which backups are to be taken based on NamespaceSelector(labels & match expression) & their configurations

*Appears in:*

* [ClusterBackupPlanSpec](#clusterbackupplanspec)

| Field                                                                                                                                 | Description                                                                                                                         | Default | Validation             |
| ------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------- | ------- | ---------------------- |
| `name` *string*                                                                                                                       | <p>Name specify name for NamespaceSelector,<br>useful to identify why namespaces grouped together using LabelSelector</p>           |         |                        |
| `labelSelector` [*LabelSelector*](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.28/#labelselector-v1-meta) *array* | <p>LabelSelector identifies set of namespaces for which backup are to be taken<br>based on labels & match expression</p>            |         | <p>MinItems: 1<br></p> |
| `hookConfig` [*HookConfig*](#hookconfig)                                                                                              | hookConfig defines backup pre/post hooks and their configurations.                                                                  |         | **optional**           |
| `includeResources` [*ResourceSelector*](#resourceselector)                                                                            | IncludeResources specifies the resources included during backup                                                                     |         | **optional**           |
| `excludeResources` [*ResourceSelector*](#resourceselector)                                                                            | ExcludedResources specifies the resources excluded during backup                                                                    |         | **optional**           |
| `retainHelmApps` *boolean*                                                                                                            | <p>RetainHelmApps is a bool value that states that backup the helm application using helm way<br>while taking namespace backup.</p> |         | **optional**           |

### OLMResource

OLMResource defines the snapshot of OLM based operators

*Appears in:*

* [Operator](#operator)

| Field                                                                                                                                             | Description                                                                              | Default | Validation   |
| ------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------- | ------- | ------------ |
| `olmResources` [*Resource*](#resource) *array*                                                                                                    | olmResources represents the resources installed by the subscription                      |         | **optional** |
| `dependentSubscription` [*ObjectReference*](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.28/#objectreference-v1-core) *array* | dependentSubscription represents if current subscription has any dependent subscription. |         | **optional** |
| `installedGVKs` [*GroupVersionKind*](#groupversionkind) *array*                                                                                   | InstalledGVKs is GVKs installed by particular subscription/operator                      |         | **optional** |

### ObjectStoreCredentials

ObjectStoreCredentials defines the credentials to use Object Store as a target type.

*Appears in:*

* [TargetSpec](#targetspec)

| Field                                                                                                                                | Description                                                                                                  | Default | Validation   |
| ------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------ | ------- | ------------ |
| `url` *string*                                                                                                                       | URL to connect the Object Store.                                                                             |         | **optional** |
| `credentialSecret` [*ObjectReference*](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.28/#objectreference-v1-core) | CredentialSecret is object ref of a secret which contains target credentials like accessKey, secretKey, etc. |         | **optional** |
| `sslCertConfig` [*SSLCert*](#sslcert)                                                                                                | SSLCertConfig is the configuration for SSL certificate.                                                      |         | **optional** |
| `bucketName` *string*                                                                                                                | BucketName is the name of a bucket within Object Store.                                                      |         |              |
| `region` *string*                                                                                                                    | Region where the Object Store resides.                                                                       |         | **optional** |
| `objectLockingEnabled` *boolean*                                                                                                     | ObjectLockingEnabled specify if target is set to be immutable                                                |         | **optional** |
| `skipCertVerification` *boolean*                                                                                                     | SkipCertVerification specify if target needs to be accessed without certificate verification and usage.      |         | **optional** |

### OperationType

*Underlying type:* *string*

OperationType specifies the type of operation for Job

*Appears in:*

* [BackupCondition](#backupcondition)
* [BackupPlanCondition](#backupplancondition)
* [BackupStatus](#backupstatus)
* [ClusterBackupCondition](#clusterbackupcondition)
* [ClusterBackupPlanCondition](#clusterbackupplancondition)
* [ClusterRestoreCondition](#clusterrestorecondition)
* [ClusterRestoreStatus](#clusterrestorestatus)
* [Conditions](#conditions)
* [ConsistentSetCondition](#consistentsetcondition)
* [ConsistentSetStatus](#consistentsetstatus)
* [ContinuousRestorePlanCondition](#continuousrestoreplancondition)
* [LicenseCondition](#licensecondition)
* [TargetCondition](#targetcondition)

| Field                              | Description                                                                                                                                                 |
| ---------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `Snapshot`                         | <p>SnapshotOperation means the snapshot operation of kubernetes resources<br></p>                                                                           |
| `Upload`                           | <p>UploadOperation means the operation where resources uploaded to target<br></p>                                                                           |
| `MetadataUpload`                   | <p>MetadataUploadOperation means the operation where resources uploaded to target<br></p>                                                                   |
| `Retention`                        | <p>Retention means the on successful backup going to maintain backups based on policy<br></p>                                                               |
| `Validation`                       | <p>ValidationOperation will be used in case of validation operations on resources<br></p>                                                                   |
| `PrimitiveRestore`                 | <p>PrimitiveRestoreOperation will be used when primitive meta and data resources are to be restored<br></p>                                                 |
| `HookTargetIdentification`         | <p>HookTargetIdentification indicates phase where hook targets are identified<br></p>                                                                       |
| `Quiesce`                          | <p>QuiesceOperation will be used in pre hook execution on identified Pod and containers<br></p>                                                             |
| `Unquiesce`                        | <p>UnquiesceOperation will be used in post hook execution on identified Pod and containers<br></p>                                                          |
| `PreBackupValidation`              | <p>PreBackupValidationOperation will be used in pre incremental or mixed backups backing chain validation operation<br></p>                                 |
| `PreClusterBackupValidation`       | <p>PreClusterBackupValidationOperation will be used in pre incremental or mixed clusterBackup's child backups<br>backing chain validation operation<br></p> |
| `MetaSnapshot`                     | <p>MetaSnapshotOperation means operation where metadata resources are under snapshot operation<br></p>                                                      |
| `DataSnapshot`                     | <p>DataSnapshotOperation means operation where data resources are under snapshot operation<br></p>                                                          |
| `DataUpload`                       | <p>DataUploadOperation means operation where data snapshot is uploaded to the target.<br></p>                                                               |
| `TargetBrowsing`                   | <p>TargetBrowsingOperation means operation where target browsing is toggled for target instance<br></p>                                                     |
| `DataRestore`                      | <p>DataRestoreOperation means the restore of particular data component<br></p>                                                                              |
| `DataUploadUnquiesce`              | <p>DataUploadUnquiesceOperation means the data upload and unquiesce are going in parallel<br></p>                                                           |
| `ImageBackup`                      | <p>ImageBackupOperation means operation where backup of an image is taken and uploaded to target.<br></p>                                                   |
| `Backup`                           | <p>BackupOperation represents aggregate backup of ClusterBackup.<br></p>                                                                                    |
| `Restore`                          | <p>RestoreOperation represents aggregate restore of ClusterRestore.<br></p>                                                                                 |
| `PreClusterRestore`                | <p>PreClusterRestoreOperation means operation where all backups from target are read & individual restores are created from them<br></p>                    |
| `ClusterRestoreCleanup`            | <p>ClusterRestoreCleanupOperation means the cleanup of resources created by all restores<br></p>                                                            |
| `AddProtection`                    | <p>AddProtectionOperation means recreate the protecting resources.<br></p>                                                                                  |
| `Sync`                             | <p>SyncOperation means backupPlan reconciling started<br></p>                                                                                               |
| `EventTarget`                      | <p>EventTargetOperation means operation where event target stack is toggled for target instance<br></p>                                                     |
| `PreConsistentSet`                 | <p>PreConsistentSetOperation means operation where all backups from location are read & their info updated in<br>ConsistentSet status<br></p>               |
| `TargetValidation`                 | <p>TargetValidationOperation means the validation of the target is in-progress<br></p>                                                                      |
| `Cleanup`                          | <p>CleanupOperation means the backup controller is cleaning up the stale resources<br></p>                                                                  |
| `Cancel`                           | <p>CancelOperation means the backup mark for deletion.<br></p>                                                                                              |
| `BackupPlanTargetUpdateValidation` | <p>BackupPlanTargetUpdateValidationOperation means the validation of the target when updated in backupPlan<br></p>                                          |

### Operator

Operator defines the snapshot of application defined by an Operator.

*Appears in:*

* [ApplicationSnapshot](#applicationsnapshot)
* [RestoreOperator](#restoreoperator)

| Field                                                                                                                            | Description                                                                                 | Default | Validation                                      |
| -------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------- | ------- | ----------------------------------------------- |
| `operatorId` *string*                                                                                                            | OperatorId is unique ID for a particular operator                                           |         | <p>MinLength: 1<br></p>                         |
| `customResources` [*Resource*](#resource) *array*                                                                                | CustomResources is the list of all custom resource's GVK and names list                     |         | <p>MinItems: 1<br><strong>optional</strong></p> |
| `helm` [*Helm*](#helm)                                                                                                           | Helm represents the snapshot of the helm chart for helm based operator                      |         | **optional**                                    |
| `olm` *object (keys:string, values:*[*OLMResource*](#olmresource)*)*                                                             | Olm represent the snapshot of the olm based operator                                        |         | **optional**                                    |
| `subscription` [*ObjectReference*](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.28/#objectreference-v1-core) | Subscription is the subscription name of the operator.                                      |         | **optional**                                    |
| `operatorResources` [*Resource*](#resource) *array*                                                                              | OperatorResources defines the a kubernetes resources found from Operator resources.         |         | <p>MinItems: 1<br><strong>optional</strong></p> |
| `applicationResources` [*Resource*](#resource) *array*                                                                           | ApplicationResources defines the kubernetes resources found from operator Custom Resources. |         | <p>MinItems: 1<br><strong>optional</strong></p> |
| `dataSnapshots` [*DataSnapshot*](#datasnapshot) *array*                                                                          | DataSnapshot specifies the Snapshot of the Volumes defined in the operator resources.       |         | **optional**                                    |
| `warnings` *string array*                                                                                                        | Warnings is the list of warnings captured during backup or restore of an application        |         | **optional**                                    |

### OperatorSelector

OperatorSelector defines the mapping of operator name and their selectors

*Appears in:*

* [BackupPlanComponents](#backupplancomponents)

| Field                                                                                                                            | Description                                                                                                                                                                | Default | Validation                                      |
| -------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------- | ----------------------------------------------- |
| `operatorId` *string*                                                                                                            | OperatorId is any unique ID for a particular operator                                                                                                                      |         | <p>MinLength: 1<br></p>                         |
| `customResources` [*Resource*](#resource) *array*                                                                                | CustomResources list resources where each resource contains custom resource gvk and metadata                                                                               |         | <p>MinItems: 1<br><strong>optional</strong></p> |
| `helmRelease` *string*                                                                                                           | HelmRelease is the release name of the helm based operator                                                                                                                 |         | **optional**                                    |
| `subscription` [*ObjectReference*](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.28/#objectreference-v1-core) | Subscription is the subscription name of the operator.                                                                                                                     |         | **optional**                                    |
| `operatorResources` [*ResourceSelector*](#resourceselector)                                                                      | <p>OperatorResources specify operator resource selection based on<br><code>LabelSelector</code> & <code>GVKSelector</code></p>                                             |         | **optional**                                    |
| `applicationResources` [*ResourceSelector*](#resourceselector)                                                                   | <p>ApplicationResources specify resource selection for instances deployed by the operator resources<br>based on <code>LabelSelector</code> & <code>GVKSelector</code>.</p> |         | **optional**                                    |
| `excludeResources` [*ResourceSelector*](#resourceselector)                                                                       | <p>ExcludeResources specify operator resources to exclude from backup based on<br><code>LabelSelector</code> & <code>GVKSelector</code></p>                                |         | **optional**                                    |

### Owner

*Appears in:*

* [CustomHookStatus](#customhookstatus)
* [DataSnapshot](#datasnapshot)
* [HookTarget](#hooktarget)
* [VolumeSnapshotInfo](#volumesnapshotinfo)

| Field                                                      | Description                                                                 | Default | Validation |
| ---------------------------------------------------------- | --------------------------------------------------------------------------- | ------- | ---------- |
| `groupVersionKind` [*GroupVersionKind*](#groupversionkind) | GroupVersionKind specifies GVK uniquely representing particular owner type. |         |            |
| `name` *string*                                            | Name is name of owner                                                       |         |            |

### Patch

*Underlying type:* [*struct{Op Op "json:"op""; From string "json:"from,omitempty""; Path string "json:"path""; Value \*k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1.JSON "json:"value,omitempty""}*](#struct{op-op-"json:"op"";-from-string-"json:"from,omitempty"";-path-string-"json:"path"";-value-*k8sioapiextensions-apiserverpkgapisapiextensionsv1json-"json:"value,omitempty""})

*Appears in:*

* [CustomTransform](#customtransform)

### PodContainers

PodContainers defines Pod and containers running in that Pod.

*Appears in:*

* [DataSnapshot](#datasnapshot)

| Field                       | Description                                                                              | Default | Validation                                       |
| --------------------------- | ---------------------------------------------------------------------------------------- | ------- | ------------------------------------------------ |
| `podName` *string*          | PodName is the name of pod which will be the key for the map between pod containers list |         | <p>MinLength: 1<br><strong>optional</strong></p> |
| `containers` *string array* | Containers is the list of containers inside a pod                                        |         | **optional**                                     |

### PodSelector

PodSelector selects pods for hook execution based on either Labels or Regex pattern. Both Labels & Regex can also specify

*Appears in:*

* [HookInfo](#hookinfo)

| Field                                                                                                                          | Description | Default | Validation                                      |
| ------------------------------------------------------------------------------------------------------------------------------ | ----------- | ------- | ----------------------------------------------- |
| `labels` [*LabelSelector*](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.28/#labelselector-v1-meta) *array* |             |         | <p>MinItems: 1<br><strong>optional</strong></p> |
| `regex` *string*                                                                                                               |             |         | **optional**                                    |

### PolicySpec

PolicySpec defines the desired state of Policy

*Appears in:*

* [Policy](#policy)

| Field                                                                           | Description                                                                                                          | Default | Validation                                                                                                     |
| ------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------- | ------- | -------------------------------------------------------------------------------------------------------------- |
| `type` [*PolicyType*](#policytype)                                              | Type is a field of Policy spec, which defines the policy type containing only 3 values: Retention, Timeout, Cleanup. |         | <p>Enum: \[Timeout Retention Cleanup Schedule SecurityScan ContinuousRestore]<br><strong>required</strong></p> |
| `default` *boolean*                                                             | Default field states if the current type of policy is default across the TV application                              |         | **optional**                                                                                                   |
| `retentionConfig` [*RetentionConfig*](#retentionconfig)                         | RetentionConfig field defines the configuration for Retention policy                                                 |         | **optional**                                                                                                   |
| `timeoutConfig` [*TimeoutConfig*](#timeoutconfig)                               | TimeoutConfig field defines the configuration for timeout policy                                                     |         | **optional**                                                                                                   |
| `cleanupConfig` [*CleanupConfig*](#cleanupconfig)                               | CleanupConfig field defines the configuration for Cleanup policy                                                     |         | **optional**                                                                                                   |
| `scheduleConfig` [*Crons*](#crons)                                              | ScheduleConfig field defines the configuration for Schedule policy                                                   |         | **optional**                                                                                                   |
| `securityScanConfig` [*SecurityScanConfig*](#securityscanconfig)                | SecurityScanConfig field defines the configuration for SecurityScan policy                                           |         | **optional**                                                                                                   |
| `continuousRestoreConfig` [*ContinuousRestoreConfig*](#continuousrestoreconfig) | ContinuousRestoreConfig field defines the configuration for ContinuousRestore policy                                 |         | **optional**                                                                                                   |

### PolicyStatus

PolicyStatus defines the observed state of Policy

*Appears in:*

* [Policy](#policy)

### PolicyType

*Underlying type:* *string*

PolicyType is the Enum for types of policies

*Validation:*

* Enum: \[Timeout Retention Cleanup Schedule SecurityScan ContinuousRestore]

*Appears in:*

* [PolicySpec](#policyspec)

| Field               | Description |
| ------------------- | ----------- |
| `Timeout`           |             |
| `Retention`         |             |
| `Cleanup`           |             |
| `Schedule`          |             |
| `SecurityScan`      |             |
| `ContinuousRestore` |             |

### PrePostHookStatus

PrePostHookStatus defines Pre and Post hook execution status.

*Appears in:*

* [ContainerHookStatus](#containerhookstatus)
* [CustomHookStatus](#customhookstatus)

| Field                        | Description                                                                                                                                                                                                                      | Default | Validation                                                               |
| ---------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------- | ------------------------------------------------------------------------ |
| `status` [*Status*](#status) | Status is the status for pre/post hook execution                                                                                                                                                                                 |         | <p>Enum: \[InProgress Completed Failed]<br><strong>optional</strong></p> |
| `exitStatus` *string*        | ExitStatus contains returned exit code and error trace after pre/post hook execution                                                                                                                                             |         | **optional**                                                             |
| `retryCount` *integer*       | <p>RetryCount count used to retry hook execution within the time range specified by Timeout.<br>This is the actual number of times backup controller retried for pre/post hook execution if MaxRetryCount>0.<br>Default is 0</p> |         | <p>Maximum: 10<br>Minimum: 0<br><strong>optional</strong></p>            |

### RemoteInstance

RemoteInstance defines the available continuous restore TVK instances and their version

*Appears in:*

* [TargetStatus](#targetstatus)

| Field                           | Description                                                                                                                                                                 | Default | Validation   |
| ------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------- | ------------ |
| `instanceName` *string*         | InstanceName is the name of the available continuous restore TVK instance.                                                                                                  |         |              |
| `version` *string*              | Version is the TVK version of the available continuous restore TVK instance.                                                                                                |         | **optional** |
| `masterEncryptionHash` *string* | <p>MasterEncryptionHash is the hash of the master encryption secret for a TVK instance.<br>This field will be omitted for instances where encryption is not configured.</p> |         | **optional** |

### Resource

Resource defines the list of names of a Kubernetes resource of a particular GVK.

*Appears in:*

* [ClusterRestoreStatus](#clusterrestorestatus)
* [ComponentStatus](#componentstatus)
* [Custom](#custom)
* [CustomTransform](#customtransform)
* [Helm](#helm)
* [OLMResource](#olmresource)
* [Operator](#operator)
* [OperatorSelector](#operatorselector)
* [ResourceSelector](#resourceselector)
* [RestoreConfig](#restoreconfig)
* [RestoreSpec](#restorespec)
* [RestoreStatus](#restorestatus)
* [TransformStatus](#transformstatus)

| Field                                                      | Description                                                                    | Default | Validation   |
| ---------------------------------------------------------- | ------------------------------------------------------------------------------ | ------- | ------------ |
| `groupVersionKind` [*GroupVersionKind*](#groupversionkind) | GroupVersionKind specifies GVK uniquely representing particular resource type. |         |              |
| `objects` *string array*                                   | Objects is the list of names of all the objects of the captured GVK            |         | **optional** |

### Resource Types

* [Backup](#backup)
* [BackupPlan](#backupplan)
* [ClusterBackup](#clusterbackup)
* [ClusterBackupPlan](#clusterbackupplan)
* [ClusterRestore](#clusterrestore)
* [ClusterSnapshot](#clustersnapshot)
* [ConsistentSet](#consistentset)
* [ContinuousRestorePlan](#continuousrestoreplan)
* [FileRecoveryVM](#filerecoveryvm)
* [Hook](#hook)
* [License](#license)
* [Policy](#policy)
* [Restore](#restore)
* [Snapshot](#snapshot)
* [Target](#target)

### ResourceSelector

ResourceSelector used to define include/exclude resources as well as other resource selection, resource selection can be done using LabelSelector(MatchLabels & MatchExpression) & GVKSelector(GVK based & object names).

*Appears in:*

* [BackupComponent](#backupcomponent)
* [BackupPlanSpec](#backupplanspec)
* [ClusterBackupPlanSpec](#clusterbackupplanspec)
* [CustomSelector](#customselector)
* [NamespaceSelector](#namespaceselector)
* [OperatorSelector](#operatorselector)
* [RestoreConfig](#restoreconfig)
* [RestoreSpec](#restorespec)

| Field                                                                                                                                 | Description                                                                                                                                                                                             | Default | Validation                                      |
| ------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------- | ----------------------------------------------- |
| `labelSelector` [*LabelSelector*](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.28/#labelselector-v1-meta) *array* | LabelSelector specifies resource selection using labels & match expression                                                                                                                              |         | <p>MinItems: 1<br><strong>optional</strong></p> |
| `gvkSelector` [*Resource*](#resource) *array*                                                                                         | <p>GVKSelector specify resource selection using GVK & object name based selection<br>Default ignore list won't be considered for these resources and will always be backed up whatever is specified</p> |         | <p>MinItems: 1<br><strong>optional</strong></p> |

### RestoreApplication

RestoreApplication defines the snapshot contents of an Application Backup.

*Appears in:*

* [RestoreStatus](#restorestatus)

| Field                                                     | Description                                                                 | Default | Validation   |
| --------------------------------------------------------- | --------------------------------------------------------------------------- | ------- | ------------ |
| `helmCharts` [*RestoreHelm*](#restorehelm) *array*        | HelmCharts specifies the backed up helm resources restored as Helm Charts.  |         | **optional** |
| `operators` [*RestoreOperator*](#restoreoperator) *array* | Operators specifies the backed up operator resources restored as Operators. |         | **optional** |
| `custom` [*RestoreCustom*](#restorecustom)                | Custom specifies the backup up kubernetes resources.                        |         | **optional** |
| `image` [*RestoreImage*](#restoreimage)                   | Image specifies the backed up container images to be restored               |         | **optional** |

### RestoreCondition

RestoreCondition specifies the current condition of a restore resource.

*Appears in:*

* [RestoreStatus](#restorestatus)

| Field                                                                                                   | Description                                                                      | Default | Validation                                                                                                                                                                                                                 |
| ------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------- | ------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `status` [*Status*](#status)                                                                            | Status is the status of the condition.                                           |         | <p>Enum: \[InProgress Error Completed Failed Skipped]<br><strong>optional</strong></p>                                                                                                                                     |
| `timestamp` [*Time*](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.28/#time-v1-meta) | Timestamp is the time a condition occurred.                                      |         | **optional**                                                                                                                                                                                                               |
| `reason` *string*                                                                                       | A brief message indicating details about why the component is in this condition. |         | **optional**                                                                                                                                                                                                               |
| `phase` [*RestorePhase*](#restorephase)                                                                 | Phase defines the current phase of the controller.                               |         | <p>Enum: \[TargetValidation Validation DataRestore MetadataRestore PrimitiveMetadataRestore Unquiesce RestoreCleanup AddProtection ImageRestore HookTargetIdentification DataOwnerUpdate]<br><strong>optional</strong></p> |

### RestoreConfig

*Appears in:*

* [ClusterRestoreSpec](#clusterrestorespec)
* [ComponentConfig](#componentconfig)

| Field                                                               | Description                                                                                                                                                                                                                 | Default | Validation                                                      |
| ------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------- | --------------------------------------------------------------- |
| `restoreFlags` [*RestoreFlags*](#restoreflags)                      |                                                                                                                                                                                                                             |         | **optional**                                                    |
| `transformComponents` [*TransformComponents*](#transformcomponents) |                                                                                                                                                                                                                             |         | **optional**                                                    |
| `excludeResources` [*Resource*](#resource) *array*                  | <p>Deprecated: ExcludeResources field is now deprecated, Use ExcludeResourceSelector field instead to<br>exclude resources based on <code>LabelSelector</code> & <code>GVKSelector</code></p>                               |         | <p>MinItems: 1<br><strong>optional</strong></p>                 |
| `excludeResourceSelector` [*ResourceSelector*](#resourceselector)   | <p>ExcludeResourceSelector specifies the resources to be excluded while restoring,<br>Based on <code>LabelSelector</code> & <code>GVKSelector</code></p>                                                                    |         | **optional**                                                    |
| `resourceSelector` [*ResourceSelector*](#resourceselector)          | <p>ResourceSelector allows users to select specific resources from clusterbackup to restore.<br>To restore specific resources from a clusterbackup, you can select them by providing labels and a list of GVKs.</p>         |         | **optional**                                                    |
| `resourcesReadyWaitSeconds` *integer*                               | <p>ResourcesReadyWaitSeconds is the wait time for restored application's pods to come up. If user application<br>is having webhook then CR creation will fail is webhook is not up. Provide the wait time in such case.</p> |         | <p>Maximum: 1200<br>Minimum: 0<br><strong>optional</strong></p> |

### RestoreCustom

RestoreCustom defines the backed up kubernetes resources.

*Appears in:*

* [RestoreApplication](#restoreapplication)

| Field                                          | Description                                                         | Default | Validation   |
| ---------------------------------------------- | ------------------------------------------------------------------- | ------- | ------------ |
| `snapshot` [*Custom*](#custom)                 | Snapshot defines the snapshot of custom application to be restored. |         | **optional** |
| `status` [*ComponentStatus*](#componentstatus) | Status specifies the details of component restore in a namespace    |         | **optional** |

### RestoreFlags

*Appears in:*

* [RestoreConfig](#restoreconfig)
* [RestoreSpec](#restorespec)

| Field                               | Description                                                                                                                                                                                                               | Default | Validation   |
| ----------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------- | ------------ |
| `useOCPNamespaceUIDRange` *boolean* | <p>UseOCPNamespaceUIDRange specifies whether to restore the original uid or use the SCC<br>UID range defined on OCP namespaces on the application data.</p>                                                               |         | **optional** |
| `skipIfAlreadyExists` *boolean*     | <p>SkipIfAlreadyExists specifies whether to skip restore of a resource<br>if already exists in the namespace restored.</p>                                                                                                |         | **optional** |
| `patchIfAlreadyExists` *boolean*    | <p>PatchIfAlreadyExists specifies whether to patch spec of a already<br>exists resource in the namespace restored.</p>                                                                                                    |         | **optional** |
| `patchCRD` *boolean*                | PatchCRD specifies whether to patch spec of a already exists crd.                                                                                                                                                         |         | **optional** |
| `omitMetadata` *boolean*            | <p>OmitMetadata specifies whether to omit metadata like labels,<br>annotations of resources while restoring them.</p>                                                                                                     |         | **optional** |
| `skipOperatorResources` *boolean*   | <p>SkipOperatorResources specifies whether to skip operator resources or not at the time of restore.<br>(for the use case when operator is already present and the application of that operator needs to be restored)</p> |         | **optional** |
| `disableIgnoreResources` *boolean*  | <p>DisableIgnoreResources is responsible for the behavior of default list of resources being ignored at the restore.<br>If set to true, those resources will not be ignored</p>                                           |         | **optional** |
| `onlyData` *boolean*                | OnlyData flag decides if the restore operation will only restore data components.                                                                                                                                         |         | **optional** |
| `onlyMetadata` *boolean*            | OnlyMetadata flag decides if the restore operation will only restore metadata components.                                                                                                                                 |         | **optional** |
| `overrideImageIfExist` *boolean*    | OverrideImageIfExist overrides existing image from the backup image if it is already present.                                                                                                                             |         | **optional** |
| `restoreStorageClass` *boolean*     | RestoreStorageClass specifies if user wants to restore the storage class or not.                                                                                                                                          |         | **optional** |
| `retainHelmReleaseName` *boolean*   | RetainHelmReleaseName specifies if user wants to retain the helm release name after restore.                                                                                                                              |         | **optional** |
| `restoreVMMACAddress` *boolean*     | RestoreVMMACAddress specifies whether to assign backed up VM MAC address to the restored VM                                                                                                                               |         | **optional** |

### RestoreHelm

RestoreHelm defines the backed up helm application to be restored.

*Appears in:*

* [RestoreApplication](#restoreapplication)

| Field                                          | Description                                                            | Default | Validation   |
| ---------------------------------------------- | ---------------------------------------------------------------------- | ------- | ------------ |
| `snapshot` [*Helm*](#helm)                     | Snapshot defines the snapshot of application to be restored by a Helm. |         | **optional** |
| `status` [*ComponentStatus*](#componentstatus) | Status specifies the details of component restore in a namespace       |         | **optional** |

### RestoreImage

RestoreImage defines the backup container images to be restored.

*Appears in:*

* [RestoreApplication](#restoreapplication)

| Field                                             | Description                                                      | Default | Validation |
| ------------------------------------------------- | ---------------------------------------------------------------- | ------- | ---------- |
| `imageSnapshot` [*ImageSnapshot*](#imagesnapshot) | ImageSnapshot are the images which are restored from the backup. |         |            |

### RestoreOperator

RestoreOperator defines the backed up operator application to be restored.

*Appears in:*

* [RestoreApplication](#restoreapplication)

| Field                                          | Description                                                                | Default | Validation   |
| ---------------------------------------------- | -------------------------------------------------------------------------- | ------- | ------------ |
| `snapshot` [*Operator*](#operator)             | Snapshot defines the snapshot of application to be restored by a Operator. |         | **optional** |
| `status` [*ComponentStatus*](#componentstatus) | Status specifies the details of component restore in a namespace           |         | **optional** |

### RestorePhase

*Underlying type:* *string*

RestorePhase specifies the one of phase of Restore operation

*Validation:*

* Enum: \[TargetValidation Validation DataRestore MetadataRestore PrimitiveMetadataRestore Unquiesce RestoreCleanup AddProtection ImageRestore HookTargetIdentification DataOwnerUpdate]

*Appears in:*

* [ComponentStatus](#componentstatus)
* [RestoreCondition](#restorecondition)
* [RestoreStatus](#restorestatus)

| Field                      | Description                                                                                                                                             |
| -------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `TargetValidation`         | <p>RestoreTargetValidation means the validation of the target created in the restore namespace<br></p>                                                  |
| `Validation`               | <p>RestoreValidation means the validation of backed up resources for the restore<br></p>                                                                |
| `DataRestore`              | <p>DataRestore means the restore operation of volumes from backed up images<br></p>                                                                     |
| `MetadataRestore`          | <p>MetadataRestore means the restore operation of backed up validated metadata<br></p>                                                                  |
| `HookTargetIdentification` | <p>HookTargetIdentificationRestore means identification of hook targets for restore<br></p>                                                             |
| `Unquiesce`                | <p>UnquiesceRestore means the unquiescing the restored application<br></p>                                                                              |
| `PrimitiveMetadataRestore` | <p>PrimitiveMetadataRestore means the restore operation of primitive backed up resources<br>This RestorePhase will occur after validation phase<br></p> |
| `RestoreCleanup`           | <p>RestoreCleanup means the cleanup of resources created by failed restore<br></p>                                                                      |
| `AddProtection`            | <p>AddProtection phase creates the tvk resources to preserve a restored application<br></p>                                                             |
| `ImageRestore`             | <p>ImageRestore phase restores the backed up images of the resources<br></p>                                                                            |
| `DataOwnerUpdate`          | <p>DataOwnerUpdate phase updates namespace UID in the restore operation.<br></p>                                                                        |

### RestoreSource

RestoreSource defines the source from where the restore is to be done

*Appears in:*

* [RestoreSpec](#restorespec)

| Field                                                                                                                                     | Description                                                                                                                              | Default | Validation                                                                                  |
| ----------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------- | ------- | ------------------------------------------------------------------------------------------- |
| `type` [*RestoreSourceType*](#restoresourcetype)                                                                                          | Type is the type of source for restore                                                                                                   |         | <p>Enum: \[Backup Snapshot Location BackupPlan ConsistentSet ContinuousRestorePlan]<br></p> |
| `backup` [*ObjectReference*](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.28/#objectreference-v1-core)                | Backup is a reference to the Backup instance restored if type is Backup.                                                                 |         | **optional**                                                                                |
| `snapshot` [*ObjectReference*](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.28/#objectreference-v1-core)              | Snapshot is a reference to the Snapshot instance restored if type is Snapshot.                                                           |         | **optional**                                                                                |
| `target` [*ObjectReference*](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.28/#objectreference-v1-core)                | Target is a reference to the Target instance where from restore is performed if type is Location.                                        |         | **optional**                                                                                |
| `location` *string*                                                                                                                       | Location is an absolute path to remote target from where restore is performed if type is Location.                                       |         | **optional**                                                                                |
| `backupPlan` [*ObjectReference*](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.28/#objectreference-v1-core)            | BackupPlan is a reference to the BackupPlan whose latest successful backup is to be restored.                                            |         | **optional**                                                                                |
| `consistentSet` [*ObjectReference*](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.28/#objectreference-v1-core)         | ConsistentSet is a reference to the ConsistentSet where restore is performed if type is ConsistentSet.                                   |         | **optional**                                                                                |
| `continuousRestorePlan` [*ObjectReference*](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.28/#objectreference-v1-core) | <p>ContinuousRestorePlan is a reference to the ContinuousRestorePlan where restore is performed if<br>type is ContinuousRestorePlan.</p> |         | **optional**                                                                                |

### RestoreSourceType

*Underlying type:* *string*

RestoreSourceType defines the type of source for restore

*Appears in:*

* [RestoreSource](#restoresource)

| Field                   | Description                                                                                            |
| ----------------------- | ------------------------------------------------------------------------------------------------------ |
| `Backup`                | <p>BackupSource means that the restore is performed from backup instance.<br></p>                      |
| `Snapshot`              | <p>SnapshotSource means that the restore is performed from snapshot instance<br></p>                   |
| `Location`              | <p>LocationSource means that the restore is performed from remote target location<br></p>              |
| `BackupPlan`            | <p>BackupPlanSource means that the restore is performed from backup instance<br></p>                   |
| `ConsistentSet`         | <p>ConsistentSetSource means that the restore is performed from ConsistentSet instance<br></p>         |
| `ContinuousRestorePlan` | <p>ContinuousRestorePlanSource means that restore is performed from ContinuousRestore instance<br></p> |

### RestoreSpec

RestoreSpec defines the desired state of Restore

*Appears in:*

* [Restore](#restore)

| Field                                                                                                         | Description                                                                                                                                                                                                                 | Default | Validation                                                      |
| ------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------- | --------------------------------------------------------------- |
| `source` [*RestoreSource*](#restoresource)                                                                    | Source defines the source referred for performing restore operation                                                                                                                                                         |         |                                                                 |
| `restoreFlags` [*RestoreFlags*](#restoreflags)                                                                |                                                                                                                                                                                                                             |         | **optional**                                                    |
| `actionFlags` [*ActionFlags*](#actionflags)                                                                   |                                                                                                                                                                                                                             |         | **optional**                                                    |
| `env` [*EnvVar*](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.28/#envvar-v1-core) *array* | <p>Env is the List of environment variables to set in the container.<br>Cannot be updated.</p>                                                                                                                              |         | **optional**                                                    |
| `transformComponents` [*TransformComponents*](#transformcomponents)                                           | TransformComponents specifies the component-wise transformation configuration                                                                                                                                               |         | **optional**                                                    |
| `excludeResources` [*Resource*](#resource) *array*                                                            | <p>Deprecated: ExcludeResources field is now deprecated, Use ExcludeResourceSelector field instead to<br>exclude resources based on <code>LabelSelector</code> & <code>GVKSelector</code></p>                               |         | <p>MinItems: 1<br><strong>optional</strong></p>                 |
| `excludeResourceSelector` [*ResourceSelector*](#resourceselector)                                             | <p>ExcludeResourceSelector specifies the resources to be excluded while restoring,<br>Based on <code>LabelSelector</code> & <code>GVKSelector</code></p>                                                                    |         | **optional**                                                    |
| `resourceSelector` [*ResourceSelector*](#resourceselector)                                                    | <p>ResourceSelector allows users to select specific resources from backup to restore.<br>To restore specific resources from a backup, you can select them by providing labels and a list of GVKs.</p>                       |         | **optional**                                                    |
| `hookConfig` [*HookConfig*](#hookconfig)                                                                      | <p>HookConfig specifies the Post Restore Hooks<br>Executed in reverse sequence of the sequence specified here</p>                                                                                                           |         | **optional**                                                    |
| `encryption` [*Encryption*](#encryption)                                                                      | Encryption specify encryption key to decrypt the encrypted data.                                                                                                                                                            |         | **optional**                                                    |
| `resourcesReadyWaitSeconds` *integer*                                                                         | <p>ResourcesReadyWaitSeconds is the wait time for restored application's pods to come up. If user application<br>is having webhook then CR creation will fail is webhook is not up. Provide the wait time in such case.</p> |         | <p>Maximum: 1200<br>Minimum: 0<br><strong>optional</strong></p> |
| `imageRegistry` [*ImageRegistry*](#imageregistry)                                                             | ImageRegistry specifies the configuration to restore container images.                                                                                                                                                      |         | **optional**                                                    |

### RestoreStats

RestoreStats defines the stats for a Restore

*Appears in:*

* [RestoreStatus](#restorestatus)

| Field                                                                                                                          | Description                                                       | Default | Validation   |
| ------------------------------------------------------------------------------------------------------------------------------ | ----------------------------------------------------------------- | ------- | ------------ |
| `backupPlan` [*ObjectReference*](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.28/#objectreference-v1-core) | BackupPlan is the reference to BackupPlan associated with Restore |         | **optional** |
| `backup` [*ObjectReference*](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.28/#objectreference-v1-core)     | Backup is the reference to the Backup associated with Restore     |         | **optional** |
| `snapshot` [*ObjectReference*](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.28/#objectreference-v1-core)   | Snapshot is the reference to the Snapshot associated with Restore |         | **optional** |

### RestoreStatus

RestoreStatus defines the observed state of Restore

*Appears in:*

* [Restore](#restore)

| Field                                                                                                             | Description                                                                                                                                                                                                        | Default | Validation                                                                                                                                                                                                                 |
| ----------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `restoreScope` [*ComponentScope*](#componentscope)                                                                | RestoreScope indicates scope of component being restored i.e. App or Namespace.                                                                                                                                    |         | <p>Enum: \[App Namespace]<br><strong>optional</strong></p>                                                                                                                                                                 |
| `applicationType` [*ApplicationType*](#applicationtype)                                                           | ApplicationType is the type of Application restored in the App Scoped backup                                                                                                                                       |         | <p>Enum: \[Helm Operator Custom Namespace MultiNamespace]<br><strong>optional</strong></p>                                                                                                                                 |
| `startTimestamp` [*Time*](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.28/#time-v1-meta)      | StartTimestamp is the time a restore was started.                                                                                                                                                                  |         | **optional**                                                                                                                                                                                                               |
| `completionTimestamp` [*Time*](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.28/#time-v1-meta) | CompletionTimestamp is the time a restore was finished.                                                                                                                                                            |         | **optional**                                                                                                                                                                                                               |
| `phase` [*RestorePhase*](#restorephase)                                                                           | Phase is the current phase of the restore operation.                                                                                                                                                               |         | <p>Enum: \[TargetValidation Validation DataRestore MetadataRestore PrimitiveMetadataRestore Unquiesce RestoreCleanup AddProtection ImageRestore HookTargetIdentification DataOwnerUpdate]<br><strong>optional</strong></p> |
| `phaseStatus` [*Status*](#status)                                                                                 | PhaseStatus is the status of phase restore operation going through.                                                                                                                                                |         | <p>Enum: \[InProgress Pending Error Completed Failed]<br><strong>optional</strong></p>                                                                                                                                     |
| `status` [*Status*](#status)                                                                                      | Status is the status of the restore operation.                                                                                                                                                                     |         | <p>Enum: \[InProgress Pending Error Completed Failed]<br><strong>optional</strong></p>                                                                                                                                     |
| `size` [*Quantity*](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.28/#quantity-resource-api)   | Size is the aggregate size of the data restored back.                                                                                                                                                              |         | **optional**                                                                                                                                                                                                               |
| `percentageCompletion` *integer*                                                                                  | PercentageCompletion is the amount of restore operation completed.                                                                                                                                                 |         | <p>Maximum: 100<br>Minimum: 0<br><strong>optional</strong></p>                                                                                                                                                             |
| `restoreApplication` [*RestoreApplication*](#restoreapplication)                                                  | RestoreApplication defines the information about the different applications restored back to cluster.                                                                                                              |         |                                                                                                                                                                                                                            |
| `hookStatus` [*HookComponentStatus*](#hookcomponentstatus)                                                        | HookStatus specifies pre/post hook execution status for current backup.                                                                                                                                            |         | **optional**                                                                                                                                                                                                               |
| `condition` [*RestoreCondition*](#restorecondition) *array*                                                       | Condition is the current condition of restore resource.                                                                                                                                                            |         | **optional**                                                                                                                                                                                                               |
| `stats` [*RestoreStats*](#restorestats)                                                                           |                                                                                                                                                                                                                    |         | **optional**                                                                                                                                                                                                               |
| `duration` [*Duration*](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.28/#duration-v1-meta)    | Duration is the amount of time the restore process took to finish.                                                                                                                                                 |         | **optional**                                                                                                                                                                                                               |
| `protectingResources` [*Resource*](#resource) *array*                                                             | <p>ProtectingResources lists the Trilio resources and dependent resources which<br>are getting created after user application restore operation. It's applicable<br>only if ProtectRestoredApp is set to true.</p> |         | **optional**                                                                                                                                                                                                               |
| `encryptionEnabled` *boolean*                                                                                     | EncryptionEnabled flag shows that encryption is enabled for backup                                                                                                                                                 |         | **optional**                                                                                                                                                                                                               |

### RestoreSummary

RestoreSummary comprises restore object references and count of restore with different statuses

*Appears in:*

* [BackupPlanStats](#backupplanstats)

| Field                                                                                                                                     | Description                                                                        | Default | Validation   |
| ----------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------- | ------- | ------------ |
| `latestRestore` [*ObjectReference*](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.28/#objectreference-v1-core)         | LatestRestore is the reference to Latest Restore in any state, of a BackupPlan     |         | **optional** |
| `lastSuccessfulRestore` [*ObjectReference*](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.28/#objectreference-v1-core) | LastSuccessfulRestore is the reference to Latest completed Restore of a BackupPlan |         | **optional** |
| `totalInProgressRestores` *integer*                                                                                                       | TotalInProgressRestores is the count of total number of InProgress Restores        |         | **optional** |
| `totalCompletedRestores` *integer*                                                                                                        | TotalCompletedRestores is the count of total number of Completed Restores          |         | **optional** |
| `totalFailedRestores` *integer*                                                                                                           | TotalFailedRestores is the count of total number of Failed Restores                |         | **optional** |

### RetentionConfig

RetentionConfig is the configuration for the PolicyType: Retention

*Appears in:*

* [PolicySpec](#policyspec)

| Field                                       | Description                                                                   | Default | Validation                                                                                                                         |
| ------------------------------------------- | ----------------------------------------------------------------------------- | ------- | ---------------------------------------------------------------------------------------------------------------------------------- |
| `latest` *integer*                          | Latest is the max number of latest backups to be retained                     |         | <p>Format: int<br>Minimum: 1<br><strong>optional</strong></p>                                                                      |
| `weekly` *integer*                          | Weekly is max number of backups to be retained in a week                      |         | <p>Format: int<br>Minimum: 1<br><strong>optional</strong></p>                                                                      |
| `monthly` *integer*                         | Monthly is max number of backups to be retained in a month                    |         | <p>Format: int<br>Minimum: 1<br><strong>optional</strong></p>                                                                      |
| `yearly` *integer*                          | Yearly is max number of backups to be retained in a year                      |         | <p>Format: int<br>Minimum: 1<br><strong>optional</strong></p>                                                                      |
| `dayOfWeek` [*DayOfWeek*](#dayofweek)       | DayOfWeek is Day of the week to maintain weekly backup/restore resources      |         | <p>Enum: \[Monday Tuesday Wednesday Thursday Friday Saturday Sunday]<br><strong>optional</strong></p>                              |
| `dateOfMonth` [*int*](#int)                 | DateOfMonth is Date of the month to maintain monthly backup/restore resources |         | <p>Format: int<br>Maximum: 28<br>Minimum: 1<br><strong>optional</strong></p>                                                       |
| `monthOfYear` [*MonthOfYear*](#monthofyear) | MonthOfYear is the month of the backup to retain for yearly backups           |         | <p>Enum: \[January February March April May June July August September October November December]<br><strong>optional</strong></p> |

### SSLCert

SSLCert defines the configuration for SSL certificate.

*Appears in:*

* [ObjectStoreCredentials](#objectstorecredentials)

| Field                                                                                                                             | Description                                                                            | Default | Validation   |
| --------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------- | ------- | ------------ |
| `certConfigMap` [*ObjectReference*](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.28/#objectreference-v1-core) | certConfigMap is the object reference to the ConfigMap containing the SSL certificate. |         | **optional** |
| `certKey` *string*                                                                                                                | certKey is the key in the ConfigMap containing the SSL certificate.                    |         | **optional** |

### ScanInstance

ScanInstance specifies the info about Security ScanInstance and its related report summary

*Appears in:*

* [SecurityScanStatusInfo](#securityscanstatusinfo)

| Field                                                                                                       | Description                                                                                                                                                          | Default | Validation   |
| ----------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------- | ------------ |
| `scanInstanceName` *string*                                                                                 | ScanInstanceName is the name of the ScanInstance triggered on the Security site                                                                                      |         | **required** |
| `scanTimestamp` [*Time*](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.28/#time-v1-meta) | ScanTimestamp is the time stamp when scanning completed/failed                                                                                                       |         | **optional** |
| `backupScanInfo` *object (keys:string, values:*[*BackupScanInfo*](#backupscaninfo)*)*                       | <p>BackupScanInfo defines the scanning report for Backup or each Backup of a ClusterBackup<br>It is the mapping of Backup-uuid and corresponding Scanning report</p> |         | **required** |
| `reportPath` *string*                                                                                       | ReportPath is the location of Scanning report on the target                                                                                                          |         | **optional** |

### ScannerStatus

*Appears in:*

* [BackupScanInfo](#backupscaninfo)

| Field                               | Description                                                                       | Default | Validation                                                    |
| ----------------------------------- | --------------------------------------------------------------------------------- | ------- | ------------------------------------------------------------- |
| `totalScans` [*int*](#int)          | TotalScans denotes the total number of scans done for each type                   |         | **optional**                                                  |
| `scansPassed` [*int*](#int)         | ScansPassed denotes the number of scans passed out of TotalScans                  |         | **optional**                                                  |
| `status` [*Status*](#status)        | Status is the status of the condition.                                            |         | <p>Enum: \[Completed Failed]<br><strong>optional</strong></p> |
| `reportSummary` [*Report*](#report) | ReportSummary is the summary of vulnerabilities detected in the Security scanning |         | **required**                                                  |

### Scope

*Underlying type:* *string*

Scope specifies the scope of a resource.

*Appears in:*

* [LicenseProperties](#licenseproperties)

| Field        | Description |
| ------------ | ----------- |
| `Cluster`    |             |
| `Namespaced` |             |

### SecurityScanConfig

*Appears in:*

* [PolicySpec](#policyspec)

| Field                     | Description                                                                     | Default | Validation                                                    |
| ------------------------- | ------------------------------------------------------------------------------- | ------- | ------------------------------------------------------------- |
| `schedule` *string array* | Schedule is the cron schedules for periodic scanning of Backups/ClusterBackups  |         | <p>MinItems: 1<br><strong>optional</strong></p>               |
| `retention` *integer*     | Retention is the number of Security Scan reports to be retained for each Backup |         | <p>Format: int<br>Minimum: 1<br><strong>optional</strong></p> |

### SecurityScanConfigInfo

SecurityScanConfigInfo defines the Security Scan instances info which will be used for Backup/ClusterBackup scanning

*Appears in:*

* [BackupPlanSpec](#backupplanspec)
* [ClusterBackupPlanSpec](#clusterbackupplanspec)

| Field                                                                                    | Description                                                                                                                   | Default | Validation                                                     |
| ---------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------- | ------- | -------------------------------------------------------------- |
| `securityServiceInstances` [*SecurityServiceInstance*](#securityserviceinstance) *array* | SecurityServiceInstances defines the list of Security instances which will perform the Backup/ClusterBackup Security scanning |         | <p>MaxItems: 1<br>MinItems: 1<br><strong>required</strong></p> |

### SecurityScanStatus

SecurityScanStatus specifies the details of Security scan status of an instance

*Appears in:*

* [BackupPlanStatus](#backupplanstatus)
* [ClusterBackupPlanStatus](#clusterbackupplanstatus)

| Field                                                                                                                         | Description                                                                                                                                     | Default | Validation                                                         |
| ----------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------- | ------- | ------------------------------------------------------------------ |
| `securityEnabled` *boolean*                                                                                                   | SecurityEnabled denotes if the Security service is actually enabled on the Security site                                                        |         |                                                                    |
| `serviceStatus` [*Status*](#status)                                                                                           | <p>ServiceStatus is the current Status of Security service Available/Unavailable. It is updated as per the heartbeat of<br>Security service</p> |         | <p>Enum: \[Available Unavailable]<br><strong>optional</strong></p> |
| `lastScanTimestamp` [*Time*](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.28/#time-v1-meta)               | LastScanTimestamp is the time stamp of the last scan performed on this BackupPlan/ClusterBackupPlan                                             |         | **optional**                                                       |
| `lastSuccessfulScanScanTimestamp` [*Time*](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.28/#time-v1-meta) | LastSuccessfulScanScanTimestamp is the time of the last successful scan performed this BackupPlan/ClusterBackupPlan                             |         | **optional**                                                       |
| `scanPlan` *string*                                                                                                           | ScanPlan denotes the name of ScanPlan created for this BackupPlan/ClusterBackupPlan on the Security site                                        |         | **optional**                                                       |

### SecurityScanStatusInfo

*Appears in:*

* [BackupStatus](#backupstatus)
* [ClusterBackupStatus](#clusterbackupstatus)

| Field                                                                            | Description                                                                                                                                   | Default | Validation   |
| -------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------- | ------- | ------------ |
| `scanInstances` *object (keys:string, values:*[*ScanInstance*](#scaninstance)*)* | <p>ScanInstances defines the list of latest 3 Security ScanInstances which were triggered for a<br>Backup/ClusterBackup Security scanning</p> |         | **required** |

### SecurityServiceInstance

SecurityServiceInstance defines details of Security Scan for InstanceID specified

*Appears in:*

* [SecurityScanConfigInfo](#securityscanconfiginfo)

| Field                                                                                                                                  | Description                                                                                                      | Default | Validation   |
| -------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------- | ------- | ------------ |
| `instanceID` *string*                                                                                                                  | InstanceID is the unique Instance ID of the Security Service to be used for Security Scanning                    |         | **required** |
| `securityScanPolicy` [*ObjectReference*](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.28/#objectreference-v1-core) | SecurityScanPolicy is the object reference to the Security Scan Policy to be used for scanning                   |         | **optional** |
| `scanAllBackups` *boolean*                                                                                                             | ScanAllBackups enables Security Scan on all Backups/ClusterBackups of BackupPlan/ClusterBackupPlan (old and new) |         | **optional** |

### SnapshotConfig

SnapshotConfig defines the required configuration for taking snapshots such as target and retention policy.

*Appears in:*

* [BackupPlanSpec](#backupplanspec)
* [ClusterBackupPlanSpec](#clusterbackupplanspec)

| Field                                                                                                                               | Description                                                                      | Default | Validation   |
| ----------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------- | ------- | ------------ |
| `target` [*ObjectReference*](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.28/#objectreference-v1-core)          | Target is the object reference for the target resource                           |         | **required** |
| `retentionPolicy` [*ObjectReference*](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.28/#objectreference-v1-core) | RetentionPolicy is the object reference for the policy of type retention defined |         | **optional** |
| `schedulePolicy` [*SnapshotSchedulePolicy*](#snapshotschedulepolicy)                                                                | SchedulePolicy includes the object references of snapshot policy                 |         | **optional** |

### SnapshotInfo

SnapshotInfo contains the relevant information to uniquely identify a child Snapshot created from a ClusterSnapshot

*Appears in:*

* [ClusterBackupStatus](#clusterbackupstatus)

| Field                                                                                                                        | Description                                                         | Default | Validation                                                     |
| ---------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------- | ------- | -------------------------------------------------------------- |
| `snapshot` [*ObjectReference*](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.28/#objectreference-v1-core) | Snapshot ObjectReference of child Snapshot                          |         | **optional**                                                   |
| `status` [*Status*](#status)                                                                                                 | Status status of child Snapshot                                     |         | **optional**                                                   |
| `percentageCompletion` *integer*                                                                                             | PercentageCompletion is the amount of Snapshot operation completed. |         | <p>Maximum: 100<br>Minimum: 0<br><strong>optional</strong></p> |
| `location` *string*                                                                                                          | Location is the Snapshot's location on the target                   |         | **optional**                                                   |

### SnapshotSchedulePolicy

*Appears in:*

* [SnapshotConfig](#snapshotconfig)

| Field                                                                                                                              | Description                                                                    | Default | Validation   |
| ---------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------ | ------- | ------------ |
| `snapshotPolicy` [*ObjectReference*](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.28/#objectreference-v1-core) | SnapshotPolicy is the object reference for the policy of type Schedule defined |         | **optional** |

### SnapshotSpec

SnapshotSpec defines the desired state of Snapshot

*Appears in:*

* [Snapshot](#snapshot)

| Field                                                                                                                          | Description                                                  | Default | Validation   |
| ------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------ | ------- | ------------ |
| `backupPlan` [*ObjectReference*](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.28/#objectreference-v1-core) | BackupPlan is a reference to the BackupPlan to be backed up. |         | **required** |

### SnapshotSummary

SnapshotSummary consist of snapshot object references and count of snapshot with different statuses

*Appears in:*

* [BackupPlanStats](#backupplanstats)

| Field                                                                                                                                      | Description                                                                                                            | Default | Validation   |
| ------------------------------------------------------------------------------------------------------------------------------------------ | ---------------------------------------------------------------------------------------------------------------------- | ------- | ------------ |
| `inProgressSnapshot` [*ObjectReference*](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.28/#objectreference-v1-core)     | InProgressSnapshot is the reference to an InProgress snapshot of a BackupPlan                                          |         | **optional** |
| `lastSuccessfulSnapshot` [*ObjectReference*](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.28/#objectreference-v1-core) | LastSuccessfulSnapshot is the reference to Latest available Snapshot of a BackupPlan                                   |         | **optional** |
| `latestSnapshot` [*ObjectReference*](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.28/#objectreference-v1-core)         | LatestSnapshot is the reference to Latest snapshot in any state, of a BackupPlan                                       |         | **optional** |
| `totalAvailableSnapshots` *integer*                                                                                                        | TotalAvailableSnapshots is the count of total number of Available Snapshots                                            |         | **optional** |
| `totalFailedSnapshots` *integer*                                                                                                           | TotalFailedSnapshots is the count of total number of Failed Snapshots                                                  |         | **optional** |
| `totalQueuedSnapshots` *integer*                                                                                                           | TotalQueuedSnapshots is the count of total number of Queued Snapshots                                                  |         | **optional** |
| `pvcExistsForSnapshot` *boolean*                                                                                                           | PVCExistsForSnapshot is a bool value that states if the latest snapshot of a backupPlan has PVCs in its data component |         | **optional** |

### SourceBackupInfo

*Appears in:*

* [ConsistentSetStatus](#consistentsetstatus)

| Field                                                                                                             | Description                                                                                                                        | Default | Validation                                                                                 |
| ----------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------- | ------- | ------------------------------------------------------------------------------------------ |
| `backupName` *string*                                                                                             | BackupName is the name of source Backup                                                                                            |         |                                                                                            |
| `backupNamespace` *string*                                                                                        | BackupNamespace is the namespace of source Backup                                                                                  |         |                                                                                            |
| `completionTimestamp` [*Time*](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.28/#time-v1-meta) | CompletionTimestamp is the time a backup was finished.                                                                             |         | **optional**                                                                               |
| `location` *string*                                                                                               | Location is the path of Backup on the target                                                                                       |         |                                                                                            |
| `size` [*Quantity*](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.28/#quantity-resource-api)   | TotalSize is the total size of data restored done for the Backup                                                                   |         | **optional**                                                                               |
| `pvcSnapshotInfo` *object (keys:string, values:*[*VolumeSnapshotInfo*](#volumesnapshotinfo)*)*                    | <p>PVCSnapshotInfo is the mapping of source original PersistentVolumeClaim name, and it's<br>corresponding VolumeSnapshot info</p> |         | **optional**                                                                               |
| `transformStatus` [*TransformStatus*](#transformstatus) *array*                                                   | TransformStatus is the status of transformation performed                                                                          |         | **optional**                                                                               |
| `status` [*Status*](#status)                                                                                      | Status is the current Status of Backup data restore operation                                                                      |         | <p>Enum: \[InProgress Available Failed InUse Unavailable]<br><strong>optional</strong></p> |

### SourceBackupPlan

*Appears in:*

* [ConsistentSetStats](#consistentsetstats)
* [ContinuousRestorePlanStats](#continuousrestoreplanstats)

| Field                | Description | Default | Validation                                                                |
| -------------------- | ----------- | ------- | ------------------------------------------------------------------------- |
| `kind` *string*      |             |         | <p>Enum: \[BackupPlan ClusterBackupPlan]<br><strong>optional</strong></p> |
| `name` *string*      |             |         | **optional**                                                              |
| `namespace` *string* |             |         | **optional**                                                              |

### SourceInstanceInfo

*Appears in:*

* [ConsistentSetStats](#consistentsetstats)
* [ContinuousRestorePlanStats](#continuousrestoreplanstats)

| Field           | Description | Default | Validation   |
| --------------- | ----------- | ------- | ------------ |
| `name` *string* |             |         | **optional** |
| `id` *string*   |             |         | **optional** |

### Status

*Underlying type:* *string*

Status specifies the status of WorkloadJob operating on

*Appears in:*

* [BackupCondition](#backupcondition)
* [BackupInfo](#backupinfo)
* [BackupPlanCondition](#backupplancondition)
* [BackupPlanInfo](#backupplaninfo)
* [BackupPlanStatus](#backupplanstatus)
* [BackupStatus](#backupstatus)
* [ChildBackupSnapshotInfo](#childbackupsnapshotinfo)
* [ClusterBackupCondition](#clusterbackupcondition)
* [ClusterBackupPlanCondition](#clusterbackupplancondition)
* [ClusterBackupPlanStatus](#clusterbackupplanstatus)
* [ClusterBackupStatus](#clusterbackupstatus)
* [ClusterRestoreCondition](#clusterrestorecondition)
* [ClusterRestoreStatus](#clusterrestorestatus)
* [ComponentInfo](#componentinfo)
* [ComponentStatus](#componentstatus)
* [Conditions](#conditions)
* [ConsistentSetCondition](#consistentsetcondition)
* [ConsistentSetInfo](#consistentsetinfo)
* [ConsistentSetStatus](#consistentsetstatus)
* [ContinuousRestorePlanCondition](#continuousrestoreplancondition)
* [ContinuousRestorePlanStatus](#continuousrestoreplanstatus)
* [ContinuousRestoreStatus](#continuousrestorestatus)
* [FileRecoveryVMCondition](#filerecoveryvmcondition)
* [FileRecoveryVMStatus](#filerecoveryvmstatus)
* [MultiNamespaceCondition](#multinamespacecondition)
* [PrePostHookStatus](#preposthookstatus)
* [RestoreCondition](#restorecondition)
* [RestoreStatus](#restorestatus)
* [ScannerStatus](#scannerstatus)
* [SecurityScanStatus](#securityscanstatus)
* [SnapshotInfo](#snapshotinfo)
* [SourceBackupInfo](#sourcebackupinfo)
* [TargetCondition](#targetcondition)
* [TargetStatus](#targetstatus)
* [TransformStatus](#transformstatus)
* [VolumeSnapshot](#volumesnapshot)

| Field         | Description                                                                                                  |
| ------------- | ------------------------------------------------------------------------------------------------------------ |
| `Pending`     | <p>Pending means the process is created and yet to be processed<br></p>                                      |
| `InProgress`  | <p>InProgress means the process is under execution<br></p>                                                   |
| `Completed`   | <p>Completed means the process execution successfully completed.<br></p>                                     |
| `Ready`       | <p>Ready means FileRecoveryVM processing is completed and it is ready for VM backup recovery.<br></p>        |
| `Failed`      | <p>Failed means the process is unsuccessful due to an error.<br></p>                                         |
| `Available`   | <p>Available means the resources blocked for the process execution are now available.<br></p>                |
| `Unavailable` | <p>Unavailable means the resources blocked for the process execution<br></p>                                 |
| `Error`       | <p>Error means the resources blocked for the process execution<br></p>                                       |
| `Coalescing`  | <p>Coalescing means the backup is in intermediate state<br></p>                                              |
| `Queued`      | <p>Queued means the backup is queued for future processing.<br></p>                                          |
| `InUse`       | <p>InUse means the resource is in-use at the moment<br></p>                                                  |
| `Skipped`     | <p>Skipped means the particular phase is skipped for the process execution<br></p>                           |
| `Canceling`   | <p>Canceling means the backup is in Canceling state<br></p>                                                  |
| `Canceled`    | <p>Canceled means the backup is in Canceled state<br></p>                                                    |
| `Degraded`    | <p>Degraded means the backup's backing chains are in degraded state<br>and the backup is not usable.<br></p> |

### TargetCondition

TargetCondition specifies the current condition of a target resource.

*Appears in:*

* [TargetStatus](#targetstatus)

| Field                                                                                                   | Description                                                                      | Default | Validation                                                                         |
| ------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------- | ------- | ---------------------------------------------------------------------------------- |
| `status` [*Status*](#status)                                                                            | Status is the status of the condition.                                           |         | <p>Enum: \[InProgress Error Completed Failed]<br><strong>optional</strong></p>     |
| `timestamp` [*Time*](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.28/#time-v1-meta) | Timestamp is the time a condition occurred.                                      |         | **optional**                                                                       |
| `reason` *string*                                                                                       | A brief message indicating details about why the component is in this condition. |         | **optional**                                                                       |
| `phase` [*OperationType*](#operationtype)                                                               | Phase defines the current phase of the controller.                               |         | <p>Enum: \[Validation TargetBrowsing EventTarget]<br><strong>optional</strong></p> |

### TargetInfo

TargetInfo contains minimal information about target populated in backup stats

*Appears in:*

* [BackupSnapshotStats](#backupsnapshotstats)
* [ClusterBackupSnapshotStats](#clusterbackupsnapshotstats)

| Field                                                                                                                      | Description                                                 | Default | Validation                                                                                                                                                  |
| -------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------- | ------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `target` [*ObjectReference*](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.28/#objectreference-v1-core) | Target is the reference to a Target backuped up             |         | **optional**                                                                                                                                                |
| `type` [*TargetType*](#targettype)                                                                                         | Type is the type of target for backup storage.              |         | <p>Enum: \[ObjectStore NFS]<br></p>                                                                                                                         |
| `vendor` [*Vendor*](#vendor)                                                                                               | Vendor is the third party storage vendor hosting the target |         | <p>Enum: \[AWS RedhatCeph Ceph IBMCleversafe Cloudian Scality NetApp Cohesity SwiftStack Wasabi Wassabi MinIO DellEMC Azure DigitalOcean OVH Other]<br></p> |

### TargetSpec

TargetSpec defines the specification of a Target.

*Appears in:*

* [Target](#target)

| Field                                                                                                                        | Description                                                                                 | Default | Validation                                                                                                                                                  |
| ---------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------- | ------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `type` [*TargetType*](#targettype)                                                                                           | Type is the type of target for backup storage.                                              |         | <p>Enum: \[ObjectStore NFS]<br></p>                                                                                                                         |
| `vendor` [*Vendor*](#vendor)                                                                                                 | Vendor is the third party storage vendor hosting the target                                 |         | <p>Enum: \[AWS RedhatCeph Ceph IBMCleversafe Cloudian Scality NetApp Cohesity SwiftStack Wasabi Wassabi MinIO DellEMC Azure DigitalOcean OVH Other]<br></p> |
| `nfsCredentials` [*NFSCredentials*](#nfscredentials)                                                                         | NfsCredentials specifies the credentials for TargetType NFS                                 |         | **optional**                                                                                                                                                |
| `objectStoreCredentials` [*ObjectStoreCredentials*](#objectstorecredentials)                                                 | ObjectStoreCredentials specifies the credentials for TargetType ObjectStore                 |         | **optional**                                                                                                                                                |
| `enableBrowsing` *boolean*                                                                                                   | EnableBrowsing specifies if target browser feature should be enabled for this target or not |         | **optional**                                                                                                                                                |
| `thresholdCapacity` [*Quantity*](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.28/#quantity-resource-api) | ThresholdCapacity is the maximum threshold capacity to store backup data.                   |         | **optional**                                                                                                                                                |

### TargetStats

TargetStats defines the stats for a Target

*Appears in:*

* [TargetStatus](#targetstatus)

| Field                                                                                                                                  | Description                                                                       | Default | Validation   |
| -------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------- | ------- | ------------ |
| `totalBackupPlans` *integer*                                                                                                           | TotalBackupPlans is the count of total number of BackupPlans of a Target          |         | **optional** |
| `capacityOccupied` [*Quantity*](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.28/#quantity-resource-api)            | CapacityOccupied is the aggregate of total size occupied on the Target by Backups |         | **optional** |
| `applicationCapacity` [*Quantity*](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.28/#quantity-resource-api)         |                                                                                   |         | **optional** |
| `applicationCapacityConsumed` [*Quantity*](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.28/#quantity-resource-api) |                                                                                   |         | **optional** |

### TargetStatus

TargetStatus defines the observed state of Target

*Appears in:*

* [Target](#target)

| Field                                                                                                                                        | Description                                                                                                                                         | Default | Validation                                                                    |
| -------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------- | ------- | ----------------------------------------------------------------------------- |
| `condition` [*TargetCondition*](#targetcondition) *array*                                                                                    | Condition is the current condition of a target.                                                                                                     |         | **optional**                                                                  |
| `status` [*Status*](#status)                                                                                                                 | Status is the final Status of target Available/Unavailable                                                                                          |         | <p>Enum: \[InProgress Available Unavailable]<br><strong>optional</strong></p> |
| `browsingEnabled` *boolean*                                                                                                                  | BrowsingEnabled specifies if target browser feature is enabled for this target or not                                                               |         | **optional**                                                                  |
| `stats` [*TargetStats*](#targetstats)                                                                                                        |                                                                                                                                                     |         | **optional**                                                                  |
| `nfsPersistentVolume` [*ObjectReference*](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.28/#objectreference-v1-core)      | NFSPersistentVolume is the object reference to the PersistentVolume of NFS volume type with target NFS credentials                                  |         | **optional**                                                                  |
| `nfsPersistentVolumeClaim` [*ObjectReference*](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.28/#objectreference-v1-core) | NFSPersistentVolumeClaim is the object reference to the PersistentVolumeClaim bound to NFS volume attached to the Container                         |         | **optional**                                                                  |
| `defaultRetentionPeriod` *integer*                                                                                                           | <p>DefaultRetentionPeriod is the period set by default on the target<br>This value will always be in number of days</p>                             |         |                                                                               |
| `eventTargetEnabled` *boolean*                                                                                                               | EventTargetEnabled specifies if target is configured as Event target or not                                                                         |         | **optional**                                                                  |
| `availableContinuousRestoreInstances` *object (keys:string, values:*[*RemoteInstance*](#remoteinstance)*)*                                   | <p>AvailableContinuousRestoreInstances is the map of instance IDs to instance names<br>which are available to be used as ContinuousRestore site</p> |         | **optional**                                                                  |
| `availableSecurityInstances` *object (keys:string, values:*[*RemoteInstance*](#remoteinstance)*)*                                            | <p>AvailableSecurityInstances is the map of instance IDs to instance names<br>which are available to be used as SecurityScanning site</p>           |         | **optional**                                                                  |

### TargetType

*Underlying type:* *string*

TargetType is the type of target.

*Validation:*

* Enum: \[ObjectStore NFS]

*Appears in:*

* [TargetInfo](#targetinfo)
* [TargetSpec](#targetspec)

| Field         | Description |
| ------------- | ----------- |
| `ObjectStore` |             |
| `NFS`         |             |

### TimeoutConfig

TimeoutConfig is the configuration for the PolicyType: Timeout

*Appears in:*

* [PolicySpec](#policyspec)

### TransformComponents

TransformComponents specifies component wise transformation configuration

*Appears in:*

* [ConsistentSetSpec](#consistentsetspec)
* [ContinuousRestoreInstance](#continuousrestoreinstance)
* [ContinuousRestorePlanSpec](#continuousrestoreplanspec)
* [RestoreConfig](#restoreconfig)
* [RestoreSpec](#restorespec)

| Field                                                  | Description                                                                              | Default | Validation                                      |
| ------------------------------------------------------ | ---------------------------------------------------------------------------------------- | ------- | ----------------------------------------------- |
| `helm` [*HelmTransform*](#helmtransform) *array*       | HelmTransform specifies the Transformation configuration for Helm charts                 |         | <p>MinItems: 1<br><strong>optional</strong></p> |
| `custom` [*CustomTransform*](#customtransform) *array* | CustomTransform specifies the Transformation configuration for Custom label-based backup |         | <p>MinItems: 1<br><strong>optional</strong></p> |

### TransformStatus

TransformStatus specifies the details of transform operation

*Appears in:*

* [ComponentStatus](#componentstatus)
* [SourceBackupInfo](#sourcebackupinfo)

| Field                                                  | Description                                                                        | Default | Validation                           |
| ------------------------------------------------------ | ---------------------------------------------------------------------------------- | ------- | ------------------------------------ |
| `transformName` *string*                               | TransformName is the name of transformation                                        |         |                                      |
| `status` [*Status*](#status)                           | Status is the status of transform operation                                        |         | <p>Enum: \[Completed Failed]<br></p> |
| `transformedResources` [*Resource*](#resource) *array* | TransformedResources Specifies the resources transformed as part of transformation |         | **optional**                         |
| `reason` *string*                                      | Reason is reason for status in case of failure                                     |         | **optional**                         |

### Vendor

*Underlying type:* *string*

Vendor is the third party storage vendor hosting the target

*Validation:*

* Enum: \[AWS RedhatCeph Ceph IBMCleversafe Cloudian Scality NetApp Cohesity SwiftStack Wasabi Wassabi MinIO DellEMC Azure DigitalOcean OVH Other]

*Appears in:*

* [TargetInfo](#targetinfo)
* [TargetSpec](#targetspec)

| Field           | Description |
| --------------- | ----------- |
| `AWS`           |             |
| `RedHatCeph`    |             |
| `Ceph`          |             |
| `IBMCleversafe` |             |
| `Cloudian`      |             |
| `Scality`       |             |
| `NetApp`        |             |
| `Cohesity`      |             |
| `SwiftStack`    |             |
| `Wasabi`        |             |
| `Wassabi`       |             |
| `MinIO`         |             |
| `Azure`         |             |
| `DellEMC`       |             |
| `DigitalOcean`  |             |
| `OVH`           |             |
| `Other`         |             |

### VolumeSnapshot

VolumeSnapshot defines the CSI snapshot of a Persistent Volume.

*Appears in:*

* [DataSnapshot](#datasnapshot)
* [VolumeSnapshotInfo](#volumesnapshotinfo)

| Field                                                                                                                              | Description                                                               | Default | Validation                                                                                                 |
| ---------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------- | ------- | ---------------------------------------------------------------------------------------------------------- |
| `volumeSnapshot` [*ObjectReference*](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.28/#objectreference-v1-core) | VolumeSnapshot is a reference to the Persistent Volume Snapshot captured. |         | **optional**                                                                                               |
| `retryCount` *integer*                                                                                                             | RetryCount is the number of attempts made to capture Volume Snapshot.     |         | **optional**                                                                                               |
| `status` [*Status*](#status)                                                                                                       | Status is the status defining the progress of Volume Snapshot capture.    |         | <p>Enum: \[InProgress Pending Error Completed Failed Unavailable Skipped]<br><strong>optional</strong></p> |
| `error` *string*                                                                                                                   | Error is the error occurred while capturing Volume Snapshot if any.       |         | **optional**                                                                                               |

### VolumeSnapshotInfo

*Appears in:*

* [SourceBackupInfo](#sourcebackupinfo)

| Field                                                                                                                                       | Description                                                                                                                                                                                                 | Default | Validation   |
| ------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------- | ------------ |
| `volumeSnapshotSourcePVC` [*ObjectReference*](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.28/#objectreference-v1-core) | VolumeSnapshotSourcePVC is the objectReference of the temporary PersistentVolumeClaim used for creating VolumeSnapshot                                                                                      |         | **optional** |
| `prePopulated` *boolean*                                                                                                                    | PrePopulated field is a bool field which denotes if the PersistentVolumeClaim used is already populated with data or not                                                                                    |         | **optional** |
| `size` [*Quantity*](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.28/#quantity-resource-api)                             | Size is the size of the actual data restored in the PVC.                                                                                                                                                    |         | **optional** |
| `volumeSnapshot` [*VolumeSnapshot*](#volumesnapshot)                                                                                        | VolumeSnapshot specifies the CSI snapshot of a Persistent Volume.                                                                                                                                           |         | **optional** |
| `path` *string*                                                                                                                             | Path is the qcow2 path for the PersistentVolume data on the target                                                                                                                                          |         | **optional** |
| `owner` [*Owner*](#owner)                                                                                                                   | <p>Owner specifies the parent for DataComponent.<br>Owner will be nil for DataComponent with no direct/indirect owner.<br>This is helpful for dataMover to decide how to take data backup for this PVC.</p> |         | **optional** |
| `conditions` [*Conditions*](#conditions) *array*                                                                                            | Conditions are the current statuses of restore PVCs.                                                                                                                                                        |         | **optional** |
| `snapshotSize` [*Quantity*](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.28/#quantity-resource-api)                     | SnapshotSize is the size of the volume snapshot of a Persistent Volume.                                                                                                                                     |         | **optional** |
