Menu
Grafana Cloud

JavaScript/TypeScript client reference

This page describes the entire API surface in detail. Examples use the JavaScript/TypeScript client.

Services

The Grafana Incident JSON/HTTP RPC API is made up of the following services:

  • ActivityService - ActivityService provides access to incident activity. You can post notes to the timeline, and query and update the individual timeline items.
  • IncidentsService - IncidentsService provides the ability to query, get, declare (create), update, and manage Incidents programatically. You can also assign roles and update labels.
  • TasksService - TasksService provides methods for managing tasks relating to Incidents.

ActivityService

ActivityService provides access to incident activity. You can post notes to the timeline, and query and update the individual timeline items.

AddActivity

AddActivity posts an activity item to an Incident.

AddActivityRequest

  • incidentID - string - IncidentID is the unique identifier of the Incident.
  • activityKind - string - options: "userNote" - ActivityKind is the type of activity this item represents.
  • body - string - Body is a human readable description of the ActivityItem. URLs mentioned will be parsed and attached as context.
  • eventTime - string - EventTime is the time when the event occurred. If empty, the current time is used. The string value format should follow RFC 3339.

Choose language:  curl   Go   JS/TS   JSON 

import { GrafanaIncidentClient, ActivityService } from 'incident-node';

// https://grafana.com/docs/grafana-cloud/incident/api/auth/#get-a-service-account-token
const serviceAccountToken = process.env.GRAFANA_CLOUD_SERVICE_ACCOUNT_TOKEN;
const client = new GrafanaIncidentClient(
  "https://your-stack.grafana.net", 
  serviceAccountToken
);
const activityService = new ActivityService(client);

// AddActivity posts an activity item to an Incident.
const activityServiceResp = await activityService.addActivity({
	"activityKind": "userNote",
	"body": "Some interesting insights from a third-party system",
	"eventTime": "2021-08-07T11:58:23Z",
	"incidentID": "incident-123"
});

if (!activityServiceResp.success) {
  // handle the error
  throw new Error(activityServiceResp.error);
}

// access the fields of the response
console.info({"activityItem": activityServiceResp.data.activityItem});

AddActivityResponse

A 200 response with an empty error field indicates that the request was successful.

  • activityItem - ActivityItem - ActivityItem is the newly created ActivityItem.
  • error - string - Error is string explaining what went wrong. Empty if everything was fine.
console.info("activityItem": activityServiceResp.data.activityItem);

QueryActivity

QueryActivity gets a selection of activity items.

QueryActivityRequest

  • query - ActivityQuery - Query describes the query to make.
  • cursor - Cursor - Cursor is used to page through results. Empty for the first page. For subsequent pages, use previously returned Cursor values.

Choose language:  curl   Go   JS/TS   JSON 

import { GrafanaIncidentClient, ActivityService } from 'incident-node';

// https://grafana.com/docs/grafana-cloud/incident/api/auth/#get-a-service-account-token
const serviceAccountToken = process.env.GRAFANA_CLOUD_SERVICE_ACCOUNT_TOKEN;
const client = new GrafanaIncidentClient(
  "https://your-stack.grafana.net", 
  serviceAccountToken
);
const activityService = new ActivityService(client);

// QueryActivity gets a selection of activity items.
const activityServiceResp = await activityService.queryActivity({
	"cursor": {
		"hasMore": true,
		"nextValue": "aaaabbbbccccddddeeeeffffgggg"
	},
	"query": {
		"activityKind": [
			"incidentCreated"
		],
		"incidentID": "incident-123",
		"limit": 10,
		"orderDirection": "ASC",
		"tag": "important"
	}
});

if (!activityServiceResp.success) {
  // handle the error
  throw new Error(activityServiceResp.error);
}

// access the fields of the response
console.info({"activityItems": activityServiceResp.data.activityItems});
console.info({"query": activityServiceResp.data.query});
console.info({"cursor": activityServiceResp.data.cursor});

QueryActivityResponse

A 200 response with an empty error field indicates that the request was successful.

  • activityItems - array of ActivityItem - ActivityItems is the list of items.
  • query - ActivityQuery - Query is the query that was used to generate the response.
  • cursor - Cursor - Cursor is used to page through results. Empty for the first page. For subsequent pages, use previously returned Cursor values.
  • error - string - Error is string explaining what went wrong. Empty if everything was fine.
console.info("activityItems": activityServiceResp.data.activityItems);
console.info("query": activityServiceResp.data.query);
console.info("cursor": activityServiceResp.data.cursor);

RemoveActivity

RemoveActivity removes an activity item.

RemoveActivityRequest

  • incidentID - string - IncidentID is the identifier.
  • activityItemID - string - ActivityItemID is the unique identifier of the ActivityItem.

Choose language:  curl   Go   JS/TS   JSON 

import { GrafanaIncidentClient, ActivityService } from 'incident-node';

// https://grafana.com/docs/grafana-cloud/incident/api/auth/#get-a-service-account-token
const serviceAccountToken = process.env.GRAFANA_CLOUD_SERVICE_ACCOUNT_TOKEN;
const client = new GrafanaIncidentClient(
  "https://your-stack.grafana.net", 
  serviceAccountToken
);
const activityService = new ActivityService(client);

// RemoveActivity removes an activity item.
const activityServiceResp = await activityService.removeActivity({
	"activityItemID": "activity-item-123",
	"incidentID": "incident-123"
});

if (!activityServiceResp.success) {
  // handle the error
  throw new Error(activityServiceResp.error);
}

// access the fields of the response
console.info({"activityItem": activityServiceResp.data.activityItem});

RemoveActivityResponse

A 200 response with an empty error field indicates that the request was successful.

  • activityItem - ActivityItem - ActivityItem is the updated ActivityItem.
  • error - string - Error is string explaining what went wrong. Empty if everything was fine.
console.info("activityItem": activityServiceResp.data.activityItem);

UpdateActivityBody

UpdateActivityBody updates the body of a specific activity item.

UpdateActivityBodyRequest

  • incidentID - string - IncidentID is the identifier.
  • activityItemID - string - ActivityItemID is the unique identifier of the ActivityItem.
  • body - string - Body is the new body to use for the given activity item

Choose language:  curl   Go   JS/TS   JSON 

import { GrafanaIncidentClient, ActivityService } from 'incident-node';

// https://grafana.com/docs/grafana-cloud/incident/api/auth/#get-a-service-account-token
const serviceAccountToken = process.env.GRAFANA_CLOUD_SERVICE_ACCOUNT_TOKEN;
const client = new GrafanaIncidentClient(
  "https://your-stack.grafana.net", 
  serviceAccountToken
);
const activityService = new ActivityService(client);

// UpdateActivityBody updates the body of a specific activity item.
const activityServiceResp = await activityService.updateActivityBody({
	"activityItemID": "activity-item-123",
	"body": "New contents",
	"incidentID": "incident-123"
});

if (!activityServiceResp.success) {
  // handle the error
  throw new Error(activityServiceResp.error);
}

// access the fields of the response
console.info({"activityItem": activityServiceResp.data.activityItem});

UpdateActivityBodyResponse

A 200 response with an empty error field indicates that the request was successful.

  • activityItem - ActivityItem - ActivityItem is the updated ActivityItem.
  • error - string - Error is string explaining what went wrong. Empty if everything was fine.
console.info("activityItem": activityServiceResp.data.activityItem);

UpdateActivityEventTime

UpdateActivityEventTime updates the event time of a specific activity item.

UpdateActivityEventTimeRequest

  • incidentID - string - IncidentID is the identifier.
  • activityItemID - string - ActivityItemID is the unique identifier of the ActivityItem.
  • eventTime - string - EventTime is the time when the event occurred. If empty, the created time of the activity item is used. The string value format should follow RFC 3339.

Choose language:  curl   Go   JS/TS   JSON 

import { GrafanaIncidentClient, ActivityService } from 'incident-node';

// https://grafana.com/docs/grafana-cloud/incident/api/auth/#get-a-service-account-token
const serviceAccountToken = process.env.GRAFANA_CLOUD_SERVICE_ACCOUNT_TOKEN;
const client = new GrafanaIncidentClient(
  "https://your-stack.grafana.net", 
  serviceAccountToken
);
const activityService = new ActivityService(client);

// UpdateActivityEventTime updates the event time of a specific activity item.
const activityServiceResp = await activityService.updateActivityEventTime({
	"activityItemID": "activity-item-123",
	"eventTime": "2021-08-07T11:58:23Z",
	"incidentID": "incident-123"
});

if (!activityServiceResp.success) {
  // handle the error
  throw new Error(activityServiceResp.error);
}

// access the fields of the response
console.info({"activityItem": activityServiceResp.data.activityItem});

UpdateActivityEventTimeResponse

A 200 response with an empty error field indicates that the request was successful.

  • activityItem - ActivityItem - ActivityItem is the updated ActivityItem.
  • error - string - Error is string explaining what went wrong. Empty if everything was fine.
console.info("activityItem": activityServiceResp.data.activityItem);

IncidentsService

IncidentsService provides the ability to query, get, declare (create), update, and manage Incidents programatically. You can also assign roles and update labels.

AddLabel

AddLabel adds a label to the Incident.

AddLabelRequest

  • incidentID - string - IncidentID is the identifier of the Incident.
  • label - IncidentLabel - Label is the new label of the Incident.

Choose language:  curl   Go   JS/TS   JSON 

import { GrafanaIncidentClient, IncidentsService } from 'incident-node';

// https://grafana.com/docs/grafana-cloud/incident/api/auth/#get-a-service-account-token
const serviceAccountToken = process.env.GRAFANA_CLOUD_SERVICE_ACCOUNT_TOKEN;
const client = new GrafanaIncidentClient(
  "https://your-stack.grafana.net", 
  serviceAccountToken
);
const incidentsService = new IncidentsService(client);

// AddLabel adds a label to the Incident.
const incidentsServiceResp = await incidentsService.addLabel({
	"incidentID": "incident-123",
	"label": {
		"colorHex": "#ff0000",
		"description": "Customers are affected by this incident.",
		"label": "customers-affected"
	}
});

if (!incidentsServiceResp.success) {
  // handle the error
  throw new Error(incidentsServiceResp.error);
}

// access the fields of the response
console.info({"incident": incidentsServiceResp.data.incident});

AddLabelResponse

A 200 response with an empty error field indicates that the request was successful.

  • incident - Incident - Incident is the Incident that was just modified.
  • error - string - Error is string explaining what went wrong. Empty if everything was fine.
console.info("incident": incidentsServiceResp.data.incident);

AssignRole

AssignRole assigns a role to a user.

AssignRoleRequest

  • incidentID - string - IncidentID is the identifier.
  • userID - string - UserID is the identifier of the person to assign the role to.
  • role - string - options: "commander" "investigator" "observer" - Role is the role of this person.

Choose language:  curl   Go   JS/TS   JSON 

import { GrafanaIncidentClient, IncidentsService } from 'incident-node';

// https://grafana.com/docs/grafana-cloud/incident/api/auth/#get-a-service-account-token
const serviceAccountToken = process.env.GRAFANA_CLOUD_SERVICE_ACCOUNT_TOKEN;
const client = new GrafanaIncidentClient(
  "https://your-stack.grafana.net", 
  serviceAccountToken
);
const incidentsService = new IncidentsService(client);

// AssignRole assigns a role to a user.
const incidentsServiceResp = await incidentsService.assignRole({
	"incidentID": "incident-123",
	"role": "commander",
	"userID": "grafana-incident:user-123"
});

if (!incidentsServiceResp.success) {
  // handle the error
  throw new Error(incidentsServiceResp.error);
}

// access the fields of the response
console.info({"incident": incidentsServiceResp.data.incident});
console.info({"didChange": incidentsServiceResp.data.didChange});

AssignRoleResponse

A 200 response with an empty error field indicates that the request was successful.

  • incident - Incident - Incident is the Incident that was just updated.
  • didChange - boolean - DidChange indicates if the role was changed or not. If the role was already assigned, this will be false.
  • error - string - Error is string explaining what went wrong. Empty if everything was fine.
console.info("incident": incidentsServiceResp.data.incident);
console.info("didChange": incidentsServiceResp.data.didChange);

CreateIncident

CreateIncident creates a new Incident.

CreateIncidentRequest

  • title - string - Title is the headline title of the Incident. Shorter the better, but should contain enough information to be able to identify and refer to this issue.
  • severity - string - options: "pending" "minor" "major" "critical" - Severity expresses how bad the Incident is.
  • labels - array of IncidentLabel - Labels are the labels associated with the Incident. Only the Label string is processed, the other fields are ignored.
  • roomPrefix - string - RoomPrefix is the prefix that will be used to create the Incident room.
  • isDrill - boolean - IsDrill indicates if the Incident is a drill or not. Incidents that are drills do not show up in the dashboards, and may behave subtly differently in other ways too. For example, during drills, more help might be offered to users.
  • status - string - options: "active" "resolved" - Status is the starting status of the Incident. Use “resolved” to open a retrospective incident.
  • attachCaption - string - AttachCaption is the title of associated URL.
  • attachURL - string - AttachURLis the associated URL.

Choose language:  curl   Go   JS/TS   JSON 

import { GrafanaIncidentClient, IncidentsService } from 'incident-node';

// https://grafana.com/docs/grafana-cloud/incident/api/auth/#get-a-service-account-token
const serviceAccountToken = process.env.GRAFANA_CLOUD_SERVICE_ACCOUNT_TOKEN;
const client = new GrafanaIncidentClient(
  "https://your-stack.grafana.net", 
  serviceAccountToken
);
const incidentsService = new IncidentsService(client);

// CreateIncident creates a new Incident.
const incidentsServiceResp = await incidentsService.createIncident({
	"attachCaption": "Grafana Incident: Powerful incident management, built on top of Grafana",
	"attachURL": "https://grafana.com/products/incident",
	"isDrill": false,
	"labels": [
		{
			"colorHex": "#ff0000",
			"description": "Customers are affected by this incident.",
			"label": "customers-affected"
		},
		{
			"colorHex": "#ff0000",
			"description": "Customers are affected by this incident.",
			"label": "customers-affected"
		}
	],
	"roomPrefix": "incident",
	"severity": "minor",
	"status": "active",
	"title": "High latency in web requests"
});

if (!incidentsServiceResp.success) {
  // handle the error
  throw new Error(incidentsServiceResp.error);
}

// access the fields of the response
console.info({"incident": incidentsServiceResp.data.incident});

CreateIncidentResponse

A 200 response with an empty error field indicates that the request was successful.

  • incident - Incident - Incident is the Incident that was created.
  • error - string - Error is string explaining what went wrong. Empty if everything was fine.
console.info("incident": incidentsServiceResp.data.incident);

GetIncident

GetIncident gets an existing Incident by ID.

GetIncidentRequest

  • incidentID - string - IncidentID is the identifier.

Choose language:  curl   Go   JS/TS   JSON 

import { GrafanaIncidentClient, IncidentsService } from 'incident-node';

// https://grafana.com/docs/grafana-cloud/incident/api/auth/#get-a-service-account-token
const serviceAccountToken = process.env.GRAFANA_CLOUD_SERVICE_ACCOUNT_TOKEN;
const client = new GrafanaIncidentClient(
  "https://your-stack.grafana.net", 
  serviceAccountToken
);
const incidentsService = new IncidentsService(client);

// GetIncident gets an existing Incident by ID.
const incidentsServiceResp = await incidentsService.getIncident({
	"incidentID": "incident-123"
});

if (!incidentsServiceResp.success) {
  // handle the error
  throw new Error(incidentsServiceResp.error);
}

// access the fields of the response
console.info({"incident": incidentsServiceResp.data.incident});

GetIncidentResponse

A 200 response with an empty error field indicates that the request was successful.

  • incident - Incident - Incident is the Incident.
  • error - string - Error is string explaining what went wrong. Empty if everything was fine.
console.info("incident": incidentsServiceResp.data.incident);

QueryIncidents

QueryIncidents gets a list of Incidents.

QueryIncidentsRequest

  • query - IncidentsQuery - Query describes the query to make.
  • cursor - Cursor - Cursor is used to page through results. Empty for the first page. For subsequent pages, use previously returned Cursor values.

Choose language:  curl   Go   JS/TS   JSON 

import { GrafanaIncidentClient, IncidentsService } from 'incident-node';

// https://grafana.com/docs/grafana-cloud/incident/api/auth/#get-a-service-account-token
const serviceAccountToken = process.env.GRAFANA_CLOUD_SERVICE_ACCOUNT_TOKEN;
const client = new GrafanaIncidentClient(
  "https://your-stack.grafana.net", 
  serviceAccountToken
);
const incidentsService = new IncidentsService(client);

