blob: baa9014d4f487f114bbcdef4ef8e302eb4d1554c [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: "BigQuery Reservation"
description: |-
A reservation is a mechanism used to guarantee BigQuery slots to users.
---
# google\_bigquery\_reservation
A reservation is a mechanism used to guarantee BigQuery slots to users.
To get more information about Reservation, see:
* [API documentation](https://cloud.google.com/bigquery/docs/reference/reservations/rest/v1/projects.locations.reservations/create)
* How-to Guides
* [Introduction to Reservations](https://cloud.google.com/bigquery/docs/reservations-intro)
<div class = "oics-button" style="float: right; margin: 0 0 -15px">
<a href="https://console.cloud.google.com/cloudshell/open?cloudshell_git_repo=https%3A%2F%2Fgithub.com%2Fterraform-google-modules%2Fdocs-examples.git&cloudshell_working_dir=bigquery_reservation_basic&cloudshell_image=gcr.io%2Fcloudshell-images%2Fcloudshell%3Alatest&open_in_editor=main.tf&cloudshell_print=.%2Fmotd&cloudshell_tutorial=.%2Ftutorial.md" target="_blank">
<img alt="Open in Cloud Shell" src="//gstatic.com/cloudssh/images/open-btn.svg" style="max-height: 44px; margin: 32px auto; max-width: 100%;">
</a>
</div>
## Example Usage - Bigquery Reservation Basic
```hcl
resource "google_bigquery_reservation" "reservation" {
name = "my-reservation"
location = "us-west2"
// Set to 0 for testing purposes
// In reality this would be larger than zero
slot_capacity = 0
edition = "STANDARD"
ignore_idle_slots = true
concurrency = 0
autoscale {
max_slots = 100
}
}
```
## Argument Reference
The following arguments are supported:
* `slot_capacity` -
(Required)
Minimum slots available to this reservation. A slot is a unit of computational power in BigQuery, and serves as the
unit of parallelism. Queries using this reservation might use more slots during runtime if ignoreIdleSlots is set to false.
* `name` -
(Required)
The name of the reservation. This field must only contain alphanumeric characters or dash.
- - -
* `ignore_idle_slots` -
(Optional)
If false, any query using this reservation will use idle slots from other reservations within
the same admin project. If true, a query using this reservation will execute with the slot
capacity specified above at most.
* `concurrency` -
(Optional)
Maximum number of queries that are allowed to run concurrently in this reservation. This is a soft limit due to asynchronous nature of the system and various optimizations for small queries. Default value is 0 which means that concurrency will be automatically set based on the reservation size.
* `multi_region_auxiliary` -
(Optional)
Applicable only for reservations located within one of the BigQuery multi-regions (US or EU).
If set to true, this reservation is placed in the organization's secondary region which is designated for disaster recovery purposes. If false, this reservation is placed in the organization's default region.
* `edition` -
(Optional)
The edition type. Valid values are STANDARD, ENTERPRISE, ENTERPRISE_PLUS
* `autoscale` -
(Optional)
The configuration parameters for the auto scaling feature.
Structure is [documented below](#nested_autoscale).
* `location` -
(Optional)
The geographic location where the transfer config should reside.
Examples: US, EU, asia-northeast1. The default value is US.
* `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_autoscale"></a>The `autoscale` block supports:
* `current_slots` -
(Output)
The slot capacity added to this reservation when autoscale happens. Will be between [0, max_slots].
* `max_slots` -
(Optional)
Number of slots to be scaled when needed.
## 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}}/reservations/{{name}}`
## 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
Reservation can be imported using any of these accepted formats:
* `projects/{{project}}/locations/{{location}}/reservations/{{name}}`
* `{{project}}/{{location}}/{{name}}`
* `{{location}}/{{name}}`
In Terraform v1.5.0 and later, use an [`import` block](https://developer.hashicorp.com/terraform/language/import) to import Reservation using one of the formats above. For example:
```tf
import {
id = "projects/{{project}}/locations/{{location}}/reservations/{{name}}"
to = google_bigquery_reservation.default
}
```
When using the [`terraform import` command](https://developer.hashicorp.com/terraform/cli/commands/import), Reservation can be imported using one of the formats above. For example:
```
$ terraform import google_bigquery_reservation.default projects/{{project}}/locations/{{location}}/reservations/{{name}}
$ terraform import google_bigquery_reservation.default {{project}}/{{location}}/{{name}}
$ terraform import google_bigquery_reservation.default {{location}}/{{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).