Create infrastructure lifecycle event
create_infrastructure_lifecycle_eventCreate a lifecycle strategy event. Events attach to a SCOPE (feature_class code, material, optional diameter band) - never to individual features; every feature resolves the most specific matching scope, like replacement rates. Replacement is NOT an event (it is priced by the rates and scheduled by the renewal forecast) - model the interventions BEFORE replacement: crack sealing, relining, resurfacing. List existing events first to reuse a scope. Requires infrastructure_lifecycle_events:write scope.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Event name (required, e.g. "Crack Sealing") | |
| material | No | Material the scope applies to, exactly as features carry it (e.g. "PVC") | |
| unit_cost | No | Cost per unit (current dollars, never indexed) | |
| fixed_cost | No | Fixed cost (current dollars) | |
| sort_order | No | Evaluation order within the strategy | |
| cost_method | No | Costing: per unit (uses the feature's measured quantity and unit) or a fixed amount (default per_unit) | |
| cost_source | No | Provenance of the cost ("Engineering 2026", a tender reference) | |
| event_class | Yes | Event type - preventative maintenance or rehabilitation | |
| feature_class | No | Feature class code the strategy scope applies to (omit for a material-wide scope; at least one of feature_class/material is required) | |
| impact_method | Yes | Effect: add years of life, or reset condition to a value | |
| diameter_min_mm | No | Lower bound of a diameter band (requires material); bands ladder like rates | |
| impact_reset_to | No | Condition after the event (required when impact_method is reset_condition) | |
| work_generation | No | What a due application of this event becomes when created from the interventions list: none (plan only, default), work_order, or project. Nothing is created on a schedule. | |
| impact_add_years | No | Years added (required when impact_method is add_years) | |
| max_applications | No | How many times the event may fire over a feature's life (default 1) | |
| min_years_between | No | Minimum years between firings of a recurring event (default 1) | |
| trigger_condition_max | Yes | Upper bound of the trigger window - the event fires when projected condition falls to this | |
| trigger_condition_min | No | Lower bound of the trigger window (default 0); a feature already below it has missed the event | |
| work_generation_priority | No | Priority for generated work orders. Ignored unless work_generation is work_order. | |
| work_generation_category_id | No | Work category for generated work orders - resolve with list_work_categories. Ignored unless work_generation is work_order. |