Skip to content

Read Service recovery pattern

GET
/v1/object-types/hospitality.service_recovery_pattern/objects/{id}
curl --request GET \
--url https://api.aerandil.com/v1/object-types/hospitality.service_recovery_pattern/objects/2489E9AD-2EE2-8E00-8EC9-32D5F69181C0 \
--header 'Authorization: Bearer <token>'

Read an existing instance.

A property-scoped recurring-service-failure pattern detected by an agent or model. The subject, evidence snapshot, hypotheses, severity, confidence, and recommended remediation are frozen at issue time. Decision, applied, escalation, rejection, supersedence, and recurrence fields mutate through explicit lifecycle actions.

id
required
string format: uuid

Object id (UUID v7, server-generated at create time).

branch
string format: uuid

Read through an open branch’s copy-on-first-write overlay view instead of the canonical (main) plane. Does not compose with as_of (422). The branch must exist under the caller’s tenant.

Object found.

Media typeapplication/json
object
created_at
required
string format: date-time
id
required
string format: uuid
object_type
required
Allowed value: hospitality.service_recovery_pattern
properties
required
object
applied_action_correlation_id
Correlation id of host-orchestrated chained remediation
string
applied_remediation_kind
Remediation class actually applied
string
Allowed values: work_order_created recovery_toolkit_updated service_register_updated staff_training_referred engineering_referred supply_chain_referred philosophy_revisited lineup_cadence_corrected manual_intervention no_action_applied
confidence
required
Operator-facing confidence ordinal
string
Allowed values: low medium high
confidence_score
Optional calibrated confidence score [0, 1]
string format: decimal
decided_at
When the pattern left suggested state
string format: date-time
decided_by
stable_id of the deciding principal
string
decision_status
required
Lifecycle state
string
Allowed values: suggested applied rejected escalated expired superseded
detection_window_end
required
End of the frozen detection window
string format: date-time
detection_window_start
required
Start of the frozen detection window
string format: date-time
escalation_reason
Reason recorded on escalation
string
Allowed values: high_severity capital_expenditure_required safety_health_concern training_program_redesign_needed regulatory_concern cross_property_pattern repeat_unresolved low_confidence manual_review_required operator_override
escalation_target_staff_ref
Optional named staff member assigned on escalation
string format: uuid
event_count
required
Number of clustered events
integer
expires_at
required
Expiry time
string format: date-time
factors_considered
Signals considered by the detector
Array<string>
Allowed values: recovery_event_density recovery_event_severity_distribution recovery_event_temporal_clustering recovery_event_venue_clustering recovery_event_room_clustering comp_amount_distribution recovery_process_stages_completion_rate interactional_quality_distribution time_to_resolution_distribution pre_shift_lineup_cadence message_triage_complaint_density work_order_recurrence housekeeping_task_defect_rate review_sentiment_trend philosophy_axis_contradiction recovery_paradox_signal staff_member_turnover other
failure_categories_observed
required
Observed service-failure categories
Array<string>
Allowed values: staff_interaction room_condition fnb_quality fnb_service_pace billing allergy_dietary security_safety check_in_out maintenance recognition_failure anticipation_miss noise temperature other
failure_subject_themes
Free-text theme labels for the clustered subject
Array<string>
id
required
Pattern id
string
issued_at
required
Issue time
string format: date-time
pattern_context_snapshot
Frozen context snapshot captured at issue time
pattern_kind
required
Detected pattern class
string
Allowed values: recurring_failure_category venue_hotspot room_or_floor_hotspot time_window_hotspot staff_role_hotspot cross_signal_correlation comp_authority_breach_spike lineup_cadence_drift recognition_failure_against_philosophy recovery_paradox_breach follow_up_completion_drop other
pattern_payload_hash
Optional SHA-256 of canonical detector payload
string
policy_outcomes
required
Compliance and operational policy flags observed during detection
Array<string>
Allowed values: gdpr_art22_explanation_required eu_ai_act_high_risk_processing ccpa_admt_notice_required health_safety_referral gdpr_art9_special_category_present privacy_redaction_applied ccpa_admt_significant_decision capex_threshold_breached none
property_ref
required
Property anchor for the pattern
string format: uuid
rationale_text
Human-readable explanation
string
recommended_remediation_action_ref
API name of the host-orchestrated chained action, when applicable
string
recommended_remediation_kind
required
Recommended remediation class
string
Allowed values: chain_typed_action schedule_capital_expenditure_review escalate_to_staff philosophy_revisit continue_monitoring cross_property_review update_service_register no_action_recommended update_recovery_toolkit data_quality_followup schedule_staff_training other
recommended_remediation_params
Proposed chained-action parameters or workflow payload
recurrence_outcome
Observed recurrence state after remediation
string
Allowed values: decayed_to_zero decayed_significantly decayed_partially unchanged worsened not_measurable
recurrence_outcome_event_count
Event count in recurrence measurement window
integer
recurrence_outcome_window_end
End of recurrence measurement window
string format: date-time
recurrence_outcome_window_start
Start of recurrence measurement window
string format: date-time
rejection_reason
Free-text reason on reject
string
root_cause_hypotheses
Service recovery pattern root cause hypotheses