// QueryIncidents gets a list of Incidents.
const incidentsServiceResp = await incidentsService.queryIncidents({
	"cursor": {
		"hasMore": true,
		"nextValue": "aaaabbbbccccddddeeeeffffgggg"
	},
	"query": {
		"dateFrom": "2021-01-01T02:07:14+00:00",
		"dateTo": "2021-01-01T02:07:14+00:00",
		"excludeStatuses": [
			"closed"
		],
		"incidentLabels": [
			"security",
			"customersaffected"
		],
		"includeStatuses": [
			"active"
		],
		"limit": 10,
		"onlyDrills": true,
		"orderDirection": "ASC",
		"queryString": "isdrill:false any(label:security label:important)",
		"severity": "major"
	}
});

if (!incidentsServiceResp.success) {
  // handle the error
  throw new Error(incidentsServiceResp.error);
}

// access the fields of the response
console.info({"incidents": incidentsServiceResp.data.incidents});
console.info({"query": incidentsServiceResp.data.query});
console.info({"cursor": incidentsServiceResp.data.cursor});

QueryIncidentsResponse

A 200 response with an empty error field indicates that the request was successful.

  • incidents - array of Incident - Incidents is a list of Incidents.
  • query - IncidentsQuery - Query is the query that was used to generate this response.
  • cursor - Cursor - Cursor should be passed back to get the next page of results.
  • error - string - Error is string explaining what went wrong. Empty if everything was fine.
console.info("incidents": incidentsServiceResp.data.incidents);
console.info("query": incidentsServiceResp.data.query);
console.info("cursor": incidentsServiceResp.data.cursor);

RemoveLabel

RemoveLabel removes a label from the Incident.

RemoveLabelRequest

  • incidentID - string - IncidentID is the identifier of the Incident.
  • label - string - Label is the label to remove from the Incident.

Choose language:  curl   Go   JS/TS   JSON 

import { GrafanaIncidentClient, IncidentsService } from 'incident-node';

// https://grafana.com/docs/grafana-cloud/incident/api/auth/#get-a-service-account-token
const serviceAccountToken = process.env.GRAFANA_CLOUD_SERVICE_ACCOUNT_TOKEN;
const client = new GrafanaIncidentClient(
  "https://your-stack.grafana.net", 
  serviceAccountToken
);
const incidentsService = new IncidentsService(client);

// RemoveLabel removes a label from the Incident.
const incidentsServiceResp = await incidentsService.removeLabel({
	"incidentID": "incident-123",
	"label": ""
});

if (!incidentsServiceResp.success) {
  // handle the error
  throw new Error(incidentsServiceResp.error);
}

// access the fields of the response
console.info({"incident": incidentsServiceResp.data.incident});

RemoveLabelResponse

A 200 response with an empty error field indicates that the request was successful.

  • incident - Incident - Incident is the Incident that was just modified.
  • error - string - Error is string explaining what went wrong. Empty if everything was fine.
console.info("incident": incidentsServiceResp.data.incident);

UnassignRole

UnassignRole removes a role assignment from a user.

UnassignRoleRequest

  • incidentID - string - IncidentID is the identifier.
  • userID - string - UserID is the identifier of the person to assign the role to.
  • role - string - options: "commander" "investigator" "observer" - Role is the role of this person.

Choose language:  curl   Go   JS/TS   JSON 

import { GrafanaIncidentClient, IncidentsService } from 'incident-node';

// https://grafana.com/docs/grafana-cloud/incident/api/auth/#get-a-service-account-token
const serviceAccountToken = process.env.GRAFANA_CLOUD_SERVICE_ACCOUNT_TOKEN;
const client = new GrafanaIncidentClient(
  "https://your-stack.grafana.net", 
  serviceAccountToken
);
const incidentsService = new IncidentsService(client);

// UnassignRole removes a role assignment from a user.
const incidentsServiceResp = await incidentsService.unassignRole({
	"incidentID": "incident-123",
	"role": "commander",
	"userID": "grafana-incident:user-123"
});

if (!incidentsServiceResp.success) {
  // handle the error
  throw new Error(incidentsServiceResp.error);
}

// access the fields of the response
console.info({"incident": incidentsServiceResp.data.incident});
console.info({"didChange": incidentsServiceResp.data.didChange});

UnassignRoleResponse

A 200 response with an empty error field indicates that the request was successful.

  • incident - Incident - Incident is the Incident that was just updated.
  • didChange - boolean - DidChange indicates if the role was changed or not. If the role was not assigned, this will be false.
  • error - string - Error is string explaining what went wrong. Empty if everything was fine.
console.info("incident": incidentsServiceResp.data.incident);
console.info("didChange": incidentsServiceResp.data.didChange);

UpdateIncidentEventTime

UpdateIncidentEventTime updates the start or end times of an Incident.

UpdateIncidentEventTimeRequest

  • incidentID - string - IncidentID is the identifier of the Incident.
  • eventTime - string - EventTime is the new time for the start or end of the incident. The string value format should follow RFC 3339.
  • activityItemKind - string - options: "incidentEnd" "incidentStart" - ActivityItemKind is either the start or end of the incident.

Choose language:  curl   Go   JS/TS   JSON 

import { GrafanaIncidentClient, IncidentsService } from 'incident-node';

// https://grafana.com/docs/grafana-cloud/incident/api/auth/#get-a-service-account-token
const serviceAccountToken = process.env.GRAFANA_CLOUD_SERVICE_ACCOUNT_TOKEN;
const client = new GrafanaIncidentClient(
  "https://your-stack.grafana.net", 
  serviceAccountToken
);
const incidentsService = new IncidentsService(client);

// UpdateIncidentEventTime updates the start or end times of an Incident.
const incidentsServiceResp = await incidentsService.updateIncidentEventTime({
	"activityItemKind": "incidentEnd",
	"eventTime": "2022-02-11 00:50:20.574137",
	"incidentID": "1"
});

if (!incidentsServiceResp.success) {
  // handle the error
  throw new Error(incidentsServiceResp.error);
}

// access the fields of the response

UpdateIncidentEventTimeResponse

A 200 response with an empty error field indicates that the request was successful.

  • error - string - Error is string explaining what went wrong. Empty if everything was fine.

UpdateIncidentIsDrill

UpdateIncidentIsDrill changes whether an Incident is a drill or not.

UpdateIncidentIsDrillRequest

  • incidentID - string - IncidentID is the identifier of the Incident.
  • isDrill - boolean - IsDrill indicates whether the Incident is a drill or not.

Choose language:  curl   Go   JS/TS   JSON 

import { GrafanaIncidentClient, IncidentsService } from 'incident-node';

// https://grafana.com/docs/grafana-cloud/incident/api/auth/#get-a-service-account-token
const serviceAccountToken = process.env.GRAFANA_CLOUD_SERVICE_ACCOUNT_TOKEN;
const client = new GrafanaIncidentClient(
  "https://your-stack.grafana.net", 
  serviceAccountToken
);
const incidentsService = new IncidentsService(client);

// UpdateIncidentIsDrill changes whether an Incident is a drill or not.
const incidentsServiceResp = await incidentsService.updateIncidentIsDrill({
	"incidentID": "incident-123",
	"isDrill": true
});

if (!incidentsServiceResp.success) {
  // handle the error
  throw new Error(incidentsServiceResp.error);
}

// access the fields of the response
console.info({"incident": incidentsServiceResp.data.incident});

UpdateIncidentIsDrillResponse

A 200 response with an empty error field indicates that the request was successful.

  • incident - Incident - Incident is the Incident that was just modified.
  • error - string - Error is string explaining what went wrong. Empty if everything was fine.
console.info("incident": incidentsServiceResp.data.incident);

UpdateSeverity

UpdateSeverity updates the severity of an Incident.

UpdateSeverityRequest

  • incidentID - string - IncidentID is the identifier of the Incident.
  • severity - string - options: "pending" "minor" "major" "critical" - Severity expresses how bad the Incident is.

Choose language:  curl   Go   JS/TS   JSON 

import { GrafanaIncidentClient, IncidentsService } from 'incident-node';

// https://grafana.com/docs/grafana-cloud/incident/api/auth/#get-a-service-account-token
const serviceAccountToken = process.env.GRAFANA_CLOUD_SERVICE_ACCOUNT_TOKEN;
const client = new GrafanaIncidentClient(
  "https://your-stack.grafana.net", 
  serviceAccountToken
);
const incidentsService = new IncidentsService(client);

// UpdateSeverity updates the severity of an Incident.
const incidentsServiceResp = await incidentsService.updateSeverity({
	"incidentID": "incident-123",
	"severity": "minor"
});

if (!incidentsServiceResp.success) {
  // handle the error
  throw new Error(incidentsServiceResp.error);
}

// access the fields of the response
console.info({"incident": incidentsServiceResp.data.incident});

UpdateSeverityResponse

A 200 response with an empty error field indicates that the request was successful.

  • incident - Incident - Incident is the Incident that was just modified.
  • error - string - Error is string explaining what went wrong. Empty if everything was fine.
console.info("incident": incidentsServiceResp.data.incident);

UpdateStatus

UpdateStatus updates the status of an Incident.

UpdateStatusRequest

  • incidentID - string - IncidentID is the identifier of the Incident.
  • status - string - options: "active" "resolved" - Status is the new status of the Incident.

Choose language:  curl   Go   JS/TS   JSON 

import { GrafanaIncidentClient, IncidentsService } from 'incident-node';

// https://grafana.com/docs/grafana-cloud/incident/api/auth/#get-a-service-account-token
const serviceAccountToken = process.env.GRAFANA_CLOUD_SERVICE_ACCOUNT_TOKEN;
const client = new GrafanaIncidentClient(
  "https://your-stack.grafana.net", 
  serviceAccountToken
);
const incidentsService = new IncidentsService(client);

// UpdateStatus updates the status of an Incident.
const incidentsServiceResp = await incidentsService.updateStatus({
	"incidentID": "incident-123",
	"status": "resolved"
});

if (!incidentsServiceResp.success) {
  // handle the error
  throw new Error(incidentsServiceResp.error);
}

// access the fields of the response
console.info({"incident": incidentsServiceResp.data.incident});

UpdateStatusResponse

A 200 response with an empty error field indicates that the request was successful.

  • incident - Incident - Incident is the Incident that was just modified.
  • error - string - Error is string explaining what went wrong. Empty if everything was fine.
console.info("incident": incidentsServiceResp.data.incident);

UpdateTitle

UpdateTitle updates the title of an Incident.

UpdateTitleRequest

  • incidentID - string - IncidentID is the identifier of the Incident.
  • title - string - Title is the new title of the Incident.

Choose language:  curl   Go   JS/TS   JSON 

import { GrafanaIncidentClient, IncidentsService } from 'incident-node';

// https://grafana.com/docs/grafana-cloud/incident/api/auth/#get-a-service-account-token
const serviceAccountToken = process.env.GRAFANA_CLOUD_SERVICE_ACCOUNT_TOKEN;
const client = new GrafanaIncidentClient(
  "https://your-stack.grafana.net", 
  serviceAccountToken
);
const incidentsService = new IncidentsService(client);

// UpdateTitle updates the title of an Incident.
const incidentsServiceResp = await incidentsService.updateTitle({
	"incidentID": "incident-123",
	"title": "High latency in web requests"
});

if (!incidentsServiceResp.success) {
  // handle the error
  throw new Error(incidentsServiceResp.error);
}

// access the fields of the response
console.info({"incident": incidentsServiceResp.data.incident});

UpdateTitleResponse

A 200 response with an empty error field indicates that the request was successful.

  • incident - Incident - Incident is the Incident that was just modified.
  • error - string - Error is string explaining what went wrong. Empty if everything was fine.
console.info("incident": incidentsServiceResp.data.incident);

TasksService

TasksService provides methods for managing tasks relating to Incidents.

  • AddTask - AddTask adds a task to an Incident.
  • DeleteTask - DeleteTask deletes a task.
  • UpdateTaskStatus - UpdateTaskStatus updates the task's Status.
  • UpdateTaskText - UpdateTaskText updates the task's text.
  • UpdateTaskUser - UpdateTaskUser updates the task's assigned user. Passing an empty user ID will clear the assigned user.

AddTask

AddTask adds a task to an Incident.

AddTaskRequest

  • incidentID - string - IncidentID is the ID of the Incident to add the Task to.
  • text - string - Text is the todo item.
  • assignToUserID - string - AssignToUserId is the user the task wil be assigned to

Choose language:  curl   Go   JS/TS   JSON 

import { GrafanaIncidentClient, TasksService } from 'incident-node';

// https://grafana.com/docs/grafana-cloud/incident/api/auth/#get-a-service-account-token
const serviceAccountToken = process.env.GRAFANA_CLOUD_SERVICE_ACCOUNT_TOKEN;
const client = new GrafanaIncidentClient(
  "https://your-stack.grafana.net", 
  serviceAccountToken
);
const tasksService = new TasksService(client);

// AddTask adds a task to an Incident.
const tasksServiceResp = await tasksService.addTask({
	"assignToUserID": "User123",
	"incidentID": "incident-123456",
	"text": "Assign an investigator"
});

if (!tasksServiceResp.success) {
  // handle the error
  throw new Error(tasksServiceResp.error);
}

// access the fields of the response
console.info({"incidentID": tasksServiceResp.data.incidentID});
console.info({"task": tasksServiceResp.data.task});
console.info({"taskList": tasksServiceResp.data.taskList});

AddTaskResponse

A 200 response with an empty error field indicates that the request was successful.

  • incidentID - string - IncidentID is the ID of the incident these tasks relate to.
  • task - Task - Task is the newly added Task. It will also appear in Tasks.
  • taskList - TaskList - TaskList is the tasks list.
  • error - string - Error is string explaining what went wrong. Empty if everything was fine.
console.info("incidentID": tasksServiceResp.data.incidentID);
console.info("task": tasksServiceResp.data.task);
console.info("taskList": tasksServiceResp.data.taskList);

DeleteTask

DeleteTask deletes a task.

DeleteTaskRequest

  • incidentID - string - IncidentID is the ID of the Incident.
  • taskID - string - TaskID is the ID of the task.

Choose language:  curl   Go   JS/TS   JSON 

import { GrafanaIncidentClient, TasksService } from 'incident-node';

// https://grafana.com/docs/grafana-cloud/incident/api/auth/#get-a-service-account-token
const serviceAccountToken = process.env.GRAFANA_CLOUD_SERVICE_ACCOUNT_TOKEN;
const client = new GrafanaIncidentClient(
  "https://your-stack.grafana.net", 
  serviceAccountToken
);
const tasksService = new TasksService(client);

// DeleteTask deletes a task.
const tasksServiceResp = await tasksService.deleteTask({
	"incidentID": "inccident-123456",
	"taskID": "task-123456"
});

if (!tasksServiceResp.success) {
  // handle the error
  throw new Error(tasksServiceResp.error);
}

// access the fields of the response
console.info({"incidentID": tasksServiceResp.data.incidentID});
console.info({"taskList": tasksServiceResp.data.taskList});

DeleteTaskResponse

A 200 response with an empty error field indicates that the request was successful.

  • incidentID - string - IncidentID is the ID of the incident these tasks relate to.
  • taskList - TaskList - TaskList is the tasks list.
  • error - string - Error is string explaining what went wrong. Empty if everything was fine.
console.info("incidentID": tasksServiceResp.data.incidentID);
console.info("taskList": tasksServiceResp.data.taskList);

UpdateTaskStatus

UpdateTaskStatus updates the task's Status.

UpdateTaskStatusRequest

  • incidentID - string - IncidentID is the ID of the Incident to add the Task to.
  • taskID - string - TaskID is the ID of the Task to update.
  • status - string - options: "todo" "progress" "done" - Status is the new status of this task.

Choose language:  curl   Go   JS/TS   JSON 

import { GrafanaIncidentClient, TasksService } from 'incident-node';

// https://grafana.com/docs/grafana-cloud/incident/api/auth/#get-a-service-account-token
const serviceAccountToken = process.env.GRAFANA_CLOUD_SERVICE_ACCOUNT_TOKEN;
const client = new GrafanaIncidentClient(
  "https://your-stack.grafana.net", 
  serviceAccountToken
);
const tasksService = new TasksService(client);

// UpdateTaskStatus updates the task's Status.
const tasksServiceResp = await tasksService.updateTaskStatus({
	"incidentID": "incident-123456",
	"status": "todo",
	"taskID": "task-12345"
});

if (!tasksServiceResp.success) {
  // handle the error
  throw new Error(tasksServiceResp.error);
}

// access the fields of the response
console.info({"incidentID": tasksServiceResp.data.incidentID});
console.info({"task": tasksServiceResp.data.task});
console.info({"taskList": tasksServiceResp.data.taskList});

UpdateTaskStatusResponse

A 200 response with an empty error field indicates that the request was successful.

  • incidentID - string - IncidentID is the ID of the incident these tasks relate to.
  • task - Task - Task is the newly added Task. It will also appear in Tasks.
  • taskList - TaskList - TaskList is the tasks list.
  • error - string - Error is string explaining what went wrong. Empty if everything was fine.
