mmv1/products/spanner/InstancePartition.yaml (111 lines of code) (raw):

# Copyright 2025 Google Inc. # 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. --- name: 'InstancePartition' description: | A Cloud Spanner instance partition is a unit of Cloud Spanner database capacity that can be used to partition data and processing capacity within an instance. references: guides: 'Official Documentation': 'https://cloud.google.com/spanner/docs/geo-partitioning' api: 'https://cloud.google.com/spanner/docs/reference/rest/v1/projects.instances.instancePartitions' id_format: 'projects/{{project}}/instances/{{instance}}/instancePartitions/{{name}}' base_url: 'projects/{{project}}/instances/{{instance}}/instancePartitions' self_link: 'projects/{{project}}/instances/{{instance}}/instancePartitions/{{name}}' create_url: 'projects/{{project}}/instances/{{instance}}/instancePartitions?instancePartitionId={{name}}' delete_url: 'projects/{{project}}/instances/{{instance}}/instancePartitions/{{name}}' update_verb: 'PATCH' timeouts: insert_minutes: 30 update_minutes: 30 delete_minutes: 30 autogen_async: true async: actions: ['create', 'update'] type: 'OpAsync' operation: base_url: '{{op_id}}' result: resource_inside_response: true import_format: - 'projects/{{project}}/instances/{{instance}}/instancePartitions/{{name}}' - '{{project}}/{{instance}}/{{name}}' - '{{instance}}/{{name}}' examples: - name: 'spanner_instance_partition_basic' primary_resource_id: 'partition' vars: instance_name: 'test-instance' partition_name: 'test-partition' custom_code: !ruby/object:Provider::Terraform::CustomCode encoder: 'templates/terraform/encoders/spanner_instance_partition.go.tmpl' pre_update: 'templates/terraform/pre_update/spanner_instance_partition.go.tmpl' parameters: - name: 'instance' type: ResourceRef description: 'The instance to create the instance partition in.' required: true immutable: true resource: 'Instance' imports: 'name' url_param_only: true properties: - name: 'name' description: | A unique identifier for the instance partition, which cannot be changed after the instance partition is created. The name must be between 2 and 64 characters and match the regular expression [a-z][a-z0-9\\-]{0,61}[a-z0-9]. type: String required: true immutable: true validation: regex: '^[a-z][a-z0-9-]{0,61}[a-z0-9]$' custom_flatten: 'templates/terraform/custom_flatten/name_from_self_link.tmpl' - name: 'displayName' description: | The descriptive name for this instance partition as it appears in UIs. Must be unique per project and between 4 and 30 characters in length. type: String required: true validation: function: 'validation.StringLenBetween(4,30)' - name: 'nodeCount' description: | The number of nodes allocated to this instance partition. One node equals 1000 processing units. Exactly one of either node_count or processing_units must be present. type: Integer validation: function: 'validation.IntAtLeast(1)' exactly_one_of: - 'node_count' - 'processing_units' - name: 'processingUnits' description: | The number of processing units allocated to this instance partition. Exactly one of either node_count or processing_units must be present. type: Integer validation: function: 'validation.IntAtLeast(1000)' exactly_one_of: - 'node_count' - 'processing_units' - name: 'config' description: | The name of the instance partition's configuration (similar to a region) which defines the geographic placement and replication of data in this instance partition. type: ResourceRef required: true immutable: true custom_expand: 'templates/terraform/custom_expand/spanner_instance_config.go.tmpl' resource: 'InstanceConfig' imports: 'name' - name: 'state' description: | The current instance partition state. Possible values are: CREATING: The instance partition is being created. Resources are being allocated for the instance partition. READY: The instance partition has been allocated resources and is ready for use. type: Enum output: true enum_values: - 'CREATING' - 'READY'