v1

package
v0.5.2 Latest Latest
Warning

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

Go to latest
Published: Nov 24, 2025 License: Apache-2.0 Imports: 12 Imported by: 10

Documentation

Index

Constants

View Source
const (
	PublicationService_CreatePublication_FullMethodName = "/agntcy.dir.routing.v1.PublicationService/CreatePublication"
	PublicationService_ListPublications_FullMethodName  = "/agntcy.dir.routing.v1.PublicationService/ListPublications"
	PublicationService_GetPublication_FullMethodName    = "/agntcy.dir.routing.v1.PublicationService/GetPublication"
)
View Source
const (
	RoutingService_Publish_FullMethodName   = "/agntcy.dir.routing.v1.RoutingService/Publish"
	RoutingService_Unpublish_FullMethodName = "/agntcy.dir.routing.v1.RoutingService/Unpublish"
	RoutingService_Search_FullMethodName    = "/agntcy.dir.routing.v1.RoutingService/Search"
	RoutingService_List_FullMethodName      = "/agntcy.dir.routing.v1.RoutingService/List"
)

Variables

View Source
var (
	PeerConnectionType_name = map[int32]string{
		0: "PEER_CONNECTION_TYPE_NOT_CONNECTED",
		1: "PEER_CONNECTION_TYPE_CONNECTED",
		2: "PEER_CONNECTION_TYPE_CAN_CONNECT",
		3: "PEER_CONNECTION_TYPE_CANNOT_CONNECT",
	}
	PeerConnectionType_value = map[string]int32{
		"PEER_CONNECTION_TYPE_NOT_CONNECTED":  0,
		"PEER_CONNECTION_TYPE_CONNECTED":      1,
		"PEER_CONNECTION_TYPE_CAN_CONNECT":    2,
		"PEER_CONNECTION_TYPE_CANNOT_CONNECT": 3,
	}
)

Enum value maps for PeerConnectionType.

View Source
var (
	PublicationStatus_name = map[int32]string{
		0: "PUBLICATION_STATUS_UNSPECIFIED",
		1: "PUBLICATION_STATUS_PENDING",
		2: "PUBLICATION_STATUS_IN_PROGRESS",
		3: "PUBLICATION_STATUS_COMPLETED",
		4: "PUBLICATION_STATUS_FAILED",
	}
	PublicationStatus_value = map[string]int32{
		"PUBLICATION_STATUS_UNSPECIFIED": 0,
		"PUBLICATION_STATUS_PENDING":     1,
		"PUBLICATION_STATUS_IN_PROGRESS": 2,
		"PUBLICATION_STATUS_COMPLETED":   3,
		"PUBLICATION_STATUS_FAILED":      4,
	}
)

Enum value maps for PublicationStatus.

View Source
var (
	RecordQueryType_name = map[int32]string{
		0: "RECORD_QUERY_TYPE_UNSPECIFIED",
		1: "RECORD_QUERY_TYPE_SKILL",
		2: "RECORD_QUERY_TYPE_LOCATOR",
		3: "RECORD_QUERY_TYPE_DOMAIN",
		4: "RECORD_QUERY_TYPE_MODULE",
	}
	RecordQueryType_value = map[string]int32{
		"RECORD_QUERY_TYPE_UNSPECIFIED": 0,
		"RECORD_QUERY_TYPE_SKILL":       1,
		"RECORD_QUERY_TYPE_LOCATOR":     2,
		"RECORD_QUERY_TYPE_DOMAIN":      3,
		"RECORD_QUERY_TYPE_MODULE":      4,
	}
)

Enum value maps for RecordQueryType.

View Source
var File_agntcy_dir_routing_v1_peer_proto protoreflect.FileDescriptor
View Source
var File_agntcy_dir_routing_v1_publication_service_proto protoreflect.FileDescriptor
View Source
var File_agntcy_dir_routing_v1_record_query_proto protoreflect.FileDescriptor
View Source
var File_agntcy_dir_routing_v1_routing_service_proto protoreflect.FileDescriptor
View Source
var PublicationService_ServiceDesc = grpc.ServiceDesc{
	ServiceName: "agntcy.dir.routing.v1.PublicationService",
	HandlerType: (*PublicationServiceServer)(nil),
	Methods: []grpc.MethodDesc{
		{
			MethodName: "CreatePublication",
			Handler:    _PublicationService_CreatePublication_Handler,
		},
		{
			MethodName: "GetPublication",
			Handler:    _PublicationService_GetPublication_Handler,
		},
	},
	Streams: []grpc.StreamDesc{
		{
			StreamName:    "ListPublications",
			Handler:       _PublicationService_ListPublications_Handler,
			ServerStreams: true,
		},
	},
	Metadata: "agntcy/dir/routing/v1/publication_service.proto",
}

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

