Documentation
¶
Index ¶
- Constants
- Variables
- func ValidateEnvLifecycleRequest(req EnvLifecycleRequest) error
- func ValidateEnvProfileDeleteRequest(req EnvProfileDeleteRequest) error
- func ValidateEnvProfileUpsertRequest(req EnvProfileUpsertRequest) error
- func ValidateOpenSessionRequest(req OpenSessionRequest) error
- func ValidatePairingCompleteRequest(req PairingCompleteRequest) error
- func ValidateProtocolVersion(version string) error
- type CatalogRequest
- type CatalogResponse
- type ConnectArtifactKind
- type DiagnosticsHint
- type EnvLifecycleOperation
- type EnvLifecycleRequest
- type EnvLifecycleResponse
- type EnvLifecycleState
- type EnvProfileAccessRoute
- type EnvProfileAccessRouteKind
- type EnvProfileControlOwner
- type EnvProfileDeleteRequest
- type EnvProfileDeleteResponse
- type EnvProfileInput
- type EnvProfileSSHSecret
- type EnvProfileUpsertRequest
- type EnvProfileUpsertResponse
- type Environment
- type EnvironmentCapability
- type EnvironmentKind
- type EnvironmentOrigin
- type EnvironmentOriginKind
- type EnvironmentProfile
- type EnvironmentState
- type ErrorEnvelope
- type GatewayCapability
- type GatewayConnectArtifact
- type GatewayErrorCode
- type GatewayMetadata
- type GatewayStatus
- type OpenSessionRequest
- type OpenSessionResponse
- type PairingChallengeRequest
- type PairingChallengeResponse
- type PairingCompleteRequest
- type PairingCompleteResponse
- type RequestedCapability
Constants ¶
View Source
const ( Version = "redeven-gateway-v1" ReservedLocalEnvironmentID = "env_local" )
View Source
const ( EnvProfileSSHSecretModeKeep = "keep" EnvProfileSSHSecretModeReplace = "replace" EnvProfileSSHSecretModeClear = "clear" )
Variables ¶
View Source
var ( ErrUnsupportedProtocolVersion = errors.New("unsupported protocol_version") ErrMissingGatewayEnvID = errors.New("gateway_env_id is required") ErrMissingRequestedCapability = errors.New("requested_capability is required") ErrMissingClientNonce = errors.New("client_nonce is required") ErrMissingDisplayName = errors.New("display_name is required") ErrMissingAccessRoute = errors.New("access_route is required") ErrMissingLifecycleOperation = errors.New("operation is required") ErrInvalidSSHSecretMode = errors.New("ssh_secret.mode is invalid") ErrSSHSecretUnsupported = errors.New("ssh_secret is not supported") ErrInvalidAccessRouteFields = errors.New("access_route contains fields outside its kind") ErrInvalidSSHAuthMode = errors.New("access_route.auth_mode is invalid") ErrSSHPasswordAuthUnsupported = errors.New("ssh password auth is not supported") ErrInvalidClientCapability = errors.New("client_capability is invalid") )
Functions ¶
func ValidateEnvLifecycleRequest ¶
func ValidateEnvLifecycleRequest(req EnvLifecycleRequest) error
func ValidateEnvProfileDeleteRequest ¶
func ValidateEnvProfileDeleteRequest(req EnvProfileDeleteRequest) error
func ValidateEnvProfileUpsertRequest ¶
func ValidateEnvProfileUpsertRequest(req EnvProfileUpsertRequest) error
func ValidateOpenSessionRequest ¶
func ValidateOpenSessionRequest(req OpenSessionRequest) error
func ValidatePairingCompleteRequest ¶
func ValidatePairingCompleteRequest(req PairingCompleteRequest) error
func ValidateProtocolVersion ¶
Types ¶
type CatalogRequest ¶
type CatalogRequest struct {
ProtocolVersion string `json:"protocol_version,omitempty"`
}
type CatalogResponse ¶
type CatalogResponse struct {
ProtocolVersion string `json:"protocol_version"`
Gateway GatewayMetadata `json:"gateway"`
Environments []Environment `json:"environments"`
}
func NewCatalogResponse ¶
func NewCatalogResponse(gateway GatewayMetadata, environments []Environment) CatalogResponse
type ConnectArtifactKind ¶
type ConnectArtifactKind string
const ( ConnectArtifactKindLocalDirect ConnectArtifactKind = "local_direct_artifact" ConnectArtifactKindDesktopBridge ConnectArtifactKind = "desktop_bridge_artifact" )
type DiagnosticsHint ¶
type EnvLifecycleOperation ¶
type EnvLifecycleOperation string
const ( EnvLifecycleOperationStart EnvLifecycleOperation = "start" EnvLifecycleOperationStop EnvLifecycleOperation = "stop" EnvLifecycleOperationRestart EnvLifecycleOperation = "restart" EnvLifecycleOperationUpdateRuntime EnvLifecycleOperation = "update_runtime" )
type EnvLifecycleRequest ¶
type EnvLifecycleRequest struct {
ProtocolVersion string `json:"protocol_version,omitempty"`
GatewayEnvID string `json:"gateway_env_id"`
Operation EnvLifecycleOperation `json:"operation"`
}
func NormalizeEnvLifecycleRequest ¶
func NormalizeEnvLifecycleRequest(req EnvLifecycleRequest) EnvLifecycleRequest
type EnvLifecycleResponse ¶
type EnvLifecycleResponse struct {
ProtocolVersion string `json:"protocol_version"`
GatewayEnvID string `json:"gateway_env_id"`
Operation EnvLifecycleOperation `json:"operation"`
State EnvLifecycleState `json:"state"`
Message string `json:"message,omitempty"`
}
type EnvLifecycleState ¶
type EnvLifecycleState string
const ( EnvLifecycleStateAccepted EnvLifecycleState = "accepted" EnvLifecycleStateRunning EnvLifecycleState = "running" EnvLifecycleStateSucceeded EnvLifecycleState = "succeeded" EnvLifecycleStateFailed EnvLifecycleState = "failed" EnvLifecycleStateUnsupported EnvLifecycleState = "unsupported" )
type EnvProfileAccessRoute ¶
type EnvProfileAccessRoute struct {
Kind EnvProfileAccessRouteKind `json:"kind"`
URL string `json:"url,omitempty"`
OriginLabel string `json:"origin_label,omitempty"`
SSHDestination string `json:"ssh_destination,omitempty"`
SSHPort int `json:"ssh_port,omitempty"`
SSHAuthMode string `json:"auth_mode,omitempty"`
SSHPasswordConfigured bool `json:"ssh_password_configured,omitempty"`
SSHRuntimeRoot string `json:"ssh_runtime_root,omitempty"`
ContainerEngine string `json:"container_engine,omitempty"`
ContainerID string `json:"container_id,omitempty"`
ContainerRuntimeRoot string `json:"container_runtime_root,omitempty"`
// contains filtered or unexported fields
}
func (*EnvProfileAccessRoute) UnmarshalJSON ¶
func (route *EnvProfileAccessRoute) UnmarshalJSON(data []byte) error
type EnvProfileAccessRouteKind ¶
type EnvProfileAccessRouteKind string
const ( EnvProfileAccessRouteKindURL EnvProfileAccessRouteKind = "url" EnvProfileAccessRouteKindSSHHost EnvProfileAccessRouteKind = "ssh_host" EnvProfileAccessRouteKindSSHContainer EnvProfileAccessRouteKind = "ssh_container" )
type EnvProfileControlOwner ¶
type EnvProfileControlOwner string
const ( EnvProfileControlOwnerNone EnvProfileControlOwner = "none" EnvProfileControlOwnerGateway EnvProfileControlOwner = "gateway" )
type EnvProfileDeleteRequest ¶
type EnvProfileDeleteRequest struct {
ProtocolVersion string `json:"protocol_version,omitempty"`
GatewayEnvID string `json:"gateway_env_id"`
}
func NormalizeEnvProfileDeleteRequest ¶
func NormalizeEnvProfileDeleteRequest(req EnvProfileDeleteRequest) EnvProfileDeleteRequest
type EnvProfileInput ¶
type EnvProfileInput struct {
GatewayEnvID string `json:"gateway_env_id,omitempty"`
DisplayName string `json:"display_name"`
AccessRoute EnvProfileAccessRoute `json:"access_route"`
ControlOwner EnvProfileControlOwner `json:"control_owner,omitempty"`
SSHSecret *EnvProfileSSHSecret `json:"ssh_secret,omitempty"`
// contains filtered or unexported fields
}
func (*EnvProfileInput) UnmarshalJSON ¶
func (input *EnvProfileInput) UnmarshalJSON(data []byte) error
type EnvProfileSSHSecret ¶
type EnvProfileUpsertRequest ¶
type EnvProfileUpsertRequest struct {
ProtocolVersion string `json:"protocol_version,omitempty"`
Profile EnvProfileInput `json:"profile"`
}
func NormalizeEnvProfileUpsertRequest ¶
func NormalizeEnvProfileUpsertRequest(req EnvProfileUpsertRequest) EnvProfileUpsertRequest
type EnvProfileUpsertResponse ¶
type EnvProfileUpsertResponse struct {
ProtocolVersion string `json:"protocol_version"`
Environment Environment `json:"environment"`
}
type Environment ¶
type Environment struct {
GatewayEnvID string `json:"gateway_env_id"`
DisplayName string `json:"display_name"`
EnvKind EnvironmentKind `json:"env_kind"`
State EnvironmentState `json:"state"`
Capabilities []EnvironmentCapability `json:"capabilities"`
AccessCapabilities []EnvironmentCapability `json:"access_capabilities"`
ControlCapabilities []EnvironmentCapability `json:"control_capabilities"`
Profile *EnvironmentProfile `json:"profile,omitempty"`
ProfileAccessRoute *EnvProfileAccessRoute `json:"profile_access_route,omitempty"`
Origin EnvironmentOrigin `json:"origin"`
LastSeenAtUnixMS int64 `json:"last_seen_at_unix_ms,omitempty"`
}
func NormalizeEnvironments ¶
func NormalizeEnvironments(environments []Environment) []Environment
type EnvironmentCapability ¶
type EnvironmentCapability string
const ( EnvironmentCapabilityOpen EnvironmentCapability = "open" EnvironmentCapabilityStart EnvironmentCapability = "start" EnvironmentCapabilityStop EnvironmentCapability = "stop" EnvironmentCapabilityRestart EnvironmentCapability = "restart" EnvironmentCapabilityUpdateRuntime EnvironmentCapability = "update_runtime" EnvironmentCapabilityTerminal EnvironmentCapability = "terminal" EnvironmentCapabilityFiles EnvironmentCapability = "files" EnvironmentCapabilityWebService EnvironmentCapability = "web_service" EnvironmentCapabilityPortForward EnvironmentCapability = "port_forward" )
type EnvironmentKind ¶
type EnvironmentKind string
const ( EnvironmentKindManagedLocalEnv EnvironmentKind = "managed_local_env" EnvironmentKindReachableEnv EnvironmentKind = "reachable_env" )
type EnvironmentOrigin ¶
type EnvironmentOrigin struct {
Kind EnvironmentOriginKind `json:"kind"`
Label string `json:"label"`
}
type EnvironmentOriginKind ¶
type EnvironmentOriginKind string
const ( EnvironmentOriginKindGatewayHost EnvironmentOriginKind = "gateway_host" EnvironmentOriginKindSSHTarget EnvironmentOriginKind = "ssh_target" EnvironmentOriginKindContainer EnvironmentOriginKind = "container" EnvironmentOriginKindNetworkTarget EnvironmentOriginKind = "network_target" )
type EnvironmentProfile ¶
type EnvironmentProfile struct {
Managed bool `json:"managed,omitempty"`
AccessRouteKind EnvProfileAccessRouteKind `json:"access_route_kind,omitempty"`
}
type EnvironmentState ¶
type EnvironmentState string
const ( EnvironmentStateUnknown EnvironmentState = "unknown" EnvironmentStateAvailable EnvironmentState = "available" EnvironmentStateStarting EnvironmentState = "starting" EnvironmentStateStopped EnvironmentState = "stopped" EnvironmentStateArchived EnvironmentState = "archived" )
type ErrorEnvelope ¶
type ErrorEnvelope struct {
Code GatewayErrorCode `json:"code"`
Message string `json:"message"`
Retryable bool `json:"retryable,omitempty"`
RedactedDetail string `json:"redacted_detail,omitempty"`
}
type GatewayCapability ¶
type GatewayCapability string
const ( GatewayCapabilityEnvCatalog GatewayCapability = "env_catalog" GatewayCapabilityEnvOpenSession GatewayCapability = "env_open_session" GatewayCapabilityEnvProfileWrite GatewayCapability = "env_profile_write" GatewayCapabilityEnvLifecycle GatewayCapability = "env_lifecycle" GatewayCapabilityTerminal GatewayCapability = "terminal" GatewayCapabilityFiles GatewayCapability = "files" GatewayCapabilityWebService GatewayCapability = "web_service" GatewayCapabilityPortForward GatewayCapability = "port_forward" )
type GatewayConnectArtifact ¶
type GatewayConnectArtifact struct {
Kind ConnectArtifactKind `json:"kind"`
URL string `json:"url,omitempty"`
BridgeSessionID string `json:"bridge_session_id,omitempty"`
RouteID string `json:"route_id,omitempty"`
ExpiresAtUnixMS int64 `json:"expires_at_unix_ms"`
ArtifactNonce string `json:"artifact_nonce"`
Proof string `json:"proof"`
}
type GatewayErrorCode ¶
type GatewayErrorCode string
const ( GatewayErrorCodeInvalidRequest GatewayErrorCode = "INVALID_REQUEST" GatewayErrorCodeTrustChanged GatewayErrorCode = "TRUST_CHANGED" GatewayErrorCodeNotFound GatewayErrorCode = "NOT_FOUND" GatewayErrorCodeCapabilityUnsupported GatewayErrorCode = "CAPABILITY_UNSUPPORTED" GatewayErrorCodeNotImplemented GatewayErrorCode = "NOT_IMPLEMENTED" )
type GatewayMetadata ¶
type GatewayMetadata struct {
GatewayID string `json:"gateway_id"`
DisplayName string `json:"display_name"`
Status GatewayStatus `json:"status"`
Capabilities []GatewayCapability `json:"capabilities"`
GatewayPublicKeyFingerprint string `json:"gateway_public_key_fingerprint,omitempty"`
}
func NormalizeGatewayMetadata ¶
func NormalizeGatewayMetadata(gateway GatewayMetadata) GatewayMetadata
type GatewayStatus ¶
type GatewayStatus string
const ( GatewayStatusOnline GatewayStatus = "online" GatewayStatusPairingRequired GatewayStatus = "pairing_required" GatewayStatusTrustChanged GatewayStatus = "trust_changed" GatewayStatusError GatewayStatus = "error" GatewayStatusUnknown GatewayStatus = "unknown" )
type OpenSessionRequest ¶
type OpenSessionRequest struct {
ProtocolVersion string `json:"protocol_version,omitempty"`
GatewayEnvID string `json:"gateway_env_id"`
RequestedCapability RequestedCapability `json:"requested_capability"`
ClientNonce string `json:"client_nonce"`
BridgeSessionID string `json:"bridge_session_id,omitempty"`
RouteID string `json:"route_id,omitempty"`
}
func NormalizeOpenSessionRequest ¶
func NormalizeOpenSessionRequest(req OpenSessionRequest) OpenSessionRequest
type OpenSessionResponse ¶
type OpenSessionResponse struct {
ProtocolVersion string `json:"protocol_version"`
GatewaySessionID string `json:"gateway_session_id"`
GatewayEnvID string `json:"gateway_env_id"`
ConnectArtifact GatewayConnectArtifact `json:"connect_artifact"`
DiagnosticsHint *DiagnosticsHint `json:"diagnostics_hint,omitempty"`
}
type PairingChallengeRequest ¶
type PairingChallengeResponse ¶
type PairingChallengeResponse struct {
ProtocolVersion string `json:"protocol_version"`
GatewayID string `json:"gateway_id"`
GatewayPublicKey string `json:"gateway_public_key"`
GatewayPublicKeyFingerprint string `json:"gateway_public_key_fingerprint"`
GatewayNonce string `json:"gateway_nonce"`
PairingCode string `json:"pairing_code,omitempty"`
ExpiresAtUnixMS int64 `json:"expires_at_unix_ms"`
Signature string `json:"signature"`
}
type PairingCompleteRequest ¶
type PairingCompleteRequest struct {
ProtocolVersion string `json:"protocol_version,omitempty"`
ClientNonce string `json:"client_nonce"`
GatewayNonce string `json:"gateway_nonce"`
GatewayID string `json:"gateway_id"`
BindingAudience string `json:"binding_audience"`
ClientKeyID string `json:"client_key_id"`
ClientCapability string `json:"client_capability,omitempty"`
Proof string `json:"proof"`
}
func NormalizePairingCompleteRequest ¶
func NormalizePairingCompleteRequest(req PairingCompleteRequest) PairingCompleteRequest
type PairingCompleteResponse ¶
type RequestedCapability ¶
type RequestedCapability string
const ( RequestedCapabilityEnvApp RequestedCapability = "env_app" RequestedCapabilityTerminal RequestedCapability = "terminal" RequestedCapabilityFiles RequestedCapability = "files" RequestedCapabilityWebService RequestedCapability = "web_service" RequestedCapabilityPortForward RequestedCapability = "port_forward" )
Click to show internal directories.
Click to hide internal directories.