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