/* * Copyright (C) 2018 "IoT.bzh" * Author Sebastien Douheret * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package xsapiv1 /** * Target **/ // TargetType definition type TargetType string const ( // TypeTgtStandard Standard target type TypeTgtStandard = "standard" ) // Target Status definition const ( StatusTgtErrorConfig = "ErrorConfig" StatusTgtDisable = "Disable" StatusTgtEnable = "Enable" ) // TargetConfig config of a target / board type TargetConfig struct { ID string `json:"id"` Name string `json:"name"` Type TargetType `json:"type"` IP string `json:"ip"` Status string `json:"status"` Terms []TerminalConfig `json:"terms"` } /** * Terminal **/ // TerminalType definition type TerminalType string const ( // TypeTermSSH ssh terminal type TypeTermSSH = "ssh" // StatusTermErrorConfig Configuration error StatusTermErrorConfig = "ErrorConfig" // StatusTermEnable Enable state StatusTermEnable = "Enable" // StatusTermOpen Open state StatusTermOpen = "Open" // StatusTermClose Close state StatusTermClose = "Close" // StatusTermClosing Closing state StatusTermClosing = "Closing" // TerminalInEvent Event send in WS when characters are sent (stdin) TerminalInEvent = "term:input" // TerminalOutEvent Event send in WS when characters are received (stdout or stderr) TerminalOutEvent = "term:output" // TerminalExitEvent Event send in WS on terminal/console exit TerminalExitEvent = "term:exit" ) type ( // TerminalConfig config of a board terminal TerminalConfig struct { ID string `json:"id"` Name string `json:"name"` Type TerminalType `json:"type"` User string `json:"user"` Options []string `json:"options"` Status string `json:"status"` Cols uint16 `json:"cols"` Rows uint16 `json:"rows"` } // TerminalInMsg Message used to received input characters (stdin) TerminalInMsg struct { TermID string `json:"termID"` Timestamp string `json:"timestamp"` Stdin string `json:"stdin"` } // TerminalOutMsg Message used to send output characters (stdout+stderr) TerminalOutMsg struct { TermID string `json:"termID"` Timestamp string `json:"timestamp"` Stdout []byte `json:"stdout"` Stderr []byte `json:"stderr"` } // TerminalExitMsg Message sent on terminal/console exit TerminalExitMsg struct { TermID string `json:"termID"` Timestamp string `json:"timestamp"` Code int `json:"code"` Error error `json:"error"` } // TerminalResizeArgs JSON parameters of /terminal/:tid/resize command TerminalResizeArgs struct { Cols uint16 `json:"cols"` Rows uint16 `json:"rows"` } // TerminalSignalArgs JSON parameters of /terminal/:tid/signal command TerminalSignalArgs struct { Signal string `json:"signal" binding:"required"` // signal number } )