blob: 773df646dc76622daf0d9ece3a7125e495277515 [file] [log] [blame]
---
# ----------------------------------------------------------------------------
#
# *** 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: "Memcache"
description: |-
A Google Cloud Memcache instance.
---
# google\_memcache\_instance
A Google Cloud Memcache instance.
To get more information about Instance, see:
* [API documentation](https://cloud.google.com/memorystore/docs/memcached/reference/rest/v1/projects.locations.instances)
* How-to Guides
* [Official Documentation](https://cloud.google.com/memcache/docs/creating-instances)
## Example Usage - Memcache Instance Basic
```hcl
// This example assumes this network already exists.
// The API creates a tenant network per network authorized for a
// Memcache instance and that network is not deleted when the user-created
// network (authorized_network) is deleted, so this prevents issues
// with tenant network quota.
// If this network hasn't been created and you are using this example in your
// config, add an additional network resource or change
// this from "data"to "resource"
resource "google_compute_network" "memcache_network" {
name = "test-network"
}
resource "google_compute_global_address" "service_range" {
name = "address"
purpose = "VPC_PEERING"
address_type = "INTERNAL"
prefix_length = 16
network = google_compute_network.memcache_network.id
}
resource "google_service_networking_connection" "private_service_connection" {
network = google_compute_network.memcache_network.id
service = "servicenetworking.googleapis.com"
reserved_peering_ranges = [google_compute_global_address.service_range.name]
}
resource "google_memcache_instance" "instance" {
name = "test-instance"
authorized_network = google_service_networking_connection.private_service_connection.network
labels = {
env = "test"
}
node_config {
cpu_count = 1
memory_size_mb = 1024
}
node_count = 1
memcache_version = "MEMCACHE_1_5"
maintenance_policy {
weekly_maintenance_window {
day = "SATURDAY"
duration = "14400s"
start_time {
hours = 0
minutes = 30
seconds = 0
nanos = 0
}
}
}
}
```
## Argument Reference
The following arguments are supported:
* `name` -
(Required)
The resource name of the instance.
* `node_count` -
(Required)
Number of nodes in the memcache instance.
* `node_config` -
(Required)
Configuration for memcache nodes.
Structure is [documented below](#nested_node_config).
<a name="nested_node_config"></a>The `node_config` block supports:
* `cpu_count` -
(Required)
Number of CPUs per node.
* `memory_size_mb` -
(Required)
Memory size in Mebibytes for each memcache node.
- - -
* `display_name` -
(Optional)
A user-visible name for the instance.
* `labels` -
(Optional)
Resource labels to represent user-provided metadata.
**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.
* `zones` -
(Optional)
Zones where memcache nodes should be provisioned. If not
provided, all zones will be used.
* `authorized_network` -
(Optional)
The full name of the GCE network to connect the instance to. If not provided,
'default' will be used.
* `memcache_version` -
(Optional)
The major version of Memcached software. If not provided, latest supported version will be used.
Currently the latest supported major version is MEMCACHE_1_5. The minor version will be automatically
determined by our system based on the latest supported minor version.
Default value is `MEMCACHE_1_5`.
Possible values are: `MEMCACHE_1_5`, `MEMCACHE_1_6_15`.
* `memcache_parameters` -
(Optional)
User-specified parameters for this memcache instance.
Structure is [documented below](#nested_memcache_parameters).
* `maintenance_policy` -
(Optional)
Maintenance policy for an instance.
Structure is [documented below](#nested_maintenance_policy).
* `reserved_ip_range_id` -
(Optional)
Contains the name of allocated IP address ranges associated with
the private service access connection for example, "test-default"
associated with IP range 10.0.0.0/29.
* `region` -
(Optional)
The region of the Memcache instance. If it is not provided, the provider region is used.
* `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_memcache_parameters"></a>The `memcache_parameters` block supports:
* `id` -
(Output)
This is a unique ID associated with this set of parameters.
* `params` -
(Optional)
User-defined set of parameters to use in the memcache process.
<a name="nested_maintenance_policy"></a>The `maintenance_policy` block supports:
* `create_time` -
(Output)
Output only. The time when the policy was created.
A timestamp in RFC3339 UTC "Zulu" format, with nanosecond
resolution and up to nine fractional digits
* `update_time` -
(Output)
Output only. The time when the policy was updated.
A timestamp in RFC3339 UTC "Zulu" format, with nanosecond
resolution and up to nine fractional digits.
* `description` -
(Optional)
Optional. Description of what this policy is for.
Create/Update methods return INVALID_ARGUMENT if the
length is greater than 512.
* `weekly_maintenance_window` -
(Required)
Required. Maintenance window that is applied to resources covered by this policy.
Minimum 1. For the current version, the maximum number of weekly_maintenance_windows
is expected to be one.
Structure is [documented below](#nested_weekly_maintenance_window).
<a name="nested_weekly_maintenance_window"></a>The `weekly_maintenance_window` block supports:
* `day` -
(Required)
Required. The day of week that maintenance updates occur.
- DAY_OF_WEEK_UNSPECIFIED: The day of the week is unspecified.
- MONDAY: Monday
- TUESDAY: Tuesday
- WEDNESDAY: Wednesday
- THURSDAY: Thursday
- FRIDAY: Friday
- SATURDAY: Saturday
- SUNDAY: Sunday
Possible values are: `DAY_OF_WEEK_UNSPECIFIED`, `MONDAY`, `TUESDAY`, `WEDNESDAY`, `THURSDAY`, `FRIDAY`, `SATURDAY`, `SUNDAY`.
* `duration` -
(Required)
Required. The length of the maintenance window, ranging from 3 hours to 8 hours.
A duration in seconds with up to nine fractional digits,
terminated by 's'. Example: "3.5s".
* `start_time` -
(Required)
Required. Start time of the window in UTC time.
Structure is [documented below](#nested_start_time).
<a name="nested_start_time"></a>The `start_time` block supports:
* `hours` -
(Optional)
Hours of day in 24 hour format. Should be from 0 to 23.
An API may choose to allow the value "24:00:00" for scenarios like business closing time.
* `minutes` -
(Optional)
Minutes of hour of day. Must be from 0 to 59.
* `seconds` -
(Optional)
Seconds of minutes of the time. Must normally be from 0 to 59.
An API may allow the value 60 if it allows leap-seconds.
* `nanos` -
(Optional)
Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.
## 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/{{region}}/instances/{{name}}`
* `memcache_nodes` -
Additional information about the instance state, if available.
Structure is [documented below](#nested_memcache_nodes).
* `create_time` -
Creation timestamp in RFC3339 text format.
* `discovery_endpoint` -
Endpoint for Discovery API
* `memcache_full_version` -
The full version of memcached server running on this instance.
* `maintenance_schedule` -
Output only. Published maintenance schedule.
Structure is [documented below](#nested_maintenance_schedule).
* `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.
<a name="nested_memcache_nodes"></a>The `memcache_nodes` block contains:
* `node_id` -
(Output)
Identifier of the Memcached node. The node id does not include project or location like the Memcached instance name.
* `zone` -
(Output)
Location (GCP Zone) for the Memcached node.
* `port` -
(Output)
The port number of the Memcached server on this node.
* `host` -
(Output)
Hostname or IP address of the Memcached node used by the clients to connect to the Memcached server on this node.
* `state` -
(Output)
Current state of the Memcached node.
<a name="nested_maintenance_schedule"></a>The `maintenance_schedule` block contains:
* `start_time` -
(Output)
Output only. The start time of any upcoming scheduled maintenance for this instance.
A timestamp in RFC3339 UTC "Zulu" format, with nanosecond
resolution and up to nine fractional digits.
* `end_time` -
(Output)
Output only. The end time of any upcoming scheduled maintenance for this instance.
A timestamp in RFC3339 UTC "Zulu" format, with nanosecond
resolution and up to nine fractional digits.
* `schedule_deadline_time` -
(Output)
Output only. The deadline that the maintenance schedule start time
can not go beyond, including reschedule.
A timestamp in RFC3339 UTC "Zulu" format, with nanosecond
resolution and up to nine fractional digits.
## Timeouts
This resource provides the following
[Timeouts](https://developer.hashicorp.com/terraform/plugin/sdkv2/resources/retries-and-customizable-timeouts) configuration options:
- `create` - Default is 20 minutes.
- `update` - Default is 20 minutes.
- `delete` - Default is 20 minutes.
## Import
Instance can be imported using any of these accepted formats:
* `projects/{{project}}/locations/{{region}}/instances/{{name}}`
* `{{project}}/{{region}}/{{name}}`
* `{{region}}/{{name}}`
* `{{name}}`
In Terraform v1.5.0 and later, use an [`import` block](https://developer.hashicorp.com/terraform/language/import) to import Instance using one of the formats above. For example:
```tf
import {
id = "projects/{{project}}/locations/{{region}}/instances/{{name}}"
to = google_memcache_instance.default
}
```
When using the [`terraform import` command](https://developer.hashicorp.com/terraform/cli/commands/import), Instance can be imported using one of the formats above. For example:
```
$ terraform import google_memcache_instance.default projects/{{project}}/locations/{{region}}/instances/{{name}}
$ terraform import google_memcache_instance.default {{project}}/{{region}}/{{name}}
$ terraform import google_memcache_instance.default {{region}}/{{name}}
$ terraform import google_memcache_instance.default {{name}}
```
## User Project Overrides
This resource supports [User Project Overrides](https://registry.terraform.io/providers/hashicorp/google/latest/docs/guides/provider_reference#user_project_override).