github.com/defang-io/defang/src@v0.0.0-20240505002154-bdf411911834/pkg/cli/client/client.go (about) 1 package client 2 3 import ( 4 "context" 5 6 compose "github.com/compose-spec/compose-go/v2/types" 7 defangv1 "github.com/defang-io/defang/src/protos/io/defang/v1" 8 ) 9 10 type ServerStream[Res any] interface { 11 Close() error 12 Receive() bool 13 Msg() *Res 14 Err() error 15 } 16 17 type ETag = string 18 19 type ProjectLoader interface { 20 LoadWithDefaultProjectName(string) (*compose.Project, error) 21 LoadWithProjectName(string) (*compose.Project, error) 22 } 23 24 type Client interface { 25 // Promote(google.protobuf.Empty) returns (google.protobuf.Empty); 26 // Subscribe(context.Context, *v1.SubscribeRequest) (*v1.SubscribeResponse, error) 27 // Update(context.Context, *v1.Service) (*v1.ServiceInfo, error) 28 AgreeToS(context.Context) error 29 BootstrapCommand(context.Context, string) (ETag, error) 30 BootstrapList(context.Context) error 31 CheckLoginAndToS(context.Context) error 32 CreateUploadURL(context.Context, *defangv1.UploadURLRequest) (*defangv1.UploadURLResponse, error) 33 DelegateSubdomainZone(context.Context, *defangv1.DelegateSubdomainZoneRequest) (*defangv1.DelegateSubdomainZoneResponse, error) 34 // Deprecated: Use Deploy or Destroy instead. 35 Delete(context.Context, *defangv1.DeleteRequest) (*defangv1.DeleteResponse, error) 36 DeleteConfig(context.Context, *defangv1.Secrets) error 37 DeleteSubdomainZone(context.Context) error 38 Deploy(context.Context, *defangv1.DeployRequest) (*defangv1.DeployResponse, error) 39 Destroy(context.Context) (ETag, error) 40 GenerateFiles(context.Context, *defangv1.GenerateFilesRequest) (*defangv1.GenerateFilesResponse, error) 41 Get(context.Context, *defangv1.ServiceID) (*defangv1.ServiceInfo, error) 42 GetDelegateSubdomainZone(context.Context) (*defangv1.DelegateSubdomainZoneResponse, error) 43 GetServices(context.Context) (*defangv1.ListServicesResponse, error) 44 GetVersions(context.Context) (*defangv1.Version, error) 45 ListConfig(context.Context) (*defangv1.Secrets, error) 46 Publish(context.Context, *defangv1.PublishRequest) error 47 PutConfig(context.Context, *defangv1.SecretValue) error 48 Restart(context.Context, ...string) (ETag, error) 49 RevokeToken(context.Context) error 50 ServiceDNS(name string) string 51 Tail(context.Context, *defangv1.TailRequest) (ServerStream[defangv1.TailResponse], error) 52 TearDown(context.Context) error 53 Token(context.Context, *defangv1.TokenRequest) (*defangv1.TokenResponse, error) 54 Track(string, ...Property) error 55 WhoAmI(context.Context) (*defangv1.WhoAmIResponse, error) 56 57 LoadProject() (*compose.Project, error) 58 } 59 60 type Property struct { 61 Name string 62 Value any 63 }