| --- |
| # ---------------------------------------------------------------------------- |
| # |
| # *** AUTO GENERATED CODE *** Type: MMv1 *** |
| # |
| # ---------------------------------------------------------------------------- |
| # |
| # This file is automatically generated by Magic Modules and manual |
| # changes will be clobbered when the file is regenerated. |
| # |
| # Please read more about how to change this file in |
| # .github/CONTRIBUTING.md. |
| # |
| # ---------------------------------------------------------------------------- |
| subcategory: "AlloyDB" |
| description: |- |
| An AlloyDB Backup. |
| --- |
| |
| # google_alloydb_backup |
| |
| An AlloyDB Backup. |
| |
| |
| To get more information about Backup, see: |
| |
| * [API documentation](https://cloud.google.com/alloydb/docs/reference/rest/v1/projects.locations.backups/create) |
| * How-to Guides |
| * [AlloyDB](https://cloud.google.com/alloydb/docs/) |
| |
| ## Example Usage - Alloydb Backup Basic |
| |
| |
| ```hcl |
| resource "google_alloydb_backup" "default" { |
| location = "us-central1" |
| backup_id = "alloydb-backup" |
| cluster_name = google_alloydb_cluster.default.name |
| |
| depends_on = [google_alloydb_instance.default] |
| } |
| |
| resource "google_alloydb_cluster" "default" { |
| cluster_id = "alloydb-cluster" |
| location = "us-central1" |
| network_config { |
| network = google_compute_network.default.id |
| } |
| } |
| |
| resource "google_alloydb_instance" "default" { |
| cluster = google_alloydb_cluster.default.name |
| instance_id = "alloydb-instance" |
| instance_type = "PRIMARY" |
| |
| depends_on = [google_service_networking_connection.vpc_connection] |
| } |
| |
| resource "google_compute_global_address" "private_ip_alloc" { |
| name = "alloydb-cluster" |
| address_type = "INTERNAL" |
| purpose = "VPC_PEERING" |
| prefix_length = 16 |
| network = google_compute_network.default.id |
| } |
| |
| resource "google_service_networking_connection" "vpc_connection" { |
| network = google_compute_network.default.id |
| service = "servicenetworking.googleapis.com" |
| reserved_peering_ranges = [google_compute_global_address.private_ip_alloc.name] |
| } |
| |
| resource "google_compute_network" "default" { |
| name = "alloydb-network" |
| } |
| ``` |
| ## Example Usage - Alloydb Backup Full |
| |
| |
| ```hcl |
| resource "google_alloydb_backup" "default" { |
| location = "us-central1" |
| backup_id = "alloydb-backup" |
| cluster_name = google_alloydb_cluster.default.name |
| |
| description = "example description" |
| type = "ON_DEMAND" |
| labels = { |
| "label" = "key" |
| } |
| depends_on = [google_alloydb_instance.default] |
| } |
| |
| resource "google_alloydb_cluster" "default" { |
| cluster_id = "alloydb-cluster" |
| location = "us-central1" |
| network_config { |
| network = google_compute_network.default.id |
| } |
| } |
| |
| resource "google_alloydb_instance" "default" { |
| cluster = google_alloydb_cluster.default.name |
| instance_id = "alloydb-instance" |
| instance_type = "PRIMARY" |
| |
| depends_on = [google_service_networking_connection.vpc_connection] |
| } |
| |
| resource "google_compute_global_address" "private_ip_alloc" { |
| name = "alloydb-cluster" |
| address_type = "INTERNAL" |
| purpose = "VPC_PEERING" |
| prefix_length = 16 |
| network = google_compute_network.default.id |
| } |
| |
| resource "google_service_networking_connection" "vpc_connection" { |
| network = google_compute_network.default.id |
| service = "servicenetworking.googleapis.com" |
| reserved_peering_ranges = [google_compute_global_address.private_ip_alloc.name] |
| } |
| |
| resource "google_compute_network" "default" { |
| name = "alloydb-network" |
| } |
| ``` |
| |
| ## Argument Reference |
| |
| The following arguments are supported: |
| |
| |
| * `cluster_name` - |
| (Required) |
| The full resource name of the backup source cluster (e.g., projects/{project}/locations/{location}/clusters/{clusterId}). |
| |
| * `backup_id` - |
| (Required) |
| The ID of the alloydb backup. |
| |
| * `location` - |
| (Required) |
| The location where the alloydb backup should reside. |
| |
| |
| - - - |
| |
| |
| * `display_name` - |
| (Optional) |
| User-settable and human-readable display name for the Backup. |
| |
| * `labels` - |
| (Optional) |
| User-defined labels for the alloydb backup. An object containing a list of "key": value pairs. Example: { "name": "wrench", "mass": "1.3kg", "count": "3" }. |
| |
| **Note**: This field is non-authoritative, and will only manage the labels present in your configuration. |
| Please refer to the field `effective_labels` for all of the labels present on the resource. |
| |
| * `type` - |
| (Optional) |
| The backup type, which suggests the trigger for the backup. |
| Possible values are: `TYPE_UNSPECIFIED`, `ON_DEMAND`, `AUTOMATED`, `CONTINUOUS`. |
| |
| * `description` - |
| (Optional) |
| User-provided description of the backup. |
| |
| * `encryption_config` - |
| (Optional) |
| EncryptionConfig describes the encryption config of a cluster or a backup that is encrypted with a CMEK (customer-managed encryption key). |
| Structure is [documented below](#nested_encryption_config). |
| |
| * `annotations` - |
| (Optional) |
| Annotations to allow client tools to store small amount of arbitrary data. This is distinct from labels. https://google.aip.dev/128 |
| An object containing a list of "key": value pairs. Example: { "name": "wrench", "mass": "1.3kg", "count": "3" }. |
| |
| **Note**: This field is non-authoritative, and will only manage the annotations present in your configuration. |
| Please refer to the field `effective_annotations` for all of the annotations present on the resource. |
| |
| * `project` - (Optional) The ID of the project in which the resource belongs. |
| If it is not provided, the provider project is used. |
| |
| |
| <a name="nested_encryption_config"></a>The `encryption_config` block supports: |
| |
| * `kms_key_name` - |
| (Optional) |
| The fully-qualified resource name of the KMS key. Each Cloud KMS key is regionalized and has the following format: projects/[PROJECT]/locations/[REGION]/keyRings/[RING]/cryptoKeys/[KEY_NAME]. |
| |
| ## Attributes Reference |
| |
| In addition to the arguments listed above, the following computed attributes are exported: |
| |
| * `id` - an identifier for the resource with format `projects/{{project}}/locations/{{location}}/backups/{{backup_id}}` |
| |
| * `name` - |
| Output only. The name of the backup resource with the format: * projects/{project}/locations/{region}/backups/{backupId} |
| |
| * `uid` - |
| Output only. The system-generated UID of the resource. The UID is assigned when the resource is created, and it is retained until it is deleted. |
| |
| * `create_time` - |
| Output only. Create time stamp. A timestamp in RFC3339 UTC "Zulu" format, with nanosecond resolution and up to nine fractional digits. |
| Examples: "2014-10-02T15:01:23Z" and "2014-10-02T15:01:23.045123456Z". |
| |
| * `update_time` - |
| Output only. Update time stamp. A timestamp in RFC3339 UTC "Zulu" format, with nanosecond resolution and up to nine fractional digits. |
| Examples: "2014-10-02T15:01:23Z" and "2014-10-02T15:01:23.045123456Z". |
| |
| * `delete_time` - |
| Output only. Delete time stamp. A timestamp in RFC3339 UTC "Zulu" format, with nanosecond resolution and up to nine fractional digits. |
| Examples: "2014-10-02T15:01:23Z" and "2014-10-02T15:01:23.045123456Z". |
| |
| * `state` - |
| Output only. The current state of the backup. |
| |
| * `cluster_uid` - |
| Output only. The system-generated UID of the cluster which was used to create this resource. |
| |
| * `reconciling` - |
| Output only. Reconciling (https://google.aip.dev/128#reconciliation), if true, indicates that the service is actively updating the resource. |
| This can happen due to user-triggered updates or system actions like failover or maintenance. |
| |
| * `encryption_info` - |
| EncryptionInfo describes the encryption information of a cluster or a backup. |
| Structure is [documented below](#nested_encryption_info). |
| |
| * `etag` - |
| For Resource freshness validation (https://google.aip.dev/154) |
| |
| * `size_bytes` - |
| Output only. The size of the backup in bytes. |
| |
| * `expiry_time` - |
| Output only. The time at which after the backup is eligible to be garbage collected. |
| It is the duration specified by the backup's retention policy, added to the backup's createTime. |
| |
| * `expiry_quantity` - |
| Output only. The QuantityBasedExpiry of the backup, specified by the backup's retention policy. |
| Once the expiry quantity is over retention, the backup is eligible to be garbage collected. |
| Structure is [documented below](#nested_expiry_quantity). |
| |
| * `terraform_labels` - |
| The combination of labels configured directly on the resource |
| and default labels configured on the provider. |
| |
| * `effective_labels` - |
| All of labels (key/value pairs) present on the resource in GCP, including the labels configured through Terraform, other clients and services. |
| |
| * `effective_annotations` - |
| All of annotations (key/value pairs) present on the resource in GCP, including the annotations configured through Terraform, other clients and services. |
| |
| |
| <a name="nested_encryption_info"></a>The `encryption_info` block contains: |
| |
| * `encryption_type` - |
| (Output) |
| Output only. Type of encryption. |
| |
| * `kms_key_versions` - |
| (Output) |
| Output only. Cloud KMS key versions that are being used to protect the database or the backup. |
| |
| <a name="nested_expiry_quantity"></a>The `expiry_quantity` block contains: |
| |
| * `retention_count` - |
| (Output) |
| Output only. The backup's position among its backups with the same source cluster and type, by descending chronological order create time (i.e. newest first). |
| |
| * `total_retention_count` - |
| (Output) |
| Output only. The length of the quantity-based queue, specified by the backup's retention policy. |
| |
| ## Timeouts |
| |
| This resource provides the following |
| [Timeouts](https://developer.hashicorp.com/terraform/plugin/sdkv2/resources/retries-and-customizable-timeouts) configuration options: |
| |
| - `create` - Default is 10 minutes. |
| - `update` - Default is 10 minutes. |
| - `delete` - Default is 10 minutes. |
| |
| ## Import |
| |
| |
| Backup can be imported using any of these accepted formats: |
| |
| * `projects/{{project}}/locations/{{location}}/backups/{{backup_id}}` |
| * `{{project}}/{{location}}/{{backup_id}}` |
| * `{{location}}/{{backup_id}}` |
| |
| |
| In Terraform v1.5.0 and later, use an [`import` block](https://developer.hashicorp.com/terraform/language/import) to import Backup using one of the formats above. For example: |
| |
| ```tf |
| import { |
| id = "projects/{{project}}/locations/{{location}}/backups/{{backup_id}}" |
| to = google_alloydb_backup.default |
| } |
| ``` |
| |
| When using the [`terraform import` command](https://developer.hashicorp.com/terraform/cli/commands/import), Backup can be imported using one of the formats above. For example: |
| |
| ``` |
| $ terraform import google_alloydb_backup.default projects/{{project}}/locations/{{location}}/backups/{{backup_id}} |
| $ terraform import google_alloydb_backup.default {{project}}/{{location}}/{{backup_id}} |
| $ terraform import google_alloydb_backup.default {{location}}/{{backup_id}} |
| ``` |
| |
| ## User Project Overrides |
| |
| This resource supports [User Project Overrides](https://registry.terraform.io/providers/hashicorp/google/latest/docs/guides/provider_reference#user_project_override). |