entity

package
v0.6.74 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jun 15, 2022 License: MIT Imports: 5 Imported by: 1

Documentation

Index

Constants

View Source
const (
	WorkspaceRunningStatus  = "RUNNING"
	WorkspaceStartingStatus = "STARTING"
	WorkspaceStoppingStatus = "STOPPING"
	WorkspaceDeletingStatus = "DELETING"
)

Variables

This section is empty.

Functions

func CleanSubdomain added in v0.6.60

func CleanSubdomain(in string) string

lowercase, replace whitespace with '-', remove all [^a-z0-9-], trim '-' front and back

func GetFirstKeyMap added in v0.6.60

func GetFirstKeyMap(strMap map[string][]Workspace) (string, bool)

func MakeIDSuffix added in v0.6.67

func MakeIDSuffix(id string) string

Types

type Application

type Application struct {
	ID           string `json:"id"`
	Name         string `json:"name"`
	Port         int    `json:"port"`
	StartCommand string `json:"startCommand"`
	Version      string `json:"version"`
}

type AuthTokens

type AuthTokens struct {
	AccessToken  string `json:"access_token"`
	RefreshToken string `json:"refresh_token"`
}

type ExecName added in v0.6.71

type ExecName string

type ExecV0 added in v0.6.71

type ExecV0 struct {
	Exec        string   `json:"exec"`
	ExecWorkDir string   `json:"execWorkDir"`
	DependsOn   []string `json:"dependsOn"`
}

type Execs added in v0.6.71

type Execs map[ExecName]ExecV0

type GlobalUserType added in v0.6.74

type GlobalUserType string
const (
	Admin    GlobalUserType = "Admin"
	Standard GlobalUserType = "Standard"
)

type IDEConfig added in v0.6.71

type IDEConfig struct {
	VSCode VSCodeConfig `json:"vscode"`

} // @Name IDEConfig

type OnboardingStatus added in v0.6.55

type OnboardingStatus struct {
	Editor  string `json:"editor"`
	SSH     bool   `json:"ssh"`
	UsedCLI bool   `json:"usedCli"`
}

type Organization

type Organization struct {
	ID            string `json:"id"`
	Name          string `json:"name"`
	UserNetworkID string `json:"userNetworkId"`
}

type RepoName added in v0.6.71

type RepoName string

type RepoV0 added in v0.6.71

type RepoV0 struct {
	Repository    string   `json:"repository"`
	Branch        string   `json:"branch"` // branch, tag, commit
	Directory     string   `json:"directory"`
	BrevPath      string   `json:"brevPath"`
	SetupExecPath string   `json:"setupExecPath"`
	ExecWorkDir   string   `json:"execWorkDir"`
	DependsOn     []string `json:"dependsOn"`
}

type Repos added in v0.6.71

type Repos map[RepoName]RepoV0

type RequestCreateWorkspace

type RequestCreateWorkspace struct {
	Name                 string        `json:"name"`
	WorkspaceGroupID     string        `json:"workspaceGroupId"`
	WorkspaceClassID     string        `json:"workspaceClassId"`
	GitRepo              string        `json:"gitRepo"`
	IsStoppable          bool          `json:"isStoppable"`
	WorkspaceTemplateID  string        `json:"workspaceTemplateId"`
	PrimaryApplicationID string        `json:"primaryApplicationId"`
	Applications         []Application `json:"applications"`
}

type UpdateUser added in v0.5.0

type UpdateUser struct {
	Username          string                 `json:"username,omitempty"`
	Name              string                 `json:"name,omitempty"`
	Email             string                 `json:"email,omitempty"`
	BaseWorkspaceRepo string                 `json:"baseWorkspaceRepo,omitempty"`
	OnboardingStatus  map[string]interface{} `json:"onboardingData,omitempty"` // todo fix inconsitency
	IdeConfig         IDEConfig              `json:"ideConfig,omitempty"`
}

type User

type User struct {
	ID                string                 `json:"id"`
	PublicKey         string                 `json:"publicKey,omitempty"`
	Username          string                 `json:"username"`
	Name              string                 `json:"name"`
	Email             string                 `json:"email"`
	WorkspacePassword string                 `json:"workspacePassword"`
	BaseWorkspaceRepo string                 `json:"baseWorkspaceRepo"`
	GlobalUserType    GlobalUserType         `json:"globalUserType"`
	IdeConfig         IDEConfig              `json:"ideConfig,omitempty"`
	OnboardingStatus  map[string]interface{} `json:"onboardingData"` // todo fix inconsitency
}

func (User) GetOnboardingStatus added in v0.6.55

func (u User) GetOnboardingStatus() (*OnboardingStatus, error)

type UserKeys

type UserKeys struct {
	PrivateKey      string               `json:"privateKey"`
	PublicKey       string               `json:"publicKey"`
	WorkspaceGroups []WorkspaceGroupKeys `json:"workspaceGroups"`
}

func (UserKeys) GetWorkspaceGroupKeysByGroupID

