...
1 package couchctl
2
3 import (
4 "context"
5 "time"
6
7 secretmanagerpb "cloud.google.com/go/secretmanager/apiv1/secretmanagerpb"
8 "google.golang.org/api/option"
9
10 "edge-infra.dev/pkg/lib/gcp/secretmanager"
11 )
12
13 type secretManager interface {
14 NewWithOptions(context.Context, string, ...option.ClientOption) (secretManagerClient, error)
15 }
16
17 type secretManagerClient interface {
18 GetLatestSecretValue(ctx context.Context, secretID string) ([]byte, error)
19 GetSecret(ctx context.Context, secretID string) (*secretmanagerpb.Secret, error)
20 AddSecret(ctx context.Context, secretID string, secretValue []byte, labels map[string]string, forceLabelsUpdate bool, expireAt *time.Time, versionAlias string) error
21 }
22
23 type gcpSecretManager struct{}
24
25 func (sm *gcpSecretManager) NewWithOptions(ctx context.Context, projectID string, opts ...option.ClientOption) (secretManagerClient, error) {
26 return secretmanager.NewWithOptions(ctx, projectID, opts...)
27 }
28
View as plain text