package dcxSwitchapi import ( "encoding/json" "fmt" ) type ( PingRequest struct { IP string `json:"ip"` Options PingRequestOptions `json:"options,omitempty"` } PingRequestOptions struct { Count int `json:"count,omitempty"` TimeoutSeconds int `json:"timeout_seconds,omitempty"` PacketSizeBytes int `json:"packet_size_bytes,omitempty"` VRF string `json:"vrf,omitempty"` } PingResponse struct { Request PingRequest `json:"request"` Results PingResult `json:"results"` } PingResult struct { PacketsTransmitted int `json:"packets_transmitted"` PacketsReceived int `json:"packets_received"` PercentSuccess int `json:"percent_success"` MinRTT int `json:"min_rtt_millis"` AvgRTT int `json:"avg_rtt_millis"` MaxRTT int `json:"max_rtt_millis"` Raw string `json:"raw"` } ) // Method to return a port number, this is based on the switch port number func (s *Client) Ping(swName string, req []PingRequest) ([]PingResponse, error) { var pr []PingResponse payload, err := json.Marshal(&req) if err != nil { return pr, err } body, err := s.post(fmt.Sprintf("%s/pings", swName), payload) if err != nil { return pr, err } if err := json.Unmarshal(*body, &pr); err != nil { return pr, err } return pr, nil }