# The Snapshot object

An immutable, point-in-time copy of a branch's data within a project. It
 remains available after the source branch is deleted.

## Attributes

- `name` (string, Beta, ID, Immutable)
  The resource name of the snapshot.
   Format: projects/{project_id}/snapshots/{snapshot_id}
- `uid` (string, Beta, Output only)
  Unique system-generated ID for the snapshot.
- `create_time` (string, Beta, Output only)
  When the snapshot was created.
- `spec` (object, Beta)
  Client-provided configuration of the snapshot.
  - `source_branch` (string, Beta, Immutable)
    The source branch to snapshot.
     Format: projects/{project_id}/branches/{branch_id}
  - `source_branch_lsn` (string, Beta, Immutable)
    LSN to snapshot from, e.g. `16/B374D848`.
     Mutually exclusive with `source_branch_time`.
  - `source_branch_time` (string, Beta, Immutable)
    Timestamp to snapshot from.
     Mutually exclusive with `source_branch_lsn`.
  - `expire_time` (string, Beta, Immutable)
    Absolute time at which the snapshot is deleted.
     Mutually exclusive with `ttl` and `no_expiry`.
  - `ttl` (string, Beta, Input only, Immutable)
    Time-to-live. The snapshot expires this long after it is created.
     Mutually exclusive with `expire_time` and `no_expiry`. Reads report the
     resolved absolute `expire_time` instead.
  - `no_expiry` (boolean, Beta, Immutable)
    If true, the snapshot never expires.
     Mutually exclusive with `ttl` and `expire_time`.
- `status` (object, Beta, Output only)
  Server-observed state of the snapshot.
  - `source_branch` (string, Beta, Output only)
    The source branch the snapshot was taken from.
     Format: projects/{project_id}/branches/{branch_id}
  - `expire_time` (string, Beta, Output only)
    Absolute time at which the snapshot is deleted.
  - `no_expiry` (boolean, Beta, Output only)
    True if the snapshot never expires.
  - `full_size_bytes` (int64, Beta, Output only)
    Full logical size of the snapshot, in bytes.
  - `diff_size_bytes` (int64, Beta, Output only)
    Incremental storage size in bytes since the previous snapshot. Unset when
     the snapshot is not billed on incremental usage.
- `snapshot_id` (string, Beta, Output only)
  The user-chosen ID; the final segment of `name`.

## Example

```json
{
  "name": "string",
  "uid": "string",
  "create_time": "string",
  "spec": {
    "source_branch": "string",
    "source_branch_lsn": "string",
    "source_branch_time": "string",
    "expire_time": "string",
    "ttl": "string",
    "no_expiry": true
  },
  "status": {
    "source_branch": "string",
    "expire_time": "string",
    "no_expiry": true,
    "full_size_bytes": 0,
    "diff_size_bytes": 0
  },
  "snapshot_id": "string"
}
```