console.info("incidentID": tasksServiceResp.data.incidentID);
console.info("task": tasksServiceResp.data.task);
console.info("taskList": tasksServiceResp.data.taskList);

UpdateTaskText

UpdateTaskText updates the task's text.

UpdateTaskTextRequest

  • incidentID - string - IncidentID is the ID of the Incident to add the Task to.
  • taskID - string - TaskID is the ID of the task.
  • text - string - Text is the string that describes the Task.

Choose language:  curl   Go   JS/TS   JSON 

import { GrafanaIncidentClient, TasksService } from 'incident-node';

// https://grafana.com/docs/grafana-cloud/incident/api/auth/#get-a-service-account-token
const serviceAccountToken = process.env.GRAFANA_CLOUD_SERVICE_ACCOUNT_TOKEN;
const client = new GrafanaIncidentClient(
  "https://your-stack.grafana.net", 
  serviceAccountToken
);
const tasksService = new TasksService(client);

// UpdateTaskText updates the task's text.
const tasksServiceResp = await tasksService.updateTaskText({
	"incidentID": "incident-123456",
	"taskID": "task-123456",
	"text": "Check the logs"
});

if (!tasksServiceResp.success) {
  // handle the error
  throw new Error(tasksServiceResp.error);
}

// access the fields of the response
console.info({"incidentID": tasksServiceResp.data.incidentID});
console.info({"task": tasksServiceResp.data.task});
console.info({"taskList": tasksServiceResp.data.taskList});

UpdateTaskTextResponse

A 200 response with an empty error field indicates that the request was successful.

  • incidentID - string - IncidentID is the ID of the incident these tasks relate to.
  • task - Task - Task is the newly added Task. It will also appear in Tasks.
  • taskList - TaskList - TaskList is the tasks list.
  • error - string - Error is string explaining what went wrong. Empty if everything was fine.
console.info("incidentID": tasksServiceResp.data.incidentID);
console.info("task": tasksServiceResp.data.task);
console.info("taskList": tasksServiceResp.data.taskList);

UpdateTaskUser

UpdateTaskUser updates the task's assigned user. Passing an empty user ID will clear the assigned user.

UpdateTaskUserRequest

  • incidentID - string - IncidentID is the ID of the Incident to add the Task to.
  • taskID - string - TaskID is the ID of the Task to update.
  • userID - string - UserID is the ID of the User to assign to the Task.

Choose language:  curl   Go   JS/TS   JSON 

import { GrafanaIncidentClient, TasksService } from 'incident-node';

// https://grafana.com/docs/grafana-cloud/incident/api/auth/#get-a-service-account-token
const serviceAccountToken = process.env.GRAFANA_CLOUD_SERVICE_ACCOUNT_TOKEN;
const client = new GrafanaIncidentClient(
  "https://your-stack.grafana.net", 
  serviceAccountToken
);
const tasksService = new TasksService(client);

// UpdateTaskUser updates the task's assigned user.
Passing an empty user ID will clear the assigned user.
const tasksServiceResp = await tasksService.updateTaskUser({
	"incidentID": "incident-123456",
	"taskID": "task-12345",
	"userID": "user-id"
});

if (!tasksServiceResp.success) {
  // handle the error
  throw new Error(tasksServiceResp.error);
}

// access the fields of the response
console.info({"incidentID": tasksServiceResp.data.incidentID});
console.info({"task": tasksServiceResp.data.task});
console.info({"taskList": tasksServiceResp.data.taskList});

UpdateTaskUserResponse

A 200 response with an empty error field indicates that the request was successful.

  • incidentID - string - IncidentID is the ID of the incident these tasks relate to.
  • task - Task - Task is the newly added Task. It will also appear in Tasks.
  • taskList - TaskList - TaskList is the tasks list.
  • error - string - Error is string explaining what went wrong. Empty if everything was fine.
console.info("incidentID": tasksServiceResp.data.incidentID);
console.info("task": tasksServiceResp.data.task);
console.info("taskList": tasksServiceResp.data.taskList);

Objects

Various other structures (objects) are described throughtout the API reference, and a complete list of them is included here. They included the various Request and Response pairs for each method.

  • ActivityItem - ActivityItem describes an event that occurred related to an Incident.
  • ActivityQuery - ActivityQuery is the response from the QueryActivity method.
  • Cursor - Cursor describes the position in a result set. It is passed back into the same API to get the next page of results.
  • GetHomescreenVersionRequest - GetHomescreenVersionRequest is the request for the GetHomescreenVersion call.
  • GetHomescreenVersionResponse - GetHomescreenVersionResponse is the response for the GetHomescreenVersion call.
  • GetIncidentVersionRequest - GetIncidentVersionRequest is the request for the GetIncidentVersion call.
  • GetIncidentVersionResponse - GetIncidentVersionResponse is the response for the GetIncidentVersion call.
  • Incident - Incident is a single incident.
  • IncidentLabel - IncidentLabel is a label associated with an Incident.
  • IncidentRole - IncidentRole represents a person involved in an Incident.
  • IncidentsQuery - IncidentsQuery is the query for the QueryIncidentsRequest.
  • IncomingWebhookResponse - IncomingWebhookResponse is the response sent back to the webhook caller when an incoming webhook has been received.
  • OutgoingWebhookPayload - OutgoingWebhookPayload represents the webhook HTTP POST body and contains metadata for the webhook.
  • Task - Task is an individual task that somebody will do to resolve an Incident.
  • TaskList - TaskList is a list of tasks.
  • UserPreview - UserPreview is a user involved in an Incident.

ActivityItem

ActivityItem describes an event that occurred related to an Incident.

  • activityItemID - string - The unique identifier of the ActivityItem.
  • incidentID - string - IncidentID is the unique identifier of the Incident.
  • user - UserPreview - User is the person who caused the ActivityItem.
  • subjectUser - UserPreview - SubjectUser is the person who was affected by the ActivityItem (not the person who caused it).
  • createdTime - string - CreatedTime is the time when the ActivityItem was created. The string value format should follow RFC 3339.
  • eventTime - string - EventTime is the time when the event occurred. It is configurable by the user. The string value format should follow RFC 3339.
  • activityKind - string - options: "incidentUpdated" "incidentTitleChanged" "incidentStatusChanged" "incidentSeverityChanged" "incidentCreated" "incidentDeleted" "incidentClosed" "roleAssigned" "roleUnassigned" "actionRun" "userNote" "dataQuery" "hookRunMetadata" "taskAdded" "taskUpdated" "taskCompleted" "taskDeleted" "messageReaction" "contextAttached" "incidentIsDrillChanged" "incidentStart" "incidentEnd" "incidentSummary" "labelAdded" "labelRemoved" "siftResult" - ActivityKind is the type of activity this item represents.
  • body - string - Body is a human readable description of the ActivityItem.
  • url - string - URL is an url related with this activity
  • tags - array of string - options: "important" "starred" - Tags contains a list of tags associated with this activity.
  • immutable - boolean - Immutable indicates if the activity is immutable.
  • fieldValues - object - FieldValues is an object of field values associated with the ActivityItem. The structure is determined by the ActivityKind.
{
	"activityItemID": "activity-item-123",
	"activityKind": "incidentCreated",
	"body": "The incident was created by user-123",
	"createdTime": "2021-08-07T11:58:23Z",
	"eventTime": "2021-08-07T11:58:23Z",
	"fieldValues": {
		"something-else": true,
		"title": "new title"
	},
	"immutable": false,
	"incidentID": "incident-123",
	"subjectUser": {
		"name": "Morty Smith",
		"photoURL": "https://upload.wikimedia.org/wikipedia/en/c/c3/Morty_Smith.png",
		"userID": "user-123"
	},
	"tags": [
		"important"
	],
	"url": "https://meet.google.com/my-incident-room",
	"user": {
		"name": "Morty Smith",
		"photoURL": "https://upload.wikimedia.org/wikipedia/en/c/c3/Morty_Smith.png",
		"userID": "user-123"
	}
}

ActivityQuery

ActivityQuery is the response from the QueryActivity method.

  • incidentID - string - IncidentID is the unique identifier of the Incident.
  • limit - number - Limit is the number of Incidents to return.
  • tag - string - Tag is the tag to filter by.
  • orderDirection - string - options: "ASC" "DESC" - OrderDirection is the direction to order the results.
  • activityKind - array of string - ActivityKind filters by a list of allowed ActivityKind’s.
{
	"activityKind": [
		"incidentCreated"
	],
	"incidentID": "incident-123",
	"limit": 10,
	"orderDirection": "ASC",
	"tag": "important"
}

AddActivityRequest

AddActivityRequest is the request for the AddActivity operation.

  • incidentID - string - IncidentID is the unique identifier of the Incident.
  • activityKind - string - options: "userNote" - ActivityKind is the type of activity this item represents.
  • body - string - Body is a human readable description of the ActivityItem. URLs mentioned will be parsed and attached as context.
  • eventTime - string - EventTime is the time when the event occurred. If empty, the current time is used. The string value format should follow RFC 3339.
{
	"activityKind": "userNote",
	"body": "Some interesting insights from a third-party system",
	"eventTime": "2021-08-07T11:58:23Z",
	"incidentID": "incident-123"
}

AddActivityResponse

AddActivityResponse is the response from the AddActivity method.

  • activityItem - ActivityItem - ActivityItem is the newly created ActivityItem.
  • error - string - Error is string explaining what went wrong. Empty if everything was fine.
{
	"activityItem": {
		"activityItemID": "activity-item-123",
		"activityKind": "incidentCreated",
		"body": "The incident was created by user-123",
		"createdTime": "2021-08-07T11:58:23Z",
		"eventTime": "2021-08-07T11:58:23Z",
		"fieldValues": {
			"something-else": true,
			"title": "new title"
		},
		"immutable": false,
		"incidentID": "incident-123",
		"subjectUser": {
			"name": "Morty Smith",
			"photoURL": "https://upload.wikimedia.org/wikipedia/en/c/c3/Morty_Smith.png",
			"userID": "user-123"
		},
		"tags": [
			"important"
		],
		"url": "https://meet.google.com/my-incident-room",
		"user": {
			"name": "Morty Smith",
			"photoURL": "https://upload.wikimedia.org/wikipedia/en/c/c3/Morty_Smith.png",
			"userID": "user-123"
		}
	},
	"error": "something went wrong"
}

AddLabelRequest

AddLabelRequest is the request for the AddLabel call.

  • incidentID - string - IncidentID is the identifier of the Incident.
  • label - IncidentLabel - Label is the new label of the Incident.
{
	"incidentID": "incident-123",
	"label": {
		"colorHex": "#ff0000",
		"description": "Customers are affected by this incident.",
		"label": "customers-affected"
	}
}

AddLabelResponse

AddLabelResponse is the response for the AddLabel call.

  • incident - Incident - Incident is the Incident that was just modified.
  • error - string - Error is string explaining what went wrong. Empty if everything was fine.
{
	"error": "something went wrong",
	"incident": {
		"closedTime": "2021-08-07T11:58:23Z",
		"createdByUser": {
			"name": "Morty Smith",
			"photoURL": "https://upload.wikimedia.org/wikipedia/en/c/c3/Morty_Smith.png",
			"userID": "user-123"
		},
		"createdTime": "2021-08-07T11:58:23Z",
		"durationSeconds": 60,
		"heroImagePath": "/relative/path/to/hero/image.png",
		"incidentEnd": "2022-02-11 00:50:20.574137",
		"incidentID": "incident-123",
		"incidentStart": "2022-02-11 00:50:20.574137",
		"isDrill": false,
		"labels": [
			{
				"colorHex": "#ff0000",
				"description": "Customers are affected by this incident.",
				"label": "customers-affected"
			},
			{
				"colorHex": "#ff0000",
				"description": "Customers are affected by this incident.",
				"label": "customers-affected"
			}
		],
		"modifiedTime": "2021-08-07T11:58:23Z",
		"overviewURL": "/a/grafana-incident-app/incidents/incident-123/title",
		"roles": [
			{
				"description": "Investigator searches for the problem and reports back.",
				"important": true,
				"mandatory": true,
				"maxPeople": 1,
				"role": "investigator",
				"user": {
					"name": "Morty Smith",
					"photoURL": "https://upload.wikimedia.org/wikipedia/en/c/c3/Morty_Smith.png",
					"userID": "user-123"
				}
			},
			{
				"description": "Investigator searches for the problem and reports back.",
				"important": true,
				"mandatory": true,
				"maxPeople": 1,
				"role": "investigator",
				"user": {
					"name": "Morty Smith",
					"photoURL": "https://upload.wikimedia.org/wikipedia/en/c/c3/Morty_Smith.png",
					"userID": "user-123"
				}
			}
		],
		"severity": "minor",
		"status": "active",
		"summary": "Something happened, we found out something interesting, then we fixed it.",
		"taskList": {
			"doneCount": 8,
			"tasks": [
				{
					"assignedUser": {
						"name": "Morty Smith",
						"photoURL": "https://upload.wikimedia.org/wikipedia/en/c/c3/Morty_Smith.png",
						"userID": "user-123"
					},
					"authorUser": {
						"name": "Morty Smith",
						"photoURL": "https://upload.wikimedia.org/wikipedia/en/c/c3/Morty_Smith.png",
						"userID": "user-123"
					},
					"createdTime": "2018-01-01T00:00:00Z",
					"immutable": true,
					"modifiedTime": "2018-01-01T00:00:00Z",
					"status": "todo",
					"taskID": "task-123456",
					"text": "Assign an investigator"
				},
				{
					"assignedUser": {
						"name": "Morty Smith",
						"photoURL": "https://upload.wikimedia.org/wikipedia/en/c/c3/Morty_Smith.png",
						"userID": "user-123"
					},
					"authorUser": {
						"name": "Morty Smith",
						"photoURL": "https://upload.wikimedia.org/wikipedia/en/c/c3/Morty_Smith.png",
						"userID": "user-123"
					},
					"createdTime": "2018-01-01T00:00:00Z",
					"immutable": true,
					"modifiedTime": "2018-01-01T00:00:00Z",
					"status": "todo",
					"taskID": "task-123456",
					"text": "Assign an investigator"
				}
			],
			"todoCount": 5
		},
		"title": "high latency in web requests"
	}
}

AddTaskRequest

  • incidentID - string - IncidentID is the ID of the Incident to add the Task to.
  • text - string - Text is the todo item.
  • assignToUserID - string - AssignToUserId is the user the task wil be assigned to
{
	"assignToUserID": "User123",
	"incidentID": "incident-123456",
	"text": "Assign an investigator"
}

AddTaskResponse

  • incidentID - string - IncidentID is the ID of the incident these tasks relate to.
  • task - Task - Task is the newly added Task. It will also appear in Tasks.
  • taskList - TaskList - TaskList is the tasks list.
  • error - string - Error is string explaining what went wrong. Empty if everything was fine.
{
	"error": "something went wrong",
	"incidentID": "incident-123456",
	"task": {
		"assignedUser": {
			"name": "Morty Smith",
			"photoURL": "https://upload.wikimedia.org/wikipedia/en/c/c3/Morty_Smith.png",
			"userID": "user-123"
		},
		"authorUser": {
			"name": "Morty Smith",
			"photoURL": "https://upload.wikimedia.org/wikipedia/en/c/c3/Morty_Smith.png",
			"userID": "user-123"
		},
		"createdTime": "2018-01-01T00:00:00Z",
		"immutable": true,
		"modifiedTime": "2018-01-01T00:00:00Z",
		"status": "todo",
		"taskID": "task-123456",
		"text": "Assign an investigator"
	},
	"taskList": {
		"doneCount": 8,
		"tasks": [
			{
				"assignedUser": {
					"name": "Morty Smith",
					"photoURL": "https://upload.wikimedia.org/wikipedia/en/c/c3/Morty_Smith.png",
					"userID": "user-123"
				},
				"authorUser": {
					"name": "Morty Smith",
					"photoURL": "https://upload.wikimedia.org/wikipedia/en/c/c3/Morty_Smith.png",
					"userID": "user-123"
				},
				"createdTime": "2018-01-01T00:00:00Z",
				"immutable": true,
				"modifiedTime": "2018-01-01T00:00:00Z",
				"status": "todo",
				"taskID": "task-123456",
				"text": "Assign an investigator"
			},
			{
				"assignedUser": {
					"name": "Morty Smith",
					"photoURL": "https://upload.wikimedia.org/wikipedia/en/c/c3/Morty_Smith.png",
					"userID": "user-123"
				},
				"authorUser": {
					"name": "Morty Smith",
					"photoURL": "https://upload.wikimedia.org/wikipedia/en/c/c3/Morty_Smith.png",
					"userID": "user-123"
				},
				"createdTime": "2018-01-01T00:00:00Z",
				"immutable": true,
				"modifiedTime": "2018-01-01T00:00:00Z",
				"status": "todo",
				"taskID": "task-123456",
				"text": "Assign an investigator"
			}
		],
		"todoCount": 5
	}
}