View Source
var RoutingService_ServiceDesc = grpc.ServiceDesc{
	ServiceName: "agntcy.dir.routing.v1.RoutingService",
	HandlerType: (*RoutingServiceServer)(nil),
	Methods: []grpc.MethodDesc{
		{
			MethodName: "Publish",
			Handler:    _RoutingService_Publish_Handler,
		},
		{
			MethodName: "Unpublish",
			Handler:    _RoutingService_Unpublish_Handler,
		},
	},
	Streams: []grpc.StreamDesc{
		{
			StreamName:    "Search",
			Handler:       _RoutingService_Search_Handler,
			ServerStreams: true,
		},
		{
			StreamName:    "List",
			Handler:       _RoutingService_List_Handler,
			ServerStreams: true,
		},
	},
	Metadata: "agntcy/dir/routing/v1/routing_service.proto",
}

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

Functions

func RegisterPublicationServiceServer

func RegisterPublicationServiceServer(s grpc.ServiceRegistrar, srv PublicationServiceServer)

func RegisterRoutingServiceServer

func RegisterRoutingServiceServer(s grpc.ServiceRegistrar, srv RoutingServiceServer)

Types

type CreatePublicationResponse

type CreatePublicationResponse struct {

	// Unique identifier of the publication operation.
	PublicationId string `protobuf:"bytes,1,opt,name=publication_id,json=publicationId,proto3" json:"publication_id,omitempty"`
	// contains filtered or unexported fields
}

CreatePublicationResponse returns the result of creating a publication request. This includes the publication ID and any relevant metadata.

func (*CreatePublicationResponse) Descriptor deprecated

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

Deprecated: Use CreatePublicationResponse.ProtoReflect.Descriptor instead.

func (*CreatePublicationResponse) GetPublicationId

func (x *CreatePublicationResponse) GetPublicationId() string

func (*CreatePublicationResponse) ProtoMessage

func (*CreatePublicationResponse) ProtoMessage()

func (*CreatePublicationResponse) ProtoReflect

func (*CreatePublicationResponse) Reset

func (x *CreatePublicationResponse) Reset()

func (*CreatePublicationResponse) String

func (x *CreatePublicationResponse) String() string

type GetPublicationRequest

type GetPublicationRequest struct {

	// Unique identifier of the publication operation to query.
	PublicationId string `protobuf:"bytes,1,opt,name=publication_id,json=publicationId,proto3" json:"publication_id,omitempty"`
	// contains filtered or unexported fields
}

GetPublicationRequest specifies which publication to retrieve by its identifier.

func (*GetPublicationRequest) Descriptor deprecated

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

Deprecated: Use GetPublicationRequest.ProtoReflect.Descriptor instead.

func (*GetPublicationRequest) GetPublicationId

func (x *GetPublicationRequest) GetPublicationId() string

func (*GetPublicationRequest) ProtoMessage

func (*GetPublicationRequest) ProtoMessage()

func (*GetPublicationRequest) ProtoReflect

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

func (*GetPublicationRequest) Reset

func (x *GetPublicationRequest) Reset()

func (*GetPublicationRequest) String

func (x *GetPublicationRequest) String() string

type GetPublicationResponse

type GetPublicationResponse struct {

	// Unique identifier of the publication operation.
	PublicationId string `protobuf:"bytes,1,opt,name=publication_id,json=publicationId,proto3" json:"publication_id,omitempty"`
	// Current status of the publication operation.
	Status PublicationStatus `protobuf:"varint,2,opt,name=status,proto3,enum=agntcy.dir.routing.v1.PublicationStatus" json:"status,omitempty"`
	// Timestamp when the publication operation was created in the RFC3339 format.
	// Specs: https://www.rfc-editor.org/rfc/rfc3339.html
	CreatedTime string `protobuf:"bytes,3,opt,name=created_time,json=createdTime,proto3" json:"created_time,omitempty"`
	// Timestamp of the most recent status update for this publication in the RFC3339 format.
	LastUpdateTime string `protobuf:"bytes,4,opt,name=last_update_time,json=lastUpdateTime,proto3" json:"last_update_time,omitempty"`
	// contains filtered or unexported fields
}

GetPublicationResponse contains the full details of a specific publication request. Includes status, progress information, and any error details if applicable.

func (*GetPublicationResponse) Descriptor deprecated

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

Deprecated: Use GetPublicationResponse.ProtoReflect.Descriptor instead.

func (*GetPublicationResponse) GetCreatedTime

func (x *GetPublicationResponse) GetCreatedTime() string

func (*GetPublicationResponse) GetLastUpdateTime

func (x *GetPublicationResponse) GetLastUpdateTime() string

func (*GetPublicationResponse) GetPublicationId

