codersdk

package
v0.4.3 Latest Latest
Warning

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

Go to latest
Published: Apr 18, 2022 License: AGPL-3.0 Imports: 32 Imported by: 2

Documentation

Index

Constants

View Source
const (
	ContentTypeTar = "application/x-tar"
)

Variables

View Source
var Me = uuid.Nil

Me is used as a replacement for your own ID.

Functions

This section is empty.

Types

type AWSInstanceIdentityToken

type AWSInstanceIdentityToken struct {
	Signature string `json:"signature" validate:"required"`
	Document  string `json:"document" validate:"required"`
}

type AgentGitSSHKey added in v0.4.0

type AgentGitSSHKey struct {
	PrivateKey string `json:"private_key"`
}

type BuildInfoResponse added in v0.4.1

type BuildInfoResponse struct {
	// ExternalURL is a URL referencing the current Coder version.  For production
	// builds, this will link directly to a release.  For development builds, this
	// will link to a commit.
	ExternalURL string `json:"external_url"`
	// Version returns the semantic version of the build.
	Version string `json:"version"`
}

BuildInfoResponse contains build information for this instance of Coder.

type Client

type Client struct {
	HTTPClient   *http.Client
	SessionToken string
	URL          *url.URL
}

Client is an HTTP caller for methods to the Coder API.

func New

func New(serverURL *url.URL) *Client

New creates a Coder client for the provided URL.

func (*Client) AgentGitSSHKey added in v0.4.0

func (c *Client) AgentGitSSHKey(ctx context.Context) (AgentGitSSHKey, error)

AgentGitSSHKey will return the user's SSH key pair for the workspace.

func (*Client) AuthWorkspaceAWSInstanceIdentity

func (c *Client) AuthWorkspaceAWSInstanceIdentity(ctx context.Context) (WorkspaceAgentAuthenticateResponse, error)

AuthWorkspaceAWSInstanceIdentity uses the Amazon Metadata API to fetch a signed payload, and exchange it for a session token for a workspace agent.

The requesting instance must be registered as a resource in the latest history for a workspace.

func (*Client) AuthWorkspaceGoogleInstanceIdentity

func (c *Client) AuthWorkspaceGoogleInstanceIdentity(ctx context.Context, serviceAccount string, gcpClient *metadata.Client) (WorkspaceAgentAuthenticateResponse, error)

AuthWorkspaceGoogleInstanceIdentity uses the Google Compute Engine Metadata API to fetch a signed JWT, and exchange it for a session token for a workspace agent.

The requesting instance must be registered as a resource in the latest history for a workspace.

func (*Client) BuildInfo added in v0.4.1

func (c *Client) BuildInfo(ctx context.Context) (BuildInfoResponse, error)

BuildInfo returns build information for this instance of Coder.

func (*Client) CancelTemplateVersion added in v0.4.0

func (c *Client) CancelTemplateVersion(ctx context.Context, version uuid.UUID) error

CancelTemplateVersion marks a template version job as canceled.

func (*Client) CancelWorkspaceBuild

func (c *Client) CancelWorkspaceBuild(ctx context.Context, id uuid.UUID) error

CancelWorkspaceBuild marks a workspace build job as canceled.

func (*Client) CreateAPIKey

func (c *Client) CreateAPIKey(ctx context.Context, userID uuid.UUID) (*GenerateAPIKeyResponse, error)

CreateAPIKey generates an API key for the user ID provided.

func (*Client) CreateFirstUser

CreateFirstUser attempts to create the first user on a Coder deployment. This initial user has superadmin privileges. If >0 users exist, this request will fail.

func (*Client) CreateOrganization

func (c *Client) CreateOrganization(ctx context.Context, userID uuid.UUID, req CreateOrganizationRequest) (Organization, error)

CreateOrganization creates an organization and adds the provided user as an admin.

func (*Client) CreateParameter

func (c *Client) CreateParameter(ctx context.Context, scope ParameterScope, id uuid.UUID, req CreateParameterRequest) (Parameter, error)

func (*Client) CreateTemplate added in v0.4.0

func (c *Client) CreateTemplate(ctx context.Context, organizationID uuid.UUID, request CreateTemplateRequest) (Template, error)

CreateTemplate creates a new template inside an organization.

func (*Client) CreateTemplateVersion added in v0.4.0

