package controllers import ( "context" "time" "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 { GetSecretVersionValue(ctx context.Context, secretID string, version string) ([]byte, 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...) }