43 lines
1.3 KiB
HCL
43 lines
1.3 KiB
HCL
/**
|
|
* 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
|
|
])
|
|
}
|
|
}
|