func (c *Client) CreateTemplateVersion(ctx context.Context, organizationID uuid.UUID, req CreateTemplateVersionRequest) (TemplateVersion, error)

CreateTemplateVersion processes source-code and optionally associates the version with a template. Executing without a template is useful for validating source-code.

func (*Client) CreateUser

func (c *Client) CreateUser(ctx context.Context, req CreateUserRequest) (User, error)

CreateUser creates a new user.

func (*Client) CreateWorkspace

func (c *Client) CreateWorkspace(ctx context.Context, userID uuid.UUID, request CreateWorkspaceRequest) (Workspace, error)

CreateWorkspace creates a new workspace for the template specified.

func (*Client) CreateWorkspaceBuild

func (c *Client) CreateWorkspaceBuild(ctx context.Context, workspace uuid.UUID, request CreateWorkspaceBuildRequest) (WorkspaceBuild, error)

CreateWorkspaceBuild queues a new build to occur for a workspace.

func (*Client) DeleteParameter

func (c *Client) DeleteParameter(ctx context.Context, scope ParameterScope, id uuid.UUID, name string) error

func (*Client) DeleteTemplate added in v0.4.0

func (c *Client) DeleteTemplate(ctx context.Context, template uuid.UUID) error

func (*Client) DialWorkspaceAgent

func (c *Client) DialWorkspaceAgent(ctx context.Context, agentID uuid.UUID, options *peer.ConnOptions) (*agent.Conn, error)

DialWorkspaceAgent creates a connection to the specified resource.

func (*Client) Download

func (c *Client) Download(ctx context.Context, hash string) ([]byte, string, error)

Download fetches a file by uploaded hash.

func (*Client) GetUsers added in v0.4.3

func (c *Client) GetUsers(ctx context.Context) ([]User, error)

func (*Client) GitSSHKey added in v0.4.0

func (c *Client) GitSSHKey(ctx context.Context, userID uuid.UUID) (GitSSHKey, error)

GitSSHKey returns the user's git SSH public key.

func (*Client) HasFirstUser

func (c *Client) HasFirstUser(ctx context.Context) (bool, error)

HasFirstUser returns whether the first user has been created.

func (*Client) ListenProvisionerDaemon

func (c *Client) ListenProvisionerDaemon(ctx context.Context) (proto.DRPCProvisionerDaemonClient, error)

ListenProvisionerDaemon returns the gRPC service for a provisioner daemon implementation.

func (*Client) ListenWorkspaceAgent

func (c *Client) ListenWorkspaceAgent(ctx context.Context, logger slog.Logger) (*peerbroker.Listener, error)

ListenWorkspaceAgent connects as a workspace agent identifying with the session token. On each inbound connection request, connection info is fetched.

func (*Client) LoginWithPassword

LoginWithPassword creates a session token authenticating with an email and password. Call `SetSessionToken()` to apply the newly acquired token to the client.

func (*Client) Logout

func (c *Client) Logout(ctx context.Context) error

Logout calls the /logout API Call `ClearSessionToken()` to clear the session token of the client.

func (*Client) Organization

func (c *Client) Organization(ctx context.Context, id uuid.UUID) (Organization, error)

func (*Client) OrganizationByName

func (c *Client) OrganizationByName(ctx context.Context, userID uuid.UUID, name string) (Organization, error)

func (*Client) OrganizationsByUser

func (c *Client) OrganizationsByUser(ctx context.Context, userID uuid.UUID) ([]Organization, error)

OrganizationsByUser returns all organizations the user is a member of.

func (*Client) Parameters

func (c *Client) Parameters(ctx context.Context, scope ParameterScope, id uuid.UUID) ([]Parameter, error)

func (*Client) ProvisionerDaemonsByOrganization

func (c *Client) ProvisionerDaemonsByOrganization(ctx context.Context, organizationID uuid.UUID) ([]ProvisionerDaemon, error)

ProvisionerDaemonsByOrganization returns provisioner daemons available for an organization.

func (*Client) RegenerateGitSSHKey added in v0.4.0

func (c *Client) RegenerateGitSSHKey(ctx context.Context, userID uuid.UUID) (GitSSHKey, error)

RegenerateGitSSHKey will create a new SSH key pair for the user and return it.

func (*Client) Template added in v0.4.0

func (c *Client) Template(ctx context.Context, template uuid.UUID) (Template, error)

Template returns a single template.

func (*Client) TemplateByName added in v0.4.0

