# The Project object

## Attributes

- `name` (string)
  Output only. The full resource path of the project.
   Format: projects/{project_id}
- `uid` (string)
  System-generated unique ID for the project.
- `create_time` (string)
  A timestamp indicating when the project was created.
- `update_time` (string)
  A timestamp indicating when the project was last updated.
- `spec` (object)
  The spec contains the project configuration, including display_name, pg_version (Postgres version), history_retention_duration, and default_endpoint_settings.
  - `display_name` (string)
    Human-readable project name. Length should be between 1 and 256 characters.
  - `pg_version` (int32)
    The major Postgres version number. The set of supported versions may vary; consult the API documentation for currently accepted values.
  - `history_retention_duration` (string)
    The number of seconds to retain the shared history for point in time recovery for all branches in this project. Value should be between 172800s (2 days) and 3024000s (35 days).
  - `default_endpoint_settings` (object)
    - `autoscaling_limit_min_cu` (double)
      The minimum number of Compute Units. Minimum value is 0.5.
    - `autoscaling_limit_max_cu` (double)
      The maximum number of Compute Units. Minimum value is 0.5.
    - `suspend_timeout_duration` (string)
      Duration of inactivity after which the compute endpoint is automatically suspended.
       If specified should be between 60s and 604800s (1 minute to 1 week).
       Mutually exclusive with `no_suspension`. When updating, use `spec.project_default_settings.suspension` in the update_mask.
    - `no_suspension` (boolean)
      When set to true, explicitly disables automatic suspension (never suspend).
       Should be set to true when provided.
       Mutually exclusive with `suspend_timeout_duration`. When updating, use `spec.project_default_settings.suspension` in the update_mask.
    - `pg_settings` (object)
      A raw representation of Postgres settings.
  - `budget_policy_id` (string)
    The desired budget policy to associate with the project.
     See status.budget_policy_id for the policy that is actually applied to the project.
  - `custom_tags` (array of object)
    Custom tags to associate with the project. Forwarded to LBM for billing and cost tracking.
     To update tags, provide the new tag list and include "spec.custom_tags" in the update_mask.
     To clear all tags, provide an empty list and include "spec.custom_tags" in the update_mask.
     To preserve existing tags, omit this field from the update_mask (or use wildcard "*" which auto-excludes empty tags).
    - `key` (string)
      The key of the custom tag.
    - `value` (string)
      The value of the custom tag.
  - `enable_pg_native_login` (boolean)
    Whether to enable PG native password login on all endpoints in this project. Defaults to false.
  - `default_branch` (string)
    The full resource path for the default branch of the project
     Format: projects/{project_id}/branches/{branch_id}
- `status` (object)
  The current status of a Project.
  - `display_name` (string)
    The effective human-readable project name.
  - `pg_version` (int32)
    The effective major Postgres version number.
  - `history_retention_duration` (string)
    The effective number of seconds to retain the shared history for point in time recovery.
  - `default_endpoint_settings` (object)
    The effective default endpoint settings.
    - `autoscaling_limit_min_cu` (double)
      The minimum number of Compute Units. Minimum value is 0.5.
    - `autoscaling_limit_max_cu` (double)
      The maximum number of Compute Units. Minimum value is 0.5.
    - `suspend_timeout_duration` (string)
      Duration of inactivity after which the compute endpoint is automatically suspended.
       If specified should be between 60s and 604800s (1 minute to 1 week).
       Mutually exclusive with `no_suspension`. When updating, use `spec.project_default_settings.suspension` in the update_mask.
    - `no_suspension` (boolean)
      When set to true, explicitly disables automatic suspension (never suspend).
       Should be set to true when provided.
       Mutually exclusive with `suspend_timeout_duration`. When updating, use `spec.project_default_settings.suspension` in the update_mask.
    - `pg_settings` (object)
      A raw representation of Postgres settings.
  - `branch_logical_size_limit_bytes` (int64)
    The logical size limit for a branch.
  - `synthetic_storage_size_bytes` (int64)
    The current space occupied by the project in storage.
  - `compute_last_active_time` (string)
    The most recent time when any endpoint of this project was active.
  - `budget_policy_id` (string)
    The budget policy that is applied to the project.
  - `custom_tags` (array of object)
    The effective custom tags associated with the project.
    - `key` (string)
      The key of the custom tag.
    - `value` (string)
      The value of the custom tag.
  - `owner` (string)
    The email of the project owner.
  - `enable_pg_native_login` (boolean)
    Whether to enable PG native password login on all endpoints in this project.
  - `default_branch` (string)
    The full resource path of the default branch of the project
  - `project_id` (string)
    Part of the resource name.
