Public/Functions/Support/Helper/Get-RegionFromCountryCode.ps1
# Module: TeamsFunctions # Function: Helper # Author: David Eberhardt # Updated: 06-DEC-2020 # Status: RC function Get-RegionFromCountryCode { <# .SYNOPSIS Ever wondered in which Region a ZW is? .DESCRIPTION Returns a Global Region or Country Name for any given CountryCode .PARAMETER CountryCode This is the CountryCode in the format ISO 3166-alpha2 (2-digit) .PARAMETER Output Optional. By Default the Region is returned. With this Parameter, you can get the CountryName instead. .EXAMPLE Get-RegionFromCountryCode -CountryCode UZ Returns Region "APAC" for CountryCode UZ ("Uzbekistan") .EXAMPLE Get-RegionFromCountryCode AW -Output Country Returns Country "Aruba" for CountryCode AW .NOTES CountryCode must be provided otherwise InvalidData Error will be thrown FullyQualifiedErrorId: ParameterArgumentValidationErrorEmptyStringNotAllowed .LINK https://github.com/DEberhardt/TeamsFunctions/tree/master/docs/ #> [CmdletBinding()] [OutputType([System.String])] param ( [Parameter(Mandatory, Position = 0, ValueFromPipeline, HelpMessage = "2-digit CountryCode")] [ValidatePattern("^[A-Z][A-Z]$")] [string]$CountryCode, [Parameter(HelpMessage = "Country or Region")] [ValidateSet("Region", "Country")] [String]$Output = "Region" ) begin { $Region = $null $CountryName = $null Write-Verbose -Message "Returning $Output" } process { $Region, $CountryName = switch ($CountryCode) { "AF" { "EMEA", "Afghanistan" } "AX" { "EMEA", "Aaland" } "AL" { "EMEA", "Albania" } "DZ" { "EMEA", "Algeria" } "AS" { "APAC", "American Samoa" } "AD" { "EMEA", "Andorra" } "AO" { "EMEA", "Angola" } "AI" { "AMER", "Anguilla" } "AQ" { "APAC", "Antarctica" } "AG" { "AMER", "Antigua and Barbuda" } "AR" { "AMER", "Argentina" } "AM" { "EMEA", "Armenia" } "AW" { "AMER", "Aruba" } "AU" { "APAC", "Australia" } "AT" { "EMEA", "Austria" } "AZ" { "EMEA", "Azerbaijan" } "BS" { "AMER", "Bahamas" } "BH" { "EMEA", "Bahrain" } "BD" { "APAC", "Bangladesh" } "BB" { "AMER", "Barbados" } "BY" { "EMEA", "Belarus" } "BE" { "EMEA", "Belgium" } "BZ" { "AMER", "Belize" } "BJ" { "EMEA", "Benin" } "BM" { "AMER", "Bermuda" } "BT" { "APAC", "Bhutan" } "BO" { "AMER", "Bolivia" } "BQ" { "AMER", "Bonaire, Sint Eustatius and Saba" } "BA" { "EMEA", "Bosnia and Herzegovina" } "BW" { "EMEA", "Botswana" } "BV" { "EMEA", "Bouvet Island" } "BR" { "AMER", "Brazil" } "IO" { "APAC", "British Indian Ocean Territory" } "BN" { "APAC", "Brunei Darussalam" } "BG" { "EMEA", "Bulgaria" } "BF" { "EMEA", "Burkina Faso" } "BI" { "EMEA", "Burundi" } "KH" { "APAC", "Cambodia" } "CM" { "EMEA", "Cameroon" } "CA" { "AMER", "Canada" } "CV" { "EMEA", "Cape Verde" } "KY" { "AMER", "Cayman Islands" } "CF" { "EMEA", "Central African Republic" } "TD" { "EMEA", "Chad" } "CL" { "AMER", "Chile" } "CN" { "APAC", "China" } "CX" { "APAC", "Christmas Island" } "CC" { "APAC", "Cocos (Keeling) Islands" } "CO" { "AMER", "Colombia" } "KM" { "EMEA", "Comoros" } "CG" { "EMEA", "Congo (Brazzaville)" } "CD" { "EMEA", "Congo (Kinshasa)" } "CK" { "APAC", "Cook Islands" } "CR" { "AMER", "Costa Rica" } "CI" { "EMEA", "C?te d'Ivoire" } "HR" { "EMEA", "Croatia" } "CU" { "AMER", "Cuba" } "CW" { "AMER", "Curacao" } "CY" { "EMEA", "Cyprus" } "CZ" { "EMEA", "Czech Republic" } "DK" { "EMEA", "Denmark" } "DJ" { "EMEA", "Djibouti" } "DM" { "AMER", "Dominica" } "DO" { "AMER", "Dominican Republic" } "EC" { "AMER", "Ecuador" } "EG" { "EMEA", "Egypt" } "SV" { "AMER", "El Salvador" } "GQ" { "EMEA", "Equatorial Guinea" } "ER" { "EMEA", "Eritrea" } "EE" { "EMEA", "Estonia" } "ET" { "EMEA", "Ethiopia" } "FK" { "EMEA", "Falkland Islands" } "FO" { "EMEA", "Faroe Islands" } "FJ" { "APAC", "Fiji" } "FI" { "EMEA", "Finland" } "FR" { "EMEA", "France" } "GF" { "AMER", "French Guiana" } "PF" { "APAC", "French Polynesia" } "TF" { "APAC", "French Southern Lands" } "GA" { "EMEA", "Gabon" } "GM" { "EMEA", "Gambia" } "GE" { "EMEA", "Georgia" } "DE" { "EMEA", "Germany" } "GH" { "EMEA", "Ghana" } "GI" { "EMEA", "Gibraltar" } "GR" { "EMEA", "Greece" } "GL" { "EMEA", "Greenland" } "GD" { "AMER", "Grenada" } "GP" { "AMER", "Guadeloupe" } "GU" { "APAC", "Guam" } "GT" { "AMER", "Guatemala" } "GG" { "EMEA", "Guernsey" } "GN" { "EMEA", "Guinea" } "GW" { "EMEA", "Guinea-Bissau" } "GY" { "AMER", "Guyana" } "HT" { "AMER", "Haiti" } "HM" { "APAC", "Heard and McDonald Islands" } "HN" { "AMER", "Honduras" } "HK" { "APAC", "Hong Kong" } "HU" { "EMEA", "Hungary" } "IS" { "EMEA", "Iceland" } "IN" { "APAC", "India" } "ID" { "APAC", "Indonesia" } "IR" { "EMEA", "Iran" } "IQ" { "EMEA", "Iraq" } "IE" { "EMEA", "Ireland" } "IM" { "EMEA", "Isle of Man" } "IL" { "EMEA", "Israel" } "IT" { "EMEA", "Italy" } "JM" { "AMER", "Jamaica" } "JP" { "APAC", "Japan" } "JE" { "EMEA", "Jersey" } "JO" { "EMEA", "Jordan" } "KZ" { "EMEA", "Kazakhstan" } "KE" { "EMEA", "Kenya" } "KI" { "APAC", "Kiribati" } "KP" { "EMEA", "Korea, North" } "KR" { "EMEA", "Korea, South" } "KW" { "EMEA", "Kuwait" } "KG" { "APAC", "Kyrgyzstan" } "LA" { "APAC", "Laos" } "LV" { "EMEA", "Latvia" } "LB" { "EMEA", "Lebanon" } "LS" { "EMEA", "Lesotho" } "LR" { "EMEA", "Liberia" } "LY" { "EMEA", "Libya" } "LI" { "EMEA", "Liechtenstein" } "LT" { "EMEA", "Lithuania" } "LU" { "EMEA", "Luxembourg" } "MO" { "APAC", "Macau" } "MK" { "EMEA", "Macedonia" } "MG" { "EMEA", "Madagascar" } "MW" { "EMEA", "Malawi" } "MY" { "APAC", "Malaysia" } "MV" { "APAC", "Maldives" } "ML" { "EMEA", "Mali" } "MT" { "EMEA", "Malta" } "MH" { "APAC", "Marshall Islands" } "MQ" { "AMER", "Martinique" } "MR" { "EMEA", "Mauritania" } "MU" { "EMEA", "Mauritius" } "YT" { "EMEA", "Mayotte" } "MX" { "AMER", "Mexico" } "FM" { "APAC", "Micronesia" } "MD" { "EMEA", "Moldova" } "MC" { "EMEA", "Monaco" } "MN" { "APAC", "Mongolia" } "ME" { "EMEA", "Montenegro" } "MS" { "AMER", "Montserrat" } "MA" { "EMEA", "Morocco" } "MZ" { "EMEA", "Mozambique" } "MM" { "APAC", "Myanmar" } "NA" { "EMEA", "Namibia" } "NR" { "APAC", "Nauru" } "NP" { "APAC", "Nepal" } "NL" { "EMEA", "Netherlands" } "NC" { "APAC", "New Caledonia" } "NZ" { "APAC", "New Zealand" } "NI" { "AMER", "Nicaragua" } "NE" { "EMEA", "Niger" } "NG" { "EMEA", "Nigeria" } "NU" { "APAC", "Niue" } "NF" { "APAC", "Norfolk Island" } "MP" { "APAC", "Northern Mariana Islands" } "NO" { "EMEA", "Norway" } "OM" { "EMEA", "Oman" } "PK" { "APAC", "Pakistan" } "PW" { "APAC", "Palau" } "PS" { "EMEA", "Palestine" } "PA" { "AMER", "Panama" } "PG" { "APAC", "Papua New Guinea" } "PY" { "AMER", "Paraguay" } "PE" { "AMER", "Peru" } "PH" { "APAC", "Philippines" } "PN" { "APAC", "Pitcairn" } "PL" { "EMEA", "Poland" } "PT" { "EMEA", "Portugal" } "PR" { "AMER", "Puerto Rico" } "QA" { "EMEA", "Qatar" } "RE" { "EMEA", "Reunion" } "RO" { "EMEA", "Romania" } "RU" { "EMEA", "Russian Federation" } "RW" { "EMEA", "Rwanda" } "BL" { "AMER", "Saint Barthelemy" } "SH" { "EMEA", "Saint Helena" } "KN" { "AMER", "Saint Kitts and Nevis" } "LC" { "AMER", "Saint Lucia" } "MF" { "AMER", "Saint Martin (French part)" } "PM" { "AMER", "Saint Pierre and Miquelon" } "VC" { "AMER", "Saint Vincent and the Grenadines" } "WS" { "APAC", "Samoa" } "SM" { "EMEA", "San Marino" } "ST" { "EMEA", "Sao Tome and Principe" } "SA" { "EMEA", "Saudi Arabia" } "SN" { "EMEA", "Senegal" } "RS" { "EMEA", "Serbia" } "SC" { "EMEA", "Seychelles" } "SL" { "EMEA", "Sierra Leone" } "SG" { "APAC", "Singapore" } "SX" { "AMER", "Sint Maarten" } "SK" { "EMEA", "Slovakia" } "SI" { "EMEA", "Slovenia" } "SB" { "APAC", "Solomon Islands" } "SO" { "EMEA", "Somalia" } "ZA" { "EMEA", "South Africa" } "GS" { "EMEA", "South Georgia and South Sandwich Islands" } "SS" { "APAC", "South Sudan" } "ES" { "EMEA", "Spain" } "LK" { "APAC", "Sri Lanka" } "SD" { "EMEA", "Sudan" } "SR" { "AMER", "Suriname" } "SJ" { "EMEA", "Svalbard and Jan Mayen Islands" } "SZ" { "EMEA", "Swaziland" } "SE" { "EMEA", "Sweden" } "CH" { "EMEA", "Switzerland" } "SY" { "EMEA", "Syria" } "TW" { "APAC", "Taiwan" } "TJ" { "APAC", "Tajikistan" } "TZ" { "EMEA", "Tanzania" } "TH" { "APAC", "Thailand" } "TL" { "APAC", "Timor-Leste" } "TG" { "EMEA", "Togo" } "TK" { "APAC", "Tokelau" } "TO" { "APAC", "Tonga" } "TT" { "AMER", "Trinidad and Tobago" } "TN" { "EMEA", "Tunisia" } "TR" { "EMEA", "Turkey" } "TM" { "APAC", "Turkmenistan" } "TC" { "AMER", "Turks and Caicos Islands" } "TV" { "APAC", "Tuvalu" } "UG" { "EMEA", "Uganda" } "UA" { "EMEA", "Ukraine" } "AE" { "EMEA", "United Arab Emirates" } "GB" { "EMEA", "United Kingdom" } "UM" { "APAC", "United States Minor Outlying Islands" } "US" { "AMER", "United States of America" } "UY" { "AMER", "Uruguay" } "UZ" { "APAC", "Uzbekistan" } "VU" { "APAC", "Vanuatu" } "VA" { "EMEA", "Vatican City" } "VE" { "AMER", "Venezuela" } "VN" { "APAC", "Vietnam" } "VG" { "AMER", "Virgin Islands, British" } "VI" { "AMER", "Virgin Islands, U.S." } "WF" { "APAC", "Wallis and Futuna Islands" } "EH" { "EMEA", "Western Sahara" } "YE" { "EMEA", "Yemen" } "ZM" { "EMEA", "Zambia" } "ZW" { "EMEA", "Zimbabwe" } default { $null, $null } } switch ($Output) { "Region" { Return $Region } "Country" { Return $CountryName } } } end { } } #Get-RegionFromCountryCode |