func (c *Client) TemplateByName(ctx context.Context, organizationID uuid.UUID, name string) (Template, error)

TemplateByName finds a template inside the organization provided with a case-insensitive name.

func (*Client) TemplateVersion added in v0.4.0

func (c *Client) TemplateVersion(ctx context.Context, id uuid.UUID) (TemplateVersion, error)

TemplateVersion returns a template version by ID.

func (*Client) TemplateVersionByName added in v0.4.0

func (c *Client) TemplateVersionByName(ctx context.Context, template uuid.UUID, name string) (TemplateVersion, error)

TemplateVersionByName returns a template version by it's friendly name. This is used for path-based routing. Like: /templates/example/versions/helloworld

func (*Client) TemplateVersionLogsAfter added in v0.4.0

func (c *Client) TemplateVersionLogsAfter(ctx context.Context, version uuid.UUID, after time.Time) (<-chan ProvisionerJobLog, error)

TemplateVersionLogsAfter streams logs for a template version that occurred after a specific time.

func (*Client) TemplateVersionLogsBefore added in v0.4.0

func (c *Client) TemplateVersionLogsBefore(ctx context.Context, version uuid.UUID, before time.Time) ([]ProvisionerJobLog, error)

TemplateVersionLogsBefore returns logs that occurred before a specific time.

func (*Client) TemplateVersionParameters added in v0.4.0

func (c *Client) TemplateVersionParameters(ctx context.Context, version uuid.UUID) ([]TemplateVersionParameter, error)

TemplateVersionParameters returns computed parameters for a template version.

func (*Client) TemplateVersionResources added in v0.4.0

func (c *Client) TemplateVersionResources(ctx context.Context, version uuid.UUID) ([]WorkspaceResource, error)

TemplateVersionResources returns resources a template version declares.

func (*Client) TemplateVersionSchema added in v0.4.0

func (c *Client) TemplateVersionSchema(ctx context.Context, version uuid.UUID) ([]TemplateVersionParameterSchema, error)

TemplateVersionSchema returns schemas for a template version by ID.

func (*Client) TemplateVersionsByTemplate added in v0.4.0

func (c *Client) TemplateVersionsByTemplate(ctx context.Context, template uuid.UUID) ([]TemplateVersion, error)

TemplateVersionsByTemplate lists versions associated with a template.

func (*Client) TemplatesByOrganization added in v0.4.0

func (c *Client) TemplatesByOrganization(ctx context.Context, organizationID uuid.UUID) ([]Template, error)

TemplatesByOrganization lists all templates inside of an organization.

func (*Client) UpdateActiveTemplateVersion added in v0.4.0

func (c *Client) UpdateActiveTemplateVersion(ctx context.Context, template uuid.UUID, req UpdateActiveTemplateVersion) error

UpdateActiveTemplateVersion updates the active template version to the ID provided. The template version must be attached to the template.

func (*Client) UpdateUserProfile added in v0.4.2

func (c *Client) UpdateUserProfile(ctx context.Context, userID uuid.UUID, req UpdateUserProfileRequest) (User, error)

UpdateUserProfile enables callers to update profile information

func (*Client) UpdateWorkspaceAutostart added in v0.4.1

func (c *Client) UpdateWorkspaceAutostart(ctx context.Context, id uuid.UUID, req UpdateWorkspaceAutostartRequest) error

UpdateWorkspaceAutostart sets the autostart schedule for workspace by id. If the provided schedule is empty, autostart is disabled for the workspace.

func (*Client) UpdateWorkspaceAutostop added in v0.4.1

func (c *Client) UpdateWorkspaceAutostop(ctx context.Context, id uuid.UUID, req UpdateWorkspaceAutostopRequest) error

UpdateWorkspaceAutostop sets the autostop schedule for workspace by id. If the provided schedule is empty, autostop is disabled for the workspace.

func (*Client) Upload

func (c *Client) Upload(ctx context.Context, contentType string, content []byte) (UploadResponse, error)

Upload uploads an arbitrary file with the content type provided. This is used to upload a source-code archive.

func (*Client) User

func (c *Client) User(ctx context.Context, id uuid.UUID) (User, error)

User returns a user for the ID provided. If the uuid is nil, the current user will be returned.

func (*Client) Workspace

func (c *Client) Workspace(ctx context.Context, id uuid.UUID) (Workspace, error)

Workspace returns a single workspace.

func (*Client) WorkspaceAgent added in v0.4.1

