While testing different environments, we found out that there are some CSPs who run completely separated sites with completely separated management layer (separate IAM, console, etc)
[x] AbstractCredentialInfo - extend to have an mandatory string field site. Description of the field - site to which the the credentials belong to.
[x] Add site to credential cache key.
[x] Extend all credential 'get' methods to use 'site' also in the query key.
[x] Extend all methods in class HuaweiCloudCredentials to set IamEndpoint based on region. It must be mandatory to set region.
[x] Additionally set credential based on the site to which the region belongs to.
[x] In case of billing API -> if no credentials are available for the requested site, then use the API which works without credential.
.withIamEndpoint(IamRegion.valueOf(region).getEndpoints().getFirst());
While testing different environments, we found out that there are some CSPs who run completely separated sites with completely separated management layer (separate IAM, console, etc)
site
. Description of the field - site to which the the credentials belong to.site
to credential cache key.HuaweiCloudCredentials
to set IamEndpoint based on region. It must be mandatory to set region..withIamEndpoint(IamRegion.valueOf(region).getEndpoints().getFirst());