...
1 package bannerctl
2
3 import (
4 "context"
5 "time"
6
7 metricsscope "cloud.google.com/go/monitoring/metricsscope/apiv1"
8 secretmanagerpb "cloud.google.com/go/secretmanager/apiv1/secretmanagerpb"
9 "google.golang.org/api/option"
10
11 "edge-infra.dev/pkg/lib/gcp/metricsscopes"
12 "edge-infra.dev/pkg/lib/gcp/secretmanager"
13 )
14
15 type secretManager interface {
16 NewWithOptions(context.Context, string, ...option.ClientOption) (secretManagerClient, error)
17 }
18
19 type secretManagerClient interface {
20 GetLatestSecretValueInfo(ctx context.Context, secretID string) (*secretmanagerpb.SecretVersion, error)
21 GetLatestSecretValue(ctx context.Context, secretID string) ([]byte, error)
22 GetSecret(ctx context.Context, secretID string) (*secretmanagerpb.Secret, error)
23 AddSecret(ctx context.Context, secretID string, secretValue []byte, labels map[string]string, forceLabelsUpdate bool, expireAt *time.Time, versionAlias string) error
24 }
25
26 type gcpSecretManager struct{}
27
28 func (sm *gcpSecretManager) NewWithOptions(ctx context.Context, projectID string, opts ...option.ClientOption) (secretManagerClient, error) {
29 return secretmanager.NewWithOptions(ctx, projectID, opts...)
30 }
31
32 type metricsScopesClient interface {
33 AddMonitoredProject(ctx context.Context, projectID string) (*metricsscope.CreateMonitoredProjectOperation, error)
34 }
35
36 type gcpMetricsScopesClient struct {
37 c *metricsscopes.Client
38 }
39
40 func (c *gcpMetricsScopesClient) AddMonitoredProject(ctx context.Context, projectID string) (*metricsscope.CreateMonitoredProjectOperation, error) {
41 return c.c.AddMonitoredProject(ctx, projectID)
42 }
43
View as plain text