func (c *Client) WorkspaceAgent(ctx context.Context, id uuid.UUID) (WorkspaceAgent, error)

WorkspaceAgent returns an agent by ID.

func (*Client) WorkspaceBuild

func (c *Client) WorkspaceBuild(ctx context.Context, id uuid.UUID) (WorkspaceBuild, error)

WorkspaceBuild returns a single workspace build for a workspace. If history is "", the latest version is returned.

func (*Client) WorkspaceBuildByName

func (c *Client) WorkspaceBuildByName(ctx context.Context, workspace uuid.UUID, name string) (WorkspaceBuild, error)

func (*Client) WorkspaceBuildLogsAfter

func (c *Client) WorkspaceBuildLogsAfter(ctx context.Context, build uuid.UUID, after time.Time) (<-chan ProvisionerJobLog, error)

WorkspaceBuildLogsAfter streams logs for a workspace build that occurred after a specific time.

func (*Client) WorkspaceBuildLogsBefore

func (c *Client) WorkspaceBuildLogsBefore(ctx context.Context, build uuid.UUID, before time.Time) ([]ProvisionerJobLog, error)

WorkspaceBuildLogsBefore returns logs that occurred before a specific time.

func (*Client) WorkspaceBuilds

func (c *Client) WorkspaceBuilds(ctx context.Context, workspace uuid.UUID) ([]WorkspaceBuild, error)

func (*Client) WorkspaceByName

func (c *Client) WorkspaceByName(ctx context.Context, userID uuid.UUID, name string) (Workspace, error)

func (*Client) WorkspaceResource

func (c *Client) WorkspaceResource(ctx context.Context, id uuid.UUID) (WorkspaceResource, error)

func (*Client) WorkspaceResourcesByBuild

func (c *Client) WorkspaceResourcesByBuild(ctx context.Context, build uuid.UUID) ([]WorkspaceResource, error)

WorkspaceResourcesByBuild returns resources for a workspace build.

func (*Client) WorkspacesByUser

func (c *Client) WorkspacesByUser(ctx context.Context, userID uuid.UUID) ([]Workspace, error)

WorkspacesByUser returns all workspaces the specified user has access to.

type CreateFirstUserRequest

type CreateFirstUserRequest struct {
	Email            string `json:"email" validate:"required,email"`
	Username         string `json:"username" validate:"required,username"`
	Password         string `json:"password" validate:"required"`
	OrganizationName string `json:"organization" validate:"required,username"`
}

type CreateFirstUserResponse

type CreateFirstUserResponse struct {
	UserID         uuid.UUID `json:"user_id"`
	OrganizationID uuid.UUID `json:"organization_id"`
}

CreateFirstUserResponse contains IDs for newly created user info.

type CreateOrganizationRequest

type CreateOrganizationRequest struct {
	Name string `json:"name" validate:"required,username"`
}

type CreateParameterRequest

type CreateParameterRequest struct {
	Name              string                              `json:"name" validate:"required"`
	SourceValue       string                              `json:"source_value" validate:"required"`
	SourceScheme      database.ParameterSourceScheme      `json:"source_scheme" validate:"oneof=data,required"`
	DestinationScheme database.ParameterDestinationScheme `json:"destination_scheme" validate:"oneof=environment_variable provisioner_variable,required"`
}

CreateParameterRequest is used to create a new parameter value for a scope.

type CreateTemplateRequest added in v0.4.0

type CreateTemplateRequest struct {
	Name string `json:"name" validate:"username,required"`

	// VersionID is an in-progress or completed job to use as
	// an initial version of the template.
	//
	// This is required on creation to enable a user-flow of validating a
	// template works. There is no reason the data-model cannot support
	// empty templates, but it doesn't make sense for users.
	VersionID       uuid.UUID                `json:"template_version_id" validate:"required"`
	ParameterValues []CreateParameterRequest `json:"parameter_values"`
}

CreateTemplateRequest provides options when creating a template.

type CreateTemplateVersionRequest added in v0.4.0

type CreateTemplateVersionRequest struct {
	// TemplateID optionally associates a version with a template.
	TemplateID uuid.UUID `json:"template_id"`

	StorageMethod database.ProvisionerStorageMethod `json:"storage_method" validate:"oneof=file,required"`
	StorageSource string                            `json:"storage_source" validate:"required"`
	Provisioner   database.ProvisionerType          `json:"provisioner" validate:"oneof=terraform echo,required"`
	// ParameterValues allows for additional parameters to be provided
	// during the dry-run provision stage.
	ParameterValues []CreateParameterRequest `json:"parameter_values"`
}

