transportv1

package
v0.0.0-...-99256a3 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jun 4, 2024 License: Apache-2.0 Imports: 8 Imported by: 2

Documentation

Index

Constants

View Source
const (
	TransportService_GetClusterDetails_FullMethodName = "/teleport.transport.v1.TransportService/GetClusterDetails"
	TransportService_ProxySSH_FullMethodName          = "/teleport.transport.v1.TransportService/ProxySSH"
	TransportService_ProxyCluster_FullMethodName      = "/teleport.transport.v1.TransportService/ProxyCluster"
)

Variables

View Source
var File_teleport_transport_v1_transport_service_proto protoreflect.FileDescriptor
View Source
var TransportService_ServiceDesc = grpc.ServiceDesc{
	ServiceName: "teleport.transport.v1.TransportService",
	HandlerType: (*TransportServiceServer)(nil),
	Methods: []grpc.MethodDesc{
		{
			MethodName: "GetClusterDetails",
			Handler:    _TransportService_GetClusterDetails_Handler,
		},
	},
	Streams: []grpc.StreamDesc{
		{
			StreamName:    "ProxySSH",
			Handler:       _TransportService_ProxySSH_Handler,
			ServerStreams: true,
			ClientStreams: true,
		},
		{
			StreamName:    "ProxyCluster",
			Handler:       _TransportService_ProxyCluster_Handler,
			ServerStreams: true,
			ClientStreams: true,
		},
	},
	Metadata: "teleport/transport/v1/transport_service.proto",
}

TransportService_ServiceDesc is the grpc.ServiceDesc for TransportService service. It's only intended for direct use with grpc.RegisterService, and not to be introspected or modified (even as a copy)

Functions

func RegisterTransportServiceServer

func RegisterTransportServiceServer(s grpc.ServiceRegistrar, srv TransportServiceServer)

Types

type ClusterDetails

type ClusterDetails struct {

	// If the cluster is running in FIPS mode
	FipsEnabled bool `protobuf:"varint,1,opt,name=fips_enabled,json=fipsEnabled,proto3" json:"fips_enabled,omitempty"`
	// contains filtered or unexported fields
}

ClusterDetails contains cluster configuration information

func (*ClusterDetails) Descriptor deprecated

func (*ClusterDetails) Descriptor() ([]byte, []int)

Deprecated: Use ClusterDetails.ProtoReflect.Descriptor instead.

func (*ClusterDetails) GetFipsEnabled

func (x *ClusterDetails) GetFipsEnabled() bool

func (*ClusterDetails) ProtoMessage

func (*ClusterDetails) ProtoMessage()

func (*ClusterDetails) ProtoReflect

func (x *ClusterDetails) ProtoReflect() protoreflect.Message

func (*ClusterDetails) Reset

func (x *ClusterDetails) Reset()

func (*ClusterDetails) String

func (x *ClusterDetails) String() string

type Frame

type Frame struct {

	// The raw packet of data
	Payload []byte `protobuf:"bytes,1,opt,name=payload,proto3" json:"payload,omitempty"`
	// contains filtered or unexported fields
}

Encapsulates protocol specific payloads

func (*Frame) Descriptor deprecated

func (*Frame) Descriptor() ([]byte, []int)

Deprecated: Use Frame.ProtoReflect.Descriptor instead.

func (*Frame) GetPayload

func (x *Frame) GetPayload() []byte

func (*Frame) ProtoMessage

func (*Frame) ProtoMessage()

func (*Frame) ProtoReflect

func (x *Frame) ProtoReflect() protoreflect.Message

func (*Frame) Reset

func (x *Frame) Reset()

func (*Frame) String

func (x *Frame) String() string

type GetClusterDetailsRequest

type GetClusterDetailsRequest struct {
	// contains filtered or unexported fields
}

Request for GetClusterDetails.

func (*GetClusterDetailsRequest) Descriptor deprecated

func (*GetClusterDetailsRequest) Descriptor() ([]byte, []int)

Deprecated: Use GetClusterDetailsRequest.ProtoReflect.Descriptor instead.

func (*GetClusterDetailsRequest) ProtoMessage

func (*GetClusterDetailsRequest) ProtoMessage()

func (*GetClusterDetailsRequest) ProtoReflect

func (x *GetClusterDetailsRequest) ProtoReflect() protoreflect.Message

func (*GetClusterDetailsRequest) Reset

func (x *GetClusterDetailsRequest) Reset()

func (*GetClusterDetailsRequest) String

func (x *GetClusterDetailsRequest) String() string

