43 lines
1.3 KiB
Terraform
43 lines
1.3 KiB
Terraform
|
/**
|
||
|
* Copyright 2023 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.
|
||
|
*/
|
||
|
|
||
|
# tfdoc:file:description Compute short names for regions.
|
||
|
|
||
|
locals {
|
||
|
# only map when the first character would not work
|
||
|
_region_cardinal = {
|
||
|
southeast = "se"
|
||
|
}
|
||
|
# only map when the first character would not work
|
||
|
_region_geo = {
|
||
|
australia = "o"
|
||
|
}
|
||
|
# split in [geo, cardinal, number] tokens
|
||
|
_region_tokens = {
|
||
|
for v in local.regions : v => regexall("(?:[a-z]+)|(?:[0-9]+)", v)
|
||
|
}
|
||
|
region_shortnames = {
|
||
|
for k, v in local._region_tokens : k => join("", [
|
||
|
# first token via geo alias map or first character
|
||
|
lookup(local._region_geo, v.0, substr(v.0, 0, 1)),
|
||
|
# first token via cardinal alias map or first character
|
||
|
lookup(local._region_cardinal, v.1, substr(v.1, 0, 1)),
|
||
|
# region number as is
|
||
|
v.2
|
||
|
])
|
||
|
}
|
||
|
}
|