AssignRoleRequest

AssignRoleRequest is the request for the AssignRole call.

  • incidentID - string - IncidentID is the identifier.
  • userID - string - UserID is the identifier of the person to assign the role to.
  • role - string - options: "commander" "investigator" "observer" - Role is the role of this person.
{
	"incidentID": "incident-123",
	"role": "commander",
	"userID": "grafana-incident:user-123"
}

AssignRoleResponse

AssignRoleResponse is the response for the AssignRole call.

  • incident - Incident - Incident is the Incident that was just updated.
  • didChange - boolean - DidChange indicates if the role was changed or not. If the role was already assigned, this will be false.
  • error - string - Error is string explaining what went wrong. Empty if everything was fine.
{
	"didChange": true,
	"error": "something went wrong",
	"incident": {
		"closedTime": "2021-08-07T11:58:23Z",
		"createdByUser": {
			"name": "Morty Smith",
			"photoURL": "https://upload.wikimedia.org/wikipedia/en/c/c3/Morty_Smith.png",
			"userID": "user-123"
		},
		"createdTime": "2021-08-07T11:58:23Z",
		"durationSeconds": 60,
		"heroImagePath": "/relative/path/to/hero/image.png",
		"incidentEnd": "2022-02-11 00:50:20.574137",
		"incidentID": "incident-123",
		"incidentStart": "2022-02-11 00:50:20.574137",
		"isDrill": false,
		"labels": [
			{
				"colorHex": "#ff0000",
				"description": "Customers are affected by this incident.",
				"label": "customers-affected"
			},
			{
				"colorHex": "#ff0000",
				"description": "Customers are affected by this incident.",
				"label": "customers-affected"
			}
		],
		"modifiedTime": "2021-08-07T11:58:23Z",
		"overviewURL": "/a/grafana-incident-app/incidents/incident-123/title",
		"roles": [
			{
				"description": "Investigator searches for the problem and reports back.",
				"important": true,
				"mandatory": true,
				"maxPeople": 1,
				"role": "investigator",
				"user": {
					"name": "Morty Smith",
					"photoURL": "https://upload.wikimedia.org/wikipedia/en/c/c3/Morty_Smith.png",
					"userID": "user-123"
				}
			},
			{
				"description": "Investigator searches for the problem and reports back.",
				"important": true,
				"mandatory": true,
				"maxPeople": 1,
				"role": "investigator",
				"user": {
					"name": "Morty Smith",
					"photoURL": "https://upload.wikimedia.org/wikipedia/en/c/c3/Morty_Smith.png",
					"userID": "user-123"
				}
			}
		],
		"severity": "minor",
		"status": "active",
		"summary": "Something happened, we found out something interesting, then we fixed it.",
		"taskList": {
			"doneCount": 8,
			"tasks": [
				{
					"assignedUser": {
						"name": "Morty Smith",
						"photoURL": "https://upload.wikimedia.org/wikipedia/en/c/c3/Morty_Smith.png",
						"userID": "user-123"
					},
					"authorUser": {
						"name": "Morty Smith",
						"photoURL": "https://upload.wikimedia.org/wikipedia/en/c/c3/Morty_Smith.png",
						"userID": "user-123"
					},
					"createdTime": "2018-01-01T00:00:00Z",
					"immutable": true,
					"modifiedTime": "2018-01-01T00:00:00Z",
					"status": "todo",
					"taskID": "task-123456",
					"text": "Assign an investigator"
				},
				{
					"assignedUser": {
						"name": "Morty Smith",
						"photoURL": "https://upload.wikimedia.org/wikipedia/en/c/c3/Morty_Smith.png",
						"userID": "user-123"
					},
					"authorUser": {
						"name": "Morty Smith",
						"photoURL": "https://upload.wikimedia.org/wikipedia/en/c/c3/Morty_Smith.png",
						"userID": "user-123"
					},
					"createdTime": "2018-01-01T00:00:00Z",
					"immutable": true,
					"modifiedTime": "2018-01-01T00:00:00Z",
					"status": "todo",
					"taskID": "task-123456",
					"text": "Assign an investigator"
				}
			],
			"todoCount": 5
		},
		"title": "high latency in web requests"
	}
}

CreateIncidentRequest

CreateIncidentRequest is the request for the CreateIncident call.

  • title - string - Title is the headline title of the Incident. Shorter the better, but should contain enough information to be able to identify and refer to this issue.
  • severity - string - options: "pending" "minor" "major" "critical" - Severity expresses how bad the Incident is.
  • labels - array of IncidentLabel - Labels are the labels associated with the Incident. Only the Label string is processed, the other fields are ignored.
  • roomPrefix - string - RoomPrefix is the prefix that will be used to create the Incident room.
  • isDrill - boolean - IsDrill indicates if the Incident is a drill or not. Incidents that are drills do not show up in the dashboards, and may behave subtly differently in other ways too. For example, during drills, more help might be offered to users.
  • status - string - options: "active" "resolved" - Status is the starting status of the Incident. Use “resolved” to open a retrospective incident.
  • attachCaption - string - AttachCaption is the title of associated URL.
  • attachURL - string - AttachURLis the associated URL.
{
	"attachCaption": "Grafana Incident: Powerful incident management, built on top of Grafana",
	"attachURL": "https://grafana.com/products/incident",
	"isDrill": false,
	"labels": [
		{
			"colorHex": "#ff0000",
			"description": "Customers are affected by this incident.",
			"label": "customers-affected"
		},
		{
			"colorHex": "#ff0000",
			"description": "Customers are affected by this incident.",
			"label": "customers-affected"
		}
	],
	"roomPrefix": "incident",
	"severity": "minor",
	"status": "active",
	"title": "High latency in web requests"
}

CreateIncidentResponse

CreateIncidentResponse is the response for the CreateIncident call.

  • incident - Incident - Incident is the Incident that was created.
  • error - string - Error is string explaining what went wrong. Empty if everything was fine.
{
	"error": "something went wrong",
	"incident": {
		"closedTime": "2021-08-07T11:58:23Z",
		"createdByUser": {
			"name": "Morty Smith",
			"photoURL": "https://upload.wikimedia.org/wikipedia/en/c/c3/Morty_Smith.png",
			"userID": "user-123"
		},
		"createdTime": "2021-08-07T11:58:23Z",
		"durationSeconds": 60,
		"heroImagePath": "/relative/path/to/hero/image.png",
		"incidentEnd": "2022-02-11 00:50:20.574137",
		"incidentID": "incident-123",
		"incidentStart": "2022-02-11 00:50:20.574137",
		"isDrill": false,
		"labels": [
			{
				"colorHex": "#ff0000",
				"description": "Customers are affected by this incident.",
				"label": "customers-affected"
			},
			{
				"colorHex": "#ff0000",
				"description": "Customers are affected by this incident.",
				"label": "customers-affected"
			}
		],
		"modifiedTime": "2021-08-07T11:58:23Z",
		"overviewURL": "/a/grafana-incident-app/incidents/incident-123/title",
		"roles": [
			{
				"description": "Investigator searches for the problem and reports back.",
				"important": true,
				"mandatory": true,
				"maxPeople": 1,
				"role": "investigator",
				"user": {
					"name": "Morty Smith",
					"photoURL": "https://upload.wikimedia.org/wikipedia/en/c/c3/Morty_Smith.png",
					"userID": "user-123"
				}
			},
			{
				"description": "Investigator searches for the problem and reports back.",
				"important": true,
				"mandatory": true,
				"maxPeople": 1,
				"role": "investigator",
				"user": {
					"name": "Morty Smith",
					"photoURL": "https://upload.wikimedia.org/wikipedia/en/c/c3/Morty_Smith.png",
					"userID": "user-123"
				}
			}
		],
		"severity": "minor",
		"status": "active",
		"summary": "Something happened, we found out something interesting, then we fixed it.",
		"taskList": {
			"doneCount": 8,
			"tasks": [
				{
					"assignedUser": {
						"name": "Morty Smith",
						"photoURL": "https://upload.wikimedia.org/wikipedia/en/c/c3/Morty_Smith.png",
						"userID": "user-123"
					},
					"authorUser": {
						"name": "Morty Smith",
						"photoURL": "https://upload.wikimedia.org/wikipedia/en/c/c3/Morty_Smith.png",
						"userID": "user-123"
					},
					"createdTime": "2018-01-01T00:00:00Z",
					"immutable": true,
					"modifiedTime": "2018-01-01T00:00:00Z",
					"status": "todo",
					"taskID": "task-123456",
					"text": "Assign an investigator"
				},
				{
					"assignedUser": {
						"name": "Morty Smith",
						"photoURL": "https://upload.wikimedia.org/wikipedia/en/c/c3/Morty_Smith.png",
						"userID": "user-123"
					},
					"authorUser": {
						"name": "Morty Smith",
						"photoURL": "https://upload.wikimedia.org/wikipedia/en/c/c3/Morty_Smith.png",
						"userID": "user-123"
					},
					"createdTime": "2018-01-01T00:00:00Z",
					"immutable": true,
					"modifiedTime": "2018-01-01T00:00:00Z",
					"status": "todo",
					"taskID": "task-123456",
					"text": "Assign an investigator"
				}
			],
			"todoCount": 5
		},
		"title": "high latency in web requests"
	}
}

Cursor

Cursor describes the position in a result set. It is passed back into the same API to get the next page of results.

  • nextValue - string - NextValue is the start position of the next set of results. The implementation may change, so clients should not rely on this value.
  • hasMore - boolean - HasMore indicates whether there are more results or not. If HasMore is true, you can make the same request again (except using this Cursor instead) to get the next page of results.
{
	"hasMore": true,
	"nextValue": "aaaabbbbccccddddeeeeffffgggg"
}

DeleteTaskRequest

  • incidentID - string - IncidentID is the ID of the Incident.
  • taskID - string - TaskID is the ID of the task.
{
	"incidentID": "inccident-123456",
	"taskID": "task-123456"
}

DeleteTaskResponse

  • incidentID - string - IncidentID is the ID of the incident these tasks relate to.
  • taskList - TaskList - TaskList is the tasks list.
  • error - string - Error is string explaining what went wrong. Empty if everything was fine.
{
	"error": "something went wrong",
	"incidentID": "incident-123456",
	"taskList": {
		"doneCount": 8,
		"tasks": [
			{
				"assignedUser": {
					"name": "Morty Smith",
					"photoURL": "https://upload.wikimedia.org/wikipedia/en/c/c3/Morty_Smith.png",
					"userID": "user-123"
				},
				"authorUser": {
					"name": "Morty Smith",
					"photoURL": "https://upload.wikimedia.org/wikipedia/en/c/c3/Morty_Smith.png",
					"userID": "user-123"
				},
				"createdTime": "2018-01-01T00:00:00Z",
				"immutable": true,
				"modifiedTime": "2018-01-01T00:00:00Z",
				"status": "todo",
				"taskID": "task-123456",
				"text": "Assign an investigator"
			},
			{
				"assignedUser": {
					"name": "Morty Smith",
					"photoURL": "https://upload.wikimedia.org/wikipedia/en/c/c3/Morty_Smith.png",
					"userID": "user-123"
				},
				"authorUser": {
					"name": "Morty Smith",
					"photoURL": "https://upload.wikimedia.org/wikipedia/en/c/c3/Morty_Smith.png",
					"userID": "user-123"
				},
				"createdTime": "2018-01-01T00:00:00Z",
				"immutable": true,
				"modifiedTime": "2018-01-01T00:00:00Z",
				"status": "todo",
				"taskID": "task-123456",
				"text": "Assign an investigator"
			}
		],
		"todoCount": 5
	}
}

GetHomescreenVersionRequest

GetHomescreenVersionRequest is the request for the GetHomescreenVersion call.

  • No fields
{}

GetHomescreenVersionResponse

GetHomescreenVersionResponse is the response for the GetHomescreenVersion call.

  • version - number - Version is the refresh value of the home screen. A higher value than last time indicates that the home screen should be refreshed.
{
	"version": 123456
}

GetIncidentRequest

GetIncidentRequest is the request for the GetIncident call.

  • incidentID - string - IncidentID is the identifier.
{
	"incidentID": "incident-123"
}

GetIncidentResponse

GetIncidentResponse is the response for the GetIncident call.

  • incident - Incident - Incident is the Incident.
  • error - string - Error is string explaining what went wrong. Empty if everything was fine.
{
	"error": "something went wrong",
	"incident": {
		"closedTime": "2021-08-07T11:58:23Z",
		"createdByUser": {
			"name": "Morty Smith",
			"photoURL": "https://upload.wikimedia.org/wikipedia/en/c/c3/Morty_Smith.png",
			"userID": "user-123"
		},
		"createdTime": "2021-08-07T11:58:23Z",
		"durationSeconds": 60,
		"heroImagePath": "/relative/path/to/hero/image.png",
		"incidentEnd": "2022-02-11 00:50:20.574137",
		"incidentID": "incident-123",
		"incidentStart": "2022-02-11 00:50:20.574137",
		"isDrill": false,
		"labels": [
			{
				"colorHex": "#ff0000",
				"description": "Customers are affected by this incident.",
				"label": "customers-affected"
			},
			{
				"colorHex": "#ff0000",
				"description": "Customers are affected by this incident.",
				"label": "customers-affected"
			}
		],
		"modifiedTime": "2021-08-07T11:58:23Z",
		"overviewURL": "/a/grafana-incident-app/incidents/incident-123/title",
		"roles": [
			{
				"description": "Investigator searches for the problem and reports back.",
				"important": true,
				"mandatory": true,
				"maxPeople": 1,
				"role": "investigator",
				"user": {
					"name": "Morty Smith",
					"photoURL": "https://upload.wikimedia.org/wikipedia/en/c/c3/Morty_Smith.png",
					"userID": "user-123"
				}
			},
			{
				"description": "Investigator searches for the problem and reports back.",
				"important": true,
				"mandatory": true,
				"maxPeople": 1,
				"role": "investigator",
				"user": {
					"name": "Morty Smith",
					"photoURL": "https://upload.wikimedia.org/wikipedia/en/c/c3/Morty_Smith.png",
					"userID": "user-123"
				}
			}
		],
		"severity": "minor",
		"status": "active",
		"summary": "Something happened, we found out something interesting, then we fixed it.",
		"taskList": {
			"doneCount": 8,
			"tasks": [
				{
					"assignedUser": {
						"name": "Morty Smith",
						"photoURL": "https://upload.wikimedia.org/wikipedia/en/c/c3/Morty_Smith.png",
						"userID": "user-123"
					},
					"authorUser": {
						"name": "Morty Smith",
						"photoURL": "https://upload.wikimedia.org/wikipedia/en/c/c3/Morty_Smith.png",
						"userID": "user-123"
					},
					"createdTime": "2018-01-01T00:00:00Z",
					"immutable": true,
					"modifiedTime": "2018-01-01T00:00:00Z",
					"status": "todo",
					"taskID": "task-123456",
					"text": "Assign an investigator"
				},
				{
					"assignedUser": {
						"name": "Morty Smith",
						"photoURL": "https://upload.wikimedia.org/wikipedia/en/c/c3/Morty_Smith.png",
						"userID": "user-123"
					},
					"authorUser": {
						"name": "Morty Smith",
						"photoURL": "https://upload.wikimedia.org/wikipedia/en/c/c3/Morty_Smith.png",
						"userID": "user-123"
					},
					"createdTime": "2018-01-01T00:00:00Z",
					"immutable": true,
					"modifiedTime": "2018-01-01T00:00:00Z",
					"status": "todo",
					"taskID": "task-123456",
					"text": "Assign an investigator"
				}
			],
			"todoCount": 5
		},
		"title": "high latency in web requests"
	}
}

GetIncidentVersionRequest

GetIncidentVersionRequest is the request for the GetIncidentVersion call.

  • incidentID - string - IncidentID is the identifier of the Incident. A higher value than last time indicates that the dashboard should be refreshed.
{
	"incidentID": "incident-123"
}

GetIncidentVersionResponse

GetIncidentVersionResponse is the response for the GetIncidentVersion call.

  • version - number - Version is the refresh value of the Incident.
{
	"version": 123456
}

Incident