func (x *GetPublicationResponse) GetPublicationId() string

func (*GetPublicationResponse) GetStatus

func (*GetPublicationResponse) ProtoMessage

func (*GetPublicationResponse) ProtoMessage()

func (*GetPublicationResponse) ProtoReflect

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

func (*GetPublicationResponse) Reset

func (x *GetPublicationResponse) Reset()

func (*GetPublicationResponse) String

func (x *GetPublicationResponse) String() string

type ListPublicationsItem

type ListPublicationsItem struct {

	// Unique identifier of the publication operation.
	PublicationId string `protobuf:"bytes,1,opt,name=publication_id,json=publicationId,proto3" json:"publication_id,omitempty"`
	// Current status of the publication operation.
	Status PublicationStatus `protobuf:"varint,2,opt,name=status,proto3,enum=agntcy.dir.routing.v1.PublicationStatus" json:"status,omitempty"`
	// Timestamp when the publication operation was created in the RFC3339 format.
	// Specs: https://www.rfc-editor.org/rfc/rfc3339.html
	CreatedTime string `protobuf:"bytes,3,opt,name=created_time,json=createdTime,proto3" json:"created_time,omitempty"`
	// Timestamp of the most recent status update for this publication in the RFC3339 format.
	LastUpdateTime string `protobuf:"bytes,4,opt,name=last_update_time,json=lastUpdateTime,proto3" json:"last_update_time,omitempty"`
	// contains filtered or unexported fields
}

ListPublicationsItem represents a single publication request in the list response. Contains publication details including ID, status, and creation timestamp.

func (*ListPublicationsItem) Descriptor deprecated

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

Deprecated: Use ListPublicationsItem.ProtoReflect.Descriptor instead.

func (*ListPublicationsItem) GetCreatedTime

func (x *ListPublicationsItem) GetCreatedTime() string

func (*ListPublicationsItem) GetLastUpdateTime

func (x *ListPublicationsItem) GetLastUpdateTime() string

func (*ListPublicationsItem) GetPublicationId

func (x *ListPublicationsItem) GetPublicationId() string

func (*ListPublicationsItem) GetStatus

func (x *ListPublicationsItem) GetStatus() PublicationStatus

func (*ListPublicationsItem) ProtoMessage

func (*ListPublicationsItem) ProtoMessage()

func (*ListPublicationsItem) ProtoReflect

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

func (*ListPublicationsItem) Reset

func (x *ListPublicationsItem) Reset()

func (*ListPublicationsItem) String

func (x *ListPublicationsItem) String() string

type ListPublicationsRequest

type ListPublicationsRequest struct {

	// Optional limit on the number of results to return.
	Limit *uint32 `protobuf:"varint,2,opt,name=limit,proto3,oneof" json:"limit,omitempty"`
	// Optional offset for pagination of results.
	Offset *uint32 `protobuf:"varint,3,opt,name=offset,proto3,oneof" json:"offset,omitempty"`
	// contains filtered or unexported fields
}

ListPublicationsRequest contains optional filters for listing publication requests.

func (*ListPublicationsRequest) Descriptor deprecated

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

Deprecated: Use ListPublicationsRequest.ProtoReflect.Descriptor instead.

func (*ListPublicationsRequest) GetLimit

func (x *ListPublicationsRequest) GetLimit() uint32

func (*ListPublicationsRequest) GetOffset

func (x *ListPublicationsRequest) GetOffset() uint32

func (*ListPublicationsRequest) ProtoMessage

func (*ListPublicationsRequest) ProtoMessage()

func (*ListPublicationsRequest) ProtoReflect

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

func (*ListPublicationsRequest) Reset

func (x *ListPublicationsRequest) Reset()

func (*ListPublicationsRequest) String

func (x *ListPublicationsRequest) String() string

type ListRequest

type ListRequest struct {

	// List of queries to match against the records.
	// If set, all queries must match for the record to be returned.
	Queries []*RecordQuery `protobuf:"bytes,1,rep,name=queries,proto3" json:"queries,omitempty"`
	// Limit the number of results returned.
	// If not set, it will return all records that this peer is providing.
	Limit *uint32 `protobuf:"varint,2,opt,name=limit,proto3,oneof" json:"limit,omitempty"`
	// contains filtered or unexported fields
}

func (*ListRequest) Descriptor deprecated

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

Deprecated: Use ListRequest.ProtoReflect.Descriptor instead.

func (*ListRequest) GetLimit

func (x *ListRequest) GetLimit() uint32

func (*ListRequest) GetQueries

func (x *ListRequest) GetQueries() []*RecordQuery

func (*ListRequest) ProtoMessage

func (*ListRequest) ProtoMessage()

func (*ListRequest) ProtoReflect

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

func (*ListRequest) Reset

