metadata.yaml (252 lines of code) (raw):

# Copyright 2024 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-bigquery annotations: config.kubernetes.io/local-config: "true" spec: info: title: terraform-google-bigquery source: repo: https://github.com/terraform-google-modules/terraform-google-bigquery sourceType: git version: 8.1.0 actuationTool: flavor: Terraform version: ">= 1.3" description: {} content: subBlueprints: - name: authorization location: modules/authorization - name: data_warehouse location: modules/data_warehouse - name: scheduled_queries location: modules/scheduled_queries - name: udf location: modules/udf examples: - name: basic_bq location: examples/basic_bq - name: basic_view location: examples/basic_view - name: data_warehouse location: examples/data_warehouse - name: multiple_tables location: examples/multiple_tables - name: scheduled_queries location: examples/scheduled_queries interfaces: variables: - name: dataset_id description: Unique ID for the dataset being provisioned. varType: string required: true - name: dataset_name description: Friendly name for the dataset being provisioned. varType: string - name: description description: Dataset description. varType: string - name: location description: The regional location for the dataset only US and EU are allowed in module varType: string defaultValue: US - name: delete_contents_on_destroy description: (Optional) If set to true, delete all the tables in the dataset when destroying the resource; otherwise, destroying the resource will fail if tables are present. varType: bool - name: deletion_protection description: Whether or not to allow deletion of tables and external tables defined by this module. Can be overriden by table-level deletion_protection configuration. varType: bool defaultValue: false - name: default_table_expiration_ms description: TTL of tables using the dataset in MS varType: number - name: max_time_travel_hours description: Defines the time travel window in hours varType: number - name: project_id description: Project where the dataset and table are created varType: string required: true - name: encryption_key description: Default encryption key to apply to the dataset. Defaults to null (Google-managed). varType: string - name: dataset_labels description: Key value pairs in a map for dataset labels varType: map(string) defaultValue: {} - name: resource_tags description: A map of resource tags to add to the dataset varType: map(string) defaultValue: {} - name: access description: An array of objects that define dataset access for one or more entities. varType: any defaultValue: - role: roles/bigquery.dataOwner special_group: projectOwners - name: tables description: A list of objects which include table_id, table_name, schema, clustering, time_partitioning, range_partitioning, expiration_time and labels. varType: |- list(object({ table_id = string, description = optional(string), table_name = optional(string), schema = string, clustering = list(string), require_partition_filter = optional(bool), time_partitioning = object({ expiration_ms = string, field = string, type = string, }), range_partitioning = object({ field = string, range = object({ start = string, end = string, interval = string, }), }), expiration_time = string, deletion_protection = optional(bool), labels = map(string), })) defaultValue: [] - name: views description: A list of objects which include view_id and view query varType: |- list(object({ view_id = string, description = optional(string), query = string, use_legacy_sql = bool, labels = map(string), })) defaultValue: [] - name: materialized_views description: A list of objects which includes view_id, view_query, clustering, time_partitioning, range_partitioning, expiration_time and labels varType: |- list(object({ view_id = string, description = optional(string), query = string, enable_refresh = bool, refresh_interval_ms = string, clustering = list(string), time_partitioning = object({ expiration_ms = string, field = string, type = string, require_partition_filter = bool, }), range_partitioning = object({ field = string, range = object({ start = string, end = string, interval = string, }), }), expiration_time = string, max_staleness = optional(string), labels = map(string), })) defaultValue: [] - name: external_tables description: A list of objects which include table_id, expiration_time, external_data_configuration, and labels. varType: |- list(object({ table_id = string, description = optional(string), autodetect = bool, compression = string, ignore_unknown_values = bool, max_bad_records = number, schema = string, source_format = string, source_uris = list(string), csv_options = object({ quote = string, allow_jagged_rows = bool, allow_quoted_newlines = bool, encoding = string, field_delimiter = string, skip_leading_rows = number, }), google_sheets_options = object({ range = string, skip_leading_rows = number, }), hive_partitioning_options = object({ mode = string, source_uri_prefix = string, }), expiration_time = string, max_staleness = optional(string), deletion_protection = optional(bool), labels = map(string), })) defaultValue: [] - name: routines description: A list of objects which include routine_id, routine_type, routine_language, definition_body, return_type, routine_description and arguments. varType: |- list(object({ routine_id = string, routine_type = string, language = string, definition_body = string, return_type = string, description = string, arguments = list(object({ name = string, data_type = string, argument_kind = string, mode = string, })), })) defaultValue: [] outputs: - name: bigquery_dataset description: Bigquery dataset resource. - name: bigquery_external_tables description: Map of BigQuery external table resources being provisioned. - name: bigquery_tables description: Map of bigquery table resources being provisioned. - name: bigquery_views description: Map of bigquery view resources being provisioned. - name: external_table_ids description: Unique IDs for any external tables being provisioned - name: external_table_names description: Friendly names for any external tables being provisioned - name: project description: Project where the dataset and tables are created - name: routine_ids description: Unique IDs for any routine being provisioned - name: table_ids description: Unique id for the table being provisioned - name: table_names description: Friendly name for the table being provisioned - name: view_ids description: Unique id for the view being provisioned - name: view_names description: friendlyname for the view being provisioned requirements: roles: - level: Project roles: - roles/bigquery.admin - roles/cloudkms.cryptoKeyEncrypterDecrypter - roles/owner services: - cloudkms.googleapis.com - cloudresourcemanager.googleapis.com - bigquery.googleapis.com - bigquerystorage.googleapis.com - bigqueryconnection.googleapis.com - serviceusage.googleapis.com - iam.googleapis.com providerVersions: - source: hashicorp/google version: ">= 5.39, < 7"