async

package
v0.0.0-...-08a9c38 Latest Latest
Warning

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

Go to latest
Published: Jun 3, 2026 License: Apache-2.0 Imports: 7 Imported by: 0

Documentation

Overview

Package async provides product-neutral evidence records for asynchronous operation submission, execution, status polling, and confirmation reads.

Index

Constants

View Source
const (
	ExecutionRequestVersion            = "evidence.async.execution-request.v1"
	ExecutionResponseVersion           = "evidence.async.execution-response.v1"
	StatusObservationVersion           = "evidence.async.status-observation.v1"
	ConfirmationReadObservationVersion = "evidence.async.confirmation-read-observation.v1"
)

Variables

This section is empty.

Functions

func DigestConfirmationReadObservation

func DigestConfirmationReadObservation(record ConfirmationReadObservation) (digest.Record, error)

func DigestExecutionRequest

func DigestExecutionRequest(record ExecutionRequest) (digest.Record, error)

func DigestExecutionResponse

func DigestExecutionResponse(record ExecutionResponse) (digest.Record, error)

func DigestStatusObservation

func DigestStatusObservation(record StatusObservation) (digest.Record, error)

func ValidateConfirmationReadObservation

func ValidateConfirmationReadObservation(record ConfirmationReadObservation) []diagnostic.Record

func ValidateExecutionRequest

func ValidateExecutionRequest(record ExecutionRequest) []diagnostic.Record

func ValidateExecutionResponse

func ValidateExecutionResponse(record ExecutionResponse) []diagnostic.Record

func ValidateStatusObservation

func ValidateStatusObservation(record StatusObservation) []diagnostic.Record

Types

type AttemptMetadata

type AttemptMetadata struct {
	EvidenceID string    `json:"evidence_id"`
	AttemptID  string    `json:"attempt_id"`
	Sequence   int64     `json:"sequence,omitempty"`
	Actor      string    `json:"actor,omitempty"`
	Source     string    `json:"source,omitempty"`
	RecordedAt time.Time `json:"recorded_at,omitempty"`
}

func NormalizeAttempt

func NormalizeAttempt(attempt AttemptMetadata) AttemptMetadata

type ConfirmationReadObservation

type ConfirmationReadObservation struct {
	Version           string            `json:"version"`
	Attempt           AttemptMetadata   `json:"attempt"`
	RequestEvidenceID string            `json:"request_evidence_id,omitempty"`
	Operation         OperationRef      `json:"operation"`
	Outcome           string            `json:"outcome"`
	ProjectedDigests  []digest.Record   `json:"projected_digests,omitempty"`
	CorrelationIDs    map[string]string `json:"correlation_ids,omitempty"`
	ObservedAt        time.Time         `json:"observed_at,omitempty"`
}

type ExecutionRequest

type ExecutionRequest struct {
	Version   string            `json:"version"`
	Attempt   AttemptMetadata   `json:"attempt"`
	RequestID string            `json:"request_id,omitempty"`
	Operation OperationRef      `json:"operation"`
	Runtime   RuntimeHints      `json:"runtime,omitempty"`
	Transport map[string]string `json:"transport,omitempty"`
	Digests   []digest.Record   `json:"digests,omitempty"`
	Metadata  map[string]string `json:"metadata,omitempty"`
}

func NormalizeExecutionRequest

func NormalizeExecutionRequest(record ExecutionRequest) ExecutionRequest

type ExecutionResponse

type ExecutionResponse struct {
	Version           string            `json:"version"`
	Attempt           AttemptMetadata   `json:"attempt"`
	RequestEvidenceID string            `json:"request_evidence_id,omitempty"`
	ResponseID        string            `json:"response_id,omitempty"`
	Operation         OperationRef      `json:"operation"`
	Outcome           string            `json:"outcome"`
	StatusCode        int               `json:"status_code,omitempty"`
	StatusClass       string            `json:"status_class,omitempty"`
	CorrelationIDs    map[string]string `json:"correlation_ids,omitempty"`
	PayloadDigests    []digest.Record   `json:"payload_digests,omitempty"`
	ErrorSummary      string            `json:"error_summary,omitempty"`
	StartedAt         time.Time         `json:"started_at,omitempty"`
	FinishedAt        time.Time         `json:"finished_at,omitempty"`
}

func NormalizeExecutionResponse

func NormalizeExecutionResponse(record ExecutionResponse) ExecutionResponse

type OperationRef

type OperationRef struct {
	SubjectKind string `json:"subject_kind,omitempty"`
	SubjectID   string `json:"subject_id,omitempty"`
	Action      string `json:"action,omitempty"`
	Method      string `json:"method,omitempty"`
	SourceKind  string `json:"source_kind,omitempty"`
	SourceID    string `json:"source_id,omitempty"`
	SourcePath  string `json:"source_path,omitempty"`
	OperationID string `json:"operation_id"`
}

func NormalizeOperation

func NormalizeOperation(operation OperationRef) OperationRef

type RuntimeHints

type RuntimeHints struct {
	Retry      map[string]any `json:"retry,omitempty"`
	Waiter     map[string]any `json:"waiter,omitempty"`
	Pagination map[string]any `json:"pagination,omitempty"`
}

type StatusObservation

type StatusObservation struct {
	Version           string            `json:"version"`
	Attempt           AttemptMetadata   `json:"attempt"`
	RequestEvidenceID string            `json:"request_evidence_id,omitempty"`
	Operation         OperationRef      `json:"operation"`
	Status            string            `json:"status,omitempty"`
	TerminalityHint   string            `json:"terminality_hint,omitempty"`
	CorrelationIDs    map[string]string `json:"correlation_ids,omitempty"`
	PayloadDigests    []digest.Record   `json:"payload_digests,omitempty"`
	ObservedAt        time.Time         `json:"observed_at,omitempty"`
}

func NormalizeStatusObservation

func NormalizeStatusObservation(record StatusObservation) StatusObservation

Jump to

Keyboard shortcuts

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