func (x *ListRequest) Reset()

func (*ListRequest) String

func (x *ListRequest) String() string

type ListResponse

type ListResponse struct {

	// The record that matches the list queries.
	RecordRef *v1.RecordRef `protobuf:"bytes,1,opt,name=record_ref,json=recordRef,proto3" json:"record_ref,omitempty"`
	// Labels associated with this record (skills, domains, modules)
	// Derived from the record content for CLI display purposes
	Labels []string `protobuf:"bytes,2,rep,name=labels,proto3" json:"labels,omitempty"`
	// contains filtered or unexported fields
}

func (*ListResponse) Descriptor deprecated

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

Deprecated: Use ListResponse.ProtoReflect.Descriptor instead.

func (*ListResponse) GetLabels

func (x *ListResponse) GetLabels() []string

func (*ListResponse) GetRecordRef

func (x *ListResponse) GetRecordRef() *v1.RecordRef

func (*ListResponse) ProtoMessage

func (*ListResponse) ProtoMessage()

func (*ListResponse) ProtoReflect

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

func (*ListResponse) Reset

func (x *ListResponse) Reset()

func (*ListResponse) String

func (x *ListResponse) String() string

type Peer

type Peer struct {

	// ID of a given peer, typically described by a protocol.
	// For example:
	//   - SPIFFE:   "spiffe://example.org/service/foo"
	//   - JWT:      "jwt:sub=alice,iss=https://issuer.example.com"
	//   - Tor:      "onion:abcdefghijklmno.onion"
	//   - DID:      "did:example:123456789abcdefghi"
	//   - IPFS:     "ipfs:QmYwAPJzv5CZsnAzt8auVZRn2E6sD1c4x8pN5o6d5cW4D5"
	Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
	// Multiaddrs for a given peer.
	// For example:
	// - "/ip4/127.0.0.1/tcp/4001"
	// - "/ip6/::1/tcp/4001"
	// - "/dns4/example.com/tcp/443/https"
	Addrs []string `protobuf:"bytes,2,rep,name=addrs,proto3" json:"addrs,omitempty"`
	// Additional metadata about the peer.
	Annotations map[string]string `` /* 149-byte string literal not displayed */
	// Used to signal the sender's connection capabilities to the peer.
	Connection PeerConnectionType `protobuf:"varint,4,opt,name=connection,proto3,enum=agntcy.dir.routing.v1.PeerConnectionType" json:"connection,omitempty"`
	// contains filtered or unexported fields
}

func (*Peer) Descriptor deprecated

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

Deprecated: Use Peer.ProtoReflect.Descriptor instead.

func (*Peer) GetAddrs

func (x *Peer) GetAddrs() []string

func (*Peer) GetAnnotations

func (x *Peer) GetAnnotations() map[string]string

func (*Peer) GetConnection

func (x *Peer) GetConnection() PeerConnectionType

func (*Peer) GetId

func (x *Peer) GetId() string

func (*Peer) ProtoMessage

func (*Peer) ProtoMessage()

func (*Peer) ProtoReflect

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

func (*Peer) Reset

func (x *Peer) Reset()

func (*Peer) String

func (x *Peer) String() string

type PeerConnectionType

type PeerConnectionType int32
const (
	// Sender does not have a connection to peer, and no extra information (default)
	PeerConnectionType_PEER_CONNECTION_TYPE_NOT_CONNECTED PeerConnectionType = 0
	// Sender has a live connection to peer.
	PeerConnectionType_PEER_CONNECTION_TYPE_CONNECTED PeerConnectionType = 1
	// Sender recently connected to peer.
	PeerConnectionType_PEER_CONNECTION_TYPE_CAN_CONNECT PeerConnectionType = 2
	// Sender made strong effort to connect to peer repeatedly but failed.
	PeerConnectionType_PEER_CONNECTION_TYPE_CANNOT_CONNECT PeerConnectionType = 3
)

func (PeerConnectionType) Descriptor

func (PeerConnectionType) Enum

func (PeerConnectionType) EnumDescriptor deprecated

func (PeerConnectionType) EnumDescriptor() ([]byte, []int)

Deprecated: Use PeerConnectionType.Descriptor instead.

func (PeerConnectionType) Number

func (PeerConnectionType) String

func (x PeerConnectionType) String() string

func (PeerConnectionType) Type

type PublicationServiceClient