CreateTemplateVersionRequest enables callers to create a new Template Version.

type CreateUserRequest

type CreateUserRequest struct {
	Email          string    `json:"email" validate:"required,email"`
	Username       string    `json:"username" validate:"required,username"`
	Password       string    `json:"password" validate:"required"`
	OrganizationID uuid.UUID `json:"organization_id" validate:"required"`
}

type CreateWorkspaceBuildRequest

type CreateWorkspaceBuildRequest struct {
	TemplateVersionID uuid.UUID                    `json:"template_version_id"`
	Transition        database.WorkspaceTransition `json:"transition" validate:"oneof=create start stop delete,required"`
	DryRun            bool                         `json:"dry_run"`
}

CreateWorkspaceBuildRequest provides options to update the latest workspace build.

type CreateWorkspaceRequest

type CreateWorkspaceRequest struct {
	TemplateID uuid.UUID `json:"template_id" validate:"required"`
	Name       string    `json:"name" validate:"username,required"`
	// ParameterValues allows for additional parameters to be provided
	// during the initial provision.
	ParameterValues []CreateParameterRequest `json:"parameter_values"`
}

CreateWorkspaceRequest provides options for creating a new workspace.

type Error

type Error struct {
	httpapi.Response
	// contains filtered or unexported fields
}

Error represents an unaccepted or invalid request to the API.

func (*Error) Error

func (e *Error) Error() string

func (*Error) StatusCode

func (e *Error) StatusCode() int

type GenerateAPIKeyResponse

type GenerateAPIKeyResponse struct {
	Key string `json:"key"`
}

GenerateAPIKeyResponse contains an API key for a user.

type GitSSHKey added in v0.4.0

type GitSSHKey struct {
	UserID    uuid.UUID `json:"user_id"`
	CreatedAt time.Time `json:"created_at"`
	UpdatedAt time.Time `json:"updated_at"`
	PublicKey string    `json:"public_key"`
}

type GoogleInstanceIdentityToken

type GoogleInstanceIdentityToken struct {
	JSONWebToken string `json:"json_web_token" validate:"required"`
}

type LoginWithPasswordRequest

type LoginWithPasswordRequest struct {
	Email    string `json:"email" validate:"required,email"`
	Password string `json:"password" validate:"required"`
}

LoginWithPasswordRequest enables callers to authenticate with email and password.

type LoginWithPasswordResponse

type LoginWithPasswordResponse struct {
	SessionToken string `json:"session_token" validate:"required"`
}

LoginWithPasswordResponse contains a session token for the newly authenticated user.

type Organization

type Organization struct {
	ID        uuid.UUID `json:"id" validate:"required"`
	Name      string    `json:"name" validate:"required"`
	CreatedAt time.Time `json:"created_at" validate:"required"`
	UpdatedAt time.Time `json:"updated_at" validate:"required"`
}

Organization is the JSON representation of a Coder organization.

type Parameter

type Parameter struct {
	ID                uuid.UUID                           `db:"id" json:"id"`
	CreatedAt         time.Time                           `db:"created_at" json:"created_at"`
	UpdatedAt         time.Time                           `db:"updated_at" json:"updated_at"`
	Scope             ParameterScope                      `db:"scope" json:"scope"`
	ScopeID           uuid.UUID                           `db:"scope_id" json:"scope_id"`
	Name              string                              `db:"name" json:"name"`
	SourceScheme      database.ParameterSourceScheme      `db:"source_scheme" json:"source_scheme"`
	DestinationScheme database.ParameterDestinationScheme `db:"destination_scheme" json:"destination_scheme"`
}

Parameter represents a set value for the scope.

type ParameterScope

type ParameterScope string
const (
	ParameterOrganization ParameterScope = "organization"
	ParameterTemplate     ParameterScope = "template"
	ParameterUser         ParameterScope = "user"
	ParameterWorkspace    ParameterScope = "workspace"
)

type ProvisionerDaemon

type ProvisionerDaemon database.ProvisionerDaemon

type ProvisionerJob