Structured root-cause hypotheses

Array<object>
object
contribution
required
string format: decimal
kind
required
string
Allowed values: equipment_malfunction maintenance_overdue supply_shortage staffing_shortage training_gap process_gap scheduling_conflict supplier_quality_issue seasonal_event external_event data_quality_issue unknown
narrative_text
required
string
severity_band
Operator-facing severity band
string
Allowed values: low medium high critical
severity_score
Optional calibrated severity score [0, 1]
string format: decimal
subject_id
required
Opaque id of the operational subject within the property
string
subject_kind
required
What operational subject the pattern clusters
string
Allowed values: failure_category_hotspot venue_hotspot room_or_floor_hotspot time_window_hotspot staff_role_hotspot cross_signal_correlation comp_authority_breach_spike lineup_cadence_drift recognition_failure_against_philosophy recovery_paradox_breach
superseded_by_pattern_ref
Newer pattern that supersedes this one
string format: uuid
vendor_id
required
Detector vendor identity
string
vendor_model_version
Detector model version when exposed
string
venue_ref
Optional venue anchor when the pattern is venue-scoped
string format: uuid
provenance

Per-property source attribution and pins. An entry under properties means the property’s current value came from that source (on the source’s own clock, source_updated_at); an entry under pins is a human override protecting the property from sourced writes.

object
pins
object
key
additional properties
object
pinned_at
string format: date-time
pinned_by
object
reason
required
string
properties
object
key
additional properties
object
external_id
string
recorded_at
required
string format: date-time
source
required
string
source_updated_at
string format: date-time
stream
string
scope
required
One of: discriminator: level
object
level
required
string
Allowed value: tenant
Allowed values: tenant
tenant_id
required
string format: uuid
updated_at
required
string format: date-time
version
required
integer
>= 1
Example
{
"object_type": "hospitality.service_recovery_pattern",
"properties": {
"applied_remediation_kind": "work_order_created",
"confidence": "low",
"decision_status": "suggested",
"escalation_reason": "high_severity",
"factors_considered": [
"recovery_event_density"
],
"failure_categories_observed": [
"staff_interaction"
],
"pattern_kind": "recurring_failure_category",
"policy_outcomes": [
"gdpr_art22_explanation_required"
],
"recommended_remediation_kind": "chain_typed_action",
"recurrence_outcome": "decayed_to_zero",
"root_cause_hypotheses": [
{
"kind": "equipment_malfunction"
}
],
"severity_band": "low",
"subject_kind": "failure_category_hotspot"
},
"scope": {
"level": "tenant"
}
}
ETag
string
/^"\d+"$/

Quoted strong validator (RFC 7232 §2.3) carrying the object’s monotonic version. Informational on the read path — object mutation goes through typed actions on /v1/actions/{action}/apply, not raw CRUD.

No object with that id (or soft-deleted).