type GetClusterDetailsResponse

type GetClusterDetailsResponse struct {

	// Cluster configuration details
	Details *ClusterDetails `protobuf:"bytes,1,opt,name=details,proto3" json:"details,omitempty"`
	// contains filtered or unexported fields
}

Response for GetClusterDetails.

func (*GetClusterDetailsResponse) Descriptor deprecated

func (*GetClusterDetailsResponse) Descriptor() ([]byte, []int)

Deprecated: Use GetClusterDetailsResponse.ProtoReflect.Descriptor instead.

func (*GetClusterDetailsResponse) GetDetails

func (x *GetClusterDetailsResponse) GetDetails() *ClusterDetails

func (*GetClusterDetailsResponse) ProtoMessage

func (*GetClusterDetailsResponse) ProtoMessage()

func (*GetClusterDetailsResponse) ProtoReflect

func (*GetClusterDetailsResponse) Reset

func (x *GetClusterDetailsResponse) Reset()

func (*GetClusterDetailsResponse) String

func (x *GetClusterDetailsResponse) String() string

type ProxyClusterRequest

type ProxyClusterRequest struct {

	// Name of the cluster to connect to. Must
	// be sent first so the connection can be established.
	Cluster string `protobuf:"bytes,1,opt,name=cluster,proto3" json:"cluster,omitempty"`
	// Raw payload
	Frame *Frame `protobuf:"bytes,2,opt,name=frame,proto3" json:"frame,omitempty"`
	// contains filtered or unexported fields
}

Request for ProxyCluster

In order for proxying to begin the client must send a request with the cluster name populated. Creating the stream doesn't actually open the connection. Any attempts to exchange frames prior to the client sending a cluster name will result in the stream being terminated. All subsequent messages only need to provide a Frame.

func (*ProxyClusterRequest) Descriptor deprecated

func (*ProxyClusterRequest) Descriptor() ([]byte, []int)

Deprecated: Use ProxyClusterRequest.ProtoReflect.Descriptor instead.

func (*ProxyClusterRequest) GetCluster

func (x *ProxyClusterRequest) GetCluster() string

func (*ProxyClusterRequest) GetFrame

func (x *ProxyClusterRequest) GetFrame() *Frame

func (*ProxyClusterRequest) ProtoMessage

func (*ProxyClusterRequest) ProtoMessage()

func (*ProxyClusterRequest) ProtoReflect

func (x *ProxyClusterRequest) ProtoReflect() protoreflect.Message

func (*ProxyClusterRequest) Reset

func (x *ProxyClusterRequest) Reset()

func (*ProxyClusterRequest) String

func (x *ProxyClusterRequest) String() string

type ProxyClusterResponse

type ProxyClusterResponse struct {

	// Raw payload
	Frame *Frame `protobuf:"bytes,1,opt,name=frame,proto3" json:"frame,omitempty"`
	// contains filtered or unexported fields
}

Response for ProxyCluster

func (*ProxyClusterResponse) Descriptor deprecated

func (*ProxyClusterResponse) Descriptor() ([]byte, []int)

Deprecated: Use ProxyClusterResponse.ProtoReflect.Descriptor instead.

func (*ProxyClusterResponse) GetFrame

func (x *ProxyClusterResponse) GetFrame() *Frame

func (*ProxyClusterResponse) ProtoMessage

func (*ProxyClusterResponse) ProtoMessage()

func (*ProxyClusterResponse) ProtoReflect

func (x *ProxyClusterResponse) ProtoReflect() protoreflect.Message

func (*ProxyClusterResponse) Reset

func (x *ProxyClusterResponse) Reset()

func (*ProxyClusterResponse) String

func (x *ProxyClusterResponse) String() string

type ProxySSHRequest

type ProxySSHRequest struct {

	// Contains the information required to dial the target.
	// Must be populated on the initial request so that SSH connection can be established.
	DialTarget *TargetHost `protobuf:"bytes,1,opt,name=dial_target,json=dialTarget,proto3" json:"dial_target,omitempty"`
	// Payload from SSH/SSH Agent Protocols
	//
	// Types that are assignable to Frame:
	//
	//	*ProxySSHRequest_Ssh
	//	*ProxySSHRequest_Agent
	Frame isProxySSHRequest_Frame `protobuf_oneof:"frame"`
	// contains filtered or unexported fields
}

Request for ProxySSH

In order for proxying to begin the client must send a request with the TargetHost populated. Creating the stream doesn't actually open the SSH connection. Any attempts to exchange frames prior to the client sending a TargetHost message will result in the stream being terminated.

func (*ProxySSHRequest) Descriptor deprecated

func (*ProxySSHRequest) Descriptor() ([]byte, []int)

Deprecated: Use ProxySSHRequest.ProtoReflect.Descriptor instead.

func (*ProxySSHRequest) GetAgent

func (x *ProxySSHRequest) GetAgent() *Frame

func (*ProxySSHRequest) GetDialTarget

func (x *ProxySSHRequest) GetDialTarget() *TargetHost

func (*ProxySSHRequest) GetFrame

func (m *ProxySSHRequest) GetFrame() isProxySSHRequest_Frame

func (*ProxySSHRequest) GetSsh

func (x *ProxySSHRequest) GetSsh() *Frame

func (*ProxySSHRequest) ProtoMessage

func (*ProxySSHRequest) ProtoMessage()

func (*ProxySSHRequest) ProtoReflect

func (x *ProxySSHRequest) ProtoReflect() protoreflect.Message

func (*ProxySSHRequest) Reset

func (x *ProxySSHRequest) Reset()

func (*ProxySSHRequest) String

func (x *ProxySSHRequest) String() string

type ProxySSHRequest_Agent

type ProxySSHRequest_Agent struct {
	// Raw SSH Agent payload, populated for agent forwarding
	Agent *Frame `protobuf:"bytes,3,opt,name=agent,proto3,oneof"`
}

type ProxySSHRequest_Ssh

type ProxySSHRequest_Ssh struct {
	// Raw SSH payload
	Ssh *Frame `protobuf:"bytes,2,opt,name=ssh,proto3,oneof"`
}

type ProxySSHResponse

type ProxySSHResponse struct {

	// Cluster information returned *ONLY* with the first frame
	Details *ClusterDetails `protobuf:"bytes,1,opt,name=details,proto3" json:"details,omitempty"`
	// Payload from SSH/SSH Agent Protocols
	//
	// Types that are assignable to Frame:
	//
	//	*ProxySSHResponse_Ssh
	//	*ProxySSHResponse_Agent
	Frame isProxySSHResponse_Frame `protobuf_oneof:"frame"`
	// contains filtered or unexported fields
}

Response for ProxySSH

The first response from the server will contain ClusterDetails so that clients may get information about a particular cluster without needing to call GetClusterDetails first. All subsequent response will only contain Frames.

func (*ProxySSHResponse) Descriptor deprecated

func (*ProxySSHResponse) Descriptor() ([]byte, []int)

Deprecated: Use ProxySSHResponse.ProtoReflect.Descriptor instead.

func (*ProxySSHResponse) GetAgent

func (x *ProxySSHResponse) GetAgent() *Frame

func (*ProxySSHResponse) GetDetails

func (x *ProxySSHResponse) GetDetails() *ClusterDetails

func (*ProxySSHResponse) GetFrame

func (m *ProxySSHResponse) GetFrame() isProxySSHResponse_Frame

func (*ProxySSHResponse) GetSsh

func (x *ProxySSHResponse) GetSsh() *Frame

func (*ProxySSHResponse) ProtoMessage

func (*ProxySSHResponse) ProtoMessage()

func (*ProxySSHResponse) ProtoReflect

func (x *ProxySSHResponse) ProtoReflect() protoreflect.Message

func (*ProxySSHResponse) Reset

func (x *ProxySSHResponse) Reset()

func (*ProxySSHResponse) String

func (x *ProxySSHResponse) String() string

type ProxySSHResponse_Agent

type ProxySSHResponse_Agent struct {
	// SSH Agent payload, populated for agent forwarding
	Agent *Frame `protobuf:"bytes,3,opt,name=agent,proto3,oneof"`
}

type ProxySSHResponse_Ssh

type ProxySSHResponse_Ssh struct {
	// SSH payload
	Ssh *Frame `protobuf:"bytes,2,opt,name=ssh,proto3,oneof"`
}

type TargetHost

type TargetHost struct {

	// The hostname/ip/uuid:port of the remote host.
	HostPort string `protobuf:"bytes,1,opt,name=host_port,json=hostPort,proto3" json:"host_port,omitempty"`
	// The cluster the server is a member of
	Cluster string `protobuf:"bytes,2,opt,name=cluster,proto3" json:"cluster,omitempty"`
	// contains filtered or unexported fields
}

TargetHost indicates which server the connection is for

func (*TargetHost) Descriptor deprecated

func (*TargetHost) Descriptor() ([]byte, []int)