Incident is a single incident.

  • incidentID - string - IncidentID is the identifier.
  • severity - string - options: "pending" "minor" "major" "critical" - Severity expresses how bad the Incident is.
  • labels - array of IncidentLabel - Labels is a list of strings associated with this Incident.
  • isDrill - boolean - IsDrill indicates if the Incident is a drill or not. Incidents that are drills do not show up in the dashboards, and may behave subtly differently in other ways too. For example, during drills, more help might be offered to users.
  • createdTime - string - CreatedTime is when the Incident was created. The string value format should follow RFC 3339.
  • modifiedTime - string - ModifiedTime is when the Incident was last modified. The string value format should follow RFC 3339.
  • createdByUser - UserPreview - CreatedByUser is the UserPreview that created the Incident.
  • closedTime - string - ClosedTime is when the Incident was closed. The string value format should follow RFC 3339.
  • durationSeconds - number - DurationSeconds is the number of seconds this Incident was (or is) open for.
  • status - string - options: "active" "resolved" - Status is the current status of the Incident.
  • title - string - Title is the high level description of the Incident.
  • overviewURL - string - OverviewURL is the URL to the overview page for the Incident.
  • roles - array of IncidentRole - Roles describes the individuals involved in the Incident.
  • taskList - TaskList - TaskList is the list of tasks associated with the Incident.
  • summary - string - Summary is as short recap of the Incident.
  • heroImagePath - string - HeroImagePath is the path to the hero image for this Incident.
  • incidentStart - string - IncidentStart is when the Incident began. The string value format should follow RFC 3339.
  • incidentEnd - string - IncidentEnd is when the Incident ended. The string value format should follow RFC 3339.
{
	"closedTime": "2021-08-07T11:58:23Z",
	"createdByUser": {
		"name": "Morty Smith",
		"photoURL": "https://upload.wikimedia.org/wikipedia/en/c/c3/Morty_Smith.png",
		"userID": "user-123"
	},
	"createdTime": "2021-08-07T11:58:23Z",
	"durationSeconds": 60,
	"heroImagePath": "/relative/path/to/hero/image.png",
	"incidentEnd": "2022-02-11 00:50:20.574137",
	"incidentID": "incident-123",
	"incidentStart": "2022-02-11 00:50:20.574137",
	"isDrill": false,
	"labels": [
		{
			"colorHex": "#ff0000",
			"description": "Customers are affected by this incident.",
			"label": "customers-affected"
		},
		{
			"colorHex": "#ff0000",
			"description": "Customers are affected by this incident.",
			"label": "customers-affected"
		}
	],
	"modifiedTime": "2021-08-07T11:58:23Z",
	"overviewURL": "/a/grafana-incident-app/incidents/incident-123/title",
	"roles": [
		{
			"description": "Investigator searches for the problem and reports back.",
			"important": true,
			"mandatory": true,
			"maxPeople": 1,
			"role": "investigator",
			"user": {
				"name": "Morty Smith",
				"photoURL": "https://upload.wikimedia.org/wikipedia/en/c/c3/Morty_Smith.png",
				"userID": "user-123"
			}
		},
		{
			"description": "Investigator searches for the problem and reports back.",
			"important": true,
			"mandatory": true,
			"maxPeople": 1,
			"role": "investigator",
			"user": {
				"name": "Morty Smith",
				"photoURL": "https://upload.wikimedia.org/wikipedia/en/c/c3/Morty_Smith.png",
				"userID": "user-123"
			}
		}
	],
	"severity": "minor",
	"status": "active",
	"summary": "Something happened, we found out something interesting, then we fixed it.",
	"taskList": {
		"doneCount": 8,
		"tasks": [
			{
				"assignedUser": {
					"name": "Morty Smith",
					"photoURL": "https://upload.wikimedia.org/wikipedia/en/c/c3/Morty_Smith.png",
					"userID": "user-123"
				},
				"authorUser": {
					"name": "Morty Smith",
					"photoURL": "https://upload.wikimedia.org/wikipedia/en/c/c3/Morty_Smith.png",
					"userID": "user-123"
				},
				"createdTime": "2018-01-01T00:00:00Z",
				"immutable": true,
				"modifiedTime": "2018-01-01T00:00:00Z",
				"status": "todo",
				"taskID": "task-123456",
				"text": "Assign an investigator"
			},
			{
				"assignedUser": {
					"name": "Morty Smith",
					"photoURL": "https://upload.wikimedia.org/wikipedia/en/c/c3/Morty_Smith.png",
					"userID": "user-123"
				},
				"authorUser": {
					"name": "Morty Smith",
					"photoURL": "https://upload.wikimedia.org/wikipedia/en/c/c3/Morty_Smith.png",
					"userID": "user-123"
				},
				"createdTime": "2018-01-01T00:00:00Z",
				"immutable": true,
				"modifiedTime": "2018-01-01T00:00:00Z",
				"status": "todo",
				"taskID": "task-123456",
				"text": "Assign an investigator"
			}
		],
		"todoCount": 5
	},
	"title": "high latency in web requests"
}

IncidentLabel

IncidentLabel is a label associated with an Incident.

  • label - string - Label is the text of the label.
  • description - string - Description is a short explanation of the label.
  • colorHex - string - Color is the CSS hex color of the label. Labels show up in both light and dark modes, and this should be taken into consideration when selecting a color.
{
	"colorHex": "#ff0000",
	"description": "Customers are affected by this incident.",
	"label": "customers-affected"
}

IncidentRole

IncidentRole represents a person involved in an Incident.

  • role - string - options: "commander" "investigator" "observer" - Role is the unique name that describes the activity of the person.
  • description - string - Description is a short explanation of the role.
  • maxPeople - number - MaxPeople is the maximum number of people that can be assigned to this role. If zero, then there is no limit. Usually it’s 0 or 1.
  • mandatory - boolean - Mandatory indicates if a Role is mandatory or not. Users will be bugged to fill Mandatory roles.
  • important - boolean - ImportantRole indicates if a role is important or not. Users in an important role cannot be assigned to a non-important one.
  • user - UserPreview - User is the person who holds this role.
{
	"description": "Investigator searches for the problem and reports back.",
	"important": true,
	"mandatory": true,
	"maxPeople": 1,
	"role": "investigator",
	"user": {
		"name": "Morty Smith",
		"photoURL": "https://upload.wikimedia.org/wikipedia/en/c/c3/Morty_Smith.png",
		"userID": "user-123"
	}
}

IncidentsQuery

IncidentsQuery is the query for the QueryIncidentsRequest.

  • limit - number - Limit is the number of Incidents to return.
  • includeStatuses - array of string - options: "active" "resolved" - IncludeStatuses is a list of statuses to include. Only Incidents with the listed statuses will be returned.
  • excludeStatuses - array of string - options: "active" "resolved" - ExcludeStatuses is a list of statuses to exclude. All Incidents that do not match any of these values will be returned.
  • incidentLabels - array of string - IncidentLabels is a list of labels to include. An empty list will not filter by labels.
  • dateFrom - string - DateFrom if is not empty would filter by the Incidents created since that date (time.RFC3339)
  • dateTo - string - DateTo if is not empty would filter by incidents created before that date (time.RFC3339)
  • onlyDrills - boolean - OnlyDrills if is not empty filters by whether an incident is a drill or not.
  • orderDirection - string - options: "ASC" "DESC" - OrderDirection is the direction to order the results.
  • severity - string - Severity is a list of statuses to include. Only Incidents with the listed statuses will be returned.
  • queryString - string - QueryString is the query string to search for. If provided, the query will be filtered by the query string and the other query parameters will be ignored.
{
	"dateFrom": "2021-01-01T02:07:14+00:00",
	"dateTo": "2021-01-01T02:07:14+00:00",
	"excludeStatuses": [
		"closed"
	],
	"incidentLabels": [
		"security",
		"customersaffected"
	],
	"includeStatuses": [
		"active"
	],
	"limit": 10,
	"onlyDrills": true,
	"orderDirection": "ASC",
	"queryString": "isdrill:false any(label:security label:important)",
	"severity": "major"
}

IncomingWebhookResponse

IncomingWebhookResponse is the response sent back to the webhook caller when an incoming webhook has been received.

  • incident - *Incident - Incident is the newly declared incident. Only included if the incoming webhook has the include=incident URL parameter.
  • processingErrors - array of string - ProcessingErrors is a list of errors that occurred while processing the webhook. If there are items in this list it does not mean the incident wasn’t created. But you should check to make sure everything was successfully processed before shipping to production.
{
	"incident": {
		"closedTime": "2021-08-07T11:58:23Z",
		"createdByUser": {
			"name": "Morty Smith",
			"photoURL": "https://upload.wikimedia.org/wikipedia/en/c/c3/Morty_Smith.png",
			"userID": "user-123"
		},
		"createdTime": "2021-08-07T11:58:23Z",
		"durationSeconds": 60,
		"heroImagePath": "/relative/path/to/hero/image.png",
		"incidentEnd": "2022-02-11 00:50:20.574137",
		"incidentID": "incident-123",
		"incidentStart": "2022-02-11 00:50:20.574137",
		"isDrill": false,
		"labels": [
			{
				"colorHex": "#ff0000",
				"description": "Customers are affected by this incident.",
				"label": "customers-affected"
			},
			{
				"colorHex": "#ff0000",
				"description": "Customers are affected by this incident.",
				"label": "customers-affected"
			}
		],
		"modifiedTime": "2021-08-07T11:58:23Z",
		"overviewURL": "/a/grafana-incident-app/incidents/incident-123/title",
		"roles": [
			{
				"description": "Investigator searches for the problem and reports back.",
				"important": true,
				"mandatory": true,
				"maxPeople": 1,
				"role": "investigator",
				"user": {
					"name": "Morty Smith",
					"photoURL": "https://upload.wikimedia.org/wikipedia/en/c/c3/Morty_Smith.png",
					"userID": "user-123"
				}
			},
			{
				"description": "Investigator searches for the problem and reports back.",
				"important": true,
				"mandatory": true,
				"maxPeople": 1,
				"role": "investigator",
				"user": {
					"name": "Morty Smith",
					"photoURL": "https://upload.wikimedia.org/wikipedia/en/c/c3/Morty_Smith.png",
					"userID": "user-123"
				}
			}
		],
		"severity": "minor",
		"status": "active",
		"summary": "Something happened, we found out something interesting, then we fixed it.",
		"taskList": {
			"doneCount": 8,
			"tasks": [
				{
					"assignedUser": {
						"name": "Morty Smith",
						"photoURL": "https://upload.wikimedia.org/wikipedia/en/c/c3/Morty_Smith.png",
						"userID": "user-123"
					},
					"authorUser": {
						"name": "Morty Smith",
						"photoURL": "https://upload.wikimedia.org/wikipedia/en/c/c3/Morty_Smith.png",
						"userID": "user-123"
					},
					"createdTime": "2018-01-01T00:00:00Z",
					"immutable": true,
					"modifiedTime": "2018-01-01T00:00:00Z",
					"status": "todo",
					"taskID": "task-123456",
					"text": "Assign an investigator"
				},
				{
					"assignedUser": {
						"name": "Morty Smith",
						"photoURL": "https://upload.wikimedia.org/wikipedia/en/c/c3/Morty_Smith.png",
						"userID": "user-123"
					},
					"authorUser": {
						"name": "Morty Smith",
						"photoURL": "https://upload.wikimedia.org/wikipedia/en/c/c3/Morty_Smith.png",
						"userID": "user-123"
					},
					"createdTime": "2018-01-01T00:00:00Z",
					"immutable": true,
					"modifiedTime": "2018-01-01T00:00:00Z",
					"status": "todo",
					"taskID": "task-123456",
					"text": "Assign an investigator"
				}
			],
			"todoCount": 5
		},
		"title": "high latency in web requests"
	},
	"processingErrors": [
		"failed to find json() field: customTitle"
	]
}

OutgoingWebhookPayload

OutgoingWebhookPayload represents the webhook HTTP POST body and contains metadata for the webhook.

  • version - string - Version of this structure, following semantic versioning.
  • id - string - ID of event.
  • source - string - Source is a URI that identifies the context in which an event happened.
  • time - string - Time that event was generated (RFC 3339).
  • event - string - Event describes the (namespaced) event
  • incident - *Incident - Incident is the data payload, contains details about the data that was changed.
{
	"event": "grafana.incident.updated.severity",
	"id": "webhook-out-63e63ed5b13da2c1",
	"incident": {
		"closedTime": "2021-08-07T11:58:23Z",
		"createdByUser": {
			"name": "Morty Smith",
			"photoURL": "https://upload.wikimedia.org/wikipedia/en/c/c3/Morty_Smith.png",
			"userID": "user-123"
		},
		"createdTime": "2021-08-07T11:58:23Z",
		"durationSeconds": 60,
		"heroImagePath": "/relative/path/to/hero/image.png",
		"incidentEnd": "2022-02-11 00:50:20.574137",
		"incidentID": "incident-123",
		"incidentStart": "2022-02-11 00:50:20.574137",
		"isDrill": false,
		"labels": [
			{
				"colorHex": "#ff0000",
				"description": "Customers are affected by this incident.",
				"label": "customers-affected"
			},
			{
				"colorHex": "#ff0000",
				"description": "Customers are affected by this incident.",
				"label": "customers-affected"
			}
		],
		"modifiedTime": "2021-08-07T11:58:23Z",
		"overviewURL": "/a/grafana-incident-app/incidents/incident-123/title",
		"roles": [
			{
				"description": "Investigator searches for the problem and reports back.",
				"important": true,
				"mandatory": true,
				"maxPeople": 1,
				"role": "investigator",
				"user": {
					"name": "Morty Smith",
					"photoURL": "https://upload.wikimedia.org/wikipedia/en/c/c3/Morty_Smith.png",
					"userID": "user-123"
				}
			},
			{
				"description": "Investigator searches for the problem and reports back.",
				"important": true,
				"mandatory": true,
				"maxPeople": 1,
				"role": "investigator",
				"user": {
					"name": "Morty Smith",
					"photoURL": "https://upload.wikimedia.org/wikipedia/en/c/c3/Morty_Smith.png",
					"userID": "user-123"
				}
			}
		],
		"severity": "minor",
		"status": "active",
		"summary": "Something happened, we found out something interesting, then we fixed it.",
		"taskList": {
			"doneCount": 8,
			"tasks": [
				{
					"assignedUser": {
						"name": "Morty Smith",
						"photoURL": "https://upload.wikimedia.org/wikipedia/en/c/c3/Morty_Smith.png",
						"userID": "user-123"
					},
					"authorUser": {
						"name": "Morty Smith",
						"photoURL": "https://upload.wikimedia.org/wikipedia/en/c/c3/Morty_Smith.png",
						"userID": "user-123"
					},
					"createdTime": "2018-01-01T00:00:00Z",
					"immutable": true,
					"modifiedTime": "2018-01-01T00:00:00Z",
					"status": "todo",
					"taskID": "task-123456",
					"text": "Assign an investigator"
				},
				{
					"assignedUser": {
						"name": "Morty Smith",
						"photoURL": "https://upload.wikimedia.org/wikipedia/en/c/c3/Morty_Smith.png",
						"userID": "user-123"
					},
					"authorUser": {
						"name": "Morty Smith",
						"photoURL": "https://upload.wikimedia.org/wikipedia/en/c/c3/Morty_Smith.png",
						"userID": "user-123"
					},
					"createdTime": "2018-01-01T00:00:00Z",
					"immutable": true,
					"modifiedTime": "2018-01-01T00:00:00Z",
					"status": "todo",
					"taskID": "task-123456",
					"text": "Assign an investigator"
				}
			],
			"todoCount": 5
		},
		"title": "high latency in web requests"
	},
	"source": "/grafana/incident",
	"time": "2023-02-10T14:44:17Z",
	"version": "v1.0.0"
}

QueryActivityRequest

QueryActivityRequest is the request for the QueryActivity operation.

  • query - ActivityQuery - Query describes the query to make.
  • cursor - Cursor - Cursor is used to page through results. Empty for the first page. For subsequent pages, use previously returned Cursor values.
{
	"cursor": {
		"hasMore": true,
		"nextValue": "aaaabbbbccccddddeeeeffffgggg"
	},
	"query": {
		"activityKind": [
			"incidentCreated"
		],
		"incidentID": "incident-123",
		"limit": 10,
		"orderDirection": "ASC",
		"tag": "important"
	}
}

QueryActivityResponse

