codersdk

package
v0.3.5 Latest Latest
Warning

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

Go to latest
Published: Apr 5, 2022 License: AGPL-3.0 Imports: 28 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 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) 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) CancelProjectVersion

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

CancelProjectVersion marks a project 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) CreateProject

func (c *Client) CreateProject(ctx context.Context, organizationID uuid.UUID, request CreateProjectRequest) (Project, error)

CreateProject creates a new project inside an organization.

func (*Client) CreateProjectVersion

func (c *Client) CreateProjectVersion(ctx context.Context, organizationID uuid.UUID, req CreateProjectVersionRequest) (ProjectVersion, error)

CreateProjectVersion processes source-code and optionally associates the version with a project. Executing without a project 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 project 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) DeleteProject

func (c *Client) DeleteProject(ctx context.Context, project uuid.UUID) error

func (*Client) DialWorkspaceAgent

func (c *Client) DialWorkspaceAgent(ctx context.Context, resource uuid.UUID, iceServers []webrtc.ICEServer, opts *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) 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, opts *peer.ConnOptions) (*peerbroker.Listener, error)

ListenWorkspaceAgent connects as a workspace agent. It obtains the agent ID based off the session token.

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) Project

func (c *Client) Project(ctx context.Context, project uuid.UUID) (Project, error)

Project returns a single project.

func (*Client) ProjectByName

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

ProjectByName finds a project inside the organization provided with a case-insensitive name.

func (*Client) ProjectVersion

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

ProjectVersion returns a project version by ID.

func (*Client) ProjectVersionByName

func (c *Client) ProjectVersionByName(ctx context.Context, project uuid.UUID, name string) (ProjectVersion, error)

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

func (*Client) ProjectVersionLogsAfter

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

ProjectVersionLogsAfter streams logs for a project version that occurred after a specific time.

func (*Client) ProjectVersionLogsBefore

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

ProjectVersionLogsBefore returns logs that occurred before a specific time.

func (*Client) ProjectVersionParameters

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

ProjectVersionParameters returns computed parameters for a project version.

func (*Client) ProjectVersionResources

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

ProjectVersionResources returns resources a project version declares.

func (*Client) ProjectVersionSchema

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

ProjectVersionSchema returns schemas for a project version by ID.

func (*Client) ProjectVersionsByProject

func (c *Client) ProjectVersionsByProject(ctx context.Context, project uuid.UUID) ([]ProjectVersion, error)

ProjectVersionsByProject lists versions associated with a project.

func (*Client) ProjectsByOrganization

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

ProjectsByOrganization lists all projects inside of an organization.

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) UpdateActiveProjectVersion

func (c *Client) UpdateActiveProjectVersion(ctx context.Context, project uuid.UUID, req UpdateActiveProjectVersion) error

UpdateActiveProjectVersion updates the active project version to the ID provided. The project version must be attached to the project.

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) 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 CreateProjectRequest

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

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

CreateProjectRequest provides options when creating a project.

type CreateProjectVersionRequest

type CreateProjectVersionRequest struct {
	// ProjectID optionally associates a version with a project.
	ProjectID uuid.UUID `json:"project_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"`
}

CreateProjectVersionRequest enables callers to create a new Project 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 {
	ProjectVersionID uuid.UUID                    `json:"project_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 {
	ProjectID uuid.UUID `json:"project_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 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"
	ParameterProject      ParameterScope = "project"
	ParameterUser         ParameterScope = "user"
	ParameterWorkspace    ParameterScope = "workspace"
)

type Project

type Project 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"`
}

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

type ProjectVersion

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

ProjectVersion represents a single version of a project.

type ProjectVersionParameter

type ProjectVersionParameter parameter.ComputedValue

ProjectVersionParameter represents a computed parameter value.

type ProjectVersionParameterSchema

type ProjectVersionParameterSchema database.ParameterSchema

ProjectVersionParameterSchema represents a parameter parsed from project version source.

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 UpdateActiveProjectVersion

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

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"`
}

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"`
	ProjectID   uuid.UUID      `json:"project_id"`
	ProjectName string         `json:"project_name"`
	LatestBuild WorkspaceBuild `json:"latest_build"`
	Outdated    bool           `json:"outdated"`
	Name        string         `json:"name"`
}

Workspace is a per-user deployment of a project. It tracks project 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"`
	ResourceID           uuid.UUID            `json:"resource_id"`
	InstanceID           string               `json:"instance_id,omitempty"`
	EnvironmentVariables map[string]string    `json:"environment_variables"`
	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 (
	WorkspaceAgentWaiting      WorkspaceAgentStatus = "waiting"
	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"`
	ProjectVersionID uuid.UUID                    `json:"project_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"`
	Address    string                       `json:"address"`
	Type       string                       `json:"type"`
	Name       string                       `json:"name"`
	Agent      *WorkspaceAgent              `json:"agent,omitempty"`
}

Jump to

Keyboard shortcuts

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