type PublicationServiceClient interface {
	// CreatePublication creates a new publication request that will be processed by the PublicationWorker.
	// The publication request can specify either a query, a list of specific CIDs, or all records to be announced to the DHT.
	CreatePublication(ctx context.Context, in *PublishRequest, opts ...grpc.CallOption) (*CreatePublicationResponse, error)
	// ListPublications returns a stream of all publication requests in the system.
	// This allows monitoring of pending, processing, and completed publication requests.
	ListPublications(ctx context.Context, in *ListPublicationsRequest, opts ...grpc.CallOption) (PublicationService_ListPublicationsClient, error)
	// GetPublication retrieves details of a specific publication request by its identifier.
	// This includes the current status and any associated metadata.
	GetPublication(ctx context.Context, in *GetPublicationRequest, opts ...grpc.CallOption) (*GetPublicationResponse, error)
}

PublicationServiceClient is the client API for PublicationService 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.

PublicationService manages publication requests for announcing records to the DHT.

Publications are stored in the database and processed by a worker that runs every hour. The publication workflow: 1. Publications are created via routing's Publish RPC by specifying either a query, a list of CIDs, or all records 2. Publication requests are added to the database 3. PublicationWorker queries the data using the publication request from the database to get the list of CIDs to be published 4. PublicationWorker announces the records with these CIDs to the DHT

type PublicationServiceServer

type PublicationServiceServer interface {
	// CreatePublication creates a new publication request that will be processed by the PublicationWorker.
	// The publication request can specify either a query, a list of specific CIDs, or all records to be announced to the DHT.
	CreatePublication(context.Context, *PublishRequest) (*CreatePublicationResponse, error)
	// ListPublications returns a stream of all publication requests in the system.
	// This allows monitoring of pending, processing, and completed publication requests.
	ListPublications(*ListPublicationsRequest, PublicationService_ListPublicationsServer) error
	// GetPublication retrieves details of a specific publication request by its identifier.
	// This includes the current status and any associated metadata.
	GetPublication(context.Context, *GetPublicationRequest) (*GetPublicationResponse, error)
}

PublicationServiceServer is the server API for PublicationService service. All implementations should embed UnimplementedPublicationServiceServer for forward compatibility.

PublicationService manages publication requests for announcing records to the DHT.

Publications are stored in the database and processed by a worker that runs every hour. The publication workflow: 1. Publications are created via routing's Publish RPC by specifying either a query, a list of CIDs, or all records 2. Publication requests are added to the database 3. PublicationWorker queries the data using the publication request from the database to get the list of CIDs to be published 4. PublicationWorker announces the records with these CIDs to the DHT

type PublicationService_ListPublicationsClient

type PublicationService_ListPublicationsClient interface {
	Recv() (*ListPublicationsItem, error)
	grpc.ClientStream
}

type PublicationService_ListPublicationsServer

type PublicationService_ListPublicationsServer interface {
	Send(*ListPublicationsItem) error
	grpc.ServerStream
}

type PublicationStatus

type PublicationStatus int32

PublicationStatus represents the current state of a publication request. Publications progress from pending to processing to completed or failed states.

const (
	// Default/unset status - should not be used in practice
	PublicationStatus_PUBLICATION_STATUS_UNSPECIFIED PublicationStatus = 0
	// Sync operation has been created but not yet started
	PublicationStatus_PUBLICATION_STATUS_PENDING PublicationStatus = 1
	// Sync operation is actively discovering and transferring objects
	PublicationStatus_PUBLICATION_STATUS_IN_PROGRESS PublicationStatus = 2
	// Sync operation has been successfully completed
	PublicationStatus_PUBLICATION_STATUS_COMPLETED PublicationStatus = 3
	// Sync operation encountered an error and stopped
	PublicationStatus_PUBLICATION_STATUS_FAILED PublicationStatus = 4
)

func (PublicationStatus) Descriptor

func (PublicationStatus) Enum

func (PublicationStatus) EnumDescriptor deprecated

func (PublicationStatus) EnumDescriptor() ([]byte, []int)

Deprecated: Use PublicationStatus.Descriptor instead.

func (PublicationStatus) Number

func (PublicationStatus) String

func (x PublicationStatus) String() string

func (PublicationStatus) Type

type PublishRequest

type PublishRequest struct {

	// Types that are valid to be assigned to Request:
	//
	//	*PublishRequest_RecordRefs
	//	*PublishRequest_Queries
	Request isPublishRequest_Request `protobuf_oneof:"request"`
	// contains filtered or unexported fields
}

func (*PublishRequest) Descriptor deprecated

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

Deprecated: Use PublishRequest.ProtoReflect.Descriptor instead.

func (*PublishRequest) GetQueries

func (x *PublishRequest) GetQueries() *RecordQueries

func (*PublishRequest) GetRecordRefs

func (x *PublishRequest) GetRecordRefs() *RecordRefs

func (*PublishRequest) GetRequest

func (x *PublishRequest) GetRequest() isPublishRequest_Request

func (*PublishRequest) ProtoMessage

func (*PublishRequest) ProtoMessage()

func (*PublishRequest) ProtoReflect

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

