package couchctl import ( "context" "time" secretmanagerpb "cloud.google.com/go/secretmanager/apiv1/secretmanagerpb" "google.golang.org/api/option" "edge-infra.dev/pkg/lib/gcp/secretmanager" ) type secretManager interface { NewWithOptions(context.Context, string, ...option.ClientOption) (secretManagerClient, error) } type secretManagerClient interface { GetLatestSecretValue(ctx context.Context, secretID string) ([]byte, error) GetSecret(ctx context.Context, secretID string) (*secretmanagerpb.Secret, error) AddSecret(ctx context.Context, secretID string, secretValue []byte, labels map[string]string, forceLabelsUpdate bool, expireAt *time.Time, versionAlias string) error } type gcpSecretManager struct{} func (sm *gcpSecretManager) NewWithOptions(ctx context.Context, projectID string, opts ...option.ClientOption) (secretManagerClient, error) { return secretmanager.NewWithOptions(ctx, projectID, opts...) }