QueryActivityResponse is the response from the QueryActivity method.

  • activityItems - array of ActivityItem - ActivityItems is the list of items.
  • query - ActivityQuery - Query is the query that was used to generate the response.
  • cursor - Cursor - Cursor is used to page through results. Empty for the first page. For subsequent pages, use previously returned Cursor values.
  • error - string - Error is string explaining what went wrong. Empty if everything was fine.
{
	"activityItems": [
		{
			"activityItemID": "activity-item-123",
			"activityKind": "incidentCreated",
			"body": "The incident was created by user-123",
			"createdTime": "2021-08-07T11:58:23Z",
			"eventTime": "2021-08-07T11:58:23Z",
			"fieldValues": {
				"something-else": true,
				"title": "new title"
			},
			"immutable": false,
			"incidentID": "incident-123",
			"subjectUser": {
				"name": "Morty Smith",
				"photoURL": "https://upload.wikimedia.org/wikipedia/en/c/c3/Morty_Smith.png",
				"userID": "user-123"
			},
			"tags": [
				"important"
			],
			"url": "https://meet.google.com/my-incident-room",
			"user": {
				"name": "Morty Smith",
				"photoURL": "https://upload.wikimedia.org/wikipedia/en/c/c3/Morty_Smith.png",
				"userID": "user-123"
			}
		},
		{
			"activityItemID": "activity-item-123",
			"activityKind": "incidentCreated",
			"body": "The incident was created by user-123",
			"createdTime": "2021-08-07T11:58:23Z",
			"eventTime": "2021-08-07T11:58:23Z",
			"fieldValues": {
				"something-else": true,
				"title": "new title"
			},
			"immutable": false,
			"incidentID": "incident-123",
			"subjectUser": {
				"name": "Morty Smith",
				"photoURL": "https://upload.wikimedia.org/wikipedia/en/c/c3/Morty_Smith.png",
				"userID": "user-123"
			},
			"tags": [
				"important"
			],
			"url": "https://meet.google.com/my-incident-room",
			"user": {
				"name": "Morty Smith",
				"photoURL": "https://upload.wikimedia.org/wikipedia/en/c/c3/Morty_Smith.png",
				"userID": "user-123"
			}
		}
	],
	"cursor": {
		"hasMore": true,
		"nextValue": "aaaabbbbccccddddeeeeffffgggg"
	},
	"error": "something went wrong",
	"query": {
		"activityKind": [
			"incidentCreated"
		],
		"incidentID": "incident-123",
		"limit": 10,
		"orderDirection": "ASC",
		"tag": "important"
	}
}

QueryIncidentsRequest

QueryIncidentsRequest is the request for the QueryIncidents call.

  • query - IncidentsQuery - Query describes the query to make.
  • cursor - Cursor - Cursor is used to page through results. Empty for the first page. For subsequent pages, use previously returned Cursor values.
{
	"cursor": {
		"hasMore": true,
		"nextValue": "aaaabbbbccccddddeeeeffffgggg"
	},
	"query": {
		"dateFrom": "2021-01-01T02:07:14+00:00",
		"dateTo": "2021-01-01T02:07:14+00:00",
		"excludeStatuses": [
			"closed"
		],
		"incidentLabels": [
			"security",
			"customersaffected"
		],
		"includeStatuses": [
			"active"
		],
		"limit": 10,
		"onlyDrills": true,
		"orderDirection": "ASC",
		"queryString": "isdrill:false any(label:security label:important)",
		"severity": "major"
	}
}

QueryIncidentsResponse

QueryIncidentsResponse is the response for the QueryIncidents call.

  • incidents - array of Incident - Incidents is a list of Incidents.
  • query - IncidentsQuery - Query is the query that was used to generate this response.
  • cursor - Cursor - Cursor should be passed back to get the next page of results.
  • error - string - Error is string explaining what went wrong. Empty if everything was fine.
{
	"cursor": {
		"hasMore": true,
		"nextValue": "aaaabbbbccccddddeeeeffffgggg"
	},
	"error": "something went wrong",
	"incidents": [
		{
			"closedTime": "2021-08-07T11:58:23Z",
			"createdByUser": {
				"name": "Morty Smith",
				"photoURL": "https://upload.wikimedia.org/wikipedia/en/c/c3/Morty_Smith.png",
				"userID": "user-123"
			},
			"createdTime": "2021-08-07T11:58:23Z",
			"durationSeconds": 60,
			"heroImagePath": "/relative/path/to/hero/image.png",
			"incidentEnd": "2022-02-11 00:50:20.574137",
			"incidentID": "incident-123",
			"incidentStart": "2022-02-11 00:50:20.574137",
			"isDrill": false,
			"labels": [
				{
					"colorHex": "#ff0000",
					"description": "Customers are affected by this incident.",
					"label": "customers-affected"
				},
				{
					"colorHex": "#ff0000",
					"description": "Customers are affected by this incident.",
					"label": "customers-affected"
				}
			],
			"modifiedTime": "2021-08-07T11:58:23Z",
			"overviewURL": "/a/grafana-incident-app/incidents/incident-123/title",
			"roles": [
				{
					"description": "Investigator searches for the problem and reports back.",
					"important": true,
					"mandatory": true,
					"maxPeople": 1,
					"role": "investigator",
					"user": {
						"name": "Morty Smith",
						"photoURL": "https://upload.wikimedia.org/wikipedia/en/c/c3/Morty_Smith.png",
						"userID": "user-123"
					}
				},
				{
					"description": "Investigator searches for the problem and reports back.",
					"important": true,
					"mandatory": true,
					"maxPeople": 1,
					"role": "investigator",
					"user": {
						"name": "Morty Smith",
						"photoURL": "https://upload.wikimedia.org/wikipedia/en/c/c3/Morty_Smith.png",
						"userID": "user-123"
					}
				}
			],
			"severity": "minor",
			"status": "active",
			"summary": "Something happened, we found out something interesting, then we fixed it.",
			"taskList": {
				"doneCount": 8,
				"tasks": [
					{
						"assignedUser": {
							"name": "Morty Smith",
							"photoURL": "https://upload.wikimedia.org/wikipedia/en/c/c3/Morty_Smith.png",
							"userID": "user-123"
						},
						"authorUser": {
							"name": "Morty Smith",
							"photoURL": "https://upload.wikimedia.org/wikipedia/en/c/c3/Morty_Smith.png",
							"userID": "user-123"
						},
						"createdTime": "2018-01-01T00:00:00Z",
						"immutable": true,
						"modifiedTime": "2018-01-01T00:00:00Z",
						"status": "todo",
						"taskID": "task-123456",
						"text": "Assign an investigator"
					},
					{
						"assignedUser": {
							"name": "Morty Smith",
							"photoURL": "https://upload.wikimedia.org/wikipedia/en/c/c3/Morty_Smith.png",
							"userID": "user-123"
						},
						"authorUser": {
							"name": "Morty Smith",
							"photoURL": "https://upload.wikimedia.org/wikipedia/en/c/c3/Morty_Smith.png",
							"userID": "user-123"
						},
						"createdTime": "2018-01-01T00:00:00Z",
						"immutable": true,
						"modifiedTime": "2018-01-01T00:00:00Z",
						"status": "todo",
						"taskID": "task-123456",
						"text": "Assign an investigator"
					}
				],
				"todoCount": 5
			},
			"title": "high latency in web requests"
		},
		{
			"closedTime": "2021-08-07T11:58:23Z",
			"createdByUser": {
				"name": "Morty Smith",
				"photoURL": "https://upload.wikimedia.org/wikipedia/en/c/c3/Morty_Smith.png",
				"userID": "user-123"
			},
			"createdTime": "2021-08-07T11:58:23Z",
			"durationSeconds": 60,
			"heroImagePath": "/relative/path/to/hero/image.png",
			"incidentEnd": "2022-02-11 00:50:20.574137",
			"incidentID": "incident-123",
			"incidentStart": "2022-02-11 00:50:20.574137",
			"isDrill": false,
			"labels": [
				{
					"colorHex": "#ff0000",
					"description": "Customers are affected by this incident.",
					"label": "customers-affected"
				},
				{
					"colorHex": "#ff0000",
					"description": "Customers are affected by this incident.",
					"label": "customers-affected"
				}
			],
			"modifiedTime": "2021-08-07T11:58:23Z",
			"overviewURL": "/a/grafana-incident-app/incidents/incident-123/title",
			"roles": [
				{
					"description": "Investigator searches for the problem and reports back.",
					"important": true,
					"mandatory": true,
					"maxPeople": 1,
					"role": "investigator",
					"user": {
						"name": "Morty Smith",
						"photoURL": "https://upload.wikimedia.org/wikipedia/en/c/c3/Morty_Smith.png",
						"userID": "user-123"
					}
				},
				{
					"description": "Investigator searches for the problem and reports back.",
					"important": true,
					"mandatory": true,
					"maxPeople": 1,
					"role": "investigator",
					"user": {
						"name": "Morty Smith",
						"photoURL": "https://upload.wikimedia.org/wikipedia/en/c/c3/Morty_Smith.png",
						"userID": "user-123"
					}
				}
			],
			"severity": "minor",
			"status": "active",
			"summary": "Something happened, we found out something interesting, then we fixed it.",
			"taskList": {
				"doneCount": 8,
				"tasks": [
					{
						"assignedUser": {
							"name": "Morty Smith",
							"photoURL": "https://upload.wikimedia.org/wikipedia/en/c/c3/Morty_Smith.png",
							"userID": "user-123"
						},
						"authorUser": {
							"name": "Morty Smith",
							"photoURL": "https://upload.wikimedia.org/wikipedia/en/c/c3/Morty_Smith.png",
							"userID": "user-123"
						},
						"createdTime": "2018-01-01T00:00:00Z",
						"immutable": true,
						"modifiedTime": "2018-01-01T00:00:00Z",
						"status": "todo",
						"taskID": "task-123456",
						"text": "Assign an investigator"
					},
					{
						"assignedUser": {
							"name": "Morty Smith",
							"photoURL": "https://upload.wikimedia.org/wikipedia/en/c/c3/Morty_Smith.png",
							"userID": "user-123"
						},
						"authorUser": {
							"name": "Morty Smith",
							"photoURL": "https://upload.wikimedia.org/wikipedia/en/c/c3/Morty_Smith.png",
							"userID": "user-123"
						},
						"createdTime": "2018-01-01T00:00:00Z",
						"immutable": true,
						"modifiedTime": "2018-01-01T00:00:00Z",
						"status": "todo",
						"taskID": "task-123456",
						"text": "Assign an investigator"
					}
				],
				"todoCount": 5
			},
			"title": "high latency in web requests"
		}
	],
	"query": {
		"dateFrom": "2021-01-01T02:07:14+00:00",
		"dateTo": "2021-01-01T02:07:14+00:00",
		"excludeStatuses": [
			"closed"
		],
		"incidentLabels": [
			"security",
			"customersaffected"
		],
		"includeStatuses": [
			"active"
		],
		"limit": 10,
		"onlyDrills": true,
		"orderDirection": "ASC",
		"queryString": "isdrill:false any(label:security label:important)",
		"severity": "major"
	}
}

RemoveActivityRequest

RemoveActivityRequest is the request for the RemoveActivity operation.

  • incidentID - string - IncidentID is the identifier.
  • activityItemID - string - ActivityItemID is the unique identifier of the ActivityItem.
{
	"activityItemID": "activity-item-123",
	"incidentID": "incident-123"
}

RemoveActivityResponse

RemoveActivityResponse is the response from the RemoveActivity operation.

  • activityItem - ActivityItem - ActivityItem is the updated ActivityItem.
  • error - string - Error is string explaining what went wrong. Empty if everything was fine.
{
	"activityItem": {
		"activityItemID": "activity-item-123",
		"activityKind": "incidentCreated",
		"body": "The incident was created by user-123",
		"createdTime": "2021-08-07T11:58:23Z",
		"eventTime": "2021-08-07T11:58:23Z",
		"fieldValues": {
			"something-else": true,
			"title": "new title"
		},
		"immutable": false,
		"incidentID": "incident-123",
		"subjectUser": {
			"name": "Morty Smith",
			"photoURL": "https://upload.wikimedia.org/wikipedia/en/c/c3/Morty_Smith.png",
			"userID": "user-123"
		},
		"tags": [
			"important"
		],
		"url": "https://meet.google.com/my-incident-room",
		"user": {
			"name": "Morty Smith",
			"photoURL": "https://upload.wikimedia.org/wikipedia/en/c/c3/Morty_Smith.png",
			"userID": "user-123"
		}
	},
	"error": "something went wrong"
}

RemoveLabelRequest

RemoveLabelRequest is the request for the RemoveLabel call.

  • incidentID - string - IncidentID is the identifier of the Incident.
  • label - string - Label is the label to remove from the Incident.
{
	"incidentID": "incident-123",
	"label": ""
}

RemoveLabelResponse

RemoveLabelResponse is the response for the RemoveLabel call.

  • incident - Incident - Incident is the Incident that was just modified.
  • error - string - Error is string explaining what went wrong. Empty if everything was fine.
{
	"error": "something went wrong",
	"incident": {
		"closedTime": "2021-08-07T11:58:23Z",
		"createdByUser": {
			"name": "Morty Smith",
			"photoURL": "https://upload.wikimedia.org/wikipedia/en/c/c3/Morty_Smith.png",
			"userID": "user-123"
		},
		"createdTime": "2021-08-07T11:58:23Z",
		"durationSeconds": 60,
		"heroImagePath": "/relative/path/to/hero/image.png",
		"incidentEnd": "2022-02-11 00:50:20.574137",
		"incidentID": "incident-123",
		"incidentStart": "2022-02-11 00:50:20.574137",
		"isDrill": false,
		"labels": [
			{
				"colorHex": "#ff0000",
				"description": "Customers are affected by this incident.",
				"label": "customers-affected"
			},
			{
				"colorHex": "#ff0000",
				"description": "Customers are affected by this incident.",
				"label": "customers-affected"
			}
		],
		"modifiedTime": "2021-08-07T11:58:23Z",
		"overviewURL": "/a/grafana-incident-app/incidents/incident-123/title",
		"roles": [
			{
				"description": "Investigator searches for the problem and reports back.",
				"important": true,
				"mandatory": true,
				"maxPeople": 1,
				"role": "investigator",
				"user": {
					"name": "Morty Smith",
					"photoURL": "https://upload.wikimedia.org/wikipedia/en/c/c3/Morty_Smith.png",
					"userID": "user-123"
				}
			},
			{
				"description": "Investigator searches for the problem and reports back.",
				"important": true,
				"mandatory": true,
				"maxPeople": 1,
				"role": "investigator",
				"user": {
					"name": "Morty Smith",
					"photoURL": "https://upload.wikimedia.org/wikipedia/en/c/c3/Morty_Smith.png",
					"userID": "user-123"
				}
			}
		],
		"severity": "minor",
		"status": "active",
		"summary": "Something happened, we found out something interesting, then we fixed it.",
		"taskList": {
			"doneCount": 8,
			"tasks": [
				{
					"assignedUser": {
						"name": "Morty Smith",
						"photoURL": "https://upload.wikimedia.org/wikipedia/en/c/c3/Morty_Smith.png",
						"userID": "user-123"
					},
					"authorUser": {
						"name": "Morty Smith",
						"photoURL": "https://upload.wikimedia.org/wikipedia/en/c/c3/Morty_Smith.png",
						"userID": "user-123"
					},
					"createdTime": "2018-01-01T00:00:00Z",
					"immutable": true,
					"modifiedTime": "2018-01-01T00:00:00Z",
					"status": "todo",
					"taskID": "task-123456",
					"text": "Assign an investigator"
				},
				{
					"assignedUser": {
						"name": "Morty Smith",
						"photoURL": "https://upload.wikimedia.org/wikipedia/en/c/c3/Morty_Smith.png",
						"userID": "user-123"
					},
					"authorUser": {
						"name": "Morty Smith",
						"photoURL": "https://upload.wikimedia.org/wikipedia/en/c/c3/Morty_Smith.png",
						"userID": "user-123"
					},
					"createdTime": "2018-01-01T00:00:00Z",
					"immutable": true,
					"modifiedTime": "2018-01-01T00:00:00Z",
					"status": "todo",
					"taskID": "task-123456",
					"text": "Assign an investigator"
				}
			],
			"todoCount": 5
		},
		"title": "high latency in web requests"
	}
}

Task

Task is an individual task that somebody will do to resolve an Incident.

  • taskID - string - TaskID is the ID of the task.
  • immutable - boolean - Immutable is true if the task cannot be changed. Used for tasks created and maintained by the system (like role assignment tasks).
  • createdTime - string - CreatedTime is the time the task was created.
  • modifiedTime - string - ModifiedTime is the time
  • text - string - Text is the string that describes the Task.
  • status - string - options: "todo" "progress" "done" - Status os the status of this task.
  • authorUser - *UserPreview - AuthorUser is the person who created this task.
  • assignedUser - *UserPreview - AssignedUser is the person this task is assigned to.
{
	"assignedUser": {
		"name": "Morty Smith",
		"photoURL": "https://upload.wikimedia.org/wikipedia/en/c/c3/Morty_Smith.png",
		"userID": "user-123"
	},
	"authorUser": {
		"name": "Morty Smith",
		"photoURL": "https://upload.wikimedia.org/wikipedia/en/c/c3/Morty_Smith.png",
		"userID": "user-123"
	},
	"createdTime": "2018-01-01T00:00:00Z",
	"immutable": true,
	"modifiedTime": "2018-01-01T00:00:00Z",
	"status": "todo",
	"taskID": "task-123456",
	"text": "Assign an investigator"
}

TaskList

