public IRegionEndpoint GetRegionEndpoint(string regionName)
{
try
{
lock (_regionEndpointMapLock)
{
IRegionEndpoint endpoint;
if (_regionEndpointMap.TryGetValue(regionName, out endpoint))
{
return endpoint;
}
else
{
JsonData partitions = _root["partitions"];
foreach (JsonData partition in partitions)
{
string description;
if (IsRegionInPartition(regionName, partition, out description))
{
endpoint = new RegionEndpointV3(regionName, description, partition, partition["services"]);
_regionEndpointMap.Add(regionName, endpoint);
return endpoint;
}
}
}
}
}
catch (Exception)
{
throw new AmazonClientException("Invalid endpoint.json format.");
}
return GetNonstandardRegionEndpoint(regionName);
}