quotamanager.go raw

   1  package clients
   2  
   3  import (
   4  	"fmt"
   5  
   6  	clientservices "github.com/selectel/go-selvpcclient/v4/selvpcclient/clients/services"
   7  )
   8  
   9  const (
  10  	QuotaManagerServiceType = "quota-manager"
  11  )
  12  
  13  // QuotaManagerClient quota-manager client with X-Auth-Token authorization.
  14  type QuotaManagerClient struct {
  15  	Requests *clientservices.RequestService
  16  	catalog  *clientservices.CatalogService
  17  }
  18  
  19  func NewQuotaManagerClient(
  20  	requestService *clientservices.RequestService,
  21  	catalogService *clientservices.CatalogService,
  22  ) *QuotaManagerClient {
  23  	return &QuotaManagerClient{
  24  		Requests: requestService,
  25  		catalog:  catalogService,
  26  	}
  27  }
  28  
  29  // GetEndpoint - returns service url in specific region.
  30  func (c *QuotaManagerClient) GetEndpoint(regionName string) (string, error) {
  31  	endpoint, err := c.catalog.GetEndpoint(QuotaManagerServiceType, regionName)
  32  	if err != nil {
  33  		return "", fmt.Errorf(
  34  			"failed to resolve endpoint for %s in %s, err: %w", QuotaManagerServiceType, regionName, err,
  35  		)
  36  	}
  37  
  38  	return endpoint.URL, nil
  39  }
  40