Alerting: Update documentation for Prometheus list rules API (#114057)

This commit is contained in:
Alexander Akhmetov
2025-11-18 15:56:54 +01:00
committed by GitHub
parent 633c9a9cb0
commit bbd0fbe9d0
6 changed files with 751 additions and 11 deletions
+88 -1
View File
@@ -1530,6 +1530,12 @@
},
"type": "array"
},
"msteamsv2_configs": {
"items": {
"$ref": "#/definitions/MSTeamsV2Config"
},
"type": "array"
},
"name": {
"description": "A unique identifier for this receiver.",
"type": "string"
@@ -2114,6 +2120,32 @@
"title": "InspectType is a type for the Inspect property of a Notice.",
"type": "integer"
},
"IntegrationStatus": {
"properties": {
"lastNotifyAttempt": {
"description": "A timestamp indicating the last attempt to deliver a notification regardless of the outcome.\nFormat: date-time",
"format": "date-time",
"type": "string"
},
"lastNotifyAttemptDuration": {
"description": "Duration of the last attempt to deliver a notification in humanized format (`1s` or `15ms`, etc).",
"type": "string"
},
"lastNotifyAttemptError": {
"description": "Error string for the last attempt to deliver a notification. Empty if the last attempt was successful.",
"type": "string"
},
"name": {
"description": "Name of the integration.",
"type": "string"
},
"sendResolved": {
"description": "Whether the integration is configured to send resolved notifications.",
"type": "boolean"
}
},
"type": "object"
},
"InternalDataLink": {
"description": "InternalDataLink definition to allow Explore links to be constructed in the backend",
"properties": {
@@ -2263,6 +2295,29 @@
},
"type": "object"
},
"MSTeamsV2Config": {
"properties": {
"http_config": {
"$ref": "#/definitions/HTTPClientConfig"
},
"send_resolved": {
"type": "boolean"
},
"text": {
"type": "string"
},
"title": {
"type": "string"
},
"webhook_url": {
"$ref": "#/definitions/SecretURL"
},
"webhook_url_file": {
"type": "string"
}
},
"type": "object"
},
"MatchRegexps": {
"additionalProperties": {
"type": "string"
@@ -2803,6 +2858,12 @@
},
"type": "array"
},
"msteamsv2_configs": {
"items": {
"$ref": "#/definitions/MSTeamsV2Config"
},
"type": "array"
},
"name": {
"description": "A unique identifier for this receiver.",
"type": "string"
@@ -3557,6 +3618,12 @@
},
"type": "array"
},
"msteamsv2_configs": {
"items": {
"$ref": "#/definitions/MSTeamsV2Config"
},
"type": "array"
},
"name": {
"description": "A unique identifier for this receiver.",
"type": "string"
@@ -3643,6 +3710,26 @@
"title": "ReceiverExport is the provisioned file export of alerting.ReceiverV1.",
"type": "object"
},
"ReceiverStatus": {
"properties": {
"active": {
"description": "Whether the receiver is used in a route or not.",
"type": "boolean"
},
"integrations": {
"description": "Integrations configured for this receiver.",
"items": {
"$ref": "#/definitions/IntegrationStatus"
},
"type": "array"
},
"name": {
"description": "Name of the receiver.",
"type": "string"
}
},
"type": "object"
},
"Record": {
"properties": {
"from": {
@@ -7314,7 +7401,7 @@
"description": "",
"schema": {
"items": {
"$ref": "#/definitions/Receiver"
"$ref": "#/definitions/ReceiverStatus"
},
"type": "array"
}
@@ -377,10 +377,89 @@ type GetGrafanaRuleStatusesParams struct {
// Filter the list of rules to those that belong to the specified dashboard UID.
// in: query
// required: false
DashboardUID string
DashboardUID string `json:"dashboard_uid"`
// Filter the list of rules to those that belong to the specified panel ID. Dashboard UID must be specified.
// in: query
// required: false
PanelID int64
PanelID int64 `json:"panel_id"`
// Filter the list of rules to those that belong to the specified folder UID.
// in: query
// required: false
FolderUID string `json:"folder_uid"`
// Filter the list of rules to those that belong to the specified rule group(s). Can be specified multiple times.
// in: query
// required: false
RuleGroup []string `json:"rule_group"`
// Filter the list of rules to those that reference the specified receiver/contact point.
// in: query
// required: false
ReceiverName string `json:"receiver_name"`
// Search rules by title (case insensitive substring match).
// in: query
// required: false
SearchRuleName string `json:"search.rule_name"`
// Search rules by rule group name (case insensitive substring match).
// in: query
// required: false
SearchRuleGroup string `json:"search.rule_group"`
// Filter the list of rules to those whose titles exactly match the specified values. Can be specified multiple times.
// in: query
// required: false
RuleName []string `json:"rule_name"`
// Filter by rule type: "alerting" or "recording".
// in: query
// required: false
RuleType string `json:"rule_type"`
// Filter by alert state: "normal" (or "inactive"), "pending", "alerting" (or "firing"), "nodata", "error", "recovering".
// in: query
// required: false
State []string `json:"state"`
// Filter by rule health: "ok", "error", "nodata".
// in: query
// required: false
Health []string `json:"health"`
// Limit the number of alert instances per rule.
// in: query
// required: false
// default: -1
LimitAlerts int64 `json:"limit_alerts"`
// Limit the number of rules per group.
// in: query
// required: false
// default: -1
LimitRules int64 `json:"limit_rules"`
// Limit the number of rule groups returned.
// in: query
// required: false
// default: -1
GroupLimit int64 `json:"group_limit"`
// Limit the total number of rules returned across all groups. Returns complete groups until the limit is met or exceeded.
// in: query
// required: false
// default: -1
RuleLimit int64 `json:"rule_limit"`
// Continuation token for pagination. Use the value returned in the previous response's "groupNextToken" field.
// in: query
// required: false
GroupNextToken string `json:"group_next_token"`
// Filter by label matchers encoded as JSON representations of Prometheus matchers (for example, {"type":0,"name":"severity","value":"critical"}). Provide one matcher per query string value.
// in: query
// required: false
Matchers []string `json:"matcher"`
}
+203 -3
View File
@@ -1530,6 +1530,12 @@
},
"type": "array"
},
"msteamsv2_configs": {
"items": {
"$ref": "#/definitions/MSTeamsV2Config"
},
"type": "array"
},
"name": {
"description": "A unique identifier for this receiver.",
"type": "string"
@@ -2114,6 +2120,32 @@
"title": "InspectType is a type for the Inspect property of a Notice.",
"type": "integer"
},
"IntegrationStatus": {
"properties": {
"lastNotifyAttempt": {
"description": "A timestamp indicating the last attempt to deliver a notification regardless of the outcome.\nFormat: date-time",
"format": "date-time",
"type": "string"
},
"lastNotifyAttemptDuration": {
"description": "Duration of the last attempt to deliver a notification in humanized format (`1s` or `15ms`, etc).",
"type": "string"
},
"lastNotifyAttemptError": {
"description": "Error string for the last attempt to deliver a notification. Empty if the last attempt was successful.",
"type": "string"
},
"name": {
"description": "Name of the integration.",
"type": "string"
},
"sendResolved": {
"description": "Whether the integration is configured to send resolved notifications.",
"type": "boolean"
}
},
"type": "object"
},
"InternalDataLink": {
"description": "InternalDataLink definition to allow Explore links to be constructed in the backend",
"properties": {
@@ -2263,6 +2295,29 @@
},
"type": "object"
},
"MSTeamsV2Config": {
"properties": {
"http_config": {
"$ref": "#/definitions/HTTPClientConfig"
},
"send_resolved": {
"type": "boolean"
},
"text": {
"type": "string"
},
"title": {
"type": "string"
},
"webhook_url": {
"$ref": "#/definitions/SecretURL"
},
"webhook_url_file": {
"type": "string"
}
},
"type": "object"
},
"MatchRegexps": {
"additionalProperties": {
"type": "string"
@@ -2803,6 +2858,12 @@
},
"type": "array"
},
"msteamsv2_configs": {
"items": {
"$ref": "#/definitions/MSTeamsV2Config"
},
"type": "array"
},
"name": {
"description": "A unique identifier for this receiver.",
"type": "string"
@@ -3557,6 +3618,12 @@
},
"type": "array"
},
"msteamsv2_configs": {
"items": {
"$ref": "#/definitions/MSTeamsV2Config"
},
"type": "array"
},
"name": {
"description": "A unique identifier for this receiver.",
"type": "string"
@@ -3643,6 +3710,26 @@
"title": "ReceiverExport is the provisioned file export of alerting.ReceiverV1.",
"type": "object"
},
"ReceiverStatus": {
"properties": {
"active": {
"description": "Whether the receiver is used in a route or not.",
"type": "boolean"
},
"integrations": {
"description": "Integrations configured for this receiver.",
"items": {
"$ref": "#/definitions/IntegrationStatus"
},
"type": "array"
},
"name": {
"description": "Name of the receiver.",
"type": "string"
}
},
"type": "object"
},
"Record": {
"properties": {
"from": {
@@ -7314,15 +7401,128 @@
{
"description": "Filter the list of rules to those that belong to the specified dashboard UID.",
"in": "query",
"name": "DashboardUID",
"name": "dashboard_uid",
"type": "string"
},
{
"description": "Filter the list of rules to those that belong to the specified panel ID. Dashboard UID must be specified.",
"format": "int64",
"in": "query",
"name": "PanelID",
"name": "panel_id",
"type": "integer"
},
{
"description": "Filter the list of rules to those that belong to the specified folder UID.",
"in": "query",
"name": "folder_uid",
"type": "string"
},
{
"description": "Filter the list of rules to those that belong to the specified rule group(s). Can be specified multiple times.",
"in": "query",
"items": {
"type": "string"
},
"name": "rule_group",
"type": "array"
},
{
"description": "Filter the list of rules to those that reference the specified receiver/contact point.",
"in": "query",
"name": "receiver_name",
"type": "string"
},
{
"description": "Search rules by title (case insensitive substring match).",
"in": "query",
"name": "search.rule_name",
"type": "string"
},
{
"description": "Search rules by rule group name (case insensitive substring match).",
"in": "query",
"name": "search.rule_group",
"type": "string"
},
{
"description": "Filter the list of rules to those whose titles exactly match the specified values. Can be specified multiple times.",
"in": "query",
"items": {
"type": "string"
},
"name": "rule_name",
"type": "array"
},
{
"description": "Filter by rule type: \"alerting\" or \"recording\".",
"in": "query",
"name": "rule_type",
"type": "string"
},
{
"description": "Filter by alert state: \"normal\" (or \"inactive\"), \"pending\", \"alerting\" (or \"firing\"), \"nodata\", \"error\", \"recovering\".",
"in": "query",
"items": {
"type": "string"
},
"name": "state",
"type": "array"
},
{
"description": "Filter by rule health: \"ok\", \"error\", \"nodata\".",
"in": "query",
"items": {
"type": "string"
},
"name": "health",
"type": "array"
},
{
"default": -1,
"description": "Limit the number of alert instances per rule.",
"format": "int64",
"in": "query",
"name": "limit_alerts",
"type": "integer"
},
{
"default": -1,
"description": "Limit the number of rules per group.",
"format": "int64",
"in": "query",
"name": "limit_rules",
"type": "integer"
},
{
"default": -1,
"description": "Limit the number of rule groups returned.",
"format": "int64",
"in": "query",
"name": "group_limit",
"type": "integer"
},
{
"default": -1,
"description": "Limit the total number of rules returned across all groups. Returns complete groups until the limit is met or exceeded.",
"format": "int64",
"in": "query",
"name": "rule_limit",
"type": "integer"
},
{
"description": "Continuation token for pagination. Use the value returned in the previous response's \"groupNextToken\" field.",
"in": "query",
"name": "group_next_token",
"type": "string"
},
{
"description": "Filter by label matchers encoded as JSON representations of Prometheus matchers (for example, {\"type\":0,\"name\":\"severity\",\"value\":\"critical\"}). Provide one matcher per query string value.",
"in": "query",
"items": {
"type": "string"
},
"name": "matcher",
"type": "array"
}
],
"responses": {
@@ -9798,7 +9998,7 @@
"description": "",
"schema": {
"items": {
"$ref": "#/definitions/Receiver"
"$ref": "#/definitions/ReceiverStatus"
},
"type": "array"
}
+203 -3
View File
@@ -1825,14 +1825,127 @@
{
"type": "string",
"description": "Filter the list of rules to those that belong to the specified dashboard UID.",
"name": "DashboardUID",
"name": "dashboard_uid",
"in": "query"
},
{
"type": "integer",
"format": "int64",
"description": "Filter the list of rules to those that belong to the specified panel ID. Dashboard UID must be specified.",
"name": "PanelID",
"name": "panel_id",
"in": "query"
},
{
"type": "string",
"description": "Filter the list of rules to those that belong to the specified folder UID.",
"name": "folder_uid",
"in": "query"
},
{
"type": "array",
"items": {
"type": "string"
},
"description": "Filter the list of rules to those that belong to the specified rule group(s). Can be specified multiple times.",
"name": "rule_group",
"in": "query"
},
{
"type": "string",
"description": "Filter the list of rules to those that reference the specified receiver/contact point.",
"name": "receiver_name",
"in": "query"
},
{
"type": "string",
"description": "Search rules by title (case insensitive substring match).",
"name": "search.rule_name",
"in": "query"
},
{
"type": "string",
"description": "Search rules by rule group name (case insensitive substring match).",
"name": "search.rule_group",
"in": "query"
},
{
"type": "array",
"items": {
"type": "string"
},
"description": "Filter the list of rules to those whose titles exactly match the specified values. Can be specified multiple times.",
"name": "rule_name",
"in": "query"
},
{
"type": "string",
"description": "Filter by rule type: \"alerting\" or \"recording\".",
"name": "rule_type",
"in": "query"
},
{
"type": "array",
"items": {
"type": "string"
},
"description": "Filter by alert state: \"normal\" (or \"inactive\"), \"pending\", \"alerting\" (or \"firing\"), \"nodata\", \"error\", \"recovering\".",
"name": "state",
"in": "query"
},
{
"type": "array",
"items": {
"type": "string"
},
"description": "Filter by rule health: \"ok\", \"error\", \"nodata\".",
"name": "health",
"in": "query"
},
{
"type": "integer",
"format": "int64",
"default": -1,
"description": "Limit the number of alert instances per rule.",
"name": "limit_alerts",
"in": "query"
},
{
"type": "integer",
"format": "int64",
"default": -1,
"description": "Limit the number of rules per group.",
"name": "limit_rules",
"in": "query"
},
{
"type": "integer",
"format": "int64",
"default": -1,
"description": "Limit the number of rule groups returned.",
"name": "group_limit",
"in": "query"
},
{
"type": "integer",
"format": "int64",
"default": -1,
"description": "Limit the total number of rules returned across all groups. Returns complete groups until the limit is met or exceeded.",
"name": "rule_limit",
"in": "query"
},
{
"type": "string",
"description": "Continuation token for pagination. Use the value returned in the previous response's \"groupNextToken\" field.",
"name": "group_next_token",
"in": "query"
},
{
"type": "array",
"items": {
"type": "string"
},
"description": "Filter by label matchers encoded as JSON representations of Prometheus matchers (for example, {\"type\":0,\"name\":\"severity\",\"value\":\"critical\"}). Provide one matcher per query string value.",
"name": "matcher",
"in": "query"
}
],
@@ -5834,6 +5947,12 @@
"$ref": "#/definitions/MSTeamsConfig"
}
},
"msteamsv2_configs": {
"type": "array",
"items": {
"$ref": "#/definitions/MSTeamsV2Config"
}
},
"name": {
"description": "A unique identifier for this receiver.",
"type": "string"
@@ -6417,6 +6536,32 @@
"format": "int64",
"title": "InspectType is a type for the Inspect property of a Notice."
},
"IntegrationStatus": {
"type": "object",
"properties": {
"lastNotifyAttempt": {
"description": "A timestamp indicating the last attempt to deliver a notification regardless of the outcome.\nFormat: date-time",
"type": "string",
"format": "date-time"
},
"lastNotifyAttemptDuration": {
"description": "Duration of the last attempt to deliver a notification in humanized format (`1s` or `15ms`, etc).",
"type": "string"
},
"lastNotifyAttemptError": {
"description": "Error string for the last attempt to deliver a notification. Empty if the last attempt was successful.",
"type": "string"
},
"name": {
"description": "Name of the integration.",
"type": "string"
},
"sendResolved": {
"description": "Whether the integration is configured to send resolved notifications.",
"type": "boolean"
}
}
},
"InternalDataLink": {
"description": "InternalDataLink definition to allow Explore links to be constructed in the backend",
"type": "object",
@@ -6566,6 +6711,29 @@
}
}
},
"MSTeamsV2Config": {
"type": "object",
"properties": {
"http_config": {
"$ref": "#/definitions/HTTPClientConfig"
},
"send_resolved": {
"type": "boolean"
},
"text": {
"type": "string"
},
"title": {
"type": "string"
},
"webhook_url": {
"$ref": "#/definitions/SecretURL"
},
"webhook_url_file": {
"type": "string"
}
}
},
"MatchRegexps": {
"type": "object",
"title": "MatchRegexps represents a map of Regexp.",
@@ -7108,6 +7276,12 @@
"$ref": "#/definitions/MSTeamsConfig"
}
},
"msteamsv2_configs": {
"type": "array",
"items": {
"$ref": "#/definitions/MSTeamsV2Config"
}
},
"name": {
"description": "A unique identifier for this receiver.",
"type": "string"
@@ -7863,6 +8037,12 @@
"$ref": "#/definitions/MSTeamsConfig"
}
},
"msteamsv2_configs": {
"type": "array",
"items": {
"$ref": "#/definitions/MSTeamsV2Config"
}
},
"name": {
"description": "A unique identifier for this receiver.",
"type": "string"
@@ -7947,6 +8127,26 @@
}
}
},
"ReceiverStatus": {
"type": "object",
"properties": {
"active": {
"description": "Whether the receiver is used in a route or not.",
"type": "boolean"
},
"integrations": {
"description": "Integrations configured for this receiver.",
"type": "array",
"items": {
"$ref": "#/definitions/IntegrationStatus"
}
},
"name": {
"description": "Name of the receiver.",
"type": "string"
}
}
},
"Record": {
"type": "object",
"required": [
@@ -9851,7 +10051,7 @@
"schema": {
"type": "array",
"items": {
"$ref": "#/definitions/Receiver"
"$ref": "#/definitions/ReceiverStatus"
}
}
}
+88 -1
View File
@@ -16543,6 +16543,12 @@
"$ref": "#/definitions/MSTeamsConfig"
}
},
"msteamsv2_configs": {
"type": "array",
"items": {
"$ref": "#/definitions/MSTeamsV2Config"
}
},
"name": {
"description": "A unique identifier for this receiver.",
"type": "string"
@@ -17352,6 +17358,32 @@
"format": "int64",
"title": "InspectType is a type for the Inspect property of a Notice."
},
"IntegrationStatus": {
"type": "object",
"properties": {
"lastNotifyAttempt": {
"description": "A timestamp indicating the last attempt to deliver a notification regardless of the outcome.\nFormat: date-time",
"type": "string",
"format": "date-time"
},
"lastNotifyAttemptDuration": {
"description": "Duration of the last attempt to deliver a notification in humanized format (`1s` or `15ms`, etc).",
"type": "string"
},
"lastNotifyAttemptError": {
"description": "Error string for the last attempt to deliver a notification. Empty if the last attempt was successful.",
"type": "string"
},
"name": {
"description": "Name of the integration.",
"type": "string"
},
"sendResolved": {
"description": "Whether the integration is configured to send resolved notifications.",
"type": "boolean"
}
}
},
"InternalDataLink": {
"description": "InternalDataLink definition to allow Explore links to be constructed in the backend",
"type": "object",
@@ -17749,6 +17781,29 @@
}
}
},
"MSTeamsV2Config": {
"type": "object",
"properties": {
"http_config": {
"$ref": "#/definitions/HTTPClientConfig"
},
"send_resolved": {
"type": "boolean"
},
"text": {
"type": "string"
},
"title": {
"type": "string"
},
"webhook_url": {
"$ref": "#/definitions/SecretURL"
},
"webhook_url_file": {
"type": "string"
}
}
},
"ManagerKind": {
"description": "It can be a user or a tool or a generic API client.\n+enum",
"type": "string",
@@ -18972,6 +19027,12 @@
"$ref": "#/definitions/MSTeamsConfig"
}
},
"msteamsv2_configs": {
"type": "array",
"items": {
"$ref": "#/definitions/MSTeamsV2Config"
}
},
"name": {
"description": "A unique identifier for this receiver.",
"type": "string"
@@ -20055,6 +20116,12 @@
"$ref": "#/definitions/MSTeamsConfig"
}
},
"msteamsv2_configs": {
"type": "array",
"items": {
"$ref": "#/definitions/MSTeamsV2Config"
}
},
"name": {
"description": "A unique identifier for this receiver.",
"type": "string"
@@ -20139,6 +20206,26 @@
}
}
},
"ReceiverStatus": {
"type": "object",
"properties": {
"active": {
"description": "Whether the receiver is used in a route or not.",
"type": "boolean"
},
"integrations": {
"description": "Integrations configured for this receiver.",
"type": "array",
"items": {
"$ref": "#/definitions/IntegrationStatus"
}
},
"name": {
"description": "Name of the receiver.",
"type": "string"
}
}
},
"Record": {
"type": "object",
"required": [
@@ -25508,7 +25595,7 @@
"schema": {
"type": "array",
"items": {
"$ref": "#/definitions/Receiver"
"$ref": "#/definitions/ReceiverStatus"
}
}
},
+88 -1
View File
@@ -1757,7 +1757,7 @@
"application/json": {
"schema": {
"items": {
"$ref": "#/components/schemas/Receiver"
"$ref": "#/components/schemas/ReceiverStatus"
},
"type": "array"
}
@@ -6030,6 +6030,12 @@
},
"type": "array"
},
"msteamsv2_configs": {
"items": {
"$ref": "#/components/schemas/MSTeamsV2Config"
},
"type": "array"
},
"name": {
"description": "A unique identifier for this receiver.",
"type": "string"
@@ -6840,6 +6846,32 @@
"title": "InspectType is a type for the Inspect property of a Notice.",
"type": "integer"
},
"IntegrationStatus": {
"properties": {
"lastNotifyAttempt": {
"description": "A timestamp indicating the last attempt to deliver a notification regardless of the outcome.\nFormat: date-time",
"format": "date-time",
"type": "string"
},
"lastNotifyAttemptDuration": {
"description": "Duration of the last attempt to deliver a notification in humanized format (`1s` or `15ms`, etc).",
"type": "string"
},
"lastNotifyAttemptError": {
"description": "Error string for the last attempt to deliver a notification. Empty if the last attempt was successful.",
"type": "string"
},
"name": {
"description": "Name of the integration.",
"type": "string"
},
"sendResolved": {
"description": "Whether the integration is configured to send resolved notifications.",
"type": "boolean"
}
},
"type": "object"
},
"InternalDataLink": {
"description": "InternalDataLink definition to allow Explore links to be constructed in the backend",
"properties": {
@@ -7237,6 +7269,29 @@
},
"type": "object"
},
"MSTeamsV2Config": {
"properties": {
"http_config": {
"$ref": "#/components/schemas/HTTPClientConfig"
},
"send_resolved": {
"type": "boolean"
},
"text": {
"type": "string"
},
"title": {
"type": "string"
},
"webhook_url": {
"$ref": "#/components/schemas/SecretURL"
},
"webhook_url_file": {
"type": "string"
}
},
"type": "object"
},
"ManagerKind": {
"description": "It can be a user or a tool or a generic API client.\n+enum",
"title": "ManagerKind is the type of manager, which is responsible for managing the resource.",
@@ -8459,6 +8514,12 @@
},
"type": "array"
},
"msteamsv2_configs": {
"items": {
"$ref": "#/components/schemas/MSTeamsV2Config"
},
"type": "array"
},
"name": {
"description": "A unique identifier for this receiver.",
"type": "string"
@@ -9541,6 +9602,12 @@
},
"type": "array"
},
"msteamsv2_configs": {
"items": {
"$ref": "#/components/schemas/MSTeamsV2Config"
},
"type": "array"
},
"name": {
"description": "A unique identifier for this receiver.",
"type": "string"
@@ -9627,6 +9694,26 @@
"title": "ReceiverExport is the provisioned file export of alerting.ReceiverV1.",
"type": "object"
},
"ReceiverStatus": {
"properties": {
"active": {
"description": "Whether the receiver is used in a route or not.",
"type": "boolean"
},
"integrations": {
"description": "Integrations configured for this receiver.",
"items": {
"$ref": "#/components/schemas/IntegrationStatus"
},
"type": "array"
},
"name": {
"description": "Name of the receiver.",
"type": "string"
}
},
"type": "object"
},
"Record": {
"properties": {
"from": {