|
| 1 | +# Copyright 2025 Google Inc. |
| 2 | +# Licensed under the Apache License, Version 2.0 (the "License"); |
| 3 | +# you may not use this file except in compliance with the License. |
| 4 | +# You may obtain a copy of the License at |
| 5 | +# |
| 6 | +# http://www.apache.org/licenses/LICENSE-2.0 |
| 7 | +# |
| 8 | +# Unless required by applicable law or agreed to in writing, software |
| 9 | +# distributed under the License is distributed on an "AS IS" BASIS, |
| 10 | +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| 11 | +# See the License for the specific language governing permissions and |
| 12 | +# limitations under the License. |
| 13 | + |
| 14 | +--- |
| 15 | +# API resource name |
| 16 | +name: 'ProjectIntelligenceConfig' |
| 17 | +kind: 'storagecontrol#intelligenceconfig' |
| 18 | +# Resource description for the provider documentation. |
| 19 | +description: | |
| 20 | + The Project Storage Intelligence Config resource represents GCS Storage Intelligence operating on individual GCP project. Storage Intelligence Config is a singleton resource and individual instance exists on each GCP project. |
| 21 | +
|
| 22 | + Storage Intelligence is for Storage Admins to manage GCP storage assets at scale for performance, cost, security & compliance. |
| 23 | +
|
| 24 | +docs: |
| 25 | + warning: | |
| 26 | + Storage Intelligence Config is a singleton resource which cannot be created or deleted. A single instance of Storage Intelligence Config exist for each GCP Project. Terraform does not create or destroy this resource. |
| 27 | + Terraform resource creation for this resource is simply an update operation on existing resource with specified properties. Terraform deletion won't have any effect on this resource rather it will only remove it from the state file. |
| 28 | +
|
| 29 | +# URL for the resource's standard Get method. https://google.aip.dev/131 |
| 30 | +self_link: 'projects/{{name}}/locations/global/intelligenceConfig' |
| 31 | + |
| 32 | +custom_code: |
| 33 | + custom_create: 'templates/terraform/custom_create/storage_control_project_intelligence.go.tmpl' |
| 34 | + constants: 'templates/terraform/constants/storage_control_intelligence.go.tmpl' |
| 35 | + |
| 36 | +# The HTTP verb used to update a resource. Allowed values: :POST, :PUT, :PATCH. Default: :PUT. |
| 37 | +update_verb: 'PATCH' |
| 38 | +# If true, the resource sets an `updateMask` query parameter listing modified |
| 39 | +# fields when updating the resource. If false, it does not. |
| 40 | +update_mask: true |
| 41 | + |
| 42 | +exclude_delete: true |
| 43 | + |
| 44 | +import_format: |
| 45 | + - 'projects/{{name}}/locations/global/intelligenceConfig' |
| 46 | + |
| 47 | +# If true, code for handling long-running operations is generated along with |
| 48 | +# the resource. If false, that code is not generated. |
| 49 | +autogen_async: false |
| 50 | + |
| 51 | +properties: |
| 52 | + - name: 'name' |
| 53 | + type: String |
| 54 | + required: true |
| 55 | + immutable: true |
| 56 | + url_param_only: true |
| 57 | + description: | |
| 58 | + Identifier of the GCP project. For GCP project, this field can be project name or project number. |
| 59 | + - name: 'editionConfig' |
| 60 | + type: String |
| 61 | + required: false |
| 62 | + default_from_api: true |
| 63 | + description: | |
| 64 | + Edition configuration of the Storage Intelligence resource. Valid values are INHERIT, DISABLED and STANDARD. |
| 65 | + - name: 'updateTime' |
| 66 | + type: String |
| 67 | + output: true |
| 68 | + description: | |
| 69 | + The time at which the Storage Intelligence Config resource is last updated. |
| 70 | + - name: 'filter' |
| 71 | + type: NestedObject |
| 72 | + diff_suppress_func: 'intelligenceFilterDiffSuppress' |
| 73 | + description: | |
| 74 | + Filter over location and bucket using include or exclude semantics. Resources that match the include or exclude filter are exclusively included or excluded from the Storage Intelligence plan. |
| 75 | + properties: |
| 76 | + - name: excludedCloudStorageBuckets |
| 77 | + type: NestedObject |
| 78 | + required: false |
| 79 | + description: | |
| 80 | + Buckets to exclude from the Storage Intelligence plan. |
| 81 | + conflicts: |
| 82 | + - 'filter.0.included_cloud_storage_buckets' |
| 83 | + at_least_one_of: |
| 84 | + - 'filter.0.included_cloud_storage_buckets' |
| 85 | + - 'filter.0.excluded_cloud_storage_buckets' |
| 86 | + - 'filter.0.included_cloud_storage_locations' |
| 87 | + - 'filter.0.excluded_cloud_storage_locations' |
| 88 | + diff_suppress_func: 'intelligenceFilterExcludedCloudStorageBucketsDiffSuppress' |
| 89 | + properties: |
| 90 | + - name: bucketIdRegexes |
| 91 | + required: true |
| 92 | + type: Array |
| 93 | + send_empty_value: true |
| 94 | + item_type: |
| 95 | + type: String |
| 96 | + description: | |
| 97 | + List of bucket id regexes to exclude in the storage intelligence plan. |
| 98 | + - name: includedCloudStorageBuckets |
| 99 | + type: NestedObject |
| 100 | + required: false |
| 101 | + description: | |
| 102 | + Buckets to include in the Storage Intelligence plan. |
| 103 | + conflicts: |
| 104 | + - 'filter.0.excluded_cloud_storage_buckets' |
| 105 | + at_least_one_of: |
| 106 | + - 'filter.0.included_cloud_storage_buckets' |
| 107 | + - 'filter.0.excluded_cloud_storage_buckets' |
| 108 | + - 'filter.0.included_cloud_storage_locations' |
| 109 | + - 'filter.0.excluded_cloud_storage_locations' |
| 110 | + diff_suppress_func: 'intelligenceFilterincludedCloudStorageBucketsDiffSuppress' |
| 111 | + properties: |
| 112 | + - name: bucketIdRegexes |
| 113 | + required: true |
| 114 | + send_empty_value: true |
| 115 | + type: Array |
| 116 | + item_type: |
| 117 | + type: String |
| 118 | + description: | |
| 119 | + List of bucket id regexes to exclude in the storage intelligence plan. |
| 120 | + - name: excludedCloudStorageLocations |
| 121 | + type: NestedObject |
| 122 | + required: false |
| 123 | + description: | |
| 124 | + Locations to exclude from the Storage Intelligence plan. |
| 125 | + conflicts: |
| 126 | + - 'filter.0.included_cloud_storage_locations' |
| 127 | + at_least_one_of: |
| 128 | + - 'filter.0.included_cloud_storage_buckets' |
| 129 | + - 'filter.0.excluded_cloud_storage_buckets' |
| 130 | + - 'filter.0.included_cloud_storage_locations' |
| 131 | + - 'filter.0.excluded_cloud_storage_locations' |
| 132 | + diff_suppress_func: 'intelligenceFilterExcludedCloudStorageLocationsDiffSuppress' |
| 133 | + properties: |
| 134 | + - name: locations |
| 135 | + type: Array |
| 136 | + required: true |
| 137 | + send_empty_value: true |
| 138 | + description: | |
| 139 | + List of locations. |
| 140 | + item_type: |
| 141 | + type: String |
| 142 | + - name: includedCloudStorageLocations |
| 143 | + type: NestedObject |
| 144 | + required: false |
| 145 | + description: | |
| 146 | + Locations to include in the Storage Intelligence plan. |
| 147 | + conflicts: |
| 148 | + - 'filter.0.excluded_cloud_storage_locations' |
| 149 | + at_least_one_of: |
| 150 | + - 'filter.0.included_cloud_storage_buckets' |
| 151 | + - 'filter.0.excluded_cloud_storage_buckets' |
| 152 | + - 'filter.0.included_cloud_storage_locations' |
| 153 | + - 'filter.0.excluded_cloud_storage_locations' |
| 154 | + diff_suppress_func: 'intelligenceFilterincludedCloudStorageLocationsDiffSuppress' |
| 155 | + properties: |
| 156 | + - name: locations |
| 157 | + type: Array |
| 158 | + required: true |
| 159 | + send_empty_value: true |
| 160 | + description: | |
| 161 | + List of locations. |
| 162 | + item_type: |
| 163 | + type: String |
| 164 | + - name: 'effectiveIntelligenceConfig' |
| 165 | + output: true |
| 166 | + description: | |
| 167 | + The Intelligence config that is effective for the resource. |
| 168 | + type: NestedObject |
| 169 | + properties: |
| 170 | + - name: intelligenceConfig |
| 171 | + type: String |
| 172 | + output: true |
| 173 | + description: | |
| 174 | + The Intelligence config resource that is applied for the target resource. |
| 175 | + - name: effectiveEdition |
| 176 | + type: String |
| 177 | + output: true |
| 178 | + description: | |
| 179 | + The `StorageIntelligence` edition that is applicable for the resource. |
0 commit comments