---
title: Getting Started with Datadog
description: Datadog, the leading service for cloud-scale monitoring.
breadcrumbs: Docs > Infrastructure > Datadog Resource Catalog
---

# gcp_gkebackup_backup_plan{% #gcp_gkebackup_backup_plan %}

## `ancestors`{% #ancestors %}

**Type**: `UNORDERED_LIST_STRING`

## `backup_config`{% #backup_config %}

**Type**: `STRUCT`**Provider name**: `backupConfig`**Description**: Optional. Defines the configuration of Backups created via this BackupPlan.

- `all_namespaces`**Type**: `BOOLEAN`**Provider name**: `allNamespaces`**Description**: If True, include all namespaced resources
- `encryption_key`**Type**: `STRUCT`**Provider name**: `encryptionKey`**Description**: Optional. This defines a customer managed encryption key that will be used to encrypt the "config" portion (the Kubernetes resources) of Backups created via this plan. Default (empty): Config backup artifacts will not be encrypted.
  - `gcp_kms_encryption_key`**Type**: `STRING`**Provider name**: `gcpKmsEncryptionKey`**Description**: Optional. Google Cloud KMS encryption key. Format: `projects/*/locations/*/keyRings/*/cryptoKeys/*`
- `include_secrets`**Type**: `BOOLEAN`**Provider name**: `includeSecrets`**Description**: Optional. This flag specifies whether Kubernetes Secret resources should be included when they fall into the scope of Backups. Default: False
- `include_volume_data`**Type**: `BOOLEAN`**Provider name**: `includeVolumeData`**Description**: Optional. This flag specifies whether volume data should be backed up when PVCs are included in the scope of a Backup. Default: False
- `permissive_mode`**Type**: `BOOLEAN`**Provider name**: `permissiveMode`**Description**: Optional. If false, Backups will fail when Backup for GKE detects Kubernetes configuration that is non-standard or requires additional setup to restore. Default: False
- `selected_applications`**Type**: `STRUCT`**Provider name**: `selectedApplications`**Description**: If set, include just the resources referenced by the listed ProtectedApplications.
  - `namespaced_names`**Type**: `UNORDERED_LIST_STRUCT`**Provider name**: `namespacedNames`**Description**: Optional. A list of namespaced Kubernetes resources.
    - `name`**Type**: `STRING`**Provider name**: `name`**Description**: Optional. The name of the Kubernetes resource.
    - `namespace`**Type**: `STRING`**Provider name**: `namespace`**Description**: Optional. The Namespace of the Kubernetes resource.
- `selected_namespaces`**Type**: `STRUCT`**Provider name**: `selectedNamespaces`**Description**: If set, include just the resources in the listed namespaces.
  - `namespaces`**Type**: `UNORDERED_LIST_STRING`**Provider name**: `namespaces`**Description**: Optional. A list of Kubernetes Namespaces.

## `backup_schedule`{% #backup_schedule %}

**Type**: `STRUCT`**Provider name**: `backupSchedule`**Description**: Optional. Defines a schedule for automatic Backup creation via this BackupPlan.

- `cron_schedule`**Type**: `STRING`**Provider name**: `cronSchedule`**Description**: Optional. A standard [cron](https://wikipedia.com/wiki/cron) string that defines a repeating schedule for creating Backups via this BackupPlan. This is mutually exclusive with the rpo_config field since at most one schedule can be defined for a BackupPlan. If this is defined, then backup_retain_days must also be defined. Default (empty): no automatic backup creation will occur.
- `next_scheduled_backup_time`**Type**: `TIMESTAMP`**Provider name**: `nextScheduledBackupTime`**Description**: Output only. Start time of next scheduled backup under this BackupPlan by either cron_schedule or rpo config.
- `paused`**Type**: `BOOLEAN`**Provider name**: `paused`**Description**: Optional. This flag denotes whether automatic Backup creation is paused for this BackupPlan. Default: False
- `rpo_config`**Type**: `STRUCT`**Provider name**: `rpoConfig`**Description**: Optional. Defines the RPO schedule configuration for this BackupPlan. This is mutually exclusive with the cron_schedule field since at most one schedule can be defined for a BackupPLan. If this is defined, then backup_retain_days must also be defined. Default (empty): no automatic backup creation will occur.
  - `exclusion_windows`**Type**: `UNORDERED_LIST_STRUCT`**Provider name**: `exclusionWindows`**Description**: Optional. User specified time windows during which backup can NOT happen for this BackupPlan - backups should start and finish outside of any given exclusion window. Note: backup jobs will be scheduled to start and finish outside the duration of the window as much as possible, but running jobs will not get canceled when it runs into the window. All the time and date values in exclusion_windows entry in the API are in UTC. We only allow <=1 recurrence (daily or weekly) exclusion window for a BackupPlan while no restriction on number of single occurrence windows.
    - `daily`**Type**: `BOOLEAN`**Provider name**: `daily`**Description**: The exclusion window occurs every day if set to "True". Specifying this field to "False" is an error.
    - `days_of_week`**Type**: `STRUCT`**Provider name**: `daysOfWeek`**Description**: The exclusion window occurs on these days of each week in UTC.
      - `days_of_week`**Type**: `UNORDERED_LIST_STRING`**Provider name**: `daysOfWeek`**Description**: Optional. A list of days of week.
    - `duration`**Type**: `STRING`**Provider name**: `duration`**Description**: Required. Specifies duration of the window. Duration must be >= 5 minutes and < (target RPO - 20 minutes). Additional restrictions based on the recurrence type to allow some time for backup to happen: - single_occurrence_date: no restriction, but UI may warn about this when duration >= target RPO - daily window: duration < 24 hours - weekly window: - days of week includes all seven days of a week: duration < 24 hours - all other weekly window: duration < 168 hours (i.e., 24 * 7 hours)
    - `single_occurrence_date`**Type**: `STRUCT`**Provider name**: `singleOccurrenceDate`**Description**: No recurrence. The exclusion window occurs only once and on this date in UTC.
      - `day`**Type**: `INT32`**Provider name**: `day`**Description**: Day of a month. Must be from 1 to 31 and valid for the year and month, or 0 to specify a year by itself or a year and month where the day isn't significant.
      - `month`**Type**: `INT32`**Provider name**: `month`**Description**: Month of a year. Must be from 1 to 12, or 0 to specify a year without a month and day.
      - `year`**Type**: `INT32`**Provider name**: `year`**Description**: Year of the date. Must be from 1 to 9999, or 0 to specify a date without a year.
    - `start_time`**Type**: `STRUCT`**Provider name**: `startTime`**Description**: Required. Specifies the start time of the window using time of the day in UTC.
      - `hours`**Type**: `INT32`**Provider name**: `hours`**Description**: Hours of a day in 24 hour format. Must be greater than or equal to 0 and typically must be less than or equal to 23. An API may choose to allow the value "24:00:00" for scenarios like business closing time.
      - `minutes`**Type**: `INT32`**Provider name**: `minutes`**Description**: Minutes of an hour. Must be greater than or equal to 0 and less than or equal to 59.
      - `nanos`**Type**: `INT32`**Provider name**: `nanos`**Description**: Fractions of seconds, in nanoseconds. Must be greater than or equal to 0 and less than or equal to 999,999,999.
      - `seconds`**Type**: `INT32`**Provider name**: `seconds`**Description**: Seconds of a minute. Must be greater than or equal to 0 and typically must be less than or equal to 59. An API may allow the value 60 if it allows leap-seconds.
  - `target_rpo_minutes`**Type**: `INT32`**Provider name**: `targetRpoMinutes`**Description**: Required. Defines the target RPO for the BackupPlan in minutes, which means the target maximum data loss in time that is acceptable for this BackupPlan. This must be at least 60, i.e., 1 hour, and at most 86400, i.e., 60 days.

## `cluster`{% #cluster %}

**Type**: `STRING`**Provider name**: `cluster`**Description**: Required. Immutable. The source cluster from which Backups will be created via this BackupPlan. Valid formats: - `projects/*/locations/*/clusters/*` - `projects/*/zones/*/clusters/*`

## `create_time`{% #create_time %}

**Type**: `TIMESTAMP`**Provider name**: `createTime`**Description**: Output only. The timestamp when this BackupPlan resource was created.

## `deactivated`{% #deactivated %}

**Type**: `BOOLEAN`**Provider name**: `deactivated`**Description**: Optional. This flag indicates whether this BackupPlan has been deactivated. Setting this field to True locks the BackupPlan such that no further updates will be allowed (except deletes), including the deactivated field itself. It also prevents any new Backups from being created via this BackupPlan (including scheduled Backups). Default: False

## `description`{% #description %}

**Type**: `STRING`**Provider name**: `description`**Description**: Optional. User specified descriptive string for this BackupPlan.

## `etag`{% #etag %}

**Type**: `STRING`**Provider name**: `etag`**Description**: Output only. `etag` is used for optimistic concurrency control as a way to help prevent simultaneous updates of a backup plan from overwriting each other. It is strongly suggested that systems make use of the 'etag' in the read-modify-write cycle to perform BackupPlan updates in order to avoid race conditions: An `etag` is returned in the response to `GetBackupPlan`, and systems are expected to put that etag in the request to `UpdateBackupPlan` or `DeleteBackupPlan` to ensure that their change will be applied to the same version of the resource.

## `labels`{% #labels %}

**Type**: `UNORDERED_LIST_STRING`

## `last_successful_backup_time`{% #last_successful_backup_time %}

**Type**: `TIMESTAMP`**Provider name**: `lastSuccessfulBackupTime`**Description**: Output only. Completion time of the last successful Backup. This is sourced from a successful Backup's complete_time field. This field is added to maintain consistency with BackupPlanBinding to display last successful backup time.

## `name`{% #name %}

**Type**: `STRING`**Provider name**: `name`**Description**: Output only. The full name of the BackupPlan resource. Format: `projects/*/locations/*/backupPlans/*`

## `organization_id`{% #organization_id %}

**Type**: `STRING`

## `parent`{% #parent %}

**Type**: `STRING`

## `project_id`{% #project_id %}

**Type**: `STRING`

## `project_number`{% #project_number %}

**Type**: `STRING`

## `protected_pod_count`{% #protected_pod_count %}

**Type**: `INT32`**Provider name**: `protectedPodCount`**Description**: Output only. The number of Kubernetes Pods backed up in the last successful Backup created via this BackupPlan.

## `region_id`{% #region_id %}

**Type**: `STRING`

## `resource_name`{% #resource_name %}

**Type**: `STRING`

## `retention_policy`{% #retention_policy %}

**Type**: `STRUCT`**Provider name**: `retentionPolicy`**Description**: Optional. RetentionPolicy governs lifecycle of Backups created under this plan.

- `backup_delete_lock_days`**Type**: `INT32`**Provider name**: `backupDeleteLockDays`**Description**: Optional. Minimum age for Backups created via this BackupPlan (in days). This field MUST be an integer value between 0-90 (inclusive). A Backup created under this BackupPlan will NOT be deletable until it reaches Backup's (create_time + backup_delete_lock_days). Updating this field of a BackupPlan does NOT affect existing Backups under it. Backups created AFTER a successful update will inherit the new value. Default: 0 (no delete blocking)
- `backup_retain_days`**Type**: `INT32`**Provider name**: `backupRetainDays`**Description**: Optional. The default maximum age of a Backup created via this BackupPlan. This field MUST be an integer value >= 0 and <= 365. If specified, a Backup created under this BackupPlan will be automatically deleted after its age reaches (create_time + backup_retain_days). If not specified, Backups created under this BackupPlan will NOT be subject to automatic deletion. Updating this field does NOT affect existing Backups under it. Backups created AFTER a successful update will automatically pick up the new value. NOTE: backup_retain_days must be >= backup_delete_lock_days. If cron_schedule is defined, then this must be <= 360 * the creation interval. If rpo_config is defined, then this must be <= 360 * target_rpo_minutes / (1440minutes/day). Default: 0 (no automatic deletion)
- `locked`**Type**: `BOOLEAN`**Provider name**: `locked`**Description**: Optional. This flag denotes whether the retention policy of this BackupPlan is locked. If set to True, no further update is allowed on this policy, including the `locked` field itself. Default: False

## `rpo_risk_level`{% #rpo_risk_level %}

**Type**: `INT32`**Provider name**: `rpoRiskLevel`**Description**: Output only. A number that represents the current risk level of this BackupPlan from RPO perspective with 1 being no risk and 5 being highest risk.

## `rpo_risk_reason`{% #rpo_risk_reason %}

**Type**: `STRING`**Provider name**: `rpoRiskReason`**Description**: Output only. Human-readable description of why the BackupPlan is in the current rpo_risk_level and action items if any.

## `state`{% #state %}

**Type**: `STRING`**Provider name**: `state`**Description**: Output only. State of the BackupPlan. This State field reflects the various stages a BackupPlan can be in during the Create operation. It will be set to "DEACTIVATED" if the BackupPlan is deactivated on an Update**Possible values**:

- `STATE_UNSPECIFIED` - Default first value for Enums.
- `CLUSTER_PENDING` - Waiting for cluster state to be RUNNING.
- `PROVISIONING` - The BackupPlan is in the process of being created.
- `READY` - The BackupPlan has successfully been created and is ready for Backups.
- `FAILED` - BackupPlan creation has failed.
- `DEACTIVATED` - The BackupPlan has been deactivated.
- `DELETING` - The BackupPlan is in the process of being deleted.

## `state_reason`{% #state_reason %}

**Type**: `STRING`**Provider name**: `stateReason`**Description**: Output only. Human-readable description of why BackupPlan is in the current `state`. This field is only meant for human readability and should not be used programmatically as this field is not guaranteed to be consistent.

## `tags`{% #tags %}

**Type**: `UNORDERED_LIST_STRING`

## `uid`{% #uid %}

**Type**: `STRING`**Provider name**: `uid`**Description**: Output only. Server generated global unique identifier of [UUID](https://en.wikipedia.org/wiki/Universally_unique_identifier) format.

## `update_time`{% #update_time %}

**Type**: `TIMESTAMP`**Provider name**: `updateTime`**Description**: Output only. The timestamp when this BackupPlan resource was last updated.

## `zone_id`{% #zone_id %}

**Type**: `STRING`
