...

Source file src/edge-infra.dev/pkg/edge/datasync/controllers/couchctl/interface.go

Documentation: edge-infra.dev/pkg/edge/datasync/controllers/couchctl

     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