type ProvisionerJob struct {
	ID          uuid.UUID            `json:"id"`
	CreatedAt   time.Time            `json:"created_at"`
	StartedAt   *time.Time           `json:"started_at,omitempty"`
	CompletedAt *time.Time           `json:"completed_at,omitempty"`
	Error       string               `json:"error,omitempty"`
	Status      ProvisionerJobStatus `json:"status"`
	WorkerID    *uuid.UUID           `json:"worker_id,omitempty"`
}

type ProvisionerJobLog

type ProvisionerJobLog struct {
	ID        uuid.UUID          `json:"id"`
	CreatedAt time.Time          `json:"created_at"`
	Source    database.LogSource `json:"log_source"`
	Level     database.LogLevel  `json:"log_level"`
	Stage     string             `json:"stage"`
	Output    string             `json:"output"`
}

type ProvisionerJobStatus

type ProvisionerJobStatus string

ProvisionerJobStaus represents the at-time state of a job.

const (
	ProvisionerJobPending   ProvisionerJobStatus = "pending"
	ProvisionerJobRunning   ProvisionerJobStatus = "running"
	ProvisionerJobSucceeded ProvisionerJobStatus = "succeeded"
	ProvisionerJobCanceling ProvisionerJobStatus = "canceling"
	ProvisionerJobCanceled  ProvisionerJobStatus = "canceled"
	ProvisionerJobFailed    ProvisionerJobStatus = "failed"
)

type Template added in v0.4.0

type Template struct {
	ID                  uuid.UUID                `json:"id"`
	CreatedAt           time.Time                `json:"created_at"`
	UpdatedAt           time.Time                `json:"updated_at"`
	OrganizationID      uuid.UUID                `json:"organization_id"`
	Name                string                   `json:"name"`
	Provisioner         database.ProvisionerType `json:"provisioner"`
	ActiveVersionID     uuid.UUID                `json:"active_version_id"`
	WorkspaceOwnerCount uint32                   `json:"workspace_owner_count"`
}

Template is the JSON representation of a Coder template. This type matches the database object for now, but is abstracted for ease of change later on.

type TemplateVersion added in v0.4.0

type TemplateVersion struct {
	ID         uuid.UUID      `json:"id"`
	TemplateID *uuid.UUID     `json:"template_id,omitempty"`
	CreatedAt  time.Time      `json:"created_at"`
	UpdatedAt  time.Time      `json:"updated_at"`
	Name       string         `json:"name"`
	Job        ProvisionerJob `json:"job"`
}

TemplateVersion represents a single version of a template.

type TemplateVersionParameter added in v0.4.0

type TemplateVersionParameter parameter.ComputedValue

TemplateVersionParameter represents a computed parameter value.

type TemplateVersionParameterSchema added in v0.4.0

type TemplateVersionParameterSchema database.ParameterSchema

TemplateVersionParameterSchema represents a parameter parsed from template version source.

type UpdateActiveTemplateVersion added in v0.4.0

type UpdateActiveTemplateVersion struct {
	ID uuid.UUID `json:"id" validate:"required"`
}

type UpdateUserProfileRequest added in v0.4.2

type UpdateUserProfileRequest struct {
	Email    string  `json:"email" validate:"required,email"`
	Username string  `json:"username" validate:"required,username"`
	Name     *string `json:"name"`
}

type UpdateWorkspaceAutostartRequest added in v0.4.1

type UpdateWorkspaceAutostartRequest struct {
	Schedule string `json:"schedule"`
}

UpdateWorkspaceAutostartRequest is a request to update a workspace's autostart schedule.

type UpdateWorkspaceAutostopRequest added in v0.4.1

type UpdateWorkspaceAutostopRequest struct {
	Schedule string `json:"schedule"`
}

UpdateWorkspaceAutostopRequest is a request to update a workspace's autostop schedule.

type UploadResponse

type UploadResponse struct {
	Hash string `json:"hash"`
}

UploadResponse contains the hash to reference the uploaded file.

type User

type User struct {
	ID        uuid.UUID `json:"id" validate:"required"`
	Email     string    `json:"email" validate:"required"`
	CreatedAt time.Time `json:"created_at" validate:"required"`
	Username  string    `json:"username" validate:"required"`
	Name      string    `json:"name"`
}

User represents a user in Coder.

type Workspace