TaskList is a list of tasks.

  • tasks - array of Task - Tasks is a list of tasks.
  • todoCount - number - TodoCount is the number of items in the list that are not yet done.
  • doneCount - number - DoneCount is the number of items in the list that are done.
{
	"doneCount": 8,
	"tasks": [
		{
			"assignedUser": {
				"name": "Morty Smith",
				"photoURL": "https://upload.wikimedia.org/wikipedia/en/c/c3/Morty_Smith.png",
				"userID": "user-123"
			},
			"authorUser": {
				"name": "Morty Smith",
				"photoURL": "https://upload.wikimedia.org/wikipedia/en/c/c3/Morty_Smith.png",
				"userID": "user-123"
			},
			"createdTime": "2018-01-01T00:00:00Z",
			"immutable": true,
			"modifiedTime": "2018-01-01T00:00:00Z",
			"status": "todo",
			"taskID": "task-123456",
			"text": "Assign an investigator"
		},
		{
			"assignedUser": {
				"name": "Morty Smith",
				"photoURL": "https://upload.wikimedia.org/wikipedia/en/c/c3/Morty_Smith.png",
				"userID": "user-123"
			},
			"authorUser": {
				"name": "Morty Smith",
				"photoURL": "https://upload.wikimedia.org/wikipedia/en/c/c3/Morty_Smith.png",
				"userID": "user-123"
			},
			"createdTime": "2018-01-01T00:00:00Z",
			"immutable": true,
			"modifiedTime": "2018-01-01T00:00:00Z",
			"status": "todo",
			"taskID": "task-123456",
			"text": "Assign an investigator"
		}
	],
	"todoCount": 5
}

UnassignRoleRequest

UnassignRoleRequest is the request for the UnassignRole call.

  • incidentID - string - IncidentID is the identifier.
  • userID - string - UserID is the identifier of the person to assign the role to.
  • role - string - options: "commander" "investigator" "observer" - Role is the role of this person.
{
	"incidentID": "incident-123",
	"role": "commander",
	"userID": "grafana-incident:user-123"
}

UnassignRoleResponse

UnassignRoleResponse is the response for the UnassignRole call.

  • incident - Incident - Incident is the Incident that was just updated.
  • didChange - boolean - DidChange indicates if the role was changed or not. If the role was not assigned, this will be false.
  • error - string - Error is string explaining what went wrong. Empty if everything was fine.
{
	"didChange": true,
	"error": "something went wrong",
	"incident": {
		"closedTime": "2021-08-07T11:58:23Z",
		"createdByUser": {
			"name": "Morty Smith",
			"photoURL": "https://upload.wikimedia.org/wikipedia/en/c/c3/Morty_Smith.png",
			"userID": "user-123"
		},
		"createdTime": "2021-08-07T11:58:23Z",
		"durationSeconds": 60,
		"heroImagePath": "/relative/path/to/hero/image.png",
		"incidentEnd": "2022-02-11 00:50:20.574137",
		"incidentID": "incident-123",
		"incidentStart": "2022-02-11 00:50:20.574137",
		"isDrill": false,
		"labels": [
			{
				"colorHex": "#ff0000",
				"description": "Customers are affected by this incident.",
				"label": "customers-affected"
			},
			{
				"colorHex": "#ff0000",
				"description": "Customers are affected by this incident.",
				"label": "customers-affected"
			}
		],
		"modifiedTime": "2021-08-07T11:58:23Z",
		"overviewURL": "/a/grafana-incident-app/incidents/incident-123/title",
		"roles": [
			{
				"description": "Investigator searches for the problem and reports back.",
				"important": true,
				"mandatory": true,
				"maxPeople": 1,
				"role": "investigator",
				"user": {
					"name": "Morty Smith",
					"photoURL": "https://upload.wikimedia.org/wikipedia/en/c/c3/Morty_Smith.png",
					"userID": "user-123"
				}
			},
			{
				"description": "Investigator searches for the problem and reports back.",
				"important": true,
				"mandatory": true,
				"maxPeople": 1,
				"role": "investigator",
				"user": {
					"name": "Morty Smith",
					"photoURL": "https://upload.wikimedia.org/wikipedia/en/c/c3/Morty_Smith.png",
					"userID": "user-123"
				}
			}
		],
		"severity": "minor",
		"status": "active",
		"summary": "Something happened, we found out something interesting, then we fixed it.",
		"taskList": {
			"doneCount": 8,
			"tasks": [
				{
					"assignedUser": {
						"name": "Morty Smith",
						"photoURL": "https://upload.wikimedia.org/wikipedia/en/c/c3/Morty_Smith.png",
						"userID": "user-123"
					},
					"authorUser": {
						"name": "Morty Smith",
						"photoURL": "https://upload.wikimedia.org/wikipedia/en/c/c3/Morty_Smith.png",
						"userID": "user-123"
					},
					"createdTime": "2018-01-01T00:00:00Z",
					"immutable": true,
					"modifiedTime": "2018-01-01T00:00:00Z",
					"status": "todo",
					"taskID": "task-123456",
					"text": "Assign an investigator"
				},
				{
					"assignedUser": {
						"name": "Morty Smith",
						"photoURL": "https://upload.wikimedia.org/wikipedia/en/c/c3/Morty_Smith.png",
						"userID": "user-123"
					},
					"authorUser": {
						"name": "Morty Smith",
						"photoURL": "https://upload.wikimedia.org/wikipedia/en/c/c3/Morty_Smith.png",
						"userID": "user-123"
					},
					"createdTime": "2018-01-01T00:00:00Z",
					"immutable": true,
					"modifiedTime": "2018-01-01T00:00:00Z",
					"status": "todo",
					"taskID": "task-123456",
					"text": "Assign an investigator"
				}
			],
			"todoCount": 5
		},
		"title": "high latency in web requests"
	}
}

UpdateActivityBodyRequest

UpdateActivityBodyRequest is the request for the UpdateActivityBody operation.

  • incidentID - string - IncidentID is the identifier.
  • activityItemID - string - ActivityItemID is the unique identifier of the ActivityItem.
  • body - string - Body is the new body to use for the given activity item
{
	"activityItemID": "activity-item-123",
	"body": "New contents",
	"incidentID": "incident-123"
}

UpdateActivityBodyResponse

UpdateActivityBodyResponse is the response from the UpdateActivityBody operation.

  • activityItem - ActivityItem - ActivityItem is the updated ActivityItem.
  • error - string - Error is string explaining what went wrong. Empty if everything was fine.
{
	"activityItem": {
		"activityItemID": "activity-item-123",
		"activityKind": "incidentCreated",
		"body": "The incident was created by user-123",
		"createdTime": "2021-08-07T11:58:23Z",
		"eventTime": "2021-08-07T11:58:23Z",
		"fieldValues": {
			"something-else": true,
			"title": "new title"
		},
		"immutable": false,
		"incidentID": "incident-123",
		"subjectUser": {
			"name": "Morty Smith",
			"photoURL": "https://upload.wikimedia.org/wikipedia/en/c/c3/Morty_Smith.png",
			"userID": "user-123"
		},
		"tags": [
			"important"
		],
		"url": "https://meet.google.com/my-incident-room",
		"user": {
			"name": "Morty Smith",
			"photoURL": "https://upload.wikimedia.org/wikipedia/en/c/c3/Morty_Smith.png",
			"userID": "user-123"
		}
	},
	"error": "something went wrong"
}

UpdateActivityEventTimeRequest

UpdateActivityEventTimeRequest is the request for the UpdateActivityEventTime operation.

  • incidentID - string - IncidentID is the identifier.
  • activityItemID - string - ActivityItemID is the unique identifier of the ActivityItem.
  • eventTime - string - EventTime is the time when the event occurred. If empty, the created time of the activity item is used. The string value format should follow RFC 3339.
{
	"activityItemID": "activity-item-123",
	"eventTime": "2021-08-07T11:58:23Z",
	"incidentID": "incident-123"
}

UpdateActivityEventTimeResponse

UpdateActivityEventTimeResponse is the response from the UpdateActivityEventTime operation.

  • activityItem - ActivityItem - ActivityItem is the updated ActivityItem.
  • error - string - Error is string explaining what went wrong. Empty if everything was fine.
{
	"activityItem": {
		"activityItemID": "activity-item-123",
		"activityKind": "incidentCreated",
		"body": "The incident was created by user-123",
		"createdTime": "2021-08-07T11:58:23Z",
		"eventTime": "2021-08-07T11:58:23Z",
		"fieldValues": {
			"something-else": true,
			"title": "new title"
		},
		"immutable": false,
		"incidentID": "incident-123",
		"subjectUser": {
			"name": "Morty Smith",
			"photoURL": "https://upload.wikimedia.org/wikipedia/en/c/c3/Morty_Smith.png",
			"userID": "user-123"
		},
		"tags": [
			"important"
		],
		"url": "https://meet.google.com/my-incident-room",
		"user": {
			"name": "Morty Smith",
			"photoURL": "https://upload.wikimedia.org/wikipedia/en/c/c3/Morty_Smith.png",
			"userID": "user-123"
		}
	},
	"error": "something went wrong"
}

UpdateIncidentEventTimeRequest

UpdateIncidentEventTimeRequest is the request for the UpdateIncidentEventTime call.

  • incidentID - string - IncidentID is the identifier of the Incident.
  • eventTime - string - EventTime is the new time for the start or end of the incident. The string value format should follow RFC 3339.
  • activityItemKind - string - options: "incidentEnd" "incidentStart" - ActivityItemKind is either the start or end of the incident.
{
	"activityItemKind": "incidentEnd",
	"eventTime": "2022-02-11 00:50:20.574137",
	"incidentID": "1"
}

UpdateIncidentEventTimeResponse

  • error - string - Error is string explaining what went wrong. Empty if everything was fine.
{
	"error": "something went wrong"
}

UpdateIncidentIsDrillRequest

  • incidentID - string - IncidentID is the identifier of the Incident.
  • isDrill - boolean - IsDrill indicates whether the Incident is a drill or not.
{
	"incidentID": "incident-123",
	"isDrill": true
}

UpdateIncidentIsDrillResponse

  • incident - Incident - Incident is the Incident that was just modified.
  • error - string - Error is string explaining what went wrong. Empty if everything was fine.
{
	"error": "something went wrong",
	"incident": {
		"closedTime": "2021-08-07T11:58:23Z",
		"createdByUser": {
			"name": "Morty Smith",
			"photoURL": "https://upload.wikimedia.org/wikipedia/en/c/c3/Morty_Smith.png",
			"userID": "user-123"
		},
		"createdTime": "2021-08-07T11:58:23Z",
		"durationSeconds": 60,
		"heroImagePath": "/relative/path/to/hero/image.png",
		"incidentEnd": "2022-02-11 00:50:20.574137",
		"incidentID": "incident-123",
		"incidentStart": "2022-02-11 00:50:20.574137",
		"isDrill": false,
		"labels": [
			{
				"colorHex": "#ff0000",
				"description": "Customers are affected by this incident.",
				"label": "customers-affected"
			},
			{
				"colorHex": "#ff0000",
				"description": "Customers are affected by this incident.",
				"label": "customers-affected"
			}
		],
		"modifiedTime": "2021-08-07T11:58:23Z",
		"overviewURL": "/a/grafana-incident-app/incidents/incident-123/title",
		"roles": [
			{
				"description": "Investigator searches for the problem and reports back.",
				"important": true,
				"mandatory": true,
				"maxPeople": 1,
				"role": "investigator",
				"user": {
					"name": "Morty Smith",
					"photoURL": "https://upload.wikimedia.org/wikipedia/en/c/c3/Morty_Smith.png",
					"userID": "user-123"
				}
			},
			{
				"description": "Investigator searches for the problem and reports back.",
				"important": true,
				"mandatory": true,
				"maxPeople": 1,
				"role": "investigator",
				"user": {
					"name": "Morty Smith",
					"photoURL": "https://upload.wikimedia.org/wikipedia/en/c/c3/Morty_Smith.png",
					"userID": "user-123"
				}
			}
		],
		"severity": "minor",
		"status": "active",
		"summary": "Something happened, we found out something interesting, then we fixed it.",
		"taskList": {
			"doneCount": 8,
			"tasks": [
				{
					"assignedUser": {
						"name": "Morty Smith",
						"photoURL": "https://upload.wikimedia.org/wikipedia/en/c/c3/Morty_Smith.png",
						"userID": "user-123"
					},
					"authorUser": {
						"name": "Morty Smith",
						"photoURL": "https://upload.wikimedia.org/wikipedia/en/c/c3/Morty_Smith.png",
						"userID": "user-123"
					},
					"createdTime": "2018-01-01T00:00:00Z",
					"immutable": true,
					"modifiedTime": "2018-01-01T00:00:00Z",
					"status": "todo",
					"taskID": "task-123456",
					"text": "Assign an investigator"
				},
				{
					"assignedUser": {
						"name": "Morty Smith",
						"photoURL": "https://upload.wikimedia.org/wikipedia/en/c/c3/Morty_Smith.png",
						"userID": "user-123"
					},
					"authorUser": {
						"name": "Morty Smith",
						"photoURL": "https://upload.wikimedia.org/wikipedia/en/c/c3/Morty_Smith.png",
						"userID": "user-123"
					},
					"createdTime": "2018-01-01T00:00:00Z",
					"immutable": true,
					"modifiedTime": "2018-01-01T00:00:00Z",
					"status": "todo",
					"taskID": "task-123456",
					"text": "Assign an investigator"
				}
			],
			"todoCount": 5
		},
		"title": "high latency in web requests"
	}
}

UpdateSeverityRequest

UpdateSeverityRequest is the request for the UpdateSeverity call.

  • incidentID - string - IncidentID is the identifier of the Incident.
  • severity - string - options: "pending" "minor" "major" "critical" - Severity expresses how bad the Incident is.
{
	"incidentID": "incident-123",
	"severity": "minor"
}

UpdateSeverityResponse

UpdateSeverityResponse is the response for the UpdateSeverity call.

  • incident - Incident - Incident is the Incident that was just modified.
  • error - string - Error is string explaining what went wrong. Empty if everything was fine.
{
	"error": "something went wrong",
	"incident": {
		"closedTime": "2021-08-07T11:58:23Z",
		"createdByUser": {
			"name": "Morty Smith",
			"photoURL": "https://upload.wikimedia.org/wikipedia/en/c/c3/Morty_Smith.png",
			"userID": "user-123"
		},
		"createdTime": "2021-08-07T11:58:23Z",
		"durationSeconds": 60,
		"heroImagePath": "/relative/path/to/hero/image.png",
		"incidentEnd": "2022-02-11 00:50:20.574137",
		"incidentID": "incident-123",
		"incidentStart": "2022-02-11 00:50:20.574137",
		"isDrill": false,
		"labels": [
			{
				"colorHex": "#ff0000",
				"description": "Customers are affected by this incident.",
				"label": "customers-affected"
			},
			{
				"colorHex": "#ff0000",
				"description": "Customers are affected by this incident.",
				"label": "customers-affected"
			}
		],
		"modifiedTime": "2021-08-07T11:58:23Z",
		"overviewURL": "/a/grafana-incident-app/incidents/incident-123/title",
		"roles": [
			{
				"description": "Investigator searches for the problem and reports back.",
				"important": true,
				"mandatory": true,
				"maxPeople": 1,
				"role": "investigator",
				"user": {
					"name": "Morty Smith",
					"photoURL": "https://upload.wikimedia.org/wikipedia/en/c/c3/Morty_Smith.png",
					"userID": "user-123"
				}
			},
			{
				"description": "Investigator searches for the problem and reports back.",
				"important": true,
				"mandatory": true,
				"maxPeople": 1,
				"role": "investigator",
				"user": {
					"name": "Morty Smith",
					"photoURL": "https://upload.wikimedia.org/wikipedia/en/c/c3/Morty_Smith.png",
					"userID": "user-123"
				}
			}
		],
		"severity": "minor",
		"status": "active",
		"summary": "Something happened, we found out something interesting, then we fixed it.",
		"taskList": {
			"doneCount": 8,
			"tasks": [
				{
					"assignedUser": {
						"name": "Morty Smith",
						"photoURL": "https://upload.wikimedia.org/wikipedia/en/c/c3/Morty_Smith.png",
						"userID": "user-123"
					},
					"authorUser": {
						"name": "Morty Smith",
						"photoURL": "https://upload.wikimedia.org/wikipedia/en/c/c3/Morty_Smith.png",
						"userID": "user-123"
					},
					"createdTime": "2018-01-01T00:00:00Z",
					"immutable": true,
					"modifiedTime": "2018-01-01T00:00:00Z",
					"status": "todo",
					"taskID": "task-123456",
					"text": "Assign an investigator"
				},
				{
					"assignedUser": {
						"name": "Morty Smith",
						"photoURL": "https://upload.wikimedia.org/wikipedia/en/c/c3/Morty_Smith.png",
						"userID": "user-123"
					},
					"authorUser": {
						"name": "Morty Smith",
						"photoURL": "https://upload.wikimedia.org/wikipedia/en/c/c3/Morty_Smith.png",
						"userID": "user-123"
					},
					"createdTime": "2018-01-01T00:00:00Z",
					"immutable": true,
					"modifiedTime": "2018-01-01T00:00:00Z",
					"status": "todo",
					"taskID": "task-123456",
					"text": "Assign an investigator"
				}
			],
			"todoCount": 5
		},
		"title": "high latency in web requests"
	}
}

