Documentation
¶
Overview ¶
Package models - application data models
Index ¶
- func BuildStdinInputFromCommands(cmds []SessionInputCommand) ([]byte, error)
- func InstallDefaultServerConfigValues()
- func ParseIPCMessage(validator *validator.Validate, msg []byte) (interface{}, error)
- func RegisterWithValidator(v *validator.Validate) error
- type APIConfig
- type APIServerConfig
- type ApplicationConfig
- type BaseIPCMessage
- type BootStrapError
- type CairnConfig
- type EndpointConfig
- type HTTPClientAuthConfig
- type HTTPClientConfig
- type HTTPClientRetryConfig
- type HTTPRequestLogging
- type HTTPServerConfig
- type HTTPServerTimeoutConfig
- type IPCMessageEnvelope
- type IPCMessageReqRunCommands
- type IPCMessageReqStopSession
- type IPCMessageRespUniversal
- type IPCMessageTypeEnumType
- type MetricsConfig
- type MetricsFeatureConfig
- type PTYError
- type PersistenceConfig
- type PersistenceError
- type PostgresConfig
- type PostgresSSLConfig
- type RedisConnectionConfig
- type SQLiteConfig
- type Session
- type SessionCommand
- type SessionDriverDockerParams
- type SessionDriverPTYParams
- type SessionDriverTypeENUMType
- type SessionInputCommand
- type SessionInputCommandTypeENUMType
- type SessionManagerChangeOutputBufferCapError
- type SessionManagerStartSessionError
- type SessionManagerStopAllSessionsError
- type SessionManagerStopSessionError
- type SessionRunnerIPCProcessError
- type SessionRunnerModeTypeENUMType
- type SessionRunnerShutdownError
- type SessionRunnerStartUpError
- type SessionRunnerSubmitCommandError
- type SessionStateENUMType
- type ShutdownError
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func BuildStdinInputFromCommands ¶
func BuildStdinInputFromCommands(cmds []SessionInputCommand) ([]byte, error)
BuildStdinInputFromCommands build bytes slice to feed into STDIN from sequence of commands.
Commands are processed in order so callers can interleave text, control characters, and carriage returns (e.g. type a command then press ENTER). Each command is validated via IsValid; the returned error identifies the offending command index.
func InstallDefaultServerConfigValues ¶
func InstallDefaultServerConfigValues()
InstallDefaultServerConfigValues setup default server configs
NOTE: nothing may be registered under `cairn.*` here. A viper default materializes the key, mapstructure then allocates CairnConfig's pointers, and the `required_with=Enable` tags on them could never fire again.
func ParseIPCMessage ¶
ParseIPCMessage parse the IPC message based on type
func RegisterWithValidator ¶
RegisterWithValidator register with the validator this custom validation support
@param v *validator.Validate - the validator to register against @return whether successful
Types ¶
type APIConfig ¶
type APIConfig struct {
// Endpoint sets API endpoint related parameters
Endpoint EndpointConfig `mapstructure:"endPoint" json:"endPoint" validate:"required"`
// RequestLogging sets API request logging parameters
RequestLogging HTTPRequestLogging `mapstructure:"requestLogging" json:"requestLogging" validate:"required"`
// EnableMCP enable the MCP endpoint
EnableMCP bool `mapstructure:"enableMCP" json:"enableMCP"`
}
APIConfig defines API settings for a submodule
type APIServerConfig ¶
type APIServerConfig struct {
// Server defines HTTP server parameters
Server HTTPServerConfig `mapstructure:"service" json:"service" validate:"required"`
// APIs defines API settings for a submodule
APIs APIConfig `mapstructure:"apis" json:"apis" validate:"required"`
}
APIServerConfig defines HTTP API / server parameters
type ApplicationConfig ¶
type ApplicationConfig struct {
// Metrics metrics framework configuration
Metrics MetricsConfig `mapstructure:"metrics" json:"metrics" validate:"required"`
// API server config
API APIServerConfig `mapstructure:"api" json:"api" validate:"required"`
// Persistence application persistence config
Persistence PersistenceConfig `mapstructure:"persistence" json:"persistence" validate:"required"`
// Redis connection parameter
Redis RedisConnectionConfig `mapstructure:"redis" json:"redis" validate:"required"`
// Cairn cairn service integration config.
//
// Deliberately not `required`: that means "not the zero value", and a CairnConfig with
// Enable false and both pointers nil IS the zero value - which is the ordinary
// cairn-disabled deployment, not an invalid one.
Cairn CairnConfig `mapstructure:"cairn" json:"cairn"`
}
ApplicationConfig application config
type BaseIPCMessage ¶
type BaseIPCMessage struct {
// RequestID the ID of the request
RequestID string `json:"req_id" validate:"required"`
// Type message type
Type IPCMessageTypeEnumType `json:"type" validate:"required,ipc_msg_type"`
// Sender name of the sending entity
Sender string `json:"sender" validate:"required"`
// Timestamp message timestamp
Timestamp time.Time `json:"timestamp"`
}
BaseIPCMessage base IPC message object
type BootStrapError ¶
BootStrapError application boot strap error
func NewBootStrapError ¶
func NewBootStrapError(message string, core error, getCallStack bool) BootStrapError
NewBootStrapError builds a BootStrapError, optionally capturing the call stack.
type CairnConfig ¶ added in v0.3.1
type CairnConfig struct {
// Enable whether to enable the cairn integration
Enable bool `mapstructure:"enable" json:"enable"`
// BaseURL cairn API server base URL. rest-pty builds its endpoint paths from this.
//
// `omitempty` is load bearing, not decoration: `required_with` is one of the tags that
// runs even against a nil pointer, so when Enable is false it passes and hands off to the
// next tag — and `url` panics on any kind that is not a string. `omitempty` is what stops
// the chain there.
BaseURL *string `mapstructure:"baseURL" json:"baseURL,omitempty" validate:"required_with=Enable,omitempty,url"`
// Client HTTP client configuration used when connecting to cairn
Client *HTTPClientConfig `mapstructure:"client" json:"client,omitempty" validate:"required_with=Enable"`
}
CairnConfig cairn service integration config.
Optional: with Enable false rest-pty serves exactly as it did before cairn existed, and a session naming a workspace fails to start rather than silently running unmounted.
BaseURL and Client are pointers so their absence is meaningful, and both are `required_with=Enable` rather than `required`. That is also why nothing may be registered under `cairn.*` in InstallDefaultServerConfigValues: a viper default materializes the key, mapstructure then allocates the pointer, and `required_with` could never fire again.
type EndpointConfig ¶
type EndpointConfig struct {
// PathPrefix is the end-point path prefix for the APIs
PathPrefix string `mapstructure:"pathPrefix" json:"pathPrefix" validate:"required"`
}
EndpointConfig defines API endpoint config
type HTTPClientAuthConfig ¶ added in v0.3.1
type HTTPClientAuthConfig struct {
// IssuerURL OpenID provider issuer URL
IssuerURL string `mapstructure:"issuerURL" json:"issuerURL" validate:"required,url"`
// ClientID OAuth client ID
ClientID string `mapstructure:"clientID" json:"clientID" validate:"required"`
// ClientSecret OAuth client secret
ClientSecret string `mapstructure:"clientSecret" json:"clientSecret" validate:"required"`
// TargetAudience target audience `aud` to acquire a token for
TargetAudience string `mapstructure:"targetAudience" json:"targetAudience" validate:"required,url"`
}
HTTPClientAuthConfig HTTP client OAuth middleware configuration
Currently only support client-credential OAuth flow configuration
type HTTPClientConfig ¶ added in v0.3.1
type HTTPClientConfig struct {
// OAuth OAuth middleware integration configuration
OAuth *HTTPClientAuthConfig `mapstructure:"oauth,omitempty" json:"oauth,omitempty" validate:"omitempty"`
// Retry client retry configuration. See https://github.com/go-resty/resty#retries for details
Retry HTTPClientRetryConfig `mapstructure:"retry" json:"retry" validate:"required"`
}
HTTPClientConfig HTTP client config targeting `go-resty`
NOTE: neither field carries `dive`. `dive` is for slices and maps; on any other kind the validator panics outright ("dive error! can't dive on a non slice or map"). It is also unnecessary here — a nested struct, and a non-nil pointer to one, are descended into on their own.
type HTTPClientRetryConfig ¶ added in v0.3.1
type HTTPClientRetryConfig struct {
// MaxAttempts max number of retry attempts
MaxAttempts int `mapstructure:"maxAttempts" json:"maxAttempts" validate:"gte=0"`
// InitWaitTimeInSec wait time before the first wait retry
InitWaitTimeInSec uint32 `mapstructure:"initialWaitTimeInSec" json:"initialWaitTimeInSec" validate:"gte=1"`
// MaxWaitTimeInSec max wait time
MaxWaitTimeInSec uint32 `mapstructure:"maxWaitTimeInSec" json:"maxWaitTimeInSec" validate:"gte=1"`
}
HTTPClientRetryConfig HTTP client config retry configuration
func (HTTPClientRetryConfig) InitWaitTime ¶ added in v0.3.1
func (c HTTPClientRetryConfig) InitWaitTime() time.Duration
InitWaitTime convert InitWaitTimeInSec to time.Duration
func (HTTPClientRetryConfig) MaxWaitTime ¶ added in v0.3.1
func (c HTTPClientRetryConfig) MaxWaitTime() time.Duration
MaxWaitTime convert MaxWaitTimeInSec to time.Duration
type HTTPRequestLogging ¶
type HTTPRequestLogging struct {
// LogLevel output request logs at this level
LogLevel goutils.HTTPRequestLogLevel `mapstructure:"logLevel" json:"logLevel" validate:"oneof=warn info debug"`
// HealthLogLevel output health check logs at this level
HealthLogLevel goutils.HTTPRequestLogLevel `mapstructure:"healthLogLevel" json:"healthLogLevel" validate:"oneof=warn info debug"`
// RequestIDHeader is the HTTP header containing the API request ID
RequestIDHeader string `mapstructure:"requestIDHeader" json:"requestIDHeader"`
// DoNotLogHeaders is the list of headers to not include in logging metadata
DoNotLogHeaders []string `mapstructure:"skipHeaders" json:"skipHeaders"`
// LogRequestPayload whether to log request payload
LogRequestPayload bool `mapstructure:"logRequestPayload" json:"logRequestPayload"`
}
HTTPRequestLogging defines HTTP request logging parameters
type HTTPServerConfig ¶
type HTTPServerConfig struct {
// ListenOn is the interface the HTTP server will listen on
ListenOn string `mapstructure:"listenOn" json:"listenOn" validate:"required,ip"`
// Port is the port the HTTP server will listen on
Port uint16 `mapstructure:"appPort" json:"appPort" validate:"required,gt=0,lt=65536"`
// Timeouts sets the HTTP timeout settings
Timeouts HTTPServerTimeoutConfig `mapstructure:"timeoutSecs" json:"timeoutSecs" validate:"required"`
}
HTTPServerConfig defines the HTTP server parameters
type HTTPServerTimeoutConfig ¶
type HTTPServerTimeoutConfig struct {
// ReadTimeout is the maximum duration for reading the entire
// request, including the body in seconds. A zero or negative
// value means there will be no timeout.
ReadTimeout int `mapstructure:"read" json:"read" validate:"gte=0"`
// WriteTimeout is the maximum duration before timing out
// writes of the response in seconds. A zero or negative value
// means there will be no timeout.
WriteTimeout int `mapstructure:"write" json:"write" validate:"gte=0"`
// IdleTimeout is the maximum amount of time to wait for the
// next request when keep-alives are enabled in seconds. If
// IdleTimeout is zero, the value of ReadTimeout is used. If
// both are zero, there is no timeout.
IdleTimeout int `mapstructure:"idle" json:"idle" validate:"gte=0"`
}
HTTPServerTimeoutConfig defines the timeout settings for HTTP server
type IPCMessageEnvelope ¶
type IPCMessageEnvelope interface {
// StringPayload return its payload as a string
StringPayload() (string, error)
}
IPCMessageEnvelope type erased IPC message object
type IPCMessageReqRunCommands ¶
type IPCMessageReqRunCommands struct {
BaseIPCMessage
// Commands the list of commands to send to the session
Commands []SessionInputCommand `json:"commands" validate:"required,gte=1,dive"`
}
IPCMessageReqRunCommands run user commands request
func (IPCMessageReqRunCommands) StringPayload ¶
func (m IPCMessageReqRunCommands) StringPayload() (string, error)
StringPayload return its payload as a string
type IPCMessageReqStopSession ¶
type IPCMessageReqStopSession struct {
BaseIPCMessage
// Blocking whether the request is a blocking request
Blocking bool `json:"blocking"`
}
IPCMessageReqStopSession stop a session
func (IPCMessageReqStopSession) StringPayload ¶
func (m IPCMessageReqStopSession) StringPayload() (string, error)
StringPayload return its payload as a string
type IPCMessageRespUniversal ¶
type IPCMessageRespUniversal struct {
BaseIPCMessage
// Success whether the request is processed successfully
Success bool `json:"success"`
// ErrorMsg in case of failure, an accompanying error message
ErrorMsg *string `json:"error,omitempty"`
}
IPCMessageRespUniversal universal response for requests which don't need special response structs.
func (IPCMessageRespUniversal) StringPayload ¶
func (m IPCMessageRespUniversal) StringPayload() (string, error)
StringPayload return its payload as a string
type IPCMessageTypeEnumType ¶
type IPCMessageTypeEnumType string
IPCMessageTypeEnumType IPC message type ENUM
const ( // IPCMsgTypeReqRunCommands user request run commands IPCMsgTypeReqRunCommands IPCMessageTypeEnumType = "IPC_REQ_RUN_COMMANDS" // IPCMsgTypeReqStopSession user request stopping a session IPCMsgTypeReqStopSession IPCMessageTypeEnumType = "IPC_REQ_STOP_SESSION" // IPCMsgTypeRespRunCommands response to run user commands IPCMsgTypeRespRunCommands IPCMessageTypeEnumType = "IPC_RESP_RUN_COMMANDS" // IPCMsgTypeRespStopSession response to session stop request IPCMsgTypeRespStopSession IPCMessageTypeEnumType = "IPC_RESP_STOP_SESSION" )
func (IPCMessageTypeEnumType) Values ¶ added in v0.3.0
func (IPCMessageTypeEnumType) Values() []IPCMessageTypeEnumType
Values all valid IPCMessageTypeEnumType values
type MetricsConfig ¶
type MetricsConfig struct {
// Server defines HTTP server parameters
Server HTTPServerConfig `mapstructure:"service" json:"service" validate:"required"`
// MetricsEndpoint path to host the Prometheus metrics endpoint
MetricsEndpoint string `mapstructure:"metricsEndpoint" json:"metricsEndpoint" validate:"required"`
// MaxRequests max number of metrics requests in parallel to support
MaxRequests int `mapstructure:"maxRequests" json:"maxRequests" validate:"gte=1"`
// Features metrics framework features to enable
Features MetricsFeatureConfig `mapstructure:"features" json:"features" validate:"required"`
}
MetricsConfig application metrics config
type MetricsFeatureConfig ¶
type MetricsFeatureConfig struct {
// EnableAppMetrics whether to enable Golang application metrics
EnableAppMetrics bool `mapstructure:"enableAppMetrics" json:"enableAppMetrics"`
// EnableHTTPMetrics whether to enable HTTP request tracking metrics
EnableHTTPMetrics bool `mapstructure:"enableHTTPMetrics" json:"enableHTTPMetrics"`
}
MetricsFeatureConfig metrics framework features config
type PersistenceConfig ¶ added in v0.3.1
type PersistenceConfig struct {
// SQLite persistence config
SQLite *SQLiteConfig `mapstructure:"sqlite,omitempty" json:"sqlite,omitempty" validate:"required_without=Postgres"`
// Postgres persistence config
Postgres *PostgresConfig `mapstructure:"postgres,omitempty" json:"postgres,omitempty" validate:"required_without=SQLite"`
}
PersistenceConfig application persistence config
type PersistenceError ¶
PersistenceError error encountered with persistence
func NewPersistenceError ¶
func NewPersistenceError(message string, core error, getCallStack bool) PersistenceError
NewPersistenceError builds a PersistenceError, optionally capturing the call stack.
type PostgresConfig ¶ added in v0.3.1
type PostgresConfig struct {
// DebugLog whether to output ORM layer debug logs
DebugLog bool `mapstructure:"debugLog" json:"debugLog"`
// Host Postgres server host
Host string `mapstructure:"host" json:"host" validate:"required"`
// Port Postgres server port
Port uint16 `mapstructure:"port" json:"port" validate:"lte=65535,gte=0"`
// Database the specific database to use
Database string `mapstructure:"db" json:"db" validate:"required"`
// User the user to connect with
User string `mapstructure:"user" json:"user" validate:"required"`
// Password the user password
Password *string `json:"-" validate:"-"`
// SSL the connection SSL settings
SSL PostgresSSLConfig `mapstructure:"ssl" json:"ssl" validate:"required"`
}
PostgresConfig Postgres connection config
type PostgresSSLConfig ¶ added in v0.3.1
type PostgresSSLConfig struct {
// Enabled whether to enable SSL when connecting to Postgres
Enabled bool `mapstructure:"enabled" json:"enabled"`
// CAFile the CA cert file to challenge remote with
CAFile *string `mapstructure:"caFile" json:"caFile,omitempty" validate:"omitempty,file"`
}
PostgresSSLConfig Postgres connection SSL config
type RedisConnectionConfig ¶
type RedisConnectionConfig struct {
// Host of the server
Host string `mapstructure:"host" json:"host" validate:"required"`
// Port of the server
Port uint16 `mapstructure:"port" json:"port"`
// DBNumber number of the REDIS database
DBNumber uint32 `mapstructure:"dbNumber" json:"dbNumber" validate:"lte=15"`
}
RedisConnectionConfig connection parameter to Redis server
type SQLiteConfig ¶
type SQLiteConfig struct {
// DBFile the SQLite DB file path
DBFile string `mapstructure:"file" json:"file" validate:"required"`
}
SQLiteConfig SQLite persistence config
type Session ¶
type Session struct {
// ID PTY session ID
ID string `json:"id" gorm:"column:id;primaryKey;unique" validate:"required"`
// Name for the session, can only contain alphanumeric characters and -
Name string `` /* 166-byte string literal not displayed */
// Description an optional description for the session
Description *string `json:"description" gorm:"column:description;default:null" jsonschema:"an optional description for the session"`
// Command being executed by the session
Command SessionCommand `json:"command" gorm:"column:command;not null" validate:"required" jsonschema:"command being executed by the session"`
// State of the session
State SessionStateENUMType `` /* 128-byte string literal not displayed */
// DriverType indicate which driver the session uses
DriverType SessionDriverTypeENUMType `` /* 135-byte string literal not displayed */
// DriverMetadata metadata relating to the session driver
DriverMetadata datatypes.JSON `json:"driver_metadata,omitempty" gorm:"column:driver_metadata;default:null" swaggertype:"string"`
// WorkspaceName the cairn workspace assigned to the session. Only valid for DOCKER driver
// sessions - a PTY session runs against the host filesystem, so there is no container to
// mount a workspace volume into. Nil when no workspace is assigned.
//
// This is the name cairn holds, not a resolved workspace: rest-pty is a mount-only cairn
// client, so it stores the name it was given and never derives the volume name or touches
// the workspace lifecycle itself.
WorkspaceName *string `` /* 206-byte string literal not displayed */
// OutputBufferCapacity buffering capacity for holding command output history
OutputBufferCapacity int64 `` /* 148-byte string literal not displayed */
// SessionRunnerModeTypeENUMType session runner operating mode
RunnerMode SessionRunnerModeTypeENUMType `` /* 141-byte string literal not displayed */
// CreatedAt entry creation timestamp
CreatedAt time.Time `json:"created_at"`
// UpdatedAt entry update timestamp
UpdatedAt time.Time `json:"updated_at"`
}
Session one PTY session running a command with arguments
func (Session) ParseDriverMetadata ¶
ParseDriverMetadata parse driver metadata based on driver type
func (Session) ValidNextState ¶
func (s Session) ValidNextState(newState SessionStateENUMType) error
ValidNextState verify the session can transition to new state
type SessionCommand ¶
type SessionCommand struct {
// Command the command being run
Command string `json:"cmd" validate:"required" jsonschema:"the command being run"`
// Arguments the arguments passed to the command
Arguments []string `json:"args" jsonschema:"the arguments passed to the command"`
}
SessionCommand the command being executed by the session
func (*SessionCommand) Scan ¶
func (c *SessionCommand) Scan(value interface{}) error
Scan scan value into Jsonb, implements sql.Scanner interface
type SessionDriverDockerParams ¶
type SessionDriverDockerParams goutilsRuntime.DockerRuntimeParams
SessionDriverDockerParams parameters for docker-container session drivers.
The container is run interactively with a TTY (mirroring the PTY driver), hardened by default (read-only rootfs, all capabilities dropped, no-new-privileges) and isolated from the network. Sessions that need to accept inbound connections must select a routable NetworkMode and declare PublishPorts.
type SessionDriverPTYParams ¶
type SessionDriverPTYParams struct {
// DisplayRows PTY number of rows (in cells).
DisplayRows uint16 `json:"display_rows" validate:"gte=30" jsonschema:"PTY number of rows (in cells)"`
// DisplayCol PTY number of columns (in cells).
DisplayCols uint16 `json:"display_cols" validate:"gte=80" jsonschema:"PTY number of columns (in cells)"`
}
SessionDriverPTYParams parameters for PTY session drivers
type SessionDriverTypeENUMType ¶
type SessionDriverTypeENUMType string
SessionDriverTypeENUMType session driver type ENUM type
const ( // SessionDriverTypePTY using PTY as session driver SessionDriverTypePTY SessionDriverTypeENUMType = "PTY" // SessionDriverTypeDocker using a docker container as session driver SessionDriverTypeDocker SessionDriverTypeENUMType = "DOCKER" )
func (SessionDriverTypeENUMType) Values ¶ added in v0.2.0
func (SessionDriverTypeENUMType) Values() []SessionDriverTypeENUMType
Values all valid SessionDriverTypeENUMType values
type SessionInputCommand ¶
type SessionInputCommand struct {
// Type session input command type
Type SessionInputCommandTypeENUMType `` /* 857-byte string literal not displayed */
/*
Content command content if needed
For `TEXT` type, the content is the text to write to STDIN.
For `CTRL` type, the content is the control character (e.g. C for CTRL+C, etc.).
For `ENTRY` type, the content is ignored
For `RAW` type, the content is the raw input byte slice (direct capture of
keyboard presses, including ANSI characters, escape sequences, and control
characters) in Base64 encoding.
*/
Content *string `` /* 603-byte string literal not displayed */
}
SessionInputCommand session input command object
func (SessionInputCommand) IsValid ¶
func (c SessionInputCommand) IsValid() error
IsValid validates the command's Content against its Type, returning a BadInputError describing the first problem found or nil when well formed.
It is the single source of truth for command validity: it is invoked by the struct-level validator registered against SessionInputCommand, and used as a defensive guard by BuildStdinInputFromCommands.
type SessionInputCommandTypeENUMType ¶
type SessionInputCommandTypeENUMType string
SessionInputCommandTypeENUMType session input command type ENUM
const ( // SessionInputCommandTypeText text input to STDIN SessionInputCommandTypeText SessionInputCommandTypeENUMType = "TEXT" // SessionInputCommandTypeCTRL CTRL character input to STDIN SessionInputCommandTypeCTRL SessionInputCommandTypeENUMType = "CTRL" // SessionInputCommandTypeCR carriage return input to STDIN SessionInputCommandTypeCR SessionInputCommandTypeENUMType = "ENTER" // SessionInputCommandTypeRaw raw input data to STDIN. The content is a // Base64-encoded byte slice capturing keyboard presses verbatim, including // ANSI characters, escape sequences, and control characters. SessionInputCommandTypeRaw SessionInputCommandTypeENUMType = "RAW" )
func (SessionInputCommandTypeENUMType) Values ¶ added in v0.2.0
func (SessionInputCommandTypeENUMType) Values() []SessionInputCommandTypeENUMType
Values all valid SessionInputCommandTypeENUMType values
type SessionManagerChangeOutputBufferCapError ¶
SessionManagerChangeOutputBufferCapError error session manager change session output buffer capacity
func NewSessionManagerChangeOutputBufferCapError ¶
func NewSessionManagerChangeOutputBufferCapError( message string, core error, getCallStack bool, ) SessionManagerChangeOutputBufferCapError
NewSessionManagerChangeOutputBufferCapError builds a SessionManagerChangeOutputBufferCapError, optionally capturing the call stack.
type SessionManagerStartSessionError ¶
SessionManagerStartSessionError error session manager start session runner
func NewSessionManagerStartSessionError ¶
func NewSessionManagerStartSessionError( message string, core error, getCallStack bool, ) SessionManagerStartSessionError
NewSessionManagerStartSessionError builds a SessionManagerStartSessionError, optionally capturing the call stack.
type SessionManagerStopAllSessionsError ¶
SessionManagerStopAllSessionsError error session manager bulk stop session runners
func NewSessionManagerStopAllSessionsError ¶
func NewSessionManagerStopAllSessionsError( message string, core error, getCallStack bool, ) SessionManagerStopAllSessionsError
NewSessionManagerStopAllSessionsError builds a SessionManagerStopAllSessionsError, optionally capturing the call stack.
type SessionManagerStopSessionError ¶
SessionManagerStopSessionError error session manager stop session runner
func NewSessionManagerStopSessionError ¶
func NewSessionManagerStopSessionError( message string, core error, getCallStack bool, ) SessionManagerStopSessionError
NewSessionManagerStopSessionError builds a SessionManagerStopSessionError, optionally capturing the call stack.
type SessionRunnerIPCProcessError ¶
SessionRunnerIPCProcessError error session runner encountered processing IPC messages
func NewSessionRunnerIPCProcessError ¶
func NewSessionRunnerIPCProcessError( message string, core error, getCallStack bool, ) SessionRunnerIPCProcessError
NewSessionRunnerIPCProcessError builds a SessionRunnerIPCProcessError, optionally capturing the call stack.
type SessionRunnerModeTypeENUMType ¶
type SessionRunnerModeTypeENUMType string
SessionRunnerModeTypeENUMType session runner operating mode type ENUM
const ( // SessionRunnerModeTypeCommanded session runner operates by taking commands from user // and feeding it to the session under control. SessionRunnerModeTypeCommanded SessionRunnerModeTypeENUMType = "COMMANDED" // SessionRunnerModeTypeByPassed session runner will ignore commands from user // and allow user to directly interact with the session under control SessionRunnerModeTypeByPassed SessionRunnerModeTypeENUMType = "BY_PASSED" )
func (SessionRunnerModeTypeENUMType) Values ¶ added in v0.2.0
func (SessionRunnerModeTypeENUMType) Values() []SessionRunnerModeTypeENUMType
Values all valid SessionRunnerModeTypeENUMType values
type SessionRunnerShutdownError ¶
SessionRunnerShutdownError error during session runner `StopSession`
func NewSessionRunnerShutdownError ¶
func NewSessionRunnerShutdownError( message string, core error, getCallStack bool, ) SessionRunnerShutdownError
NewSessionRunnerShutdownError builds a SessionRunnerShutdownError, optionally capturing the call stack.
type SessionRunnerStartUpError ¶
SessionRunnerStartUpError error during session runner `StartSession`
func NewSessionRunnerStartUpError ¶
func NewSessionRunnerStartUpError( message string, core error, getCallStack bool, ) SessionRunnerStartUpError
NewSessionRunnerStartUpError builds a SessionRunnerStartUpError, optionally capturing the call stack.
type SessionRunnerSubmitCommandError ¶
SessionRunnerSubmitCommandError error when session runner submit commands to driver
func NewSessionRunnerSubmitCommandError ¶
func NewSessionRunnerSubmitCommandError( message string, core error, getCallStack bool, ) SessionRunnerSubmitCommandError
NewSessionRunnerSubmitCommandError builds a SessionRunnerSubmitCommandError, optionally capturing the call stack.
type SessionStateENUMType ¶
type SessionStateENUMType string
SessionStateENUMType session state ENUM value type
const ( // SessionStateIdle session is idle SessionStateIdle SessionStateENUMType = "IDLE" // SessionStateReady session is running and ready to accept input SessionStateReady SessionStateENUMType = "READY" )
func (SessionStateENUMType) Values ¶ added in v0.2.0
func (SessionStateENUMType) Values() []SessionStateENUMType
Values all valid SessionStateENUMType values
type ShutdownError ¶
ShutdownError application shutdown error
func NewShutdownError ¶
func NewShutdownError(message string, core error, getCallStack bool) ShutdownError
NewShutdownError builds a ShutdownError, optionally capturing the call stack.