Documentation
¶
Index ¶
- Variables
- type AccessMode
- type Author
- type Challenge
- type Client
- func (c *Client) AddPortForward(ctx context.Context, playID string, pf PortForward) error
- func (c *Client) CompleteChallenge(ctx context.Context, name string) (*Challenge, error)
- func (c *Client) CompleteTutorial(ctx context.Context, name string) (*Tutorial, error)
- func (c *Client) CreateAuthor(ctx context.Context, req CreateAuthorRequest) (*Author, error)
- func (c *Client) CreateChallenge(ctx context.Context, req CreateChallengeRequest) (*Challenge, error)
- func (c *Client) CreateCourse(ctx context.Context, req CreateCourseRequest) (*Course, error)
- func (c *Client) CreatePlay(ctx context.Context, req CreatePlayRequest) (*Play, error)
- func (c *Client) CreatePlayground(ctx context.Context, req CreatePlaygroundRequest) (*Playground, error)
- func (c *Client) CreateRoadmap(ctx context.Context, req CreateRoadmapRequest) (*Roadmap, error)
- func (c *Client) CreateSession(ctx context.Context) (*Session, error)
- func (c *Client) CreateSkillPath(ctx context.Context, req CreateSkillPathRequest) (*SkillPath, error)
- func (c *Client) CreateTraining(ctx context.Context, req CreateTrainingRequest) (*Training, error)
- func (c *Client) CreateTutorial(ctx context.Context, req CreateTutorialRequest) (*Tutorial, error)
- func (c *Client) Delete(ctx context.Context, path string, query url.Values, headers http.Header) (*http.Response, error)
- func (c *Client) DeleteChallenge(ctx context.Context, name string) error
- func (c *Client) DeleteContentFile(ctx context.Context, kind content.ContentKind, name string, file string) error
- func (c *Client) DeleteCourse(ctx context.Context, name string) error
- func (c *Client) DeletePlay(ctx context.Context, id string) errordeprecated
- func (c *Client) DeletePlayground(ctx context.Context, name string) error
- func (c *Client) DeleteRoadmap(ctx context.Context, name string) error
- func (c *Client) DeleteSession(ctx context.Context, id string) error
- func (c *Client) DeleteSkillPath(ctx context.Context, name string) error
- func (c *Client) DeleteTraining(ctx context.Context, name string) error
- func (c *Client) DeleteTutorial(ctx context.Context, name string) error
- func (c *Client) DestroyPlay(ctx context.Context, id string) error
- func (c *Client) Download(ctx context.Context, path string, query url.Values, headers http.Header, ...) error
- func (c *Client) DownloadContentFile(ctx context.Context, kind content.ContentKind, name string, file string, ...) error
- func (c *Client) DownloadTo(ctx context.Context, path string, query url.Values, headers http.Header, ...) error
- func (c *Client) ExposePort(ctx context.Context, id string, req ExposePortRequest) (*Port, error)
- func (c *Client) ExposeShell(ctx context.Context, id string, req ExposeShellRequest) (*Shell, error)
- func (c *Client) Get(ctx context.Context, path string, query url.Values, headers http.Header) (*http.Response, error)
- func (c *Client) GetAuthor(ctx context.Context) (*Author, error)
- func (c *Client) GetChallenge(ctx context.Context, name string) (*Challenge, error)
- func (c *Client) GetCourse(ctx context.Context, name string) (*Course, error)
- func (c *Client) GetInto(ctx context.Context, path string, query url.Values, headers http.Header, ...) error
- func (c *Client) GetMe(ctx context.Context) (*Me, error)
- func (c *Client) GetPlay(ctx context.Context, id string) (*Play, error)
- func (c *Client) GetPlayground(ctx context.Context, name string, opts *GetPlaygroundOptions) (*Playground, error)
- func (c *Client) GetRoadmap(ctx context.Context, name string) (*Roadmap, error)
- func (c *Client) GetSession(ctx context.Context, id string) (*Session, error)
- func (c *Client) GetSkillPath(ctx context.Context, name string) (*SkillPath, error)
- func (c *Client) GetTraining(ctx context.Context, name string) (*Training, error)
- func (c *Client) GetTutorial(ctx context.Context, name string) (*Tutorial, error)
- func (c *Client) ListAuthoredChallenges(ctx context.Context) ([]Challenge, error)
- func (c *Client) ListAuthoredCourses(ctx context.Context) ([]Course, error)
- func (c *Client) ListAuthoredRoadmaps(ctx context.Context) ([]Roadmap, error)
- func (c *Client) ListAuthoredSkillPaths(ctx context.Context) ([]SkillPath, error)
- func (c *Client) ListAuthoredTrainings(ctx context.Context) ([]Training, error)
- func (c *Client) ListAuthoredTutorials(ctx context.Context) ([]Tutorial, error)
- func (c *Client) ListChallenges(ctx context.Context, opts *ListChallengesOptions) ([]*Challenge, error)
- func (c *Client) ListContentFiles(ctx context.Context, kind content.ContentKind, name string) ([]string, error)
- func (c *Client) ListCourses(ctx context.Context) ([]Course, error)
- func (c *Client) ListPlaygrounds(ctx context.Context, opts *ListPlaygroundsOptions) ([]Playground, error)
- func (c *Client) ListPlays(ctx context.Context) ([]*Play, error)
- func (c *Client) ListPortForwards(ctx context.Context, playID string) ([]*PortForward, error)
- func (c *Client) ListPorts(ctx context.Context, id string) ([]*Port, error)
- func (c *Client) ListRoadmaps(ctx context.Context) ([]Roadmap, error)
- func (c *Client) ListShells(ctx context.Context, id string) ([]*Shell, error)
- func (c *Client) ListSkillPaths(ctx context.Context) ([]SkillPath, error)
- func (c *Client) ListTrainings(ctx context.Context) ([]Training, error)
- func (c *Client) ListTutorials(ctx context.Context, opts *ListTutorialsOptions) ([]Tutorial, error)
- func (c *Client) Patch(ctx context.Context, path string, query url.Values, headers http.Header, ...) (*http.Response, error)
- func (c *Client) PatchInto(ctx context.Context, path string, query url.Values, headers http.Header, ...) error
- func (c *Client) PersistPlay(ctx context.Context, id string) error
- func (c *Client) Post(ctx context.Context, path string, query url.Values, headers http.Header, ...) (*http.Response, error)
- func (c *Client) PostInto(ctx context.Context, path string, query url.Values, headers http.Header, ...) error
- func (c *Client) Put(ctx context.Context, path string, query url.Values, headers http.Header, ...) (*http.Response, error)
- func (c *Client) PutContentMarkdown(ctx context.Context, kind content.ContentKind, name string, file string, ...) error
- func (c *Client) PutInto(ctx context.Context, path string, query url.Values, headers http.Header, ...) error
- func (c *Client) RemovePortForward(ctx context.Context, playID string, index int) error
- func (c *Client) RequestPlayConn(ctx context.Context, id string) (*PlayConnHandle, error)
- func (c *Client) RestartPlay(ctx context.Context, id string) (*Play, error)
- func (c *Client) SetCredentials(sessionID, accessToken string)
- func (c *Client) StartChallenge(ctx context.Context, name string, opts StartChallengeOptions) (*Challenge, error)
- func (c *Client) StartCourseLesson(ctx context.Context, courseName, moduleName, lessonName string, ...) (*Course, error)
- func (c *Client) StartTunnel(ctx context.Context, id string, req StartTunnelRequest) (*StartTunnelResponse, error)
- func (c *Client) StartTutorial(ctx context.Context, name string, opts StartTutorialOptions) (*Tutorial, error)
- func (c *Client) StopChallenge(ctx context.Context, name string) (*Challenge, error)
- func (c *Client) StopCourseLesson(ctx context.Context, courseName, moduleName, lessonName string) (*Course, error)
- func (c *Client) StopPlay(ctx context.Context, id string) (*Play, error)
- func (c *Client) StopTutorial(ctx context.Context, name string) (*Tutorial, error)
- func (c *Client) UnexposePort(ctx context.Context, id string, portID string) error
- func (c *Client) UnexposeShell(ctx context.Context, id string, shellID string) error
- func (c *Client) UpdatePlayground(ctx context.Context, name string, req UpdatePlaygroundRequest) (*Playground, error)
- func (c *Client) Upload(ctx context.Context, url string, src io.Reader) (*http.Response, error)
- func (c *Client) UploadContentFile(ctx context.Context, kind content.ContentKind, name string, file string, ...) error
- func (c *Client) UploadFrom(ctx context.Context, url string, file string) (*http.Response, error)
- type ClientOptions
- type Course
- func (c *Course) FindLesson(moduleHint, lessonHint string) (string, string, *CourseLesson, error)
- func (c *Course) GetKind() content.ContentKind
- func (c *Course) GetName() string
- func (c *Course) GetPageURL() string
- func (c *Course) IsAuthoredBy(userID string) bool
- func (c *Course) IsOfficial() bool
- type CourseLearning
- type CourseLearningLesson
- type CourseLearningModule
- type CourseLesson
- type CourseModule
- type CoursePlayground
- type CourseVariant
- type CreateAuthorRequest
- type CreateChallengeRequest
- type CreateCourseRequest
- type CreatePlayRequest
- type CreatePlaygroundRequest
- type CreateRoadmapRequest
- type CreateSkillPathRequest
- type CreateTrainingRequest
- type CreateTutorialRequest
- type ExposePortRequest
- type ExposeShellRequest
- type GetPlaygroundOptions
- type InitCondition
- type InitConditionValue
- type InitConditions
- type InitTask
- type ListChallengesOptions
- type ListPlaygroundsOptions
- type ListTutorialsOptions
- type Machine
- type MachineDrive
- type MachineKernel
- type MachineNetwork
- type MachineNetworkInterface
- type MachineResources
- type MachineStartupFile
- type MachineUser
- type Me
- type Play
- func (p *Play) CountCompletedInitTasks() int
- func (p *Play) CountCompletedTasks() int
- func (p *Play) CountInitTasks() int
- func (p *Play) CountTasks() int
- func (p *Play) FactoryID() string
- func (p *Play) GetMachine(name string) *Machine
- func (p *Play) IsActive() bool
- func (p *Play) IsCompletable() bool
- func (p *Play) IsFailed() bool
- func (p *Play) IsInitialized() bool
- func (p *Play) State() PlayState
- func (p *Play) StateIs(state PlayState) bool
- type PlayConn
- type PlayConnHandle
- type PlayConnMessage
- type PlayState
- type PlayStatus
- type PlayTask
- type PlayTaskStatus
- type Playground
- type PlaygroundAccessdeprecated
- type PlaygroundAccessControl
- type PlaygroundMachine
- type PlaygroundManifest
- type PlaygroundNetwork
- type PlaygroundSpec
- type PlaygroundTab
- type PlaygroundUserAccess
- type Port
- type PortAccess
- type PortForward
- type PremiumAccess
- type RemoteSnapshot
- type Roadmap
- type Session
- type Shell
- type SkillPath
- type StartChallengeOptions
- type StartCourseLessonOptions
- type StartTunnelRequest
- type StartTunnelResponse
- type StartTutorialOptions
- type StateEvent
- type Training
- type Tutorial
- type UpdatePlaygroundRequest
Constants ¶
This section is empty.
Variables ¶
Functions ¶
This section is empty.
Types ¶
type AccessMode ¶
type AccessMode string
const ( AccessPrivate AccessMode = "private" AccessPublic AccessMode = "public" )
type Challenge ¶
type Challenge struct {
CreatedAt string `json:"createdAt" yaml:"createdAt"`
UpdatedAt string `json:"updatedAt" yaml:"updatedAt"`
Name string `json:"name" yaml:"name"`
Title string `json:"title" yaml:"title"`
Description string `json:"description" yaml:"description"`
Categories []string `json:"categories" yaml:"categories"`
Tags []string `json:"tags,omitempty" yaml:"tags,omitempty"`
Authors []Author `json:"authors" yaml:"authors"`
PageURL string `json:"pageUrl" yaml:"pageUrl"`
AttemptCount int `json:"attemptCount" yaml:"attemptCount"`
CompletionCount int `json:"completionCount" yaml:"completionCount"`
Play *Play `json:"play,omitempty" yaml:"play,omitempty"`
Tasks map[string]PlayTask `json:"tasks,omitempty" yaml:"tasks,omitempty"`
}
func (*Challenge) GetKind ¶
func (ch *Challenge) GetKind() content.ContentKind
func (*Challenge) GetPageURL ¶
func (*Challenge) IsAuthoredBy ¶
func (*Challenge) IsOfficial ¶
type Client ¶
type Client struct {
// contains filtered or unexported fields
}
func NewClient ¶
func NewClient(opts ClientOptions) *Client
func (*Client) AddPortForward ¶ added in v0.1.56
func (*Client) CompleteChallenge ¶
func (*Client) CompleteTutorial ¶ added in v0.1.36
func (*Client) CreateAuthor ¶
func (*Client) CreateChallenge ¶
func (*Client) CreateCourse ¶
func (*Client) CreatePlay ¶
func (*Client) CreatePlayground ¶
func (c *Client) CreatePlayground(ctx context.Context, req CreatePlaygroundRequest) (*Playground, error)
func (*Client) CreateRoadmap ¶
func (*Client) CreateSession ¶
func (*Client) CreateSkillPath ¶
func (*Client) CreateTraining ¶
func (*Client) CreateTutorial ¶
func (*Client) DeleteChallenge ¶
func (*Client) DeleteContentFile ¶
func (*Client) DeletePlayground ¶
func (*Client) DeleteRoadmap ¶
func (*Client) DeleteSkillPath ¶
func (*Client) DeleteTraining ¶
func (*Client) DeleteTutorial ¶
func (*Client) DestroyPlay ¶ added in v0.1.49
func (*Client) DownloadContentFile ¶
func (*Client) DownloadTo ¶
func (*Client) ExposePort ¶
func (*Client) ExposeShell ¶
func (*Client) GetChallenge ¶
func (*Client) GetPlayground ¶
func (c *Client) GetPlayground(ctx context.Context, name string, opts *GetPlaygroundOptions) (*Playground, error)
func (*Client) GetRoadmap ¶
func (*Client) GetSession ¶
func (*Client) GetSkillPath ¶
func (*Client) GetTraining ¶
func (*Client) GetTutorial ¶
func (*Client) ListAuthoredChallenges ¶
func (*Client) ListAuthoredCourses ¶
func (*Client) ListAuthoredRoadmaps ¶
func (*Client) ListAuthoredSkillPaths ¶
func (*Client) ListAuthoredTrainings ¶
func (*Client) ListAuthoredTutorials ¶
func (*Client) ListChallenges ¶
func (*Client) ListContentFiles ¶
func (*Client) ListPlaygrounds ¶
func (c *Client) ListPlaygrounds(ctx context.Context, opts *ListPlaygroundsOptions) ([]Playground, error)
func (*Client) ListPortForwards ¶ added in v0.1.56
func (*Client) ListShells ¶
func (*Client) ListSkillPaths ¶
func (*Client) ListTrainings ¶
func (*Client) ListTutorials ¶
func (*Client) PersistPlay ¶ added in v0.1.51
func (*Client) PutContentMarkdown ¶
func (*Client) RemovePortForward ¶ added in v0.1.56
func (*Client) RequestPlayConn ¶
func (*Client) RestartPlay ¶ added in v0.1.49
func (*Client) SetCredentials ¶
func (*Client) StartChallenge ¶
func (*Client) StartCourseLesson ¶ added in v0.1.59
func (*Client) StartTunnel ¶
func (c *Client) StartTunnel(ctx context.Context, id string, req StartTunnelRequest) (*StartTunnelResponse, error)
func (*Client) StartTutorial ¶ added in v0.1.36
func (*Client) StopChallenge ¶
func (*Client) StopCourseLesson ¶ added in v0.1.59
func (*Client) StopTutorial ¶ added in v0.1.36
func (*Client) UnexposePort ¶
func (*Client) UnexposeShell ¶
func (*Client) UpdatePlayground ¶
func (c *Client) UpdatePlayground(ctx context.Context, name string, req UpdatePlaygroundRequest) (*Playground, error)
func (*Client) UploadContentFile ¶
type ClientOptions ¶
type Course ¶
type Course struct {
CreatedAt string `json:"createdAt" yaml:"createdAt"`
UpdatedAt string `json:"updatedAt" yaml:"updatedAt"`
Name string `json:"name" yaml:"name"`
Title string `json:"title" yaml:"title"`
PageURL string `json:"pageUrl" yaml:"pageUrl"`
Authors []Author `json:"authors" yaml:"authors"`
Modules []CourseModule `json:"modules,omitempty" yaml:"modules,omitempty"`
Learning *CourseLearning `json:"learning,omitempty" yaml:"learning,omitempty"`
}
func (*Course) FindLesson ¶ added in v0.1.59
FindLesson resolves a lesson by module hint and lesson hint (name or slug). If moduleHint is empty, all modules are searched. Returns the resolved module name, lesson name, and lesson pointer, or an error if not found or ambiguous.
func (*Course) GetKind ¶
func (c *Course) GetKind() content.ContentKind
func (*Course) GetPageURL ¶
func (*Course) IsAuthoredBy ¶
func (*Course) IsOfficial ¶
type CourseLearning ¶ added in v0.1.59
type CourseLearning struct {
Modules map[string]CourseLearningModule `json:"modules" yaml:"modules"`
}
type CourseLearningLesson ¶ added in v0.1.59
type CourseLearningModule ¶ added in v0.1.59
type CourseLearningModule struct {
Lessons map[string]CourseLearningLesson `json:"lessons" yaml:"lessons"`
Started bool `json:"started" yaml:"started"`
}
type CourseLesson ¶ added in v0.1.59
type CourseLesson struct {
Name string `json:"name" yaml:"name"`
Title string `json:"title" yaml:"title"`
Slug string `json:"slug" yaml:"slug"`
Path string `json:"path" yaml:"path"`
Playground *CoursePlayground `json:"playground" yaml:"playground"`
Tasks map[string]PlayTask `json:"tasks,omitempty" yaml:"tasks,omitempty"`
}
type CourseModule ¶ added in v0.1.59
type CourseModule struct {
Name string `json:"name" yaml:"name"`
Title string `json:"title" yaml:"title"`
Slug string `json:"slug" yaml:"slug"`
Path string `json:"path" yaml:"path"`
Lessons []CourseLesson `json:"lessons" yaml:"lessons"`
}
type CoursePlayground ¶ added in v0.1.59
type CoursePlayground struct {
Name string `json:"name" yaml:"name"`
}
type CourseVariant ¶
type CourseVariant string
const ( CourseVariantSimple CourseVariant = "simple" CourseVariantModular CourseVariant = "modular" )
type CreateAuthorRequest ¶
type CreateAuthorRequest struct {
Author
}
type CreateChallengeRequest ¶
type CreateChallengeRequest struct {
Name string `json:"name"`
}
type CreateCourseRequest ¶
type CreateCourseRequest struct {
Name string `json:"name"`
Variant CourseVariant `json:"variant"`
Sample bool `json:"sample"`
}
type CreatePlayRequest ¶
type CreatePlayRequest struct {
Playground string `json:"playground"`
Tabs []PlaygroundTab `json:"tabs,omitempty"`
Networks []PlaygroundNetwork `json:"networks,omitempty"`
Machines []PlaygroundMachine `json:"machines,omitempty"`
InitTasks map[string]InitTask `json:"initTasks,omitempty"`
InitConditions map[string]string `json:"initConditions,omitempty"`
SafetyDisclaimerConsent bool `json:"safetyDisclaimerConsent"`
AsFreeTierUser bool `json:"asFreeTierUser,omitempty"`
}
type CreatePlaygroundRequest ¶
type CreatePlaygroundRequest struct {
Name string `yaml:"name" json:"name"`
Base string `yaml:"base" json:"base"`
Title string `yaml:"title" json:"title"`
Description string `yaml:"description" json:"description"`
Categories []string `yaml:"categories" json:"categories"`
Markdown string `yaml:"markdown,omitempty" json:"markdown,omitempty"`
Networks []PlaygroundNetwork `yaml:"networks" json:"networks"`
Machines []PlaygroundMachine `yaml:"machines" json:"machines"`
Tabs []PlaygroundTab `yaml:"tabs" json:"tabs"`
InitTasks map[string]InitTask `yaml:"initTasks" json:"initTasks"`
InitConditions InitConditions `yaml:"initConditions" json:"initConditions"`
RegistryAuth string `yaml:"registryAuth" json:"registryAuth"`
PortForwards []PortForward `yaml:"portForwards,omitempty" json:"portForwards,omitempty"`
AccessControl PlaygroundAccessControl `yaml:"accessControl" json:"accessControl"`
}
type CreateRoadmapRequest ¶
type CreateRoadmapRequest struct {
Name string `json:"name"`
}
type CreateSkillPathRequest ¶
type CreateSkillPathRequest struct {
Name string `json:"name"`
}
type CreateTrainingRequest ¶
type CreateTrainingRequest struct {
Name string `json:"name"`
}
type CreateTutorialRequest ¶
type CreateTutorialRequest struct {
Name string `json:"name"`
}
type ExposePortRequest ¶
type ExposeShellRequest ¶
type ExposeShellRequest struct {
Machine string `json:"machine"`
User string `json:"user"`
Access AccessMode `json:"access,omitempty"`
}
type GetPlaygroundOptions ¶
type GetPlaygroundOptions struct {
Format string // <none> | extended
}
type InitCondition ¶
type InitConditionValue ¶
type InitConditions ¶
type InitConditions struct {
Values []InitConditionValue `yaml:"values,omitempty" json:"values,omitempty"`
}
type InitTask ¶
type InitTask struct {
Name string `yaml:"name" json:"name"`
Machine string `yaml:"machine,omitempty" json:"machine,omitempty"`
Init bool `yaml:"init,omitempty" json:"init,omitempty"`
User string `yaml:"user" json:"user"`
TimeoutSeconds int `yaml:"timeout_seconds,omitempty" json:"timeout_seconds,omitempty"`
Needs []string `yaml:"needs,omitempty" json:"needs,omitempty"`
Run string `yaml:"run" json:"run"`
Status int `yaml:"status,omitempty" json:"status,omitempty"`
Conditions []InitCondition `yaml:"conditions,omitempty" json:"conditions,omitempty"`
}
type ListChallengesOptions ¶
type ListPlaygroundsOptions ¶
type ListPlaygroundsOptions struct {
Filter string
}
type ListTutorialsOptions ¶ added in v0.1.36
type Machine ¶
type Machine struct {
Name string `json:"name"`
Users []MachineUser `json:"users"`
Resources MachineResources `json:"resources"`
}
func (*Machine) DefaultUser ¶
func (m *Machine) DefaultUser() *MachineUser
type MachineDrive ¶ added in v0.1.35
type MachineDrive struct {
Source string `yaml:"source,omitempty" json:"source,omitempty"`
Mount string `yaml:"mount,omitempty" json:"mount,omitempty"`
Size string `yaml:"size,omitempty" json:"size,omitempty"`
Filesystem string `yaml:"filesystem,omitempty" json:"filesystem,omitempty"`
ReadOnly bool `yaml:"readOnly,omitempty" json:"readOnly,omitempty"`
Persistent bool `yaml:"persistent,omitempty" json:"persistent,omitempty"`
Snapshot *RemoteSnapshot `yaml:"snapshot,omitempty" json:"snapshot,omitempty"`
}
type MachineKernel ¶ added in v0.1.49
type MachineKernel struct {
Source string `yaml:"source,omitempty" json:"source,omitempty"`
Snapshot *RemoteSnapshot `yaml:"snapshot,omitempty" json:"snapshot,omitempty"`
}
type MachineNetwork ¶ added in v0.1.35
type MachineNetwork struct {
Interfaces []MachineNetworkInterface `yaml:"interfaces,omitempty" json:"interfaces,omitempty"`
}
type MachineNetworkInterface ¶ added in v0.1.35
type MachineResources ¶
type MachineStartupFile ¶
type MachineUser ¶
type Me ¶
type Me struct {
ID string `json:"id" yaml:"userId"`
GithubProfileId string `json:"githubProfileId" yaml:"githubProfileId"`
PremiumAccess *PremiumAccess `json:"premiumAccess,omitempty" yaml:"premiumAccess,omitempty"`
}
type Play ¶
type Play struct {
ID string `json:"id" yaml:"id"`
CreatedAt string `json:"createdAt" yaml:"createdAt"`
UpdatedAt string `json:"updatedAt" yaml:"updatedAt"`
LastStateAt string `json:"lastStateAt" yaml:"lastStateAt"`
ExpiresIn int `json:"expiresIn" yaml:"expiresIn"`
Status *PlayStatus `json:"status,omitempty" yaml:"status,omitempty"`
Playground Playground `json:"playground" yaml:"playground"`
TutorialName string `json:"tutorialName,omitempty" yaml:"tutorialName"`
Tutorial *struct {
Name string `json:"name" yaml:"name"`
Title string `json:"title" yaml:"title"`
} `json:"tutorial,omitempty" yaml:"tutorial"`
ChallengeName string `json:"challengeName,omitempty" yaml:"challengeName"`
Challenge *struct {
Name string `json:"name" yaml:"name"`
Title string `json:"title" yaml:"title"`
} `json:"challenge,omitempty" yaml:"challenge"`
CourseName string `json:"courseName,omitempty" yaml:"courseName"`
Course *struct {
Name string `json:"name" yaml:"name"`
Title string `json:"title" yaml:"title"`
} `json:"course,omitempty" yaml:"course"`
LessonPath string `json:"lessonPath,omitempty" yaml:"lessonPath"`
Lesson *struct {
Name string `json:"name" yaml:"name"`
Title string `json:"title" yaml:"title"`
} `json:"lesson,omitempty" yaml:"lesson"`
PageURL string `json:"pageUrl" yaml:"pageUrl"`
Machines []Machine `json:"machines" yaml:"machines"`
Tasks map[string]PlayTask `json:"tasks,omitempty" yaml:"tasks,omitempty"`
}
func (*Play) CountCompletedInitTasks ¶
func (*Play) CountCompletedTasks ¶ added in v0.1.48
func (*Play) CountInitTasks ¶
func (*Play) CountTasks ¶ added in v0.1.48
func (*Play) GetMachine ¶
func (*Play) IsCompletable ¶
func (*Play) IsInitialized ¶
type PlayConn ¶
type PlayConn struct {
// contains filtered or unexported fields
}
func NewPlayConn ¶
type PlayConnHandle ¶
type PlayConnHandle struct {
URL string `json:"url"`
}
type PlayConnMessage ¶
type PlayState ¶ added in v0.1.49
type PlayState string
const ( StateCreated PlayState = "CREATED" StateWarmingUp PlayState = "WARMING_UP" StateWarmedUp PlayState = "WARMED_UP" StateStarting PlayState = "STARTING" StateRunning PlayState = "RUNNING" StateStopping PlayState = "STOPPING" StateStopped PlayState = "STOPPED" StateDestroying PlayState = "DESTROYING" StateDestroyed PlayState = "DESTROYED" StateFailed PlayState = "FAILED" )
type PlayStatus ¶ added in v0.1.49
type PlayStatus struct {
FactoryID string `json:"factoryId" yaml:"factoryId"`
StateEvents []StateEvent `json:"stateEvents" yaml:"stateEvents"`
}
type PlayTask ¶
type PlayTask struct {
Name string `json:"name"`
Init bool `json:"init"`
Helper bool `json:"helper"`
Status PlayTaskStatus `json:"status"`
Version int `json:"version"`
}
type PlayTaskStatus ¶
type PlayTaskStatus int
const ( PlayTaskStatusNone PlayTaskStatus = 0 PlayTaskStatusCreated PlayTaskStatus = 10 PlayTaskStatusBlocked PlayTaskStatus = 20 PlayTaskStatusRunning PlayTaskStatus = 30 PlayTaskStatusFailed PlayTaskStatus = 35 PlayTaskStatusCompleted PlayTaskStatus = 40 )
type Playground ¶
type Playground struct {
ID string `yaml:"id" json:"id"`
Owner string `yaml:"owner" json:"owner"`
Name string `yaml:"name" json:"name"`
Base string `yaml:"base" json:"base"`
Title string `yaml:"title" json:"title"`
Description string `yaml:"description" json:"description"`
Categories []string `yaml:"categories" json:"categories"`
Cover string `yaml:"cover,omitempty" json:"cover,omitempty"`
Markdown string `yaml:"markdown,omitempty" json:"markdown,omitempty"`
Published bool `yaml:"published" json:"published"`
PageURL string `yaml:"pageUrl" json:"pageUrl"`
Networks []PlaygroundNetwork `yaml:"networks" json:"networks"`
Machines []PlaygroundMachine `yaml:"machines" json:"machines"`
Tabs []PlaygroundTab `yaml:"tabs" json:"tabs"`
InitTasks map[string]InitTask `yaml:"initTasks,omitempty" json:"initTasks,omitempty"`
InitConditions InitConditions `yaml:"initConditions,omitempty" json:"initConditions,omitempty"`
RegistryAuth string `yaml:"registryAuth,omitempty" json:"registryAuth,omitempty"`
PortForwards []PortForward `yaml:"portForwards,omitempty" json:"portForwards,omitempty"`
AccessControl PlaygroundAccessControl `yaml:"accessControl" json:"accessControl"`
UserAccess PlaygroundUserAccess `yaml:"userAccess,omitempty" json:"userAccess,omitempty"`
}
type PlaygroundAccess
deprecated
type PlaygroundAccessControl ¶
type PlaygroundMachine ¶
type PlaygroundMachine struct {
Name string `yaml:"name" json:"name"`
Users []MachineUser `yaml:"users,omitempty" json:"users,omitempty"`
Kernel *MachineKernel `yaml:"kernel,omitempty" json:"kernel,omitempty"`
Drives []MachineDrive `yaml:"drives,omitempty" json:"drives,omitempty"`
Network *MachineNetwork `yaml:"network,omitempty" json:"network,omitempty"`
Resources *MachineResources `yaml:"resources,omitempty" json:"resources,omitempty"`
StartupFiles []MachineStartupFile `yaml:"startupFiles,omitempty" json:"startupFiles,omitempty"`
NoSSH bool `yaml:"noSSH,omitempty" json:"noSSH,omitempty"`
}
func (*PlaygroundMachine) UnmarshalYAML ¶ added in v0.1.49
func (m *PlaygroundMachine) UnmarshalYAML(node *yaml.Node) error
UnmarshalYAML implements custom unmarshaling to support both legacy (kernel as string) and current (kernel as struct) manifest formats.
type PlaygroundManifest ¶
type PlaygroundManifest struct {
Kind string `yaml:"kind" json:"kind"`
Name string `yaml:"name" json:"name"`
Base string `yaml:"base,omitempty" json:"base,omitempty"`
Title string `yaml:"title,omitempty" json:"title,omitempty"`
Description string `yaml:"description,omitempty" json:"description,omitempty"`
Cover string `yaml:"cover,omitempty" json:"cover,omitempty"`
Categories []string `yaml:"categories,omitempty" json:"categories,omitempty"`
Markdown string `yaml:"markdown,omitempty" json:"markdown,omitempty"`
Playground PlaygroundSpec `yaml:"playground" json:"playground"`
}
type PlaygroundNetwork ¶ added in v0.1.35
type PlaygroundSpec ¶
type PlaygroundSpec struct {
Networks []PlaygroundNetwork `yaml:"networks,omitempty" json:"networks,omitempty"`
Machines []PlaygroundMachine `yaml:"machines,omitempty" json:"machines,omitempty"`
Tabs []PlaygroundTab `yaml:"tabs,omitempty" json:"tabs,omitempty"`
InitTasks map[string]InitTask `yaml:"initTasks,omitempty" json:"initTasks,omitempty"`
InitConditions InitConditions `yaml:"initConditions,omitempty" json:"initConditions,omitempty"`
RegistryAuth string `yaml:"registryAuth,omitempty" json:"registryAuth,omitempty"`
PortForwards []PortForward `yaml:"portForwards,omitempty" json:"portForwards,omitempty"`
// Deprecated: Use PlaygroundAccessControl instead
Access *PlaygroundAccess `yaml:"access,omitempty" json:"access,omitempty"`
AccessControl PlaygroundAccessControl `yaml:"accessControl" json:"accessControl"`
}
func (*PlaygroundSpec) HasAccessControl ¶
func (s *PlaygroundSpec) HasAccessControl() bool
type PlaygroundTab ¶
type PlaygroundTab struct {
ID string `yaml:"id,omitempty" json:"id,omitempty"`
Kind string `yaml:"kind" json:"kind"`
Name string `yaml:"name" json:"name"`
Machine string `yaml:"machine,omitempty" json:"machine,omitempty"`
Number int `yaml:"number,omitempty" json:"number,omitempty"`
Access string `yaml:"access,omitempty" json:"access,omitempty"`
Tls bool `yaml:"tls,omitempty" json:"tls,omitempty"`
HostRewrite string `yaml:"hostRewrite,omitempty" json:"hostRewrite,omitempty"`
PathRewrite string `yaml:"pathRewrite,omitempty" json:"pathRewrite,omitempty"`
URL string `yaml:"url,omitempty" json:"url,omitempty"`
}
type PlaygroundUserAccess ¶
type Port ¶
type Port struct {
ID string `json:"id"`
PlayID string `json:"playId"`
Machine string `json:"machine"`
Number int `json:"number"`
Hostname string `json:"hostname"`
AccessMode AccessMode `json:"access"`
TLS bool `json:"tls"`
HostRewrite string `json:"hostRewrite,omitempty"`
PathRewrite string `json:"pathRewrite,omitempty"`
URL string `json:"url"`
}
type PortAccess ¶
type PortAccess string
const ( PortAccessPublic PortAccess = "public" PortAccessPrivate PortAccess = "private" )
type PortForward ¶ added in v0.1.56
type PremiumAccess ¶
type RemoteSnapshot ¶ added in v0.1.49
type Roadmap ¶
type Roadmap struct {
CreatedAt string `json:"createdAt" yaml:"createdAt"`
UpdatedAt string `json:"updatedAt" yaml:"updatedAt"`
Name string `json:"name" yaml:"name"`
Title string `json:"title" yaml:"title"`
PageURL string `json:"pageUrl" yaml:"pageUrl"`
Authors []Author `json:"authors" yaml:"authors"`
}
func (*Roadmap) GetKind ¶
func (t *Roadmap) GetKind() content.ContentKind
func (*Roadmap) GetPageURL ¶
func (*Roadmap) IsAuthoredBy ¶
func (*Roadmap) IsOfficial ¶
type SkillPath ¶
type SkillPath struct {
CreatedAt string `json:"createdAt" yaml:"createdAt"`
UpdatedAt string `json:"updatedAt" yaml:"updatedAt"`
Name string `json:"name" yaml:"name"`
Title string `json:"title" yaml:"title"`
PageURL string `json:"pageUrl" yaml:"pageUrl"`
Authors []Author `json:"authors" yaml:"authors"`
}
func (*SkillPath) GetKind ¶
func (t *SkillPath) GetKind() content.ContentKind
func (*SkillPath) GetPageURL ¶
func (*SkillPath) IsAuthoredBy ¶
func (*SkillPath) IsOfficial ¶
type StartChallengeOptions ¶
type StartCourseLessonOptions ¶ added in v0.1.59
type StartTunnelRequest ¶
type StartTunnelResponse ¶
type StartTutorialOptions ¶ added in v0.1.36
type StateEvent ¶ added in v0.1.49
type Training ¶
type Training struct {
CreatedAt string `json:"createdAt" yaml:"createdAt"`
UpdatedAt string `json:"updatedAt" yaml:"updatedAt"`
Name string `json:"name" yaml:"name"`
Title string `json:"title" yaml:"title"`
PageURL string `json:"pageUrl" yaml:"pageUrl"`
Authors []Author `json:"authors" yaml:"authors"`
}
func (*Training) GetKind ¶
func (t *Training) GetKind() content.ContentKind
func (*Training) GetPageURL ¶
func (*Training) IsAuthoredBy ¶
func (*Training) IsOfficial ¶
type Tutorial ¶
type Tutorial struct {
CreatedAt string `json:"createdAt" yaml:"createdAt"`
UpdatedAt string `json:"updatedAt" yaml:"updatedAt"`
Name string `json:"name" yaml:"name"`
Title string `json:"title" yaml:"title"`
Description string `json:"description" yaml:"description"`
Categories []string `json:"categories" yaml:"categories"`
Tags []string `json:"tags,omitempty" yaml:"tags,omitempty"`
Authors []Author `json:"authors" yaml:"authors"`
PageURL string `json:"pageUrl" yaml:"pageUrl"`
AttemptCount int `json:"attemptCount" yaml:"attemptCount"`
CompletionCount int `json:"completionCount" yaml:"completionCount"`
Play *Play `json:"play,omitempty" yaml:"play,omitempty"`
}
func (*Tutorial) GetKind ¶
func (t *Tutorial) GetKind() content.ContentKind
func (*Tutorial) GetPageURL ¶
func (*Tutorial) IsAuthoredBy ¶
func (*Tutorial) IsOfficial ¶
type UpdatePlaygroundRequest ¶
type UpdatePlaygroundRequest struct {
Title string `yaml:"title" json:"title"`
Description string `yaml:"description" json:"description"`
Categories []string `yaml:"categories" json:"categories"`
Cover string `yaml:"cover,omitempty" json:"cover,omitempty"`
Markdown string `yaml:"markdown,omitempty" json:"markdown,omitempty"`
Networks []PlaygroundNetwork `yaml:"networks" json:"networks"`
Machines []PlaygroundMachine `yaml:"machines" json:"machines"`
Tabs []PlaygroundTab `yaml:"tabs" json:"tabs"`
InitTasks map[string]InitTask `yaml:"initTasks" json:"initTasks"`
InitConditions InitConditions `yaml:"initConditions" json:"initConditions"`
RegistryAuth string `yaml:"registryAuth" json:"registryAuth"`
PortForwards []PortForward `yaml:"portForwards,omitempty" json:"portForwards,omitempty"`
AccessControl PlaygroundAccessControl `yaml:"accessControl" json:"accessControl"`
}
Click to show internal directories.
Click to hide internal directories.