29 lines
955 B
Go
29 lines
955 B
Go
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
|
|
}
|