func (u UserKeys) GetWorkspaceGroupKeysByGroupID(groupID string) (*WorkspaceGroupKeys, error)

type VSCodeConfig added in v0.6.71

type VSCodeConfig struct {
	Extensions []VscodeExtensionMetadata `json:"extensions"`

} // @Name VSCodeConfig

type VirtualProject added in v0.6.60

type VirtualProject struct {
	Name             string
	GitURL           string
	WorkspacesByUser map[string][]Workspace
}

func NewVirtualProjects added in v0.6.60

func NewVirtualProjects(workspaces []Workspace) []VirtualProject

func (VirtualProject) GetUniqueUserCount added in v0.6.60

func (v VirtualProject) GetUniqueUserCount() int

func (VirtualProject) GetUserWorkspaces added in v0.6.60

func (v VirtualProject) GetUserWorkspaces(userID string) []Workspace

type VscodeExtensionMetadata added in v0.6.71

type VscodeExtensionMetadata struct {
	Name        string `json:"name"`
	DisplayName string `json:"displayName"`
	Version     string `json:"version"`
	Publisher   string `json:"publisher"`
	Description string `json:"description"`
	Repository  string `json:"repository"`

} // @Name ExtensionMetadata

func (VscodeExtensionMetadata) GetID added in v0.6.71

func (v VscodeExtensionMetadata) GetID() string

type Workspace

type Workspace struct {
	ID               string `json:"id"`
	Name             string `json:"name"`
	WorkspaceGroupID string `json:"workspaceGroupId"`
	OrganizationID   string `json:"organizationId"`
	// WorkspaceClassID is resources, like "2x8"
	WorkspaceClassID  string            `json:"workspaceClassId"`
	CreatedByUserID   string            `json:"createdByUserId"`
	DNS               string            `json:"dns"`
	Status            string            `json:"status"`
	Password          string            `json:"password"`
	GitRepo           string            `json:"gitRepo"`
	Version           string            `json:"version"`
	WorkspaceTemplate WorkspaceTemplate `json:"workspaceTemplate"`
	NetworkID         string            `json:"networkId"`

	StartupScriptPath string    `json:"startupScriptPath"`
	Repos             Repos     `json:"repos"`
	Execs             Execs     `json:"execs"`
	IDEConfig         IDEConfig `json:"ideConfig"`

	// PrimaryApplicationId         string `json:"primaryApplicationId,omitempty"`
	// LastOnlineAt         string `json:"lastOnlineAt,omitempty"`
	// CreatedAt         string `json:"createdAt,omitempty"`
	// UpdatedAt         string `json:"updatedAt,omitempty"`
	HealthStatus  string        `json:"healthStatus"`
	IsStoppable   bool          `json:"isStoppable"`
	StatusMessage string        `json:"statusMessage"`
	StopTimeout   time.Duration `json:"stopTimeout"`
}

func WorkspacesWithMetaToWorkspaces added in v0.6.6

func WorkspacesWithMetaToWorkspaces(wms []WorkspaceWithMeta) []Workspace

func (Workspace) GetID

func (w Workspace) GetID() string

func (Workspace) GetIsStoppable added in v0.6.73

func (w Workspace) GetIsStoppable() bool

func (Workspace) GetLocalIdentifier added in v0.5.0

func (w Workspace) GetLocalIdentifier() WorkspaceLocalID

func (Workspace) GetNodeIdentifierForVPN added in v0.6.22

func (w Workspace) GetNodeIdentifierForVPN() string

func (Workspace) GetProjectFolderPath added in v0.6.63

func (w Workspace) GetProjectFolderPath() string

func (Workspace) GetSSHURL added in v0.6.0

func (w Workspace) GetSSHURL() string

func (Workspace) GetStopTimeout added in v0.6.72

func (w Workspace) GetStopTimeout() time.Duration

type WorkspaceGroupKeys

type WorkspaceGroupKeys struct {
	GroupID string `json:"groupId"`
	Cert    string `json:"cert"`
	CA      string `json:"ca"`
	APIURL  string `json:"apiUrl"`
}

type WorkspaceLocalID added in v0.5.0

type WorkspaceLocalID string

type WorkspaceMetaData

type WorkspaceMetaData struct {
	PodName       string `json:"podName"`
	NamespaceName string `json:"namespaceName"`
}

func (WorkspaceMetaData) GetNamespaceName

func (w WorkspaceMetaData) GetNamespaceName() string

func (WorkspaceMetaData) GetPodName

func (w WorkspaceMetaData) GetPodName() string

type WorkspaceTemplate added in v0.6.0

type WorkspaceTemplate struct {
	ID          string `json:"id"`
	Type        string `json:"type"`
	Name        string `json:"name"`
	RegistryURI string `json:"registryUri"`
	Image       string `json:"image"`
	Public      bool   `json:"public"`
	Port        int    `json:"port"`
}

type WorkspaceWithMeta

type WorkspaceWithMeta struct {
	WorkspaceMetaData
	Workspace
}

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL