// Code generated by protoc-gen-go-plugin. DO NOT EDIT.
// versions:
// 	protoc-gen-go-plugin v0.1.0
// 	protoc               v5.29.3
// source: host/websocket/websocket.proto

package websocket

import (
	context "context"
	protoreflect "google.golang.org/protobuf/reflect/protoreflect"
	protoimpl "google.golang.org/protobuf/runtime/protoimpl"
)

const (
	// Verify that this generated code is sufficiently up-to-date.
	_ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)
	// Verify that runtime/protoimpl is sufficiently up-to-date.
	_ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
)

type ConnectRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Url          string            `protobuf:"bytes,1,opt,name=url,proto3" json:"url,omitempty"`
	Headers      map[string]string `protobuf:"bytes,2,rep,name=headers,proto3" json:"headers,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
	ConnectionId string            `protobuf:"bytes,3,opt,name=connection_id,json=connectionId,proto3" json:"connection_id,omitempty"`
}

func (x *ConnectRequest) ProtoReflect() protoreflect.Message {
	panic(`not implemented`)
}

func (x *ConnectRequest) GetUrl() string {
	if x != nil {
		return x.Url
	}
	return ""
}

func (x *ConnectRequest) GetHeaders() map[string]string {
	if x != nil {
		return x.Headers
	}
	return nil
}

func (x *ConnectRequest) GetConnectionId() string {
	if x != nil {
		return x.ConnectionId
	}
	return ""
}

type ConnectResponse struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	ConnectionId string `protobuf:"bytes,1,opt,name=connection_id,json=connectionId,proto3" json:"connection_id,omitempty"`
	Error        string `protobuf:"bytes,2,opt,name=error,proto3" json:"error,omitempty"`
}

func (x *ConnectResponse) ProtoReflect() protoreflect.Message {
	panic(`not implemented`)
}

func (x *ConnectResponse) GetConnectionId() string {
	if x != nil {
		return x.ConnectionId
	}
	return ""
}

func (x *ConnectResponse) GetError() string {
	if x != nil {
		return x.Error
	}
	return ""
}

type SendTextRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	ConnectionId string `protobuf:"bytes,1,opt,name=connection_id,json=connectionId,proto3" json:"connection_id,omitempty"`
	Message      string `protobuf:"bytes,2,opt,name=message,proto3" json:"message,omitempty"`
}

func (x *SendTextRequest) ProtoReflect() protoreflect.Message {
	panic(`not implemented`)
}

func (x *SendTextRequest) GetConnectionId() string {
	if x != nil {
		return x.ConnectionId
	}
	return ""
}

func (x *SendTextRequest) GetMessage() string {
	if x != nil {
		return x.Message
	}
	return ""
}

type SendTextResponse struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Error string `protobuf:"bytes,1,opt,name=error,proto3" json:"error,omitempty"`
}

func (x *SendTextResponse) ProtoReflect() protoreflect.Message {
	panic(`not implemented`)
}

func (x *SendTextResponse) GetError() string {
	if x != nil {
		return x.Error
	}
	return ""
}

type SendBinaryRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	ConnectionId string `protobuf:"bytes,1,opt,name=connection_id,json=connectionId,proto3" json:"connection_id,omitempty"`
	Data         []byte `protobuf:"bytes,2,opt,name=data,proto3" json:"data,omitempty"`
}

func (x *SendBinaryRequest) ProtoReflect() protoreflect.Message {
	panic(`not implemented`)
}

func (x *SendBinaryRequest) GetConnectionId() string {
	if x != nil {
		return x.ConnectionId
	}
	return ""
}

func (x *SendBinaryRequest) GetData() []byte {
	if x != nil {
		return x.Data
	}
	return nil
}

type SendBinaryResponse struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Error string `protobuf:"bytes,1,opt,name=error,proto3" json:"error,omitempty"`
}

func (x *SendBinaryResponse) ProtoReflect() protoreflect.Message {
	panic(`not implemented`)
}

func (x *SendBinaryResponse) GetError() string {
	if x != nil {
		return x.Error
	}
	return ""
}

type CloseRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	ConnectionId string `protobuf:"bytes,1,opt,name=connection_id,json=connectionId,proto3" json:"connection_id,omitempty"`
	Code         int32  `protobuf:"varint,2,opt,name=code,proto3" json:"code,omitempty"`
	Reason       string `protobuf:"bytes,3,opt,name=reason,proto3" json:"reason,omitempty"`
}

func (x *CloseRequest) ProtoReflect() protoreflect.Message {
	panic(`not implemented`)
}

func (x *CloseRequest) GetConnectionId() string {
	if x != nil {
		return x.ConnectionId
	}
	return ""
}

func (x *CloseRequest) GetCode() int32 {
	if x != nil {
		return x.Code
	}
	return 0
}

func (x *CloseRequest) GetReason() string {
	if x != nil {
		return x.Reason
	}
	return ""
}

type CloseResponse struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Error string `protobuf:"bytes,1,opt,name=error,proto3" json:"error,omitempty"`
}

func (x *CloseResponse) ProtoReflect() protoreflect.Message {
	panic(`not implemented`)
}

func (x *CloseResponse) GetError() string {
	if x != nil {
		return x.Error
	}
	return ""
}

// go:plugin type=host version=1
type WebSocketService interface {
	// Connect to a WebSocket endpoint
	Connect(context.Context, *ConnectRequest) (*ConnectResponse, error)
	// Send a text message
	SendText(context.Context, *SendTextRequest) (*SendTextResponse, error)
	// Send binary data
	SendBinary(context.Context, *SendBinaryRequest) (*SendBinaryResponse, error)
	// Close a connection
	Close(context.Context, *CloseRequest) (*CloseResponse, error)
}
