# The SnapshotSchedule object

The automatic snapshot cadences for a branch. There is exactly one schedule
 per branch (singleton); it is configured in place, not created or deleted.

 Name: projects/{project_id}/branches/{branch_id}/snapshot-schedule

## Attributes

- `name` (string, Beta, ID, Immutable)
  The resource name of the branch's snapshot schedule.
   Format: projects/{project_id}/branches/{branch_id}/snapshot-schedule
- `schedule` (array of object, Beta, Unordered list)
  The cadences at which automatic snapshots are taken. Update replaces the
   whole set; an empty set disables automatic snapshots. Order is not
   significant. When several cadences fire together, one snapshot is taken,
   retained for the longest of their retentions.
  - `daily_schedule` (object, Beta)
    Take a snapshot once per day.
    - `hour` (int32, Beta)
      The hour of the day, in UTC, at which to take the snapshot, in [0, 23].
  - `weekly_schedule` (object, Beta)
    Take a snapshot once per week.
    - `day_of_week` (string, Beta)
      The day of the week on which to take the snapshot.
      Possible values:
      - `DAY_OF_WEEK_UNSPECIFIED`
      - `MONDAY`
      - `TUESDAY`
      - `WEDNESDAY`
      - `THURSDAY`
      - `FRIDAY`
      - `SATURDAY`
      - `SUNDAY`
    - `hour` (int32, Beta)
      The hour of the day, in UTC, at which to take the snapshot, in [0, 23].
  - `monthly_schedule` (object, Beta)
    Take a snapshot once per month.
    - `day` (int32, Beta)
      The day of the month on which to take the snapshot, in [1, 31]. In shorter
       months the snapshot is taken on the last day instead (day 31 runs on Feb 28
       or 29, and on Apr 30), so every month gets exactly one snapshot.
    - `hour` (int32, Beta)
      The hour of the day, in UTC, at which to take the snapshot, in [0, 23].
  - `retention` (string, Beta)
    How long snapshots from this cadence are kept before automatic deletion.
     Must be at least 1 hour. Applied when a snapshot is taken; not retroactive,
     so changing it affects only later snapshots.

## Example

```json
{
  "name": "string",
  "schedule": [
    {
      "daily_schedule": {},
      "weekly_schedule": {},
      "monthly_schedule": {},
      "retention": "string"
    }
  ]
}
```