UpdateStatusRequest

UpdateStatusRequest is the request for the UpdateStatus call.

  • incidentID - string - IncidentID is the identifier of the Incident.
  • status - string - options: "active" "resolved" - Status is the new status of the Incident.
{
	"incidentID": "incident-123",
	"status": "resolved"
}

UpdateStatusResponse

UpdateStatusResponse is the response for the UpdateStatus call.

  • incident - Incident - Incident is the Incident that was just modified.
  • error - string - Error is string explaining what went wrong. Empty if everything was fine.
{
	"error": "something went wrong",
	"incident": {
		"closedTime": "2021-08-07T11:58:23Z",
		"createdByUser": {
			"name": "Morty Smith",
			"photoURL": "https://upload.wikimedia.org/wikipedia/en/c/c3/Morty_Smith.png",
			"userID": "user-123"
		},
		"createdTime": "2021-08-07T11:58:23Z",
		"durationSeconds": 60,
		"heroImagePath": "/relative/path/to/hero/image.png",
		"incidentEnd": "2022-02-11 00:50:20.574137",
		"incidentID": "incident-123",
		"incidentStart": "2022-02-11 00:50:20.574137",
		"isDrill": false,
		"labels": [
			{
				"colorHex": "#ff0000",
				"description": "Customers are affected by this incident.",
				"label": "customers-affected"
			},
			{
				"colorHex": "#ff0000",
				"description": "Customers are affected by this incident.",
				"label": "customers-affected"
			}
		],
		"modifiedTime": "2021-08-07T11:58:23Z",
		"overviewURL": "/a/grafana-incident-app/incidents/incident-123/title",
		"roles": [
			{
				"description": "Investigator searches for the problem and reports back.",
				"important": true,
				"mandatory": true,
				"maxPeople": 1,
				"role": "investigator",
				"user": {
					"name": "Morty Smith",
					"photoURL": "https://upload.wikimedia.org/wikipedia/en/c/c3/Morty_Smith.png",
					"userID": "user-123"
				}
			},
			{
				"description": "Investigator searches for the problem and reports back.",
				"important": true,
				"mandatory": true,
				"maxPeople": 1,
				"role": "investigator",
				"user": {
					"name": "Morty Smith",
					"photoURL": "https://upload.wikimedia.org/wikipedia/en/c/c3/Morty_Smith.png",
					"userID": "user-123"
				}
			}
		],
		"severity": "minor",
		"status": "active",
		"summary": "Something happened, we found out something interesting, then we fixed it.",
		"taskList": {
			"doneCount": 8,
			"tasks": [
				{
					"assignedUser": {
						"name": "Morty Smith",
						"photoURL": "https://upload.wikimedia.org/wikipedia/en/c/c3/Morty_Smith.png",
						"userID": "user-123"
					},
					"authorUser": {
						"name": "Morty Smith",
						"photoURL": "https://upload.wikimedia.org/wikipedia/en/c/c3/Morty_Smith.png",
						"userID": "user-123"
					},
					"createdTime": "2018-01-01T00:00:00Z",
					"immutable": true,
					"modifiedTime": "2018-01-01T00:00:00Z",
					"status": "todo",
					"taskID": "task-123456",
					"text": "Assign an investigator"
				},
				{
					"assignedUser": {
						"name": "Morty Smith",
						"photoURL": "https://upload.wikimedia.org/wikipedia/en/c/c3/Morty_Smith.png",
						"userID": "user-123"
					},
					"authorUser": {
						"name": "Morty Smith",
						"photoURL": "https://upload.wikimedia.org/wikipedia/en/c/c3/Morty_Smith.png",
						"userID": "user-123"
					},
					"createdTime": "2018-01-01T00:00:00Z",
					"immutable": true,
					"modifiedTime": "2018-01-01T00:00:00Z",
					"status": "todo",
					"taskID": "task-123456",
					"text": "Assign an investigator"
				}
			],
			"todoCount": 5
		},
		"title": "high latency in web requests"
	}
}

UpdateTaskStatusRequest

  • incidentID - string - IncidentID is the ID of the Incident to add the Task to.
  • taskID - string - TaskID is the ID of the Task to update.
  • status - string - options: "todo" "progress" "done" - Status is the new status of this task.
{
	"incidentID": "incident-123456",
	"status": "todo",
	"taskID": "task-12345"
}

UpdateTaskStatusResponse

  • incidentID - string - IncidentID is the ID of the incident these tasks relate to.
  • task - Task - Task is the newly added Task. It will also appear in Tasks.
  • taskList - TaskList - TaskList is the tasks list.
  • error - string - Error is string explaining what went wrong. Empty if everything was fine.
{
	"error": "something went wrong",
	"incidentID": "incident-123456",
	"task": {
		"assignedUser": {
			"name": "Morty Smith",
			"photoURL": "https://upload.wikimedia.org/wikipedia/en/c/c3/Morty_Smith.png",
			"userID": "user-123"
		},
		"authorUser": {
			"name": "Morty Smith",
			"photoURL": "https://upload.wikimedia.org/wikipedia/en/c/c3/Morty_Smith.png",
			"userID": "user-123"
		},
		"createdTime": "2018-01-01T00:00:00Z",
		"immutable": true,
		"modifiedTime": "2018-01-01T00:00:00Z",
		"status": "todo",
		"taskID": "task-123456",
		"text": "Assign an investigator"
	},
	"taskList": {
		"doneCount": 8,
		"tasks": [
			{
				"assignedUser": {
					"name": "Morty Smith",
					"photoURL": "https://upload.wikimedia.org/wikipedia/en/c/c3/Morty_Smith.png",
					"userID": "user-123"
				},
				"authorUser": {
					"name": "Morty Smith",
					"photoURL": "https://upload.wikimedia.org/wikipedia/en/c/c3/Morty_Smith.png",
					"userID": "user-123"
				},
				"createdTime": "2018-01-01T00:00:00Z",
				"immutable": true,
				"modifiedTime": "2018-01-01T00:00:00Z",
				"status": "todo",
				"taskID": "task-123456",
				"text": "Assign an investigator"
			},
			{
				"assignedUser": {
					"name": "Morty Smith",
					"photoURL": "https://upload.wikimedia.org/wikipedia/en/c/c3/Morty_Smith.png",
					"userID": "user-123"
				},
				"authorUser": {
					"name": "Morty Smith",
					"photoURL": "https://upload.wikimedia.org/wikipedia/en/c/c3/Morty_Smith.png",
					"userID": "user-123"
				},
				"createdTime": "2018-01-01T00:00:00Z",
				"immutable": true,
				"modifiedTime": "2018-01-01T00:00:00Z",
				"status": "todo",
				"taskID": "task-123456",
				"text": "Assign an investigator"
			}
		],
		"todoCount": 5
	}
}

UpdateTaskTextRequest

  • incidentID - string - IncidentID is the ID of the Incident to add the Task to.
  • taskID - string - TaskID is the ID of the task.
  • text - string - Text is the string that describes the Task.
{
	"incidentID": "incident-123456",
	"taskID": "task-123456",
	"text": "Check the logs"
}

UpdateTaskTextResponse

  • incidentID - string - IncidentID is the ID of the incident these tasks relate to.
  • task - Task - Task is the newly added Task. It will also appear in Tasks.
  • taskList - TaskList - TaskList is the tasks list.
  • error - string - Error is string explaining what went wrong. Empty if everything was fine.
{
	"error": "something went wrong",
	"incidentID": "incident-123456",
	"task": {
		"assignedUser": {
			"name": "Morty Smith",
			"photoURL": "https://upload.wikimedia.org/wikipedia/en/c/c3/Morty_Smith.png",
			"userID": "user-123"
		},
		"authorUser": {
			"name": "Morty Smith",
			"photoURL": "https://upload.wikimedia.org/wikipedia/en/c/c3/Morty_Smith.png",
			"userID": "user-123"
		},
		"createdTime": "2018-01-01T00:00:00Z",
		"immutable": true,
		"modifiedTime": "2018-01-01T00:00:00Z",
		"status": "todo",
		"taskID": "task-123456",
		"text": "Assign an investigator"
	},
	"taskList": {
		"doneCount": 8,
		"tasks": [
			{
				"assignedUser": {
					"name": "Morty Smith",
					"photoURL": "https://upload.wikimedia.org/wikipedia/en/c/c3/Morty_Smith.png",
					"userID": "user-123"
				},
				"authorUser": {
					"name": "Morty Smith",
					"photoURL": "https://upload.wikimedia.org/wikipedia/en/c/c3/Morty_Smith.png",
					"userID": "user-123"
				},
				"createdTime": "2018-01-01T00:00:00Z",
				"immutable": true,
				"modifiedTime": "2018-01-01T00:00:00Z",
				"status": "todo",
				"taskID": "task-123456",
				"text": "Assign an investigator"
			},
			{
				"assignedUser": {
					"name": "Morty Smith",
					"photoURL": "https://upload.wikimedia.org/wikipedia/en/c/c3/Morty_Smith.png",
					"userID": "user-123"
				},
				"authorUser": {
					"name": "Morty Smith",
					"photoURL": "https://upload.wikimedia.org/wikipedia/en/c/c3/Morty_Smith.png",
					"userID": "user-123"
				},
				"createdTime": "2018-01-01T00:00:00Z",
				"immutable": true,
				"modifiedTime": "2018-01-01T00:00:00Z",
				"status": "todo",
				"taskID": "task-123456",
				"text": "Assign an investigator"
			}
		],
		"todoCount": 5
	}
}

UpdateTaskUserRequest

  • incidentID - string - IncidentID is the ID of the Incident to add the Task to.
  • taskID - string - TaskID is the ID of the Task to update.
  • userID - string - UserID is the ID of the User to assign to the Task.
{
	"incidentID": "incident-123456",
	"taskID": "task-12345",
	"userID": "user-id"
}

UpdateTaskUserResponse

  • incidentID - string - IncidentID is the ID of the incident these tasks relate to.
  • task - Task - Task is the newly added Task. It will also appear in Tasks.
  • taskList - TaskList - TaskList is the tasks list.
  • error - string - Error is string explaining what went wrong. Empty if everything was fine.
{
	"error": "something went wrong",
	"incidentID": "incident-123456",
	"task": {
		"assignedUser": {
			"name": "Morty Smith",
			"photoURL": "https://upload.wikimedia.org/wikipedia/en/c/c3/Morty_Smith.png",
			"userID": "user-123"
		},
		"authorUser": {
			"name": "Morty Smith",
			"photoURL": "https://upload.wikimedia.org/wikipedia/en/c/c3/Morty_Smith.png",
			"userID": "user-123"
		},
		"createdTime": "2018-01-01T00:00:00Z",
		"immutable": true,
		"modifiedTime": "2018-01-01T00:00:00Z",
		"status": "todo",
		"taskID": "task-123456",
		"text": "Assign an investigator"
	},
	"taskList": {
		"doneCount": 8,
		"tasks": [
			{
				"assignedUser": {
					"name": "Morty Smith",
					"photoURL": "https://upload.wikimedia.org/wikipedia/en/c/c3/Morty_Smith.png",
					"userID": "user-123"
				},
				"authorUser": {
					"name": "Morty Smith",
					"photoURL": "https://upload.wikimedia.org/wikipedia/en/c/c3/Morty_Smith.png",
					"userID": "user-123"
				},
				"createdTime": "2018-01-01T00:00:00Z",
				"immutable": true,
				"modifiedTime": "2018-01-01T00:00:00Z",
				"status": "todo",
				"taskID": "task-123456",
				"text": "Assign an investigator"
			},
			{
				"assignedUser": {
					"name": "Morty Smith",
					"photoURL": "https://upload.wikimedia.org/wikipedia/en/c/c3/Morty_Smith.png",
					"userID": "user-123"
				},
				"authorUser": {
					"name": "Morty Smith",
					"photoURL": "https://upload.wikimedia.org/wikipedia/en/c/c3/Morty_Smith.png",
					"userID": "user-123"
				},
				"createdTime": "2018-01-01T00:00:00Z",
				"immutable": true,
				"modifiedTime": "2018-01-01T00:00:00Z",
				"status": "todo",
				"taskID": "task-123456",
				"text": "Assign an investigator"
			}
		],
		"todoCount": 5
	}
}

UpdateTitleRequest

UpdateTitleRequest is the request for the UpdateTitle call.

  • incidentID - string - IncidentID is the identifier of the Incident.
  • title - string - Title is the new title of the Incident.
{
	"incidentID": "incident-123",
	"title": "High latency in web requests"
}

UpdateTitleResponse

UpdateTitleResponse is the response for the UpdateTitle call.

  • incident - Incident - Incident is the Incident that was just modified.
  • error - string - Error is string explaining what went wrong. Empty if everything was fine.
{
	"error": "something went wrong",
	"incident": {
		"closedTime": "2021-08-07T11:58:23Z",
		"createdByUser": {
			"name": "Morty Smith",
			"photoURL": "https://upload.wikimedia.org/wikipedia/en/c/c3/Morty_Smith.png",
			"userID": "user-123"
		},
		"createdTime": "2021-08-07T11:58:23Z",
		"durationSeconds": 60,
		"heroImagePath": "/relative/path/to/hero/image.png",
		"incidentEnd": "2022-02-11 00:50:20.574137",
		"incidentID": "incident-123",
		"incidentStart": "2022-02-11 00:50:20.574137",
		"isDrill": false,
		"labels": [
			{
				"colorHex": "#ff0000",
				"description": "Customers are affected by this incident.",
				"label": "customers-affected"
			},
			{
				"colorHex": "#ff0000",
				"description": "Customers are affected by this incident.",
				"label": "customers-affected"
			}
		],
		"modifiedTime": "2021-08-07T11:58:23Z",
		"overviewURL": "/a/grafana-incident-app/incidents/incident-123/title",
		"roles": [
			{
				"description": "Investigator searches for the problem and reports back.",
				"important": true,
				"mandatory": true,
				"maxPeople": 1,
				"role": "investigator",
				"user": {
					"name": "Morty Smith",
					"photoURL": "https://upload.wikimedia.org/wikipedia/en/c/c3/Morty_Smith.png",
					"userID": "user-123"
				}
			},
			{
				"description": "Investigator searches for the problem and reports back.",
				"important": true,
				"mandatory": true,
				"maxPeople": 1,
				"role": "investigator",
				"user": {
					"name": "Morty Smith",
					"photoURL": "https://upload.wikimedia.org/wikipedia/en/c/c3/Morty_Smith.png",
					"userID": "user-123"
				}
			}
		],
		"severity": "minor",
		"status": "active",
		"summary": "Something happened, we found out something interesting, then we fixed it.",
		"taskList": {
			"doneCount": 8,
			"tasks": [
				{
					"assignedUser": {
						"name": "Morty Smith",
						"photoURL": "https://upload.wikimedia.org/wikipedia/en/c/c3/Morty_Smith.png",
						"userID": "user-123"
					},
					"authorUser": {
						"name": "Morty Smith",
						"photoURL": "https://upload.wikimedia.org/wikipedia/en/c/c3/Morty_Smith.png",
						"userID": "user-123"
					},
					"createdTime": "2018-01-01T00:00:00Z",
					"immutable": true,
					"modifiedTime": "2018-01-01T00:00:00Z",
					"status": "todo",
					"taskID": "task-123456",
					"text": "Assign an investigator"
				},
				{
					"assignedUser": {
						"name": "Morty Smith",
						"photoURL": "https://upload.wikimedia.org/wikipedia/en/c/c3/Morty_Smith.png",
						"userID": "user-123"
					},
					"authorUser": {
						"name": "Morty Smith",
						"photoURL": "https://upload.wikimedia.org/wikipedia/en/c/c3/Morty_Smith.png",
						"userID": "user-123"
					},
					"createdTime": "2018-01-01T00:00:00Z",
					"immutable": true,
					"modifiedTime": "2018-01-01T00:00:00Z",
					"status": "todo",
					"taskID": "task-123456",
					"text": "Assign an investigator"
				}
			],
			"todoCount": 5
		},
		"title": "high latency in web requests"
	}
}

UserPreview

UserPreview is a user involved in an Incident.

  • userID - string - UserID is the identifier for the user.
  • name - string - Name is a human readable string that represents the user.
  • photoURL - string - PhotoURL is the URL to the profile picture of the user.
{
	"name": "Morty Smith",
	"photoURL": "https://upload.wikimedia.org/wikipedia/en/c/c3/Morty_Smith.png",
	"userID": "user-123"
}

This documentation was dynamically generated, please report any issues.