Deprecated: Use TargetHost.ProtoReflect.Descriptor instead.

func (*TargetHost) GetCluster

func (x *TargetHost) GetCluster() string

func (*TargetHost) GetHostPort

func (x *TargetHost) GetHostPort() string

func (*TargetHost) ProtoMessage

func (*TargetHost) ProtoMessage()

func (*TargetHost) ProtoReflect

func (x *TargetHost) ProtoReflect() protoreflect.Message

func (*TargetHost) Reset

func (x *TargetHost) Reset()

func (*TargetHost) String

func (x *TargetHost) String() string

type TransportServiceClient

type TransportServiceClient interface {
	// GetClusterDetails provides cluster information that may affect how transport
	// should occur.
	GetClusterDetails(ctx context.Context, in *GetClusterDetailsRequest, opts ...grpc.CallOption) (*GetClusterDetailsResponse, error)
	// ProxySSH establishes an SSH connection to the target host over a bidirectional stream.
	//
	// The client must first send a DialTarget before the connection is established. Agent frames
	// will be populated if SSH Agent forwarding is enabled for the connection. SSH frames contain
	// raw SSH payload to be processed by an x/crypto/ssh.Client or x/crypto/ssh.Server.
	ProxySSH(ctx context.Context, opts ...grpc.CallOption) (TransportService_ProxySSHClient, error)
	// ProxyCluster establishes a connection to the target cluster.
	//
	// The client must first send a ProxyClusterRequest with the desired cluster name before the
	// connection is established. After which the connection can be used to construct a new
	// auth.Client to the tunneled cluster.
	ProxyCluster(ctx context.Context, opts ...grpc.CallOption) (TransportService_ProxyClusterClient, error)
}

TransportServiceClient is the client API for TransportService service.

For semantics around ctx use and closing/ending streaming RPCs, please refer to https://pkg.go.dev/google.golang.org/grpc/?tab=doc#ClientConn.NewStream.

type TransportServiceServer

type TransportServiceServer interface {
	// GetClusterDetails provides cluster information that may affect how transport
	// should occur.
	GetClusterDetails(context.Context, *GetClusterDetailsRequest) (*GetClusterDetailsResponse, error)
	// ProxySSH establishes an SSH connection to the target host over a bidirectional stream.
	//
	// The client must first send a DialTarget before the connection is established. Agent frames
	// will be populated if SSH Agent forwarding is enabled for the connection. SSH frames contain
	// raw SSH payload to be processed by an x/crypto/ssh.Client or x/crypto/ssh.Server.
	ProxySSH(TransportService_ProxySSHServer) error
	// ProxyCluster establishes a connection to the target cluster.
	//
	// The client must first send a ProxyClusterRequest with the desired cluster name before the
	// connection is established. After which the connection can be used to construct a new
	// auth.Client to the tunneled cluster.
	ProxyCluster(TransportService_ProxyClusterServer) error
	// contains filtered or unexported methods
}

TransportServiceServer is the server API for TransportService service. All implementations must embed UnimplementedTransportServiceServer for forward compatibility

type TransportService_ProxyClusterClient

type TransportService_ProxyClusterClient interface {
	Send(*ProxyClusterRequest) error
	Recv() (*ProxyClusterResponse, error)
	grpc.ClientStream
}

type TransportService_ProxyClusterServer

type TransportService_ProxyClusterServer interface {
	Send(*ProxyClusterResponse) error
	Recv() (*ProxyClusterRequest, error)
	grpc.ServerStream
}

type TransportService_ProxySSHClient

type TransportService_ProxySSHClient interface {
	Send(*ProxySSHRequest) error
	Recv() (*ProxySSHResponse, error)
	grpc.ClientStream
}

type TransportService_ProxySSHServer

type TransportService_ProxySSHServer interface {
	Send(*ProxySSHResponse) error
	Recv() (*ProxySSHRequest, error)
	grpc.ServerStream
}

type UnimplementedTransportServiceServer

type UnimplementedTransportServiceServer struct {
}

UnimplementedTransportServiceServer must be embedded to have forward compatible implementations.

func (UnimplementedTransportServiceServer) GetClusterDetails

func (UnimplementedTransportServiceServer) ProxyCluster

func (UnimplementedTransportServiceServer) ProxySSH

type UnsafeTransportServiceServer

type UnsafeTransportServiceServer interface {
	// contains filtered or unexported methods
}

UnsafeTransportServiceServer may be embedded to opt out of forward compatibility for this service. Use of this interface is not recommended, as added methods to TransportServiceServer will result in compilation errors.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL