proto

package
v1.3.4 Latest Latest
Warning

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

Go to latest
Published: May 4, 2026 License: MIT Imports: 12 Imported by: 0

Documentation

Index

Constants

View Source
const (
	WebhookService_RegisterWebhook_FullMethodName      = "/webhook.WebhookService/RegisterWebhook"
	WebhookService_UnregisterWebhook_FullMethodName    = "/webhook.WebhookService/UnregisterWebhook"
	WebhookService_ListWebhooks_FullMethodName         = "/webhook.WebhookService/ListWebhooks"
	WebhookService_UpdateWebhookConfig_FullMethodName  = "/webhook.WebhookService/UpdateWebhookConfig"
	WebhookService_PauseWebhook_FullMethodName         = "/webhook.WebhookService/PauseWebhook"
	WebhookService_ResumeWebhook_FullMethodName        = "/webhook.WebhookService/ResumeWebhook"
	WebhookService_GetNamespaceStats_FullMethodName    = "/webhook.WebhookService/GetNamespaceStats"
	WebhookService_GetTemplateFunctions_FullMethodName = "/webhook.WebhookService/GetTemplateFunctions"
)
View Source
const (
	EventService_RegisterEvent_FullMethodName    = "/webhook.EventService/RegisterEvent"
	EventService_ListEvents_FullMethodName       = "/webhook.EventService/ListEvents"
	EventService_UpdateEvent_FullMethodName      = "/webhook.EventService/UpdateEvent"
	EventService_DeleteEvent_FullMethodName      = "/webhook.EventService/DeleteEvent"
	EventService_GetEvent_FullMethodName         = "/webhook.EventService/GetEvent"
	EventService_PushEvent_FullMethodName        = "/webhook.EventService/PushEvent"
	EventService_ListEventReports_FullMethodName = "/webhook.EventService/ListEventReports"
	EventService_GetEventRecord_FullMethodName   = "/webhook.EventService/GetEventRecord"
	EventService_RePushEvent_FullMethodName      = "/webhook.EventService/RePushEvent"
	EventService_RePushEvents_FullMethodName     = "/webhook.EventService/RePushEvents"
	EventService_GetRepushStatus_FullMethodName  = "/webhook.EventService/GetRepushStatus"
	EventService_CancelRepush_FullMethodName     = "/webhook.EventService/CancelRepush"
)
View Source
const (
	SubscriptionService_CreateSubscription_FullMethodName       = "/webhook.SubscriptionService/CreateSubscription"
	SubscriptionService_GetSubscription_FullMethodName          = "/webhook.SubscriptionService/GetSubscription"
	SubscriptionService_ListSubscriptions_FullMethodName        = "/webhook.SubscriptionService/ListSubscriptions"
	SubscriptionService_UpdateSubscription_FullMethodName       = "/webhook.SubscriptionService/UpdateSubscription"
	SubscriptionService_DeleteSubscription_FullMethodName       = "/webhook.SubscriptionService/DeleteSubscription"
	SubscriptionService_TestSubscriptionTemplate_FullMethodName = "/webhook.SubscriptionService/TestSubscriptionTemplate"
)
View Source
const (
	DeliveryService_GetDeliveryStatus_FullMethodName   = "/webhook.DeliveryService/GetDeliveryStatus"
	DeliveryService_ListDeliveries_FullMethodName      = "/webhook.DeliveryService/ListDeliveries"
	DeliveryService_RetryDelivery_FullMethodName       = "/webhook.DeliveryService/RetryDelivery"
	DeliveryService_GetDeliveryAttempts_FullMethodName = "/webhook.DeliveryService/GetDeliveryAttempts"
	DeliveryService_RetryDeliveries_FullMethodName     = "/webhook.DeliveryService/RetryDeliveries"
	DeliveryService_GetRetryStatus_FullMethodName      = "/webhook.DeliveryService/GetRetryStatus"
	DeliveryService_CancelRetry_FullMethodName         = "/webhook.DeliveryService/CancelRetry"
)
View Source
const (
	HealthService_GetWebhookHealth_FullMethodName     = "/webhook.HealthService/GetWebhookHealth"
	HealthService_ListWebhooksByHealth_FullMethodName = "/webhook.HealthService/ListWebhooksByHealth"
	HealthService_GetHealthSummary_FullMethodName     = "/webhook.HealthService/GetHealthSummary"
)

Variables

View Source
var (
	WebhookDeliveryStatus_name = map[int32]string{
		0: "DELIVERY_UNSPECIFIED",
		1: "DELIVERY_PENDING",
		2: "DELIVERY_SENDING",
		3: "DELIVERY_SUCCESS",
		4: "DELIVERY_FAILED",
		5: "DELIVERY_RETRYING",
		6: "DELIVERY_EXPIRED",
	}
	WebhookDeliveryStatus_value = map[string]int32{
		"DELIVERY_UNSPECIFIED": 0,
		"DELIVERY_PENDING":     1,
		"DELIVERY_SENDING":     2,
		"DELIVERY_SUCCESS":     3,
		"DELIVERY_FAILED":      4,
		"DELIVERY_RETRYING":    5,
		"DELIVERY_EXPIRED":     6,
	}
)

Enum value maps for WebhookDeliveryStatus.

View Source
var (
	WebhookHealth_name = map[int32]string{
		0: "HEALTH_UNSPECIFIED",
		1: "HEALTH_HEALTHY",
		2: "HEALTH_DEGRADED",
		3: "HEALTH_UNHEALTHY",
	}
	WebhookHealth_value = map[string]int32{
		"HEALTH_UNSPECIFIED": 0,
		"HEALTH_HEALTHY":     1,
		"HEALTH_DEGRADED":    2,
		"HEALTH_UNHEALTHY":   3,
	}
)

Enum value maps for WebhookHealth.

View Source
var DeliveryService_ServiceDesc = grpc.ServiceDesc{
	ServiceName: "webhook.DeliveryService",
	HandlerType: (*DeliveryServiceServer)(nil),
	Methods: []grpc.MethodDesc{
		{
			MethodName: "GetDeliveryStatus",
			Handler:    _DeliveryService_GetDeliveryStatus_Handler,
		},
		{
			MethodName: "ListDeliveries",
			Handler:    _DeliveryService_ListDeliveries_Handler,
		},
		{
			MethodName: "RetryDelivery",
			Handler:    _DeliveryService_RetryDelivery_Handler,
		},
		{
			MethodName: "GetDeliveryAttempts",
			Handler:    _DeliveryService_GetDeliveryAttempts_Handler,
		},
		{
			MethodName: "RetryDeliveries",
			Handler:    _DeliveryService_RetryDeliveries_Handler,
		},
		{
			MethodName: "GetRetryStatus",
			Handler:    _DeliveryService_GetRetryStatus_Handler,
		},
		{
			MethodName: "CancelRetry",
			Handler:    _DeliveryService_CancelRetry_Handler,
		},
	},
	Streams:  []grpc.StreamDesc{},
	Metadata: "proto/webhook.proto",
}

DeliveryService_ServiceDesc is the grpc.ServiceDesc for DeliveryService 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 EventService_ServiceDesc = grpc.ServiceDesc{
	ServiceName: "webhook.EventService",
	HandlerType: (*EventServiceServer)(nil),
	Methods: []grpc.MethodDesc{
		{
			MethodName: "RegisterEvent",
			Handler:    _EventService_RegisterEvent_Handler,
		},
		{
			MethodName: "ListEvents",
			Handler:    _EventService_ListEvents_Handler,
		},
		{
			MethodName: "UpdateEvent",
			Handler:    _EventService_UpdateEvent_Handler,
		},
		{
			MethodName: "DeleteEvent",
			Handler:    _EventService_DeleteEvent_Handler,
		},
		{
			MethodName: "GetEvent",
			Handler:    _EventService_GetEvent_Handler,
		},
		{
			MethodName: "PushEvent",
			Handler:    _EventService_PushEvent_Handler,
		},
		{
			MethodName: "ListEventReports",
			Handler:    _EventService_ListEventReports_Handler,
		},
		{
			MethodName: "GetEventRecord",
			Handler:    _EventService_GetEventRecord_Handler,
		},
		{
			MethodName: "RePushEvent",
			Handler:    _EventService_RePushEvent_Handler,
		},
		{
			MethodName: "RePushEvents",
			Handler:    _EventService_RePushEvents_Handler,
		},
		{
			MethodName: "GetRepushStatus",
			Handler:    _EventService_GetRepushStatus_Handler,
		},
		{
			MethodName: "CancelRepush",
			Handler:    _EventService_CancelRepush_Handler,
		},
	},
	Streams:  []grpc.StreamDesc{},
	Metadata: "proto/webhook.proto",
}

EventService_ServiceDesc is the grpc.ServiceDesc for EventService 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 File_proto_webhook_proto protoreflect.FileDescriptor
View Source
var HealthService_ServiceDesc = grpc.ServiceDesc{
	ServiceName: "webhook.HealthService",
	HandlerType: (*HealthServiceServer)(nil),
	Methods: []grpc.MethodDesc{
		{
			MethodName: "GetWebhookHealth",
			Handler:    _HealthService_GetWebhookHealth_Handler,
		},
		{
			MethodName: "ListWebhooksByHealth",
			Handler:    _HealthService_ListWebhooksByHealth_Handler,
		},
		{
			MethodName: "GetHealthSummary",
			Handler:    _HealthService_GetHealthSummary_Handler,
		},
	},
	Streams:  []grpc.StreamDesc{},
	Metadata: "proto/webhook.proto",
}

HealthService_ServiceDesc is the grpc.ServiceDesc for HealthService 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 SubscriptionService_ServiceDesc = grpc.ServiceDesc{
	ServiceName: "webhook.SubscriptionService",
	HandlerType: (*SubscriptionServiceServer)(nil),
	Methods: []grpc.MethodDesc{
		{
			MethodName: "CreateSubscription",
			Handler:    _SubscriptionService_CreateSubscription_Handler,
		},
		{
			MethodName: "GetSubscription",
			Handler:    _SubscriptionService_GetSubscription_Handler,
		},
		{
			MethodName: "ListSubscriptions",
			Handler:    _SubscriptionService_ListSubscriptions_Handler,
		},
		{
			MethodName: "UpdateSubscription",
			Handler:    _SubscriptionService_UpdateSubscription_Handler,
		},
		{
			MethodName: "DeleteSubscription",
			Handler:    _SubscriptionService_DeleteSubscription_Handler,
		},
		{
			MethodName: "TestSubscriptionTemplate",
			Handler:    _SubscriptionService_TestSubscriptionTemplate_Handler,
		},
	},
	Streams:  []grpc.StreamDesc{},
	Metadata: "proto/webhook.proto",
}

SubscriptionService_ServiceDesc is the grpc.ServiceDesc for SubscriptionService 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 WebhookService_ServiceDesc = grpc.ServiceDesc{
	ServiceName: "webhook.WebhookService",
	HandlerType: (*WebhookServiceServer)(nil),
	Methods: []grpc.MethodDesc{
		{
			MethodName: "RegisterWebhook",
			Handler:    _WebhookService_RegisterWebhook_Handler,
		},
		{
			MethodName: "UnregisterWebhook",
			Handler:    _WebhookService_UnregisterWebhook_Handler,
		},
		{
			MethodName: "ListWebhooks",
			Handler:    _WebhookService_ListWebhooks_Handler,
		},
		{
			MethodName: "UpdateWebhookConfig",
			Handler:    _WebhookService_UpdateWebhookConfig_Handler,
		},
		{
			MethodName: "PauseWebhook",
			Handler:    _WebhookService_PauseWebhook_Handler,
		},
		{
			MethodName: "ResumeWebhook",
			Handler:    _WebhookService_ResumeWebhook_Handler,
		},
		{
			MethodName: "GetNamespaceStats",
			Handler:    _WebhookService_GetNamespaceStats_Handler,
		},
		{
			MethodName: "GetTemplateFunctions",
			Handler:    _WebhookService_GetTemplateFunctions_Handler,
		},
	},
	Streams:  []grpc.StreamDesc{},
	Metadata: "proto/webhook.proto",
}

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

Functions

func RegisterDeliveryServiceServer added in v0.2.0

func RegisterDeliveryServiceServer(s grpc.ServiceRegistrar, srv DeliveryServiceServer)

func RegisterEventServiceServer added in v0.2.0

func RegisterEventServiceServer(s grpc.ServiceRegistrar, srv EventServiceServer)

func RegisterHealthServiceServer added in v0.2.0

func RegisterHealthServiceServer(s grpc.ServiceRegistrar, srv HealthServiceServer)

func RegisterSubscriptionServiceServer added in v0.2.0

func RegisterSubscriptionServiceServer(s grpc.ServiceRegistrar, srv SubscriptionServiceServer)

func RegisterWebhookServiceServer

func RegisterWebhookServiceServer(s grpc.ServiceRegistrar, srv WebhookServiceServer)

Types

type BatchJobStatus added in v0.8.0

type BatchJobStatus struct {

	// Current status of the batch job.
	// @example "processing"
	Status string `protobuf:"bytes,1,opt,name=status,proto3" json:"status,omitempty"`
	// Total number of items in the batch.
	Total int32 `protobuf:"varint,2,opt,name=total,proto3" json:"total,omitempty"`
	// Number of items successfully processed so far.
	Processed int32 `protobuf:"varint,3,opt,name=processed,proto3" json:"processed,omitempty"`
	// Number of items that failed processing.
	Failed int32 `protobuf:"varint,4,opt,name=failed,proto3" json:"failed,omitempty"`
	// When the batch job was created.
	CreatedAt *timestamppb.Timestamp `protobuf:"bytes,5,opt,name=created_at,json=createdAt,proto3" json:"created_at,omitempty"`
	// When the batch job expires (created_at + ttl_seconds).
	ExpiresAt *timestamppb.Timestamp `protobuf:"bytes,6,opt,name=expires_at,json=expiresAt,proto3" json:"expires_at,omitempty"`
	// contains filtered or unexported fields
}

BatchJobStatus represents the lifecycle of a batch job. Valid values: pending, processing, completed, failed, cancelled.

func (*BatchJobStatus) Descriptor deprecated added in v0.8.0

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

Deprecated: Use BatchJobStatus.ProtoReflect.Descriptor instead.

func (*BatchJobStatus) GetCreatedAt added in v0.8.0

func (x *BatchJobStatus) GetCreatedAt() *timestamppb.Timestamp

func (*BatchJobStatus) GetExpiresAt added in v0.8.0

func (x *BatchJobStatus) GetExpiresAt() *timestamppb.Timestamp

func (*BatchJobStatus) GetFailed added in v0.8.0

func (x *BatchJobStatus) GetFailed() int32

func (*BatchJobStatus) GetProcessed added in v0.8.0

func (x *BatchJobStatus) GetProcessed() int32

func (*BatchJobStatus) GetStatus added in v0.8.0

func (x *BatchJobStatus) GetStatus() string

func (*BatchJobStatus) GetTotal added in v0.8.0

func (x *BatchJobStatus) GetTotal() int32

func (*BatchJobStatus) ProtoMessage added in v0.8.0

func (*BatchJobStatus) ProtoMessage()

func (*BatchJobStatus) ProtoReflect added in v0.8.0

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

func (*BatchJobStatus) Reset added in v0.8.0

func (x *BatchJobStatus) Reset()

func (*BatchJobStatus) String added in v0.8.0

func (x *BatchJobStatus) String() string

type CancelRepushRequest added in v0.8.0

type CancelRepushRequest struct {

	// Batch ID to cancel.
	// @required
	RepushId string `protobuf:"bytes,1,opt,name=repush_id,json=repushId,proto3" json:"repush_id,omitempty"`
	// contains filtered or unexported fields
}

CancelRepushRequest aborts a pending or in-progress batch re-push.

func (*CancelRepushRequest) Descriptor deprecated added in v0.8.0

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

Deprecated: Use CancelRepushRequest.ProtoReflect.Descriptor instead.

func (*CancelRepushRequest) GetRepushId added in v0.8.0

func (x *CancelRepushRequest) GetRepushId() string

func (*CancelRepushRequest) ProtoMessage added in v0.8.0

func (*CancelRepushRequest) ProtoMessage()

func (*CancelRepushRequest) ProtoReflect added in v0.8.0

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

func (*CancelRepushRequest) Reset added in v0.8.0

func (x *CancelRepushRequest) Reset()

func (*CancelRepushRequest) String added in v0.8.0

func (x *CancelRepushRequest) String() string

type CancelRepushResponse added in v0.8.0

type CancelRepushResponse struct {

	// Current status after cancellation (will be "cancelled").
	Status string `protobuf:"bytes,1,opt,name=status,proto3" json:"status,omitempty"`
	// contains filtered or unexported fields
}

CancelRepushResponse confirms the cancellation.

func (*CancelRepushResponse) Descriptor deprecated added in v0.8.0

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

Deprecated: Use CancelRepushResponse.ProtoReflect.Descriptor instead.

func (*CancelRepushResponse) GetStatus added in v0.8.0

func (x *CancelRepushResponse) GetStatus() string

func (*CancelRepushResponse) ProtoMessage added in v0.8.0

func (*CancelRepushResponse) ProtoMessage()

func (*CancelRepushResponse) ProtoReflect added in v0.8.0

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

func (*CancelRepushResponse) Reset added in v0.8.0

func (x *CancelRepushResponse) Reset()

func (*CancelRepushResponse) String added in v0.8.0

func (x *CancelRepushResponse) String() string

type CancelRetryRequest added in v0.8.0

type CancelRetryRequest struct {

	// Batch ID to cancel.
	// @required
	RetryId string `protobuf:"bytes,1,opt,name=retry_id,json=retryId,proto3" json:"retry_id,omitempty"`
	// contains filtered or unexported fields
}

CancelRetryRequest aborts a pending or in-progress batch retry.

func (*CancelRetryRequest) Descriptor deprecated added in v0.8.0

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

Deprecated: Use CancelRetryRequest.ProtoReflect.Descriptor instead.

func (*CancelRetryRequest) GetRetryId added in v0.8.0

func (x *CancelRetryRequest) GetRetryId() string

func (*CancelRetryRequest) ProtoMessage added in v0.8.0

func (*CancelRetryRequest) ProtoMessage()

func (*CancelRetryRequest) ProtoReflect added in v0.8.0

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

func (*CancelRetryRequest) Reset added in v0.8.0

func (x *CancelRetryRequest) Reset()

func (*CancelRetryRequest) String added in v0.8.0

func (x *CancelRetryRequest) String() string

type CancelRetryResponse added in v0.8.0

type CancelRetryResponse struct {

	// Current status after cancellation (will be "cancelled").
	Status string `protobuf:"bytes,1,opt,name=status,proto3" json:"status,omitempty"`
	// contains filtered or unexported fields
}

CancelRetryResponse confirms the cancellation.

func (*CancelRetryResponse) Descriptor deprecated added in v0.8.0

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

Deprecated: Use CancelRetryResponse.ProtoReflect.Descriptor instead.

func (*CancelRetryResponse) GetStatus added in v0.8.0

func (x *CancelRetryResponse) GetStatus() string

func (*CancelRetryResponse) ProtoMessage added in v0.8.0

func (*CancelRetryResponse) ProtoMessage()

func (*CancelRetryResponse) ProtoReflect added in v0.8.0

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

func (*CancelRetryResponse) Reset added in v0.8.0

func (x *CancelRetryResponse) Reset()

func (*CancelRetryResponse) String added in v0.8.0

func (x *CancelRetryResponse) String() string

type CreateSubscriptionRequest added in v0.2.0

type CreateSubscriptionRequest struct {

	// UUID of the webhook to subscribe. Required.
	// The webhook must exist in the specified namespace.
	// @example "550e8400-e29b-41d4-a716-446655440000"
	WebhookId string `protobuf:"bytes,1,opt,name=webhook_id,json=webhookId,proto3" json:"webhook_id,omitempty"`
	// Event type name to subscribe to. Required.
	// @example "order.created"
	EventName string `protobuf:"bytes,2,opt,name=event_name,json=eventName,proto3" json:"event_name,omitempty"`
	// Namespace for the subscription. Required.
	// Must match the webhook's namespace.
	// @example "production"
	Namespace string `protobuf:"bytes,3,opt,name=namespace,proto3" json:"namespace,omitempty"`
	// Per-subscription HTTP headers. Optional.
	// Merged with (and overrides) webhook-level headers on delivery.
	Headers map[string]string `` /* 141-byte string literal not displayed */
	// HTTP method override. Optional. Default: "POST".
	Method string `protobuf:"bytes,5,opt,name=method,proto3" json:"method,omitempty"`
	// Timeout override in seconds. Optional. Default: use webhook's timeout.
	Timeout int32 `protobuf:"varint,6,opt,name=timeout,proto3" json:"timeout,omitempty"`
	// Enable Go template payload transformation. Default: false.
	TransformEnabled bool `protobuf:"varint,7,opt,name=transform_enabled,json=transformEnabled,proto3" json:"transform_enabled,omitempty"`
	// Go template for payload transformation. Only used when transform_enabled is true.
	// Use TestSubscriptionTemplate to validate before saving.
	TransformTemplate string `protobuf:"bytes,8,opt,name=transform_template,json=transformTemplate,proto3" json:"transform_template,omitempty"`
	// Label filters for selective event matching. Optional.
	// Only events with labels matching all key-value pairs will trigger this subscription.
	// @example {"region": "us-east"}
	LabelFilters map[string]string `` /* 171-byte string literal not displayed */
	// contains filtered or unexported fields
}

CreateSubscriptionRequest creates a new subscription linking a webhook to an event type.

func (*CreateSubscriptionRequest) Descriptor deprecated added in v0.2.0

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

Deprecated: Use CreateSubscriptionRequest.ProtoReflect.Descriptor instead.

func (*CreateSubscriptionRequest) GetEventName added in v0.2.0

func (x *CreateSubscriptionRequest) GetEventName() string

func (*CreateSubscriptionRequest) GetHeaders added in v0.2.0

func (x *CreateSubscriptionRequest) GetHeaders() map[string]string

func (*CreateSubscriptionRequest) GetLabelFilters added in v0.2.0

func (x *CreateSubscriptionRequest) GetLabelFilters() map[string]string

func (*CreateSubscriptionRequest) GetMethod added in v0.2.0

func (x *CreateSubscriptionRequest) GetMethod() string

func (*CreateSubscriptionRequest) GetNamespace added in v0.2.0

func (x *CreateSubscriptionRequest) GetNamespace() string

func (*CreateSubscriptionRequest) GetTimeout added in v0.2.0

func (x *CreateSubscriptionRequest) GetTimeout() int32

func (*CreateSubscriptionRequest) GetTransformEnabled added in v0.2.0

func (x *CreateSubscriptionRequest) GetTransformEnabled() bool

func (*CreateSubscriptionRequest) GetTransformTemplate added in v0.2.0

func (x *CreateSubscriptionRequest) GetTransformTemplate() string

func (*CreateSubscriptionRequest) GetWebhookId added in v0.2.0

func (x *CreateSubscriptionRequest) GetWebhookId() string

func (*CreateSubscriptionRequest) ProtoMessage added in v0.2.0

func (*CreateSubscriptionRequest) ProtoMessage()

func (*CreateSubscriptionRequest) ProtoReflect added in v0.2.0

func (*CreateSubscriptionRequest) Reset added in v0.2.0

func (x *CreateSubscriptionRequest) Reset()

func (*CreateSubscriptionRequest) String added in v0.2.0

func (x *CreateSubscriptionRequest) String() string

type CreateSubscriptionResponse added in v0.2.0

type CreateSubscriptionResponse struct {

	// Server-generated UUID of the new subscription.
	// @example "7c9e6679-7425-40de-944b-e07fc1f90ae7"
	SubscriptionId string `protobuf:"bytes,1,opt,name=subscription_id,json=subscriptionId,proto3" json:"subscription_id,omitempty"`
	// When the subscription was created.
	// @example "2025-01-15T10:30:00Z"
	CreatedAt *timestamppb.Timestamp `protobuf:"bytes,4,opt,name=created_at,json=createdAt,proto3" json:"created_at,omitempty"`
	// contains filtered or unexported fields
}

CreateSubscriptionResponse confirms successful subscription creation.

func (*CreateSubscriptionResponse) Descriptor deprecated added in v0.2.0

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

Deprecated: Use CreateSubscriptionResponse.ProtoReflect.Descriptor instead.

func (*CreateSubscriptionResponse) GetCreatedAt added in v0.2.0

func (*CreateSubscriptionResponse) GetSubscriptionId added in v0.2.0

func (x *CreateSubscriptionResponse) GetSubscriptionId() string

func (*CreateSubscriptionResponse) ProtoMessage added in v0.2.0

func (*CreateSubscriptionResponse) ProtoMessage()

func (*CreateSubscriptionResponse) ProtoReflect added in v0.2.0

func (*CreateSubscriptionResponse) Reset added in v0.2.0

func (x *CreateSubscriptionResponse) Reset()

func (*CreateSubscriptionResponse) String added in v0.2.0

func (x *CreateSubscriptionResponse) String() string

type DeleteEventRequest

type DeleteEventRequest struct {

	// Event name to delete. Required.
	// @example "order.created"
	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
	// contains filtered or unexported fields
}

DeleteEventRequest permanently removes an event type definition. Caution: existing subscriptions referencing this event name are NOT automatically deleted. They will simply stop matching any future events.

func (*DeleteEventRequest) Descriptor deprecated

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

Deprecated: Use DeleteEventRequest.ProtoReflect.Descriptor instead.

func (*DeleteEventRequest) GetName

func (x *DeleteEventRequest) GetName() string

func (*DeleteEventRequest) ProtoMessage

func (*DeleteEventRequest) ProtoMessage()

func (*DeleteEventRequest) ProtoReflect

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

func (*DeleteEventRequest) Reset

func (x *DeleteEventRequest) Reset()

func (*DeleteEventRequest) String

func (x *DeleteEventRequest) String() string

type DeleteEventResponse

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

DeleteEventResponse confirms the event type was deleted.

func (*DeleteEventResponse) Descriptor deprecated

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

Deprecated: Use DeleteEventResponse.ProtoReflect.Descriptor instead.

func (*DeleteEventResponse) ProtoMessage

func (*DeleteEventResponse) ProtoMessage()

func (*DeleteEventResponse) ProtoReflect

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

func (*DeleteEventResponse) Reset

func (x *DeleteEventResponse) Reset()

func (*DeleteEventResponse) String

func (x *DeleteEventResponse) String() string

type DeleteSubscriptionRequest added in v0.2.0

type DeleteSubscriptionRequest struct {

	// UUID of the subscription to delete. Required.
	// @example "7c9e6679-7425-40de-944b-e07fc1f90ae7"
	SubscriptionId string `protobuf:"bytes,1,opt,name=subscription_id,json=subscriptionId,proto3" json:"subscription_id,omitempty"`
	// Namespace the subscription belongs to. Required.
	// @example "production"
	Namespace string `protobuf:"bytes,2,opt,name=namespace,proto3" json:"namespace,omitempty"`
	// contains filtered or unexported fields
}

DeleteSubscriptionRequest permanently removes a subscription. In-flight deliveries for this subscription are not cancelled.

func (*DeleteSubscriptionRequest) Descriptor deprecated added in v0.2.0

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

Deprecated: Use DeleteSubscriptionRequest.ProtoReflect.Descriptor instead.

func (*DeleteSubscriptionRequest) GetNamespace added in v0.2.0

func (x *DeleteSubscriptionRequest) GetNamespace() string

func (*DeleteSubscriptionRequest) GetSubscriptionId added in v0.2.0

func (x *DeleteSubscriptionRequest) GetSubscriptionId() string

func (*DeleteSubscriptionRequest) ProtoMessage added in v0.2.0

func (*DeleteSubscriptionRequest) ProtoMessage()

func (*DeleteSubscriptionRequest) ProtoReflect added in v0.2.0

func (*DeleteSubscriptionRequest) Reset added in v0.2.0

func (x *DeleteSubscriptionRequest) Reset()

func (*DeleteSubscriptionRequest) String added in v0.2.0

func (x *DeleteSubscriptionRequest) String() string

type DeleteSubscriptionResponse added in v0.2.0

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

DeleteSubscriptionResponse confirms the subscription was deleted.

func (*DeleteSubscriptionResponse) Descriptor deprecated added in v0.2.0

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

Deprecated: Use DeleteSubscriptionResponse.ProtoReflect.Descriptor instead.

func (*DeleteSubscriptionResponse) ProtoMessage added in v0.2.0

func (*DeleteSubscriptionResponse) ProtoMessage()

func (*DeleteSubscriptionResponse) ProtoReflect added in v0.2.0

func (*DeleteSubscriptionResponse) Reset added in v0.2.0

func (x *DeleteSubscriptionResponse) Reset()

func (*DeleteSubscriptionResponse) String added in v0.2.0

func (x *DeleteSubscriptionResponse) String() string

type DeliveryAttempt added in v0.2.0

type DeliveryAttempt struct {

	// Server-generated UUID for this attempt.
	// @example "a-110e8400-e29b-41d4-a716-446655440000"
	AttemptId string `protobuf:"bytes,1,opt,name=attempt_id,json=attemptId,proto3" json:"attempt_id,omitempty"`
	// UUID of the parent delivery this attempt belongs to.
	DeliveryId string `protobuf:"bytes,2,opt,name=delivery_id,json=deliveryId,proto3" json:"delivery_id,omitempty"`
	// UUID of the target webhook.
	WebhookId string `protobuf:"bytes,3,opt,name=webhook_id,json=webhookId,proto3" json:"webhook_id,omitempty"`
	// Whether this attempt resulted in a successful delivery
	// (response code matched expected_status_codes).
	// @example true
	Success bool `protobuf:"varint,4,opt,name=success,proto3" json:"success,omitempty"`
	// Round-trip time in milliseconds from sending the request to receiving
	// the full response (or timeout/error). 0 if no connection was established.
	// @example 245
	ResponseTime int32 `protobuf:"varint,5,opt,name=response_time,json=responseTime,proto3" json:"response_time,omitempty"`
	// HTTP response status code. 0 if no response was received
	// (timeout, connection refused, DNS error, etc.).
	// @example 200
	ResponseCode int32 `protobuf:"varint,6,opt,name=response_code,json=responseCode,proto3" json:"response_code,omitempty"`
	// Error message describing the failure. Empty string on success.
	// Contains the raw error from the HTTP client (e.g., "context deadline exceeded",
	// "connection refused", "no such host").
	ErrorMessage string `protobuf:"bytes,7,opt,name=error_message,json=errorMessage,proto3" json:"error_message,omitempty"`
	// Classified error category for this attempt.
	// Values: "success", "client_error", "server_error", "timeout",
	// "connection_refused", "network_error", "dns_error", "tls_error",
	// "unexpected_status", "unknown".
	// @example "success"
	ErrorCategory string `protobuf:"bytes,8,opt,name=error_category,json=errorCategory,proto3" json:"error_category,omitempty"`
	// When this attempt was made.
	// @example "2025-01-15T10:30:05Z"
	Timestamp *timestamppb.Timestamp `protobuf:"bytes,9,opt,name=timestamp,proto3" json:"timestamp,omitempty"`
	// contains filtered or unexported fields
}

DeliveryAttempt represents a single HTTP request attempt within a delivery. A delivery may have multiple attempts if retries are configured. Each attempt is an immutable record of one HTTP round-trip (or failure to connect).

func (*DeliveryAttempt) Descriptor deprecated added in v0.2.0

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

Deprecated: Use DeliveryAttempt.ProtoReflect.Descriptor instead.

func (*DeliveryAttempt) GetAttemptId added in v0.2.0

func (x *DeliveryAttempt) GetAttemptId() string

func (*DeliveryAttempt) GetDeliveryId added in v0.2.0

func (x *DeliveryAttempt) GetDeliveryId() string

func (*DeliveryAttempt) GetErrorCategory added in v0.2.0

func (x *DeliveryAttempt) GetErrorCategory() string

func (*DeliveryAttempt) GetErrorMessage added in v0.2.0

func (x *DeliveryAttempt) GetErrorMessage() string

func (*DeliveryAttempt) GetResponseCode added in v0.2.0

func (x *DeliveryAttempt) GetResponseCode() int32

func (*DeliveryAttempt) GetResponseTime added in v0.2.0

func (x *DeliveryAttempt) GetResponseTime() int32

func (*DeliveryAttempt) GetSuccess added in v0.2.0

func (x *DeliveryAttempt) GetSuccess() bool

func (*DeliveryAttempt) GetTimestamp added in v0.2.0

func (x *DeliveryAttempt) GetTimestamp() *timestamppb.Timestamp

func (*DeliveryAttempt) GetWebhookId added in v0.2.0

func (x *DeliveryAttempt) GetWebhookId() string

func (*DeliveryAttempt) ProtoMessage added in v0.2.0

func (*DeliveryAttempt) ProtoMessage()

func (*DeliveryAttempt) ProtoReflect added in v0.2.0

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

func (*DeliveryAttempt) Reset added in v0.2.0

func (x *DeliveryAttempt) Reset()

func (*DeliveryAttempt) String added in v0.2.0

func (x *DeliveryAttempt) String() string

type DeliveryServiceClient added in v0.2.0

type DeliveryServiceClient interface {
	// GetDeliveryStatus returns full details of a single delivery, including
	// request body, response body, response code, error category, and retry state.
	// Errors: NOT_FOUND if the delivery_id does not exist in the given namespace.
	GetDeliveryStatus(ctx context.Context, in *GetDeliveryStatusRequest, opts ...grpc.CallOption) (*GetDeliveryStatusResponse, error)
	// ListDeliveries returns delivery records for a namespace, optionally filtered
	// by webhook_id or event_id. Ordered by created_at descending. Paginated.
	ListDeliveries(ctx context.Context, in *ListDeliveriesRequest, opts ...grpc.CallOption) (*ListDeliveriesResponse, error)
	// RetryDelivery re-enqueues deliveries for processing.
	// Can target a specific delivery_id, all failed/pending deliveries for a webhook_id,
	// or both. Set force=true to retry even successful deliveries.
	// Returns the count and IDs of deliveries that were re-enqueued.
	RetryDelivery(ctx context.Context, in *RetryDeliveryRequest, opts ...grpc.CallOption) (*RetryDeliveryResponse, error)
	// GetDeliveryAttempts returns the per-attempt history for a delivery, ordered by timestamp.
	// Each attempt includes response_time, response_code, error_message, and error_category.
	// Errors: INVALID_ARGUMENT if delivery_id is empty.
	GetDeliveryAttempts(ctx context.Context, in *GetDeliveryAttemptsRequest, opts ...grpc.CallOption) (*GetDeliveryAttemptsResponse, error)
	// RetryDeliveries executes a deterministic batch retry of deliveries whose IDs were
	// previously snapshotted via ListDeliveries with prepare_retry=true.
	// Each delivery is reset to pending and re-enqueued for HTTP delivery.
	// The batch is processed asynchronously via a River job; poll GetRetryStatus for progress.
	// Errors: NOT_FOUND if the retry_id does not exist or has expired.
	// Errors: FAILED_PRECONDITION if the batch is not in 'pending' status.
	RetryDeliveries(ctx context.Context, in *RetryDeliveriesRequest, opts ...grpc.CallOption) (*RetryDeliveriesResponse, error)
	// GetRetryStatus returns the current progress of a batch retry operation.
	// Errors: NOT_FOUND if the retry_id does not exist or has expired.
	GetRetryStatus(ctx context.Context, in *GetRetryStatusRequest, opts ...grpc.CallOption) (*GetRetryStatusResponse, error)
	// CancelRetry aborts a batch retry that is pending or in progress.
	// Items already processed are not rolled back.
	// Errors: NOT_FOUND if the retry_id does not exist.
	// Errors: FAILED_PRECONDITION if the batch is already completed or cancelled.
	CancelRetry(ctx context.Context, in *CancelRetryRequest, opts ...grpc.CallOption) (*CancelRetryResponse, error)
}

DeliveryServiceClient is the client API for DeliveryService 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.

DeliveryService provides read access to delivery history and manual retry control. Deliveries are created automatically when an event is pushed. Each delivery tracks its status (pending -> sending -> success/failed/retrying/expired), HTTP response code, response body (up to 1 KB by default, 1 MB if capture_response_body is enabled), error classification, and per-attempt history.

func NewDeliveryServiceClient added in v0.2.0

func NewDeliveryServiceClient(cc grpc.ClientConnInterface) DeliveryServiceClient

type DeliveryServiceServer added in v0.2.0

type DeliveryServiceServer interface {
	// GetDeliveryStatus returns full details of a single delivery, including
	// request body, response body, response code, error category, and retry state.
	// Errors: NOT_FOUND if the delivery_id does not exist in the given namespace.
	GetDeliveryStatus(context.Context, *GetDeliveryStatusRequest) (*GetDeliveryStatusResponse, error)
	// ListDeliveries returns delivery records for a namespace, optionally filtered
	// by webhook_id or event_id. Ordered by created_at descending. Paginated.
	ListDeliveries(context.Context, *ListDeliveriesRequest) (*ListDeliveriesResponse, error)
	// RetryDelivery re-enqueues deliveries for processing.
	// Can target a specific delivery_id, all failed/pending deliveries for a webhook_id,
	// or both. Set force=true to retry even successful deliveries.
	// Returns the count and IDs of deliveries that were re-enqueued.
	RetryDelivery(context.Context, *RetryDeliveryRequest) (*RetryDeliveryResponse, error)
	// GetDeliveryAttempts returns the per-attempt history for a delivery, ordered by timestamp.
	// Each attempt includes response_time, response_code, error_message, and error_category.
	// Errors: INVALID_ARGUMENT if delivery_id is empty.
	GetDeliveryAttempts(context.Context, *GetDeliveryAttemptsRequest) (*GetDeliveryAttemptsResponse, error)
	// RetryDeliveries executes a deterministic batch retry of deliveries whose IDs were
	// previously snapshotted via ListDeliveries with prepare_retry=true.
	// Each delivery is reset to pending and re-enqueued for HTTP delivery.
	// The batch is processed asynchronously via a River job; poll GetRetryStatus for progress.
	// Errors: NOT_FOUND if the retry_id does not exist or has expired.
	// Errors: FAILED_PRECONDITION if the batch is not in 'pending' status.
	RetryDeliveries(context.Context, *RetryDeliveriesRequest) (*RetryDeliveriesResponse, error)
	// GetRetryStatus returns the current progress of a batch retry operation.
	// Errors: NOT_FOUND if the retry_id does not exist or has expired.
	GetRetryStatus(context.Context, *GetRetryStatusRequest) (*GetRetryStatusResponse, error)
	// CancelRetry aborts a batch retry that is pending or in progress.
	// Items already processed are not rolled back.
	// Errors: NOT_FOUND if the retry_id does not exist.
	// Errors: FAILED_PRECONDITION if the batch is already completed or cancelled.
	CancelRetry(context.Context, *CancelRetryRequest) (*CancelRetryResponse, error)
	// contains filtered or unexported methods
}

DeliveryServiceServer is the server API for DeliveryService service. All implementations must embed UnimplementedDeliveryServiceServer for forward compatibility.

DeliveryService provides read access to delivery history and manual retry control. Deliveries are created automatically when an event is pushed. Each delivery tracks its status (pending -> sending -> success/failed/retrying/expired), HTTP response code, response body (up to 1 KB by default, 1 MB if capture_response_body is enabled), error classification, and per-attempt history.

type EventReport

type EventReport struct {

	// Server-generated UUID of the event instance.
	EventId string `protobuf:"bytes,1,opt,name=event_id,json=eventId,proto3" json:"event_id,omitempty"`
	// Namespace the event was pushed into.
	Namespace string `protobuf:"bytes,2,opt,name=namespace,proto3" json:"namespace,omitempty"`
	// Event type name.
	EventName string `protobuf:"bytes,3,opt,name=event_name,json=eventName,proto3" json:"event_name,omitempty"`
	// The original payload that was pushed.
	Payload *structpb.Struct `protobuf:"bytes,4,opt,name=payload,proto3" json:"payload,omitempty"`
	// Metadata attached when the event was pushed.
	Metadata map[string]string `` /* 143-byte string literal not displayed */
	// When the event was pushed.
	CreatedAt *timestamppb.Timestamp `protobuf:"bytes,6,opt,name=created_at,json=createdAt,proto3" json:"created_at,omitempty"`
	// TTL in seconds that was specified when pushing. 0 if no TTL was set.
	TtlSeconds int64 `protobuf:"varint,7,opt,name=ttl_seconds,json=ttlSeconds,proto3" json:"ttl_seconds,omitempty"`
	// Number of webhooks that received (or will receive) a delivery for this event.
	WebhookCount int32 `protobuf:"varint,8,opt,name=webhook_count,json=webhookCount,proto3" json:"webhook_count,omitempty"`
	// Number of deliveries that completed successfully (terminal SUCCESS status).
	SuccessfulDeliveries int32 `protobuf:"varint,9,opt,name=successful_deliveries,json=successfulDeliveries,proto3" json:"successful_deliveries,omitempty"`
	// Number of deliveries that failed permanently (terminal FAILED or EXPIRED status).
	FailedDeliveries int32 `protobuf:"varint,10,opt,name=failed_deliveries,json=failedDeliveries,proto3" json:"failed_deliveries,omitempty"`
	// Number of deliveries still in progress (PENDING, SENDING, or RETRYING status).
	PendingDeliveries int32 `protobuf:"varint,11,opt,name=pending_deliveries,json=pendingDeliveries,proto3" json:"pending_deliveries,omitempty"`
	// Whether the event payload matched the registered JSON schema at push time.
	// Always true when no schema is registered for the event type.
	// When false, the event was still accepted and delivered, but the payload
	// did not conform to the schema. Check PushEventResponse.warnings for details.
	SchemaValid bool `protobuf:"varint,12,opt,name=schema_valid,json=schemaValid,proto3" json:"schema_valid,omitempty"`
	// contains filtered or unexported fields
}

EventReport represents a pushed event instance with aggregated delivery statistics. This is different from RegisteredEvent (which is an event type definition). An EventReport is an actual event that was pushed via PushEvent and may have triggered zero or more deliveries to subscribed webhooks.

func (*EventReport) Descriptor deprecated

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

Deprecated: Use EventReport.ProtoReflect.Descriptor instead.

func (*EventReport) GetCreatedAt

func (x *EventReport) GetCreatedAt() *timestamppb.Timestamp

func (*EventReport) GetEventId

func (x *EventReport) GetEventId() string

func (*EventReport) GetEventName

func (x *EventReport) GetEventName() string

func (*EventReport) GetFailedDeliveries

func (x *EventReport) GetFailedDeliveries() int32

func (*EventReport) GetMetadata

func (x *EventReport) GetMetadata() map[string]string

func (*EventReport) GetNamespace

func (x *EventReport) GetNamespace() string

func (*EventReport) GetPayload

func (x *EventReport) GetPayload() *structpb.Struct

func (*EventReport) GetPendingDeliveries

func (x *EventReport) GetPendingDeliveries() int32

func (*EventReport) GetSchemaValid added in v0.8.0

func (x *EventReport) GetSchemaValid() bool

func (*EventReport) GetSuccessfulDeliveries

func (x *EventReport) GetSuccessfulDeliveries() int32

func (*EventReport) GetTtlSeconds

func (x *EventReport) GetTtlSeconds() int64

func (*EventReport) GetWebhookCount

func (x *EventReport) GetWebhookCount() int32

func (*EventReport) ProtoMessage

func (*EventReport) ProtoMessage()

func (*EventReport) ProtoReflect

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

func (*EventReport) Reset

func (x *EventReport) Reset()

func (*EventReport) String

func (x *EventReport) String() string

type EventServiceClient added in v0.2.0

type EventServiceClient interface {
	// RegisterEvent creates a new event type definition.
	// If a JSON schema is provided, all future PushEvent payloads for this event
	// are validated against it. The event name is the primary identifier (not a UUID).
	// Errors: ALREADY_EXISTS if an event with the same name already exists.
	RegisterEvent(ctx context.Context, in *RegisterEventRequest, opts ...grpc.CallOption) (*RegisterEventResponse, error)
	// ListEvents returns all registered event types, optionally filtered to active-only.
	// Results are paginated.
	ListEvents(ctx context.Context, in *ListEventsRequest, opts ...grpc.CallOption) (*ListEventsResponse, error)
	// UpdateEvent modifies an existing event type's description, schema, metadata, or active flag.
	// Updating the schema does not retroactively validate previously pushed events.
	// Errors: NOT_FOUND if the event name does not exist.
	UpdateEvent(ctx context.Context, in *UpdateEventRequest, opts ...grpc.CallOption) (*UpdateEventResponse, error)
	// DeleteEvent permanently removes an event type definition.
	// Existing subscriptions referencing this event name are not automatically deleted.
	// Errors: NOT_FOUND if the event name does not exist.
	DeleteEvent(ctx context.Context, in *DeleteEventRequest, opts ...grpc.CallOption) (*DeleteEventResponse, error)
	// GetEvent returns a single event type by name, including its schema and auto-generated sample payload.
	// Errors: NOT_FOUND if the event name does not exist.
	GetEvent(ctx context.Context, in *GetEventRequest, opts ...grpc.CallOption) (*GetEventResponse, error)
	// PushEvent emits an event instance. This is the primary ingestion endpoint.
	// On success, the event is persisted and a background job is enqueued to fan out
	// deliveries to all matching subscriptions (by namespace + event_name + label_filters).
	// The response returns immediately with the event_id; delivery happens asynchronously.
	// If the event type has a JSON schema, the payload is validated before acceptance.
	// Errors: INVALID_ARGUMENT if the payload fails schema validation.
	// Errors: NOT_FOUND if the event name is not registered.
	PushEvent(ctx context.Context, in *PushEventRequest, opts ...grpc.CallOption) (*PushEventResponse, error)
	// ListEventReports returns pushed event instances (not type definitions) for a namespace,
	// ordered by created_at descending. Each report includes delivery stats
	// (webhook_count, successful/failed/pending counts). Paginated, max 1000 per page.
	ListEventReports(ctx context.Context, in *ListEventReportsRequest, opts ...grpc.CallOption) (*ListEventReportsResponse, error)
	// GetEventRecord retrieves a single pushed event instance by its UUID.
	// Returns the event record with its payload, metadata, labels, and aggregated
	// delivery statistics (webhook_count, successful/failed/pending counts).
	// This is different from GetEvent which returns an event type definition by name.
	// Errors: NOT_FOUND if the event_id does not exist.
	// Errors: INVALID_ARGUMENT if the event_id is not a valid UUID.
	GetEventRecord(ctx context.Context, in *GetEventRecordRequest, opts ...grpc.CallOption) (*GetEventRecordResponse, error)
	// RePushEvent replays a single previously pushed event as if it were pushed fresh.
	// Loads the original event record and re-pushes through the standard PushEvent pipeline.
	// Errors: NOT_FOUND if the event_id does not exist.
	// Errors: INVALID_ARGUMENT if the event_id is not a valid UUID.
	RePushEvent(ctx context.Context, in *RePushEventRequest, opts ...grpc.CallOption) (*RePushEventResponse, error)
	// RePushEvents executes a deterministic batch re-push of events whose IDs were
	// previously snapshotted via ListEventReports with prepare_repush=true.
	// Each event is re-pushed as if it were pushed fresh: new event_id, current schema validation.
	// The batch is processed asynchronously via a River job; poll GetRepushStatus for progress.
	// Errors: NOT_FOUND if the repush_id does not exist or has expired.
	// Errors: FAILED_PRECONDITION if the batch is not in 'pending' status.
	RePushEvents(ctx context.Context, in *RePushEventsRequest, opts ...grpc.CallOption) (*RePushEventsResponse, error)
	// GetRepushStatus returns the current progress of a batch re-push operation.
	// Errors: NOT_FOUND if the repush_id does not exist or has expired.
	GetRepushStatus(ctx context.Context, in *GetRepushStatusRequest, opts ...grpc.CallOption) (*GetRepushStatusResponse, error)
	// CancelRepush aborts a batch re-push that is pending or in progress.
	// Items already processed are not rolled back.
	// Errors: NOT_FOUND if the repush_id does not exist.
	// Errors: FAILED_PRECONDITION if the batch is already completed or cancelled.
	CancelRepush(ctx context.Context, in *CancelRepushRequest, opts ...grpc.CallOption) (*CancelRepushResponse, error)
}

EventServiceClient is the client API for EventService 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.

EventService manages event type definitions and event pushing. Event types must be registered before they can be pushed. Each event type has a unique name (scoped to the default tenant) and an optional JSON schema for payload validation.

func NewEventServiceClient added in v0.2.0

func NewEventServiceClient(cc grpc.ClientConnInterface) EventServiceClient

type EventServiceServer added in v0.2.0

type EventServiceServer interface {
	// RegisterEvent creates a new event type definition.
	// If a JSON schema is provided, all future PushEvent payloads for this event
	// are validated against it. The event name is the primary identifier (not a UUID).
	// Errors: ALREADY_EXISTS if an event with the same name already exists.
	RegisterEvent(context.Context, *RegisterEventRequest) (*RegisterEventResponse, error)
	// ListEvents returns all registered event types, optionally filtered to active-only.
	// Results are paginated.
	ListEvents(context.Context, *ListEventsRequest) (*ListEventsResponse, error)
	// UpdateEvent modifies an existing event type's description, schema, metadata, or active flag.
	// Updating the schema does not retroactively validate previously pushed events.
	// Errors: NOT_FOUND if the event name does not exist.
	UpdateEvent(context.Context, *UpdateEventRequest) (*UpdateEventResponse, error)
	// DeleteEvent permanently removes an event type definition.
	// Existing subscriptions referencing this event name are not automatically deleted.
	// Errors: NOT_FOUND if the event name does not exist.
	DeleteEvent(context.Context, *DeleteEventRequest) (*DeleteEventResponse, error)
	// GetEvent returns a single event type by name, including its schema and auto-generated sample payload.
	// Errors: NOT_FOUND if the event name does not exist.
	GetEvent(context.Context, *GetEventRequest) (*GetEventResponse, error)
	// PushEvent emits an event instance. This is the primary ingestion endpoint.
	// On success, the event is persisted and a background job is enqueued to fan out
	// deliveries to all matching subscriptions (by namespace + event_name + label_filters).
	// The response returns immediately with the event_id; delivery happens asynchronously.
	// If the event type has a JSON schema, the payload is validated before acceptance.
	// Errors: INVALID_ARGUMENT if the payload fails schema validation.
	// Errors: NOT_FOUND if the event name is not registered.
	PushEvent(context.Context, *PushEventRequest) (*PushEventResponse, error)
	// ListEventReports returns pushed event instances (not type definitions) for a namespace,
	// ordered by created_at descending. Each report includes delivery stats
	// (webhook_count, successful/failed/pending counts). Paginated, max 1000 per page.
	ListEventReports(context.Context, *ListEventReportsRequest) (*ListEventReportsResponse, error)
	// GetEventRecord retrieves a single pushed event instance by its UUID.
	// Returns the event record with its payload, metadata, labels, and aggregated
	// delivery statistics (webhook_count, successful/failed/pending counts).
	// This is different from GetEvent which returns an event type definition by name.
	// Errors: NOT_FOUND if the event_id does not exist.
	// Errors: INVALID_ARGUMENT if the event_id is not a valid UUID.
	GetEventRecord(context.Context, *GetEventRecordRequest) (*GetEventRecordResponse, error)
	// RePushEvent replays a single previously pushed event as if it were pushed fresh.
	// Loads the original event record and re-pushes through the standard PushEvent pipeline.
	// Errors: NOT_FOUND if the event_id does not exist.
	// Errors: INVALID_ARGUMENT if the event_id is not a valid UUID.
	RePushEvent(context.Context, *RePushEventRequest) (*RePushEventResponse, error)
	// RePushEvents executes a deterministic batch re-push of events whose IDs were
	// previously snapshotted via ListEventReports with prepare_repush=true.
	// Each event is re-pushed as if it were pushed fresh: new event_id, current schema validation.
	// The batch is processed asynchronously via a River job; poll GetRepushStatus for progress.
	// Errors: NOT_FOUND if the repush_id does not exist or has expired.
	// Errors: FAILED_PRECONDITION if the batch is not in 'pending' status.
	RePushEvents(context.Context, *RePushEventsRequest) (*RePushEventsResponse, error)
	// GetRepushStatus returns the current progress of a batch re-push operation.
	// Errors: NOT_FOUND if the repush_id does not exist or has expired.
	GetRepushStatus(context.Context, *GetRepushStatusRequest) (*GetRepushStatusResponse, error)
	// CancelRepush aborts a batch re-push that is pending or in progress.
	// Items already processed are not rolled back.
	// Errors: NOT_FOUND if the repush_id does not exist.
	// Errors: FAILED_PRECONDITION if the batch is already completed or cancelled.
	CancelRepush(context.Context, *CancelRepushRequest) (*CancelRepushResponse, error)
	// contains filtered or unexported methods
}

EventServiceServer is the server API for EventService service. All implementations must embed UnimplementedEventServiceServer for forward compatibility.

EventService manages event type definitions and event pushing. Event types must be registered before they can be pushed. Each event type has a unique name (scoped to the default tenant) and an optional JSON schema for payload validation.

type EventSubscription added in v0.2.0

type EventSubscription struct {

	// Server-generated UUID for this subscription.
	SubscriptionId string `protobuf:"bytes,1,opt,name=subscription_id,json=subscriptionId,proto3" json:"subscription_id,omitempty"`
	// UUID of the webhook that receives deliveries through this subscription.
	WebhookId string `protobuf:"bytes,2,opt,name=webhook_id,json=webhookId,proto3" json:"webhook_id,omitempty"`
	// Event type name this subscription listens for.
	EventName string `protobuf:"bytes,3,opt,name=event_name,json=eventName,proto3" json:"event_name,omitempty"`
	// Namespace this subscription belongs to.
	Namespace string `protobuf:"bytes,4,opt,name=namespace,proto3" json:"namespace,omitempty"`
	// Per-subscription HTTP headers added to delivery requests.
	// These are merged with (and override) the webhook's headers.
	Headers map[string]string `` /* 141-byte string literal not displayed */
	// HTTP method override for deliveries through this subscription.
	// Default: "POST". Allows using PUT, PATCH, etc. per subscription.
	Method string `protobuf:"bytes,6,opt,name=method,proto3" json:"method,omitempty"`
	// Per-subscription timeout override in seconds.
	// When set (> 0), overrides the webhook's request_timeout_seconds for this subscription.
	Timeout int32 `protobuf:"varint,7,opt,name=timeout,proto3" json:"timeout,omitempty"`
	// Whether Go template payload transformation is enabled for this subscription.
	TransformEnabled bool `protobuf:"varint,8,opt,name=transform_enabled,json=transformEnabled,proto3" json:"transform_enabled,omitempty"`
	// Go template string for payload transformation. Only used when transform_enabled is true.
	// The template receives the event payload as its data context. Available functions
	// can be listed via WebhookService.GetTemplateFunctions.
	TransformTemplate string `protobuf:"bytes,9,opt,name=transform_template,json=transformTemplate,proto3" json:"transform_template,omitempty"`
	// When this subscription was created.
	CreatedAt *timestamppb.Timestamp `protobuf:"bytes,10,opt,name=created_at,json=createdAt,proto3" json:"created_at,omitempty"`
	// When this subscription was last modified.
	UpdatedAt *timestamppb.Timestamp `protobuf:"bytes,11,opt,name=updated_at,json=updatedAt,proto3" json:"updated_at,omitempty"`
	// Label filters for selective event matching. When set, only events whose labels
	// contain all key-value pairs in this map will trigger deliveries through this subscription.
	// Uses AND logic: every filter must match. Empty map matches all events.
	LabelFilters map[string]string `` /* 172-byte string literal not displayed */
	// contains filtered or unexported fields
}

EventSubscription is the full representation of a subscription linking a webhook to an event type within a namespace.