type Workspace struct {
	ID                uuid.UUID      `json:"id"`
	CreatedAt         time.Time      `json:"created_at"`
	UpdatedAt         time.Time      `json:"updated_at"`
	OwnerID           uuid.UUID      `json:"owner_id"`
	TemplateID        uuid.UUID      `json:"template_id"`
	TemplateName      string         `json:"template_name"`
	LatestBuild       WorkspaceBuild `json:"latest_build"`
	Outdated          bool           `json:"outdated"`
	Name              string         `json:"name"`
	AutostartSchedule string         `json:"autostart_schedule"`
	AutostopSchedule  string         `json:"autostop_schedule"`
}

Workspace is a per-user deployment of a template. It tracks template versions, and can be updated.

type WorkspaceAgent

type WorkspaceAgent struct {
	ID                   uuid.UUID            `json:"id"`
	CreatedAt            time.Time            `json:"created_at"`
	UpdatedAt            time.Time            `json:"updated_at"`
	FirstConnectedAt     *time.Time           `json:"first_connected_at,omitempty"`
	LastConnectedAt      *time.Time           `json:"last_connected_at,omitempty"`
	DisconnectedAt       *time.Time           `json:"disconnected_at,omitempty"`
	Status               WorkspaceAgentStatus `json:"status"`
	Name                 string               `json:"name"`
	ResourceID           uuid.UUID            `json:"resource_id"`
	InstanceID           string               `json:"instance_id,omitempty"`
	Architecture         string               `json:"architecture"`
	EnvironmentVariables map[string]string    `json:"environment_variables"`
	OperatingSystem      string               `json:"operating_system"`
	StartupScript        string               `json:"startup_script,omitempty"`
}

type WorkspaceAgentAuthenticateResponse

type WorkspaceAgentAuthenticateResponse struct {
	SessionToken string `json:"session_token"`
}

WorkspaceAgentAuthenticateResponse is returned when an instance ID has been exchanged for a session token.

type WorkspaceAgentInstanceMetadata

type WorkspaceAgentInstanceMetadata struct {
	JailOrchestrator   string `json:"jail_orchestrator"`
	OperatingSystem    string `json:"operating_system"`
	Platform           string `json:"platform"`
	PlatformFamily     string `json:"platform_family"`
	KernelVersion      string `json:"kernel_version"`
	KernelArchitecture string `json:"kernel_architecture"`
	Cloud              string `json:"cloud"`
	Jail               string `json:"jail"`
	VNC                bool   `json:"vnc"`
}

type WorkspaceAgentResourceMetadata

type WorkspaceAgentResourceMetadata struct {
	MemoryTotal uint64  `json:"memory_total"`
	DiskTotal   uint64  `json:"disk_total"`
	CPUCores    uint64  `json:"cpu_cores"`
	CPUModel    string  `json:"cpu_model"`
	CPUMhz      float64 `json:"cpu_mhz"`
}

type WorkspaceAgentStatus

type WorkspaceAgentStatus string
const (
	WorkspaceAgentConnecting   WorkspaceAgentStatus = "connecting"
	WorkspaceAgentConnected    WorkspaceAgentStatus = "connected"
	WorkspaceAgentDisconnected WorkspaceAgentStatus = "disconnected"
)

type WorkspaceBuild

type WorkspaceBuild struct {
	ID                uuid.UUID                    `json:"id"`
	CreatedAt         time.Time                    `json:"created_at"`
	UpdatedAt         time.Time                    `json:"updated_at"`
	WorkspaceID       uuid.UUID                    `json:"workspace_id"`
	TemplateVersionID uuid.UUID                    `json:"template_version_id"`
	BeforeID          uuid.UUID                    `json:"before_id"`
	AfterID           uuid.UUID                    `json:"after_id"`
	Name              string                       `json:"name"`
	Transition        database.WorkspaceTransition `json:"transition"`
	InitiatorID       uuid.UUID                    `json:"initiator_id"`
	Job               ProvisionerJob               `json:"job"`
}

WorkspaceBuild is an at-point representation of a workspace state. Iterate on before/after to determine a chronological history.

type WorkspaceResource

type WorkspaceResource struct {
	ID         uuid.UUID                    `json:"id"`
	CreatedAt  time.Time                    `json:"created_at"`
	JobID      uuid.UUID                    `json:"job_id"`
	Transition database.WorkspaceTransition `json:"workspace_transition"`
	Type       string                       `json:"type"`
	Name       string                       `json:"name"`
	Agents     []WorkspaceAgent             `json:"agents,omitempty"`
}

Jump to

Keyboard shortcuts

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