- `initial_endpoint_spec` (object)
  Configuration settings for the initial Read/Write endpoint created inside the initial branch for a newly
   created project. If omitted, the initial endpoint created will have default settings, without high availability
   configured. This field does not apply to any endpoints created after project creation. Use
   spec.default_endpoint_settings to configure default settings for endpoints created after project creation.
  - `group` (object)
    Settings for HA configuration of the endpoint.
    - `min` (int32)
      The minimum number of computes in the endpoint group. Currently, this must be equal to max. This must be greater
       than or equal to 1.
    - `max` (int32)
      The maximum number of computes in the endpoint group. Currently, this must be equal to min. Set to 1 for single
       compute endpoints, to disable HA. To manually suspend all computes in an endpoint group, set disabled to
       true on the EndpointSpec.
    - `enable_readable_secondaries` (boolean)
      Whether to allow read-only connections to read-write endpoints. Only relevant for read-write endpoints where
       size.max > 1.
  - `autoscaling_limit_min_cu` (double)
    The minimum number of Compute Units for the initial endpoint.
  - `autoscaling_limit_max_cu` (double)
    The maximum number of Compute Units for the initial endpoint.
  - `suspend_timeout_duration` (string)
    Duration of inactivity after which the initial endpoint is automatically suspended.
     If specified, should be between 60s and 604800s (1 minute to 1 week).
     Mutually exclusive with `no_suspension`.
  - `no_suspension` (boolean)
    When set to true, explicitly disables automatic suspension (never suspend).
     Should be set to true when provided.
     Mutually exclusive with `suspend_timeout_duration`.
- `delete_time` (string, Beta)
  A timestamp indicating when the project was soft-deleted.
   Empty if the project is not deleted, otherwise set to a timestamp in the past.
- `purge_time` (string, Beta)
  A timestamp indicating when the project is scheduled for permanent deletion.
   Empty if the project is not deleted, otherwise set to a timestamp in the future.
- `initial_branch_spec` (object)
  Configuration for the initial default branch created as part of project creation.
   Allows overriding branch protection. These settings only apply at creation time
   and do not affect resources created after project creation.
  - `is_protected` (boolean)
    Whether the initial default branch should be protected from deletion.
- `project_id` (string)
  The part of the name, chosen by the user when the resource was created.

## Example

```json
{
  "name": "string",
  "uid": "string",
  "create_time": "string",
  "update_time": "string",
  "spec": {
    "display_name": "string",
    "pg_version": 0,
    "history_retention_duration": "string",
    "default_endpoint_settings": {},
    "budget_policy_id": "string",
    "custom_tags": [
      {}
    ],
    "enable_pg_native_login": true,
    "default_branch": "string"
  },
  "status": {
    "display_name": "string",
    "pg_version": 0,
    "history_retention_duration": "string",
    "default_endpoint_settings": {},
    "branch_logical_size_limit_bytes": 0,
    "synthetic_storage_size_bytes": 0,
    "compute_last_active_time": "string",
    "budget_policy_id": "string",
    "custom_tags": [
      {}
    ],
    "owner": "string",
    "enable_pg_native_login": true,
    "default_branch": "string",
    "project_id": "string"
  },
  "initial_endpoint_spec": {
    "group": {},
    "autoscaling_limit_min_cu": 0,
    "autoscaling_limit_max_cu": 0,
    "suspend_timeout_duration": "string",
    "no_suspension": true
  },
  "delete_time": "string",
  "purge_time": "string",
  "initial_branch_spec": {
    "is_protected": true
  },
  "project_id": "string"
}
```