func (*PublishRequest) Reset

func (x *PublishRequest) Reset()

func (*PublishRequest) String

func (x *PublishRequest) String() string

type PublishRequest_Queries

type PublishRequest_Queries struct {
	// Queries to match against the records to be published.
	Queries *RecordQueries `protobuf:"bytes,2,opt,name=queries,proto3,oneof"`
}

type PublishRequest_RecordRefs

type PublishRequest_RecordRefs struct {
	// References to the records to be published.
	RecordRefs *RecordRefs `protobuf:"bytes,1,opt,name=record_refs,json=recordRefs,proto3,oneof"`
}

type RecordQueries

type RecordQueries struct {
	Queries []*v11.RecordQuery `protobuf:"bytes,1,rep,name=queries,proto3" json:"queries,omitempty"`
	// contains filtered or unexported fields
}

func (*RecordQueries) Descriptor deprecated

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

Deprecated: Use RecordQueries.ProtoReflect.Descriptor instead.

func (*RecordQueries) GetQueries

func (x *RecordQueries) GetQueries() []*v11.RecordQuery

func (*RecordQueries) ProtoMessage

func (*RecordQueries) ProtoMessage()

func (*RecordQueries) ProtoReflect

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

func (*RecordQueries) Reset

func (x *RecordQueries) Reset()

func (*RecordQueries) String

func (x *RecordQueries) String() string

type RecordQuery

type RecordQuery struct {

	// The type of the query to match against.
	Type RecordQueryType `protobuf:"varint,1,opt,name=type,proto3,enum=agntcy.dir.routing.v1.RecordQueryType" json:"type,omitempty"`
	// The query value to match against.
	Value string `protobuf:"bytes,2,opt,name=value,proto3" json:"value,omitempty"`
	// contains filtered or unexported fields
}

A query to match the record against during discovery. For example:

{ type: RECORD_QUERY_TYPE_SKILL, value: "Natural Language Processing" }
{ type: RECORD_QUERY_TYPE_LOCATOR, value: "helm-chart" }
{ type: RECORD_QUERY_TYPE_DOMAIN, value: "research" }
{ type: RECORD_QUERY_TYPE_MODULE, value: "runtime/language" }

func (*RecordQuery) Descriptor deprecated

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

Deprecated: Use RecordQuery.ProtoReflect.Descriptor instead.

func (*RecordQuery) GetType

func (x *RecordQuery) GetType() RecordQueryType

func (*RecordQuery) GetValue

func (x *RecordQuery) GetValue() string

func (*RecordQuery) ProtoMessage

func (*RecordQuery) ProtoMessage()

func (*RecordQuery) ProtoReflect

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

func (*RecordQuery) Reset

func (x *RecordQuery) Reset()

func (*RecordQuery) String

func (x *RecordQuery) String() string

type RecordQueryType

type RecordQueryType int32

Defines a list of supported record query types.

const (
	// Unspecified query type.
	RecordQueryType_RECORD_QUERY_TYPE_UNSPECIFIED RecordQueryType = 0
	// Query for a skill name.
	RecordQueryType_RECORD_QUERY_TYPE_SKILL RecordQueryType = 1
	// Query for a locator type.
	RecordQueryType_RECORD_QUERY_TYPE_LOCATOR RecordQueryType = 2
	// Query for a domain name.
	RecordQueryType_RECORD_QUERY_TYPE_DOMAIN RecordQueryType = 3
	// Query for a module name.
	RecordQueryType_RECORD_QUERY_TYPE_MODULE RecordQueryType = 4
)

func (RecordQueryType) Descriptor

func (RecordQueryType) Enum

func (x RecordQueryType) Enum() *RecordQueryType

func (RecordQueryType) EnumDescriptor deprecated

func (RecordQueryType) EnumDescriptor() ([]byte, []int)

Deprecated: Use RecordQueryType.Descriptor instead.

func (RecordQueryType) Number

func (RecordQueryType) String

func (x RecordQueryType) String() string

func (RecordQueryType) Type

type RecordRefs

type RecordRefs struct {
	Refs []*v1.RecordRef `protobuf:"bytes,1,rep,name=refs,proto3" json:"refs,omitempty"`
	// contains filtered or unexported fields
}

func (*RecordRefs) Descriptor deprecated

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

Deprecated: Use RecordRefs.ProtoReflect.Descriptor instead.

func (*RecordRefs) GetRefs

func (x *RecordRefs) GetRefs() []*v1.RecordRef

func (*RecordRefs) ProtoMessage

func (*RecordRefs) ProtoMessage()

func (*RecordRefs) ProtoReflect

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

func (*RecordRefs) Reset

func (x *RecordRefs) Reset()

func (*RecordRefs) String

func (x *RecordRefs) String() string