Subscriptions determine which webhooks receive deliveries when an event is pushed. Matching logic: (namespace = event.namespace) AND (event_name = event.event) AND (all label_filter keys/values match the event's labels).

Optional features:

  • Per-subscription HTTP headers and method override
  • Payload transformation via Go templates
  • Label-based filtering for selective event matching

func (*EventSubscription) Descriptor deprecated added in v0.2.0

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

Deprecated: Use EventSubscription.ProtoReflect.Descriptor instead.

func (*EventSubscription) GetCreatedAt added in v0.2.0

func (x *EventSubscription) GetCreatedAt() *timestamppb.Timestamp

func (*EventSubscription) GetEventName added in v0.2.0

func (x *EventSubscription) GetEventName() string

func (*EventSubscription) GetHeaders added in v0.2.0

func (x *EventSubscription) GetHeaders() map[string]string

func (*EventSubscription) GetLabelFilters added in v0.2.0

func (x *EventSubscription) GetLabelFilters() map[string]string

func (*EventSubscription) GetMethod added in v0.2.0

func (x *EventSubscription) GetMethod() string

func (*EventSubscription) GetNamespace added in v0.2.0

func (x *EventSubscription) GetNamespace() string

func (*EventSubscription) GetSubscriptionId added in v0.2.0

func (x *EventSubscription) GetSubscriptionId() string

func (*EventSubscription) GetTimeout added in v0.2.0

func (x *EventSubscription) GetTimeout() int32

func (*EventSubscription) GetTransformEnabled added in v0.2.0

func (x *EventSubscription) GetTransformEnabled() bool

func (*EventSubscription) GetTransformTemplate added in v0.2.0

func (x *EventSubscription) GetTransformTemplate() string

func (*EventSubscription) GetUpdatedAt added in v0.2.0

func (x *EventSubscription) GetUpdatedAt() *timestamppb.Timestamp

func (*EventSubscription) GetWebhookId added in v0.2.0

func (x *EventSubscription) GetWebhookId() string

func (*EventSubscription) ProtoMessage added in v0.2.0

func (*EventSubscription) ProtoMessage()

func (*EventSubscription) ProtoReflect added in v0.2.0

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

func (*EventSubscription) Reset added in v0.2.0

func (x *EventSubscription) Reset()

func (*EventSubscription) String added in v0.2.0

func (x *EventSubscription) String() string

type GetDeliveryAttemptsRequest added in v0.2.0

type GetDeliveryAttemptsRequest struct {

	// UUID of the delivery to get attempts for. Required.
	// @example "d-550e8400-e29b-41d4-a716-446655440000"
	DeliveryId string `protobuf:"bytes,1,opt,name=delivery_id,json=deliveryId,proto3" json:"delivery_id,omitempty"`
	// contains filtered or unexported fields
}

GetDeliveryAttemptsRequest retrieves the attempt history for a delivery.

func (*GetDeliveryAttemptsRequest) Descriptor deprecated added in v0.2.0

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

Deprecated: Use GetDeliveryAttemptsRequest.ProtoReflect.Descriptor instead.

func (*GetDeliveryAttemptsRequest) GetDeliveryId added in v0.2.0

func (x *GetDeliveryAttemptsRequest) GetDeliveryId() string

func (*GetDeliveryAttemptsRequest) ProtoMessage added in v0.2.0

func (*GetDeliveryAttemptsRequest) ProtoMessage()

func (*GetDeliveryAttemptsRequest) ProtoReflect added in v0.2.0

func (*GetDeliveryAttemptsRequest) Reset added in v0.2.0

func (x *GetDeliveryAttemptsRequest) Reset()

func (*GetDeliveryAttemptsRequest) String added in v0.2.0

func (x *GetDeliveryAttemptsRequest) String() string

type GetDeliveryAttemptsResponse added in v0.2.0

type GetDeliveryAttemptsResponse struct {

	// Delivery attempts ordered by timestamp ascending (oldest first).
	// The last element reflects the most recent attempt.
	Attempts []*DeliveryAttempt `protobuf:"bytes,1,rep,name=attempts,proto3" json:"attempts,omitempty"`
	// contains filtered or unexported fields
}

GetDeliveryAttemptsResponse returns all attempts for a delivery.

func (*GetDeliveryAttemptsResponse) Descriptor deprecated added in v0.2.0

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

Deprecated: Use GetDeliveryAttemptsResponse.ProtoReflect.Descriptor instead.

func (*GetDeliveryAttemptsResponse) GetAttempts added in v0.2.0

func (x *GetDeliveryAttemptsResponse) GetAttempts() []*DeliveryAttempt

func (*GetDeliveryAttemptsResponse) ProtoMessage added in v0.2.0

func (*GetDeliveryAttemptsResponse) ProtoMessage()

func (*GetDeliveryAttemptsResponse) ProtoReflect added in v0.2.0

func (*GetDeliveryAttemptsResponse) Reset added in v0.2.0

func (x *GetDeliveryAttemptsResponse) Reset()

func (*GetDeliveryAttemptsResponse) String added in v0.2.0

func (x *GetDeliveryAttemptsResponse) String() string

type GetDeliveryStatusRequest added in v0.2.0

type GetDeliveryStatusRequest struct {

	// UUID of the delivery to retrieve. Required.
	// @example "d-550e8400-e29b-41d4-a716-446655440000"
	DeliveryId string `protobuf:"bytes,1,opt,name=delivery_id,json=deliveryId,proto3" json:"delivery_id,omitempty"`
	// Namespace the delivery belongs to. Required.
	// @example "production"
	Namespace string `protobuf:"bytes,2,opt,name=namespace,proto3" json:"namespace,omitempty"`
	// contains filtered or unexported fields
}

GetDeliveryStatusRequest retrieves a single delivery by ID.

func (*GetDeliveryStatusRequest) Descriptor deprecated added in v0.2.0

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

Deprecated: Use GetDeliveryStatusRequest.ProtoReflect.Descriptor instead.

func (*GetDeliveryStatusRequest) GetDeliveryId added in v0.2.0

func (x *GetDeliveryStatusRequest) GetDeliveryId() string

func (*GetDeliveryStatusRequest) GetNamespace added in v0.2.0

func (x *GetDeliveryStatusRequest) GetNamespace() string

func (*GetDeliveryStatusRequest) ProtoMessage added in v0.2.0

func (*GetDeliveryStatusRequest) ProtoMessage()

func (*GetDeliveryStatusRequest) ProtoReflect added in v0.2.0

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

func (*GetDeliveryStatusRequest) Reset added in v0.2.0

func (x *GetDeliveryStatusRequest) Reset()

func (*GetDeliveryStatusRequest) String added in v0.2.0

func (x *GetDeliveryStatusRequest) String() string

type GetDeliveryStatusResponse added in v0.2.0

type GetDeliveryStatusResponse struct {

	// Full delivery details including request/response bodies and error info.
	Delivery *WebhookDelivery `protobuf:"bytes,1,opt,name=delivery,proto3" json:"delivery,omitempty"`
	// contains filtered or unexported fields
}

GetDeliveryStatusResponse returns the full delivery details.

func (*GetDeliveryStatusResponse) Descriptor deprecated added in v0.2.0

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

Deprecated: Use GetDeliveryStatusResponse.ProtoReflect.Descriptor instead.

func (*GetDeliveryStatusResponse) GetDelivery added in v0.2.0

func (x *GetDeliveryStatusResponse) GetDelivery() *WebhookDelivery

func (*GetDeliveryStatusResponse) ProtoMessage added in v0.2.0

func (*GetDeliveryStatusResponse) ProtoMessage()

func (*GetDeliveryStatusResponse) ProtoReflect added in v0.2.0

func (*GetDeliveryStatusResponse) Reset added in v0.2.0

func (x *GetDeliveryStatusResponse) Reset()

func (*GetDeliveryStatusResponse) String added in v0.2.0

func (x *GetDeliveryStatusResponse) String() string

type GetEventRecordRequest added in v1.1.0

type GetEventRecordRequest struct {

	// UUID of the event instance. Required.
	// @example "e-550e8400-e29b-41d4-a716-446655440000"
	EventId string `protobuf:"bytes,1,opt,name=event_id,json=eventId,proto3" json:"event_id,omitempty"`
	// contains filtered or unexported fields
}

GetEventRecordRequest retrieves a single pushed event instance by UUID.

func (*GetEventRecordRequest) Descriptor deprecated added in v1.1.0

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

Deprecated: Use GetEventRecordRequest.ProtoReflect.Descriptor instead.

func (*GetEventRecordRequest) GetEventId added in v1.1.0

func (x *GetEventRecordRequest) GetEventId() string

func (*GetEventRecordRequest) ProtoMessage added in v1.1.0

func (*GetEventRecordRequest) ProtoMessage()

func (*GetEventRecordRequest) ProtoReflect added in v1.1.0

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

func (*GetEventRecordRequest) Reset added in v1.1.0

func (x *GetEventRecordRequest) Reset()

func (*GetEventRecordRequest) String added in v1.1.0

func (x *GetEventRecordRequest) String() string

type GetEventRecordResponse added in v1.1.0

type GetEventRecordResponse struct {

	// The event instance with aggregated delivery statistics.
	Event *EventReport `protobuf:"bytes,1,opt,name=event,proto3" json:"event,omitempty"`
	// Labels attached when the event was pushed.
	Labels map[string]string `` /* 139-byte string literal not displayed */
	// When the event expires (based on TTL). Zero value if no TTL was set.
	ExpiresAt *timestamppb.Timestamp `protobuf:"bytes,3,opt,name=expires_at,json=expiresAt,proto3" json:"expires_at,omitempty"`
	// contains filtered or unexported fields
}

GetEventRecordResponse returns the event instance with delivery statistics.

func (*GetEventRecordResponse) Descriptor deprecated added in v1.1.0

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

Deprecated: Use GetEventRecordResponse.ProtoReflect.Descriptor instead.

func (*GetEventRecordResponse) GetEvent added in v1.1.0

func (x *GetEventRecordResponse) GetEvent() *EventReport

func (*GetEventRecordResponse) GetExpiresAt added in v1.1.0

func (x *GetEventRecordResponse) GetExpiresAt() *timestamppb.Timestamp

func (*GetEventRecordResponse) GetLabels added in v1.1.0

func (x *GetEventRecordResponse) GetLabels() map[string]string

func (*GetEventRecordResponse) ProtoMessage added in v1.1.0

func (*GetEventRecordResponse) ProtoMessage()

func (*GetEventRecordResponse) ProtoReflect added in v1.1.0

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

func (*GetEventRecordResponse) Reset added in v1.1.0

func (x *GetEventRecordResponse) Reset()

func (*GetEventRecordResponse) String added in v1.1.0

func (x *GetEventRecordResponse) String() string

type GetEventRequest added in v0.2.0

type GetEventRequest struct {

	// Event name to look up. Required.
	// @example "order.created"
	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
	// contains filtered or unexported fields
}

GetEventRequest retrieves a single event type definition by name.

func (*GetEventRequest) Descriptor deprecated added in v0.2.0

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

Deprecated: Use GetEventRequest.ProtoReflect.Descriptor instead.

func (*GetEventRequest) GetName added in v0.2.0

func (x *GetEventRequest) GetName() string

func (*GetEventRequest) ProtoMessage added in v0.2.0

func (*GetEventRequest) ProtoMessage()

func (*GetEventRequest) ProtoReflect added in v0.2.0

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

func (*GetEventRequest) Reset added in v0.2.0

func (x *GetEventRequest) Reset()

func (*GetEventRequest) String added in v0.2.0

func (x *GetEventRequest) String() string

type GetEventResponse added in v0.2.0

type GetEventResponse struct {

	// The event type definition, including schema and sample_payload.
	Event *RegisteredEvent `protobuf:"bytes,1,opt,name=event,proto3" json:"event,omitempty"`
	// contains filtered or unexported fields
}

GetEventResponse returns the requested event type definition.

func (*GetEventResponse) Descriptor deprecated added in v0.2.0

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

Deprecated: Use GetEventResponse.ProtoReflect.Descriptor instead.

func (*GetEventResponse) GetEvent added in v0.2.0

func (x *GetEventResponse) GetEvent() *RegisteredEvent

func (*GetEventResponse) ProtoMessage added in v0.2.0

func (*GetEventResponse) ProtoMessage()

func (*GetEventResponse) ProtoReflect added in v0.2.0

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

func (*GetEventResponse) Reset added in v0.2.0

func (x *GetEventResponse) Reset()

func (*GetEventResponse) String added in v0.2.0

func (x *GetEventResponse) String() string

type GetHealthSummaryRequest

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

GetHealthSummaryRequest retrieves aggregate health counts across all namespaces. No parameters needed.

func (*GetHealthSummaryRequest) Descriptor deprecated

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

Deprecated: Use GetHealthSummaryRequest.ProtoReflect.Descriptor instead.

func (*GetHealthSummaryRequest) ProtoMessage

func (*GetHealthSummaryRequest) ProtoMessage()

func (*GetHealthSummaryRequest) ProtoReflect

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

func (*GetHealthSummaryRequest) Reset

func (x *GetHealthSummaryRequest) Reset()

func (*GetHealthSummaryRequest) String

func (x *GetHealthSummaryRequest) String() string

type GetHealthSummaryResponse

type GetHealthSummaryResponse struct {

	// Aggregate health counts across all namespaces.
	Summary *HealthSummary `protobuf:"bytes,3,opt,name=summary,proto3" json:"summary,omitempty"`
	// contains filtered or unexported fields
}

GetHealthSummaryResponse returns the aggregate health summary.

func (*GetHealthSummaryResponse) Descriptor deprecated

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

Deprecated: Use GetHealthSummaryResponse.ProtoReflect.Descriptor instead.

func (*GetHealthSummaryResponse) GetSummary

func (x *GetHealthSummaryResponse) GetSummary() *HealthSummary

func (*GetHealthSummaryResponse) ProtoMessage

func (*GetHealthSummaryResponse) ProtoMessage()

func (*GetHealthSummaryResponse) ProtoReflect

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

func (*GetHealthSummaryResponse) Reset

func (x *GetHealthSummaryResponse) Reset()

func (*GetHealthSummaryResponse) String

func (x *GetHealthSummaryResponse) String() string

type GetNamespaceStatsRequest

type GetNamespaceStatsRequest struct {

	// Namespace to get statistics for. Required.
	// @example "production"
	Namespace string `protobuf:"bytes,1,opt,name=namespace,proto3" json:"namespace,omitempty"`
	// contains filtered or unexported fields
}

GetNamespaceStatsRequest retrieves aggregate delivery statistics for a namespace.

func (*GetNamespaceStatsRequest) Descriptor deprecated

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

Deprecated: Use GetNamespaceStatsRequest.ProtoReflect.Descriptor instead.

func (*GetNamespaceStatsRequest) GetNamespace

func (x *GetNamespaceStatsRequest) GetNamespace() string

func (*GetNamespaceStatsRequest) ProtoMessage

func (*GetNamespaceStatsRequest) ProtoMessage()

func (*GetNamespaceStatsRequest) ProtoReflect

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

func (*GetNamespaceStatsRequest) Reset

func (x *GetNamespaceStatsRequest) Reset()

func (*GetNamespaceStatsRequest) String

func (x *GetNamespaceStatsRequest) String() string

type GetNamespaceStatsResponse

type GetNamespaceStatsResponse struct {

	// The namespace these stats apply to.
	Namespace string `protobuf:"bytes,1,opt,name=namespace,proto3" json:"namespace,omitempty"`
	// Aggregate statistics for the namespace.
	Stats *NamespaceStats `protobuf:"bytes,2,opt,name=stats,proto3" json:"stats,omitempty"`
	// contains filtered or unexported fields
}

GetNamespaceStatsResponse returns namespace-level statistics.

func (*GetNamespaceStatsResponse) Descriptor deprecated

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

Deprecated: Use GetNamespaceStatsResponse.ProtoReflect.Descriptor instead.

func (*GetNamespaceStatsResponse) GetNamespace

func (x *GetNamespaceStatsResponse) GetNamespace() string

func (*GetNamespaceStatsResponse) GetStats

func (*GetNamespaceStatsResponse) ProtoMessage

func (*GetNamespaceStatsResponse) ProtoMessage()

func (*GetNamespaceStatsResponse) ProtoReflect

func (*GetNamespaceStatsResponse) Reset

func (x *GetNamespaceStatsResponse) Reset()

func (*GetNamespaceStatsResponse) String

func (x *GetNamespaceStatsResponse) String() string

type GetRepushStatusRequest added in v0.8.0

type GetRepushStatusRequest struct {

	// Batch ID returned by RePushEvents or ListEventReports.
	// @required
	RepushId string `protobuf:"bytes,1,opt,name=repush_id,json=repushId,proto3" json:"repush_id,omitempty"`
	// contains filtered or unexported fields
}

GetRepushStatusRequest polls the progress of a batch re-push.

func (*GetRepushStatusRequest) Descriptor deprecated added in v0.8.0

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

Deprecated: Use GetRepushStatusRequest.ProtoReflect.Descriptor instead.

func (*GetRepushStatusRequest) GetRepushId added in v0.8.0

func (x *GetRepushStatusRequest) GetRepushId() string

func (*GetRepushStatusRequest) ProtoMessage added in v0.8.0

func (*GetRepushStatusRequest) ProtoMessage()

func (*GetRepushStatusRequest) ProtoReflect added in v0.8.0

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

func (*GetRepushStatusRequest) Reset added in v0.8.0

func (x *GetRepushStatusRequest) Reset()

func (*GetRepushStatusRequest) String added in v0.8.0

func (x *GetRepushStatusRequest) String() string

type GetRepushStatusResponse added in v0.8.0

type GetRepushStatusResponse struct {

	// Full batch job status.
	Batch *BatchJobStatus `protobuf:"bytes,1,opt,name=batch,proto3" json:"batch,omitempty"`
	// contains filtered or unexported fields
}

GetRepushStatusResponse returns current batch re-push progress.

func (*GetRepushStatusResponse) Descriptor deprecated added in v0.8.0

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

Deprecated: Use GetRepushStatusResponse.ProtoReflect.Descriptor instead.

func (*GetRepushStatusResponse) GetBatch added in v0.8.0

func (x *GetRepushStatusResponse) GetBatch() *BatchJobStatus

func (*GetRepushStatusResponse) ProtoMessage added in v0.8.0

func (*GetRepushStatusResponse) ProtoMessage()

func (*GetRepushStatusResponse) ProtoReflect added in v0.8.0

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

func (*GetRepushStatusResponse) Reset added in v0.8.0

func (x *GetRepushStatusResponse) Reset()

func (*GetRepushStatusResponse) String added in v0.8.0

func (x *GetRepushStatusResponse) String() string

type GetRetryStatusRequest added in v0.8.0

type GetRetryStatusRequest struct {

	// Batch ID returned by RetryDeliveries or ListDeliveries.
	// @required
	RetryId string `protobuf:"bytes,1,opt,name=retry_id,json=retryId,proto3" json:"retry_id,omitempty"`
	// contains filtered or unexported fields
}

GetRetryStatusRequest polls the progress of a batch retry.

func (*GetRetryStatusRequest) Descriptor deprecated added in v0.8.0

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

Deprecated: Use GetRetryStatusRequest.ProtoReflect.Descriptor instead.

func (*GetRetryStatusRequest) GetRetryId added in v0.8.0

func (x *GetRetryStatusRequest) GetRetryId() string

func (*GetRetryStatusRequest) ProtoMessage added in v0.8.0

func (*GetRetryStatusRequest) ProtoMessage()

func (*GetRetryStatusRequest) ProtoReflect added in v0.8.0

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

func (*GetRetryStatusRequest) Reset added in v0.8.0

func (x *GetRetryStatusRequest) Reset()

func (*GetRetryStatusRequest) String added in v0.8.0

func (x *GetRetryStatusRequest) String() string

type GetRetryStatusResponse added in v0.8.0

type GetRetryStatusResponse struct {

	// Full batch job status.
	Batch *BatchJobStatus `protobuf:"bytes,1,opt,name=batch,proto3" json:"batch,omitempty"`
	// contains filtered or unexported fields
}

GetRetryStatusResponse returns current batch retry progress.

func (*GetRetryStatusResponse) Descriptor deprecated added in v0.8.0

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

Deprecated: Use GetRetryStatusResponse.ProtoReflect.Descriptor instead.

func (*GetRetryStatusResponse) GetBatch added in v0.8.0

func (x *GetRetryStatusResponse) GetBatch() *BatchJobStatus

func (*GetRetryStatusResponse) ProtoMessage added in v0.8.0

func (*GetRetryStatusResponse) ProtoMessage()

func (*GetRetryStatusResponse) ProtoReflect added in v0.8.0

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

func (*GetRetryStatusResponse) Reset added in v0.8.0

func (x *GetRetryStatusResponse) Reset()

func (*GetRetryStatusResponse) String added in v0.8.0

func (x *GetRetryStatusResponse) String() string

type GetSubscriptionRequest added in v0.2.0

type GetSubscriptionRequest struct {

	// UUID of the subscription to retrieve. Required.
	// @example "7c9e6679-7425-40de-944b-e07fc1f90ae7"
	SubscriptionId string `protobuf:"bytes,1,opt,name=subscription_id,json=subscriptionId,proto3" json:"subscription_id,omitempty"`
	// Namespace the subscription belongs to. Required.
	// @example "production"
	Namespace string `protobuf:"bytes,2,opt,name=namespace,proto3" json:"namespace,omitempty"`
	// contains filtered or unexported fields
}

GetSubscriptionRequest retrieves a single subscription by ID.

func (*GetSubscriptionRequest) Descriptor deprecated added in v0.2.0

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

Deprecated: Use GetSubscriptionRequest.ProtoReflect.Descriptor instead.

func (*GetSubscriptionRequest) GetNamespace added in v0.2.0

func (x *GetSubscriptionRequest) GetNamespace() string

func (*GetSubscriptionRequest) GetSubscriptionId added in v0.2.0

func (x *GetSubscriptionRequest) GetSubscriptionId() string

func (*GetSubscriptionRequest) ProtoMessage added in v0.2.0

func (*GetSubscriptionRequest) ProtoMessage()

func (*GetSubscriptionRequest) ProtoReflect added in v0.2.0

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

func (*GetSubscriptionRequest) Reset added in v0.2.0

func (x *GetSubscriptionRequest) Reset()

func (*GetSubscriptionRequest) String added in v0.2.0

func (x *GetSubscriptionRequest) String() string

type GetSubscriptionResponse added in v0.2.0

type GetSubscriptionResponse struct {

	// Full subscription details.
	Subscription *EventSubscription `protobuf:"bytes,1,opt,name=subscription,proto3" json:"subscription,omitempty"`
	// contains filtered or unexported fields
}

GetSubscriptionResponse returns the requested subscription.

func (*GetSubscriptionResponse) Descriptor deprecated added in v0.2.0

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

Deprecated: Use GetSubscriptionResponse.ProtoReflect.Descriptor instead.

func (*GetSubscriptionResponse) GetSubscription added in v0.2.0

func (x *GetSubscriptionResponse) GetSubscription() *EventSubscription

func (*GetSubscriptionResponse) ProtoMessage added in v0.2.0

func (*GetSubscriptionResponse) ProtoMessage()

func (*GetSubscriptionResponse) ProtoReflect added in v0.2.0

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

func (*GetSubscriptionResponse) Reset added in v0.2.0

func (x *GetSubscriptionResponse) Reset()

func (*GetSubscriptionResponse) String added in v0.2.0

func (x *GetSubscriptionResponse) String() string

type GetTemplateFunctionsRequest added in v0.2.0

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

GetTemplateFunctionsRequest retrieves the list of available template functions. No parameters needed.

func (*GetTemplateFunctionsRequest) Descriptor deprecated added in v0.2.0

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

Deprecated: Use GetTemplateFunctionsRequest.ProtoReflect.Descriptor instead.

func (*GetTemplateFunctionsRequest) ProtoMessage added in v0.2.0

func (*GetTemplateFunctionsRequest) ProtoMessage()

func (*GetTemplateFunctionsRequest) ProtoReflect added in v0.2.0

func (*GetTemplateFunctionsRequest) Reset added in v0.2.0

func (x *GetTemplateFunctionsRequest) Reset()

func (*GetTemplateFunctionsRequest) String added in v0.2.0

func (x *GetTemplateFunctionsRequest) String() string

type GetTemplateFunctionsResponse added in v0.2.0

type GetTemplateFunctionsResponse struct {

	// Available template functions with names and descriptions.
	Functions []*TemplateFunction `protobuf:"bytes,1,rep,name=functions,proto3" json:"functions,omitempty"`
	// Total number of available functions.
	// @example 42
	TotalCount int32 `protobuf:"varint,2,opt,name=total_count,json=totalCount,proto3" json:"total_count,omitempty"`
	// contains filtered or unexported fields
}

GetTemplateFunctionsResponse returns all Go template functions available for subscription payload transformation.

func (*GetTemplateFunctionsResponse) Descriptor deprecated added in v0.2.0

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

Deprecated: Use GetTemplateFunctionsResponse.ProtoReflect.Descriptor instead.

func (*GetTemplateFunctionsResponse) GetFunctions added in v0.2.0

func (x *GetTemplateFunctionsResponse) GetFunctions() []*TemplateFunction

func (*GetTemplateFunctionsResponse) GetTotalCount added in v0.2.0

func (x *GetTemplateFunctionsResponse) GetTotalCount() int32

func (*GetTemplateFunctionsResponse) ProtoMessage added in v0.2.0

func (*GetTemplateFunctionsResponse) ProtoMessage()

func (*GetTemplateFunctionsResponse) ProtoReflect added in v0.2.0

func (*GetTemplateFunctionsResponse) Reset added in v0.2.0

func (x *GetTemplateFunctionsResponse) Reset()

func (*GetTemplateFunctionsResponse) String added in v0.2.0

type GetWebhookHealthRequest

type GetWebhookHealthRequest struct {

	// UUID of the webhook. Required.
	// @example "550e8400-e29b-41d4-a716-446655440000"
	WebhookId string `protobuf:"bytes,1,opt,name=webhook_id,json=webhookId,proto3" json:"webhook_id,omitempty"`
	// Namespace the webhook belongs to. Required.
	// @example "production"
	Namespace string `protobuf:"bytes,2,opt,name=namespace,proto3" json:"namespace,omitempty"`
	// contains filtered or unexported fields
}

GetWebhookHealthRequest retrieves health status for a single webhook.

func (*GetWebhookHealthRequest) Descriptor deprecated

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

Deprecated: Use GetWebhookHealthRequest.ProtoReflect.Descriptor instead.

func (*GetWebhookHealthRequest) GetNamespace

func (x *GetWebhookHealthRequest) GetNamespace() string

func (*GetWebhookHealthRequest) GetWebhookId

func (x *GetWebhookHealthRequest) GetWebhookId() string

func (*GetWebhookHealthRequest) ProtoMessage

func (*GetWebhookHealthRequest) ProtoMessage()

func (*GetWebhookHealthRequest) ProtoReflect

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

func (*GetWebhookHealthRequest) Reset

func (x *GetWebhookHealthRequest) Reset()

func (*GetWebhookHealthRequest) String

func (x *GetWebhookHealthRequest) String() string

type GetWebhookHealthResponse

type GetWebhookHealthResponse struct {

	// UUID of the webhook.
	WebhookId string `protobuf:"bytes,3,opt,name=webhook_id,json=webhookId,proto3" json:"webhook_id,omitempty"`
	// Computed health status based on success_rate and consecutive_failures.
	// Returns HEALTH_UNSPECIFIED if the webhook has no delivery history.
	// @example "HEALTHY"
	Health WebhookHealth `protobuf:"varint,4,opt,name=health,proto3,enum=webhook.WebhookHealth" json:"health,omitempty"`
	// Detailed health metrics. Null if the webhook has no delivery history.
	Metrics *WebhookHealthMetrics `protobuf:"bytes,5,opt,name=metrics,proto3" json:"metrics,omitempty"`
	// contains filtered or unexported fields
}

GetWebhookHealthResponse returns health status and metrics for a webhook.

func (*GetWebhookHealthResponse) Descriptor deprecated

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

Deprecated: Use GetWebhookHealthResponse.ProtoReflect.Descriptor instead.

func (*GetWebhookHealthResponse) GetHealth

func (x *GetWebhookHealthResponse) GetHealth() WebhookHealth

func (*GetWebhookHealthResponse) GetMetrics

func (*GetWebhookHealthResponse) GetWebhookId

func (x *GetWebhookHealthResponse) GetWebhookId() string

func (*GetWebhookHealthResponse) ProtoMessage

func (*GetWebhookHealthResponse) ProtoMessage()

func (*GetWebhookHealthResponse) ProtoReflect

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

func (*GetWebhookHealthResponse) Reset

func (x *GetWebhookHealthResponse) Reset()

func (*GetWebhookHealthResponse) String

func (x *GetWebhookHealthResponse) String() string

type HealthServiceClient added in v0.2.0

type HealthServiceClient interface {
	// GetWebhookHealth returns health status and detailed metrics for a single webhook:
	// total/successful/failed deliveries, consecutive failures, success rate, avg response time,
	// and error category breakdown (client/server/timeout/network errors).
	// Returns HEALTH_UNSPECIFIED with no metrics if the webhook has no delivery history.
	GetWebhookHealth(ctx context.Context, in *GetWebhookHealthRequest, opts ...grpc.CallOption) (*GetWebhookHealthResponse, error)
	// ListWebhooksByHealth returns all webhooks matching a given health status.
	// Useful for finding degraded or unhealthy endpoints. Paginated.
	ListWebhooksByHealth(ctx context.Context, in *ListWebhooksByHealthRequest, opts ...grpc.CallOption) (*ListWebhooksByHealthResponse, error)
	// GetHealthSummary returns aggregate counts of webhooks by health status
	// (healthy, degraded, unhealthy, unknown) across all namespaces.
	GetHealthSummary(ctx context.Context, in *GetHealthSummaryRequest, opts ...grpc.CallOption) (*GetHealthSummaryResponse, error)
}

HealthServiceClient is the client API for HealthService 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.

HealthService provides webhook health metrics derived from delivery outcomes. Health is computed per-webhook based on success rate and consecutive failures: HEALTHY (>90% success, <3 consecutive failures), DEGRADED (50-90% or 3-9 consecutive), UNHEALTHY (<50% or 10+ consecutive failures).

func NewHealthServiceClient added in v0.2.0

func NewHealthServiceClient(cc grpc.ClientConnInterface) HealthServiceClient

type HealthServiceServer added in v0.2.0

type HealthServiceServer interface {
	// GetWebhookHealth returns health status and detailed metrics for a single webhook:
	// total/successful/failed deliveries, consecutive failures, success rate, avg response time,
	// and error category breakdown (client/server/timeout/network errors).
	// Returns HEALTH_UNSPECIFIED with no metrics if the webhook has no delivery history.
	GetWebhookHealth(context.Context, *GetWebhookHealthRequest) (*GetWebhookHealthResponse, error)
	// ListWebhooksByHealth returns all webhooks matching a given health status.
	// Useful for finding degraded or unhealthy endpoints. Paginated.
	ListWebhooksByHealth(context.Context, *ListWebhooksByHealthRequest) (*ListWebhooksByHealthResponse, error)
	// GetHealthSummary returns aggregate counts of webhooks by health status
	// (healthy, degraded, unhealthy, unknown) across all namespaces.
	GetHealthSummary(context.Context, *GetHealthSummaryRequest) (*GetHealthSummaryResponse, error)
	// contains filtered or unexported methods
}

HealthServiceServer is the server API for HealthService service. All implementations must embed UnimplementedHealthServiceServer for forward compatibility.

HealthService provides webhook health metrics derived from delivery outcomes. Health is computed per-webhook based on success rate and consecutive failures: HEALTHY (>90% success, <3 consecutive failures), DEGRADED (50-90% or 3-9 consecutive), UNHEALTHY (<50% or 10+ consecutive failures).

type HealthSummary

type HealthSummary struct {

	// Number of webhooks in HEALTHY state (>90% success rate, <3 consecutive failures).
	// @example 45
	HealthyCount int32 `protobuf:"varint,1,opt,name=healthy_count,json=healthyCount,proto3" json:"healthy_count,omitempty"`
	// Number of webhooks in DEGRADED state (50-90% success rate or 3-9 consecutive failures).
	// @example 3
	DegradedCount int32 `protobuf:"varint,2,opt,name=degraded_count,json=degradedCount,proto3" json:"degraded_count,omitempty"`
	// Number of webhooks in UNHEALTHY state (<50% success rate or 10+ consecutive failures).
	// @example 1
	UnhealthyCount int32 `protobuf:"varint,3,opt,name=unhealthy_count,json=unhealthyCount,proto3" json:"unhealthy_count,omitempty"`
	// Number of webhooks with no delivery history (HEALTH_UNSPECIFIED).
	// @example 2
	UnknownCount int32 `protobuf:"varint,4,opt,name=unknown_count,json=unknownCount,proto3" json:"unknown_count,omitempty"`
	// Total number of webhooks (sum of all categories above).
	// @example 51
	TotalCount int32 `protobuf:"varint,5,opt,name=total_count,json=totalCount,proto3" json:"total_count,omitempty"`
	// contains filtered or unexported fields
}

HealthSummary provides a high-level overview of webhook health across the entire system. Useful for dashboards and monitoring alerts.

func (*HealthSummary) Descriptor deprecated

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

Deprecated: Use HealthSummary.ProtoReflect.Descriptor instead.

func (*HealthSummary) GetDegradedCount

func (x *HealthSummary) GetDegradedCount() int32

func (*HealthSummary) GetHealthyCount

func (x *HealthSummary) GetHealthyCount() int32

func (*HealthSummary) GetTotalCount

func (x *HealthSummary) GetTotalCount() int32

func (*HealthSummary) GetUnhealthyCount

func (x *HealthSummary) GetUnhealthyCount() int32

func (*HealthSummary) GetUnknownCount

func (x *HealthSummary) GetUnknownCount() int32

func (*HealthSummary) ProtoMessage

func (*HealthSummary) ProtoMessage()

func (*HealthSummary) ProtoReflect

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

func (*HealthSummary) Reset

func (x *HealthSummary) Reset()

func (*HealthSummary) String

func (x *HealthSummary) String() string

type ListDeliveriesRequest added in v0.2.0

type ListDeliveriesRequest struct {

	// Namespace to list deliveries from. Required.
	// @example "production"
	Namespace string `protobuf:"bytes,1,opt,name=namespace,proto3" json:"namespace,omitempty"`
	// Filter by webhook UUID. Optional.
	// @example "550e8400-e29b-41d4-a716-446655440000"
	WebhookId string `protobuf:"bytes,2,opt,name=webhook_id,json=webhookId,proto3" json:"webhook_id,omitempty"`
	// Filter by event UUID. Optional.
	EventId string `protobuf:"bytes,3,opt,name=event_id,json=eventId,proto3" json:"event_id,omitempty"`
	// Pagination parameters. Default: limit=50, offset=0.
	// @example {"limit": 20}
	Pagination *PaginationRequest `protobuf:"bytes,4,opt,name=pagination,proto3" json:"pagination,omitempty"`
	// Filter by delivery status. Optional.
	// @example "failed"
	Status *string `protobuf:"bytes,5,opt,name=status,proto3,oneof" json:"status,omitempty"`
	// Filter by error classification. Optional.
	// @example "server_error"
	ErrorCategory *string `protobuf:"bytes,6,opt,name=error_category,json=errorCategory,proto3,oneof" json:"error_category,omitempty"`
	// Filter by subscription UUID. Optional.
	SubscriptionId *string `protobuf:"bytes,7,opt,name=subscription_id,json=subscriptionId,proto3,oneof" json:"subscription_id,omitempty"`
	// Filter to deliveries created at or after this timestamp.
	CreatedAfter *timestamppb.Timestamp `protobuf:"bytes,8,opt,name=created_after,json=createdAfter,proto3" json:"created_after,omitempty"`
	// Filter to deliveries created at or before this timestamp.
	CreatedBefore *timestamppb.Timestamp `protobuf:"bytes,9,opt,name=created_before,json=createdBefore,proto3" json:"created_before,omitempty"`
	// When true, snapshot all matching delivery IDs (up to 10,000) into a
	// batch job and return a retry_id in the response. Pass that ID to
	// RetryDeliveries to retry the exact set that matched this query.
	PrepareRetry bool `protobuf:"varint,10,opt,name=prepare_retry,json=prepareRetry,proto3" json:"prepare_retry,omitempty"`
	// contains filtered or unexported fields
}

ListDeliveriesRequest specifies filters for listing deliveries. Results are always ordered by created_at descending (newest first).

func (*ListDeliveriesRequest) Descriptor deprecated added in v0.2.0

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

Deprecated: Use ListDeliveriesRequest.ProtoReflect.Descriptor instead.

func (*ListDeliveriesRequest) GetCreatedAfter added in v0.8.0

func (x *ListDeliveriesRequest) GetCreatedAfter() *timestamppb.Timestamp

func (*ListDeliveriesRequest) GetCreatedBefore added in v0.8.0

func (x *ListDeliveriesRequest) GetCreatedBefore() *timestamppb.Timestamp

func (*ListDeliveriesRequest) GetErrorCategory added in v0.8.0

func (x *ListDeliveriesRequest) GetErrorCategory() string

func (*ListDeliveriesRequest) GetEventId added in v0.2.0

func (x *ListDeliveriesRequest) GetEventId() string

func (*ListDeliveriesRequest) GetNamespace added in v0.2.0

func (x *ListDeliveriesRequest) GetNamespace() string

func (*ListDeliveriesRequest) GetPagination added in v0.2.0

func (x *ListDeliveriesRequest) GetPagination() *PaginationRequest

func (*ListDeliveriesRequest) GetPrepareRetry added in v0.8.0

func (x *ListDeliveriesRequest) GetPrepareRetry() bool

func (*ListDeliveriesRequest) GetStatus added in v0.8.0

func (x *ListDeliveriesRequest) GetStatus() string

func (*ListDeliveriesRequest) GetSubscriptionId added in v0.8.0

func (x *ListDeliveriesRequest) GetSubscriptionId() string

func (*ListDeliveriesRequest) GetWebhookId added in v0.2.0

func (x *ListDeliveriesRequest) GetWebhookId() string

func (*ListDeliveriesRequest) ProtoMessage added in v0.2.0

func (*ListDeliveriesRequest) ProtoMessage()

func (*ListDeliveriesRequest) ProtoReflect added in v0.2.0

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

func (*ListDeliveriesRequest) Reset added in v0.2.0

func (x *ListDeliveriesRequest) Reset()

func (*ListDeliveriesRequest) String added in v0.2.0

func (x *ListDeliveriesRequest) String() string

type ListDeliveriesResponse added in v0.2.0

type ListDeliveriesResponse struct {

	// Deliveries matching the filter criteria, newest first.
	Deliveries []*WebhookDelivery `protobuf:"bytes,1,rep,name=deliveries,proto3" json:"deliveries,omitempty"`
	// Pagination metadata.
	Pagination *PaginationResponse `protobuf:"bytes,2,opt,name=pagination,proto3" json:"pagination,omitempty"`
	// Batch ID for deterministic retry. Only populated when
	// prepare_retry=true was set in the request. Pass to RetryDeliveries.
	RetryId string `protobuf:"bytes,5,opt,name=retry_id,json=retryId,proto3" json:"retry_id,omitempty"`
	// contains filtered or unexported fields
}

ListDeliveriesResponse contains the paginated list of deliveries.

func (*ListDeliveriesResponse) Descriptor deprecated added in v0.2.0

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

Deprecated: Use ListDeliveriesResponse.ProtoReflect.Descriptor instead.

func (*ListDeliveriesResponse) GetDeliveries added in v0.2.0

func (x *ListDeliveriesResponse) GetDeliveries() []*WebhookDelivery

func (*ListDeliveriesResponse) GetPagination added in v0.2.0

func (x *ListDeliveriesResponse) GetPagination() *PaginationResponse

func (*ListDeliveriesResponse) GetRetryId added in v0.8.0

func (x *ListDeliveriesResponse) GetRetryId() string

func (*ListDeliveriesResponse) ProtoMessage added in v0.2.0

func (*ListDeliveriesResponse) ProtoMessage()

func (*ListDeliveriesResponse) ProtoReflect added in v0.2.0

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

func (*ListDeliveriesResponse) Reset added in v0.2.0

func (x *ListDeliveriesResponse) Reset()

func (*ListDeliveriesResponse) String added in v0.2.0

func (x *ListDeliveriesResponse) String() string

type ListEventReportsRequest

type ListEventReportsRequest struct {

	// Namespace to list events from. Required.
	// @example "production"
	Namespace string `protobuf:"bytes,1,opt,name=namespace,proto3" json:"namespace,omitempty"`
	// Filter to events of this type name. Optional.
	// @example "order.created"
	EventName *string `protobuf:"bytes,2,opt,name=event_name,json=eventName,proto3,oneof" json:"event_name,omitempty"`
	// Pagination parameters. Default: limit=50, offset=0. Max limit: 1000.
	// @example {"limit": 25}
	Pagination *PaginationRequest `protobuf:"bytes,3,opt,name=pagination,proto3" json:"pagination,omitempty"`
	// Filter by schema validation status. When set, only events matching
	// the specified schema_valid value are returned.
	SchemaValid *bool `protobuf:"varint,6,opt,name=schema_valid,json=schemaValid,proto3,oneof" json:"schema_valid,omitempty"`
	// Filter by labels using JSONB containment. Only events whose labels
	// contain all specified key-value pairs are returned.
	// @example {"region": "us-east"}
	Labels map[string]string `` /* 139-byte string literal not displayed */
	// Filter to events created at or after this timestamp.
	CreatedAfter *timestamppb.Timestamp `protobuf:"bytes,8,opt,name=created_after,json=createdAfter,proto3" json:"created_after,omitempty"`
	// Filter to events created at or before this timestamp.
	CreatedBefore *timestamppb.Timestamp `protobuf:"bytes,9,opt,name=created_before,json=createdBefore,proto3" json:"created_before,omitempty"`
	// When true, snapshot all matching event IDs (up to 10,000) into a
	// batch job and return a repush_id in the response. Pass that ID to
	// RePushEvents to re-push the exact set of events that matched this query.
	PrepareRepush bool `protobuf:"varint,10,opt,name=prepare_repush,json=prepareRepush,proto3" json:"prepare_repush,omitempty"`
	// contains filtered or unexported fields
}

ListEventReportsRequest specifies filters for listing pushed event instances.

func (*ListEventReportsRequest) Descriptor deprecated

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

Deprecated: Use ListEventReportsRequest.ProtoReflect.Descriptor instead.

func (*ListEventReportsRequest) GetCreatedAfter added in v0.8.0

func (x *ListEventReportsRequest) GetCreatedAfter() *timestamppb.Timestamp

func (*ListEventReportsRequest) GetCreatedBefore added in v0.8.0

func (x *ListEventReportsRequest) GetCreatedBefore() *timestamppb.Timestamp

func (*ListEventReportsRequest) GetEventName

func (x *ListEventReportsRequest) GetEventName() string

func (*ListEventReportsRequest) GetLabels added in v0.8.0

func (x *ListEventReportsRequest) GetLabels() map[string]string

func (*ListEventReportsRequest) GetNamespace

func (x *ListEventReportsRequest) GetNamespace() string

func (*ListEventReportsRequest) GetPagination added in v0.2.0

func (x *ListEventReportsRequest) GetPagination() *PaginationRequest

func (*ListEventReportsRequest) GetPrepareRepush added in v0.8.0

func (x *ListEventReportsRequest) GetPrepareRepush() bool

func (*ListEventReportsRequest) GetSchemaValid added in v0.8.0

func (x *ListEventReportsRequest) GetSchemaValid() bool

func (*ListEventReportsRequest) ProtoMessage

func (*ListEventReportsRequest) ProtoMessage()

func (*ListEventReportsRequest) ProtoReflect

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

func (*ListEventReportsRequest) Reset

func (x *ListEventReportsRequest) Reset()

func (*ListEventReportsRequest) String

func (x *ListEventReportsRequest) String() string

type ListEventReportsResponse

type ListEventReportsResponse struct {

	// Event instances ordered by created_at descending (newest first).
	Events []*EventReport `protobuf:"bytes,1,rep,name=events,proto3" json:"events,omitempty"`
	// Pagination metadata.
	Pagination *PaginationResponse `protobuf:"bytes,5,opt,name=pagination,proto3" json:"pagination,omitempty"`
	// Batch ID for deterministic re-push. Only populated when
	// prepare_repush=true was set in the request. Pass to RePushEvents.
	RepushId string `protobuf:"bytes,6,opt,name=repush_id,json=repushId,proto3" json:"repush_id,omitempty"`
	// contains filtered or unexported fields
}

ListEventReportsResponse contains pushed event instances with delivery statistics.

func (*ListEventReportsResponse) Descriptor deprecated

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

Deprecated: Use ListEventReportsResponse.ProtoReflect.Descriptor instead.

func (*ListEventReportsResponse) GetEvents

func (x *ListEventReportsResponse) GetEvents() []*EventReport

func (*ListEventReportsResponse) GetPagination added in v0.2.0

func (x *ListEventReportsResponse) GetPagination() *PaginationResponse

func (*ListEventReportsResponse) GetRepushId added in v0.8.0

func (x *ListEventReportsResponse) GetRepushId() string

func (*ListEventReportsResponse) ProtoMessage

func (*ListEventReportsResponse) ProtoMessage()

func (*ListEventReportsResponse) ProtoReflect

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

func (*ListEventReportsResponse) Reset

func (x *ListEventReportsResponse) Reset()

func (*ListEventReportsResponse) String

func (x *ListEventReportsResponse) String() string

type ListEventsRequest

type ListEventsRequest struct {

	// When true, only return active event types. Default: false (return all).
	// @example true
	ActiveOnly bool `protobuf:"varint,1,opt,name=active_only,json=activeOnly,proto3" json:"active_only,omitempty"`
	// Pagination parameters. Default: limit=50, offset=0.
	Pagination *PaginationRequest `protobuf:"bytes,2,opt,name=pagination,proto3" json:"pagination,omitempty"`
	// contains filtered or unexported fields
}

ListEventsRequest specifies filters for listing registered event types.

func (*ListEventsRequest) Descriptor deprecated

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

Deprecated: Use ListEventsRequest.ProtoReflect.Descriptor instead.

func (*ListEventsRequest) GetActiveOnly

func (x *ListEventsRequest) GetActiveOnly() bool

func (*ListEventsRequest) GetPagination added in v0.2.0

func (x *ListEventsRequest) GetPagination() *PaginationRequest

func (*ListEventsRequest) ProtoMessage

func (*ListEventsRequest) ProtoMessage()

func (*ListEventsRequest) ProtoReflect

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

func (*ListEventsRequest) Reset

func (x *ListEventsRequest) Reset()

func (*ListEventsRequest) String

func (x *ListEventsRequest) String() string

type ListEventsResponse

type ListEventsResponse struct {

	// Event type definitions matching the filter criteria.
	Events []*RegisteredEvent `protobuf:"bytes,1,rep,name=events,proto3" json:"events,omitempty"`
	// Pagination metadata.
	Pagination *PaginationResponse `protobuf:"bytes,2,opt,name=pagination,proto3" json:"pagination,omitempty"`
	// contains filtered or unexported fields
}

ListEventsResponse contains the paginated list of event type definitions.

func (*ListEventsResponse) Descriptor deprecated

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

Deprecated: Use ListEventsResponse.ProtoReflect.Descriptor instead.

func (*ListEventsResponse) GetEvents

func (x *ListEventsResponse) GetEvents() []*RegisteredEvent

func (*ListEventsResponse) GetPagination added in v0.2.0

func (x *ListEventsResponse) GetPagination() *PaginationResponse

func (*ListEventsResponse) ProtoMessage

func (*ListEventsResponse) ProtoMessage()

func (*ListEventsResponse) ProtoReflect

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

func (*ListEventsResponse) Reset

func (x *ListEventsResponse) Reset()

func (*ListEventsResponse) String

func (x *ListEventsResponse) String() string

type ListSubscriptionsByEventRequest added in v0.2.0

type ListSubscriptionsByEventRequest struct {

	// Namespace to search in. Required.
	Namespace string `protobuf:"bytes,1,opt,name=namespace,proto3" json:"namespace,omitempty"`
	// Event name to filter by. Required.
	EventName string `protobuf:"bytes,2,opt,name=event_name,json=eventName,proto3" json:"event_name,omitempty"`
	// contains filtered or unexported fields
}

ListSubscriptionsByEventRequest lists subscriptions for a specific event in a namespace. Note: this message is defined for internal use but not exposed as a standalone RPC. Use ListSubscriptions with event_name filter instead.

func (*ListSubscriptionsByEventRequest) Descriptor deprecated added in v0.2.0

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

Deprecated: Use ListSubscriptionsByEventRequest.ProtoReflect.Descriptor instead.

func (*ListSubscriptionsByEventRequest) GetEventName added in v0.2.0

func (x *ListSubscriptionsByEventRequest) GetEventName() string

func (*ListSubscriptionsByEventRequest) GetNamespace added in v0.2.0

func (x *ListSubscriptionsByEventRequest) GetNamespace() string

func (*ListSubscriptionsByEventRequest) ProtoMessage added in v0.2.0

func (*ListSubscriptionsByEventRequest) ProtoMessage()

func (*ListSubscriptionsByEventRequest) ProtoReflect added in v0.2.0

func (*ListSubscriptionsByEventRequest) Reset added in v0.2.0

func (*ListSubscriptionsByEventRequest) String added in v0.2.0

type ListSubscriptionsByEventResponse added in v0.2.0

type ListSubscriptionsByEventResponse struct {

	// Matching subscriptions.
	Subscriptions []*EventSubscription `protobuf:"bytes,1,rep,name=subscriptions,proto3" json:"subscriptions,omitempty"`
	// Pagination metadata.
	Pagination *PaginationResponse `protobuf:"bytes,5,opt,name=pagination,proto3" json:"pagination,omitempty"`
	// contains filtered or unexported fields
}

ListSubscriptionsByEventResponse contains subscriptions matching the event filter.

func (*ListSubscriptionsByEventResponse) Descriptor deprecated added in v0.2.0

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

Deprecated: Use ListSubscriptionsByEventResponse.ProtoReflect.Descriptor instead.

func (*ListSubscriptionsByEventResponse) GetPagination added in v0.2.0

func (*ListSubscriptionsByEventResponse) GetSubscriptions added in v0.2.0

func (x *ListSubscriptionsByEventResponse) GetSubscriptions() []*EventSubscription

func (*ListSubscriptionsByEventResponse) ProtoMessage added in v0.2.0

func (*ListSubscriptionsByEventResponse) ProtoMessage()

func (*ListSubscriptionsByEventResponse) ProtoReflect added in v0.2.0

func (*ListSubscriptionsByEventResponse) Reset added in v0.2.0

func (*ListSubscriptionsByEventResponse) String added in v0.2.0

type ListSubscriptionsRequest added in v0.2.0

type ListSubscriptionsRequest struct {

	// Filter by webhook UUID. Optional.
	// @example "550e8400-e29b-41d4-a716-446655440000"
	WebhookId string `protobuf:"bytes,1,opt,name=webhook_id,json=webhookId,proto3" json:"webhook_id,omitempty"`
	// Filter by event type name. Optional.
	EventName string `protobuf:"bytes,4,opt,name=event_name,json=eventName,proto3" json:"event_name,omitempty"`
	// Namespace to list subscriptions from. Required.
	// @example "production"
	Namespace string `protobuf:"bytes,2,opt,name=namespace,proto3" json:"namespace,omitempty"`
	// Pagination parameters. Default: limit=50, offset=0.
	Pagination *PaginationRequest `protobuf:"bytes,3,opt,name=pagination,proto3" json:"pagination,omitempty"`
	// contains filtered or unexported fields
}

ListSubscriptionsRequest specifies filters for listing subscriptions.

func (*ListSubscriptionsRequest) Descriptor deprecated added in v0.2.0

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

Deprecated: Use ListSubscriptionsRequest.ProtoReflect.Descriptor instead.

func (*ListSubscriptionsRequest) GetEventName added in v0.2.0

func (x *ListSubscriptionsRequest) GetEventName() string

func (*ListSubscriptionsRequest) GetNamespace added in v0.2.0

func (x *ListSubscriptionsRequest) GetNamespace() string

func (*ListSubscriptionsRequest) GetPagination added in v0.2.0

func (x *ListSubscriptionsRequest) GetPagination() *PaginationRequest

func (*ListSubscriptionsRequest) GetWebhookId added in v0.2.0

func (x *ListSubscriptionsRequest) GetWebhookId() string

func (*ListSubscriptionsRequest) ProtoMessage added in v0.2.0

func (*ListSubscriptionsRequest) ProtoMessage()

func (*ListSubscriptionsRequest) ProtoReflect added in v0.2.0

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

func (*ListSubscriptionsRequest) Reset added in v0.2.0

func (x *ListSubscriptionsRequest) Reset()

func (*ListSubscriptionsRequest) String added in v0.2.0

func (x *ListSubscriptionsRequest) String() string

type ListSubscriptionsResponse added in v0.2.0

type ListSubscriptionsResponse struct {

	// Subscriptions matching the filter criteria.
	Subscriptions []*EventSubscription `protobuf:"bytes,1,rep,name=subscriptions,proto3" json:"subscriptions,omitempty"`
	// Pagination metadata.
	Pagination *PaginationResponse `protobuf:"bytes,5,opt,name=pagination,proto3" json:"pagination,omitempty"`
	// contains filtered or unexported fields
}

ListSubscriptionsResponse contains the paginated list of subscriptions.

func (*ListSubscriptionsResponse) Descriptor deprecated added in v0.2.0

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

Deprecated: Use ListSubscriptionsResponse.ProtoReflect.Descriptor instead.

func (*ListSubscriptionsResponse) GetPagination added in v0.2.0

func (x *ListSubscriptionsResponse) GetPagination() *PaginationResponse

func (*ListSubscriptionsResponse) GetSubscriptions added in v0.2.0

func (x *ListSubscriptionsResponse) GetSubscriptions() []*EventSubscription

func (*ListSubscriptionsResponse) ProtoMessage added in v0.2.0

func (*ListSubscriptionsResponse) ProtoMessage()

func (*ListSubscriptionsResponse) ProtoReflect added in v0.2.0

func (*ListSubscriptionsResponse) Reset added in v0.2.0

func (x *ListSubscriptionsResponse) Reset()

func (*ListSubscriptionsResponse) String added in v0.2.0

func (x *ListSubscriptionsResponse) String() string

type ListWebhooksByHealthRequest

type ListWebhooksByHealthRequest struct {

	// Health status to filter by. Required.
	// Use HEALTH_UNHEALTHY to find problematic endpoints, HEALTH_DEGRADED for early warnings.
	// @example "HEALTH_UNHEALTHY"
	Health WebhookHealth `protobuf:"varint,1,opt,name=health,proto3,enum=webhook.WebhookHealth" json:"health,omitempty"`
	// Pagination parameters. Default: limit=50, offset=0.
	Pagination *PaginationRequest `protobuf:"bytes,2,opt,name=pagination,proto3" json:"pagination,omitempty"`
	// contains filtered or unexported fields
}

ListWebhooksByHealthRequest filters webhooks by their computed health status.

func (*ListWebhooksByHealthRequest) Descriptor deprecated

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

Deprecated: Use ListWebhooksByHealthRequest.ProtoReflect.Descriptor instead.

func (*ListWebhooksByHealthRequest) GetHealth

func (*ListWebhooksByHealthRequest) GetPagination added in v0.2.0

func (x *ListWebhooksByHealthRequest) GetPagination() *PaginationRequest

func (*ListWebhooksByHealthRequest) ProtoMessage

func (*ListWebhooksByHealthRequest) ProtoMessage()

func (*ListWebhooksByHealthRequest) ProtoReflect

func (*ListWebhooksByHealthRequest) Reset

func (x *ListWebhooksByHealthRequest) Reset()

func (*ListWebhooksByHealthRequest) String

func (x *ListWebhooksByHealthRequest) String() string

type ListWebhooksByHealthResponse

type ListWebhooksByHealthResponse struct {

	// Webhooks with the requested health status.
	Webhooks []*RegisteredWebhook `protobuf:"bytes,3,rep,name=webhooks,proto3" json:"webhooks,omitempty"`
	// Pagination metadata.
	Pagination *PaginationResponse `protobuf:"bytes,5,opt,name=pagination,proto3" json:"pagination,omitempty"`
	// contains filtered or unexported fields
}

ListWebhooksByHealthResponse contains webhooks matching the specified health status.

func (*ListWebhooksByHealthResponse) Descriptor deprecated

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

Deprecated: Use ListWebhooksByHealthResponse.ProtoReflect.Descriptor instead.

func (*ListWebhooksByHealthResponse) GetPagination added in v0.2.0

func (*ListWebhooksByHealthResponse) GetWebhooks

func (x *ListWebhooksByHealthResponse) GetWebhooks() []*RegisteredWebhook

func (*ListWebhooksByHealthResponse) ProtoMessage

func (*ListWebhooksByHealthResponse) ProtoMessage()

func (*ListWebhooksByHealthResponse) ProtoReflect

func (*ListWebhooksByHealthResponse) Reset

func (x *ListWebhooksByHealthResponse) Reset()

func (*ListWebhooksByHealthResponse) String

type ListWebhooksRequest

type ListWebhooksRequest struct {

	// Namespace to list webhooks from. Required.
	// @example "production"
	Namespace string `protobuf:"bytes,1,opt,name=namespace,proto3" json:"namespace,omitempty"`
	// Filter to only webhooks subscribed to this event name. Optional.
	Event string `protobuf:"bytes,2,opt,name=event,proto3" json:"event,omitempty"`
	// When true, only return active (non-paused) webhooks. Default: false (return all).
	// @example true
	ActiveOnly bool `protobuf:"varint,3,opt,name=active_only,json=activeOnly,proto3" json:"active_only,omitempty"`
	// Pagination parameters. Default: limit=50, offset=0.
	// @example {"limit": 20}
	Pagination *PaginationRequest `protobuf:"bytes,4,opt,name=pagination,proto3" json:"pagination,omitempty"`
	// Filter to a specific webhook by ID. Optional.
	// When set, returns at most one result.
	WebhookId string `protobuf:"bytes,5,opt,name=webhook_id,json=webhookId,proto3" json:"webhook_id,omitempty"`
	// contains filtered or unexported fields
}

ListWebhooksRequest specifies filters and pagination for listing webhooks. At minimum, namespace is required. All other fields are optional filters.

func (*ListWebhooksRequest) Descriptor deprecated

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

Deprecated: Use ListWebhooksRequest.ProtoReflect.Descriptor instead.

func (*ListWebhooksRequest) GetActiveOnly

func (x *ListWebhooksRequest) GetActiveOnly() bool

func (*ListWebhooksRequest) GetEvent

func (x *ListWebhooksRequest) GetEvent() string

func (*ListWebhooksRequest) GetNamespace

func (x *ListWebhooksRequest) GetNamespace() string

func (*ListWebhooksRequest) GetPagination added in v0.2.0

func (x *ListWebhooksRequest) GetPagination() *PaginationRequest

func (*ListWebhooksRequest) GetWebhookId added in v0.2.0

func (x *ListWebhooksRequest) GetWebhookId() string

func (*ListWebhooksRequest) ProtoMessage

func (*ListWebhooksRequest) ProtoMessage()

func (*ListWebhooksRequest) ProtoReflect

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

func (*ListWebhooksRequest) Reset

func (x *ListWebhooksRequest) Reset()

func (*ListWebhooksRequest) String

func (x *ListWebhooksRequest) String() string

type ListWebhooksResponse

type ListWebhooksResponse struct {

	// Webhooks matching the filter criteria.
	Webhooks []*RegisteredWebhook `protobuf:"bytes,1,rep,name=webhooks,proto3" json:"webhooks,omitempty"`
	// Pagination metadata (total_count, limit, offset).
	Pagination *PaginationResponse `protobuf:"bytes,2,opt,name=pagination,proto3" json:"pagination,omitempty"`
	// contains filtered or unexported fields
}

ListWebhooksResponse contains the paginated list of webhooks matching the query.

func (*ListWebhooksResponse) Descriptor deprecated

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

Deprecated: Use ListWebhooksResponse.ProtoReflect.Descriptor instead.

func (*ListWebhooksResponse) GetPagination added in v0.2.0

func (x *ListWebhooksResponse) GetPagination() *PaginationResponse

func (*ListWebhooksResponse) GetWebhooks

func (x *ListWebhooksResponse) GetWebhooks() []*RegisteredWebhook

func (*ListWebhooksResponse) ProtoMessage

func (*ListWebhooksResponse) ProtoMessage()

func (*ListWebhooksResponse) ProtoReflect

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

func (*ListWebhooksResponse) Reset

func (x *ListWebhooksResponse) Reset()

func (*ListWebhooksResponse) String

func (x *ListWebhooksResponse) String() string

type NamespaceStats

type NamespaceStats struct {

	// Total number of registered webhooks in this namespace (active + inactive).
	// @example 12
	TotalWebhooks int32 `protobuf:"varint,1,opt,name=total_webhooks,json=totalWebhooks,proto3" json:"total_webhooks,omitempty"`
	// Number of currently active (non-paused) webhooks.
	// @example 10
	ActiveWebhooks int32 `protobuf:"varint,2,opt,name=active_webhooks,json=activeWebhooks,proto3" json:"active_webhooks,omitempty"`
	// Total number of deliveries ever created in this namespace.
	// @example 5420
	TotalDeliveries int32 `protobuf:"varint,3,opt,name=total_deliveries,json=totalDeliveries,proto3" json:"total_deliveries,omitempty"`
	// Number of deliveries in terminal SUCCESS state.
	// @example 5200
	SuccessfulDeliveries int32 `protobuf:"varint,4,opt,name=successful_deliveries,json=successfulDeliveries,proto3" json:"successful_deliveries,omitempty"`
	// Number of deliveries in terminal FAILED state.
	// @example 120
	FailedDeliveries int32 `protobuf:"varint,5,opt,name=failed_deliveries,json=failedDeliveries,proto3" json:"failed_deliveries,omitempty"`
	// Number of deliveries in PENDING, SENDING, or RETRYING state.
	// @example 100
	PendingDeliveries int32 `protobuf:"varint,6,opt,name=pending_deliveries,json=pendingDeliveries,proto3" json:"pending_deliveries,omitempty"`
	// Overall delivery success rate as a decimal between 0.0 and 1.0.
	// Computed as successful_deliveries / total_deliveries. 0.0 if no deliveries.
	// @example 0.96
	SuccessRate float64 `protobuf:"fixed64,7,opt,name=success_rate,json=successRate,proto3" json:"success_rate,omitempty"`
	// contains filtered or unexported fields
}

NamespaceStats contains aggregate webhook and delivery counts for a namespace. Useful for dashboard summaries and capacity monitoring.

func (*NamespaceStats) Descriptor deprecated

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

Deprecated: Use NamespaceStats.ProtoReflect.Descriptor instead.

func (*NamespaceStats) GetActiveWebhooks

func (x *NamespaceStats) GetActiveWebhooks() int32

func (*NamespaceStats) GetFailedDeliveries

func (x *NamespaceStats) GetFailedDeliveries() int32

func (*NamespaceStats) GetPendingDeliveries

func (x *NamespaceStats) GetPendingDeliveries() int32

func (*NamespaceStats) GetSuccessRate

func (x *NamespaceStats) GetSuccessRate() float64

func (*NamespaceStats) GetSuccessfulDeliveries

func (x *NamespaceStats) GetSuccessfulDeliveries() int32

func (*NamespaceStats) GetTotalDeliveries

func (x *NamespaceStats) GetTotalDeliveries() int32

func (*NamespaceStats) GetTotalWebhooks

func (x *NamespaceStats) GetTotalWebhooks() int32

func (*NamespaceStats) ProtoMessage

func (*NamespaceStats) ProtoMessage()

func (*NamespaceStats) ProtoReflect

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

func (*NamespaceStats) Reset

func (x *NamespaceStats) Reset()

func (*NamespaceStats) String

func (x *NamespaceStats) String() string

type PaginationRequest added in v0.2.0

type PaginationRequest struct {

	// Maximum number of items to return. Clamped to server max (typically 250).
	// Default: 50.
	// @example 20
	Limit int32 `protobuf:"varint,1,opt,name=limit,proto3" json:"limit,omitempty"`
	// Number of items to skip before returning results. Default: 0.
	// @example 0
	Offset int32 `protobuf:"varint,2,opt,name=offset,proto3" json:"offset,omitempty"`
	// contains filtered or unexported fields
}

PaginationRequest specifies offset-based pagination parameters. Used by all List* RPCs. If omitted, the server uses default limit=50, offset=0.

func (*PaginationRequest) Descriptor deprecated added in v0.2.0

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

Deprecated: Use PaginationRequest.ProtoReflect.Descriptor instead.

func (*PaginationRequest) GetLimit added in v0.2.0

func (x *PaginationRequest) GetLimit() int32

func (*PaginationRequest) GetOffset added in v0.2.0

func (x *PaginationRequest) GetOffset() int32

func (*PaginationRequest) ProtoMessage added in v0.2.0

func (*PaginationRequest) ProtoMessage()

func (*PaginationRequest) ProtoReflect added in v0.2.0

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

func (*PaginationRequest) Reset added in v0.2.0

func (x *PaginationRequest) Reset()

func (*PaginationRequest) String added in v0.2.0

func (x *PaginationRequest) String() string

type PaginationResponse added in v0.2.0

type PaginationResponse struct {

	// Total number of items matching the query (ignoring limit/offset).
	TotalCount int32 `protobuf:"varint,1,opt,name=total_count,json=totalCount,proto3" json:"total_count,omitempty"`
	// The limit that was applied to this response.
	Limit int32 `protobuf:"varint,2,opt,name=limit,proto3" json:"limit,omitempty"`
	// The offset that was applied to this response.
	Offset int32 `protobuf:"varint,3,opt,name=offset,proto3" json:"offset,omitempty"`
	// contains filtered or unexported fields
}

PaginationResponse returns pagination metadata alongside list results. Clients can compute has_more as (offset + limit < total_count).

func (*PaginationResponse) Descriptor deprecated added in v0.2.0

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

Deprecated: Use PaginationResponse.ProtoReflect.Descriptor instead.

func (*PaginationResponse) GetLimit added in v0.2.0

func (x *PaginationResponse) GetLimit() int32

func (*PaginationResponse) GetOffset added in v0.2.0

func (x *PaginationResponse) GetOffset() int32

func (*PaginationResponse) GetTotalCount added in v0.2.0

func (x *PaginationResponse) GetTotalCount() int32

func (*PaginationResponse) ProtoMessage added in v0.2.0

func (*PaginationResponse) ProtoMessage()

func (*PaginationResponse) ProtoReflect added in v0.2.0

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

func (*PaginationResponse) Reset added in v0.2.0

func (x *PaginationResponse) Reset()

func (*PaginationResponse) String added in v0.2.0

func (x *PaginationResponse) String() string

type PauseWebhookRequest

type PauseWebhookRequest struct {

	// UUID of the webhook to pause. Required.
	// @example "550e8400-e29b-41d4-a716-446655440000"
	WebhookId string `protobuf:"bytes,1,opt,name=webhook_id,json=webhookId,proto3" json:"webhook_id,omitempty"`
	// Namespace the webhook belongs to. Required.
	// @example "production"
	Namespace string `protobuf:"bytes,2,opt,name=namespace,proto3" json:"namespace,omitempty"`
	// Human-readable reason for pausing (stored for audit purposes). Optional.
	// @example "Endpoint maintenance"
	Reason string `protobuf:"bytes,3,opt,name=reason,proto3" json:"reason,omitempty"`
	// contains filtered or unexported fields
}

PauseWebhookRequest sets a webhook to inactive, preventing new deliveries. Existing in-flight deliveries are not cancelled.

func (*PauseWebhookRequest) Descriptor deprecated

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

Deprecated: Use PauseWebhookRequest.ProtoReflect.Descriptor instead.

func (*PauseWebhookRequest) GetNamespace

func (x *PauseWebhookRequest) GetNamespace() string

func (*PauseWebhookRequest) GetReason

func (x *PauseWebhookRequest) GetReason() string

func (*PauseWebhookRequest) GetWebhookId

func (x *PauseWebhookRequest) GetWebhookId() string

func (*PauseWebhookRequest) ProtoMessage

func (*PauseWebhookRequest) ProtoMessage()

func (*PauseWebhookRequest) ProtoReflect

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

func (*PauseWebhookRequest) Reset

func (x *PauseWebhookRequest) Reset()

func (*PauseWebhookRequest) String

func (x *PauseWebhookRequest) String() string

type PauseWebhookResponse

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

PauseWebhookResponse confirms the webhook was paused.

func (*PauseWebhookResponse) Descriptor deprecated

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

Deprecated: Use PauseWebhookResponse.ProtoReflect.Descriptor instead.

func (*PauseWebhookResponse) ProtoMessage

func (*PauseWebhookResponse) ProtoMessage()

func (*PauseWebhookResponse) ProtoReflect

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

func (*PauseWebhookResponse) Reset

func (x *PauseWebhookResponse) Reset()

func (*PauseWebhookResponse) String

func (x *PauseWebhookResponse) String() string

type PushEventRequest

type PushEventRequest struct {

	// Namespace to push the event into. Required.
	// Only subscriptions in this namespace are matched.
	// @example "production"
	Namespace string `protobuf:"bytes,1,opt,name=namespace,proto3" json:"namespace,omitempty"`
	// Event type name (must match a registered event type). Required.
	// Subscriptions with matching event_name in this namespace will receive deliveries.
	// @example "order.created"
	Event string `protobuf:"bytes,2,opt,name=event,proto3" json:"event,omitempty"`
	// Event payload as a JSON object. Required.
	// If the event type has a schema, this payload is validated against it before acceptance.
	// This payload (or its template-transformed version) becomes the HTTP request body
	// sent to each matching webhook.
	// @example {"order_id": "ord-123", "amount": 99.99, "currency": "USD"}
	Payload *structpb.Struct `protobuf:"bytes,3,opt,name=payload,proto3" json:"payload,omitempty"`
	// Time-to-live in seconds for delivery retries. Optional.
	// When set, deliveries that haven't succeeded within this window transition to EXPIRED.
	// Default: 0 (no expiration -- retries continue until max_retries is exhausted).
	TtlSeconds int64 `protobuf:"varint,4,opt,name=ttl_seconds,json=ttlSeconds,proto3" json:"ttl_seconds,omitempty"`
	// Arbitrary key-value metadata attached to this event instance. Optional.
	// Metadata is stored with the event record and available in event reports,
	// but is NOT included in the delivery payload sent to webhooks.
	Metadata map[string]string `` /* 143-byte string literal not displayed */
	// Client-provided event ID for idempotency. Optional.
	// If provided and an event with this ID already exists, the existing event_id is returned
	// without creating a duplicate.
	Id *string `protobuf:"bytes,6,opt,name=id,proto3,oneof" json:"id,omitempty"`
	// Labels for label-based subscription matching. Optional.
	// When set, only subscriptions whose label_filters are a subset of these labels
	// will receive deliveries. Labels use AND logic: all filter keys must match.
	// Subscriptions with no label_filters match all events regardless of labels.
	// @example {"region": "us-east", "priority": "high"}
	Labels map[string]string `` /* 139-byte string literal not displayed */
	// contains filtered or unexported fields
}

PushEventRequest submits an event instance for asynchronous delivery. This is the primary ingestion endpoint. The event is persisted and a background job fans out deliveries to all matching subscriptions. The response returns immediately with the event_id; actual HTTP delivery happens asynchronously.

func (*PushEventRequest) Descriptor deprecated

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

Deprecated: Use PushEventRequest.ProtoReflect.Descriptor instead.

func (*PushEventRequest) GetEvent

func (x *PushEventRequest) GetEvent() string

func (*PushEventRequest) GetId

func (x *PushEventRequest) GetId() string

func (*PushEventRequest) GetLabels added in v0.2.0

func (x *PushEventRequest) GetLabels() map[string]string

func (*PushEventRequest) GetMetadata

func (x *PushEventRequest) GetMetadata() map[string]string

func (*PushEventRequest) GetNamespace

func (x *PushEventRequest) GetNamespace() string

func (*PushEventRequest) GetPayload

func (x *PushEventRequest) GetPayload() *structpb.Struct

func (*PushEventRequest) GetTtlSeconds

func (x *PushEventRequest) GetTtlSeconds() int64

func (*PushEventRequest) ProtoMessage

func (*PushEventRequest) ProtoMessage()

func (*PushEventRequest) ProtoReflect

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

func (*PushEventRequest) Reset

func (x *PushEventRequest) Reset()

func (*PushEventRequest) String

func (x *PushEventRequest) String() string

type PushEventResponse

type PushEventResponse struct {

	// Server-generated UUID for the event instance.
	// Use this ID to query delivery status via DeliveryService.ListDeliveries.
	// @example "e-550e8400-e29b-41d4-a716-446655440000"
	EventId string `protobuf:"bytes,1,opt,name=event_id,json=eventId,proto3" json:"event_id,omitempty"`
	// Schema validation warnings. Populated when the event payload does not match
	// the registered JSON schema. The event is still accepted and stored, but
	// schema_valid is set to false on the event record. Each string describes
	// a specific validation failure (e.g., "field 'amount': expected number, got string").
	// Empty when the payload passes validation or no schema is registered.
	Warnings []string `protobuf:"bytes,2,rep,name=warnings,proto3" json:"warnings,omitempty"`
	// True when the request was deduplicated by idempotency key.
	// The returned event_id belongs to the previously created event.
	// No new event record or deliveries are created.
	Duplicate bool `protobuf:"varint,3,opt,name=duplicate,proto3" json:"duplicate,omitempty"`
	// contains filtered or unexported fields
}

PushEventResponse is returned immediately after the event is accepted. Delivery to webhooks happens asynchronously via background workers.

func (*PushEventResponse) Descriptor deprecated

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

Deprecated: Use PushEventResponse.ProtoReflect.Descriptor instead.

func (*PushEventResponse) GetDuplicate added in v1.1.1

func (x *PushEventResponse) GetDuplicate() bool

func (*PushEventResponse) GetEventId

func (x *PushEventResponse) GetEventId() string

func (*PushEventResponse) GetWarnings added in v0.8.0

func (x *PushEventResponse) GetWarnings() []string

func (*PushEventResponse) ProtoMessage

func (*PushEventResponse) ProtoMessage()

func (*PushEventResponse) ProtoReflect

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

func (*PushEventResponse) Reset

func (x *PushEventResponse) Reset()

func (*PushEventResponse) String

func (x *PushEventResponse) String() string

type RePushEventRequest added in v0.9.3

type RePushEventRequest struct {

	// UUID of the original event to replay. Required.
	// The event must exist in the event_records table.
	// @example "e-550e8400-e29b-41d4-a716-446655440000"
	EventId string `protobuf:"bytes,1,opt,name=event_id,json=eventId,proto3" json:"event_id,omitempty"`
	// contains filtered or unexported fields
}

RePushEventRequest replays a single previously pushed event.

func (*RePushEventRequest) Descriptor deprecated added in v0.9.3

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

Deprecated: Use RePushEventRequest.ProtoReflect.Descriptor instead.

func (*RePushEventRequest) GetEventId added in v0.9.3

func (x *RePushEventRequest) GetEventId() string

func (*RePushEventRequest) ProtoMessage added in v0.9.3

func (*RePushEventRequest) ProtoMessage()

func (*RePushEventRequest) ProtoReflect added in v0.9.3

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

func (*RePushEventRequest) Reset added in v0.9.3

func (x *RePushEventRequest) Reset()

func (*RePushEventRequest) String added in v0.9.3

func (x *RePushEventRequest) String() string

type RePushEventResponse added in v0.9.3

type RePushEventResponse struct {

	// Server-generated UUID for the new event instance.
	// This is a brand-new event; the original event is not modified.
	// @example "e-660e8400-e29b-41d4-a716-446655440001"
	EventId string `protobuf:"bytes,1,opt,name=event_id,json=eventId,proto3" json:"event_id,omitempty"`
	// Schema validation warnings for the re-pushed payload.
	// The original payload is validated against the CURRENT event type schema.
	// Empty when the payload passes validation or no schema is registered.
	Warnings []string `protobuf:"bytes,2,rep,name=warnings,proto3" json:"warnings,omitempty"`
	// contains filtered or unexported fields
}

RePushEventResponse returns the new event created by the replay.

func (*RePushEventResponse) Descriptor deprecated added in v0.9.3

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

Deprecated: Use RePushEventResponse.ProtoReflect.Descriptor instead.

func (*RePushEventResponse) GetEventId added in v0.9.3

func (x *RePushEventResponse) GetEventId() string

func (*RePushEventResponse) GetWarnings added in v0.9.3

func (x *RePushEventResponse) GetWarnings() []string

func (*RePushEventResponse) ProtoMessage added in v0.9.3

func (*RePushEventResponse) ProtoMessage()

func (*RePushEventResponse) ProtoReflect added in v0.9.3

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

func (*RePushEventResponse) Reset added in v0.9.3

func (x *RePushEventResponse) Reset()

func (*RePushEventResponse) String added in v0.9.3

func (x *RePushEventResponse) String() string

type RePushEventsRequest added in v0.8.0

type RePushEventsRequest struct {

	// Batch ID returned by ListEventReports when prepare_repush=true.
	// @required
	RepushId string `protobuf:"bytes,1,opt,name=repush_id,json=repushId,proto3" json:"repush_id,omitempty"`
	// contains filtered or unexported fields
}

RePushEventsRequest starts a batch re-push of events. The repush_id must have been obtained from ListEventReports with prepare_repush=true.

func (*RePushEventsRequest) Descriptor deprecated added in v0.8.0

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

Deprecated: Use RePushEventsRequest.ProtoReflect.Descriptor instead.

func (*RePushEventsRequest) GetRepushId added in v0.8.0

func (x *RePushEventsRequest) GetRepushId() string

func (*RePushEventsRequest) ProtoMessage added in v0.8.0

func (*RePushEventsRequest) ProtoMessage()

func (*RePushEventsRequest) ProtoReflect added in v0.8.0

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

func (*RePushEventsRequest) Reset added in v0.8.0

func (x *RePushEventsRequest) Reset()

func (*RePushEventsRequest) String added in v0.8.0

func (x *RePushEventsRequest) String() string

type RePushEventsResponse added in v0.8.0

type RePushEventsResponse struct {

	// Batch ID for polling status.
	RepushId string `protobuf:"bytes,1,opt,name=repush_id,json=repushId,proto3" json:"repush_id,omitempty"`
	// Total number of events that will be re-pushed.
	Total int32 `protobuf:"varint,2,opt,name=total,proto3" json:"total,omitempty"`
	// Current status (will be "processing" on success).
	Status string `protobuf:"bytes,3,opt,name=status,proto3" json:"status,omitempty"`
	// contains filtered or unexported fields
}

RePushEventsResponse confirms the batch re-push has been enqueued.

func (*RePushEventsResponse) Descriptor deprecated added in v0.8.0

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

Deprecated: Use RePushEventsResponse.ProtoReflect.Descriptor instead.

func (*RePushEventsResponse) GetRepushId added in v0.8.0

func (x *RePushEventsResponse) GetRepushId() string

func (*RePushEventsResponse) GetStatus added in v0.8.0

func (x *RePushEventsResponse) GetStatus() string

func (*RePushEventsResponse) GetTotal added in v0.8.0

func (x *RePushEventsResponse) GetTotal() int32

func (*RePushEventsResponse) ProtoMessage added in v0.8.0

func (*RePushEventsResponse) ProtoMessage()

func (*RePushEventsResponse) ProtoReflect added in v0.8.0

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

func (*RePushEventsResponse) Reset added in v0.8.0

func (x *RePushEventsResponse) Reset()

func (*RePushEventsResponse) String added in v0.8.0

func (x *RePushEventsResponse) String() string

type RegisterEventRequest

type RegisterEventRequest struct {

	// Unique event name (e.g., "order.created", "payment.completed"). Required.
	// Convention: use dot-separated lowercase names.
	// @example "order.created"
	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
	// Human-readable description of what this event represents. Optional.
	// @example "Fired when a new order is placed"
	Description string `protobuf:"bytes,2,opt,name=description,proto3" json:"description,omitempty"`
	// JSON Schema for validating PushEvent payloads. Optional.
	// When set, all future PushEvent calls for this event type must conform to this schema.
	// Passed as a google.protobuf.Struct (JSON object).
	// @example {"type": "object", "properties": {"order_id": {"type": "string"}, "amount": {"type": "number"}}, "required": ["order_id", "amount"]}
	Schema *structpb.Struct `protobuf:"bytes,3,opt,name=schema,proto3" json:"schema,omitempty"`
	// Arbitrary key-value metadata attached to the event type definition. Optional.
	Metadata map[string]string `` /* 143-byte string literal not displayed */
	// Whether the event type is active. Default: true.
	// Inactive event types cannot receive new PushEvent calls.
	// @example true
	Active bool `protobuf:"varint,5,opt,name=active,proto3" json:"active,omitempty"`
	// contains filtered or unexported fields
}

RegisterEventRequest creates a new event type definition. The event name becomes the primary identifier (not a UUID) and must be unique per tenant.

func (*RegisterEventRequest) Descriptor deprecated

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

Deprecated: Use RegisterEventRequest.ProtoReflect.Descriptor instead.

func (*RegisterEventRequest) GetActive

func (x *RegisterEventRequest) GetActive() bool

func (*RegisterEventRequest) GetDescription

func (x *RegisterEventRequest) GetDescription() string

func (*RegisterEventRequest) GetMetadata

func (x *RegisterEventRequest) GetMetadata() map[string]string

func (*RegisterEventRequest) GetName

func (x *RegisterEventRequest) GetName() string

func (*RegisterEventRequest) GetSchema

func (x *RegisterEventRequest) GetSchema() *structpb.Struct

func (*RegisterEventRequest) ProtoMessage

func (*RegisterEventRequest) ProtoMessage()

func (*RegisterEventRequest) ProtoReflect

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

func (*RegisterEventRequest) Reset

func (x *RegisterEventRequest) Reset()

func (*RegisterEventRequest) String

func (x *RegisterEventRequest) String() string

type RegisterEventResponse

type RegisterEventResponse struct {

	// The event type name.
	EventId string `protobuf:"bytes,1,opt,name=event_id,json=eventId,proto3" json:"event_id,omitempty"`
	// When the event type was created.
	CreatedAt *timestamppb.Timestamp `protobuf:"bytes,2,opt,name=created_at,json=createdAt,proto3" json:"created_at,omitempty"`
	// contains filtered or unexported fields
}

RegisterEventResponse confirms successful event type creation.

func (*RegisterEventResponse) Descriptor deprecated

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

Deprecated: Use RegisterEventResponse.ProtoReflect.Descriptor instead.

func (*RegisterEventResponse) GetCreatedAt

func (x *RegisterEventResponse) GetCreatedAt() *timestamppb.Timestamp

func (*RegisterEventResponse) GetEventId

func (x *RegisterEventResponse) GetEventId() string

func (*RegisterEventResponse) ProtoMessage

func (*RegisterEventResponse) ProtoMessage()

func (*RegisterEventResponse) ProtoReflect

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

func (*RegisterEventResponse) Reset

func (x *RegisterEventResponse) Reset()

func (*RegisterEventResponse) String

func (x *RegisterEventResponse) String() string

type RegisterWebhookRequest

type RegisterWebhookRequest struct {

	// Namespace to register the webhook in. Required.
	// The namespace must already exist (created via the NamespaceService).
	// @example "production"
	Namespace string `protobuf:"bytes,1,opt,name=namespace,proto3" json:"namespace,omitempty"`
	// Event names this webhook should receive. At least one is required.
	// A subscription is automatically created for each event name listed here.
	// @example ["order.created", "order.updated"]
	Events []string `protobuf:"bytes,2,rep,name=events,proto3" json:"events,omitempty"`
	// Target URL that will receive HTTP POST requests for each delivery.
	// Must be a valid HTTP or HTTPS URL. Required.
	// @example "https://example.com/hooks"
	Url string `protobuf:"bytes,3,opt,name=url,proto3" json:"url,omitempty"`
	// Custom HTTP headers included in every delivery request to this webhook.
	// These are visible in API responses. For sensitive values (API keys, tokens),
	// use secret_headers instead.
	// @example {"X-Source": "sparrow"}
	Headers map[string]string `` /* 141-byte string literal not displayed */
	// Whether the webhook starts in active state. Default: true.
	// Inactive webhooks are skipped during event fan-out.
	// @example true
	Active bool `protobuf:"varint,6,opt,name=active,proto3" json:"active,omitempty"`
	// Human-readable description of the webhook's purpose. Optional.
	// @example "Order notifications"
	Description string `protobuf:"bytes,7,opt,name=description,proto3" json:"description,omitempty"`
	// HTTP delivery configuration (retries, timeouts, TLS, HMAC, etc.).
	// Optional -- all fields have sensible defaults if omitted.
	// @example {"max_retries": 5, "webhook_secret": "whsec_your_secret_key"}
	HttpConfig *WebhookHTTPConfig `protobuf:"bytes,8,opt,name=http_config,json=httpConfig,proto3" json:"http_config,omitempty"`
	// Sensitive HTTP headers stored encrypted at rest (e.g., Authorization, API keys).
	// Values are masked as "******" in all API responses -- only keys are visible.
	// Included in delivery requests alongside regular headers.
	SecretHeaders map[string]string `` /* 174-byte string literal not displayed */
	// Signing scheme for webhook deliveries: "hmac" (default) or "ed25519".
	// "hmac" uses HMAC-SHA256 (v1, prefix). "ed25519" uses Ed25519 asymmetric signing (v1a, prefix).
	// When "ed25519" is chosen, the signing_public_key is returned in the response for consumer verification.
	// @example "hmac"
	SignatureType string `protobuf:"bytes,10,opt,name=signature_type,json=signatureType,proto3" json:"signature_type,omitempty"`
	// contains filtered or unexported fields
}

RegisterWebhookRequest provides all parameters needed to register a new webhook. At minimum, namespace, url, and at least one event name are required. Subscriptions are auto-created for each event name in the events list.

func (*RegisterWebhookRequest) Descriptor deprecated

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

Deprecated: Use RegisterWebhookRequest.ProtoReflect.Descriptor instead.

func (*RegisterWebhookRequest) GetActive

func (x *RegisterWebhookRequest) GetActive() bool

func (*RegisterWebhookRequest) GetDescription

func (x *RegisterWebhookRequest) GetDescription() string

func (*RegisterWebhookRequest) GetEvents

func (x *RegisterWebhookRequest) GetEvents() []string

func (*RegisterWebhookRequest) GetHeaders

func (x *RegisterWebhookRequest) GetHeaders() map[string]string

func (*RegisterWebhookRequest) GetHttpConfig added in v0.2.0

func (x *RegisterWebhookRequest) GetHttpConfig() *WebhookHTTPConfig

func (*RegisterWebhookRequest) GetNamespace

func (x *RegisterWebhookRequest) GetNamespace() string

func (*RegisterWebhookRequest) GetSecretHeaders added in v0.2.0

func (x *RegisterWebhookRequest) GetSecretHeaders() map[string]string

func (*RegisterWebhookRequest) GetSignatureType added in v1.3.4

func (x *RegisterWebhookRequest) GetSignatureType() string

func (*RegisterWebhookRequest) GetUrl

func (x *RegisterWebhookRequest) GetUrl() string

func (*RegisterWebhookRequest) ProtoMessage

func (*RegisterWebhookRequest) ProtoMessage()

func (*RegisterWebhookRequest) ProtoReflect

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

func (*RegisterWebhookRequest) Reset

func (x *RegisterWebhookRequest) Reset()

func (*RegisterWebhookRequest) String

func (x *RegisterWebhookRequest) String() string

type RegisterWebhookResponse

type RegisterWebhookResponse struct {

	// Server-generated UUID for the new webhook. Use this ID for all
	// subsequent operations (update, pause, resume, unregister).
	// @example "550e8400-e29b-41d4-a716-446655440000"
	WebhookId string `protobuf:"bytes,1,opt,name=webhook_id,json=webhookId,proto3" json:"webhook_id,omitempty"`
	// Timestamp when the webhook was created.
	// @example "2025-01-15T10:30:00Z"
	CreatedAt *timestamppb.Timestamp `protobuf:"bytes,4,opt,name=created_at,json=createdAt,proto3" json:"created_at,omitempty"`
	// Hex-encoded Ed25519 public key for asymmetric webhook signature verification.
	// When the webhook uses Ed25519 signing, consumers use this key to verify the
	// "v1a," signature in the Standard Webhooks webhook-signature header.
	SigningPublicKey string `protobuf:"bytes,5,opt,name=signing_public_key,json=signingPublicKey,proto3" json:"signing_public_key,omitempty"`
	// The signing scheme configured for this webhook: "hmac" or "ed25519".
	SignatureType string `protobuf:"bytes,6,opt,name=signature_type,json=signatureType,proto3" json:"signature_type,omitempty"`
	// contains filtered or unexported fields
}

RegisterWebhookResponse is returned after successfully registering a webhook.

func (*RegisterWebhookResponse) Descriptor deprecated

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

Deprecated: Use RegisterWebhookResponse.ProtoReflect.Descriptor instead.

func (*RegisterWebhookResponse) GetCreatedAt

func (x *RegisterWebhookResponse) GetCreatedAt() *timestamppb.Timestamp

func (*RegisterWebhookResponse) GetSignatureType added in v1.3.4

func (x *RegisterWebhookResponse) GetSignatureType() string

func (*RegisterWebhookResponse) GetSigningPublicKey added in v1.3.3

func (x *RegisterWebhookResponse) GetSigningPublicKey() string

func (*RegisterWebhookResponse) GetWebhookId

func (x *RegisterWebhookResponse) GetWebhookId() string

func (*RegisterWebhookResponse) ProtoMessage

func (*RegisterWebhookResponse) ProtoMessage()

func (*RegisterWebhookResponse) ProtoReflect

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

func (*RegisterWebhookResponse) Reset

func (x *RegisterWebhookResponse) Reset()

func (*RegisterWebhookResponse) String

func (x *RegisterWebhookResponse) String() string

type RegisteredEvent

type RegisteredEvent struct {

	// Unique event name (primary identifier). This is the value used in
	// PushEvent, subscription matching, and all event-related queries.
	Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"`
	// Human-readable description of the event type.
	Description string `protobuf:"bytes,3,opt,name=description,proto3" json:"description,omitempty"`
	// JSON Schema used for payload validation on PushEvent. Null if no schema is set.
	Schema *structpb.Struct `protobuf:"bytes,4,opt,name=schema,proto3" json:"schema,omitempty"`
	// Auto-generated sample payload based on the schema. Useful for testing
	// subscription templates via TestSubscriptionTemplate. Null if no schema is set.
	SamplePayload *structpb.Struct `protobuf:"bytes,9,opt,name=sample_payload,json=samplePayload,proto3" json:"sample_payload,omitempty"`
	// Arbitrary key-value metadata.
	Metadata map[string]string `` /* 143-byte string literal not displayed */
	// Whether this event type is active. Inactive types reject PushEvent calls.
	Active bool `protobuf:"varint,6,opt,name=active,proto3" json:"active,omitempty"`
	// When the event type was first registered.
	CreatedAt *timestamppb.Timestamp `protobuf:"bytes,7,opt,name=created_at,json=createdAt,proto3" json:"created_at,omitempty"`
	// When the event type was last modified.
	UpdatedAt *timestamppb.Timestamp `protobuf:"bytes,8,opt,name=updated_at,json=updatedAt,proto3" json:"updated_at,omitempty"`
	// contains filtered or unexported fields
}

RegisteredEvent is the full representation of an event type definition. This describes an event type (schema), not an event instance (see EventReport for that).

func (*RegisteredEvent) Descriptor deprecated

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

Deprecated: Use RegisteredEvent.ProtoReflect.Descriptor instead.

func (*RegisteredEvent) GetActive

func (x *RegisteredEvent) GetActive() bool

func (*RegisteredEvent) GetCreatedAt

func (x *RegisteredEvent) GetCreatedAt() *timestamppb.Timestamp

func (*RegisteredEvent) GetDescription

func (x *RegisteredEvent) GetDescription() string

func (*RegisteredEvent) GetMetadata

func (x *RegisteredEvent) GetMetadata() map[string]string

func (*RegisteredEvent) GetName

func (x *RegisteredEvent) GetName() string

func (*RegisteredEvent) GetSamplePayload added in v0.2.0

func (x *RegisteredEvent) GetSamplePayload() *structpb.Struct

func (*RegisteredEvent) GetSchema

func (x *RegisteredEvent) GetSchema() *structpb.Struct

func (*RegisteredEvent) GetUpdatedAt

func (x *RegisteredEvent) GetUpdatedAt() *timestamppb.Timestamp

func (*RegisteredEvent) ProtoMessage

func (*RegisteredEvent) ProtoMessage()

func (*RegisteredEvent) ProtoReflect

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

func (*RegisteredEvent) Reset

func (x *RegisteredEvent) Reset()

func (*RegisteredEvent) String

func (x *RegisteredEvent) String() string

type RegisteredWebhook

type RegisteredWebhook struct {

	// Server-generated UUID identifying this webhook.
	WebhookId string `protobuf:"bytes,1,opt,name=webhook_id,json=webhookId,proto3" json:"webhook_id,omitempty"`
	// Namespace this webhook belongs to.
	Namespace string `protobuf:"bytes,2,opt,name=namespace,proto3" json:"namespace,omitempty"`
	// Event names this webhook is subscribed to (derived from its subscriptions).
	Events []string `protobuf:"bytes,3,rep,name=events,proto3" json:"events,omitempty"`
	// Target URL that receives delivery HTTP requests.
	Url string `protobuf:"bytes,4,opt,name=url,proto3" json:"url,omitempty"`
	// Custom HTTP headers included in delivery requests.
	// Does not include secret_headers (those are listed separately with masked values).
	Headers map[string]string `` /* 141-byte string literal not displayed */
	// Whether the webhook is currently active. Inactive webhooks do not receive
	// new deliveries but retain their configuration and history.
	Active bool `protobuf:"varint,7,opt,name=active,proto3" json:"active,omitempty"`
	// Human-readable description.
	Description string `protobuf:"bytes,8,opt,name=description,proto3" json:"description,omitempty"`
	// Current health status computed from recent delivery outcomes.
	// See WebhookHealth enum for threshold definitions.
	Health WebhookHealth `protobuf:"varint,9,opt,name=health,proto3,enum=webhook.WebhookHealth" json:"health,omitempty"`
	// When the webhook was first registered.
	CreatedAt *timestamppb.Timestamp `protobuf:"bytes,10,opt,name=created_at,json=createdAt,proto3" json:"created_at,omitempty"`
	// When the webhook configuration was last modified.
	UpdatedAt *timestamppb.Timestamp `protobuf:"bytes,11,opt,name=updated_at,json=updatedAt,proto3" json:"updated_at,omitempty"`
	// HTTP delivery configuration (retries, timeouts, TLS, HMAC, etc.).
	HttpConfig *WebhookHTTPConfig `protobuf:"bytes,12,opt,name=http_config,json=httpConfig,proto3" json:"http_config,omitempty"`
	// Secret headers with values masked as "******". Keys are shown for display;
	// actual values are never exposed through the API.
	SecretHeaders map[string]string `` /* 175-byte string literal not displayed */
	// Hex-encoded Ed25519 public key for asymmetric webhook signature verification.
	// When the webhook uses Ed25519 signing, consumers verify the "v1a," signature
	// in the Standard Webhooks webhook-signature header using this key.
	SigningPublicKey string `protobuf:"bytes,14,opt,name=signing_public_key,json=signingPublicKey,proto3" json:"signing_public_key,omitempty"`
	// The signing scheme configured for this webhook: "hmac" or "ed25519".
	SignatureType string `protobuf:"bytes,15,opt,name=signature_type,json=signatureType,proto3" json:"signature_type,omitempty"`
	// contains filtered or unexported fields
}

RegisteredWebhook is the full representation of a webhook as returned by List and Get operations. Includes all configuration, the current list of subscribed events, and live health status.

func (*RegisteredWebhook) Descriptor deprecated

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

Deprecated: Use RegisteredWebhook.ProtoReflect.Descriptor instead.

func (*RegisteredWebhook) GetActive

func (x *RegisteredWebhook) GetActive() bool

func (*RegisteredWebhook) GetCreatedAt

func (x *RegisteredWebhook) GetCreatedAt() *timestamppb.Timestamp

func (*RegisteredWebhook) GetDescription

func (x *RegisteredWebhook) GetDescription() string

func (*RegisteredWebhook) GetEvents

func (x *RegisteredWebhook) GetEvents() []string

func (*RegisteredWebhook) GetHeaders

func (x *RegisteredWebhook) GetHeaders() map[string]string

func (*RegisteredWebhook) GetHealth

func (x *RegisteredWebhook) GetHealth() WebhookHealth

func (*RegisteredWebhook) GetHttpConfig added in v0.2.0

func (x *RegisteredWebhook) GetHttpConfig() *WebhookHTTPConfig

func (*RegisteredWebhook) GetNamespace

func (x *RegisteredWebhook) GetNamespace() string

func (*RegisteredWebhook) GetSecretHeaders added in v0.2.0

func (x *RegisteredWebhook) GetSecretHeaders() map[string]string

func (*RegisteredWebhook) GetSignatureType added in v1.3.4

func (x *RegisteredWebhook) GetSignatureType() string

func (*RegisteredWebhook) GetSigningPublicKey added in v1.3.3

func (x *RegisteredWebhook) GetSigningPublicKey() string

func (*RegisteredWebhook) GetUpdatedAt

func (x *RegisteredWebhook) GetUpdatedAt() *timestamppb.Timestamp

func (*RegisteredWebhook) GetUrl

func (x *RegisteredWebhook) GetUrl() string

func (*RegisteredWebhook) GetWebhookId

func (x *RegisteredWebhook) GetWebhookId() string

func (*RegisteredWebhook) ProtoMessage

func (*RegisteredWebhook) ProtoMessage()

func (*RegisteredWebhook) ProtoReflect

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

func (*RegisteredWebhook) Reset

func (x *RegisteredWebhook) Reset()

func (*RegisteredWebhook) String

func (x *RegisteredWebhook) String() string

type ResumeWebhookRequest

type ResumeWebhookRequest struct {

	// UUID of the webhook to resume. Required.
	// @example "550e8400-e29b-41d4-a716-446655440000"
	WebhookId string `protobuf:"bytes,1,opt,name=webhook_id,json=webhookId,proto3" json:"webhook_id,omitempty"`
	// Namespace the webhook belongs to. Required.
	// @example "production"
	Namespace string `protobuf:"bytes,2,opt,name=namespace,proto3" json:"namespace,omitempty"`
	// Human-readable reason for resuming. Optional.
	Reason string `protobuf:"bytes,3,opt,name=reason,proto3" json:"reason,omitempty"`
	// contains filtered or unexported fields
}

ResumeWebhookRequest re-activates a paused webhook. Events pushed while the webhook was paused are not retroactively delivered.

func (*ResumeWebhookRequest) Descriptor deprecated

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

Deprecated: Use ResumeWebhookRequest.ProtoReflect.Descriptor instead.

func (*ResumeWebhookRequest) GetNamespace

func (x *ResumeWebhookRequest) GetNamespace() string

func (*ResumeWebhookRequest) GetReason

func (x *ResumeWebhookRequest) GetReason() string

func (*ResumeWebhookRequest) GetWebhookId

func (x *ResumeWebhookRequest) GetWebhookId() string

func (*ResumeWebhookRequest) ProtoMessage

func (*ResumeWebhookRequest) ProtoMessage()

func (*ResumeWebhookRequest) ProtoReflect

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

func (*ResumeWebhookRequest) Reset

func (x *ResumeWebhookRequest) Reset()

func (*ResumeWebhookRequest) String

func (x *ResumeWebhookRequest) String() string

type ResumeWebhookResponse

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

ResumeWebhookResponse confirms the webhook was resumed.

func (*ResumeWebhookResponse) Descriptor deprecated

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

Deprecated: Use ResumeWebhookResponse.ProtoReflect.Descriptor instead.

func (*ResumeWebhookResponse) ProtoMessage

func (*ResumeWebhookResponse) ProtoMessage()

func (*ResumeWebhookResponse) ProtoReflect

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

func (*ResumeWebhookResponse) Reset

func (x *ResumeWebhookResponse) Reset()

func (*ResumeWebhookResponse) String

func (x *ResumeWebhookResponse) String() string

type RetryDeliveriesRequest added in v0.8.0

type RetryDeliveriesRequest struct {

	// Batch ID returned by ListDeliveries when prepare_retry=true.
	// @required
	RetryId string `protobuf:"bytes,1,opt,name=retry_id,json=retryId,proto3" json:"retry_id,omitempty"`
	// contains filtered or unexported fields
}

RetryDeliveriesRequest starts a batch retry of deliveries. The retry_id must have been obtained from ListDeliveries with prepare_retry=true.

func (*RetryDeliveriesRequest) Descriptor deprecated added in v0.8.0

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

Deprecated: Use RetryDeliveriesRequest.ProtoReflect.Descriptor instead.

func (*RetryDeliveriesRequest) GetRetryId added in v0.8.0

func (x *RetryDeliveriesRequest) GetRetryId() string

func (*RetryDeliveriesRequest) ProtoMessage added in v0.8.0

func (*RetryDeliveriesRequest) ProtoMessage()

func (*RetryDeliveriesRequest) ProtoReflect added in v0.8.0

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

func (*RetryDeliveriesRequest) Reset added in v0.8.0

func (x *RetryDeliveriesRequest) Reset()

func (*RetryDeliveriesRequest) String added in v0.8.0

func (x *RetryDeliveriesRequest) String() string

type RetryDeliveriesResponse added in v0.8.0

type RetryDeliveriesResponse struct {

	// Batch ID for polling status.
	RetryId string `protobuf:"bytes,1,opt,name=retry_id,json=retryId,proto3" json:"retry_id,omitempty"`
	// Total number of deliveries that will be retried.
	Total int32 `protobuf:"varint,2,opt,name=total,proto3" json:"total,omitempty"`
	// Current status (will be "processing" on success).
	Status string `protobuf:"bytes,3,opt,name=status,proto3" json:"status,omitempty"`
	// contains filtered or unexported fields
}

RetryDeliveriesResponse confirms the batch retry has been enqueued.

func (*RetryDeliveriesResponse) Descriptor deprecated added in v0.8.0

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

Deprecated: Use RetryDeliveriesResponse.ProtoReflect.Descriptor instead.

func (*RetryDeliveriesResponse) GetRetryId added in v0.8.0

func (x *RetryDeliveriesResponse) GetRetryId() string

func (*RetryDeliveriesResponse) GetStatus added in v0.8.0

func (x *RetryDeliveriesResponse) GetStatus() string

func (*RetryDeliveriesResponse) GetTotal added in v0.8.0

func (x *RetryDeliveriesResponse) GetTotal() int32

func (*RetryDeliveriesResponse) ProtoMessage added in v0.8.0

func (*RetryDeliveriesResponse) ProtoMessage()

func (*RetryDeliveriesResponse) ProtoReflect added in v0.8.0

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

func (*RetryDeliveriesResponse) Reset added in v0.8.0

func (x *RetryDeliveriesResponse) Reset()

func (*RetryDeliveriesResponse) String added in v0.8.0

func (x *RetryDeliveriesResponse) String() string

type RetryDeliveryRequest added in v0.2.0

type RetryDeliveryRequest struct {

	// Namespace. Required.
	// @example "production"
	Namespace string `protobuf:"bytes,1,opt,name=namespace,proto3" json:"namespace,omitempty"`
	// UUID of a specific delivery to retry. Optional.
	// @example "d-550e8400-e29b-41d4-a716-446655440000"
	DeliveryId string `protobuf:"bytes,2,opt,name=delivery_id,json=deliveryId,proto3" json:"delivery_id,omitempty"`
	// UUID of a webhook -- retry all its failed/pending deliveries. Optional.
	WebhookId string `protobuf:"bytes,3,opt,name=webhook_id,json=webhookId,proto3" json:"webhook_id,omitempty"`
	// When true, retry even successful deliveries. Default: false.
	// Use with caution: this causes duplicate delivery to the target endpoint.
	Force bool `protobuf:"varint,4,opt,name=force,proto3" json:"force,omitempty"`
	// contains filtered or unexported fields
}

RetryDeliveryRequest re-enqueues one or more deliveries for reprocessing. Provide delivery_id for a single retry, webhook_id for bulk retry, or both. Without force=true, only FAILED and PENDING deliveries are retried.

func (*RetryDeliveryRequest) Descriptor deprecated added in v0.2.0

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

Deprecated: Use RetryDeliveryRequest.ProtoReflect.Descriptor instead.

func (*RetryDeliveryRequest) GetDeliveryId added in v0.2.0

func (x *RetryDeliveryRequest) GetDeliveryId() string

func (*RetryDeliveryRequest) GetForce added in v0.2.0

func (x *RetryDeliveryRequest) GetForce() bool

func (*RetryDeliveryRequest) GetNamespace added in v0.2.0

func (x *RetryDeliveryRequest) GetNamespace() string

func (*RetryDeliveryRequest) GetWebhookId added in v0.2.0

func (x *RetryDeliveryRequest) GetWebhookId() string

func (*RetryDeliveryRequest) ProtoMessage added in v0.2.0

func (*RetryDeliveryRequest) ProtoMessage()

func (*RetryDeliveryRequest) ProtoReflect added in v0.2.0

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

func (*RetryDeliveryRequest) Reset added in v0.2.0

func (x *RetryDeliveryRequest) Reset()

func (*RetryDeliveryRequest) String added in v0.2.0

func (x *RetryDeliveryRequest) String() string

type RetryDeliveryResponse added in v0.2.0

type RetryDeliveryResponse struct {

	// Number of deliveries that were re-enqueued.
	// @example 1
	RetriedCount int32 `protobuf:"varint,1,opt,name=retried_count,json=retriedCount,proto3" json:"retried_count,omitempty"`
	// UUIDs of the deliveries that were re-enqueued.
	// @example ["d-550e8400-e29b-41d4-a716-446655440000"]
	DeliveryIds []string `protobuf:"bytes,2,rep,name=delivery_ids,json=deliveryIds,proto3" json:"delivery_ids,omitempty"`
	// contains filtered or unexported fields
}

RetryDeliveryResponse reports how many deliveries were re-enqueued.

func (*RetryDeliveryResponse) Descriptor deprecated added in v0.2.0

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

Deprecated: Use RetryDeliveryResponse.ProtoReflect.Descriptor instead.

func (*RetryDeliveryResponse) GetDeliveryIds added in v0.2.0

func (x *RetryDeliveryResponse) GetDeliveryIds() []string

func (*RetryDeliveryResponse) GetRetriedCount added in v0.2.0

func (x *RetryDeliveryResponse) GetRetriedCount() int32

func (*RetryDeliveryResponse) ProtoMessage added in v0.2.0

func (*RetryDeliveryResponse) ProtoMessage()

func (*RetryDeliveryResponse) ProtoReflect added in v0.2.0

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

func (*RetryDeliveryResponse) Reset added in v0.2.0

func (x *RetryDeliveryResponse) Reset()

func (*RetryDeliveryResponse) String added in v0.2.0

func (x *RetryDeliveryResponse) String() string

type SubscriptionServiceClient added in v0.2.0

type SubscriptionServiceClient interface {
	// CreateSubscription links a webhook to an event name in a namespace.
	// Optionally configure per-subscription headers, HTTP method override, timeout override,
	// payload transformation (Go template), and label filters for selective matching.
	// Errors: ALREADY_EXISTS if the webhook is already subscribed to this event in this namespace.
	// Errors: NOT_FOUND if the webhook_id does not exist.
	CreateSubscription(ctx context.Context, in *CreateSubscriptionRequest, opts ...grpc.CallOption) (*CreateSubscriptionResponse, error)
	// GetSubscription returns a single subscription by ID.
	// Errors: NOT_FOUND if the subscription_id does not exist in the given namespace.
	GetSubscription(ctx context.Context, in *GetSubscriptionRequest, opts ...grpc.CallOption) (*GetSubscriptionResponse, error)
	// ListSubscriptions returns subscriptions in a namespace, optionally filtered
	// by webhook_id or event_name. Results are paginated.
	ListSubscriptions(ctx context.Context, in *ListSubscriptionsRequest, opts ...grpc.CallOption) (*ListSubscriptionsResponse, error)
	// UpdateSubscription modifies a subscription's headers, method, timeout,
	// transform settings, or label filters. Only non-zero fields are applied.
	// Errors: NOT_FOUND if the subscription does not exist.
	UpdateSubscription(ctx context.Context, in *UpdateSubscriptionRequest, opts ...grpc.CallOption) (*UpdateSubscriptionResponse, error)
	// DeleteSubscription permanently removes a subscription.
	// Existing in-flight deliveries for this subscription are not cancelled.
	// Errors: NOT_FOUND if the subscription does not exist.
	DeleteSubscription(ctx context.Context, in *DeleteSubscriptionRequest, opts ...grpc.CallOption) (*DeleteSubscriptionResponse, error)
	// TestSubscriptionTemplate renders a Go template against the sample payload of the
	// given event type. Returns the transformed output string. Use this to validate
	// templates before saving them on a subscription.
	// Errors: INVALID_ARGUMENT if the template fails to parse or execute.
	// Errors: NOT_FOUND if the event_name does not exist.
	TestSubscriptionTemplate(ctx context.Context, in *TestSubscriptionTemplateRequest, opts ...grpc.CallOption) (*TestSubscriptionTemplateResponse, error)
}

SubscriptionServiceClient is the client API for SubscriptionService 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.

SubscriptionService manages the mapping between webhooks and event types. A subscription links one webhook to one event name within a namespace. When an event is pushed, all subscriptions matching (namespace, event_name, label_filters) generate a delivery. Subscriptions can optionally transform the payload using Go templates.

func NewSubscriptionServiceClient added in v0.2.0

func NewSubscriptionServiceClient(cc grpc.ClientConnInterface) SubscriptionServiceClient

type SubscriptionServiceServer added in v0.2.0

type SubscriptionServiceServer interface {
	// CreateSubscription links a webhook to an event name in a namespace.
	// Optionally configure per-subscription headers, HTTP method override, timeout override,
	// payload transformation (Go template), and label filters for selective matching.
	// Errors: ALREADY_EXISTS if the webhook is already subscribed to this event in this namespace.
	// Errors: NOT_FOUND if the webhook_id does not exist.
	CreateSubscription(context.Context, *CreateSubscriptionRequest) (*CreateSubscriptionResponse, error)
	// GetSubscription returns a single subscription by ID.
	// Errors: NOT_FOUND if the subscription_id does not exist in the given namespace.
	GetSubscription(context.Context, *GetSubscriptionRequest) (*GetSubscriptionResponse, error)
	// ListSubscriptions returns subscriptions in a namespace, optionally filtered
	// by webhook_id or event_name. Results are paginated.
	ListSubscriptions(context.Context, *ListSubscriptionsRequest) (*ListSubscriptionsResponse, error)
	// UpdateSubscription modifies a subscription's headers, method, timeout,
	// transform settings, or label filters. Only non-zero fields are applied.
	// Errors: NOT_FOUND if the subscription does not exist.
	UpdateSubscription(context.Context, *UpdateSubscriptionRequest) (*UpdateSubscriptionResponse, error)
	// DeleteSubscription permanently removes a subscription.
	// Existing in-flight deliveries for this subscription are not cancelled.
	// Errors: NOT_FOUND if the subscription does not exist.
	DeleteSubscription(context.Context, *DeleteSubscriptionRequest) (*DeleteSubscriptionResponse, error)
	// TestSubscriptionTemplate renders a Go template against the sample payload of the
	// given event type. Returns the transformed output string. Use this to validate
	// templates before saving them on a subscription.
	// Errors: INVALID_ARGUMENT if the template fails to parse or execute.
	// Errors: NOT_FOUND if the event_name does not exist.
	TestSubscriptionTemplate(context.Context, *TestSubscriptionTemplateRequest) (*TestSubscriptionTemplateResponse, error)
	// contains filtered or unexported methods
}

SubscriptionServiceServer is the server API for SubscriptionService service. All implementations must embed UnimplementedSubscriptionServiceServer for forward compatibility.

SubscriptionService manages the mapping between webhooks and event types. A subscription links one webhook to one event name within a namespace. When an event is pushed, all subscriptions matching (namespace, event_name, label_filters) generate a delivery. Subscriptions can optionally transform the payload using Go templates.

type TemplateFunction added in v0.2.0

type TemplateFunction struct {

	// Function name as used in Go templates (e.g., "toJSON", "upper", "now").
	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
	// Human-readable description of the function's behavior, parameters, and return value.
	Description string `protobuf:"bytes,2,opt,name=description,proto3" json:"description,omitempty"`
	// contains filtered or unexported fields
}

TemplateFunction describes a single Go template function available for payload transformation in event subscriptions.

func (*TemplateFunction) Descriptor deprecated added in v0.2.0

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

Deprecated: Use TemplateFunction.ProtoReflect.Descriptor instead.

func (*TemplateFunction) GetDescription added in v0.2.0

func (x *TemplateFunction) GetDescription() string

func (*TemplateFunction) GetName added in v0.2.0

func (x *TemplateFunction) GetName() string

func (*TemplateFunction) ProtoMessage added in v0.2.0

func (*TemplateFunction) ProtoMessage()

func (*TemplateFunction) ProtoReflect added in v0.2.0

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

func (*TemplateFunction) Reset added in v0.2.0

func (x *TemplateFunction) Reset()

func (*TemplateFunction) String added in v0.2.0

func (x *TemplateFunction) String() string

type TestSubscriptionTemplateRequest added in v0.2.0

type TestSubscriptionTemplateRequest struct {

	// Event name to get the sample payload from. Required.
	// The event type must have a schema defined for a sample payload to be generated.
	// @example "order.created"
	EventName string `protobuf:"bytes,1,opt,name=event_name,json=eventName,proto3" json:"event_name,omitempty"`
	// Go template string to test. Required.
	// The template is executed with the event's sample_payload as its data context.
	// @example "{\"id\": \"{{ .payload.order_id }}\", \"total\": \"{{ .payload.amount }}\"}"
	TransformTemplate string `protobuf:"bytes,2,opt,name=transform_template,json=transformTemplate,proto3" json:"transform_template,omitempty"`
	// Namespace. Required.
	// @example "production"
	Namespace string `protobuf:"bytes,3,opt,name=namespace,proto3" json:"namespace,omitempty"`
	// contains filtered or unexported fields
}

TestSubscriptionTemplateRequest validates a Go template against an event's sample payload. Use this before saving a transform_template on a subscription to catch syntax errors.

func (*TestSubscriptionTemplateRequest) Descriptor deprecated added in v0.2.0

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

Deprecated: Use TestSubscriptionTemplateRequest.ProtoReflect.Descriptor instead.

func (*TestSubscriptionTemplateRequest) GetEventName added in v0.2.0

func (x *TestSubscriptionTemplateRequest) GetEventName() string

func (*TestSubscriptionTemplateRequest) GetNamespace added in v0.2.0

func (x *TestSubscriptionTemplateRequest) GetNamespace() string

func (*TestSubscriptionTemplateRequest) GetTransformTemplate added in v0.2.0

func (x *TestSubscriptionTemplateRequest) GetTransformTemplate() string

func (*TestSubscriptionTemplateRequest) ProtoMessage added in v0.2.0

func (*TestSubscriptionTemplateRequest) ProtoMessage()

func (*TestSubscriptionTemplateRequest) ProtoReflect added in v0.2.0

func (*TestSubscriptionTemplateRequest) Reset added in v0.2.0

func (*TestSubscriptionTemplateRequest) String added in v0.2.0

type TestSubscriptionTemplateResponse added in v0.2.0

type TestSubscriptionTemplateResponse struct {

	// The template output after rendering against the sample payload.
	// This is exactly what would be sent as the delivery request body
	// if this template were applied to a subscription.
	// @example "{\"id\": \"ord-123\", \"total\": \"99.99\"}"
	TransformedPayload string `protobuf:"bytes,1,opt,name=transformed_payload,json=transformedPayload,proto3" json:"transformed_payload,omitempty"`
	// contains filtered or unexported fields
}

TestSubscriptionTemplateResponse returns the rendered template output.

func (*TestSubscriptionTemplateResponse) Descriptor deprecated added in v0.2.0

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

Deprecated: Use TestSubscriptionTemplateResponse.ProtoReflect.Descriptor instead.

func (*TestSubscriptionTemplateResponse) GetTransformedPayload added in v0.2.0

func (x *TestSubscriptionTemplateResponse) GetTransformedPayload() string

func (*TestSubscriptionTemplateResponse) ProtoMessage added in v0.2.0

func (*TestSubscriptionTemplateResponse) ProtoMessage()

func (*TestSubscriptionTemplateResponse) ProtoReflect added in v0.2.0

func (*TestSubscriptionTemplateResponse) Reset added in v0.2.0

func (*TestSubscriptionTemplateResponse) String added in v0.2.0

type UnimplementedDeliveryServiceServer added in v0.2.0

type UnimplementedDeliveryServiceServer struct{}

UnimplementedDeliveryServiceServer must 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 (UnimplementedDeliveryServiceServer) CancelRetry added in v0.8.0

func (UnimplementedDeliveryServiceServer) GetDeliveryAttempts added in v0.2.0

func (UnimplementedDeliveryServiceServer) GetDeliveryStatus added in v0.2.0

func (UnimplementedDeliveryServiceServer) GetRetryStatus added in v0.8.0

func (UnimplementedDeliveryServiceServer) ListDeliveries added in v0.2.0

func (UnimplementedDeliveryServiceServer) RetryDeliveries added in v0.8.0

func (UnimplementedDeliveryServiceServer) RetryDelivery added in v0.2.0

type UnimplementedEventServiceServer added in v0.2.0

type UnimplementedEventServiceServer struct{}

UnimplementedEventServiceServer must 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 (UnimplementedEventServiceServer) CancelRepush added in v0.8.0

func (UnimplementedEventServiceServer) DeleteEvent added in v0.2.0

func (UnimplementedEventServiceServer) GetEvent added in v0.2.0

func (UnimplementedEventServiceServer) GetEventRecord added in v1.1.0

func (UnimplementedEventServiceServer) GetRepushStatus added in v0.8.0

func (UnimplementedEventServiceServer) ListEventReports added in v0.2.0

func (UnimplementedEventServiceServer) ListEvents added in v0.2.0

func (UnimplementedEventServiceServer) PushEvent added in v0.2.0

func (UnimplementedEventServiceServer) RePushEvent added in v0.9.3

func (UnimplementedEventServiceServer) RePushEvents added in v0.8.0

func (UnimplementedEventServiceServer) RegisterEvent added in v0.2.0

func (UnimplementedEventServiceServer) UpdateEvent added in v0.2.0

type UnimplementedHealthServiceServer added in v0.2.0

type UnimplementedHealthServiceServer struct{}

UnimplementedHealthServiceServer must 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 (UnimplementedHealthServiceServer) GetHealthSummary added in v0.2.0

func (UnimplementedHealthServiceServer) GetWebhookHealth added in v0.2.0

func (UnimplementedHealthServiceServer) ListWebhooksByHealth added in v0.2.0

type UnimplementedSubscriptionServiceServer added in v0.2.0

type UnimplementedSubscriptionServiceServer struct{}

UnimplementedSubscriptionServiceServer must 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 (UnimplementedSubscriptionServiceServer) CreateSubscription added in v0.2.0

func (UnimplementedSubscriptionServiceServer) DeleteSubscription added in v0.2.0

func (UnimplementedSubscriptionServiceServer) GetSubscription added in v0.2.0

func (UnimplementedSubscriptionServiceServer) ListSubscriptions added in v0.2.0

func (UnimplementedSubscriptionServiceServer) TestSubscriptionTemplate added in v0.2.0

func (UnimplementedSubscriptionServiceServer) UpdateSubscription added in v0.2.0

type UnimplementedWebhookServiceServer

type UnimplementedWebhookServiceServer struct{}

UnimplementedWebhookServiceServer must 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 (UnimplementedWebhookServiceServer) GetNamespaceStats

func (UnimplementedWebhookServiceServer) GetTemplateFunctions added in v0.2.0

func (UnimplementedWebhookServiceServer) ListWebhooks

func (UnimplementedWebhookServiceServer) PauseWebhook

func (UnimplementedWebhookServiceServer) RegisterWebhook

func (UnimplementedWebhookServiceServer) ResumeWebhook

func (UnimplementedWebhookServiceServer) UnregisterWebhook

func (UnimplementedWebhookServiceServer) UpdateWebhookConfig

type UnregisterWebhookRequest

type UnregisterWebhookRequest struct {

	// UUID of the webhook to delete. Required.
	// @example "550e8400-e29b-41d4-a716-446655440000"
	WebhookId string `protobuf:"bytes,1,opt,name=webhook_id,json=webhookId,proto3" json:"webhook_id,omitempty"`
	// Namespace the webhook belongs to. Required.
	// @example "production"
	Namespace string `protobuf:"bytes,2,opt,name=namespace,proto3" json:"namespace,omitempty"`
	// contains filtered or unexported fields
}

UnregisterWebhookRequest identifies a webhook to permanently delete. This cascade-deletes all subscriptions, deliveries, and health data for the webhook.

func (*UnregisterWebhookRequest) Descriptor deprecated

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

Deprecated: Use UnregisterWebhookRequest.ProtoReflect.Descriptor instead.

func (*UnregisterWebhookRequest) GetNamespace added in v0.2.0

func (x *UnregisterWebhookRequest) GetNamespace() string

func (*UnregisterWebhookRequest) GetWebhookId

func (x *UnregisterWebhookRequest) GetWebhookId() string

func (*UnregisterWebhookRequest) ProtoMessage

func (*UnregisterWebhookRequest) ProtoMessage()

func (*UnregisterWebhookRequest) ProtoReflect

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

func (*UnregisterWebhookRequest) Reset

func (x *UnregisterWebhookRequest) Reset()

func (*UnregisterWebhookRequest) String

func (x *UnregisterWebhookRequest) String() string

type UnregisterWebhookResponse

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

UnregisterWebhookResponse confirms webhook deletion. On success, the gRPC status is OK. On failure, NOT_FOUND is returned.

func (*UnregisterWebhookResponse) Descriptor deprecated

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

Deprecated: Use UnregisterWebhookResponse.ProtoReflect.Descriptor instead.

func (*UnregisterWebhookResponse) ProtoMessage

func (*UnregisterWebhookResponse) ProtoMessage()

func (*UnregisterWebhookResponse) ProtoReflect

func (*UnregisterWebhookResponse) Reset

func (x *UnregisterWebhookResponse) Reset()

func (*UnregisterWebhookResponse) String

func (x *UnregisterWebhookResponse) String() string

type UnsafeDeliveryServiceServer added in v0.2.0

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

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

type UnsafeEventServiceServer added in v0.2.0

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

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

type UnsafeHealthServiceServer added in v0.2.0

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

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

type UnsafeSubscriptionServiceServer added in v0.2.0

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

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

type UnsafeWebhookServiceServer

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

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

type UpdateEventRequest

type UpdateEventRequest struct {

	// Event name to update. Required. This is the lookup key (not a UUID).
	// @example "order.created"
	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
	// Updated description. Omit to leave unchanged.
	// @example "Updated: Fired when a new order is placed"
	Description string `protobuf:"bytes,2,opt,name=description,proto3" json:"description,omitempty"`
	// Updated JSON Schema for payload validation. Omit to leave unchanged.
	// Note: changing the schema does not retroactively validate previously pushed events.
	Schema *structpb.Struct `protobuf:"bytes,3,opt,name=schema,proto3" json:"schema,omitempty"`
	// Updated metadata. Omit to leave unchanged.
	Metadata map[string]string `` /* 143-byte string literal not displayed */
	// Updated active flag. Omit to leave unchanged.
	Active bool `protobuf:"varint,5,opt,name=active,proto3" json:"active,omitempty"`
	// contains filtered or unexported fields
}

UpdateEventRequest modifies an existing event type definition. All fields except name are optional; only non-zero fields are applied.

func (*UpdateEventRequest) Descriptor deprecated

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

Deprecated: Use UpdateEventRequest.ProtoReflect.Descriptor instead.

func (*UpdateEventRequest) GetActive

func (x *UpdateEventRequest) GetActive() bool

func (*UpdateEventRequest) GetDescription

func (x *UpdateEventRequest) GetDescription() string

func (*UpdateEventRequest) GetMetadata

func (x *UpdateEventRequest) GetMetadata() map[string]string

func (*UpdateEventRequest) GetName

func (x *UpdateEventRequest) GetName() string

func (*UpdateEventRequest) GetSchema

func (x *UpdateEventRequest) GetSchema() *structpb.Struct

func (*UpdateEventRequest) ProtoMessage

func (*UpdateEventRequest) ProtoMessage()

func (*UpdateEventRequest) ProtoReflect

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

func (*UpdateEventRequest) Reset

func (x *UpdateEventRequest) Reset()

func (*UpdateEventRequest) String

func (x *UpdateEventRequest) String() string

type UpdateEventResponse

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

UpdateEventResponse confirms the event type was updated.

func (*UpdateEventResponse) Descriptor deprecated

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

Deprecated: Use UpdateEventResponse.ProtoReflect.Descriptor instead.

func (*UpdateEventResponse) ProtoMessage

func (*UpdateEventResponse) ProtoMessage()

func (*UpdateEventResponse) ProtoReflect

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

func (*UpdateEventResponse) Reset

func (x *UpdateEventResponse) Reset()

func (*UpdateEventResponse) String

func (x *UpdateEventResponse) String() string

type UpdateSubscriptionRequest added in v0.2.0

type UpdateSubscriptionRequest struct {

	// UUID of the subscription to update. Required.
	// @example "7c9e6679-7425-40de-944b-e07fc1f90ae7"
	SubscriptionId string `protobuf:"bytes,1,opt,name=subscription_id,json=subscriptionId,proto3" json:"subscription_id,omitempty"`
	// Namespace the subscription belongs to. Required.
	// @example "production"
	Namespace string `protobuf:"bytes,7,opt,name=namespace,proto3" json:"namespace,omitempty"`
	// Updated per-subscription headers. Replaces existing headers when set.
	Headers map[string]string `` /* 141-byte string literal not displayed */
	// Updated HTTP method override.
	Method string `protobuf:"bytes,3,opt,name=method,proto3" json:"method,omitempty"`
	// Updated timeout override in seconds.
	Timeout int32 `protobuf:"varint,4,opt,name=timeout,proto3" json:"timeout,omitempty"`
	// Updated transform enabled flag.
	// @example true
	TransformEnabled bool `protobuf:"varint,5,opt,name=transform_enabled,json=transformEnabled,proto3" json:"transform_enabled,omitempty"`
	// Updated Go template. Use TestSubscriptionTemplate to validate before saving.
	TransformTemplate string `protobuf:"bytes,6,opt,name=transform_template,json=transformTemplate,proto3" json:"transform_template,omitempty"`
	// Updated label filters. Replaces existing filters when set.
	LabelFilters map[string]string `` /* 171-byte string literal not displayed */
	// contains filtered or unexported fields
}

UpdateSubscriptionRequest modifies an existing subscription. Only non-zero/non-empty fields are applied; omitted fields are left unchanged.

func (*UpdateSubscriptionRequest) Descriptor deprecated added in v0.2.0

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

Deprecated: Use UpdateSubscriptionRequest.ProtoReflect.Descriptor instead.

func (*UpdateSubscriptionRequest) GetHeaders added in v0.2.0

func (x *UpdateSubscriptionRequest) GetHeaders() map[string]string

func (*UpdateSubscriptionRequest) GetLabelFilters added in v0.2.0

func (x *UpdateSubscriptionRequest) GetLabelFilters() map[string]string

func (*UpdateSubscriptionRequest) GetMethod added in v0.2.0

func (x *UpdateSubscriptionRequest) GetMethod() string

func (*UpdateSubscriptionRequest) GetNamespace added in v0.2.0

func (x *UpdateSubscriptionRequest) GetNamespace() string

func (*UpdateSubscriptionRequest) GetSubscriptionId added in v0.2.0

func (x *UpdateSubscriptionRequest) GetSubscriptionId() string

func (*UpdateSubscriptionRequest) GetTimeout added in v0.2.0

func (x *UpdateSubscriptionRequest) GetTimeout() int32

func (*UpdateSubscriptionRequest) GetTransformEnabled added in v0.2.0

func (x *UpdateSubscriptionRequest) GetTransformEnabled() bool

func (*UpdateSubscriptionRequest) GetTransformTemplate added in v0.2.0

func (x *UpdateSubscriptionRequest) GetTransformTemplate() string

func (*UpdateSubscriptionRequest) ProtoMessage added in v0.2.0

func (*UpdateSubscriptionRequest) ProtoMessage()

func (*UpdateSubscriptionRequest) ProtoReflect added in v0.2.0

func (*UpdateSubscriptionRequest) Reset added in v0.2.0

func (x *UpdateSubscriptionRequest) Reset()

func (*UpdateSubscriptionRequest) String added in v0.2.0

func (x *UpdateSubscriptionRequest) String() string

type UpdateSubscriptionResponse added in v0.2.0

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

UpdateSubscriptionResponse confirms the subscription was updated.

func (*UpdateSubscriptionResponse) Descriptor deprecated added in v0.2.0

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

Deprecated: Use UpdateSubscriptionResponse.ProtoReflect.Descriptor instead.

func (*UpdateSubscriptionResponse) ProtoMessage added in v0.2.0

func (*UpdateSubscriptionResponse) ProtoMessage()

func (*UpdateSubscriptionResponse) ProtoReflect added in v0.2.0

func (*UpdateSubscriptionResponse) Reset added in v0.2.0

func (x *UpdateSubscriptionResponse) Reset()

func (*UpdateSubscriptionResponse) String added in v0.2.0

func (x *UpdateSubscriptionResponse) String() string

type UpdateWebhookConfigRequest

type UpdateWebhookConfigRequest struct {

	// UUID of the webhook to update. Required.
	// @example "550e8400-e29b-41d4-a716-446655440000"
	WebhookId string `protobuf:"bytes,1,opt,name=webhook_id,json=webhookId,proto3" json:"webhook_id,omitempty"`
	// Namespace the webhook belongs to. Required.
	// @example "production"
	Namespace string `protobuf:"bytes,2,opt,name=namespace,proto3" json:"namespace,omitempty"`
	// Fields to update. Required.
	Updates *WebhookUpdateFields `protobuf:"bytes,3,opt,name=updates,proto3" json:"updates,omitempty"`
	// Specifies which fields in `updates` should be applied.
	// Only fields listed in the mask are written; unlisted fields are ignored.
	// This prevents accidental overwrites of sensitive fields (e.g. secrets).
	//
	// Supported paths (top-level fields of WebhookUpdateFields):
	//
	//	"url", "active", "description", "events", "headers",
	//	"secret_headers", "http_config", "signature_type"
	//
	// To update the webhook secret within http_config, include
	// "http_config.webhook_secret" in the mask. Without it, the existing
	// encrypted secret is preserved even when http_config is updated.
	//
	// When omitted or empty, all non-zero fields in `updates` are applied.
	// @example {"paths": ["url", "active", "http_config"]}
	UpdateMask *fieldmaskpb.FieldMask `protobuf:"bytes,4,opt,name=update_mask,json=updateMask,proto3" json:"update_mask,omitempty"`
	// contains filtered or unexported fields
}

UpdateWebhookConfigRequest applies partial updates to an existing webhook.

func (*UpdateWebhookConfigRequest) Descriptor deprecated

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

Deprecated: Use UpdateWebhookConfigRequest.ProtoReflect.Descriptor instead.

func (*UpdateWebhookConfigRequest) GetNamespace

func (x *UpdateWebhookConfigRequest) GetNamespace() string

func (*UpdateWebhookConfigRequest) GetUpdateMask added in v1.0.1

func (x *UpdateWebhookConfigRequest) GetUpdateMask() *fieldmaskpb.FieldMask

func (*UpdateWebhookConfigRequest) GetUpdates

func (*UpdateWebhookConfigRequest) GetWebhookId

func (x *UpdateWebhookConfigRequest) GetWebhookId() string

func (*UpdateWebhookConfigRequest) ProtoMessage

func (*UpdateWebhookConfigRequest) ProtoMessage()

func (*UpdateWebhookConfigRequest) ProtoReflect

func (*UpdateWebhookConfigRequest) Reset

func (x *UpdateWebhookConfigRequest) Reset()

func (*UpdateWebhookConfigRequest) String

func (x *UpdateWebhookConfigRequest) String() string

type UpdateWebhookConfigResponse

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

UpdateWebhookConfigResponse confirms the webhook was updated. On success, gRPC status is OK. On failure, NOT_FOUND or INVALID_ARGUMENT.

func (*UpdateWebhookConfigResponse) Descriptor deprecated

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

Deprecated: Use UpdateWebhookConfigResponse.ProtoReflect.Descriptor instead.

func (*UpdateWebhookConfigResponse) ProtoMessage

func (*UpdateWebhookConfigResponse) ProtoMessage()

func (*UpdateWebhookConfigResponse) ProtoReflect

func (*UpdateWebhookConfigResponse) Reset

func (x *UpdateWebhookConfigResponse) Reset()

func (*UpdateWebhookConfigResponse) String

func (x *UpdateWebhookConfigResponse) String() string

type WebhookDelivery

type WebhookDelivery struct {

	// Server-generated UUID for this delivery.
	DeliveryId string `protobuf:"bytes,1,opt,name=delivery_id,json=deliveryId,proto3" json:"delivery_id,omitempty"`
	// UUID of the target webhook.
	WebhookId string `protobuf:"bytes,2,opt,name=webhook_id,json=webhookId,proto3" json:"webhook_id,omitempty"`
	// UUID of the event that triggered this delivery.
	EventId string `protobuf:"bytes,3,opt,name=event_id,json=eventId,proto3" json:"event_id,omitempty"`
	// Current delivery status. See WebhookDeliveryStatus for state transitions.
	Status WebhookDeliveryStatus `protobuf:"varint,4,opt,name=status,proto3,enum=webhook.WebhookDeliveryStatus" json:"status,omitempty"`
	// Number of delivery attempts made so far (including the initial attempt).
	AttemptCount int32 `protobuf:"varint,5,opt,name=attempt_count,json=attemptCount,proto3" json:"attempt_count,omitempty"`
	// Maximum attempts allowed (1 + max_retries from the webhook's http_config).
	MaxAttempts int32 `protobuf:"varint,6,opt,name=max_attempts,json=maxAttempts,proto3" json:"max_attempts,omitempty"`
	// When this delivery was created (event fan-out time).
	CreatedAt *timestamppb.Timestamp `protobuf:"bytes,7,opt,name=created_at,json=createdAt,proto3" json:"created_at,omitempty"`
	// When the most recent attempt was made. Null if not yet attempted.
	LastAttemptedAt *timestamppb.Timestamp `protobuf:"bytes,8,opt,name=last_attempted_at,json=lastAttemptedAt,proto3" json:"last_attempted_at,omitempty"`
	// When the next retry is scheduled. Null if not in RETRYING state.
	NextRetryAt *timestamppb.Timestamp `protobuf:"bytes,9,opt,name=next_retry_at,json=nextRetryAt,proto3" json:"next_retry_at,omitempty"`
	// When this delivery expires based on the event's ttl_seconds.
	// Null if no TTL was set on the event.
	ExpiresAt *timestamppb.Timestamp `protobuf:"bytes,10,opt,name=expires_at,json=expiresAt,proto3" json:"expires_at,omitempty"`
	// HTTP status code from the most recent attempt. 0 if no response was received
	// (e.g., timeout, connection refused, DNS error).
	ResponseCode int32 `protobuf:"varint,11,opt,name=response_code,json=responseCode,proto3" json:"response_code,omitempty"`
	// Response body from the most recent attempt. Truncated to 1 KB by default,
	// or 1 MB if the webhook has capture_response_body enabled.
	// Empty string if no response was received.
	ResponseBody string `protobuf:"bytes,12,opt,name=response_body,json=responseBody,proto3" json:"response_body,omitempty"`
	// Error message from the most recent failed attempt. Empty on success.
	ErrorMessage string `protobuf:"bytes,13,opt,name=error_message,json=errorMessage,proto3" json:"error_message,omitempty"`
	// The HTTP request body that was sent to the webhook URL.
	// This is the original event payload, or the template-transformed payload
	// if the subscription has transform_enabled.
	RequestBody string `protobuf:"bytes,14,opt,name=request_body,json=requestBody,proto3" json:"request_body,omitempty"`
	// Classified error category from the most recent attempt.
	// Values: "success", "client_error" (4xx, not retried), "server_error" (5xx, retried),
	// "timeout" (retried), "connection_refused" (retried), "network_error" (retried),
	// "dns_error" (not retried), "tls_error" (not retried), "unexpected_status" (not retried,
	// response code did not match expected_status_codes), "unknown".
	ErrorCategory string `protobuf:"bytes,15,opt,name=error_category,json=errorCategory,proto3" json:"error_category,omitempty"`
	// contains filtered or unexported fields
}

WebhookDelivery is the full representation of a single delivery and its attempt chain. A delivery is created when an event is fanned out to a webhook via a subscription. It tracks the entire lifecycle from creation through all retry attempts to final status.

Each delivery maps to exactly one (webhook, event, subscription) tuple.

func (*WebhookDelivery) Descriptor deprecated

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

Deprecated: Use WebhookDelivery.ProtoReflect.Descriptor instead.

func (*WebhookDelivery) GetAttemptCount

func (x *WebhookDelivery) GetAttemptCount() int32

func (*WebhookDelivery) GetCreatedAt

func (x *WebhookDelivery) GetCreatedAt() *timestamppb.Timestamp

func (*WebhookDelivery) GetDeliveryId

func (x *WebhookDelivery) GetDeliveryId() string

func (*WebhookDelivery) GetErrorCategory added in v0.2.0

func (x *WebhookDelivery) GetErrorCategory() string

func (*WebhookDelivery) GetErrorMessage

func (x *WebhookDelivery) GetErrorMessage() string

func (*WebhookDelivery) GetEventId

func (x *WebhookDelivery) GetEventId() string

func (*WebhookDelivery) GetExpiresAt

func (x *WebhookDelivery) GetExpiresAt() *timestamppb.Timestamp

func (*WebhookDelivery) GetLastAttemptedAt

func (x *WebhookDelivery) GetLastAttemptedAt() *timestamppb.Timestamp

func (*WebhookDelivery) GetMaxAttempts

func (x *WebhookDelivery) GetMaxAttempts() int32

func (*WebhookDelivery) GetNextRetryAt

func (x *WebhookDelivery) GetNextRetryAt() *timestamppb.Timestamp

func (*WebhookDelivery) GetRequestBody

func (x *WebhookDelivery) GetRequestBody() string

func (*WebhookDelivery) GetResponseBody

func (x *WebhookDelivery) GetResponseBody() string

func (*WebhookDelivery) GetResponseCode

func (x *WebhookDelivery) GetResponseCode() int32

func (*WebhookDelivery) GetStatus

func (x *WebhookDelivery) GetStatus() WebhookDeliveryStatus

func (*WebhookDelivery) GetWebhookId

func (x *WebhookDelivery) GetWebhookId() string

func (*WebhookDelivery) ProtoMessage

func (*WebhookDelivery) ProtoMessage()

func (*WebhookDelivery) ProtoReflect

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

func (*WebhookDelivery) Reset

func (x *WebhookDelivery) Reset()

func (*WebhookDelivery) String

func (x *WebhookDelivery) String() string

type WebhookDeliveryStatus

type WebhookDeliveryStatus int32

WebhookDeliveryStatus tracks the lifecycle of a single delivery.

State transitions:

PENDING -> SENDING -> SUCCESS
PENDING -> SENDING -> RETRYING -> SENDING -> ... -> SUCCESS | FAILED | EXPIRED

Terminal states: SUCCESS, FAILED, EXPIRED.

const (
	// Default zero value. Never set by the system; indicates an uninitialized field.
	WebhookDeliveryStatus_DELIVERY_UNSPECIFIED WebhookDeliveryStatus = 0
	// Delivery is queued but has not been attempted yet.
	WebhookDeliveryStatus_DELIVERY_PENDING WebhookDeliveryStatus = 1
	// Delivery is currently being sent (HTTP request in flight).
	WebhookDeliveryStatus_DELIVERY_SENDING WebhookDeliveryStatus = 2
	// Delivery succeeded. The webhook endpoint returned an expected status code
	// (default: 200, 201, 202, 204 -- configurable via expected_status_codes).
	WebhookDeliveryStatus_DELIVERY_SUCCESS WebhookDeliveryStatus = 3
	// Delivery failed permanently. All retry attempts exhausted or the error
	// is classified as non-retryable (client_error, dns_error, tls_error).
	WebhookDeliveryStatus_DELIVERY_FAILED WebhookDeliveryStatus = 4
	// Delivery failed but will be retried. Applies to retryable error categories:
	// server_error (5xx), timeout, connection_refused, network_error.
	// The next_retry_at field indicates when the next attempt is scheduled.
	WebhookDeliveryStatus_DELIVERY_RETRYING WebhookDeliveryStatus = 5
	// Delivery TTL elapsed before it could succeed. The event's ttl_seconds
	// determines the expiration window. No further retries will be attempted.
	WebhookDeliveryStatus_DELIVERY_EXPIRED WebhookDeliveryStatus = 6
)

func (WebhookDeliveryStatus) Descriptor

func (WebhookDeliveryStatus) Enum

func (WebhookDeliveryStatus) EnumDescriptor deprecated

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

Deprecated: Use WebhookDeliveryStatus.Descriptor instead.

func (WebhookDeliveryStatus) Number

func (WebhookDeliveryStatus) String

func (x WebhookDeliveryStatus) String() string

func (WebhookDeliveryStatus) Type

type WebhookHTTPConfig added in v0.2.0

type WebhookHTTPConfig struct {

	// Maximum number of retry attempts after the initial delivery fails.
	// Range: 0-10. Default: 3. Set to 0 to disable retries entirely.
	// Only retryable error categories trigger retries (server_error, timeout,
	// connection_refused, network_error). Client errors (4xx), DNS errors,
	// and TLS errors are never retried regardless of this setting.
	// @example 5
	MaxRetries int32 `protobuf:"varint,1,opt,name=max_retries,json=maxRetries,proto3" json:"max_retries,omitempty"`
	// Base backoff duration in seconds between retry attempts.
	// Range: 1-3600. Default: 60. Actual backoff uses exponential increase
	// with jitter: base * 2^(attempt-1) + random jitter.
	// @example 60
	RetryBackoffSeconds int32 `protobuf:"varint,2,opt,name=retry_backoff_seconds,json=retryBackoffSeconds,proto3" json:"retry_backoff_seconds,omitempty"`
	// Controls the maximum size of stored response body per delivery attempt.
	// When false (default): up to 1 KB of the response body is stored.
	// When true: up to 1 MB of the response body is stored.
	// Note: the response body is always read from the connection regardless of this
	// flag (required for HTTP connection reuse). This only controls how much is persisted.
	// @example false
	CaptureResponseBody bool `protobuf:"varint,3,opt,name=capture_response_body,json=captureResponseBody,proto3" json:"capture_response_body,omitempty"`
	// Whether to follow HTTP 3xx redirects when delivering webhooks.
	// Default: true. Set to false to treat redirects as the final response.
	// @example true
	FollowRedirects bool `protobuf:"varint,4,opt,name=follow_redirects,json=followRedirects,proto3" json:"follow_redirects,omitempty"`
	// Whether to verify the target endpoint's TLS certificate chain.
	// Default: true. Set to false only for development/testing with self-signed certs.
	// Disabling this in production is a security risk.
	// @example true
	VerifySsl bool `protobuf:"varint,5,opt,name=verify_ssl,json=verifySsl,proto3" json:"verify_ssl,omitempty"`
	// Per-request timeout in seconds. If the target endpoint does not respond
	// within this duration, the attempt is classified as a timeout error (retryable).
	// Range: 1-300. Default: 30.
	// @example 30
	RequestTimeoutSeconds int32 `` /* 127-byte string literal not displayed */
	// HTTP status codes that Sparrow treats as a successful delivery.
	// Default: [200, 201, 202, 204]. Any response code not in this list
	// is classified as "client_error" (4xx), "server_error" (5xx), or
	// "unexpected_status" (2xx/3xx not in list) based on the HTTP status range.
	// @example [200, 201, 202, 204]
	ExpectedStatusCodes []int32 `` /* 128-byte string literal not displayed */
	// Shared secret used for HMAC-SHA256 request signing per the Standard Webhooks spec.
	// When set, Sparrow signs every delivery using the webhook-id, webhook-timestamp,
	// and webhook-signature headers. The signature format is "v1,<base64>" for HMAC-SHA256.
	// Leave empty to disable signing.
	// @example "whsec_your_secret_key"
	WebhookSecret string `protobuf:"bytes,8,opt,name=webhook_secret,json=webhookSecret,proto3" json:"webhook_secret,omitempty"`
	// Value of the User-Agent header sent with every delivery request.
	// Default: "Sparrow-Webhook/1.0".
	// @example "Sparrow-Webhook/1.0"
	UserAgent string `protobuf:"bytes,9,opt,name=user_agent,json=userAgent,proto3" json:"user_agent,omitempty"`
	// Content-Type header for delivery requests.
	// Default: "application/json". Change if your endpoint expects a different media type.
	// @example "application/json"
	ContentType string `protobuf:"bytes,10,opt,name=content_type,json=contentType,proto3" json:"content_type,omitempty"`
	// Maximum requests per second for this webhook. When set, Sparrow uses a
	// leaky bucket to space deliveries evenly, preventing bursts.
	// When omitted (or 0), no rate limit is applied.
	// @example 10.0
	RateLimitRps *float32 `protobuf:"fixed32,11,opt,name=rate_limit_rps,json=rateLimitRps,proto3,oneof" json:"rate_limit_rps,omitempty"`
	// contains filtered or unexported fields
}

WebhookHTTPConfig controls how Sparrow delivers HTTP requests to a webhook URL. All fields have sensible defaults; only set fields you want to override. This message is used both when registering a webhook and when updating its configuration.

func (*WebhookHTTPConfig) Descriptor deprecated added in v0.2.0

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

Deprecated: Use WebhookHTTPConfig.ProtoReflect.Descriptor instead.

func (*WebhookHTTPConfig) GetCaptureResponseBody added in v0.2.0

func (x *WebhookHTTPConfig) GetCaptureResponseBody() bool

func (*WebhookHTTPConfig) GetContentType added in v0.2.0

func (x *WebhookHTTPConfig) GetContentType() string

func (*WebhookHTTPConfig) GetExpectedStatusCodes added in v0.2.0

func (x *WebhookHTTPConfig) GetExpectedStatusCodes() []int32

func (*WebhookHTTPConfig) GetFollowRedirects added in v0.2.0

func (x *WebhookHTTPConfig) GetFollowRedirects() bool

func (*WebhookHTTPConfig) GetMaxRetries added in v0.2.0

func (x *WebhookHTTPConfig) GetMaxRetries() int32

func (*WebhookHTTPConfig) GetRateLimitRps added in v1.3.0

func (x *WebhookHTTPConfig) GetRateLimitRps() float32

func (*WebhookHTTPConfig) GetRequestTimeoutSeconds added in v0.2.0

func (x *WebhookHTTPConfig) GetRequestTimeoutSeconds() int32

func (*WebhookHTTPConfig) GetRetryBackoffSeconds added in v0.2.0

func (x *WebhookHTTPConfig) GetRetryBackoffSeconds() int32

func (*WebhookHTTPConfig) GetUserAgent added in v0.2.0

func (x *WebhookHTTPConfig) GetUserAgent() string

func (*WebhookHTTPConfig) GetVerifySsl added in v0.2.0

func (x *WebhookHTTPConfig) GetVerifySsl() bool

func (*WebhookHTTPConfig) GetWebhookSecret added in v0.2.0

func (x *WebhookHTTPConfig) GetWebhookSecret() string

func (*WebhookHTTPConfig) ProtoMessage added in v0.2.0

func (*WebhookHTTPConfig) ProtoMessage()

func (*WebhookHTTPConfig) ProtoReflect added in v0.2.0

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

func (*WebhookHTTPConfig) Reset added in v0.2.0

func (x *WebhookHTTPConfig) Reset()

func (*WebhookHTTPConfig) String added in v0.2.0

func (x *WebhookHTTPConfig) String() string

type WebhookHealth

type WebhookHealth int32

WebhookHealth represents the computed health status of a webhook endpoint.

Health is derived from recent delivery outcomes using two signals:

  • Success rate: successful deliveries / total deliveries
  • Consecutive failures: unbroken streak of failed deliveries

Thresholds:

HEALTHY:   success_rate > 90% AND consecutive_failures < 3
DEGRADED:  success_rate 50-90% OR consecutive_failures 3-9
UNHEALTHY: success_rate < 50% OR consecutive_failures >= 10
const (
	// No delivery data available. The webhook has never received a delivery,
	// or health has not been computed yet.
	WebhookHealth_HEALTH_UNSPECIFIED WebhookHealth = 0
	// Webhook is healthy: >90% success rate and fewer than 3 consecutive failures.
	WebhookHealth_HEALTH_HEALTHY WebhookHealth = 1
	// Webhook is degraded: 50-90% success rate or 3-9 consecutive failures.
	// May indicate intermittent issues at the target endpoint.
	WebhookHealth_HEALTH_DEGRADED WebhookHealth = 2
	// Webhook is unhealthy: <50% success rate or 10+ consecutive failures.
	// Investigate the target endpoint -- deliveries are still attempted but mostly failing.
	WebhookHealth_HEALTH_UNHEALTHY WebhookHealth = 3
)

func (WebhookHealth) Descriptor

func (WebhookHealth) Enum

func (x WebhookHealth) Enum() *WebhookHealth

func (WebhookHealth) EnumDescriptor deprecated

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

Deprecated: Use WebhookHealth.Descriptor instead.

func (WebhookHealth) Number

func (WebhookHealth) String

func (x WebhookHealth) String() string

func (WebhookHealth) Type

type WebhookHealthMetrics

type WebhookHealthMetrics struct {

	// UUID of the webhook these metrics belong to.
	WebhookId string `protobuf:"bytes,1,opt,name=webhook_id,json=webhookId,proto3" json:"webhook_id,omitempty"`
	// Total number of deliveries ever made to this webhook (all time).
	// @example 1520
	TotalDeliveries int32 `protobuf:"varint,2,opt,name=total_deliveries,json=totalDeliveries,proto3" json:"total_deliveries,omitempty"`
	// Number of deliveries that succeeded (terminal SUCCESS status).
	// @example 1480
	SuccessfulDeliveries int32 `protobuf:"varint,3,opt,name=successful_deliveries,json=successfulDeliveries,proto3" json:"successful_deliveries,omitempty"`
	// Number of deliveries that failed permanently (terminal FAILED status).
	// @example 40
	FailedDeliveries int32 `protobuf:"varint,4,opt,name=failed_deliveries,json=failedDeliveries,proto3" json:"failed_deliveries,omitempty"`
	// Current streak of consecutive failed deliveries. Resets to 0 on any success.
	// Used for health status computation: 3-9 = DEGRADED, 10+ = UNHEALTHY.
	// @example 0
	ConsecutiveFailures int32 `protobuf:"varint,5,opt,name=consecutive_failures,json=consecutiveFailures,proto3" json:"consecutive_failures,omitempty"`
	// Timestamp of the most recent successful delivery. Null if the webhook has never succeeded.
	LastSuccessAt *timestamppb.Timestamp `protobuf:"bytes,6,opt,name=last_success_at,json=lastSuccessAt,proto3" json:"last_success_at,omitempty"`
	// Timestamp of the most recent failed delivery. Null if the webhook has never failed.
	LastFailureAt *timestamppb.Timestamp `protobuf:"bytes,7,opt,name=last_failure_at,json=lastFailureAt,proto3" json:"last_failure_at,omitempty"`
	// Success rate as a decimal between 0.0 and 1.0.
	// Computed as successful_deliveries / total_deliveries.
	// Used for health thresholds: >0.9 = HEALTHY, 0.5-0.9 = DEGRADED, <0.5 = UNHEALTHY.
	// @example 0.974
	SuccessRate float64 `protobuf:"fixed64,8,opt,name=success_rate,json=successRate,proto3" json:"success_rate,omitempty"`
	// Average response time in milliseconds across all delivery attempts.
	// @example 245
	AvgResponseTime int32 `protobuf:"varint,9,opt,name=avg_response_time,json=avgResponseTime,proto3" json:"avg_response_time,omitempty"`
	// When the health metrics record was first created.
	CreatedAt *timestamppb.Timestamp `protobuf:"bytes,10,opt,name=created_at,json=createdAt,proto3" json:"created_at,omitempty"`
	// When the health metrics were last updated.
	UpdatedAt *timestamppb.Timestamp `protobuf:"bytes,11,opt,name=updated_at,json=updatedAt,proto3" json:"updated_at,omitempty"`
	// Count of client errors (HTTP 4xx) in the last 24 hours.
	// Client errors are never retried -- typically indicates a misconfigured endpoint
	// (wrong URL, missing auth, payload format mismatch).
	// @example 2
	ClientErrors int32 `protobuf:"varint,12,opt,name=client_errors,json=clientErrors,proto3" json:"client_errors,omitempty"`
	// Count of server errors (HTTP 5xx) in the last 24 hours.
	// Server errors are retried according to the webhook's retry configuration.
	// @example 5
	ServerErrors int32 `protobuf:"varint,13,opt,name=server_errors,json=serverErrors,proto3" json:"server_errors,omitempty"`
	// Count of timeout errors in the last 24 hours.
	// Timeouts are retried. May indicate the endpoint is slow or overloaded.
	// @example 1
	TimeoutErrors int32 `protobuf:"varint,14,opt,name=timeout_errors,json=timeoutErrors,proto3" json:"timeout_errors,omitempty"`
	// Count of network-level errors in the last 24 hours.
	// Includes DNS failures, TLS errors, connection refused, and other transport errors.
	// @example 0
	NetworkErrors int32 `protobuf:"varint,15,opt,name=network_errors,json=networkErrors,proto3" json:"network_errors,omitempty"`
	// Count of unexpected status errors in the last 24 hours.
	// These occur when the HTTP response code is valid (2xx/3xx) but doesn't match
	// the webhook's expected_status_codes list. Not retried.
	// @example 0
	UnexpectedStatusErrors int32 `` /* 131-byte string literal not displayed */
	// contains filtered or unexported fields
}

WebhookHealthMetrics contains detailed health metrics for a single webhook. Metrics are derived from the webhook_health_events and webhook_health_state tables and are updated after every delivery attempt.

func (*WebhookHealthMetrics) Descriptor deprecated

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

Deprecated: Use WebhookHealthMetrics.ProtoReflect.Descriptor instead.

func (*WebhookHealthMetrics) GetAvgResponseTime

func (x *WebhookHealthMetrics) GetAvgResponseTime() int32

func (*WebhookHealthMetrics) GetClientErrors added in v0.2.0

func (x *WebhookHealthMetrics) GetClientErrors() int32

func (*WebhookHealthMetrics) GetConsecutiveFailures

func (x *WebhookHealthMetrics) GetConsecutiveFailures() int32

func (*WebhookHealthMetrics) GetCreatedAt

func (x *WebhookHealthMetrics) GetCreatedAt() *timestamppb.Timestamp

func (*WebhookHealthMetrics) GetFailedDeliveries

func (x *WebhookHealthMetrics) GetFailedDeliveries() int32

func (*WebhookHealthMetrics) GetLastFailureAt

func (x *WebhookHealthMetrics) GetLastFailureAt() *timestamppb.Timestamp

func (*WebhookHealthMetrics) GetLastSuccessAt

func (x *WebhookHealthMetrics) GetLastSuccessAt() *timestamppb.Timestamp

func (*WebhookHealthMetrics) GetNetworkErrors added in v0.2.0

func (x *WebhookHealthMetrics) GetNetworkErrors() int32

func (*WebhookHealthMetrics) GetServerErrors added in v0.2.0

func (x *WebhookHealthMetrics) GetServerErrors() int32

func (*WebhookHealthMetrics) GetSuccessRate

func (x *WebhookHealthMetrics) GetSuccessRate() float64

func (*WebhookHealthMetrics) GetSuccessfulDeliveries

func (x *WebhookHealthMetrics) GetSuccessfulDeliveries() int32

func (*WebhookHealthMetrics) GetTimeoutErrors added in v0.2.0

func (x *WebhookHealthMetrics) GetTimeoutErrors() int32

func (*WebhookHealthMetrics) GetTotalDeliveries

func (x *WebhookHealthMetrics) GetTotalDeliveries() int32

func (*WebhookHealthMetrics) GetUnexpectedStatusErrors added in v1.0.0

func (x *WebhookHealthMetrics) GetUnexpectedStatusErrors() int32

func (*WebhookHealthMetrics) GetUpdatedAt

func (x *WebhookHealthMetrics) GetUpdatedAt() *timestamppb.Timestamp

func (*WebhookHealthMetrics) GetWebhookId

func (x *WebhookHealthMetrics) GetWebhookId() string

func (*WebhookHealthMetrics) ProtoMessage

func (*WebhookHealthMetrics) ProtoMessage()

func (*WebhookHealthMetrics) ProtoReflect

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

func (*WebhookHealthMetrics) Reset

func (x *WebhookHealthMetrics) Reset()

func (*WebhookHealthMetrics) String

func (x *WebhookHealthMetrics) String() string

type WebhookServiceClient

type WebhookServiceClient interface {
	// RegisterWebhook creates a new webhook registration.
	// Accepts a target URL, a list of event names, and optional HTTP configuration.
	// Subscriptions are created automatically for each event in the events list.
	// Returns the generated webhook_id and created_at timestamp.
	// Errors: ALREADY_EXISTS if the URL is already registered in the same namespace.
	RegisterWebhook(ctx context.Context, in *RegisterWebhookRequest, opts ...grpc.CallOption) (*RegisterWebhookResponse, error)
	// UnregisterWebhook permanently deletes a webhook and all its subscriptions.
	// Associated delivery records are also cascade-deleted.
	// Errors: NOT_FOUND if the webhook_id does not exist in the given namespace.
	UnregisterWebhook(ctx context.Context, in *UnregisterWebhookRequest, opts ...grpc.CallOption) (*UnregisterWebhookResponse, error)
	// ListWebhooks returns webhooks for a namespace with optional filters.
	// Supports filtering by event name, active status, or specific webhook_id.
	// Results are paginated (default limit: 50). Each webhook includes its current health status.
	ListWebhooks(ctx context.Context, in *ListWebhooksRequest, opts ...grpc.CallOption) (*ListWebhooksResponse, error)
	// UpdateWebhookConfig patches one or more fields on an existing webhook.
	// Only non-zero fields in WebhookUpdateFields are applied. Updating events replaces
	// the full subscription set: removed events have their subscriptions deleted,
	// new events get subscriptions created.
	// Errors: NOT_FOUND if the webhook does not exist.
	UpdateWebhookConfig(ctx context.Context, in *UpdateWebhookConfigRequest, opts ...grpc.CallOption) (*UpdateWebhookConfigResponse, error)
	// PauseWebhook sets a webhook to inactive. Paused webhooks are skipped during
	// event fan-out -- no new deliveries are created for them. Existing in-flight
	// deliveries are not cancelled.
	// Errors: NOT_FOUND if the webhook does not exist.
	PauseWebhook(ctx context.Context, in *PauseWebhookRequest, opts ...grpc.CallOption) (*PauseWebhookResponse, error)
	// ResumeWebhook re-activates a paused webhook. Future events will again create
	// deliveries for this webhook. Events pushed while the webhook was paused are not retroactively delivered.
	// Errors: NOT_FOUND if the webhook does not exist.
	ResumeWebhook(ctx context.Context, in *ResumeWebhookRequest, opts ...grpc.CallOption) (*ResumeWebhookResponse, error)
	// GetNamespaceStats returns aggregate delivery statistics for a namespace:
	// total/active webhooks, total/successful/failed/pending deliveries, and success rate.
	GetNamespaceStats(ctx context.Context, in *GetNamespaceStatsRequest, opts ...grpc.CallOption) (*GetNamespaceStatsResponse, error)
	// GetTemplateFunctions returns the list of Go template functions available for
	// payload transformation in subscriptions. Each entry includes the function name
	// and a description of its behavior.
	GetTemplateFunctions(ctx context.Context, in *GetTemplateFunctionsRequest, opts ...grpc.CallOption) (*GetTemplateFunctionsResponse, error)
}

WebhookServiceClient is the client API for WebhookService 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.

WebhookService manages webhook registration, configuration, and lifecycle. All RPCs require a namespace. Webhooks are scoped to a single namespace.

type WebhookServiceServer

type WebhookServiceServer interface {
	// RegisterWebhook creates a new webhook registration.
	// Accepts a target URL, a list of event names, and optional HTTP configuration.
	// Subscriptions are created automatically for each event in the events list.
	// Returns the generated webhook_id and created_at timestamp.
	// Errors: ALREADY_EXISTS if the URL is already registered in the same namespace.
	RegisterWebhook(context.Context, *RegisterWebhookRequest) (*RegisterWebhookResponse, error)
	// UnregisterWebhook permanently deletes a webhook and all its subscriptions.
	// Associated delivery records are also cascade-deleted.
	// Errors: NOT_FOUND if the webhook_id does not exist in the given namespace.
	UnregisterWebhook(context.Context, *UnregisterWebhookRequest) (*UnregisterWebhookResponse, error)
	// ListWebhooks returns webhooks for a namespace with optional filters.
	// Supports filtering by event name, active status, or specific webhook_id.
	// Results are paginated (default limit: 50). Each webhook includes its current health status.
	ListWebhooks(context.Context, *ListWebhooksRequest) (*ListWebhooksResponse, error)
	// UpdateWebhookConfig patches one or more fields on an existing webhook.
	// Only non-zero fields in WebhookUpdateFields are applied. Updating events replaces
	// the full subscription set: removed events have their subscriptions deleted,
	// new events get subscriptions created.
	// Errors: NOT_FOUND if the webhook does not exist.
	UpdateWebhookConfig(context.Context, *UpdateWebhookConfigRequest) (*UpdateWebhookConfigResponse, error)
	// PauseWebhook sets a webhook to inactive. Paused webhooks are skipped during
	// event fan-out -- no new deliveries are created for them. Existing in-flight
	// deliveries are not cancelled.
	// Errors: NOT_FOUND if the webhook does not exist.
	PauseWebhook(context.Context, *PauseWebhookRequest) (*PauseWebhookResponse, error)
	// ResumeWebhook re-activates a paused webhook. Future events will again create
	// deliveries for this webhook. Events pushed while the webhook was paused are not retroactively delivered.
	// Errors: NOT_FOUND if the webhook does not exist.
	ResumeWebhook(context.Context, *ResumeWebhookRequest) (*ResumeWebhookResponse, error)
	// GetNamespaceStats returns aggregate delivery statistics for a namespace:
	// total/active webhooks, total/successful/failed/pending deliveries, and success rate.
	GetNamespaceStats(context.Context, *GetNamespaceStatsRequest) (*GetNamespaceStatsResponse, error)
	// GetTemplateFunctions returns the list of Go template functions available for
	// payload transformation in subscriptions. Each entry includes the function name
	// and a description of its behavior.
	GetTemplateFunctions(context.Context, *GetTemplateFunctionsRequest) (*GetTemplateFunctionsResponse, error)
	// contains filtered or unexported methods
}

WebhookServiceServer is the server API for WebhookService service. All implementations must embed UnimplementedWebhookServiceServer for forward compatibility.

WebhookService manages webhook registration, configuration, and lifecycle. All RPCs require a namespace. Webhooks are scoped to a single namespace.

type WebhookUpdateFields

type WebhookUpdateFields struct {

	// Replace the full list of subscribed events. Omit to leave unchanged.
	// Passing a non-empty list replaces all existing subscriptions.
	Events []string `protobuf:"bytes,1,rep,name=events,proto3" json:"events,omitempty"`
	// New target URL. Omit to leave unchanged.
	Url string `protobuf:"bytes,2,opt,name=url,proto3" json:"url,omitempty"`
	// Replace all custom headers. Omit to leave unchanged.
	// Pass an empty map to clear all headers.
	Headers map[string]string `` /* 141-byte string literal not displayed */
	// Set active/inactive status. Note: prefer PauseWebhook/ResumeWebhook RPCs
	// for explicit lifecycle control with reason tracking.
	Active bool `protobuf:"varint,5,opt,name=active,proto3" json:"active,omitempty"`
	// Updated human-readable description. Omit to leave unchanged.
	// @example "Updated order webhook"
	Description string `protobuf:"bytes,6,opt,name=description,proto3" json:"description,omitempty"`
	// Updated HTTP delivery configuration. Omit to leave unchanged.
	// When set, the entire http_config is replaced (not merged field-by-field).
	// @example {"max_retries": 5, "request_timeout_seconds": 60}
	HttpConfig *WebhookHTTPConfig `protobuf:"bytes,7,opt,name=http_config,json=httpConfig,proto3" json:"http_config,omitempty"`
	// Replace all secret headers. Omit to leave unchanged.
	// Pass an empty map to clear all secret headers.
	SecretHeaders map[string]string `` /* 174-byte string literal not displayed */
	// Update the signing scheme: "hmac" or "ed25519". Omit to leave unchanged.
	// Changing from "hmac" to "ed25519" generates a new Ed25519 keypair.
	// Changing from "ed25519" to "hmac" discards the Ed25519 key.
	SignatureType string `protobuf:"bytes,9,opt,name=signature_type,json=signatureType,proto3" json:"signature_type,omitempty"`
	// contains filtered or unexported fields
}

WebhookUpdateFields specifies which webhook fields to update. This is a partial-update message: only non-zero/non-empty fields are applied. Omitted fields are left unchanged on the webhook.

Special behavior for events: setting this field replaces the entire subscription set. Subscriptions for removed events are deleted; new events get subscriptions created. To leave events unchanged, omit the field entirely (don't pass an empty list).

func (*WebhookUpdateFields) Descriptor deprecated

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

Deprecated: Use WebhookUpdateFields.ProtoReflect.Descriptor instead.

func (*WebhookUpdateFields) GetActive

func (x *WebhookUpdateFields) GetActive() bool

func (*WebhookUpdateFields) GetDescription

func (x *WebhookUpdateFields) GetDescription() string

func (*WebhookUpdateFields) GetEvents

func (x *WebhookUpdateFields) GetEvents() []string

func (*WebhookUpdateFields) GetHeaders

func (x *WebhookUpdateFields) GetHeaders() map[string]string

func (*WebhookUpdateFields) GetHttpConfig added in v0.2.0

func (x *WebhookUpdateFields) GetHttpConfig() *WebhookHTTPConfig

func (*WebhookUpdateFields) GetSecretHeaders added in v0.2.0

func (x *WebhookUpdateFields) GetSecretHeaders() map[string]string

func (*WebhookUpdateFields) GetSignatureType added in v1.3.4

func (x *WebhookUpdateFields) GetSignatureType() string

func (*WebhookUpdateFields) GetUrl

func (x *WebhookUpdateFields) GetUrl() string

func (*WebhookUpdateFields) ProtoMessage

func (*WebhookUpdateFields) ProtoMessage()

func (*WebhookUpdateFields) ProtoReflect

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

func (*WebhookUpdateFields) Reset

func (x *WebhookUpdateFields) Reset()

func (*WebhookUpdateFields) String

func (x *WebhookUpdateFields) String() string

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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