Files
run/protocol/control.go
T

105 lines
4.3 KiB
Go

package protocol
import "time"
const (
RunControlEventTypeReady = "control.ready"
RunControlEventTypeHeartbeat = "control.heartbeat"
RunControlEventTypeJobChanged = "job.changed"
)
type RunCapacityReport struct {
MaxJobs int `json:"maxJobs"`
RunningJobs int `json:"runningJobs"`
QueuedJobs int `json:"queuedJobs"`
Summary string `json:"summary,omitempty"`
}
type RunCapabilityReport struct {
Capabilities []string `json:"capabilities"`
Fingerprint string `json:"fingerprint"`
}
type RunHelloRequest struct {
RegistrationToken string `json:"registrationToken"`
RunEndpointID string `json:"runEndpointId"`
ServerInstanceID string `json:"serverInstanceId,omitempty"`
PluginID string `json:"pluginId,omitempty"`
ComponentKind string `json:"componentKind,omitempty"`
ComponentKey string `json:"componentKey,omitempty"`
KeyGeneration int `json:"keyGeneration,omitempty"`
DisplayName string `json:"displayName"`
Version string `json:"version"`
Status string `json:"status"`
Platform string `json:"platform,omitempty"`
Architecture string `json:"architecture,omitempty"`
UpdateJobID string `json:"updateJobId,omitempty"`
UpdateOutcome string `json:"updateOutcome,omitempty"`
CapabilityReport RunCapabilityReport `json:"capabilityReport"`
Capacity RunCapacityReport `json:"capacity"`
}
type RunHelloResponse struct {
Accepted bool `json:"accepted"`
RunEndpointID string `json:"runEndpointId"`
SessionToken string `json:"sessionToken"`
ServerTime time.Time `json:"serverTime"`
HeartbeatIntervalSeconds int `json:"heartbeatIntervalSeconds"`
SessionExpiresAt time.Time `json:"sessionExpiresAt"`
FeatureFlags []string `json:"featureFlags,omitempty"`
}
type RunHeartbeatRequest struct {
RunEndpointID string `json:"runEndpointId"`
SessionToken string `json:"sessionToken"`
Version string `json:"version"`
Status string `json:"status"`
CapabilityFingerprint string `json:"capabilityFingerprint"`
Capacity RunCapacityReport `json:"capacity"`
}
type RunHeartbeatResponse struct {
Accepted bool `json:"accepted"`
RunEndpointID string `json:"runEndpointId"`
NextHeartbeatSeconds int `json:"nextHeartbeatSeconds"`
RefreshCapabilities bool `json:"refreshCapabilities"`
ServerTime time.Time `json:"serverTime"`
}
type RunControlStreamRequest struct {
RunEndpointID string `json:"runEndpointId"`
SessionToken string `json:"sessionToken"`
LastEventSeq uint64 `json:"lastEventSeq,omitempty"`
}
type RunControlEvent struct {
RunEndpointID string `json:"runEndpointId"`
Sequence uint64 `json:"sequence"`
Type string `json:"type"`
ServerTime time.Time `json:"serverTime"`
RetrySeconds int `json:"retrySeconds,omitempty"`
}
type RunLifecycleReportRequest struct {
RunEndpointID string `json:"runEndpointId"`
SessionToken string `json:"sessionToken"`
ServerInstanceID string `json:"serverInstanceId"`
Capability string `json:"capability"`
State string `json:"state"`
Progress RunJobProgressReport `json:"progress"`
Message string `json:"message,omitempty"`
ErrorCode string `json:"errorCode,omitempty"`
ManagedProcessID string `json:"managedProcessId,omitempty"`
ObservationSeq uint64 `json:"observationSeq,omitempty"`
ObservedAt time.Time `json:"observedAt,omitempty"`
ExecutionResult RunJobExecutionResult `json:"executionResult,omitempty"`
}
type RunLifecycleReportResponse struct {
Accepted bool `json:"accepted"`
RunEndpointID string `json:"runEndpointId"`
ServerInstanceID string `json:"serverInstanceId"`
ProjectedState string `json:"projectedState,omitempty"`
ServerTime time.Time `json:"serverTime"`
}