Class: Infrawrench::IncidentsNamespace
- Inherits:
-
Object
- Object
- Infrawrench::IncidentsNamespace
- Defined in:
- lib/infrawrench/client.rb,
sig/infrawrench/sdk.rbs
Overview
client.incidents
Instance Attribute Summary collapse
-
#get ⇒ IncidentsGetNamespace
readonly
client.incidents.get. -
#notes ⇒ IncidentsNotesNamespace
readonly
client.incidents.notes.
Instance Method Summary collapse
-
#create(org_id: nil, body: nil, request_options: nil) ⇒ Hash
Declare an incident.
-
#delete(incident_id:, org_id: nil, request_options: nil) ⇒ nil
Delete an incident.
-
#initialize(transport) ⇒ IncidentsNamespace
constructor
private
A new instance of IncidentsNamespace.
-
#postmortem(incident_id:, org_id: nil, request_options: nil) ⇒ Hash
Export a pre-filled postmortem.
-
#retry_artifacts(incident_id:, org_id: nil, request_options: nil) ⇒ Hash
Retry the artefacts that failed.
-
#timeline(incident_id:, org_id: nil, request_options: nil) ⇒ Hash
Assemble the incident's timeline.
-
#update(incident_id:, org_id: nil, body: nil, request_options: nil) ⇒ Hash
Edit or transition an incident.
Constructor Details
#initialize(transport) ⇒ IncidentsNamespace
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
Returns a new instance of IncidentsNamespace.
7843 7844 7845 7846 7847 |
# File 'lib/infrawrench/client.rb', line 7843 def initialize(transport) @transport = transport @get = IncidentsGetNamespace.new(@transport) @notes = IncidentsNotesNamespace.new(@transport) end |
Instance Attribute Details
#get ⇒ IncidentsGetNamespace (readonly)
Returns client.incidents.get.
7837 7838 7839 |
# File 'lib/infrawrench/client.rb', line 7837 def get @get end |
#notes ⇒ IncidentsNotesNamespace (readonly)
Returns client.incidents.notes.
7839 7840 7841 |
# File 'lib/infrawrench/client.rb', line 7839 def notes @notes end |
Instance Method Details
#create(org_id: nil, body: nil, request_options: nil) ⇒ Hash
Declare an incident
Record the incident and perform the opted-in side effects. The incident
row is written first and alone: a 201 means it exists, and the artifacts
array on the response says what else happened. No side effect can lose the
declaration, and none is swallowed. Audit-logged.
Requires permission: incidents:write.
POST /api/org/orgId/incidents
Raises on 400: Bad request
Raises on 403: Forbidden
7870 7871 7872 7873 7874 7875 7876 7877 7878 |
# File 'lib/infrawrench/client.rb', line 7870 def create(org_id: nil, body: nil, request_options: nil) @transport.request( http_method: "POST", path: "/api/org/{orgId}/incidents", path_params: { "orgId" => org_id }, body: body, request_options: ) end |
#delete(incident_id:, org_id: nil, request_options: nil) ⇒ nil
Delete an incident
Removes the incident, its notes and its artefact records. It does not lift a freeze or close a status-page update — resolve for that; deleting is for a mis-declaration. Audit-logged.
Requires permission: incidents:write.
DELETE /api/org/orgId/incidents/incidentId
Raises on 404: Not found
7898 7899 7900 7901 7902 7903 7904 7905 7906 |
# File 'lib/infrawrench/client.rb', line 7898 def delete(incident_id:, org_id: nil, request_options: nil) @transport.request( http_method: "DELETE", path: "/api/org/{orgId}/incidents/{incidentId}", path_params: { "orgId" => org_id, "incidentId" => incident_id }, accept: :empty, request_options: ) end |
#postmortem(incident_id:, org_id: nil, request_options: nil) ⇒ Hash
Export a pre-filled postmortem
Markdown with the timeline, the affected resources, the duration, the time to mitigate and the notes already filled in. The analysis headings — impact, root cause, action items — are deliberately left blank: a generated document that guesses at a root cause is worse than one that leaves a heading.
Requires permission: incidents:read.
GET /api/org/orgId/incidents/incidentId/postmortem
Raises on 404: Not found
7929 7930 7931 7932 7933 7934 7935 7936 |
# File 'lib/infrawrench/client.rb', line 7929 def postmortem(incident_id:, org_id: nil, request_options: nil) @transport.request( http_method: "GET", path: "/api/org/{orgId}/incidents/{incidentId}/postmortem", path_params: { "orgId" => org_id, "incidentId" => incident_id }, request_options: ) end |
#retry_artifacts(incident_id:, org_id: nil, request_options: nil) ⇒ Hash
Retry the artefacts that failed
Re-runs only the side effects whose artefact is in a failure state,
replacing each failure rather than queueing a second attempt beside it. A
failed artefact is re-created; a close_failed one is re-closed
— re-creating the latter would open a second change freeze or post a
duplicate public notice. A status-page retry reuses the components
recorded on the artefact's request, so the announcement keeps its
original scope. Its own endpoint rather than a flag on PATCH, because it
writes into three external systems. Audit-logged.
Requires permission: incidents:write.
POST /api/org/orgId/incidents/incidentId/retry-artifacts
Raises on 404: Not found
7961 7962 7963 7964 7965 7966 7967 7968 |
# File 'lib/infrawrench/client.rb', line 7961 def retry_artifacts(incident_id:, org_id: nil, request_options: nil) @transport.request( http_method: "POST", path: "/api/org/{orgId}/incidents/{incidentId}/retry-artifacts", path_params: { "orgId" => org_id, "incidentId" => incident_id }, request_options: ) end |
#timeline(incident_id:, org_id: nil, request_options: nil) ⇒ Hash
Assemble the incident's timeline
Merged on read from what is already recorded between the incident's start and its resolution: resource changes, deployments, cost anomalies, provider status incidents, audit entries, change freezes and workflow runs (all via the same union the Moment screen uses), plus probe state transitions, metric-alert firings, the incident's own life events, its artefacts and its operator notes. Nothing is copied — a correction upstream shows up here on the next read.
Probe transitions are an approximation: synthetic_probes keeps only a
single lastStateChangeAt, so a probe that flapped twice inside the
window contributes its most recent flip and no more.
Requires permission: incidents:read.
GET /api/org/orgId/incidents/incidentId/timeline
Raises on 404: Not found
7996 7997 7998 7999 8000 8001 8002 8003 |
# File 'lib/infrawrench/client.rb', line 7996 def timeline(incident_id:, org_id: nil, request_options: nil) @transport.request( http_method: "GET", path: "/api/org/{orgId}/incidents/{incidentId}/timeline", path_params: { "orgId" => org_id, "incidentId" => incident_id }, request_options: ) end |
#update(incident_id:, org_id: nil, body: nil, request_options: nil) ⇒ Hash
Edit or transition an incident
Omitted fields keep their value. Setting status stamps the matching
timestamp, and resolving undoes exactly what this incident created — the
freeze whose id is on its own artefact, not whatever freeze happens to be
in effect. Resolving an incident that was never marked mitigated
back-fills mitigatedAt from resolvedAt. Audit-logged.
Requires permission: incidents:write.
PATCH /api/org/orgId/incidents/incidentId
Raises on 400: Bad request
Raises on 404: Not found
8028 8029 8030 8031 8032 8033 8034 8035 8036 |
# File 'lib/infrawrench/client.rb', line 8028 def update(incident_id:, org_id: nil, body: nil, request_options: nil) @transport.request( http_method: "PATCH", path: "/api/org/{orgId}/incidents/{incidentId}", path_params: { "orgId" => org_id, "incidentId" => incident_id }, body: body, request_options: ) end |