...

Source file src/edge-infra.dev/pkg/edge/api/types/interfaces.go

Documentation: edge-infra.dev/pkg/edge/api/types

     1  package types
     2  
     3  import (
     4  	"context"
     5  	"time"
     6  
     7  	secretmanagerpb "cloud.google.com/go/secretmanager/apiv1/secretmanagerpb"
     8  	"google.golang.org/api/compute/v1"
     9  	"google.golang.org/api/container/v1"
    10  )
    11  
    12  // SecretManagerService is used to get secret and secret information from GCPs Secret Manager API
    13  //
    14  //go:generate mockgen -destination=../mocks/mock_secret_manager_service.go -package=mocks edge-infra.dev/pkg/edge/api/types SecretManagerService
    15  type SecretManagerService interface {
    16  	GetSecret(ctx context.Context, secretID string) (*secretmanagerpb.Secret, error)
    17  	ListSecrets(ctx context.Context, pageToken string) ([]*secretmanagerpb.Secret, error)
    18  	GetLatestSecretValue(ctx context.Context, secretID string) ([]byte, error)
    19  	GetLatestSecretValueInfo(ctx context.Context, secretID string) (*secretmanagerpb.SecretVersion, error)
    20  	GetSecretVersionValue(ctx context.Context, secretID string, version string) ([]byte, error)
    21  	GetSecretVersionValueInfo(ctx context.Context, secretID, version string) (*secretmanagerpb.SecretVersion, error)
    22  	AddSecret(ctx context.Context, secretID string, secretValue []byte, labels map[string]string, forceLabelsUpdate bool, expireAt *time.Time, versionAlias string) error
    23  	AddSecrets(ctx context.Context, secrets map[string][]byte) error
    24  	DeleteSecret(ctx context.Context, secretID string) error
    25  	GetProjectID() string
    26  }
    27  
    28  // ComputeService is used to get machine information for vms
    29  //
    30  //go:generate mockgen -destination=../mocks/mock_gcp_compute_service.go -package=mocks edge-infra.dev/pkg/edge/api/types ComputeService
    31  type ComputeService interface {
    32  	GetZones(ctx context.Context) (*compute.ZoneList, error)
    33  	GetMachineTypes(ctx context.Context, zone string) (*compute.MachineTypeList, error)
    34  	GetMachineType(ctx context.Context, zone, machineType string) (*compute.MachineType, error)
    35  }
    36  
    37  // ContainerService is used to get the server config of a vm
    38  //
    39  //go:generate  mockgen -destination=../mocks/mock_gcp_container_service.go -package=mocks edge-infra.dev/pkg/edge/api/types ContainerService
    40  type ContainerService interface {
    41  	GetServerConfig(ctx context.Context, zone string) (*container.ServerConfig, error)
    42  }
    43  
    44  // PubSubService is used to send message to gcp pubsub topic
    45  //
    46  //go:generate mockgen -destination=../mocks/mock_pub_sub_service.go -package=mocks edge-infra.dev/pkg/edge/api/types PubSubService
    47  type PubSubService interface {
    48  	Send(ctx context.Context, topicID string, message []byte, attributes map[string]string) error
    49  }
    50  

View as plain text