Documentation
¶
Overview ¶
Package generated provides primitives to interact with the openapi HTTP API.
Code generated by github.com/oapi-codegen/oapi-codegen/v2 version v2.5.1 DO NOT EDIT.
Index ¶
- type EdgeHistory
- type GetEdgeHistoryParams
- type GetHistoryNodesParams
- type HistoryEdgePage
- type HistoryEdgeSummary
- type HistoryNodeReference
- type HistoryNodes
- type HistoryWindow
- type IdentityStatus
- type ListHistoryEdgesParams
- type NodeIdentity
- type ObservationProvenance
- type ObserverReport
- type ObserverState
- type PathEvent
- type PathKind
- type PathObservation
- type PeerObservation
- type Problem
- type RelaySessionClient
- type RelaySessionObservation
- type RelaySessionProvenance
- type ReportEnvelope
- type ReportKind
- type ReportReceipt
- type ServerCapabilities
- type SubmitReportJSONRequestBody
- type Topology
- type TopologyEdge
- type TopologyEdgeState
- type TopologyNode
- type TrafficBucket
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type EdgeHistory ¶
type EdgeHistory struct {
BucketDurationMs int64 `json:"bucketDurationMs"`
EdgeId string `json:"edgeId"`
From time.Time `json:"from"`
// LastTrafficAt Exact server-received time of the last traffic in the selected window. Omitted when the window is empty.
LastTrafficAt *time.Time `json:"lastTrafficAt,omitempty"`
PathAnchor *PathEvent `json:"pathAnchor,omitempty"`
PathEvents []PathEvent `json:"pathEvents"`
PathEventsTruncated bool `json:"pathEventsTruncated"`
Source HistoryNodeReference `json:"source"`
Target HistoryNodeReference `json:"target"`
To time.Time `json:"to"`
Traffic []TrafficBucket `json:"traffic"`
TrafficTruncated bool `json:"trafficTruncated"`
}
EdgeHistory defines model for EdgeHistory.
type GetEdgeHistoryParams ¶
type GetEdgeHistoryParams struct {
Window HistoryWindow `form:"window" json:"window"`
}
GetEdgeHistoryParams defines parameters for GetEdgeHistory.
type GetHistoryNodesParams ¶
type GetHistoryNodesParams struct {
Window HistoryWindow `form:"window" json:"window"`
}
GetHistoryNodesParams defines parameters for GetHistoryNodes.
type HistoryEdgePage ¶
type HistoryEdgePage struct {
Edges []HistoryEdgeSummary `json:"edges"`
NextCursor *string `json:"nextCursor,omitempty"`
}
HistoryEdgePage defines model for HistoryEdgePage.
type HistoryEdgeSummary ¶
type HistoryEdgeSummary struct {
AToBBytes int64 `json:"aToBBytes"`
BToABytes int64 `json:"bToABytes"`
EdgeId string `json:"edgeId"`
LastTrafficAt time.Time `json:"lastTrafficAt"`
Paths []PathKind `json:"paths"`
Source HistoryNodeReference `json:"source"`
Target HistoryNodeReference `json:"target"`
}
HistoryEdgeSummary defines model for HistoryEdgeSummary.
type HistoryNodeReference ¶
type HistoryNodeReference struct {
DnsName *string `json:"dnsName,omitempty"`
Hostname *string `json:"hostname,omitempty"`
Id string `json:"id"`
IdentityStatus *IdentityStatus `json:"identityStatus,omitempty"`
Label string `json:"label"`
Os *string `json:"os,omitempty"`
}
HistoryNodeReference defines model for HistoryNodeReference.
type HistoryNodes ¶
type HistoryNodes struct {
Nodes []HistoryNodeReference `json:"nodes"`
}
HistoryNodes defines model for HistoryNodes.
type HistoryWindow ¶
type HistoryWindow string
HistoryWindow defines model for HistoryWindow.
const ( N15m HistoryWindow = "15m" N1h HistoryWindow = "1h" N24h HistoryWindow = "24h" N6h HistoryWindow = "6h" N7d HistoryWindow = "7d" )
Defines values for HistoryWindow.
type IdentityStatus ¶ added in v0.4.0
type IdentityStatus string
IdentityStatus defines model for IdentityStatus.
const ( Anonymous IdentityStatus = "anonymous" Conflict IdentityStatus = "conflict" Partial IdentityStatus = "partial" Resolved IdentityStatus = "resolved" )
Defines values for IdentityStatus.
type ListHistoryEdgesParams ¶
type ListHistoryEdgesParams struct {
Window HistoryWindow `form:"window" json:"window"`
NodeId *string `form:"nodeId,omitempty" json:"nodeId,omitempty"`
// Path Match when the path appeared at any point in the window.
Path *PathKind `form:"path,omitempty" json:"path,omitempty"`
Cursor *string `form:"cursor,omitempty" json:"cursor,omitempty"`
Limit *int `form:"limit,omitempty" json:"limit,omitempty"`
}
ListHistoryEdgesParams defines parameters for ListHistoryEdges.
type NodeIdentity ¶
type NodeIdentity struct {
DiscoKey *string `json:"discoKey,omitempty"`
DnsName *string `json:"dnsName,omitempty"`
Hostname *string `json:"hostname,omitempty"`
NodeId *string `json:"nodeId,omitempty"`
NodeKey *string `json:"nodeKey,omitempty"`
// Os Reported operating system for display only; never identity evidence.
Os *string `json:"os,omitempty"`
StableNodeId *string `json:"stableNodeId,omitempty"`
TailscaleIps *[]string `json:"tailscaleIps,omitempty"`
}
NodeIdentity At least one stableNodeId, nodeId, nodeKey, discoKey, or Tailscale IP is required. Names are display fields and never merge nodes.
type ObservationProvenance ¶
type ObservationProvenance struct {
ClockSkewed bool `json:"clockSkewed"`
CollectedAt time.Time `json:"collectedAt"`
ObserverId string `json:"observerId"`
Path PathObservation `json:"path"`
ReceivedAt time.Time `json:"receivedAt"`
// RelaySession Sanitized third-party provenance; underlay endpoints are never exposed.
RelaySession *RelaySessionProvenance `json:"relaySession,omitempty"`
}
ObservationProvenance defines model for ObservationProvenance.
type ObserverReport ¶
type ObserverReport struct {
CollectedAt *time.Time `json:"collectedAt,omitempty"`
InventoryGeneration string `json:"inventoryGeneration"`
// Observer At least one stableNodeId, nodeId, nodeKey, discoKey, or Tailscale IP is required. Names are display fields and never merge nodes.
Observer NodeIdentity `json:"observer"`
Peers *[]PeerObservation `json:"peers,omitempty"`
}
ObserverReport For hello and inventory_update, peers is the observer's complete current runtime peer view. For traffic_sample it is sparse and contains only peers with business byte deltas. observer_withdrawal forbids peers. collectedAt is the time for this observer inside a multi-observer envelope; legacy reports may omit it and use the envelope timestamp.
type ObserverState ¶
type ObserverState struct {
ClockSkewMs int64 `json:"clockSkewMs"`
ClockSkewed bool `json:"clockSkewed"`
Hostname string `json:"hostname"`
Id string `json:"id"`
LastCollectedAt time.Time `json:"lastCollectedAt"`
LastSeen time.Time `json:"lastSeen"`
Online bool `json:"online"`
}
ObserverState defines model for ObserverState.
type PathEvent ¶
type PathEvent struct {
Observations []ObservationProvenance `json:"observations"`
ObservedAt time.Time `json:"observedAt"`
Path PathObservation `json:"path"`
}
PathEvent defines model for PathEvent.
type PathObservation ¶
type PathObservation struct {
DerpRegion *string `json:"derpRegion,omitempty"`
DirectEndpoint *string `json:"directEndpoint,omitempty"`
Kind PathKind `json:"kind"`
PeerRelayStableNodeId *string `json:"peerRelayStableNodeId,omitempty"`
PeerRelayVni *int64 `json:"peerRelayVni,omitempty"`
}
PathObservation defines model for PathObservation.
type PeerObservation ¶
type PeerObservation struct {
LastActive time.Time `json:"lastActive"`
Path PathObservation `json:"path"`
// Peer At least one stableNodeId, nodeId, nodeKey, discoKey, or Tailscale IP is required. Names are display fields and never merge nodes.
Peer NodeIdentity `json:"peer"`
RxBytes int64 `json:"rxBytes"`
RxDelta int64 `json:"rxDelta"`
// SampleDurationMs Zero for hello/inventory baselines; positive for traffic samples.
SampleDurationMs int64 `json:"sampleDurationMs"`
TxBytes int64 `json:"txBytes"`
TxDelta int64 `json:"txDelta"`
}
PeerObservation defines model for PeerObservation.
type Problem ¶
type Problem struct {
Detail *string `json:"detail,omitempty"`
Status int `json:"status"`
Title string `json:"title"`
}
Problem defines model for Problem.
type RelaySessionClient ¶ added in v0.4.0
type RelaySessionClient struct {
DiscoShort *string `json:"discoShort,omitempty"`
// Endpoint Current underlay endpoint; accepted only as volatile provenance.
Endpoint *string `json:"endpoint,omitempty"`
// Identity At least one stableNodeId, nodeId, nodeKey, discoKey, or Tailscale IP is required. Names are display fields and never merge nodes.
Identity *NodeIdentity `json:"identity,omitempty"`
SessionClientId string `json:"sessionClientId"`
}
RelaySessionClient One endpoint of a relay session. sessionClientId, discoShort, and endpoint are scoped hints and never global canonical identity aliases.
type RelaySessionObservation ¶
type RelaySessionObservation struct {
LastActive time.Time `json:"lastActive"`
// Relay At least one stableNodeId, nodeId, nodeKey, discoKey, or Tailscale IP is required. Names are display fields and never merge nodes.
Relay NodeIdentity `json:"relay"`
SampleDurationMs int64 `json:"sampleDurationMs"`
SessionId string `json:"sessionId"`
// Source One endpoint of a relay session. sessionClientId, discoShort, and endpoint are scoped hints and never global canonical identity aliases.
Source RelaySessionClient `json:"source"`
SourceToTargetBytes int64 `json:"sourceToTargetBytes"`
SourceToTargetDelta int64 `json:"sourceToTargetDelta"`
// Target One endpoint of a relay session. sessionClientId, discoShort, and endpoint are scoped hints and never global canonical identity aliases.
Target RelaySessionClient `json:"target"`
TargetToSourceBytes int64 `json:"targetToSourceBytes"`
TargetToSourceDelta int64 `json:"targetToSourceDelta"`
Vni int64 `json:"vni"`
}
RelaySessionObservation A Peer Relay observer's view of traffic between two Tailnet nodes. The logical edge is source-target while relay supplies third-party provenance.
type RelaySessionProvenance ¶ added in v0.4.0
type RelaySessionProvenance struct {
SessionId string `json:"sessionId"`
SourceIdentityStatus IdentityStatus `json:"sourceIdentityStatus"`
TargetIdentityStatus IdentityStatus `json:"targetIdentityStatus"`
Vni int64 `json:"vni"`
}
RelaySessionProvenance Sanitized third-party provenance; underlay endpoints are never exposed.
type ReportEnvelope ¶
type ReportEnvelope struct {
CollectedAt time.Time `json:"collectedAt"`
Kind ReportKind `json:"kind"`
Observers *[]ObserverReport `json:"observers,omitempty"`
RelaySessions *[]RelaySessionObservation `json:"relaySessions,omitempty"`
ReportId openapi_types.UUID `json:"reportId"`
ReporterInstanceId openapi_types.UUID `json:"reporterInstanceId"`
Sequence int64 `json:"sequence"`
Version int `json:"version"`
}
ReportEnvelope Normal observer messages contain observers. observer_withdrawal contains observer identities without peers. relay_session_update contains relaySessions instead; the server rejects envelopes that mix the forms.
type ReportKind ¶
type ReportKind string
ReportKind defines model for ReportKind.
const ( InventoryUpdate ReportKind = "inventory_update" ObserverHeartbeat ReportKind = "observer_heartbeat" ObserverHello ReportKind = "observer_hello" ObserverWithdrawal ReportKind = "observer_withdrawal" RelaySessionUpdate ReportKind = "relay_session_update" TrafficSample ReportKind = "traffic_sample" )
Defines values for ReportKind.
type ReportReceipt ¶
type ReportReceipt struct {
Accepted bool `json:"accepted"`
ControlStableNodeIds []string `json:"controlStableNodeIds"`
HeartbeatIntervalMs int64 `json:"heartbeatIntervalMs"`
ResyncRequired bool `json:"resyncRequired"`
}
ReportReceipt defines model for ReportReceipt.
type ServerCapabilities ¶ added in v0.4.0
type ServerCapabilities struct {
Features []string `json:"features"`
ObserverProtocolVersions []int `json:"observerProtocolVersions"`
}
ServerCapabilities defines model for ServerCapabilities.
type SubmitReportJSONRequestBody ¶
type SubmitReportJSONRequestBody = ReportEnvelope
SubmitReportJSONRequestBody defines body for SubmitReport for application/json ContentType.
type Topology ¶
type Topology struct {
Edges []TopologyEdge `json:"edges"`
GeneratedAt time.Time `json:"generatedAt"`
// NextChangeAt Earliest known lifecycle deadline that can change this snapshot.
NextChangeAt *time.Time `json:"nextChangeAt,omitempty"`
Nodes []TopologyNode `json:"nodes"`
Observers []ObserverState `json:"observers"`
}
Topology defines model for Topology.
type TopologyEdge ¶
type TopologyEdge struct {
AToBBytesPerSecond float64 `json:"aToBBytesPerSecond"`
BToABytesPerSecond float64 `json:"bToABytesPerSecond"`
Conflicts *[]PathObservation `json:"conflicts,omitempty"`
Id string `json:"id"`
LastActive time.Time `json:"lastActive"`
Observations []ObservationProvenance `json:"observations"`
Path PathObservation `json:"path"`
Source string `json:"source"`
State TopologyEdgeState `json:"state"`
// SystemTelemetry True when either endpoint is the dedicated Tailpath control identity.
SystemTelemetry bool `json:"systemTelemetry"`
Target string `json:"target"`
}
TopologyEdge defines model for TopologyEdge.
type TopologyEdgeState ¶
type TopologyEdgeState string
TopologyEdgeState defines model for TopologyEdge.State.
const ( Active TopologyEdgeState = "active" Recent TopologyEdgeState = "recent" )
Defines values for TopologyEdgeState.
type TopologyNode ¶
type TopologyNode struct {
ClockSkewed bool `json:"clockSkewed"`
DiscoKey *string `json:"discoKey,omitempty"`
DnsName *string `json:"dnsName,omitempty"`
Hostname *string `json:"hostname,omitempty"`
Id string `json:"id"`
IdentityStatus *IdentityStatus `json:"identityStatus,omitempty"`
LastEvidenceAt time.Time `json:"lastEvidenceAt"`
NodeId *string `json:"nodeId,omitempty"`
NodeKey *string `json:"nodeKey,omitempty"`
Observable bool `json:"observable"`
Online bool `json:"online"`
// Os Reported operating system for display only; never identity evidence.
Os *string `json:"os,omitempty"`
StableNodeId *string `json:"stableNodeId,omitempty"`
TailscaleIps *[]string `json:"tailscaleIps,omitempty"`
}
TopologyNode defines model for TopologyNode.