type RoutingServiceClient

type RoutingServiceClient interface {
	// Announce to the network that this peer is providing a given record.
	// This enables other peers to discover this record and retrieve it
	// from this peer. Listeners can use this event to perform custom operations,
	// for example by cloning the record.
	//
	// Items need to be periodically republished (eg. 24h) to the network
	// to avoid stale data. Republication should be done in the background.
	Publish(ctx context.Context, in *PublishRequest, opts ...grpc.CallOption) (*emptypb.Empty, error)
	// Stop serving this record to the network. If other peers try
	// to retrieve this record, the peer will refuse the request.
	Unpublish(ctx context.Context, in *UnpublishRequest, opts ...grpc.CallOption) (*emptypb.Empty, error)
	// Search records based on the request across the network.
	// This will search the network for the record with the given parameters.
	//
	// It is possible that the records are stale or that they do not exist.
	// Some records may be provided by multiple peers.
	//
	// Results from the search can be used as an input
	// to Pull operation to retrieve the records.
	Search(ctx context.Context, in *SearchRequest, opts ...grpc.CallOption) (RoutingService_SearchClient, error)
	// List all records that this peer is currently providing
	// that match the given parameters.
	// This operation does not interact with the network.
	List(ctx context.Context, in *ListRequest, opts ...grpc.CallOption) (RoutingService_ListClient, error)
}

RoutingServiceClient is the client API for RoutingService 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.

Defines an interface for announcement and discovery of records across interconnected network.

Middleware should be used to control who can perform these RPCs. Policies for the middleware can be handled via separate service.

type RoutingServiceServer

type RoutingServiceServer interface {
	// Announce to the network that this peer is providing a given record.
	// This enables other peers to discover this record and retrieve it
	// from this peer. Listeners can use this event to perform custom operations,
	// for example by cloning the record.
	//
	// Items need to be periodically republished (eg. 24h) to the network
	// to avoid stale data. Republication should be done in the background.
	Publish(context.Context, *PublishRequest) (*emptypb.Empty, error)
	// Stop serving this record to the network. If other peers try
	// to retrieve this record, the peer will refuse the request.
	Unpublish(context.Context, *UnpublishRequest) (*emptypb.Empty, error)
	// Search records based on the request across the network.
	// This will search the network for the record with the given parameters.
	//
	// It is possible that the records are stale or that they do not exist.
	// Some records may be provided by multiple peers.
	//
	// Results from the search can be used as an input
	// to Pull operation to retrieve the records.
	Search(*SearchRequest, RoutingService_SearchServer) error
	// List all records that this peer is currently providing
	// that match the given parameters.
	// This operation does not interact with the network.
	List(*ListRequest, RoutingService_ListServer) error
}

RoutingServiceServer is the server API for RoutingService service. All implementations should embed UnimplementedRoutingServiceServer for forward compatibility.

Defines an interface for announcement and discovery of records across interconnected network.

Middleware should be used to control who can perform these RPCs. Policies for the middleware can be handled via separate service.

type RoutingService_ListClient

type RoutingService_ListClient interface {
	Recv() (*ListResponse, error)
	grpc.ClientStream
}

type RoutingService_ListServer

type RoutingService_ListServer interface {
	Send(*ListResponse) error
	grpc.ServerStream
}

type RoutingService_SearchClient

type RoutingService_SearchClient interface {
	Recv() (*SearchResponse, error)
	grpc.ClientStream
}

type RoutingService_SearchServer

type RoutingService_SearchServer interface {
	Send(*SearchResponse) error
	grpc.ServerStream
}

type SearchRequest

type SearchRequest struct {

	// List of queries to match against the records.
	Queries []*RecordQuery `protobuf:"bytes,1,rep,name=queries,proto3" json:"queries,omitempty"`
	// Minimal target query match score.
	// For example, if min_match_score=2, it will return records that match
	// at least two of the queries.
	// If not set, it will return records that match at least one query.
	MinMatchScore *uint32 `protobuf:"varint,2,opt,name=min_match_score,json=minMatchScore,proto3,oneof" json:"min_match_score,omitempty"`
	// Limit the number of results returned.
	// If not set, it will return all discovered records.
	// Note that this is a soft limit, as the search may return more results
	// than the limit if there are multiple peers providing the same record.
	Limit *uint32 `protobuf:"varint,3,opt,name=limit,proto3,oneof" json:"limit,omitempty"`
	// contains filtered or unexported fields
}

func (*SearchRequest) Descriptor deprecated

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

Deprecated: Use SearchRequest.ProtoReflect.Descriptor instead.

func (*SearchRequest) GetLimit

func (x *SearchRequest) GetLimit() uint32

func (*SearchRequest) GetMinMatchScore

func (x *SearchRequest) GetMinMatchScore() uint32

