metadata.yaml (147 lines of code) (raw):
# Copyright 2025 Google LLC
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
apiVersion: blueprints.cloud.google.com/v1alpha1
kind: BlueprintMetadata
metadata:
name: terraform-google-firestore
annotations:
config.kubernetes.io/local-config: "true"
spec:
info:
title: terraform-google-firestore
source:
repo: https://github.com/GoogleCloudPlatform/terraform-google-firestore.git
sourceType: git
version: 0.0.1
actuationTool:
flavor: Terraform
version: ">= 1.3"
description: {}
icon: assets/icon.png
costEstimate:
description: Blueprint cost details
url: https://cloud.google.com/products/calculator?id=02fb0c45-cc29-4567-8cc6-f72ac9024add
content:
examples:
- name: example_with_backup
location: examples/example_with_backup
- name: example_with_composite_indexes
location: examples/example_with_composite_indexes
- name: example_with_fields
location: examples/example_with_fields
- name: simple_example
location: examples/simple_example
interfaces:
variables:
- name: project_id
description: The ID of the project in which the Firestore resources are created.
varType: string
required: true
- name: database_id
description: Unique identifier of the Firestore Database.
varType: string
required: true
- name: location
description: The location in which the Firesotre Database is created.
varType: string
required: true
- name: database_type
description: Database type used to created the Firestore Database.
varType: string
defaultValue: FIRESTORE_NATIVE
- name: concurrency_mode
description: Concurrency control mode to be used for the Firestore Database.
varType: string
defaultValue: OPTIMISTIC
- name: delete_protection_state
description: Determines whether deletion protection is enabled or not for the Firestore Database.
varType: string
defaultValue: DELETE_PROTECTION_ENABLED
- name: kms_key_name
description: The resource ID of the Customer-managed Encryption Key (CMEK) using which the created database will be encrypted.
varType: string
- name: point_in_time_recovery_enablement
description: Determines whether point-in-time recovery is enabled for the Firestore Database.
varType: string
defaultValue: POINT_IN_TIME_RECOVERY_ENABLED
- name: deletion_policy
description: Deletion policy enforced when Firestore Database is destroyed via Terraform.
varType: string
defaultValue: DELETED
- name: backup_schedule_configuration
description: Backup schedule configuration for the Firestore Database.
varType: |-
object({
weekly_recurrence = optional(object({
day = string
retention = string
}))
daily_recurrence = optional(object({
retention = string
}))
})
- name: composite_index_configuration
description: Composite index configuration for the Firestore Database.
varType: |-
list(object({
index_id = string
collection = string
query_scope = optional(string, "COLLECTION")
api_scope = optional(string, "ANY_API")
fields = list(object({
field_path = string
order = optional(string)
array_config = optional(string)
vector_config = optional(object({
dimension = number
}))
}))
}))
defaultValue: []
- name: field_configuration
description: Single field configurations for the Firestore Database.
varType: |-
list(object({
collection = string
field = string
ttl_enabled = optional(bool, false)
ascending_index_query_scope = optional(set(string), [])
descending_index_query_scope = optional(set(string), [])
array_index_query_scope = optional(set(string), [])
}))
defaultValue: []
outputs:
- name: composite_index_ids
description: List of composite indices for the firestore database.
type:
- list
- string
- name: daily_backup_schedule_id
description: The unique backup schedule identifier across all locations and databases for the given project.
type: string
- name: database_id
description: The database id of the firestore database.
type: string
- name: field_ids
description: List of firestore fields created for the database.
type:
- list
- string
- name: weekly_backup_schedule_id
description: The unique backup schedule identifier across all locations and databases for the given project.
type: string
requirements:
roles:
- level: Project
roles:
- roles/datastore.owner
- roles/cloudkms.admin
- roles/iam.serviceAccountAdmin
- roles/serviceusage.serviceUsageAdmin
- roles/resourcemanager.projectIamAdmin
services:
- cloudresourcemanager.googleapis.com
- storage-api.googleapis.com
- serviceusage.googleapis.com
- firestore.googleapis.com
providerVersions:
- source: hashicorp/google
version: ">= 3.53, < 7"