code: func (f *ecrTokenGetterFactory) GetTokenGetterForRegion(region string) (tokenGetter, error) {
  	f.mutex.Lock()
  	defer f.mutex.Unlock()
  
  	if getter, ok := f.cache[region]; ok {
  		return getter, nil
  	}
  	getter, err := newECRTokenGetter(region)
  	if err != nil {
  		return nil, fmt.Errorf("unable to create token getter for region %v %v", region, err)
  	}
  	f.cache[region] = getter
  	return getter, nil
  }
docs: // GetTokenGetterForRegion gets the token getter for the requested region. If it
  // doesn't exist, it creates a new ECR token getter