package contract import "net/url" const ( ListRunsRoute = "/internal/v1/full-sync-runs" GetRunRoute = "/internal/v1/full-sync-runs/{runId}" GetFailuresRoute = "/internal/v1/full-sync-runs/{runId}/failures" PostReplayRoute = "/internal/v1/full-sync-runs/{runId}/replay" GetActionRoute = "/internal/v1/full-sync-actions/{actionId}" IdempotencyHeader = "Idempotency-Key" ) // ReplayAccepted is the 202 response from a successful ReplayRequester call. // A repeated request returns the original action and its current status. type ReplayAccepted struct { ActionID string `json:"actionId"` TargetRunID string `json:"targetRunId"` Status ActionStatus `json:"status"` StatusURL string `json:"statusUrl"` } func ActionStatusURL(actionID string) (string, error) { if err := ValidateID(actionID); err != nil { return "", err } return "/internal/v1/full-sync-actions/" + url.PathEscape(actionID), nil }