func (*SearchRequest) GetQueries

func (x *SearchRequest) GetQueries() []*RecordQuery

func (*SearchRequest) ProtoMessage

func (*SearchRequest) ProtoMessage()

func (*SearchRequest) ProtoReflect

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

func (*SearchRequest) Reset

func (x *SearchRequest) Reset()

func (*SearchRequest) String

func (x *SearchRequest) String() string

type SearchResponse

type SearchResponse struct {

	// The record that matches the search query.
	RecordRef *v1.RecordRef `protobuf:"bytes,1,opt,name=record_ref,json=recordRef,proto3" json:"record_ref,omitempty"`
	// The peer that provided the record.
	Peer *Peer `protobuf:"bytes,2,opt,name=peer,proto3" json:"peer,omitempty"`
	// The queries that were matched.
	MatchQueries []*RecordQuery `protobuf:"bytes,3,rep,name=match_queries,json=matchQueries,proto3" json:"match_queries,omitempty"`
	// The score of the search match.
	MatchScore uint32 `protobuf:"varint,4,opt,name=match_score,json=matchScore,proto3" json:"match_score,omitempty"`
	// contains filtered or unexported fields
}

func (*SearchResponse) Descriptor deprecated

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

Deprecated: Use SearchResponse.ProtoReflect.Descriptor instead.

func (*SearchResponse) GetMatchQueries

func (x *SearchResponse) GetMatchQueries() []*RecordQuery

func (*SearchResponse) GetMatchScore

func (x *SearchResponse) GetMatchScore() uint32

func (*SearchResponse) GetPeer

func (x *SearchResponse) GetPeer() *Peer

func (*SearchResponse) GetRecordRef

func (x *SearchResponse) GetRecordRef() *v1.RecordRef

func (*SearchResponse) ProtoMessage

func (*SearchResponse) ProtoMessage()

func (*SearchResponse) ProtoReflect

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

func (*SearchResponse) Reset

func (x *SearchResponse) Reset()

func (*SearchResponse) String

func (x *SearchResponse) String() string

type UnimplementedPublicationServiceServer

type UnimplementedPublicationServiceServer struct{}

UnimplementedPublicationServiceServer should be embedded to have forward compatible implementations.

NOTE: this should be embedded by value instead of pointer to avoid a nil pointer dereference when methods are called.

func (UnimplementedPublicationServiceServer) CreatePublication

func (UnimplementedPublicationServiceServer) GetPublication

type UnimplementedRoutingServiceServer

type UnimplementedRoutingServiceServer struct{}

UnimplementedRoutingServiceServer should be embedded to have forward compatible implementations.

NOTE: this should be embedded by value instead of pointer to avoid a nil pointer dereference when methods are called.

func (UnimplementedRoutingServiceServer) List

func (UnimplementedRoutingServiceServer) Publish

func (UnimplementedRoutingServiceServer) Search

func (UnimplementedRoutingServiceServer) Unpublish

type UnpublishRequest

type UnpublishRequest struct {

	// Types that are valid to be assigned to Request:
	//
	//	*UnpublishRequest_RecordRefs
	//	*UnpublishRequest_Queries
	Request isUnpublishRequest_Request `protobuf_oneof:"request"`
	// contains filtered or unexported fields
}

func (*UnpublishRequest) Descriptor deprecated

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

Deprecated: Use UnpublishRequest.ProtoReflect.Descriptor instead.

func (*UnpublishRequest) GetQueries

func (x *UnpublishRequest) GetQueries() *RecordQueries

func (*UnpublishRequest) GetRecordRefs

func (x *UnpublishRequest) GetRecordRefs() *RecordRefs

func (*UnpublishRequest) GetRequest

func (x *UnpublishRequest) GetRequest() isUnpublishRequest_Request

func (*UnpublishRequest) ProtoMessage

func (*UnpublishRequest) ProtoMessage()

func (*UnpublishRequest) ProtoReflect

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

func (*UnpublishRequest) Reset

func (x *UnpublishRequest) Reset()

func (*UnpublishRequest) String

func (x *UnpublishRequest) String() string

type UnpublishRequest_Queries

type UnpublishRequest_Queries struct {
	// Queries to match against the records to be unpublished.
	Queries *RecordQueries `protobuf:"bytes,2,opt,name=queries,proto3,oneof"`
}

type UnpublishRequest_RecordRefs

type UnpublishRequest_RecordRefs struct {
	// References to the records to be unpublished.
	RecordRefs *RecordRefs `protobuf:"bytes,1,opt,name=record_refs,json=recordRefs,proto3,oneof"`
}

type UnsafePublicationServiceServer

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

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

type UnsafeRoutingServiceServer

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

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

Jump to

Keyboard shortcuts

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