diff --git a/go.mod b/go.mod index 5dc2318..fb3bcf3 100644 --- a/go.mod +++ b/go.mod @@ -3,7 +3,7 @@ module github.com/flashcatcloud/flashduty-cli go 1.25.1 require ( - github.com/flashcatcloud/go-flashduty v0.5.4-0.20260629061431-9893dd15a9d9 + github.com/flashcatcloud/go-flashduty v0.5.4 github.com/mattn/go-runewidth v0.0.24 github.com/spf13/cobra v1.10.2 github.com/spf13/pflag v1.0.10 diff --git a/go.sum b/go.sum index d9cc3a5..a5006eb 100644 --- a/go.sum +++ b/go.sum @@ -1,8 +1,8 @@ github.com/clipperhouse/uax29/v2 v2.2.0 h1:ChwIKnQN3kcZteTXMgb1wztSgaU+ZemkgWdohwgs8tY= github.com/clipperhouse/uax29/v2 v2.2.0/go.mod h1:EFJ2TJMRUaplDxHKj1qAEhCtQPW2tJSwu5BF98AuoVM= github.com/cpuguy83/go-md2man/v2 v2.0.6/go.mod h1:oOW0eioCTA6cOiMLiUPZOpcVxMig6NIQQ7OS05n1F4g= -github.com/flashcatcloud/go-flashduty v0.5.4-0.20260629061431-9893dd15a9d9 h1:LU6lRPXRSCQ/dTIHbg3ctTqC13mdTDQMgXRja1lN+/g= -github.com/flashcatcloud/go-flashduty v0.5.4-0.20260629061431-9893dd15a9d9/go.mod h1:aA0RtZEs0AYOwwdNKdtVeD8YMOdnmVY1zAlVD+9Ovx8= +github.com/flashcatcloud/go-flashduty v0.5.4 h1:rCVaB88wrBJWYb8B63bZtjcnojiNDuH0d7GuIYnheq0= +github.com/flashcatcloud/go-flashduty v0.5.4/go.mod h1:aA0RtZEs0AYOwwdNKdtVeD8YMOdnmVY1zAlVD+9Ovx8= github.com/inconshreveable/mousetrap v1.1.0 h1:wN+x4NVGpMsO7ErUn/mUI3vEoE6Jt13X2s0bqwp9tc8= github.com/inconshreveable/mousetrap v1.1.0/go.mod h1:vpF70FUmC8bwa3OWnCshd2FqLfsEA9PFc4w1p2J65bw= github.com/mattn/go-runewidth v0.0.24 h1:cpokDiIn0MGnhdHwuWnJBITySJ20QyNGnY2kR/ay2DU= diff --git a/internal/cli/zz_generated_alerts.go b/internal/cli/zz_generated_alerts.go index 42821d8..a7592b9 100644 --- a/internal/cli/zz_generated_alerts.go +++ b/internal/cli/zz_generated_alerts.go @@ -150,21 +150,30 @@ Response fields ('data' envelope is unwrapped — rows are nested under items[]; func genAlertsReadEventListCmd() *cobra.Command { var dataJSON string + var fP int64 + var fLimit int64 + var fSearchAfterCtx string var fAlertID string + var fAsc bool cmd := &cobra.Command{ Use: "event-list ", Short: "List events for an alert", Long: `List events for an alert. -Return all raw events that have been ingested into a specific alert, in chronological order. +Return raw events for an alert with cursor or page-number pagination. API: POST /alert/event/list (alert-read-event-list) Request fields: - --alert-id string (required) — Alert ID (ObjectID hex string). + --page int — Page number starting at 1. Used when 'search_after_ctx' is omitted. (min 0) + --limit int — Page size. Defaults to 20 and cannot exceed 100. (0-100) + --search-after-ctx string — Cursor returned by the previous page. When supplied, cursor pagination is used instead of page-number pagination. + --alert-id string (required) — Alert ID (MongoDB ObjectID). + --asc bool — When true, return events oldest-first. Defaults to newest-first. Response fields ('data' envelope is unwrapped — rows are nested under items[]; pipe 'jq '.items[]'', NOT '.data.items[]'): - - items (array) + - has_next_page (boolean) (required) — Whether another page is available. + - items (array) (required) — Raw alert events in the requested order. - account_id (integer) — Account ID. - alert_id (string) — Parent alert ID (MongoDB ObjectID). - alert_key (string) — Deduplication key used to merge events into an alert. @@ -187,18 +196,32 @@ Response fields ('data' envelope is unwrapped — rows are nested under items[]; - title (string) — Event title. - title_rule (string) — Title template used to derive 'title' from labels. - updated_at (integer) — Record update time, Unix epoch seconds. + - search_after_ctx (string) — Cursor to pass as 'search_after_ctx' for the next page. + - total (integer) (required) — Total matching event count. `, Args: requireExactArg("alert_id"), - Example: ` flashduty alert event-list --data '{"alert_id":"663a1b2c3d4e5f6789abcdef"}'`, + Example: ` flashduty alert event-list --data '{"alert_id":"663a1b2c3d4e5f6789abcdef","limit":20}'`, RunE: func(cmd *cobra.Command, args []string) error { return runCommand(cmd, args, func(ctx *RunContext) error { body, err := genAssembleBody(dataJSON, func(body map[string]any) error { if err := genFoldPositional(args, body, "alert_id", "string"); err != nil { return err } + if cmd.Flags().Changed("page") { + body["p"] = fP + } + if cmd.Flags().Changed("limit") { + body["limit"] = fLimit + } + if cmd.Flags().Changed("search-after-ctx") { + body["search_after_ctx"] = fSearchAfterCtx + } if cmd.Flags().Changed("alert-id") { body["alert_id"] = fAlertID } + if cmd.Flags().Changed("asc") { + body["asc"] = fAsc + } return nil }) if err != nil { @@ -216,7 +239,11 @@ Response fields ('data' envelope is unwrapped — rows are nested under items[]; }) }, } - cmd.Flags().StringVar(&fAlertID, "alert-id", "", "Alert ID (ObjectID hex string). (required)") + cmd.Flags().Int64Var(&fP, "page", 0, "Page number starting at 1. Used when 'search_after_ctx' is omitted. (min 0)") + cmd.Flags().Int64Var(&fLimit, "limit", 0, "Page size. Defaults to 20 and cannot exceed 100. (0-100)") + cmd.Flags().StringVar(&fSearchAfterCtx, "search-after-ctx", "", "Cursor returned by the previous page. When supplied, cursor pagination is used instead of page-number pagination.") + cmd.Flags().StringVar(&fAlertID, "alert-id", "", "Alert ID (MongoDB ObjectID). (required)") + cmd.Flags().BoolVar(&fAsc, "asc", false, "When true, return events oldest-first. Defaults to newest-first.") cmd.Flags().StringVar(&dataJSON, "data", "", "Full request body as JSON; positional arguments and typed flags override its fields. Accepts inline JSON, or - to read stdin.") return cmd } diff --git a/internal/cli/zz_generated_applications.go b/internal/cli/zz_generated_applications.go index f84591a..316e734 100644 --- a/internal/cli/zz_generated_applications.go +++ b/internal/cli/zz_generated_applications.go @@ -35,6 +35,9 @@ Response fields ('data' envelope is unwrapped — these fields are at the top le - created_at (integer) — Creation timestamp, Unix epoch seconds. - created_by (integer) — Creator member ID. - is_private (boolean) — If 'true', the application is only accessible to team members. + - links (object) — External link integration settings for the application. + - enabled (boolean) — Whether external link integration is enabled. + - systems (any) — External systems whose URL templates can be opened from matching RUM events. - no_geo (boolean) — If 'true', geographic location is not inferred from IP. - no_ip (boolean) — If 'true', IP addresses are not collected. - status (string) — Application status. [enabled, disabled, deleted] @@ -108,6 +111,9 @@ Response fields ('data' envelope is unwrapped — rows are nested under items[]; - created_at (integer) — Creation timestamp, Unix epoch seconds. - created_by (integer) — Creator member ID. - is_private (boolean) — If 'true', the application is only accessible to team members. + - links (object) — External link integration settings for the application. + - enabled (boolean) — Whether external link integration is enabled. + - systems (any) — External systems whose URL templates can be opened from matching RUM events. - no_geo (boolean) — If 'true', geographic location is not inferred from IP. - no_ip (boolean) — If 'true', IP addresses are not collected. - status (string) — Application status. [enabled, disabled, deleted] @@ -196,6 +202,9 @@ Response fields ('data' envelope is unwrapped — rows are nested under items[]; - created_at (integer) — Creation timestamp, Unix epoch seconds. - created_by (integer) — Creator member ID. - is_private (boolean) — If 'true', the application is only accessible to team members. + - links (object) — External link integration settings for the application. + - enabled (boolean) — Whether external link integration is enabled. + - systems (any) — External systems whose URL templates can be opened from matching RUM events. - no_geo (boolean) — If 'true', geographic location is not inferred from IP. - no_ip (boolean) — If 'true', IP addresses are not collected. - status (string) — Application status. [enabled, disabled, deleted] @@ -353,6 +362,9 @@ Request fields: - channel_ids (array) — Channel IDs to send alerts to. - enabled (boolean) — Whether alerting is enabled. - integration_id (integer) — Associated on-call integration ID (read-only, auto-assigned). + links (object, via --data) — External link integration settings for the application. + - enabled (boolean) — Whether external link integration is enabled. + - systems (any) — External systems whose URL templates can be opened from matching RUM events. tracing (object, via --data) — APM tracing integration settings. - enabled (boolean) — Whether tracing integration is enabled. - endpoint (string) — Trace endpoint URL (http or https). @@ -364,7 +376,7 @@ Response fields ('data' envelope is unwrapped — these fields are at the top le - client_token (string) — Token for RUM SDK initialization. `, Args: requireExactArg("team_id"), - Example: ` flashduty rum application-create --data '{"application_name":"My Web App","is_private":false,"team_id":2477033058131,"type":"browser"}'`, + Example: ` flashduty rum application-create --data '{"application_name":"My Web App","is_private":false,"links":{"enabled":true,"systems":[{"enabled":true,"event_types":["crash","error"],"icon_color":"#0F766E","icon_text":"S3","id":"s3-crash-logs","name":"S3 Crash Logs","url":"https://s3.example.com/logs?app=${application_id}\u0026trace=${trace_id}"}]},"team_id":2477033058131,"type":"browser"}'`, RunE: func(cmd *cobra.Command, args []string) error { return runCommand(cmd, args, func(ctx *RunContext) error { body, err := genAssembleBody(dataJSON, func(body map[string]any) error { @@ -498,13 +510,16 @@ Request fields: - channel_ids (array) — Channel IDs to send alerts to. - enabled (boolean) — Whether alerting is enabled. - integration_id (integer) — Associated on-call integration ID (read-only, auto-assigned). + links (object, via --data) — External link integration settings for the application. + - enabled (boolean) — Whether external link integration is enabled. + - systems (any) — External systems whose URL templates can be opened from matching RUM events. tracing (object, via --data) — APM tracing integration settings. - enabled (boolean) — Whether tracing integration is enabled. - endpoint (string) — Trace endpoint URL (http or https). - open_type (string) — How to open the trace link. [popup, tab] `, Args: requireExactArg("application_id"), - Example: ` flashduty rum application-update --data '{"alerting":{"channel_ids":[2490121812131],"enabled":true},"application_id":"WoyQQ3BohkdtPivubEvE8o","application_name":"My Web App v2"}'`, + Example: ` flashduty rum application-update --data '{"alerting":{"channel_ids":[2490121812131],"enabled":true},"application_id":"WoyQQ3BohkdtPivubEvE8o","application_name":"My Web App v2","links":{"enabled":true,"systems":[{"enabled":true,"event_types":["crash","error"],"icon_color":"#0F766E","icon_text":"S3","id":"s3-crash-logs","name":"S3 Crash Logs","url":"https://s3.example.com/logs?app=${application_id}\u0026trace=${trace_id}"}]}}'`, RunE: func(cmd *cobra.Command, args []string) error { return runCommand(cmd, args, func(ctx *RunContext) error { body, err := genAssembleBody(dataJSON, func(body map[string]any) error { diff --git a/internal/cli/zz_generated_data_query.go b/internal/cli/zz_generated_data_query.go new file mode 100644 index 0000000..12bd24c --- /dev/null +++ b/internal/cli/zz_generated_data_query.go @@ -0,0 +1,74 @@ +// Code generated by internal/cmd/cligen; DO NOT EDIT. + +package cli + +import ( + "github.com/spf13/cobra" + + flashduty "github.com/flashcatcloud/go-flashduty" +) + +func genDataQueryQueryCmd() *cobra.Command { + var dataJSON string + var fEndTime int64 + var fStartTime int64 + cmd := &cobra.Command{ + Use: "data-query", + Short: "Query RUM data", + Long: `Query RUM data. + +Run one or more SQL-style RUM data queries over a bounded time range. + +API: POST /rum/data/query (rum-read-data-query) + +Request fields: + --end-time int (required) — End of the query window, Unix epoch milliseconds. Maximum 31-day span. + --start-time int (required) — Start of the query window, Unix epoch milliseconds. + queries (array, via --data) (required) — Queries to execute concurrently. 1 to 10 queries are allowed. + - disable_sampling (boolean) — When true, asks the query engine to avoid sampling when possible. + - dql (string) — Optional RUM DQL filter expression used together with SQL validation. + - format (string) (required) — Output format. 'table' returns rows; 'time_series' returns bucketed time-series rows. [time_series, table] + - id (string) (required) — Client-supplied query ID. The same value is used as the key in the response object. (≤64 chars) + - interval (integer) — Time bucket interval in seconds for 'time_series' queries. + - max_points (integer) — Maximum number of points for 'time_series' queries. + - search_after_ctx (string) — Opaque cursor returned by a previous table query for continuing pagination. + - sql (string) (required) — RUM SQL query to execute. + - time_zone (string) — IANA time zone name used when evaluating time functions, such as 'Asia/Shanghai'. +`, + Example: ` flashduty rum data-query --data '{"end_time":1712707200000,"queries":[{"format":"table","id":"errors_by_type","sql":"SELECT error.type, count(*) AS errors FROM error GROUP BY error.type ORDER BY errors DESC LIMIT 10","time_zone":"Asia/Shanghai"}],"start_time":1712620800000}'`, + RunE: func(cmd *cobra.Command, args []string) error { + return runCommand(cmd, args, func(ctx *RunContext) error { + body, err := genAssembleBody(dataJSON, func(body map[string]any) error { + if cmd.Flags().Changed("end-time") { + body["end_time"] = fEndTime + } + if cmd.Flags().Changed("start-time") { + body["start_time"] = fStartTime + } + return nil + }) + if err != nil { + return err + } + req := new(flashduty.RUMDataQueryRequest) + if err := genBindBody(body, req); err != nil { + return err + } + out, _, err := ctx.Client.DataQuery.Query(cmdContext(ctx.Cmd), req) + if err != nil { + return err + } + return printGenericResult(ctx, out) + }) + }, + } + cmd.Flags().Int64Var(&fEndTime, "end-time", 0, "End of the query window, Unix epoch milliseconds. Maximum 31-day span. (required)") + cmd.Flags().Int64Var(&fStartTime, "start-time", 0, "Start of the query window, Unix epoch milliseconds. (required)") + cmd.Flags().StringVar(&dataJSON, "data", "", "Full request body as JSON; positional arguments and typed flags override its fields. Accepts inline JSON, or - to read stdin.") + return cmd +} + +func registerGeneratedDataQuery(root *cobra.Command) { + gRUM := genGroup(root, "rum", "RUM API") + genAddLeaf(gRUM, genDataQueryQueryCmd()) +} diff --git a/internal/cli/zz_generated_facets.go b/internal/cli/zz_generated_facets.go new file mode 100644 index 0000000..13c42d8 --- /dev/null +++ b/internal/cli/zz_generated_facets.go @@ -0,0 +1,238 @@ +// Code generated by internal/cmd/cligen; DO NOT EDIT. + +package cli + +import ( + "github.com/spf13/cobra" + + flashduty "github.com/flashcatcloud/go-flashduty" +) + +func genFacetsFacetCountCmd() *cobra.Command { + var dataJSON string + var fDql string + var fEndTime int64 + var fFacetKey string + var fLimit int64 + var fScope string + var fSql string + var fStartTime int64 + cmd := &cobra.Command{ + Use: "facet-count", + Short: "Count facet value distribution", + Long: `Count facet value distribution. + +Return the top N values for a facet field within a time range, sorted by occurrence count descending. + +API: POST /rum/facet/count (rum-read-facet-count) + +Request fields: + --dql string — RUM DQL filter expression applied before counting. + --end-time int (required) — End of the time range, Unix epoch milliseconds. Maximum 31-day span. + --facet-key string (required) — The field key to count value distribution for. + --limit int — Maximum number of top values to return. Default 100, maximum 100. (max 100) + --scope string (required) — RUM data scope to query. [session, view, action, error, resource, long_task, vital, issue, sourcemap] + --sql string — SQL WHERE clause (no SELECT) for additional filtering. + --start-time int (required) — Start of the time range, Unix epoch milliseconds. + facet_value (any, via --data) — When set, filter events where 'facet_key' equals this value before counting. Accepts string, number, or boolean. + +Response fields ('data' envelope is unwrapped — rows are nested under items[]; pipe 'jq '.items[]'', NOT '.data.items[]'): + - items (array) (required) + - count (integer) (required) — Number of events with this facet value in the time range. + - facet_value (any) (required) — The facet value. Type matches the field's 'value_type'. +`, + Example: ` flashduty rum facet-count --data '{"end_time":1712707200000,"facet_key":"error.type","limit":10,"scope":"error","start_time":1712620800000}'`, + RunE: func(cmd *cobra.Command, args []string) error { + return runCommand(cmd, args, func(ctx *RunContext) error { + body, err := genAssembleBody(dataJSON, func(body map[string]any) error { + if cmd.Flags().Changed("dql") { + body["dql"] = fDql + } + if cmd.Flags().Changed("end-time") { + body["end_time"] = fEndTime + } + if cmd.Flags().Changed("facet-key") { + body["facet_key"] = fFacetKey + } + if cmd.Flags().Changed("limit") { + body["limit"] = fLimit + } + if cmd.Flags().Changed("scope") { + body["scope"] = fScope + } + if cmd.Flags().Changed("sql") { + body["sql"] = fSql + } + if cmd.Flags().Changed("start-time") { + body["start_time"] = fStartTime + } + return nil + }) + if err != nil { + return err + } + req := new(flashduty.RUMFacetCountRequest) + if err := genBindBody(body, req); err != nil { + return err + } + out, _, err := ctx.Client.Facets.FacetCount(cmdContext(ctx.Cmd), req) + if err != nil { + return err + } + return printGenericResult(ctx, out) + }) + }, + } + cmd.Flags().StringVar(&fDql, "dql", "", "RUM DQL filter expression applied before counting.") + cmd.Flags().Int64Var(&fEndTime, "end-time", 0, "End of the time range, Unix epoch milliseconds. Maximum 31-day span. (required)") + cmd.Flags().StringVar(&fFacetKey, "facet-key", "", "The field key to count value distribution for. (required)") + cmd.Flags().Int64Var(&fLimit, "limit", 0, "Maximum number of top values to return. Default 100, maximum 100. (max 100)") + cmd.Flags().StringVar(&fScope, "scope", "", "RUM data scope to query. (required) [session, view, action, error, resource, long_task, vital, issue, sourcemap]") + cmd.Flags().StringVar(&fSql, "sql", "", "SQL WHERE clause (no SELECT) for additional filtering.") + cmd.Flags().Int64Var(&fStartTime, "start-time", 0, "Start of the time range, Unix epoch milliseconds. (required)") + cmd.Flags().StringVar(&dataJSON, "data", "", "Full request body as JSON; positional arguments and typed flags override its fields. Accepts inline JSON, or - to read stdin.") + return cmd +} + +func genFacetsFacetListCmd() *cobra.Command { + var dataJSON string + var fIsFacet bool + var fScopes []string + cmd := &cobra.Command{ + Use: "facet-list", + Short: "List RUM facet fields", + Long: `List RUM facet fields. + +Return all available RUM field definitions, optionally filtered by scope and facet status. + +API: POST /rum/facet/list (rum-read-facet-list) + +Request fields: + --is-facet bool — When true, return only facet-enabled fields. When false or omitted, return all fields. + --scopes []string — Filter by RUM data scopes. Valid values: 'session', 'view', 'action', 'error', 'resource', 'long_task', 'vital', 'issue', 'sourcemap'. + +Response fields ('data' envelope is unwrapped — rows are nested under items[]; pipe 'jq '.items[]'', NOT '.data.items[]'): + - items (array) (required) + - account_id (integer) (required) — Account ID. 0 for built-in fields. + - description (string) (required) — Description of what this field captures. + - edit_able (boolean) (required) — True if this is a custom field that can be edited by the user. + - enum_values (array) (required) — Predefined enumerable values for this field. Element type matches the field's 'value_type': string for 'string', number for 'number', boolean for 'boolean'. Empty when the field has no fixed set of values. + - field_key (string) (required) — Unique field key, e.g. 'error.type'. + - field_name (string) (required) — Human-readable field name. + - group (string) (required) — Display group for this field. + - is_facet (boolean) (required) — True if value distribution counting is supported for this field. + - queryable (boolean) (required) — True if this field can be used in DQL/SQL queries. + - scopes (array) (required) — RUM scopes this field appears in. + - show_type (string) (required) — Display type in the analytics UI. [list, range] + - status (string) (required) — Field status, e.g. 'active'. + - unit_family (string) (required) — Measurement unit family, e.g. 'time', 'bytes'. Empty for dimensionless fields. + - unit_name (string) (required) — Specific measurement unit, e.g. 'millisecond', 'byte'. + - value_type (string) (required) — Data type of the field value. [string, number, boolean, array, array, array] +`, + Example: ` flashduty rum facet-list --data '{"is_facet":true,"scopes":["error"]}'`, + RunE: func(cmd *cobra.Command, args []string) error { + return runCommand(cmd, args, func(ctx *RunContext) error { + body, err := genAssembleBody(dataJSON, func(body map[string]any) error { + if cmd.Flags().Changed("is-facet") { + body["is_facet"] = fIsFacet + } + if cmd.Flags().Changed("scopes") { + body["scopes"] = fScopes + } + return nil + }) + if err != nil { + return err + } + req := new(flashduty.RUMFacetListRequest) + if err := genBindBody(body, req); err != nil { + return err + } + out, _, err := ctx.Client.Facets.FacetList(cmdContext(ctx.Cmd), req) + if err != nil { + return err + } + return printGenericResult(ctx, out) + }) + }, + } + cmd.Flags().BoolVar(&fIsFacet, "is-facet", false, "When true, return only facet-enabled fields. When false or omitted, return all fields.") + cmd.Flags().StringSliceVar(&fScopes, "scopes", nil, "Filter by RUM data scopes. Valid values: 'session', 'view', 'action', 'error', 'resource', 'long_task', 'vital', 'issue', 'sourcemap'.") + cmd.Flags().StringVar(&dataJSON, "data", "", "Full request body as JSON; positional arguments and typed flags override its fields. Accepts inline JSON, or - to read stdin.") + return cmd +} + +func genFacetsFieldListCmd() *cobra.Command { + var dataJSON string + var fIsFacet bool + var fScopes []string + cmd := &cobra.Command{ + Use: "field-list", + Short: "List RUM fields", + Long: `List RUM fields. + +Return RUM field definitions, optionally filtered by scope and facet status. + +API: POST /rum/field/list (rum-read-field-list) + +Request fields: + --is-facet bool — When true, return only facet-enabled fields. When false or omitted, return all fields. + --scopes []string — Filter by RUM data scopes. Valid values: 'session', 'view', 'action', 'error', 'resource', 'long_task', 'vital', 'issue', 'sourcemap'. + +Response fields ('data' envelope is unwrapped — rows are nested under items[]; pipe 'jq '.items[]'', NOT '.data.items[]'): + - items (array) (required) + - account_id (integer) (required) — Account ID. 0 for built-in fields. + - description (string) (required) — Description of what this field captures. + - edit_able (boolean) (required) — True if this is a custom field that can be edited by the user. + - enum_values (array) (required) — Predefined enumerable values for this field. Element type matches the field's 'value_type': string for 'string', number for 'number', boolean for 'boolean'. Empty when the field has no fixed set of values. + - field_key (string) (required) — Unique field key, e.g. 'error.type'. + - field_name (string) (required) — Human-readable field name. + - group (string) (required) — Display group for this field. + - is_facet (boolean) (required) — True if value distribution counting is supported for this field. + - queryable (boolean) (required) — True if this field can be used in DQL/SQL queries. + - scopes (array) (required) — RUM scopes this field appears in. + - show_type (string) (required) — Display type in the analytics UI. [list, range] + - status (string) (required) — Field status, e.g. 'active'. + - unit_family (string) (required) — Measurement unit family, e.g. 'time', 'bytes'. Empty for dimensionless fields. + - unit_name (string) (required) — Specific measurement unit, e.g. 'millisecond', 'byte'. + - value_type (string) (required) — Data type of the field value. [string, number, boolean, array, array, array] +`, + Example: ` flashduty rum field-list --data '{"is_facet":false,"scopes":["error"]}'`, + RunE: func(cmd *cobra.Command, args []string) error { + return runCommand(cmd, args, func(ctx *RunContext) error { + body, err := genAssembleBody(dataJSON, func(body map[string]any) error { + if cmd.Flags().Changed("is-facet") { + body["is_facet"] = fIsFacet + } + if cmd.Flags().Changed("scopes") { + body["scopes"] = fScopes + } + return nil + }) + if err != nil { + return err + } + req := new(flashduty.RUMFieldListRequest) + if err := genBindBody(body, req); err != nil { + return err + } + out, _, err := ctx.Client.Facets.FieldList(cmdContext(ctx.Cmd), req) + if err != nil { + return err + } + return printGenericResult(ctx, out) + }) + }, + } + cmd.Flags().BoolVar(&fIsFacet, "is-facet", false, "When true, return only facet-enabled fields. When false or omitted, return all fields.") + cmd.Flags().StringSliceVar(&fScopes, "scopes", nil, "Filter by RUM data scopes. Valid values: 'session', 'view', 'action', 'error', 'resource', 'long_task', 'vital', 'issue', 'sourcemap'.") + cmd.Flags().StringVar(&dataJSON, "data", "", "Full request body as JSON; positional arguments and typed flags override its fields. Accepts inline JSON, or - to read stdin.") + return cmd +} + +func registerGeneratedFacets(root *cobra.Command) { + gRUM := genGroup(root, "rum", "RUM API") + genAddLeaf(gRUM, genFacetsFacetCountCmd()) + genAddLeaf(gRUM, genFacetsFacetListCmd()) + genAddLeaf(gRUM, genFacetsFieldListCmd()) +} diff --git a/internal/cli/zz_generated_incidents.go b/internal/cli/zz_generated_incidents.go index 10c7620..4e7a62a 100644 --- a/internal/cli/zz_generated_incidents.go +++ b/internal/cli/zz_generated_incidents.go @@ -86,7 +86,7 @@ API: POST /incident/war-room/add-member (incident-write-add-war-room-member) Request fields: --chat-id string (required) — Chat ID of the war room within the IM platform. --integration-id int (required) — IM integration that hosts the war room. - --member-ids []int (required) — Member IDs to add to the war room. + --member-ids []int (required) — Person IDs to add to the war room. `, Args: requireExactArg("chat_id"), Example: ` flashduty incident war-room-add-member --data '{"chat_id":"oc_5ce6d572455d361153b7cb51da133945","integration_id":362,"member_ids":[20001,20002]}'`, @@ -124,7 +124,7 @@ Request fields: } cmd.Flags().StringVar(&fChatID, "chat-id", "", "Chat ID of the war room within the IM platform. (required)") cmd.Flags().Int64Var(&fIntegrationID, "integration-id", 0, "IM integration that hosts the war room. (required)") - cmd.Flags().IntSliceVar(&fMemberIDs, "member-ids", nil, "Member IDs to add to the war room. (required)") + cmd.Flags().IntSliceVar(&fMemberIDs, "member-ids", nil, "Person IDs to add to the war room. (required)") cmd.Flags().StringVar(&dataJSON, "data", "", "Full request body as JSON; positional arguments and typed flags override its fields. Accepts inline JSON, or - to read stdin.") return cmd } @@ -203,7 +203,7 @@ Request fields: --limit int — Page size, at most 1000. (0-1000) --search-after-ctx string --incident-id string (required) — Incident ID (MongoDB ObjectID). - --include-events bool — When true, include raw alert events in each alert item. + --include-events bool — When true, include at most the 20 newest raw events in each alert item as a preview. --is-active bool — When true return only active alerts (Critical/Warning/Info); when false return only recovered alerts (Ok). Omit to include all. Response fields ('data' envelope is unwrapped — rows are nested under items[]; pipe 'jq '.items[]'', NOT '.data.items[]'): @@ -225,7 +225,7 @@ Response fields ('data' envelope is unwrapped — rows are nested under items[]; - description (string) (required) — Alert description. - end_time (integer) (required) — Unix timestamp (seconds) when the alert recovered. 0 if still active. - event_cnt (integer) (required) — Total number of raw events merged into this alert. - - events (array) — Raw alert events, populated when the caller opts in. + - events (array) — Raw alert event preview, populated only when requested. Capped at the 20 newest events per alert. - account_id (integer) — Account ID. - alert_id (string) — Parent alert ID (MongoDB ObjectID). - alert_key (string) — Deduplication key used to merge events into an alert. @@ -272,7 +272,7 @@ Response fields ('data' envelope is unwrapped — rows are nested under items[]; - total (integer) (required) — Total matching alerts. `, Args: requireExactArg("incident_id"), - Example: ` flashduty incident alert-list --data '{"incident_id":"69da451ef77b1b51f40e83ee","is_active":true,"limit":100,"p":1}'`, + Example: ` flashduty incident alert-list --data '{"incident_id":"69da451ef77b1b51f40e83ee","include_events":true,"is_active":true,"limit":100,"p":1}'`, RunE: func(cmd *cobra.Command, args []string) error { return runCommand(cmd, args, func(ctx *RunContext) error { body, err := genAssembleBody(dataJSON, func(body map[string]any) error { @@ -318,7 +318,7 @@ Response fields ('data' envelope is unwrapped — rows are nested under items[]; cmd.Flags().Int64Var(&fLimit, "limit", 0, "Page size, at most 1000. (0-1000)") cmd.Flags().StringVar(&fSearchAfterCtx, "search-after-ctx", "", "Request field ") cmd.Flags().StringVar(&fIncidentID, "incident-id", "", "Incident ID (MongoDB ObjectID). (required)") - cmd.Flags().BoolVar(&fIncludeEvents, "include-events", false, "When true, include raw alert events in each alert item.") + cmd.Flags().BoolVar(&fIncludeEvents, "include-events", false, "When true, include at most the 20 newest raw events in each alert item as a preview.") cmd.Flags().BoolVar(&fIsActive, "is-active", false, "When true return only active alerts (Critical/Warning/Info); when false return only recovered alerts (Ok). Omit to include all.") cmd.Flags().StringVar(&dataJSON, "data", "", "Full request body as JSON; positional arguments and typed flags override its fields. Accepts inline JSON, or - to read stdin.") return cmd @@ -826,7 +826,7 @@ Response fields ('data' envelope is unwrapped — these fields are at the top le - description (string) (required) — Alert description. - end_time (integer) (required) — Unix timestamp (seconds) when the alert recovered. 0 if still active. - event_cnt (integer) (required) — Total number of raw events merged into this alert. - - events (array) — Raw alert events, populated when the caller opts in. + - events (array) — Raw alert event preview, populated only when requested. Capped at the 20 newest events per alert. - account_id (integer) — Account ID. - alert_id (string) — Parent alert ID (MongoDB ObjectID). - alert_key (string) — Deduplication key used to merge events into an alert. @@ -1078,7 +1078,7 @@ Response fields ('data' envelope is unwrapped — rows are nested under items[]; - description (string) (required) — Alert description. - end_time (integer) (required) — Unix timestamp (seconds) when the alert recovered. 0 if still active. - event_cnt (integer) (required) — Total number of raw events merged into this alert. - - events (array) — Raw alert events, populated when the caller opts in. + - events (array) — Raw alert event preview, populated only when requested. Capped at the 20 newest events per alert. - account_id (integer) — Account ID. - alert_id (string) — Parent alert ID (MongoDB ObjectID). - alert_key (string) — Deduplication key used to merge events into an alert. @@ -1371,7 +1371,7 @@ Response fields ('data' envelope is unwrapped — rows are nested under items[]; - description (string) (required) — Alert description. - end_time (integer) (required) — Unix timestamp (seconds) when the alert recovered. 0 if still active. - event_cnt (integer) (required) — Total number of raw events merged into this alert. - - events (array) — Raw alert events, populated when the caller opts in. + - events (array) — Raw alert event preview, populated only when requested. Capped at the 20 newest events per alert. - account_id (integer) — Account ID. - alert_id (string) — Parent alert ID (MongoDB ObjectID). - alert_key (string) — Deduplication key used to merge events into an alert. @@ -1659,7 +1659,7 @@ Response fields ('data' envelope is unwrapped — rows are nested under items[]; - description (string) (required) — Alert description. - end_time (integer) (required) — Unix timestamp (seconds) when the alert recovered. 0 if still active. - event_cnt (integer) (required) — Total number of raw events merged into this alert. - - events (array) — Raw alert events, populated when the caller opts in. + - events (array) — Raw alert event preview, populated only when requested. Capped at the 20 newest events per alert. - account_id (integer) — Account ID. - alert_id (string) — Parent alert ID (MongoDB ObjectID). - alert_key (string) — Deduplication key used to merge events into an alert. @@ -2346,7 +2346,7 @@ func genIncidentsResponderAddCmd() *cobra.Command { var fIncidentID string var fPersonIDs []int cmd := &cobra.Command{ - Use: "responder-add [...]", + Use: "responder-add [...]", Short: "Add incident responder", Long: `Add incident responder. @@ -2356,7 +2356,7 @@ API: POST /incident/responder/add (incidentResponderAdd) Request fields: --incident-id string (required) — Incident ID (MongoDB ObjectID). - --person-ids []int (required) — Member IDs from 'flashduty member list' to add as responders. + --person-ids []int (required) — Member IDs to add as responders. notify (object, via --data) — Optional notification override. Defaults to following each person's personal preference. - follow_preference (boolean) — When true, fall back to each responder's personal preference. - personal_channels (array) — Channels to use (e.g. 'voice', 'sms', 'email'). diff --git a/internal/cli/zz_generated_manifest.go b/internal/cli/zz_generated_manifest.go index b0f913d..946d535 100644 --- a/internal/cli/zz_generated_manifest.go +++ b/internal/cli/zz_generated_manifest.go @@ -226,6 +226,10 @@ var generatedOpIDs = []string{ "rum-issue-read-info", "rum-issue-read-list", "rum-issue-write-update", + "rum-read-data-query", + "rum-read-facet-count", + "rum-read-facet-list", + "rum-read-field-list", "scheduleCreate", "scheduleDelete", "scheduleInfo", @@ -245,6 +249,7 @@ var generatedOpIDs = []string{ "skill-write-update", "skill-write-upload", "sourcemap-read-list", + "sourcemap-read-stack-enrich", "status-page-read-page-list", "statusPageChangeActiveList", "statusPageChangeCreate", diff --git a/internal/cli/zz_generated_register.go b/internal/cli/zz_generated_register.go index 626311d..fc4a94d 100644 --- a/internal/cli/zz_generated_register.go +++ b/internal/cli/zz_generated_register.go @@ -35,6 +35,8 @@ func registerGenerated(root *cobra.Command) { registerGeneratedRolesPermissions(root) registerGeneratedTeams(root) registerGeneratedApplications(root) + registerGeneratedDataQuery(root) + registerGeneratedFacets(root) registerGeneratedIssues(root) registerGeneratedSourcemaps(root) } diff --git a/internal/cli/zz_generated_response_help.go b/internal/cli/zz_generated_response_help.go index cc33740..5d1282c 100644 --- a/internal/cli/zz_generated_response_help.go +++ b/internal/cli/zz_generated_response_help.go @@ -51,9 +51,9 @@ var responseHelpBySDKMethod = map[string]string{ "Analytics.ByTeam": "Response fields (this command's `--json` is a TOP-LEVEL array of these row objects — pipe `jq '.[]'`, NOT `.items[]`):\n - account_id (integer)\n - acknowledgement_pct (number)\n - channel_id (integer)\n - channel_name (string)\n - hours (string) — Hour bucket when `split_hours` is enabled. [work, sleep, off]\n - mean_seconds_to_ack (number)\n - mean_seconds_to_close (number)\n - noise_reduction_pct (number)\n - responder_id (integer)\n - responder_name (string)\n - team_id (integer)\n - team_name (string)\n - total_alert_cnt (integer)\n - total_alert_event_cnt (integer)\n - total_engaged_seconds (integer)\n - total_incident_cnt (integer)\n - total_incidents_acknowledged (integer)\n - total_incidents_auto_closed (integer)\n - total_incidents_closed (integer)\n - total_incidents_escalated (integer)\n - total_incidents_manually_closed (integer)\n - total_incidents_manually_escalated (integer)\n - total_incidents_reassigned (integer)\n - total_incidents_timeout_closed (integer)\n - total_incidents_timeout_escalated (integer)\n - total_interruptions (integer)\n - total_notifications (integer)\n - total_seconds_to_ack (integer)\n - total_seconds_to_close (integer)\n - ts (integer) — Aggregation bucket start time, Unix seconds. Present when `aggregate_unit` is used.\n", "Analytics.IncidentList": "Response fields (this command's `--json` is a TOP-LEVEL array of these row objects — pipe `jq '.[]'`, NOT `.items[]`):\n - acknowledgements (integer)\n - assigned_to (object) — Current assignment target for the incident.\n - assigned_at (integer) — Unix timestamp (seconds) when this assignment was made.\n - escalate_rule_id (string) — Escalation rule ID (MongoDB ObjectID) driving the assignment.\n - escalate_rule_name (string) — Display name of the escalation rule.\n - id (string) — Internal assignment record ID.\n - layer_idx (integer) — Current level index within the escalation rule.\n - person_ids (array) — Member IDs assigned directly to this incident.\n - type (string) — Assignment type. [assign, reassign, escalate, reopen]\n - assignments (integer)\n - channel_id (integer)\n - channel_name (string)\n - closed_by (string) [auto, timeout, manually]\n - created_at (integer)\n - creator_id (integer)\n - creator_name (string)\n - description (string)\n - engaged_seconds (integer)\n - escalations (integer)\n - fields (object)\n - hours (string)\n - incident_id (string)\n - interruptions (integer)\n - labels (object)\n - manual_escalations (integer)\n - notifications (integer)\n - progress (string) — Incident progress state — one of `Triggered`, `Processing`, `Closed`.\n - reassignments (integer)\n - responders (array)\n - seconds_to_ack (integer)\n - seconds_to_close (integer)\n - severity (string) [Critical, Warning, Info, Ok]\n - team_id (integer)\n - team_name (string)\n - timeout_escalations (integer)\n - title (string)\n", "Analytics.TopkAlertsByLabel": "Response fields (this command's `--json` is a TOP-LEVEL array of these row objects — pipe `jq '.[]'`, NOT `.items[]`):\n - hours (string) — Hour bucket when `split_hours` is enabled.\n - label (string) — Aggregation key value (check name or resource identifier).\n - total_alert_cnt (integer)\n - total_alert_event_cnt (integer)\n", - "Applications.ReadInfo": "Response fields (`data` envelope is unwrapped — these fields are at the top level):\n - account_id (integer) — Account ID.\n - alerting (object) — Alert settings for the application.\n - channel_ids (array) — Channel IDs to send alerts to.\n - enabled (boolean) — Whether alerting is enabled.\n - integration_id (integer) — Associated on-call integration ID (read-only, auto-assigned).\n - application_id (string) — Unique application ID.\n - application_name (string) — Application display name.\n - client_token (string) — Token used to initialize the RUM SDK.\n - created_at (integer) — Creation timestamp, Unix epoch seconds.\n - created_by (integer) — Creator member ID.\n - is_private (boolean) — If `true`, the application is only accessible to team members.\n - no_geo (boolean) — If `true`, geographic location is not inferred from IP.\n - no_ip (boolean) — If `true`, IP addresses are not collected.\n - status (string) — Application status. [enabled, disabled, deleted]\n - team_id (integer) — Owning team ID.\n - tracing (object) — APM tracing integration settings.\n - enabled (boolean) — Whether tracing integration is enabled.\n - endpoint (string) — Trace endpoint URL (http or https).\n - open_type (string) — How to open the trace link. [popup, tab]\n - type (string) — Application type. [browser, ios, android, react-native, flutter, kotlin-multiplatform, roku, unity]\n - updated_at (integer) — Last update timestamp, Unix epoch seconds.\n - updated_by (integer) — Last updater member ID.\n", - "Applications.ReadInfos": "Response fields (this command's `--json` is a TOP-LEVEL array of these row objects — pipe `jq '.[]'`, NOT `.items[]`):\n - account_id (integer) — Account ID.\n - alerting (object) — Alert settings for the application.\n - channel_ids (array) — Channel IDs to send alerts to.\n - enabled (boolean) — Whether alerting is enabled.\n - integration_id (integer) — Associated on-call integration ID (read-only, auto-assigned).\n - application_id (string) — Unique application ID.\n - application_name (string) — Application display name.\n - client_token (string) — Token used to initialize the RUM SDK.\n - created_at (integer) — Creation timestamp, Unix epoch seconds.\n - created_by (integer) — Creator member ID.\n - is_private (boolean) — If `true`, the application is only accessible to team members.\n - no_geo (boolean) — If `true`, geographic location is not inferred from IP.\n - no_ip (boolean) — If `true`, IP addresses are not collected.\n - status (string) — Application status. [enabled, disabled, deleted]\n - team_id (integer) — Owning team ID.\n - tracing (object) — APM tracing integration settings.\n - enabled (boolean) — Whether tracing integration is enabled.\n - endpoint (string) — Trace endpoint URL (http or https).\n - open_type (string) — How to open the trace link. [popup, tab]\n - type (string) — Application type. [browser, ios, android, react-native, flutter, kotlin-multiplatform, roku, unity]\n - updated_at (integer) — Last update timestamp, Unix epoch seconds.\n - updated_by (integer) — Last updater member ID.\n", - "Applications.ReadList": "Response fields (this command's `--json` is a TOP-LEVEL array of these row objects — pipe `jq '.[]'`, NOT `.items[]`):\n - account_id (integer) — Account ID.\n - alerting (object) — Alert settings for the application.\n - channel_ids (array) — Channel IDs to send alerts to.\n - enabled (boolean) — Whether alerting is enabled.\n - integration_id (integer) — Associated on-call integration ID (read-only, auto-assigned).\n - application_id (string) — Unique application ID.\n - application_name (string) — Application display name.\n - client_token (string) — Token used to initialize the RUM SDK.\n - created_at (integer) — Creation timestamp, Unix epoch seconds.\n - created_by (integer) — Creator member ID.\n - is_private (boolean) — If `true`, the application is only accessible to team members.\n - no_geo (boolean) — If `true`, geographic location is not inferred from IP.\n - no_ip (boolean) — If `true`, IP addresses are not collected.\n - status (string) — Application status. [enabled, disabled, deleted]\n - team_id (integer) — Owning team ID.\n - tracing (object) — APM tracing integration settings.\n - enabled (boolean) — Whether tracing integration is enabled.\n - endpoint (string) — Trace endpoint URL (http or https).\n - open_type (string) — How to open the trace link. [popup, tab]\n - type (string) — Application type. [browser, ios, android, react-native, flutter, kotlin-multiplatform, roku, unity]\n - updated_at (integer) — Last update timestamp, Unix epoch seconds.\n - updated_by (integer) — Last updater member ID.\n", + "Applications.ReadInfo": "Response fields (`data` envelope is unwrapped — these fields are at the top level):\n - account_id (integer) — Account ID.\n - alerting (object) — Alert settings for the application.\n - channel_ids (array) — Channel IDs to send alerts to.\n - enabled (boolean) — Whether alerting is enabled.\n - integration_id (integer) — Associated on-call integration ID (read-only, auto-assigned).\n - application_id (string) — Unique application ID.\n - application_name (string) — Application display name.\n - client_token (string) — Token used to initialize the RUM SDK.\n - created_at (integer) — Creation timestamp, Unix epoch seconds.\n - created_by (integer) — Creator member ID.\n - is_private (boolean) — If `true`, the application is only accessible to team members.\n - links (object) — External link integration settings for the application.\n - enabled (boolean) — Whether external link integration is enabled.\n - systems (any) — External systems whose URL templates can be opened from matching RUM events.\n - no_geo (boolean) — If `true`, geographic location is not inferred from IP.\n - no_ip (boolean) — If `true`, IP addresses are not collected.\n - status (string) — Application status. [enabled, disabled, deleted]\n - team_id (integer) — Owning team ID.\n - tracing (object) — APM tracing integration settings.\n - enabled (boolean) — Whether tracing integration is enabled.\n - endpoint (string) — Trace endpoint URL (http or https).\n - open_type (string) — How to open the trace link. [popup, tab]\n - type (string) — Application type. [browser, ios, android, react-native, flutter, kotlin-multiplatform, roku, unity]\n - updated_at (integer) — Last update timestamp, Unix epoch seconds.\n - updated_by (integer) — Last updater member ID.\n", + "Applications.ReadInfos": "Response fields (this command's `--json` is a TOP-LEVEL array of these row objects — pipe `jq '.[]'`, NOT `.items[]`):\n - account_id (integer) — Account ID.\n - alerting (object) — Alert settings for the application.\n - channel_ids (array) — Channel IDs to send alerts to.\n - enabled (boolean) — Whether alerting is enabled.\n - integration_id (integer) — Associated on-call integration ID (read-only, auto-assigned).\n - application_id (string) — Unique application ID.\n - application_name (string) — Application display name.\n - client_token (string) — Token used to initialize the RUM SDK.\n - created_at (integer) — Creation timestamp, Unix epoch seconds.\n - created_by (integer) — Creator member ID.\n - is_private (boolean) — If `true`, the application is only accessible to team members.\n - links (object) — External link integration settings for the application.\n - enabled (boolean) — Whether external link integration is enabled.\n - systems (any) — External systems whose URL templates can be opened from matching RUM events.\n - no_geo (boolean) — If `true`, geographic location is not inferred from IP.\n - no_ip (boolean) — If `true`, IP addresses are not collected.\n - status (string) — Application status. [enabled, disabled, deleted]\n - team_id (integer) — Owning team ID.\n - tracing (object) — APM tracing integration settings.\n - enabled (boolean) — Whether tracing integration is enabled.\n - endpoint (string) — Trace endpoint URL (http or https).\n - open_type (string) — How to open the trace link. [popup, tab]\n - type (string) — Application type. [browser, ios, android, react-native, flutter, kotlin-multiplatform, roku, unity]\n - updated_at (integer) — Last update timestamp, Unix epoch seconds.\n - updated_by (integer) — Last updater member ID.\n", + "Applications.ReadList": "Response fields (this command's `--json` is a TOP-LEVEL array of these row objects — pipe `jq '.[]'`, NOT `.items[]`):\n - account_id (integer) — Account ID.\n - alerting (object) — Alert settings for the application.\n - channel_ids (array) — Channel IDs to send alerts to.\n - enabled (boolean) — Whether alerting is enabled.\n - integration_id (integer) — Associated on-call integration ID (read-only, auto-assigned).\n - application_id (string) — Unique application ID.\n - application_name (string) — Application display name.\n - client_token (string) — Token used to initialize the RUM SDK.\n - created_at (integer) — Creation timestamp, Unix epoch seconds.\n - created_by (integer) — Creator member ID.\n - is_private (boolean) — If `true`, the application is only accessible to team members.\n - links (object) — External link integration settings for the application.\n - enabled (boolean) — Whether external link integration is enabled.\n - systems (any) — External systems whose URL templates can be opened from matching RUM events.\n - no_geo (boolean) — If `true`, geographic location is not inferred from IP.\n - no_ip (boolean) — If `true`, IP addresses are not collected.\n - status (string) — Application status. [enabled, disabled, deleted]\n - team_id (integer) — Owning team ID.\n - tracing (object) — APM tracing integration settings.\n - enabled (boolean) — Whether tracing integration is enabled.\n - endpoint (string) — Trace endpoint URL (http or https).\n - open_type (string) — How to open the trace link. [popup, tab]\n - type (string) — Application type. [browser, ios, android, react-native, flutter, kotlin-multiplatform, roku, unity]\n - updated_at (integer) — Last update timestamp, Unix epoch seconds.\n - updated_by (integer) — Last updater member ID.\n", "Applications.WebhookTest": "Response fields (`data` envelope is unwrapped — these fields are at the top level):\n - message (string) (required) — `ok` on success, otherwise the delivery error message.\n - ok (boolean) (required) — Whether the webhook endpoint accepted the sample event.\n - status_code (integer) (required) — HTTP status code returned by the webhook endpoint. 0 when the request did not receive a response.\n", "Applications.WriteCreate": "Response fields (`data` envelope is unwrapped — these fields are at the top level):\n - application_id (string) — Auto-generated unique application ID.\n - application_name (string) — Application display name.\n - client_token (string) — Token for RUM SDK initialization.\n", "AuditLogs.OperationList": "Response fields (this command's `--json` is a TOP-LEVEL array of these row objects — pipe `jq '.[]'`, NOT `.items[]`):\n - name (string) (required) — Stable machine-readable operation name for use as a filter.\n - name_cn (string) (required) — Human-readable Chinese label shown in the console.\n", @@ -96,15 +96,18 @@ var responseHelpBySDKMethod = map[string]string{ "Diagnostics.TargetsList": "Response fields (this command's `--json` is a TOP-LEVEL array of these row objects — pipe `jq '.[]'`, NOT `.items[]`):\n - agent_version (string) — Most recently observed Agent version.\n - cluster_name (string) — Edge cluster name.\n - edge_ipport (string) — Edge instance address (`ip:port`), surfaced for diagnostics.\n - target_kind (string) — Target kind, e.g. `host`, `mysql`. Filtering by kind is not supported in v1.\n - target_locator (string) — Target identifier; the list is sorted by this field ascending.\n - updated_at (integer) — Last route-projection upsert time, Unix seconds. Treat as 'most recently observed', not a live-online indicator.\n", "Diagnostics.ToolsCatalog": "Response fields (`data` envelope is unwrapped — these fields are at the top level):\n - error (object) — Business error. `null` on success.\n - code (string) [target_unavailable, unknown_toolset_hash, ambiguous_target_kind]\n - message (string)\n - target_kinds (array) — Returned for `ambiguous_target_kind`; lists the candidate kinds.\n - target (object) — Resolved target. `null` when locator could not be uniquely resolved.\n - kind (string)\n - locator (string)\n - tools (array) — Tool catalog entries. Empty when `error` is non-null.\n - description (string) — Tool capability description for UI / AI-SRE consumption.\n - input_schema (object) — JSON Schema for `tools[].params`.\n - name (string) — Tool name; pass into `/monit/tools/invoke` as `tools[].tool`.\n - output_shape (object) — Optional output JSON Schema; only returned when `include_output_shape=true`.\n - target_kind (string) — Target kind this tool applies to.\n", "Diagnostics.ToolsInvoke": "Response fields (`data` envelope is unwrapped — these fields are at the top level):\n - error (object) — Request-level business error. `null` on success.\n - code (string) [target_unavailable, unknown_toolset_hash, forward_failed, invalid_tool_result, ambiguous_target_kind]\n - message (string)\n - target_kinds (array)\n - results (array) — Per-tool results aligned with the request `tools[]` order. Empty when `error` is non-null.\n - agent_elapsed_ms (integer) — Agent-self-reported tool execution time in milliseconds, excludes network. May be 0 when the failure occurred before the agent started executing.\n - data (object) — Successful tool payload — passthrough of monit-agent `ToolResultPayload.data` (typically `data` / `summary` / `truncated`). `null` when the per-tool `error` is set.\n - e2e_elapsed_ms (integer) — Webapi-observed end-to-end time in milliseconds (webapi → ws → edge → agent → ws → webapi). A large gap vs `agent_elapsed_ms` indicates network / edge slowness.\n - error (object) — Per-tool error. Mutually exclusive with `data`.\n - code (string) — Common values: `timeout`, `target_unavailable`, `edge_unsupported`, `invalid_tool_result`, `internal`, `invalid_args`, `unknown_tool`, `unknown_tool_version`, `unknown_toolset_hash`, `target_not_owned`, `wrong_agent`, `overloaded`, `denied`, `permission_denied`, `credential_unavailable`, `target_unreachable`.\n - message (string)\n - tool (string)\n - tool_version (string) — Agent-executed tool version. Empty when execution failed before the agent picked a version.\n - target (object) — Resolved target.\n - kind (string)\n - locator (string)\n", + "Facets.FacetCount": "Response fields (this command's `--json` is a TOP-LEVEL array of these row objects — pipe `jq '.[]'`, NOT `.items[]`):\n - count (integer) (required) — Number of events with this facet value in the time range.\n - facet_value (any) (required) — The facet value. Type matches the field's `value_type`.\n", + "Facets.FacetList": "Response fields (this command's `--json` is a TOP-LEVEL array of these row objects — pipe `jq '.[]'`, NOT `.items[]`):\n - account_id (integer) (required) — Account ID. 0 for built-in fields.\n - description (string) (required) — Description of what this field captures.\n - edit_able (boolean) (required) — True if this is a custom field that can be edited by the user.\n - enum_values (array) (required) — Predefined enumerable values for this field. Element type matches the field's `value_type`: string for `string`, number for `number`, boolean for `boolean`. Empty when the field has no fixed set of values.\n - field_key (string) (required) — Unique field key, e.g. `error.type`.\n - field_name (string) (required) — Human-readable field name.\n - group (string) (required) — Display group for this field.\n - is_facet (boolean) (required) — True if value distribution counting is supported for this field.\n - queryable (boolean) (required) — True if this field can be used in DQL/SQL queries.\n - scopes (array) (required) — RUM scopes this field appears in.\n - show_type (string) (required) — Display type in the analytics UI. [list, range]\n - status (string) (required) — Field status, e.g. `active`.\n - unit_family (string) (required) — Measurement unit family, e.g. `time`, `bytes`. Empty for dimensionless fields.\n - unit_name (string) (required) — Specific measurement unit, e.g. `millisecond`, `byte`.\n - value_type (string) (required) — Data type of the field value. [string, number, boolean, array, array, array]\n", + "Facets.FieldList": "Response fields (this command's `--json` is a TOP-LEVEL array of these row objects — pipe `jq '.[]'`, NOT `.items[]`):\n - account_id (integer) (required) — Account ID. 0 for built-in fields.\n - description (string) (required) — Description of what this field captures.\n - edit_able (boolean) (required) — True if this is a custom field that can be edited by the user.\n - enum_values (array) (required) — Predefined enumerable values for this field. Element type matches the field's `value_type`: string for `string`, number for `number`, boolean for `boolean`. Empty when the field has no fixed set of values.\n - field_key (string) (required) — Unique field key, e.g. `error.type`.\n - field_name (string) (required) — Human-readable field name.\n - group (string) (required) — Display group for this field.\n - is_facet (boolean) (required) — True if value distribution counting is supported for this field.\n - queryable (boolean) (required) — True if this field can be used in DQL/SQL queries.\n - scopes (array) (required) — RUM scopes this field appears in.\n - show_type (string) (required) — Display type in the analytics UI. [list, range]\n - status (string) (required) — Field status, e.g. `active`.\n - unit_family (string) (required) — Measurement unit family, e.g. `time`, `bytes`. Empty for dimensionless fields.\n - unit_name (string) (required) — Specific measurement unit, e.g. `millisecond`, `byte`.\n - value_type (string) (required) — Data type of the field value. [string, number, boolean, array, array, array]\n", "ImIntegrations.List": "Response fields (this command's `--json` is a TOP-LEVEL array of these row objects — pipe `jq '.[]'`, NOT `.items[]`):\n - account_id (integer) — Account this integration belongs to.\n - category (string) — Category of the integration plugin.\n - created_at (integer) — Unix timestamp in seconds when the integration was created.\n - creator_id (integer) — Person who created the integration.\n - data_source_id (integer) — Integration ID.\n - description (string) — Integration description.\n - exclusive_data_source_id (integer) — Exclusive integration ID associated with this integration.\n - integration_id (integer) — Integration ID, alias of data_source_id.\n - integration_key (string) — Push key used by alert sources to send to this integration.\n - last_time (integer) — Unix timestamp in seconds of the most recent activity on the integration.\n - name (string) — Integration name.\n - no_editable (boolean) — Whether the integration is read-only.\n - plugin_id (integer) — Plugin ID backing this integration.\n - plugin_type (string) — Type identifier of the integration plugin.\n - plugin_type_name (string) — Localized display name of the integration plugin type.\n - ref_id (string) — External reference ID of the integration.\n - settings (object) — Plugin-specific configuration of the integration.\n - status (string) — Current status of the integration.\n - team_id (integer) — Team that owns this integration.\n - updated_at (integer) — Unix timestamp in seconds when the integration was last updated.\n - updated_by (integer) — Person who last updated the integration.\n", - "Incidents.AlertList": "Response fields (this command's `--json` is a TOP-LEVEL array of these row objects — pipe `jq '.[]'`, NOT `.items[]`):\n - account_id (integer) (required) — Account ID.\n - alert_id (string) (required) — Alert ID (MongoDB ObjectID).\n - alert_key (string) (required) — Deduplication key used to merge events into the alert.\n - alert_severity (string) (required) — Current severity. [Critical, Warning, Info, Ok]\n - alert_status (string) (required) — Current status. [Critical, Warning, Info, Ok]\n - channel_id (integer) (required) — Channel ID.\n - channel_name (string) (required) — Channel display name.\n - channel_status (string) (required) — Channel status.\n - created_at (integer) (required) — Creation timestamp (seconds).\n - data_source_id (integer) (required) — Deprecated. Use `integration_id` instead.\n - data_source_name (string) (required) — Deprecated. Use `integration_name`.\n - data_source_ref_id (string) (required) — Deprecated. Use `integration_ref_id`.\n - data_source_type (string) — Deprecated. Use `integration_type`.\n - deleted_at (integer) — Soft-delete timestamp (seconds). Zero if not deleted.\n - description (string) (required) — Alert description.\n - end_time (integer) (required) — Unix timestamp (seconds) when the alert recovered. 0 if still active.\n - event_cnt (integer) (required) — Total number of raw events merged into this alert.\n - events (array) — Raw alert events, populated when the caller opts in.\n - account_id (integer) — Account ID.\n - alert_id (string) — Parent alert ID (MongoDB ObjectID).\n - alert_key (string) — Deduplication key used to merge events into an alert.\n - channel_id (integer) — Channel ID the event is routed to.\n - created_at (integer) — Record creation time, Unix epoch seconds.\n - data_source_id (integer) — Deprecated. Use `integration_id` instead.\n - deleted_at (integer) — Soft-delete timestamp (seconds). Zero if not deleted.\n - description (string) — Event description.\n - event_id (string) — Event ID (MongoDB ObjectID).\n - event_severity (string) — Severity of this event. [Critical, Warning, Info, Ok]\n - event_status (string) — Status of this event. [Critical, Warning, Info, Ok]\n - event_time (integer) — Event timestamp, Unix epoch seconds.\n - images (array) — Images attached to the event.\n - alt (string) — Alt text.\n - href (string) — Optional link URL when the image is clicked.\n - src (string) (required) — Image source URL or internal image reference (starts with `img_` or `http`).\n - integration_id (integer) — Integration that produced this event.\n - integration_type (string) — Type/plugin key of the integration that produced this event.\n - labels (object) — Label key-value pairs.\n - title (string) — Event title.\n - title_rule (string) — Title template used to derive `title` from labels.\n - updated_at (integer) — Record update time, Unix epoch seconds.\n - ever_muted (boolean) (required) — Whether this alert has ever been silenced.\n - images (array) (required) — Attached images.\n - alt (string) — Alt text.\n - href (string) — Optional link the image points to.\n - src (string) (required) — Image source. Either an `img_` upload token or an `http(s)` URL.\n - incident (object) — Brief incident reference embedded in an alert.\n - incident_id (string) — Incident ID (ObjectID hex string).\n - progress (string) — Incident progress — one of `Triggered`, `Processing`, `Closed`.\n - title (string) — Incident title.\n - integration_id (integer) (required) — Integration ID that produced the alert.\n - integration_name (string) (required) — Integration display name.\n - integration_ref_id (string) (required) — Integration reference ID.\n - integration_type (string) (required) — Integration type string.\n - labels (object) (required) — Alert labels.\n - last_time (integer) (required) — Unix timestamp (seconds) of the most recent event.\n - responder_email (string) (required) — Primary responder email, if any.\n - responder_name (string) (required) — Primary responder name, if any.\n - start_time (integer) (required) — Unix timestamp (seconds) when the alert first fired.\n - title (string) (required) — Alert title.\n - title_rule (string) (required) — Title rendering rule.\n - updated_at (integer) (required) — Last update timestamp (seconds).\n", + "Incidents.AlertList": "Response fields (this command's `--json` is a TOP-LEVEL array of these row objects — pipe `jq '.[]'`, NOT `.items[]`):\n - account_id (integer) (required) — Account ID.\n - alert_id (string) (required) — Alert ID (MongoDB ObjectID).\n - alert_key (string) (required) — Deduplication key used to merge events into the alert.\n - alert_severity (string) (required) — Current severity. [Critical, Warning, Info, Ok]\n - alert_status (string) (required) — Current status. [Critical, Warning, Info, Ok]\n - channel_id (integer) (required) — Channel ID.\n - channel_name (string) (required) — Channel display name.\n - channel_status (string) (required) — Channel status.\n - created_at (integer) (required) — Creation timestamp (seconds).\n - data_source_id (integer) (required) — Deprecated. Use `integration_id` instead.\n - data_source_name (string) (required) — Deprecated. Use `integration_name`.\n - data_source_ref_id (string) (required) — Deprecated. Use `integration_ref_id`.\n - data_source_type (string) — Deprecated. Use `integration_type`.\n - deleted_at (integer) — Soft-delete timestamp (seconds). Zero if not deleted.\n - description (string) (required) — Alert description.\n - end_time (integer) (required) — Unix timestamp (seconds) when the alert recovered. 0 if still active.\n - event_cnt (integer) (required) — Total number of raw events merged into this alert.\n - events (array) — Raw alert event preview, populated only when requested. Capped at the 20 newest events per alert.\n - account_id (integer) — Account ID.\n - alert_id (string) — Parent alert ID (MongoDB ObjectID).\n - alert_key (string) — Deduplication key used to merge events into an alert.\n - channel_id (integer) — Channel ID the event is routed to.\n - created_at (integer) — Record creation time, Unix epoch seconds.\n - data_source_id (integer) — Deprecated. Use `integration_id` instead.\n - deleted_at (integer) — Soft-delete timestamp (seconds). Zero if not deleted.\n - description (string) — Event description.\n - event_id (string) — Event ID (MongoDB ObjectID).\n - event_severity (string) — Severity of this event. [Critical, Warning, Info, Ok]\n - event_status (string) — Status of this event. [Critical, Warning, Info, Ok]\n - event_time (integer) — Event timestamp, Unix epoch seconds.\n - images (array) — Images attached to the event.\n - alt (string) — Alt text.\n - href (string) — Optional link URL when the image is clicked.\n - src (string) (required) — Image source URL or internal image reference (starts with `img_` or `http`).\n - integration_id (integer) — Integration that produced this event.\n - integration_type (string) — Type/plugin key of the integration that produced this event.\n - labels (object) — Label key-value pairs.\n - title (string) — Event title.\n - title_rule (string) — Title template used to derive `title` from labels.\n - updated_at (integer) — Record update time, Unix epoch seconds.\n - ever_muted (boolean) (required) — Whether this alert has ever been silenced.\n - images (array) (required) — Attached images.\n - alt (string) — Alt text.\n - href (string) — Optional link the image points to.\n - src (string) (required) — Image source. Either an `img_` upload token or an `http(s)` URL.\n - incident (object) — Brief incident reference embedded in an alert.\n - incident_id (string) — Incident ID (ObjectID hex string).\n - progress (string) — Incident progress — one of `Triggered`, `Processing`, `Closed`.\n - title (string) — Incident title.\n - integration_id (integer) (required) — Integration ID that produced the alert.\n - integration_name (string) (required) — Integration display name.\n - integration_ref_id (string) (required) — Integration reference ID.\n - integration_type (string) (required) — Integration type string.\n - labels (object) (required) — Alert labels.\n - last_time (integer) (required) — Unix timestamp (seconds) of the most recent event.\n - responder_email (string) (required) — Primary responder email, if any.\n - responder_name (string) (required) — Primary responder name, if any.\n - start_time (integer) (required) — Unix timestamp (seconds) when the alert first fired.\n - title (string) (required) — Alert title.\n - title_rule (string) (required) — Title rendering rule.\n - updated_at (integer) (required) — Last update timestamp (seconds).\n", "Incidents.Create": "Response fields (`data` envelope is unwrapped — these fields are at the top level):\n - incident_id (string) (required) — Newly created incident ID (MongoDB ObjectID).\n - title (string) (required) — Echoes the incident title from the request.\n", "Incidents.CustomActionDo": "Response fields (`data` envelope is unwrapped — these fields are at the top level):\n - message (string) — Error message if the action's HTTP call failed; omitted on success.\n", "Incidents.Feed": "Response fields (this command's `--json` is a TOP-LEVEL array of these row objects — pipe `jq '.[]'`, NOT `.items[]`):\n - account_id (integer) (required) — Account ID.\n - created_at (integer) (required) — Creation timestamp in milliseconds.\n - creator_id (integer) (required) — User ID of the actor. `0` means system-generated.\n - deleted_at (integer) — Soft-delete timestamp (ms). Zero if not deleted.\n - detail (any) (required) — Type-specific payload. The concrete shape is determined by `type`.\n - ref_id (string) (required) — ObjectID of the source alert or incident this entry references.\n - type (string) (required) — Incident timeline entry type. Each value identifies one lifecycle event; the matching `detail` payload shape is determined by this field. Incident types are prefixed with `i_`. | Type | Meaning | |---|---| | `i_new` | Incident Created: A new incident was created automatically or manually. | | `i_assign` | Assigned: Incident was assigned to responders. | | `i_a_rspd` | Responder Added: Additional responders joined the incident. | | `i_notify` | Notification dispatched through a channel at a specific escalation level. | | `i_storm` | Alert storm threshold reached on the incident. | | `i_snooze` | Notifications snoozed for a given duration. | | `i_wake` | Snooze cancelled and notifications resumed. | | `i_ack` | Acknowledged: Responder confirmed they are working on the incident. | | `i_unack` | Acknowledgement removed. | | `i_comm` | Comment: Responder logged progress or key information. | | `i_rslv` | Resolved: Incident was marked as resolved. | | `i_reopen` | Reopened: Resolved incident was reopened, possibly due to recurrence. | | `i_merge` | Merged: Multiple related incidents were merged into one. | | `i_r_title` | Title updated. | | `i_r_desc` | Description updated. | | `i_r_impact` | Impact updated. | | `i_r_rc` | Root cause updated. | | `i_r_rsltn` | Resolution updated. | | `i_r_severity` | Severity Changed: Incident severity level was adjusted. | | `i_r_field` | Custom field value updated. | | `i_m_flapping` | Incident muted by flapping detection. | | `i_m_reply` | Mute reply marker on a comment. | | `i_custom` | Action: Automated action or script was triggered. | | `i_wr_create` | War Room Created: Chat group was created for collaborative response. | | `i_wr_delete` | War room chat group deleted. | | `i_auto_refresh` | Card auto-refresh event posted back to the timeline. | | `a_merge` | Alert Merged: An alert was merged into an existing incident. | [i_new, i_assign, i_a_rspd, i_notify, i_storm, i_snooze, i_wake, i_ack, i_unack, i_comm, i_rslv, i_reopen, i_merge, i_r_title, i_r_desc, i_r_impact, i_r_rc, i_r_rsltn, i_r_severity, i_r_field, i_m_flapping, i_m_reply, i_custom, i_wr_create, i_wr_delete, i_auto_refresh, a_merge]\n - updated_at (integer) (required) — Last update timestamp in milliseconds.\n", - "Incidents.Info": "Response fields (`data` envelope is unwrapped — these fields are at the top level):\n - account_id (integer) (required) — Account ID that owns the incident.\n - account_locale (string) (required) — Account locale.\n - account_name (string) (required) — Account name.\n - account_time_zone (string) (required) — Account time zone.\n - ack_time (integer) (required) — Unix timestamp (seconds) when the incident was first acknowledged. 0 if unacknowledged.\n - active_alert_cnt (integer) (required) — Count of alerts currently in Critical/Warning/Info state.\n - ai_summary (string) (required) — AI-generated summary of the incident.\n - alert_cnt (integer) (required) — Total count of alerts merged into this incident.\n - alert_event_cnt (integer) (required) — Total raw alert event count across all merged alerts.\n - alerts (array) — Embedded alerts, only populated for notification templates and custom actions.\n - account_id (integer) (required) — Account ID.\n - alert_id (string) (required) — Alert ID (MongoDB ObjectID).\n - alert_key (string) (required) — Deduplication key used to merge events into the alert.\n - alert_severity (string) (required) — Current severity. [Critical, Warning, Info, Ok]\n - alert_status (string) (required) — Current status. [Critical, Warning, Info, Ok]\n - channel_id (integer) (required) — Channel ID.\n - channel_name (string) (required) — Channel display name.\n - channel_status (string) (required) — Channel status.\n - created_at (integer) (required) — Creation timestamp (seconds).\n - data_source_id (integer) (required) — Deprecated. Use `integration_id` instead.\n - data_source_name (string) (required) — Deprecated. Use `integration_name`.\n - data_source_ref_id (string) (required) — Deprecated. Use `integration_ref_id`.\n - data_source_type (string) — Deprecated. Use `integration_type`.\n - deleted_at (integer) — Soft-delete timestamp (seconds). Zero if not deleted.\n - description (string) (required) — Alert description.\n - end_time (integer) (required) — Unix timestamp (seconds) when the alert recovered. 0 if still active.\n - event_cnt (integer) (required) — Total number of raw events merged into this alert.\n - events (array) — Raw alert events, populated when the caller opts in.\n - account_id (integer) — Account ID.\n - alert_id (string) — Parent alert ID (MongoDB ObjectID).\n - alert_key (string) — Deduplication key used to merge events into an alert.\n - channel_id (integer) — Channel ID the event is routed to.\n - created_at (integer) — Record creation time, Unix epoch seconds.\n - data_source_id (integer) — Deprecated. Use `integration_id` instead.\n - deleted_at (integer) — Soft-delete timestamp (seconds). Zero if not deleted.\n - description (string) — Event description.\n - event_id (string) — Event ID (MongoDB ObjectID).\n - event_severity (string) — Severity of this event. [Critical, Warning, Info, Ok]\n - event_status (string) — Status of this event. [Critical, Warning, Info, Ok]\n - event_time (integer) — Event timestamp, Unix epoch seconds.\n - images (array) — Images attached to the event.\n - alt (string) — Alt text.\n - href (string) — Optional link URL when the image is clicked.\n - src (string) (required) — Image source URL or internal image reference (starts with `img_` or `http`).\n - integration_id (integer) — Integration that produced this event.\n - integration_type (string) — Type/plugin key of the integration that produced this event.\n - labels (object) — Label key-value pairs.\n - title (string) — Event title.\n - title_rule (string) — Title template used to derive `title` from labels.\n - updated_at (integer) — Record update time, Unix epoch seconds.\n - ever_muted (boolean) (required) — Whether this alert has ever been silenced.\n - images (array) (required) — Attached images.\n - alt (string) — Alt text.\n - href (string) — Optional link the image points to.\n - src (string) (required) — Image source. Either an `img_` upload token or an `http(s)` URL.\n - incident (object) — Brief incident reference embedded in an alert.\n - incident_id (string) — Incident ID (ObjectID hex string).\n - progress (string) — Incident progress — one of `Triggered`, `Processing`, `Closed`.\n - title (string) — Incident title.\n - integration_id (integer) (required) — Integration ID that produced the alert.\n - integration_name (string) (required) — Integration display name.\n - integration_ref_id (string) (required) — Integration reference ID.\n - integration_type (string) (required) — Integration type string.\n - labels (object) (required) — Alert labels.\n - last_time (integer) (required) — Unix timestamp (seconds) of the most recent event.\n - responder_email (string) (required) — Primary responder email, if any.\n - responder_name (string) (required) — Primary responder name, if any.\n - start_time (integer) (required) — Unix timestamp (seconds) when the alert first fired.\n - title (string) (required) — Alert title.\n - title_rule (string) (required) — Title rendering rule.\n - updated_at (integer) (required) — Last update timestamp (seconds).\n - assigned_to (object) (required) — Incident assignment target. Either `person_ids` or `escalate_rule_id` must be provided.\n - assigned_at (integer) — Unix timestamp (seconds) when the assignment was made.\n - emails (array) — Email recipients, used by integrations such as ServiceNow.\n - escalate_rule_id (string) — Escalation rule ID (MongoDB ObjectID) to drive assignment.\n - escalate_rule_name (string) — Escalation rule display name, filled by the server.\n - id (string) — Opaque assignment ID generated by the server.\n - layer_idx (integer) — Current level index within the escalation rule.\n - person_ids (array) — Member IDs to assign directly.\n - type (string) — Assignment type: `assign` direct assignment, `reassign` reassignment, `escalate` escalation-rule driven, `reopen` automatic reassignment on reopen. [assign, reassign, escalate, reopen]\n - channel_id (integer) (required) — Channel ID. 0 for standalone incidents.\n - channel_name (string) (required) — Channel display name.\n - channel_status (string) (required) — Channel status.\n - close_time (integer) (required) — Unix timestamp (seconds) when the incident was closed. 0 if still open.\n - closer (object) — A Flashduty member reference.\n - as (string) — Role label for this member in the context of the current object.\n - email (string) — Member email address.\n - person_id (integer) — Member ID.\n - person_name (string) — Member display name.\n - closer_id (integer) (required) — Member ID that closed the incident. 0 if auto-closed.\n - created_at (integer) (required) — Creation timestamp (seconds).\n - creator (object) — A Flashduty member reference.\n - as (string) — Role label for this member in the context of the current object.\n - email (string) — Member email address.\n - person_id (integer) — Member ID.\n - person_name (string) — Member display name.\n - creator_id (integer) (required) — Member ID that created the incident. 0 if auto-created by the system.\n - data_source_id (integer) — Deprecated. Use `integration_id` instead.\n - data_source_ids (array) — Deprecated. Use `integration_ids` instead.\n - data_source_type (string) — Deprecated. Use `integration_type` instead.\n - data_source_types (array) — Deprecated. Use `integration_types` instead.\n - dedup_key (string) (required) — Deduplication key used to coalesce alerts.\n - deleted_at (integer) — Soft-delete timestamp (seconds). Zero if not deleted.\n - description (string) (required) — Incident description.\n - detail_url (string) (required) — Web console URL for the incident.\n - end_time (integer) (required) — Unix timestamp (seconds) when the incident ended. 0 if still active.\n - equals_md5 (string) (required) — MD5 hash used for content-equality checks.\n - ever_muted (boolean) (required) — Whether the incident has ever been silenced.\n - fields (object) (required) — Custom field values keyed by field name.\n - frequency (string) — Frequency bucket for recurrence analysis: `frequent` or `rare`. [frequent, rare]\n - group_method (string) (required) — Alert grouping method: `i` intelligent, `p` pattern, `n` none. [i, p, n]\n - images (array) (required) — Attached images.\n - alt (string) — Alt text.\n - href (string) — Optional link the image points to.\n - src (string) (required) — Image source. Either an `img_` upload token or an `http(s)` URL.\n - impact (string) (required) — Impact description.\n - incident_id (string) (required) — Incident ID (MongoDB ObjectID).\n - incident_severity (string) (required) — Configured incident severity. [Critical, Warning, Info, Ok]\n - incident_status (string) (required) — Current incident status, derived from alert statuses. [Critical, Warning, Info, Ok]\n - integration_id (integer) (required) — First integration associated with the incident.\n - integration_ids (array) (required) — All integration IDs contributing alerts to this incident.\n - integration_type (string) — First alert's integration type string, used by the detail page for label mappings.\n - integration_types (array) (required) — Integration type strings for all contributing integrations.\n - labels (object) (required) — Labels propagated from alerts.\n - last_time (integer) (required) — Unix timestamp (seconds) of the most recent update.\n - links (array) — Channel-level link integrations rendered for this incident.\n - endpoint (string) (required) — Rendered URL for the link.\n - name (string) (required) — Display name of the link.\n - open_type (string) (required) — How the link should be opened. [popup, tab]\n - manual_overrides (array) (required) — Fields that were manually overridden after auto-population.\n - num (string) (required) — Short display identifier; not guaranteed unique.\n - owner (object) — A Flashduty member reference.\n - as (string) — Role label for this member in the context of the current object.\n - email (string) — Member email address.\n - person_id (integer) — Member ID.\n - person_name (string) — Member display name.\n - owner_id (integer) (required) — Primary owner member ID. 0 if none.\n - post_mortem_id (string) (required) — Associated post-mortem ID, if any. One incident can only link to a single post-mortem.\n - progress (string) (required) — Incident progress state. [Triggered, Processing, Closed]\n - reporter_email (string) — Reporter email for manually created incidents.\n - resolution (string) (required) — Resolution notes.\n - responders (array) (required) — Current responders with assignment/acknowledgement state.\n - acknowledged_at (integer) (required) — Unix timestamp (seconds) when the member acknowledged. 0 if not yet acknowledged.\n - as (string) — Role label of this responder.\n - assigned_at (integer) (required) — Unix timestamp (seconds) when the member was assigned.\n - email (string) — Member email, filled by the server.\n - person_id (integer) (required) — Responder member ID.\n - person_name (string) — Member display name, filled by the server.\n - root_cause (string) (required) — Root cause analysis.\n - silence_url (string) (required) — Quick-silence URL for this incident.\n - snoozed_before (integer) (required) — Unix timestamp (seconds) until which notifications are snoozed. 0 if not snoozed.\n - start_time (integer) (required) — Unix timestamp (seconds) when the incident started.\n - title (string) (required) — Incident title.\n - updated_at (integer) (required) — Last update timestamp (seconds).\n", - "Incidents.List": "Response fields (this command's `--json` is a TOP-LEVEL array of these row objects — pipe `jq '.[]'`, NOT `.items[]`):\n - account_id (integer) (required) — Account ID that owns the incident.\n - account_locale (string) (required) — Account locale.\n - account_name (string) (required) — Account name.\n - account_time_zone (string) (required) — Account time zone.\n - ack_time (integer) (required) — Unix timestamp (seconds) when the incident was first acknowledged. 0 if unacknowledged.\n - active_alert_cnt (integer) (required) — Count of alerts currently in Critical/Warning/Info state.\n - ai_summary (string) (required) — AI-generated summary of the incident.\n - alert_cnt (integer) (required) — Total count of alerts merged into this incident.\n - alert_event_cnt (integer) (required) — Total raw alert event count across all merged alerts.\n - alerts (array) — Embedded alerts, only populated for notification templates and custom actions.\n - account_id (integer) (required) — Account ID.\n - alert_id (string) (required) — Alert ID (MongoDB ObjectID).\n - alert_key (string) (required) — Deduplication key used to merge events into the alert.\n - alert_severity (string) (required) — Current severity. [Critical, Warning, Info, Ok]\n - alert_status (string) (required) — Current status. [Critical, Warning, Info, Ok]\n - channel_id (integer) (required) — Channel ID.\n - channel_name (string) (required) — Channel display name.\n - channel_status (string) (required) — Channel status.\n - created_at (integer) (required) — Creation timestamp (seconds).\n - data_source_id (integer) (required) — Deprecated. Use `integration_id` instead.\n - data_source_name (string) (required) — Deprecated. Use `integration_name`.\n - data_source_ref_id (string) (required) — Deprecated. Use `integration_ref_id`.\n - data_source_type (string) — Deprecated. Use `integration_type`.\n - deleted_at (integer) — Soft-delete timestamp (seconds). Zero if not deleted.\n - description (string) (required) — Alert description.\n - end_time (integer) (required) — Unix timestamp (seconds) when the alert recovered. 0 if still active.\n - event_cnt (integer) (required) — Total number of raw events merged into this alert.\n - events (array) — Raw alert events, populated when the caller opts in.\n - account_id (integer) — Account ID.\n - alert_id (string) — Parent alert ID (MongoDB ObjectID).\n - alert_key (string) — Deduplication key used to merge events into an alert.\n - channel_id (integer) — Channel ID the event is routed to.\n - created_at (integer) — Record creation time, Unix epoch seconds.\n - data_source_id (integer) — Deprecated. Use `integration_id` instead.\n - deleted_at (integer) — Soft-delete timestamp (seconds). Zero if not deleted.\n - description (string) — Event description.\n - event_id (string) — Event ID (MongoDB ObjectID).\n - event_severity (string) — Severity of this event. [Critical, Warning, Info, Ok]\n - event_status (string) — Status of this event. [Critical, Warning, Info, Ok]\n - event_time (integer) — Event timestamp, Unix epoch seconds.\n - images (array) — Images attached to the event.\n - integration_id (integer) — Integration that produced this event.\n - integration_type (string) — Type/plugin key of the integration that produced this event.\n - labels (object) — Label key-value pairs.\n - title (string) — Event title.\n - title_rule (string) — Title template used to derive `title` from labels.\n - updated_at (integer) — Record update time, Unix epoch seconds.\n - ever_muted (boolean) (required) — Whether this alert has ever been silenced.\n - images (array) (required) — Attached images.\n - alt (string) — Alt text.\n - href (string) — Optional link the image points to.\n - src (string) (required) — Image source. Either an `img_` upload token or an `http(s)` URL.\n - incident (object) — Brief incident reference embedded in an alert.\n - incident_id (string) — Incident ID (ObjectID hex string).\n - progress (string) — Incident progress — one of `Triggered`, `Processing`, `Closed`.\n - title (string) — Incident title.\n - integration_id (integer) (required) — Integration ID that produced the alert.\n - integration_name (string) (required) — Integration display name.\n - integration_ref_id (string) (required) — Integration reference ID.\n - integration_type (string) (required) — Integration type string.\n - labels (object) (required) — Alert labels.\n - last_time (integer) (required) — Unix timestamp (seconds) of the most recent event.\n - responder_email (string) (required) — Primary responder email, if any.\n - responder_name (string) (required) — Primary responder name, if any.\n - start_time (integer) (required) — Unix timestamp (seconds) when the alert first fired.\n - title (string) (required) — Alert title.\n - title_rule (string) (required) — Title rendering rule.\n - updated_at (integer) (required) — Last update timestamp (seconds).\n - assigned_to (object) (required) — Incident assignment target. Either `person_ids` or `escalate_rule_id` must be provided.\n - assigned_at (integer) — Unix timestamp (seconds) when the assignment was made.\n - emails (array) — Email recipients, used by integrations such as ServiceNow.\n - escalate_rule_id (string) — Escalation rule ID (MongoDB ObjectID) to drive assignment.\n - escalate_rule_name (string) — Escalation rule display name, filled by the server.\n - id (string) — Opaque assignment ID generated by the server.\n - layer_idx (integer) — Current level index within the escalation rule.\n - person_ids (array) — Member IDs to assign directly.\n - type (string) — Assignment type: `assign` direct assignment, `reassign` reassignment, `escalate` escalation-rule driven, `reopen` automatic reassignment on reopen. [assign, reassign, escalate, reopen]\n - channel_id (integer) (required) — Channel ID. 0 for standalone incidents.\n - channel_name (string) (required) — Channel display name.\n - channel_status (string) (required) — Channel status.\n - close_time (integer) (required) — Unix timestamp (seconds) when the incident was closed. 0 if still open.\n - closer (object) — A Flashduty member reference.\n - as (string) — Role label for this member in the context of the current object.\n - email (string) — Member email address.\n - person_id (integer) — Member ID.\n - person_name (string) — Member display name.\n - closer_id (integer) (required) — Member ID that closed the incident. 0 if auto-closed.\n - created_at (integer) (required) — Creation timestamp (seconds).\n - creator (object) — A Flashduty member reference.\n - as (string) — Role label for this member in the context of the current object.\n - email (string) — Member email address.\n - person_id (integer) — Member ID.\n - person_name (string) — Member display name.\n - creator_id (integer) (required) — Member ID that created the incident. 0 if auto-created by the system.\n - data_source_id (integer) — Deprecated. Use `integration_id` instead.\n - data_source_ids (array) — Deprecated. Use `integration_ids` instead.\n - data_source_type (string) — Deprecated. Use `integration_type` instead.\n - data_source_types (array) — Deprecated. Use `integration_types` instead.\n - dedup_key (string) (required) — Deduplication key used to coalesce alerts.\n - deleted_at (integer) — Soft-delete timestamp (seconds). Zero if not deleted.\n - description (string) (required) — Incident description.\n - detail_url (string) (required) — Web console URL for the incident.\n - end_time (integer) (required) — Unix timestamp (seconds) when the incident ended. 0 if still active.\n - equals_md5 (string) (required) — MD5 hash used for content-equality checks.\n - ever_muted (boolean) (required) — Whether the incident has ever been silenced.\n - fields (object) (required) — Custom field values keyed by field name.\n - frequency (string) — Frequency bucket for recurrence analysis: `frequent` or `rare`. [frequent, rare]\n - group_method (string) (required) — Alert grouping method: `i` intelligent, `p` pattern, `n` none. [i, p, n]\n - images (array) (required) — Attached images.\n - alt (string) — Alt text.\n - href (string) — Optional link the image points to.\n - src (string) (required) — Image source. Either an `img_` upload token or an `http(s)` URL.\n - impact (string) (required) — Impact description.\n - incident_id (string) (required) — Incident ID (MongoDB ObjectID).\n - incident_severity (string) (required) — Configured incident severity. [Critical, Warning, Info, Ok]\n - incident_status (string) (required) — Current incident status, derived from alert statuses. [Critical, Warning, Info, Ok]\n - integration_id (integer) (required) — First integration associated with the incident.\n - integration_ids (array) (required) — All integration IDs contributing alerts to this incident.\n - integration_type (string) — First alert's integration type string, used by the detail page for label mappings.\n - integration_types (array) (required) — Integration type strings for all contributing integrations.\n - labels (object) (required) — Labels propagated from alerts.\n - last_time (integer) (required) — Unix timestamp (seconds) of the most recent update.\n - links (array) — Channel-level link integrations rendered for this incident.\n - endpoint (string) (required) — Rendered URL for the link.\n - name (string) (required) — Display name of the link.\n - open_type (string) (required) — How the link should be opened. [popup, tab]\n - manual_overrides (array) (required) — Fields that were manually overridden after auto-population.\n - num (string) (required) — Short display identifier; not guaranteed unique.\n - owner (object) — A Flashduty member reference.\n - as (string) — Role label for this member in the context of the current object.\n - email (string) — Member email address.\n - person_id (integer) — Member ID.\n - person_name (string) — Member display name.\n - owner_id (integer) (required) — Primary owner member ID. 0 if none.\n - post_mortem_id (string) (required) — Associated post-mortem ID, if any. One incident can only link to a single post-mortem.\n - progress (string) (required) — Incident progress state. [Triggered, Processing, Closed]\n - reporter_email (string) — Reporter email for manually created incidents.\n - resolution (string) (required) — Resolution notes.\n - responders (array) (required) — Current responders with assignment/acknowledgement state.\n - acknowledged_at (integer) (required) — Unix timestamp (seconds) when the member acknowledged. 0 if not yet acknowledged.\n - as (string) — Role label of this responder.\n - assigned_at (integer) (required) — Unix timestamp (seconds) when the member was assigned.\n - email (string) — Member email, filled by the server.\n - person_id (integer) (required) — Responder member ID.\n - person_name (string) — Member display name, filled by the server.\n - root_cause (string) (required) — Root cause analysis.\n - silence_url (string) (required) — Quick-silence URL for this incident.\n - snoozed_before (integer) (required) — Unix timestamp (seconds) until which notifications are snoozed. 0 if not snoozed.\n - start_time (integer) (required) — Unix timestamp (seconds) when the incident started.\n - title (string) (required) — Incident title.\n - updated_at (integer) (required) — Last update timestamp (seconds).\n", - "Incidents.ListByIDs": "Response fields (this command's `--json` is a TOP-LEVEL array of these row objects — pipe `jq '.[]'`, NOT `.items[]`):\n - account_id (integer) (required) — Account ID that owns the incident.\n - account_locale (string) (required) — Account locale.\n - account_name (string) (required) — Account name.\n - account_time_zone (string) (required) — Account time zone.\n - ack_time (integer) (required) — Unix timestamp (seconds) when the incident was first acknowledged. 0 if unacknowledged.\n - active_alert_cnt (integer) (required) — Count of alerts currently in Critical/Warning/Info state.\n - ai_summary (string) (required) — AI-generated summary of the incident.\n - alert_cnt (integer) (required) — Total count of alerts merged into this incident.\n - alert_event_cnt (integer) (required) — Total raw alert event count across all merged alerts.\n - alerts (array) — Embedded alerts, only populated for notification templates and custom actions.\n - account_id (integer) (required) — Account ID.\n - alert_id (string) (required) — Alert ID (MongoDB ObjectID).\n - alert_key (string) (required) — Deduplication key used to merge events into the alert.\n - alert_severity (string) (required) — Current severity. [Critical, Warning, Info, Ok]\n - alert_status (string) (required) — Current status. [Critical, Warning, Info, Ok]\n - channel_id (integer) (required) — Channel ID.\n - channel_name (string) (required) — Channel display name.\n - channel_status (string) (required) — Channel status.\n - created_at (integer) (required) — Creation timestamp (seconds).\n - data_source_id (integer) (required) — Deprecated. Use `integration_id` instead.\n - data_source_name (string) (required) — Deprecated. Use `integration_name`.\n - data_source_ref_id (string) (required) — Deprecated. Use `integration_ref_id`.\n - data_source_type (string) — Deprecated. Use `integration_type`.\n - deleted_at (integer) — Soft-delete timestamp (seconds). Zero if not deleted.\n - description (string) (required) — Alert description.\n - end_time (integer) (required) — Unix timestamp (seconds) when the alert recovered. 0 if still active.\n - event_cnt (integer) (required) — Total number of raw events merged into this alert.\n - events (array) — Raw alert events, populated when the caller opts in.\n - account_id (integer) — Account ID.\n - alert_id (string) — Parent alert ID (MongoDB ObjectID).\n - alert_key (string) — Deduplication key used to merge events into an alert.\n - channel_id (integer) — Channel ID the event is routed to.\n - created_at (integer) — Record creation time, Unix epoch seconds.\n - data_source_id (integer) — Deprecated. Use `integration_id` instead.\n - deleted_at (integer) — Soft-delete timestamp (seconds). Zero if not deleted.\n - description (string) — Event description.\n - event_id (string) — Event ID (MongoDB ObjectID).\n - event_severity (string) — Severity of this event. [Critical, Warning, Info, Ok]\n - event_status (string) — Status of this event. [Critical, Warning, Info, Ok]\n - event_time (integer) — Event timestamp, Unix epoch seconds.\n - images (array) — Images attached to the event.\n - integration_id (integer) — Integration that produced this event.\n - integration_type (string) — Type/plugin key of the integration that produced this event.\n - labels (object) — Label key-value pairs.\n - title (string) — Event title.\n - title_rule (string) — Title template used to derive `title` from labels.\n - updated_at (integer) — Record update time, Unix epoch seconds.\n - ever_muted (boolean) (required) — Whether this alert has ever been silenced.\n - images (array) (required) — Attached images.\n - alt (string) — Alt text.\n - href (string) — Optional link the image points to.\n - src (string) (required) — Image source. Either an `img_` upload token or an `http(s)` URL.\n - incident (object) — Brief incident reference embedded in an alert.\n - incident_id (string) — Incident ID (ObjectID hex string).\n - progress (string) — Incident progress — one of `Triggered`, `Processing`, `Closed`.\n - title (string) — Incident title.\n - integration_id (integer) (required) — Integration ID that produced the alert.\n - integration_name (string) (required) — Integration display name.\n - integration_ref_id (string) (required) — Integration reference ID.\n - integration_type (string) (required) — Integration type string.\n - labels (object) (required) — Alert labels.\n - last_time (integer) (required) — Unix timestamp (seconds) of the most recent event.\n - responder_email (string) (required) — Primary responder email, if any.\n - responder_name (string) (required) — Primary responder name, if any.\n - start_time (integer) (required) — Unix timestamp (seconds) when the alert first fired.\n - title (string) (required) — Alert title.\n - title_rule (string) (required) — Title rendering rule.\n - updated_at (integer) (required) — Last update timestamp (seconds).\n - assigned_to (object) (required) — Incident assignment target. Either `person_ids` or `escalate_rule_id` must be provided.\n - assigned_at (integer) — Unix timestamp (seconds) when the assignment was made.\n - emails (array) — Email recipients, used by integrations such as ServiceNow.\n - escalate_rule_id (string) — Escalation rule ID (MongoDB ObjectID) to drive assignment.\n - escalate_rule_name (string) — Escalation rule display name, filled by the server.\n - id (string) — Opaque assignment ID generated by the server.\n - layer_idx (integer) — Current level index within the escalation rule.\n - person_ids (array) — Member IDs to assign directly.\n - type (string) — Assignment type: `assign` direct assignment, `reassign` reassignment, `escalate` escalation-rule driven, `reopen` automatic reassignment on reopen. [assign, reassign, escalate, reopen]\n - channel_id (integer) (required) — Channel ID. 0 for standalone incidents.\n - channel_name (string) (required) — Channel display name.\n - channel_status (string) (required) — Channel status.\n - close_time (integer) (required) — Unix timestamp (seconds) when the incident was closed. 0 if still open.\n - closer (object) — A Flashduty member reference.\n - as (string) — Role label for this member in the context of the current object.\n - email (string) — Member email address.\n - person_id (integer) — Member ID.\n - person_name (string) — Member display name.\n - closer_id (integer) (required) — Member ID that closed the incident. 0 if auto-closed.\n - created_at (integer) (required) — Creation timestamp (seconds).\n - creator (object) — A Flashduty member reference.\n - as (string) — Role label for this member in the context of the current object.\n - email (string) — Member email address.\n - person_id (integer) — Member ID.\n - person_name (string) — Member display name.\n - creator_id (integer) (required) — Member ID that created the incident. 0 if auto-created by the system.\n - data_source_id (integer) — Deprecated. Use `integration_id` instead.\n - data_source_ids (array) — Deprecated. Use `integration_ids` instead.\n - data_source_type (string) — Deprecated. Use `integration_type` instead.\n - data_source_types (array) — Deprecated. Use `integration_types` instead.\n - dedup_key (string) (required) — Deduplication key used to coalesce alerts.\n - deleted_at (integer) — Soft-delete timestamp (seconds). Zero if not deleted.\n - description (string) (required) — Incident description.\n - detail_url (string) (required) — Web console URL for the incident.\n - end_time (integer) (required) — Unix timestamp (seconds) when the incident ended. 0 if still active.\n - equals_md5 (string) (required) — MD5 hash used for content-equality checks.\n - ever_muted (boolean) (required) — Whether the incident has ever been silenced.\n - fields (object) (required) — Custom field values keyed by field name.\n - frequency (string) — Frequency bucket for recurrence analysis: `frequent` or `rare`. [frequent, rare]\n - group_method (string) (required) — Alert grouping method: `i` intelligent, `p` pattern, `n` none. [i, p, n]\n - images (array) (required) — Attached images.\n - alt (string) — Alt text.\n - href (string) — Optional link the image points to.\n - src (string) (required) — Image source. Either an `img_` upload token or an `http(s)` URL.\n - impact (string) (required) — Impact description.\n - incident_id (string) (required) — Incident ID (MongoDB ObjectID).\n - incident_severity (string) (required) — Configured incident severity. [Critical, Warning, Info, Ok]\n - incident_status (string) (required) — Current incident status, derived from alert statuses. [Critical, Warning, Info, Ok]\n - integration_id (integer) (required) — First integration associated with the incident.\n - integration_ids (array) (required) — All integration IDs contributing alerts to this incident.\n - integration_type (string) — First alert's integration type string, used by the detail page for label mappings.\n - integration_types (array) (required) — Integration type strings for all contributing integrations.\n - labels (object) (required) — Labels propagated from alerts.\n - last_time (integer) (required) — Unix timestamp (seconds) of the most recent update.\n - links (array) — Channel-level link integrations rendered for this incident.\n - endpoint (string) (required) — Rendered URL for the link.\n - name (string) (required) — Display name of the link.\n - open_type (string) (required) — How the link should be opened. [popup, tab]\n - manual_overrides (array) (required) — Fields that were manually overridden after auto-population.\n - num (string) (required) — Short display identifier; not guaranteed unique.\n - owner (object) — A Flashduty member reference.\n - as (string) — Role label for this member in the context of the current object.\n - email (string) — Member email address.\n - person_id (integer) — Member ID.\n - person_name (string) — Member display name.\n - owner_id (integer) (required) — Primary owner member ID. 0 if none.\n - post_mortem_id (string) (required) — Associated post-mortem ID, if any. One incident can only link to a single post-mortem.\n - progress (string) (required) — Incident progress state. [Triggered, Processing, Closed]\n - reporter_email (string) — Reporter email for manually created incidents.\n - resolution (string) (required) — Resolution notes.\n - responders (array) (required) — Current responders with assignment/acknowledgement state.\n - acknowledged_at (integer) (required) — Unix timestamp (seconds) when the member acknowledged. 0 if not yet acknowledged.\n - as (string) — Role label of this responder.\n - assigned_at (integer) (required) — Unix timestamp (seconds) when the member was assigned.\n - email (string) — Member email, filled by the server.\n - person_id (integer) (required) — Responder member ID.\n - person_name (string) — Member display name, filled by the server.\n - root_cause (string) (required) — Root cause analysis.\n - silence_url (string) (required) — Quick-silence URL for this incident.\n - snoozed_before (integer) (required) — Unix timestamp (seconds) until which notifications are snoozed. 0 if not snoozed.\n - start_time (integer) (required) — Unix timestamp (seconds) when the incident started.\n - title (string) (required) — Incident title.\n - updated_at (integer) (required) — Last update timestamp (seconds).\n", - "Incidents.PastList": "Response fields (this command's `--json` is a TOP-LEVEL array of these row objects — pipe `jq '.[]'`, NOT `.items[]`):\n - account_id (integer) (required) — Account ID that owns the incident.\n - account_locale (string) (required) — Account locale.\n - account_name (string) (required) — Account name.\n - account_time_zone (string) (required) — Account time zone.\n - ack_time (integer) (required) — Unix timestamp (seconds) when the incident was first acknowledged. 0 if unacknowledged.\n - active_alert_cnt (integer) (required) — Count of alerts currently in Critical/Warning/Info state.\n - ai_summary (string) (required) — AI-generated summary of the incident.\n - alert_cnt (integer) (required) — Total count of alerts merged into this incident.\n - alert_event_cnt (integer) (required) — Total raw alert event count across all merged alerts.\n - alerts (array) — Embedded alerts, only populated for notification templates and custom actions.\n - account_id (integer) (required) — Account ID.\n - alert_id (string) (required) — Alert ID (MongoDB ObjectID).\n - alert_key (string) (required) — Deduplication key used to merge events into the alert.\n - alert_severity (string) (required) — Current severity. [Critical, Warning, Info, Ok]\n - alert_status (string) (required) — Current status. [Critical, Warning, Info, Ok]\n - channel_id (integer) (required) — Channel ID.\n - channel_name (string) (required) — Channel display name.\n - channel_status (string) (required) — Channel status.\n - created_at (integer) (required) — Creation timestamp (seconds).\n - data_source_id (integer) (required) — Deprecated. Use `integration_id` instead.\n - data_source_name (string) (required) — Deprecated. Use `integration_name`.\n - data_source_ref_id (string) (required) — Deprecated. Use `integration_ref_id`.\n - data_source_type (string) — Deprecated. Use `integration_type`.\n - deleted_at (integer) — Soft-delete timestamp (seconds). Zero if not deleted.\n - description (string) (required) — Alert description.\n - end_time (integer) (required) — Unix timestamp (seconds) when the alert recovered. 0 if still active.\n - event_cnt (integer) (required) — Total number of raw events merged into this alert.\n - events (array) — Raw alert events, populated when the caller opts in.\n - account_id (integer) — Account ID.\n - alert_id (string) — Parent alert ID (MongoDB ObjectID).\n - alert_key (string) — Deduplication key used to merge events into an alert.\n - channel_id (integer) — Channel ID the event is routed to.\n - created_at (integer) — Record creation time, Unix epoch seconds.\n - data_source_id (integer) — Deprecated. Use `integration_id` instead.\n - deleted_at (integer) — Soft-delete timestamp (seconds). Zero if not deleted.\n - description (string) — Event description.\n - event_id (string) — Event ID (MongoDB ObjectID).\n - event_severity (string) — Severity of this event. [Critical, Warning, Info, Ok]\n - event_status (string) — Status of this event. [Critical, Warning, Info, Ok]\n - event_time (integer) — Event timestamp, Unix epoch seconds.\n - images (array) — Images attached to the event.\n - integration_id (integer) — Integration that produced this event.\n - integration_type (string) — Type/plugin key of the integration that produced this event.\n - labels (object) — Label key-value pairs.\n - title (string) — Event title.\n - title_rule (string) — Title template used to derive `title` from labels.\n - updated_at (integer) — Record update time, Unix epoch seconds.\n - ever_muted (boolean) (required) — Whether this alert has ever been silenced.\n - images (array) (required) — Attached images.\n - alt (string) — Alt text.\n - href (string) — Optional link the image points to.\n - src (string) (required) — Image source. Either an `img_` upload token or an `http(s)` URL.\n - incident (object) — Brief incident reference embedded in an alert.\n - incident_id (string) — Incident ID (ObjectID hex string).\n - progress (string) — Incident progress — one of `Triggered`, `Processing`, `Closed`.\n - title (string) — Incident title.\n - integration_id (integer) (required) — Integration ID that produced the alert.\n - integration_name (string) (required) — Integration display name.\n - integration_ref_id (string) (required) — Integration reference ID.\n - integration_type (string) (required) — Integration type string.\n - labels (object) (required) — Alert labels.\n - last_time (integer) (required) — Unix timestamp (seconds) of the most recent event.\n - responder_email (string) (required) — Primary responder email, if any.\n - responder_name (string) (required) — Primary responder name, if any.\n - start_time (integer) (required) — Unix timestamp (seconds) when the alert first fired.\n - title (string) (required) — Alert title.\n - title_rule (string) (required) — Title rendering rule.\n - updated_at (integer) (required) — Last update timestamp (seconds).\n - assigned_to (object) (required) — Incident assignment target. Either `person_ids` or `escalate_rule_id` must be provided.\n - assigned_at (integer) — Unix timestamp (seconds) when the assignment was made.\n - emails (array) — Email recipients, used by integrations such as ServiceNow.\n - escalate_rule_id (string) — Escalation rule ID (MongoDB ObjectID) to drive assignment.\n - escalate_rule_name (string) — Escalation rule display name, filled by the server.\n - id (string) — Opaque assignment ID generated by the server.\n - layer_idx (integer) — Current level index within the escalation rule.\n - person_ids (array) — Member IDs to assign directly.\n - type (string) — Assignment type: `assign` direct assignment, `reassign` reassignment, `escalate` escalation-rule driven, `reopen` automatic reassignment on reopen. [assign, reassign, escalate, reopen]\n - channel_id (integer) (required) — Channel ID. 0 for standalone incidents.\n - channel_name (string) (required) — Channel display name.\n - channel_status (string) (required) — Channel status.\n - close_time (integer) (required) — Unix timestamp (seconds) when the incident was closed. 0 if still open.\n - closer (object) — A Flashduty member reference.\n - as (string) — Role label for this member in the context of the current object.\n - email (string) — Member email address.\n - person_id (integer) — Member ID.\n - person_name (string) — Member display name.\n - closer_id (integer) (required) — Member ID that closed the incident. 0 if auto-closed.\n - created_at (integer) (required) — Creation timestamp (seconds).\n - creator (object) — A Flashduty member reference.\n - as (string) — Role label for this member in the context of the current object.\n - email (string) — Member email address.\n - person_id (integer) — Member ID.\n - person_name (string) — Member display name.\n - creator_id (integer) (required) — Member ID that created the incident. 0 if auto-created by the system.\n - data_source_id (integer) — Deprecated. Use `integration_id` instead.\n - data_source_ids (array) — Deprecated. Use `integration_ids` instead.\n - data_source_type (string) — Deprecated. Use `integration_type` instead.\n - data_source_types (array) — Deprecated. Use `integration_types` instead.\n - dedup_key (string) (required) — Deduplication key used to coalesce alerts.\n - deleted_at (integer) — Soft-delete timestamp (seconds). Zero if not deleted.\n - description (string) (required) — Incident description.\n - detail_url (string) (required) — Web console URL for the incident.\n - end_time (integer) (required) — Unix timestamp (seconds) when the incident ended. 0 if still active.\n - equals_md5 (string) (required) — MD5 hash used for content-equality checks.\n - ever_muted (boolean) (required) — Whether the incident has ever been silenced.\n - fields (object) (required) — Custom field values keyed by field name.\n - frequency (string) — Frequency bucket for recurrence analysis: `frequent` or `rare`. [frequent, rare]\n - group_method (string) (required) — Alert grouping method: `i` intelligent, `p` pattern, `n` none. [i, p, n]\n - images (array) (required) — Attached images.\n - alt (string) — Alt text.\n - href (string) — Optional link the image points to.\n - src (string) (required) — Image source. Either an `img_` upload token or an `http(s)` URL.\n - impact (string) (required) — Impact description.\n - incident_id (string) (required) — Incident ID (MongoDB ObjectID).\n - incident_severity (string) (required) — Configured incident severity. [Critical, Warning, Info, Ok]\n - incident_status (string) (required) — Current incident status, derived from alert statuses. [Critical, Warning, Info, Ok]\n - integration_id (integer) (required) — First integration associated with the incident.\n - integration_ids (array) (required) — All integration IDs contributing alerts to this incident.\n - integration_type (string) — First alert's integration type string, used by the detail page for label mappings.\n - integration_types (array) (required) — Integration type strings for all contributing integrations.\n - labels (object) (required) — Labels propagated from alerts.\n - last_time (integer) (required) — Unix timestamp (seconds) of the most recent update.\n - links (array) — Channel-level link integrations rendered for this incident.\n - endpoint (string) (required) — Rendered URL for the link.\n - name (string) (required) — Display name of the link.\n - open_type (string) (required) — How the link should be opened. [popup, tab]\n - manual_overrides (array) (required) — Fields that were manually overridden after auto-population.\n - num (string) (required) — Short display identifier; not guaranteed unique.\n - owner (object) — A Flashduty member reference.\n - as (string) — Role label for this member in the context of the current object.\n - email (string) — Member email address.\n - person_id (integer) — Member ID.\n - person_name (string) — Member display name.\n - owner_id (integer) (required) — Primary owner member ID. 0 if none.\n - post_mortem_id (string) (required) — Associated post-mortem ID, if any. One incident can only link to a single post-mortem.\n - progress (string) (required) — Incident progress state. [Triggered, Processing, Closed]\n - reporter_email (string) — Reporter email for manually created incidents.\n - resolution (string) (required) — Resolution notes.\n - responders (array) (required) — Current responders with assignment/acknowledgement state.\n - acknowledged_at (integer) (required) — Unix timestamp (seconds) when the member acknowledged. 0 if not yet acknowledged.\n - as (string) — Role label of this responder.\n - assigned_at (integer) (required) — Unix timestamp (seconds) when the member was assigned.\n - email (string) — Member email, filled by the server.\n - person_id (integer) (required) — Responder member ID.\n - person_name (string) — Member display name, filled by the server.\n - root_cause (string) (required) — Root cause analysis.\n - score (number) (required) — Similarity score from the vector search.\n - silence_url (string) (required) — Quick-silence URL for this incident.\n - snoozed_before (integer) (required) — Unix timestamp (seconds) until which notifications are snoozed. 0 if not snoozed.\n - start_time (integer) (required) — Unix timestamp (seconds) when the incident started.\n - title (string) (required) — Incident title.\n - updated_at (integer) (required) — Last update timestamp (seconds).\n", + "Incidents.Info": "Response fields (`data` envelope is unwrapped — these fields are at the top level):\n - account_id (integer) (required) — Account ID that owns the incident.\n - account_locale (string) (required) — Account locale.\n - account_name (string) (required) — Account name.\n - account_time_zone (string) (required) — Account time zone.\n - ack_time (integer) (required) — Unix timestamp (seconds) when the incident was first acknowledged. 0 if unacknowledged.\n - active_alert_cnt (integer) (required) — Count of alerts currently in Critical/Warning/Info state.\n - ai_summary (string) (required) — AI-generated summary of the incident.\n - alert_cnt (integer) (required) — Total count of alerts merged into this incident.\n - alert_event_cnt (integer) (required) — Total raw alert event count across all merged alerts.\n - alerts (array) — Embedded alerts, only populated for notification templates and custom actions.\n - account_id (integer) (required) — Account ID.\n - alert_id (string) (required) — Alert ID (MongoDB ObjectID).\n - alert_key (string) (required) — Deduplication key used to merge events into the alert.\n - alert_severity (string) (required) — Current severity. [Critical, Warning, Info, Ok]\n - alert_status (string) (required) — Current status. [Critical, Warning, Info, Ok]\n - channel_id (integer) (required) — Channel ID.\n - channel_name (string) (required) — Channel display name.\n - channel_status (string) (required) — Channel status.\n - created_at (integer) (required) — Creation timestamp (seconds).\n - data_source_id (integer) (required) — Deprecated. Use `integration_id` instead.\n - data_source_name (string) (required) — Deprecated. Use `integration_name`.\n - data_source_ref_id (string) (required) — Deprecated. Use `integration_ref_id`.\n - data_source_type (string) — Deprecated. Use `integration_type`.\n - deleted_at (integer) — Soft-delete timestamp (seconds). Zero if not deleted.\n - description (string) (required) — Alert description.\n - end_time (integer) (required) — Unix timestamp (seconds) when the alert recovered. 0 if still active.\n - event_cnt (integer) (required) — Total number of raw events merged into this alert.\n - events (array) — Raw alert event preview, populated only when requested. Capped at the 20 newest events per alert.\n - account_id (integer) — Account ID.\n - alert_id (string) — Parent alert ID (MongoDB ObjectID).\n - alert_key (string) — Deduplication key used to merge events into an alert.\n - channel_id (integer) — Channel ID the event is routed to.\n - created_at (integer) — Record creation time, Unix epoch seconds.\n - data_source_id (integer) — Deprecated. Use `integration_id` instead.\n - deleted_at (integer) — Soft-delete timestamp (seconds). Zero if not deleted.\n - description (string) — Event description.\n - event_id (string) — Event ID (MongoDB ObjectID).\n - event_severity (string) — Severity of this event. [Critical, Warning, Info, Ok]\n - event_status (string) — Status of this event. [Critical, Warning, Info, Ok]\n - event_time (integer) — Event timestamp, Unix epoch seconds.\n - images (array) — Images attached to the event.\n - alt (string) — Alt text.\n - href (string) — Optional link URL when the image is clicked.\n - src (string) (required) — Image source URL or internal image reference (starts with `img_` or `http`).\n - integration_id (integer) — Integration that produced this event.\n - integration_type (string) — Type/plugin key of the integration that produced this event.\n - labels (object) — Label key-value pairs.\n - title (string) — Event title.\n - title_rule (string) — Title template used to derive `title` from labels.\n - updated_at (integer) — Record update time, Unix epoch seconds.\n - ever_muted (boolean) (required) — Whether this alert has ever been silenced.\n - images (array) (required) — Attached images.\n - alt (string) — Alt text.\n - href (string) — Optional link the image points to.\n - src (string) (required) — Image source. Either an `img_` upload token or an `http(s)` URL.\n - incident (object) — Brief incident reference embedded in an alert.\n - incident_id (string) — Incident ID (ObjectID hex string).\n - progress (string) — Incident progress — one of `Triggered`, `Processing`, `Closed`.\n - title (string) — Incident title.\n - integration_id (integer) (required) — Integration ID that produced the alert.\n - integration_name (string) (required) — Integration display name.\n - integration_ref_id (string) (required) — Integration reference ID.\n - integration_type (string) (required) — Integration type string.\n - labels (object) (required) — Alert labels.\n - last_time (integer) (required) — Unix timestamp (seconds) of the most recent event.\n - responder_email (string) (required) — Primary responder email, if any.\n - responder_name (string) (required) — Primary responder name, if any.\n - start_time (integer) (required) — Unix timestamp (seconds) when the alert first fired.\n - title (string) (required) — Alert title.\n - title_rule (string) (required) — Title rendering rule.\n - updated_at (integer) (required) — Last update timestamp (seconds).\n - assigned_to (object) (required) — Incident assignment target. Either `person_ids` or `escalate_rule_id` must be provided.\n - assigned_at (integer) — Unix timestamp (seconds) when the assignment was made.\n - emails (array) — Email recipients, used by integrations such as ServiceNow.\n - escalate_rule_id (string) — Escalation rule ID (MongoDB ObjectID) to drive assignment.\n - escalate_rule_name (string) — Escalation rule display name, filled by the server.\n - id (string) — Opaque assignment ID generated by the server.\n - layer_idx (integer) — Current level index within the escalation rule.\n - person_ids (array) — Member IDs to assign directly.\n - type (string) — Assignment type: `assign` direct assignment, `reassign` reassignment, `escalate` escalation-rule driven, `reopen` automatic reassignment on reopen. [assign, reassign, escalate, reopen]\n - channel_id (integer) (required) — Channel ID. 0 for standalone incidents.\n - channel_name (string) (required) — Channel display name.\n - channel_status (string) (required) — Channel status.\n - close_time (integer) (required) — Unix timestamp (seconds) when the incident was closed. 0 if still open.\n - closer (object) — A Flashduty member reference.\n - as (string) — Role label for this member in the context of the current object.\n - email (string) — Member email address.\n - person_id (integer) — Member ID.\n - person_name (string) — Member display name.\n - closer_id (integer) (required) — Member ID that closed the incident. 0 if auto-closed.\n - created_at (integer) (required) — Creation timestamp (seconds).\n - creator (object) — A Flashduty member reference.\n - as (string) — Role label for this member in the context of the current object.\n - email (string) — Member email address.\n - person_id (integer) — Member ID.\n - person_name (string) — Member display name.\n - creator_id (integer) (required) — Member ID that created the incident. 0 if auto-created by the system.\n - data_source_id (integer) — Deprecated. Use `integration_id` instead.\n - data_source_ids (array) — Deprecated. Use `integration_ids` instead.\n - data_source_type (string) — Deprecated. Use `integration_type` instead.\n - data_source_types (array) — Deprecated. Use `integration_types` instead.\n - dedup_key (string) (required) — Deduplication key used to coalesce alerts.\n - deleted_at (integer) — Soft-delete timestamp (seconds). Zero if not deleted.\n - description (string) (required) — Incident description.\n - detail_url (string) (required) — Web console URL for the incident.\n - end_time (integer) (required) — Unix timestamp (seconds) when the incident ended. 0 if still active.\n - equals_md5 (string) (required) — MD5 hash used for content-equality checks.\n - ever_muted (boolean) (required) — Whether the incident has ever been silenced.\n - fields (object) (required) — Custom field values keyed by field name.\n - frequency (string) — Frequency bucket for recurrence analysis: `frequent` or `rare`. [frequent, rare]\n - group_method (string) (required) — Alert grouping method: `i` intelligent, `p` pattern, `n` none. [i, p, n]\n - images (array) (required) — Attached images.\n - alt (string) — Alt text.\n - href (string) — Optional link the image points to.\n - src (string) (required) — Image source. Either an `img_` upload token or an `http(s)` URL.\n - impact (string) (required) — Impact description.\n - incident_id (string) (required) — Incident ID (MongoDB ObjectID).\n - incident_severity (string) (required) — Configured incident severity. [Critical, Warning, Info, Ok]\n - incident_status (string) (required) — Current incident status, derived from alert statuses. [Critical, Warning, Info, Ok]\n - integration_id (integer) (required) — First integration associated with the incident.\n - integration_ids (array) (required) — All integration IDs contributing alerts to this incident.\n - integration_type (string) — First alert's integration type string, used by the detail page for label mappings.\n - integration_types (array) (required) — Integration type strings for all contributing integrations.\n - labels (object) (required) — Labels propagated from alerts.\n - last_time (integer) (required) — Unix timestamp (seconds) of the most recent update.\n - links (array) — Channel-level link integrations rendered for this incident.\n - endpoint (string) (required) — Rendered URL for the link.\n - name (string) (required) — Display name of the link.\n - open_type (string) (required) — How the link should be opened. [popup, tab]\n - manual_overrides (array) (required) — Fields that were manually overridden after auto-population.\n - num (string) (required) — Short display identifier; not guaranteed unique.\n - owner (object) — A Flashduty member reference.\n - as (string) — Role label for this member in the context of the current object.\n - email (string) — Member email address.\n - person_id (integer) — Member ID.\n - person_name (string) — Member display name.\n - owner_id (integer) (required) — Primary owner member ID. 0 if none.\n - post_mortem_id (string) (required) — Associated post-mortem ID, if any. One incident can only link to a single post-mortem.\n - progress (string) (required) — Incident progress state. [Triggered, Processing, Closed]\n - reporter_email (string) — Reporter email for manually created incidents.\n - resolution (string) (required) — Resolution notes.\n - responders (array) (required) — Current responders with assignment/acknowledgement state.\n - acknowledged_at (integer) (required) — Unix timestamp (seconds) when the member acknowledged. 0 if not yet acknowledged.\n - as (string) — Role label of this responder.\n - assigned_at (integer) (required) — Unix timestamp (seconds) when the member was assigned.\n - email (string) — Member email, filled by the server.\n - person_id (integer) (required) — Responder member ID.\n - person_name (string) — Member display name, filled by the server.\n - root_cause (string) (required) — Root cause analysis.\n - silence_url (string) (required) — Quick-silence URL for this incident.\n - snoozed_before (integer) (required) — Unix timestamp (seconds) until which notifications are snoozed. 0 if not snoozed.\n - start_time (integer) (required) — Unix timestamp (seconds) when the incident started.\n - title (string) (required) — Incident title.\n - updated_at (integer) (required) — Last update timestamp (seconds).\n", + "Incidents.List": "Response fields (this command's `--json` is a TOP-LEVEL array of these row objects — pipe `jq '.[]'`, NOT `.items[]`):\n - account_id (integer) (required) — Account ID that owns the incident.\n - account_locale (string) (required) — Account locale.\n - account_name (string) (required) — Account name.\n - account_time_zone (string) (required) — Account time zone.\n - ack_time (integer) (required) — Unix timestamp (seconds) when the incident was first acknowledged. 0 if unacknowledged.\n - active_alert_cnt (integer) (required) — Count of alerts currently in Critical/Warning/Info state.\n - ai_summary (string) (required) — AI-generated summary of the incident.\n - alert_cnt (integer) (required) — Total count of alerts merged into this incident.\n - alert_event_cnt (integer) (required) — Total raw alert event count across all merged alerts.\n - alerts (array) — Embedded alerts, only populated for notification templates and custom actions.\n - account_id (integer) (required) — Account ID.\n - alert_id (string) (required) — Alert ID (MongoDB ObjectID).\n - alert_key (string) (required) — Deduplication key used to merge events into the alert.\n - alert_severity (string) (required) — Current severity. [Critical, Warning, Info, Ok]\n - alert_status (string) (required) — Current status. [Critical, Warning, Info, Ok]\n - channel_id (integer) (required) — Channel ID.\n - channel_name (string) (required) — Channel display name.\n - channel_status (string) (required) — Channel status.\n - created_at (integer) (required) — Creation timestamp (seconds).\n - data_source_id (integer) (required) — Deprecated. Use `integration_id` instead.\n - data_source_name (string) (required) — Deprecated. Use `integration_name`.\n - data_source_ref_id (string) (required) — Deprecated. Use `integration_ref_id`.\n - data_source_type (string) — Deprecated. Use `integration_type`.\n - deleted_at (integer) — Soft-delete timestamp (seconds). Zero if not deleted.\n - description (string) (required) — Alert description.\n - end_time (integer) (required) — Unix timestamp (seconds) when the alert recovered. 0 if still active.\n - event_cnt (integer) (required) — Total number of raw events merged into this alert.\n - events (array) — Raw alert event preview, populated only when requested. Capped at the 20 newest events per alert.\n - account_id (integer) — Account ID.\n - alert_id (string) — Parent alert ID (MongoDB ObjectID).\n - alert_key (string) — Deduplication key used to merge events into an alert.\n - channel_id (integer) — Channel ID the event is routed to.\n - created_at (integer) — Record creation time, Unix epoch seconds.\n - data_source_id (integer) — Deprecated. Use `integration_id` instead.\n - deleted_at (integer) — Soft-delete timestamp (seconds). Zero if not deleted.\n - description (string) — Event description.\n - event_id (string) — Event ID (MongoDB ObjectID).\n - event_severity (string) — Severity of this event. [Critical, Warning, Info, Ok]\n - event_status (string) — Status of this event. [Critical, Warning, Info, Ok]\n - event_time (integer) — Event timestamp, Unix epoch seconds.\n - images (array) — Images attached to the event.\n - integration_id (integer) — Integration that produced this event.\n - integration_type (string) — Type/plugin key of the integration that produced this event.\n - labels (object) — Label key-value pairs.\n - title (string) — Event title.\n - title_rule (string) — Title template used to derive `title` from labels.\n - updated_at (integer) — Record update time, Unix epoch seconds.\n - ever_muted (boolean) (required) — Whether this alert has ever been silenced.\n - images (array) (required) — Attached images.\n - alt (string) — Alt text.\n - href (string) — Optional link the image points to.\n - src (string) (required) — Image source. Either an `img_` upload token or an `http(s)` URL.\n - incident (object) — Brief incident reference embedded in an alert.\n - incident_id (string) — Incident ID (ObjectID hex string).\n - progress (string) — Incident progress — one of `Triggered`, `Processing`, `Closed`.\n - title (string) — Incident title.\n - integration_id (integer) (required) — Integration ID that produced the alert.\n - integration_name (string) (required) — Integration display name.\n - integration_ref_id (string) (required) — Integration reference ID.\n - integration_type (string) (required) — Integration type string.\n - labels (object) (required) — Alert labels.\n - last_time (integer) (required) — Unix timestamp (seconds) of the most recent event.\n - responder_email (string) (required) — Primary responder email, if any.\n - responder_name (string) (required) — Primary responder name, if any.\n - start_time (integer) (required) — Unix timestamp (seconds) when the alert first fired.\n - title (string) (required) — Alert title.\n - title_rule (string) (required) — Title rendering rule.\n - updated_at (integer) (required) — Last update timestamp (seconds).\n - assigned_to (object) (required) — Incident assignment target. Either `person_ids` or `escalate_rule_id` must be provided.\n - assigned_at (integer) — Unix timestamp (seconds) when the assignment was made.\n - emails (array) — Email recipients, used by integrations such as ServiceNow.\n - escalate_rule_id (string) — Escalation rule ID (MongoDB ObjectID) to drive assignment.\n - escalate_rule_name (string) — Escalation rule display name, filled by the server.\n - id (string) — Opaque assignment ID generated by the server.\n - layer_idx (integer) — Current level index within the escalation rule.\n - person_ids (array) — Member IDs to assign directly.\n - type (string) — Assignment type: `assign` direct assignment, `reassign` reassignment, `escalate` escalation-rule driven, `reopen` automatic reassignment on reopen. [assign, reassign, escalate, reopen]\n - channel_id (integer) (required) — Channel ID. 0 for standalone incidents.\n - channel_name (string) (required) — Channel display name.\n - channel_status (string) (required) — Channel status.\n - close_time (integer) (required) — Unix timestamp (seconds) when the incident was closed. 0 if still open.\n - closer (object) — A Flashduty member reference.\n - as (string) — Role label for this member in the context of the current object.\n - email (string) — Member email address.\n - person_id (integer) — Member ID.\n - person_name (string) — Member display name.\n - closer_id (integer) (required) — Member ID that closed the incident. 0 if auto-closed.\n - created_at (integer) (required) — Creation timestamp (seconds).\n - creator (object) — A Flashduty member reference.\n - as (string) — Role label for this member in the context of the current object.\n - email (string) — Member email address.\n - person_id (integer) — Member ID.\n - person_name (string) — Member display name.\n - creator_id (integer) (required) — Member ID that created the incident. 0 if auto-created by the system.\n - data_source_id (integer) — Deprecated. Use `integration_id` instead.\n - data_source_ids (array) — Deprecated. Use `integration_ids` instead.\n - data_source_type (string) — Deprecated. Use `integration_type` instead.\n - data_source_types (array) — Deprecated. Use `integration_types` instead.\n - dedup_key (string) (required) — Deduplication key used to coalesce alerts.\n - deleted_at (integer) — Soft-delete timestamp (seconds). Zero if not deleted.\n - description (string) (required) — Incident description.\n - detail_url (string) (required) — Web console URL for the incident.\n - end_time (integer) (required) — Unix timestamp (seconds) when the incident ended. 0 if still active.\n - equals_md5 (string) (required) — MD5 hash used for content-equality checks.\n - ever_muted (boolean) (required) — Whether the incident has ever been silenced.\n - fields (object) (required) — Custom field values keyed by field name.\n - frequency (string) — Frequency bucket for recurrence analysis: `frequent` or `rare`. [frequent, rare]\n - group_method (string) (required) — Alert grouping method: `i` intelligent, `p` pattern, `n` none. [i, p, n]\n - images (array) (required) — Attached images.\n - alt (string) — Alt text.\n - href (string) — Optional link the image points to.\n - src (string) (required) — Image source. Either an `img_` upload token or an `http(s)` URL.\n - impact (string) (required) — Impact description.\n - incident_id (string) (required) — Incident ID (MongoDB ObjectID).\n - incident_severity (string) (required) — Configured incident severity. [Critical, Warning, Info, Ok]\n - incident_status (string) (required) — Current incident status, derived from alert statuses. [Critical, Warning, Info, Ok]\n - integration_id (integer) (required) — First integration associated with the incident.\n - integration_ids (array) (required) — All integration IDs contributing alerts to this incident.\n - integration_type (string) — First alert's integration type string, used by the detail page for label mappings.\n - integration_types (array) (required) — Integration type strings for all contributing integrations.\n - labels (object) (required) — Labels propagated from alerts.\n - last_time (integer) (required) — Unix timestamp (seconds) of the most recent update.\n - links (array) — Channel-level link integrations rendered for this incident.\n - endpoint (string) (required) — Rendered URL for the link.\n - name (string) (required) — Display name of the link.\n - open_type (string) (required) — How the link should be opened. [popup, tab]\n - manual_overrides (array) (required) — Fields that were manually overridden after auto-population.\n - num (string) (required) — Short display identifier; not guaranteed unique.\n - owner (object) — A Flashduty member reference.\n - as (string) — Role label for this member in the context of the current object.\n - email (string) — Member email address.\n - person_id (integer) — Member ID.\n - person_name (string) — Member display name.\n - owner_id (integer) (required) — Primary owner member ID. 0 if none.\n - post_mortem_id (string) (required) — Associated post-mortem ID, if any. One incident can only link to a single post-mortem.\n - progress (string) (required) — Incident progress state. [Triggered, Processing, Closed]\n - reporter_email (string) — Reporter email for manually created incidents.\n - resolution (string) (required) — Resolution notes.\n - responders (array) (required) — Current responders with assignment/acknowledgement state.\n - acknowledged_at (integer) (required) — Unix timestamp (seconds) when the member acknowledged. 0 if not yet acknowledged.\n - as (string) — Role label of this responder.\n - assigned_at (integer) (required) — Unix timestamp (seconds) when the member was assigned.\n - email (string) — Member email, filled by the server.\n - person_id (integer) (required) — Responder member ID.\n - person_name (string) — Member display name, filled by the server.\n - root_cause (string) (required) — Root cause analysis.\n - silence_url (string) (required) — Quick-silence URL for this incident.\n - snoozed_before (integer) (required) — Unix timestamp (seconds) until which notifications are snoozed. 0 if not snoozed.\n - start_time (integer) (required) — Unix timestamp (seconds) when the incident started.\n - title (string) (required) — Incident title.\n - updated_at (integer) (required) — Last update timestamp (seconds).\n", + "Incidents.ListByIDs": "Response fields (this command's `--json` is a TOP-LEVEL array of these row objects — pipe `jq '.[]'`, NOT `.items[]`):\n - account_id (integer) (required) — Account ID that owns the incident.\n - account_locale (string) (required) — Account locale.\n - account_name (string) (required) — Account name.\n - account_time_zone (string) (required) — Account time zone.\n - ack_time (integer) (required) — Unix timestamp (seconds) when the incident was first acknowledged. 0 if unacknowledged.\n - active_alert_cnt (integer) (required) — Count of alerts currently in Critical/Warning/Info state.\n - ai_summary (string) (required) — AI-generated summary of the incident.\n - alert_cnt (integer) (required) — Total count of alerts merged into this incident.\n - alert_event_cnt (integer) (required) — Total raw alert event count across all merged alerts.\n - alerts (array) — Embedded alerts, only populated for notification templates and custom actions.\n - account_id (integer) (required) — Account ID.\n - alert_id (string) (required) — Alert ID (MongoDB ObjectID).\n - alert_key (string) (required) — Deduplication key used to merge events into the alert.\n - alert_severity (string) (required) — Current severity. [Critical, Warning, Info, Ok]\n - alert_status (string) (required) — Current status. [Critical, Warning, Info, Ok]\n - channel_id (integer) (required) — Channel ID.\n - channel_name (string) (required) — Channel display name.\n - channel_status (string) (required) — Channel status.\n - created_at (integer) (required) — Creation timestamp (seconds).\n - data_source_id (integer) (required) — Deprecated. Use `integration_id` instead.\n - data_source_name (string) (required) — Deprecated. Use `integration_name`.\n - data_source_ref_id (string) (required) — Deprecated. Use `integration_ref_id`.\n - data_source_type (string) — Deprecated. Use `integration_type`.\n - deleted_at (integer) — Soft-delete timestamp (seconds). Zero if not deleted.\n - description (string) (required) — Alert description.\n - end_time (integer) (required) — Unix timestamp (seconds) when the alert recovered. 0 if still active.\n - event_cnt (integer) (required) — Total number of raw events merged into this alert.\n - events (array) — Raw alert event preview, populated only when requested. Capped at the 20 newest events per alert.\n - account_id (integer) — Account ID.\n - alert_id (string) — Parent alert ID (MongoDB ObjectID).\n - alert_key (string) — Deduplication key used to merge events into an alert.\n - channel_id (integer) — Channel ID the event is routed to.\n - created_at (integer) — Record creation time, Unix epoch seconds.\n - data_source_id (integer) — Deprecated. Use `integration_id` instead.\n - deleted_at (integer) — Soft-delete timestamp (seconds). Zero if not deleted.\n - description (string) — Event description.\n - event_id (string) — Event ID (MongoDB ObjectID).\n - event_severity (string) — Severity of this event. [Critical, Warning, Info, Ok]\n - event_status (string) — Status of this event. [Critical, Warning, Info, Ok]\n - event_time (integer) — Event timestamp, Unix epoch seconds.\n - images (array) — Images attached to the event.\n - integration_id (integer) — Integration that produced this event.\n - integration_type (string) — Type/plugin key of the integration that produced this event.\n - labels (object) — Label key-value pairs.\n - title (string) — Event title.\n - title_rule (string) — Title template used to derive `title` from labels.\n - updated_at (integer) — Record update time, Unix epoch seconds.\n - ever_muted (boolean) (required) — Whether this alert has ever been silenced.\n - images (array) (required) — Attached images.\n - alt (string) — Alt text.\n - href (string) — Optional link the image points to.\n - src (string) (required) — Image source. Either an `img_` upload token or an `http(s)` URL.\n - incident (object) — Brief incident reference embedded in an alert.\n - incident_id (string) — Incident ID (ObjectID hex string).\n - progress (string) — Incident progress — one of `Triggered`, `Processing`, `Closed`.\n - title (string) — Incident title.\n - integration_id (integer) (required) — Integration ID that produced the alert.\n - integration_name (string) (required) — Integration display name.\n - integration_ref_id (string) (required) — Integration reference ID.\n - integration_type (string) (required) — Integration type string.\n - labels (object) (required) — Alert labels.\n - last_time (integer) (required) — Unix timestamp (seconds) of the most recent event.\n - responder_email (string) (required) — Primary responder email, if any.\n - responder_name (string) (required) — Primary responder name, if any.\n - start_time (integer) (required) — Unix timestamp (seconds) when the alert first fired.\n - title (string) (required) — Alert title.\n - title_rule (string) (required) — Title rendering rule.\n - updated_at (integer) (required) — Last update timestamp (seconds).\n - assigned_to (object) (required) — Incident assignment target. Either `person_ids` or `escalate_rule_id` must be provided.\n - assigned_at (integer) — Unix timestamp (seconds) when the assignment was made.\n - emails (array) — Email recipients, used by integrations such as ServiceNow.\n - escalate_rule_id (string) — Escalation rule ID (MongoDB ObjectID) to drive assignment.\n - escalate_rule_name (string) — Escalation rule display name, filled by the server.\n - id (string) — Opaque assignment ID generated by the server.\n - layer_idx (integer) — Current level index within the escalation rule.\n - person_ids (array) — Member IDs to assign directly.\n - type (string) — Assignment type: `assign` direct assignment, `reassign` reassignment, `escalate` escalation-rule driven, `reopen` automatic reassignment on reopen. [assign, reassign, escalate, reopen]\n - channel_id (integer) (required) — Channel ID. 0 for standalone incidents.\n - channel_name (string) (required) — Channel display name.\n - channel_status (string) (required) — Channel status.\n - close_time (integer) (required) — Unix timestamp (seconds) when the incident was closed. 0 if still open.\n - closer (object) — A Flashduty member reference.\n - as (string) — Role label for this member in the context of the current object.\n - email (string) — Member email address.\n - person_id (integer) — Member ID.\n - person_name (string) — Member display name.\n - closer_id (integer) (required) — Member ID that closed the incident. 0 if auto-closed.\n - created_at (integer) (required) — Creation timestamp (seconds).\n - creator (object) — A Flashduty member reference.\n - as (string) — Role label for this member in the context of the current object.\n - email (string) — Member email address.\n - person_id (integer) — Member ID.\n - person_name (string) — Member display name.\n - creator_id (integer) (required) — Member ID that created the incident. 0 if auto-created by the system.\n - data_source_id (integer) — Deprecated. Use `integration_id` instead.\n - data_source_ids (array) — Deprecated. Use `integration_ids` instead.\n - data_source_type (string) — Deprecated. Use `integration_type` instead.\n - data_source_types (array) — Deprecated. Use `integration_types` instead.\n - dedup_key (string) (required) — Deduplication key used to coalesce alerts.\n - deleted_at (integer) — Soft-delete timestamp (seconds). Zero if not deleted.\n - description (string) (required) — Incident description.\n - detail_url (string) (required) — Web console URL for the incident.\n - end_time (integer) (required) — Unix timestamp (seconds) when the incident ended. 0 if still active.\n - equals_md5 (string) (required) — MD5 hash used for content-equality checks.\n - ever_muted (boolean) (required) — Whether the incident has ever been silenced.\n - fields (object) (required) — Custom field values keyed by field name.\n - frequency (string) — Frequency bucket for recurrence analysis: `frequent` or `rare`. [frequent, rare]\n - group_method (string) (required) — Alert grouping method: `i` intelligent, `p` pattern, `n` none. [i, p, n]\n - images (array) (required) — Attached images.\n - alt (string) — Alt text.\n - href (string) — Optional link the image points to.\n - src (string) (required) — Image source. Either an `img_` upload token or an `http(s)` URL.\n - impact (string) (required) — Impact description.\n - incident_id (string) (required) — Incident ID (MongoDB ObjectID).\n - incident_severity (string) (required) — Configured incident severity. [Critical, Warning, Info, Ok]\n - incident_status (string) (required) — Current incident status, derived from alert statuses. [Critical, Warning, Info, Ok]\n - integration_id (integer) (required) — First integration associated with the incident.\n - integration_ids (array) (required) — All integration IDs contributing alerts to this incident.\n - integration_type (string) — First alert's integration type string, used by the detail page for label mappings.\n - integration_types (array) (required) — Integration type strings for all contributing integrations.\n - labels (object) (required) — Labels propagated from alerts.\n - last_time (integer) (required) — Unix timestamp (seconds) of the most recent update.\n - links (array) — Channel-level link integrations rendered for this incident.\n - endpoint (string) (required) — Rendered URL for the link.\n - name (string) (required) — Display name of the link.\n - open_type (string) (required) — How the link should be opened. [popup, tab]\n - manual_overrides (array) (required) — Fields that were manually overridden after auto-population.\n - num (string) (required) — Short display identifier; not guaranteed unique.\n - owner (object) — A Flashduty member reference.\n - as (string) — Role label for this member in the context of the current object.\n - email (string) — Member email address.\n - person_id (integer) — Member ID.\n - person_name (string) — Member display name.\n - owner_id (integer) (required) — Primary owner member ID. 0 if none.\n - post_mortem_id (string) (required) — Associated post-mortem ID, if any. One incident can only link to a single post-mortem.\n - progress (string) (required) — Incident progress state. [Triggered, Processing, Closed]\n - reporter_email (string) — Reporter email for manually created incidents.\n - resolution (string) (required) — Resolution notes.\n - responders (array) (required) — Current responders with assignment/acknowledgement state.\n - acknowledged_at (integer) (required) — Unix timestamp (seconds) when the member acknowledged. 0 if not yet acknowledged.\n - as (string) — Role label of this responder.\n - assigned_at (integer) (required) — Unix timestamp (seconds) when the member was assigned.\n - email (string) — Member email, filled by the server.\n - person_id (integer) (required) — Responder member ID.\n - person_name (string) — Member display name, filled by the server.\n - root_cause (string) (required) — Root cause analysis.\n - silence_url (string) (required) — Quick-silence URL for this incident.\n - snoozed_before (integer) (required) — Unix timestamp (seconds) until which notifications are snoozed. 0 if not snoozed.\n - start_time (integer) (required) — Unix timestamp (seconds) when the incident started.\n - title (string) (required) — Incident title.\n - updated_at (integer) (required) — Last update timestamp (seconds).\n", + "Incidents.PastList": "Response fields (this command's `--json` is a TOP-LEVEL array of these row objects — pipe `jq '.[]'`, NOT `.items[]`):\n - account_id (integer) (required) — Account ID that owns the incident.\n - account_locale (string) (required) — Account locale.\n - account_name (string) (required) — Account name.\n - account_time_zone (string) (required) — Account time zone.\n - ack_time (integer) (required) — Unix timestamp (seconds) when the incident was first acknowledged. 0 if unacknowledged.\n - active_alert_cnt (integer) (required) — Count of alerts currently in Critical/Warning/Info state.\n - ai_summary (string) (required) — AI-generated summary of the incident.\n - alert_cnt (integer) (required) — Total count of alerts merged into this incident.\n - alert_event_cnt (integer) (required) — Total raw alert event count across all merged alerts.\n - alerts (array) — Embedded alerts, only populated for notification templates and custom actions.\n - account_id (integer) (required) — Account ID.\n - alert_id (string) (required) — Alert ID (MongoDB ObjectID).\n - alert_key (string) (required) — Deduplication key used to merge events into the alert.\n - alert_severity (string) (required) — Current severity. [Critical, Warning, Info, Ok]\n - alert_status (string) (required) — Current status. [Critical, Warning, Info, Ok]\n - channel_id (integer) (required) — Channel ID.\n - channel_name (string) (required) — Channel display name.\n - channel_status (string) (required) — Channel status.\n - created_at (integer) (required) — Creation timestamp (seconds).\n - data_source_id (integer) (required) — Deprecated. Use `integration_id` instead.\n - data_source_name (string) (required) — Deprecated. Use `integration_name`.\n - data_source_ref_id (string) (required) — Deprecated. Use `integration_ref_id`.\n - data_source_type (string) — Deprecated. Use `integration_type`.\n - deleted_at (integer) — Soft-delete timestamp (seconds). Zero if not deleted.\n - description (string) (required) — Alert description.\n - end_time (integer) (required) — Unix timestamp (seconds) when the alert recovered. 0 if still active.\n - event_cnt (integer) (required) — Total number of raw events merged into this alert.\n - events (array) — Raw alert event preview, populated only when requested. Capped at the 20 newest events per alert.\n - account_id (integer) — Account ID.\n - alert_id (string) — Parent alert ID (MongoDB ObjectID).\n - alert_key (string) — Deduplication key used to merge events into an alert.\n - channel_id (integer) — Channel ID the event is routed to.\n - created_at (integer) — Record creation time, Unix epoch seconds.\n - data_source_id (integer) — Deprecated. Use `integration_id` instead.\n - deleted_at (integer) — Soft-delete timestamp (seconds). Zero if not deleted.\n - description (string) — Event description.\n - event_id (string) — Event ID (MongoDB ObjectID).\n - event_severity (string) — Severity of this event. [Critical, Warning, Info, Ok]\n - event_status (string) — Status of this event. [Critical, Warning, Info, Ok]\n - event_time (integer) — Event timestamp, Unix epoch seconds.\n - images (array) — Images attached to the event.\n - integration_id (integer) — Integration that produced this event.\n - integration_type (string) — Type/plugin key of the integration that produced this event.\n - labels (object) — Label key-value pairs.\n - title (string) — Event title.\n - title_rule (string) — Title template used to derive `title` from labels.\n - updated_at (integer) — Record update time, Unix epoch seconds.\n - ever_muted (boolean) (required) — Whether this alert has ever been silenced.\n - images (array) (required) — Attached images.\n - alt (string) — Alt text.\n - href (string) — Optional link the image points to.\n - src (string) (required) — Image source. Either an `img_` upload token or an `http(s)` URL.\n - incident (object) — Brief incident reference embedded in an alert.\n - incident_id (string) — Incident ID (ObjectID hex string).\n - progress (string) — Incident progress — one of `Triggered`, `Processing`, `Closed`.\n - title (string) — Incident title.\n - integration_id (integer) (required) — Integration ID that produced the alert.\n - integration_name (string) (required) — Integration display name.\n - integration_ref_id (string) (required) — Integration reference ID.\n - integration_type (string) (required) — Integration type string.\n - labels (object) (required) — Alert labels.\n - last_time (integer) (required) — Unix timestamp (seconds) of the most recent event.\n - responder_email (string) (required) — Primary responder email, if any.\n - responder_name (string) (required) — Primary responder name, if any.\n - start_time (integer) (required) — Unix timestamp (seconds) when the alert first fired.\n - title (string) (required) — Alert title.\n - title_rule (string) (required) — Title rendering rule.\n - updated_at (integer) (required) — Last update timestamp (seconds).\n - assigned_to (object) (required) — Incident assignment target. Either `person_ids` or `escalate_rule_id` must be provided.\n - assigned_at (integer) — Unix timestamp (seconds) when the assignment was made.\n - emails (array) — Email recipients, used by integrations such as ServiceNow.\n - escalate_rule_id (string) — Escalation rule ID (MongoDB ObjectID) to drive assignment.\n - escalate_rule_name (string) — Escalation rule display name, filled by the server.\n - id (string) — Opaque assignment ID generated by the server.\n - layer_idx (integer) — Current level index within the escalation rule.\n - person_ids (array) — Member IDs to assign directly.\n - type (string) — Assignment type: `assign` direct assignment, `reassign` reassignment, `escalate` escalation-rule driven, `reopen` automatic reassignment on reopen. [assign, reassign, escalate, reopen]\n - channel_id (integer) (required) — Channel ID. 0 for standalone incidents.\n - channel_name (string) (required) — Channel display name.\n - channel_status (string) (required) — Channel status.\n - close_time (integer) (required) — Unix timestamp (seconds) when the incident was closed. 0 if still open.\n - closer (object) — A Flashduty member reference.\n - as (string) — Role label for this member in the context of the current object.\n - email (string) — Member email address.\n - person_id (integer) — Member ID.\n - person_name (string) — Member display name.\n - closer_id (integer) (required) — Member ID that closed the incident. 0 if auto-closed.\n - created_at (integer) (required) — Creation timestamp (seconds).\n - creator (object) — A Flashduty member reference.\n - as (string) — Role label for this member in the context of the current object.\n - email (string) — Member email address.\n - person_id (integer) — Member ID.\n - person_name (string) — Member display name.\n - creator_id (integer) (required) — Member ID that created the incident. 0 if auto-created by the system.\n - data_source_id (integer) — Deprecated. Use `integration_id` instead.\n - data_source_ids (array) — Deprecated. Use `integration_ids` instead.\n - data_source_type (string) — Deprecated. Use `integration_type` instead.\n - data_source_types (array) — Deprecated. Use `integration_types` instead.\n - dedup_key (string) (required) — Deduplication key used to coalesce alerts.\n - deleted_at (integer) — Soft-delete timestamp (seconds). Zero if not deleted.\n - description (string) (required) — Incident description.\n - detail_url (string) (required) — Web console URL for the incident.\n - end_time (integer) (required) — Unix timestamp (seconds) when the incident ended. 0 if still active.\n - equals_md5 (string) (required) — MD5 hash used for content-equality checks.\n - ever_muted (boolean) (required) — Whether the incident has ever been silenced.\n - fields (object) (required) — Custom field values keyed by field name.\n - frequency (string) — Frequency bucket for recurrence analysis: `frequent` or `rare`. [frequent, rare]\n - group_method (string) (required) — Alert grouping method: `i` intelligent, `p` pattern, `n` none. [i, p, n]\n - images (array) (required) — Attached images.\n - alt (string) — Alt text.\n - href (string) — Optional link the image points to.\n - src (string) (required) — Image source. Either an `img_` upload token or an `http(s)` URL.\n - impact (string) (required) — Impact description.\n - incident_id (string) (required) — Incident ID (MongoDB ObjectID).\n - incident_severity (string) (required) — Configured incident severity. [Critical, Warning, Info, Ok]\n - incident_status (string) (required) — Current incident status, derived from alert statuses. [Critical, Warning, Info, Ok]\n - integration_id (integer) (required) — First integration associated with the incident.\n - integration_ids (array) (required) — All integration IDs contributing alerts to this incident.\n - integration_type (string) — First alert's integration type string, used by the detail page for label mappings.\n - integration_types (array) (required) — Integration type strings for all contributing integrations.\n - labels (object) (required) — Labels propagated from alerts.\n - last_time (integer) (required) — Unix timestamp (seconds) of the most recent update.\n - links (array) — Channel-level link integrations rendered for this incident.\n - endpoint (string) (required) — Rendered URL for the link.\n - name (string) (required) — Display name of the link.\n - open_type (string) (required) — How the link should be opened. [popup, tab]\n - manual_overrides (array) (required) — Fields that were manually overridden after auto-population.\n - num (string) (required) — Short display identifier; not guaranteed unique.\n - owner (object) — A Flashduty member reference.\n - as (string) — Role label for this member in the context of the current object.\n - email (string) — Member email address.\n - person_id (integer) — Member ID.\n - person_name (string) — Member display name.\n - owner_id (integer) (required) — Primary owner member ID. 0 if none.\n - post_mortem_id (string) (required) — Associated post-mortem ID, if any. One incident can only link to a single post-mortem.\n - progress (string) (required) — Incident progress state. [Triggered, Processing, Closed]\n - reporter_email (string) — Reporter email for manually created incidents.\n - resolution (string) (required) — Resolution notes.\n - responders (array) (required) — Current responders with assignment/acknowledgement state.\n - acknowledged_at (integer) (required) — Unix timestamp (seconds) when the member acknowledged. 0 if not yet acknowledged.\n - as (string) — Role label of this responder.\n - assigned_at (integer) (required) — Unix timestamp (seconds) when the member was assigned.\n - email (string) — Member email, filled by the server.\n - person_id (integer) (required) — Responder member ID.\n - person_name (string) — Member display name, filled by the server.\n - root_cause (string) (required) — Root cause analysis.\n - score (number) (required) — Similarity score from the vector search.\n - silence_url (string) (required) — Quick-silence URL for this incident.\n - snoozed_before (integer) (required) — Unix timestamp (seconds) until which notifications are snoozed. 0 if not snoozed.\n - start_time (integer) (required) — Unix timestamp (seconds) when the incident started.\n - title (string) (required) — Incident title.\n - updated_at (integer) (required) — Last update timestamp (seconds).\n", "Incidents.PostMortemInfo": "Response fields (`data` envelope is unwrapped — these fields are at the top level):\n - basics (object) (required)\n - incidents_earliest_start_seconds (integer) (required) — Earliest start time among linked incidents (seconds).\n - incidents_highest_severity (string) (required) — Highest severity among linked incidents.\n - incidents_latest_close_seconds (integer) (required) — Latest close time among linked incidents (seconds).\n - incidents_total_duration_seconds (integer) (required) — Cumulative duration in seconds.\n - responders (array) (required) — Responders involved in the incident(s).\n - acknowledged_at (integer) (required) — Unix timestamp (seconds) when the member acknowledged. 0 if not yet acknowledged.\n - as (string) — Role label of this responder.\n - assigned_at (integer) (required) — Unix timestamp (seconds) when the member was assigned.\n - email (string) — Member email, filled by the server.\n - person_id (integer) (required) — Responder member ID.\n - person_name (string) — Member display name, filled by the server.\n - content (object) (required)\n - content (string) (required) — Report body content (BlockNote JSON).\n - follow_ups (string) (required) — Follow-up action items rendered as a single string.\n - meta (object) (required) — Post-mortem metadata (lightweight shape used in lists).\n - account_id (integer) (required) — Account ID.\n - author_ids (array) (required) — Member IDs that contributed to the report.\n - channel_id (integer) (required) — Owning channel ID. 0 if none.\n - channel_name (string) (required) — Channel name, filled by the server.\n - created_at_seconds (integer) (required) — Creation timestamp (seconds).\n - incident_ids (array) (required) — Linked incident IDs.\n - is_private (boolean) (required) — When true, only team members and admins can view.\n - media_count (integer) (required) — Number of uploaded media files.\n - post_mortem_id (string) (required) — Deterministic post-mortem ID derived from account and incident IDs.\n - status (string) (required) — Report status. [drafting, published]\n - team_id (integer) (required) — Owning team ID. 0 if none.\n - template_id (string) (required) — Template used to initialize the report.\n - title (string) (required) — Report title.\n - updated_at_seconds (integer) (required) — Last update timestamp (seconds).\n", "Incidents.PostMortemList": "Response fields (this command's `--json` is a TOP-LEVEL array of these row objects — pipe `jq '.[]'`, NOT `.items[]`):\n - account_id (integer) (required) — Account ID.\n - author_ids (array) (required) — Member IDs that contributed to the report.\n - channel_id (integer) (required) — Owning channel ID. 0 if none.\n - channel_name (string) (required) — Channel name, filled by the server.\n - created_at_seconds (integer) (required) — Creation timestamp (seconds).\n - incident_ids (array) (required) — Linked incident IDs.\n - is_private (boolean) (required) — When true, only team members and admins can view.\n - media_count (integer) (required) — Number of uploaded media files.\n - post_mortem_id (string) (required) — Deterministic post-mortem ID derived from account and incident IDs.\n - status (string) (required) — Report status. [drafting, published]\n - team_id (integer) (required) — Owning team ID. 0 if none.\n - template_id (string) (required) — Template used to initialize the report.\n - title (string) (required) — Report title.\n - updated_at_seconds (integer) (required) — Last update timestamp (seconds).\n", "Incidents.PostmortemReadListTemplates": "Response fields (this command's `--json` is a TOP-LEVEL array of these row objects — pipe `jq '.[]'`, NOT `.items[]`):\n - account_id (integer) (required) — Account ID that owns the template. 0 for built-in templates.\n - content (string) (required) — BlockNote JSON content used to initialize the report body.\n - content_markdown (string) (required) — Markdown version of the template content, used by AI generation.\n - created_at_seconds (integer) (required) — Unix timestamp in seconds when the template was created.\n - description (string) (required) — Template description.\n - name (string) (required) — Template name shown in the console.\n - team_id (integer) (required) — Managing team ID. Built-in templates use 0.\n - template_id (string) (required) — Template ID. Built-in templates use a stable `post_mortem_default_tmpl_*` ID.\n - updated_at_seconds (integer) (required) — Unix timestamp in seconds when the template was last updated.\n", @@ -154,6 +157,7 @@ var responseHelpBySDKMethod = map[string]string{ "Skills.WriteUpdate": "Response fields (`data` envelope is unwrapped — these fields are at the top level):\n - account_id (integer) (required) — Owning account ID.\n - author (string) — Skill author.\n - can_edit (boolean) (required) — Whether the caller may edit this skill.\n - checksum (string) — SHA-256 checksum of the skill zip.\n - content (string) — Full SKILL.md content. Omitted in list responses.\n - created (boolean) — Set only on install-from-session responses: true = fresh install, false = in-place update.\n - created_at (integer) (required) — Creation time. Unix timestamp in milliseconds.\n - created_by (integer) (required) — Member ID that created the skill.\n - description (string) (required) — Human-readable description from the SKILL.md frontmatter.\n - is_modified (boolean) (required) — True when a marketplace-sourced skill was edited locally (auto-update skips it).\n - license (string) — Skill license.\n - s3_key (string) — Object-storage key of the skill zip.\n - skill_id (string) (required) — Unique skill ID (prefix `skill_`).\n - skill_name (string) (required) — Skill name, unique within the account.\n - source_template_name (string) — Marketplace template this skill was installed from; empty for user-authored.\n - source_template_version (string) — Template version at install time.\n - status (string) (required) — Skill status. [enabled, disabled]\n - tags (array) — Tags parsed from the frontmatter.\n - team_id (integer) (required) — Team scope: 0 = account-wide; >0 = the owning team.\n - tools (array) — Required tools (builtin or `mcp:server/tool`).\n - update_available (boolean) (required) — True when the marketplace has a newer template version.\n - updated_at (integer) (required) — Last update time. Unix timestamp in milliseconds.\n - version (string) — Skill version from the frontmatter.\n", "Skills.WriteUpload": "Response fields (`data` envelope is unwrapped — these fields are at the top level):\n - account_id (integer) (required) — Owning account ID.\n - author (string) — Skill author.\n - can_edit (boolean) (required) — Whether the caller may edit this skill.\n - checksum (string) — SHA-256 checksum of the skill zip.\n - content (string) — Full SKILL.md content. Omitted in list responses.\n - created (boolean) — Set only on install-from-session responses: true = fresh install, false = in-place update.\n - created_at (integer) (required) — Creation time. Unix timestamp in milliseconds.\n - created_by (integer) (required) — Member ID that created the skill.\n - description (string) (required) — Human-readable description from the SKILL.md frontmatter.\n - is_modified (boolean) (required) — True when a marketplace-sourced skill was edited locally (auto-update skips it).\n - license (string) — Skill license.\n - s3_key (string) — Object-storage key of the skill zip.\n - skill_id (string) (required) — Unique skill ID (prefix `skill_`).\n - skill_name (string) (required) — Skill name, unique within the account.\n - source_template_name (string) — Marketplace template this skill was installed from; empty for user-authored.\n - source_template_version (string) — Template version at install time.\n - status (string) (required) — Skill status. [enabled, disabled]\n - tags (array) — Tags parsed from the frontmatter.\n - team_id (integer) (required) — Team scope: 0 = account-wide; >0 = the owning team.\n - tools (array) — Required tools (builtin or `mcp:server/tool`).\n - update_available (boolean) (required) — True when the marketplace has a newer template version.\n - updated_at (integer) (required) — Last update time. Unix timestamp in milliseconds.\n - version (string) — Skill version from the frontmatter.\n", "Sourcemaps.List": "Response fields (this command's `--json` is a TOP-LEVEL array of these row objects — pipe `jq '.[]'`, NOT `.items[]`):\n - created_at (integer) — Upload timestamp, Unix epoch seconds.\n - git_commit_sha (string) — Git commit SHA for this build.\n - git_repository_url (string) — Git repository URL associated with this build.\n - key (string) — Storage key uniquely identifying this sourcemap file.\n - metadata (object) — Free-form key-value metadata attached to the sourcemap. Shape depends on the upload client; common keys include `git_repository_url` and `git_commit_sha` (though those are also promoted to top-level fields).\n - service (string) — Application or service name.\n - size (integer) — File size in bytes.\n - type (string) — Platform type: `browser`, `android`, or `ios`. [browser, android, ios]\n - updated_at (integer) — Last update timestamp, Unix epoch seconds.\n - version (string) — Application version string.\n", + "Sourcemaps.StackEnrich": "Response fields (`data` envelope is unwrapped — these fields are at the top level):\n - frames (array) (required)\n - address (string) — iOS or native memory address.\n - class_name (string) — Android Java/Kotlin class name.\n - code_snippets (array) — Source-code snippets around this frame.\n - code (string) (required) — Source code on that line.\n - line (integer) (required) — Source line number.\n - column (integer) — Column number for JavaScript or Flutter frames.\n - converted (boolean) (required) — Whether the frame was successfully symbolicated or deobfuscated.\n - file (string) — Source file, URL, or module path.\n - function (string) — Function or method name.\n - line (integer) — Line number.\n - method_name (string) — Android Java/Kotlin method name without class prefix.\n - module (string) — iOS Swift/Objective-C module name.\n - native_address (string) — Unity IL native address.\n - offset (integer) — Symbol offset from function start.\n - original_frame (object) — Parsed stack frame fields shared across platforms.\n - address (string) — iOS or native memory address.\n - class_name (string) — Android Java/Kotlin class name.\n - column (integer) — Column number for JavaScript or Flutter frames.\n - file (string) — Source file, URL, or module path.\n - function (string) — Function or method name.\n - line (integer) — Line number.\n - method_name (string) — Android Java/Kotlin method name without class prefix.\n - module (string) — iOS Swift/Objective-C module name.\n - native_address (string) — Unity IL native address.\n - offset (integer) — Symbol offset from function start.\n - third_party (boolean) — Whether the frame is from third-party or system libraries.\n", "StatusPages.ChangeActiveList": "Response fields (this command's `--json` is a TOP-LEVEL array of these row objects — pipe `jq '.[]'`, NOT `.items[]`):\n - affected_components (array) — Components currently affected by this event, with their resulting status.\n - available_since_seconds (integer) — Timestamp when the component was first available, in unix seconds.\n - component_id (string) — Component ID.\n - description (string) — Component description.\n - hide_all (boolean) — When true, the component is hidden entirely from summary endpoints.\n - hide_uptime (boolean) — When true, uptime data is hidden from summary responses.\n - name (string) (required) — Component display name.\n - order_id (integer) — Display order within its section.\n - section_id (string) — Parent section ID.\n - status (string) (required) — Current component status resulting from the event. [operational, degraded, partial_outage, full_outage, under_maintenance]\n - auto_update_by_schedule (boolean) — Maintenance only: whether the status advances automatically based on the scheduled window.\n - change_id (integer) (required) — Event ID.\n - close_at_seconds (integer) — Scheduled close time in unix seconds. Set for retrospective and maintenance events.\n - description (string) — Event description (Markdown).\n - is_retrospective (boolean) — Whether this event is a retrospective (historical) one.\n - linked_change_ids (array) — Linked event IDs (related incidents, deployments, etc.).\n - notify_subscribers (boolean) — Whether subscribers were notified about this event.\n - page_id (integer) — Parent status page ID.\n - responder_ids (array) — Member IDs responsible for this event.\n - start_at_seconds (integer) — Event start time in unix seconds.\n - status (string) — Current event status. Incident statuses: `investigating`/`identified`/`monitoring`/`resolved`. Maintenance statuses: `scheduled`/`ongoing`/`completed`. [investigating, identified, monitoring, resolved, scheduled, ongoing, completed]\n - title (string) (required) — Event title.\n - type (string) (required) — Event type. [incident, maintenance]\n - updates (array) — Timeline updates attached to this event, ordered by time.\n - at_seconds (integer) (required) — Update timestamp in unix seconds.\n - component_changes (array) — Component status transitions applied by this update.\n - component_id (string) (required) — Component ID.\n - component_name (string) — Component display name. Populated by the backend on read; ignored on write.\n - status (string) (required) — New component status. Incidents support `operational`/`degraded`/`partial_outage`/`full_outage`; maintenances support `operational`/`under_maintenance`. [operational, degraded, partial_outage, full_outage, under_maintenance]\n - description (string) — Update description (Markdown).\n - status (string) — Event status after this update. Omitted when the update does not change the overall status. [investigating, identified, monitoring, resolved, scheduled, ongoing, completed]\n - update_id (string) (required) — Update ID.\n", "StatusPages.ChangeCreate": "Response fields (`data` envelope is unwrapped — these fields are at the top level):\n - change_id (integer) (required) — Newly created event ID.\n - change_name (string) (required) — Event title (echoed from the request).\n", "StatusPages.ChangeInfo": "Response fields (`data` envelope is unwrapped — these fields are at the top level):\n - affected_components (array) — Components currently affected by this event, with their resulting status.\n - available_since_seconds (integer) — Timestamp when the component was first available, in unix seconds.\n - component_id (string) — Component ID.\n - description (string) — Component description.\n - hide_all (boolean) — When true, the component is hidden entirely from summary endpoints.\n - hide_uptime (boolean) — When true, uptime data is hidden from summary responses.\n - name (string) (required) — Component display name.\n - order_id (integer) — Display order within its section.\n - section_id (string) — Parent section ID.\n - status (string) (required) — Current component status resulting from the event. [operational, degraded, partial_outage, full_outage, under_maintenance]\n - auto_update_by_schedule (boolean) — Maintenance only: whether the status advances automatically based on the scheduled window.\n - change_id (integer) (required) — Event ID.\n - close_at_seconds (integer) — Scheduled close time in unix seconds. Set for retrospective and maintenance events.\n - description (string) — Event description (Markdown).\n - is_retrospective (boolean) — Whether this event is a retrospective (historical) one.\n - linked_change_ids (array) — Linked event IDs (related incidents, deployments, etc.).\n - notify_subscribers (boolean) — Whether subscribers were notified about this event.\n - page_id (integer) — Parent status page ID.\n - responder_ids (array) — Member IDs responsible for this event.\n - start_at_seconds (integer) — Event start time in unix seconds.\n - status (string) — Current event status. Incident statuses: `investigating`/`identified`/`monitoring`/`resolved`. Maintenance statuses: `scheduled`/`ongoing`/`completed`. [investigating, identified, monitoring, resolved, scheduled, ongoing, completed]\n - title (string) (required) — Event title.\n - type (string) (required) — Event type. [incident, maintenance]\n - updates (array) — Timeline updates attached to this event, ordered by time.\n - at_seconds (integer) (required) — Update timestamp in unix seconds.\n - component_changes (array) — Component status transitions applied by this update.\n - component_id (string) (required) — Component ID.\n - component_name (string) — Component display name. Populated by the backend on read; ignored on write.\n - status (string) (required) — New component status. Incidents support `operational`/`degraded`/`partial_outage`/`full_outage`; maintenances support `operational`/`under_maintenance`. [operational, degraded, partial_outage, full_outage, under_maintenance]\n - description (string) — Update description (Markdown).\n - status (string) — Event status after this update. Omitted when the update does not change the overall status. [investigating, identified, monitoring, resolved, scheduled, ongoing, completed]\n - update_id (string) (required) — Update ID.\n", diff --git a/internal/cli/zz_generated_sourcemaps.go b/internal/cli/zz_generated_sourcemaps.go index 3f70f77..2f3079f 100644 --- a/internal/cli/zz_generated_sourcemaps.go +++ b/internal/cli/zz_generated_sourcemaps.go @@ -138,7 +138,142 @@ Response fields ('data' envelope is unwrapped — rows are nested under items[]; return cmd } +func genSourcemapsStackEnrichCmd() *cobra.Command { + var dataJSON string + var fArch string + var fBuildID string + var fNear int64 + var fNoCache bool + var fService string + var fSourceType string + var fStack string + var fType string + var fVariant string + var fVersion string + cmd := &cobra.Command{ + Use: "stack-enrich", + Short: "Enrich a stack trace", + Long: `Enrich a stack trace. + +Symbolicate or deobfuscate a browser, Android, iOS, Mini Program, or HarmonyOS stack trace. + +API: POST /sourcemap/stack/enrich (sourcemap-read-stack-enrich) + +Request fields: + --arch string — Android NDK architecture such as 'arm', 'arm64', 'x86', or 'x64'. + --build-id string — Android build ID for Gradle plugin 1.13.0 and later. + --near int — Number of nearby meaningful source lines to return around converted frames. (1-20) + --no-cache bool — Skip cached enrich results. Intended for debugging. + --service string (required) — Application or service name used when the sourcemap was uploaded. + --source-type string — Android error source type. Use 'ndk' with 'arch' for native symbolication. + --stack string — Raw stack trace to parse and enrich. + --type string — Source platform. Defaults to 'browser' when omitted. [browser, android, ios, miniprogram, harmony] + --variant string — Android build variant used by older Gradle plugin versions. + --version string (required) — Application version used when the sourcemap was uploaded. + binary_images (array, via --data) — Loaded binary images from an iOS crash report. + - arch (string) — CPU architecture for this binary image. + - is_system (boolean) (required) — Whether this binary belongs to the operating system. + - load_address (any) — Runtime address. Accepts a hex string such as '0x100000000' or a decimal integer. + - max_address (any) — Runtime address. Accepts a hex string such as '0x100000000' or a decimal integer. + - name (string) (required) — Binary image name. + - uuid (string) (required) — Build UUID identifying the binary or dSYM. + +Response fields ('data' envelope is unwrapped — these fields are at the top level): + - frames (array) (required) + - address (string) — iOS or native memory address. + - class_name (string) — Android Java/Kotlin class name. + - code_snippets (array) — Source-code snippets around this frame. + - code (string) (required) — Source code on that line. + - line (integer) (required) — Source line number. + - column (integer) — Column number for JavaScript or Flutter frames. + - converted (boolean) (required) — Whether the frame was successfully symbolicated or deobfuscated. + - file (string) — Source file, URL, or module path. + - function (string) — Function or method name. + - line (integer) — Line number. + - method_name (string) — Android Java/Kotlin method name without class prefix. + - module (string) — iOS Swift/Objective-C module name. + - native_address (string) — Unity IL native address. + - offset (integer) — Symbol offset from function start. + - original_frame (object) — Parsed stack frame fields shared across platforms. + - address (string) — iOS or native memory address. + - class_name (string) — Android Java/Kotlin class name. + - column (integer) — Column number for JavaScript or Flutter frames. + - file (string) — Source file, URL, or module path. + - function (string) — Function or method name. + - line (integer) — Line number. + - method_name (string) — Android Java/Kotlin method name without class prefix. + - module (string) — iOS Swift/Objective-C module name. + - native_address (string) — Unity IL native address. + - offset (integer) — Symbol offset from function start. + - third_party (boolean) — Whether the frame is from third-party or system libraries. +`, + Example: ` flashduty sourcemap stack-enrich --data '{"near":3,"service":"my-web-app","stack":"TypeError: Cannot read properties of undefined\n at render (https://cdn.example.com/app.min.js:1:2345)","type":"browser","version":"1.0.0"}'`, + RunE: func(cmd *cobra.Command, args []string) error { + return runCommand(cmd, args, func(ctx *RunContext) error { + body, err := genAssembleBody(dataJSON, func(body map[string]any) error { + if cmd.Flags().Changed("arch") { + body["arch"] = fArch + } + if cmd.Flags().Changed("build-id") { + body["build_id"] = fBuildID + } + if cmd.Flags().Changed("near") { + body["near"] = fNear + } + if cmd.Flags().Changed("no-cache") { + body["no_cache"] = fNoCache + } + if cmd.Flags().Changed("service") { + body["service"] = fService + } + if cmd.Flags().Changed("source-type") { + body["source_type"] = fSourceType + } + if cmd.Flags().Changed("stack") { + body["stack"] = fStack + } + if cmd.Flags().Changed("type") { + body["type"] = fType + } + if cmd.Flags().Changed("variant") { + body["variant"] = fVariant + } + if cmd.Flags().Changed("version") { + body["version"] = fVersion + } + return nil + }) + if err != nil { + return err + } + req := new(flashduty.SourcemapStackEnrichRequest) + if err := genBindBody(body, req); err != nil { + return err + } + out, _, err := ctx.Client.Sourcemaps.StackEnrich(cmdContext(ctx.Cmd), req) + if err != nil { + return err + } + return printGenericResult(ctx, out) + }) + }, + } + cmd.Flags().StringVar(&fArch, "arch", "", "Android NDK architecture such as 'arm', 'arm64', 'x86', or 'x64'.") + cmd.Flags().StringVar(&fBuildID, "build-id", "", "Android build ID for Gradle plugin 1.13.0 and later.") + cmd.Flags().Int64Var(&fNear, "near", 0, "Number of nearby meaningful source lines to return around converted frames. (1-20)") + cmd.Flags().BoolVar(&fNoCache, "no-cache", false, "Skip cached enrich results. Intended for debugging.") + cmd.Flags().StringVar(&fService, "service", "", "Application or service name used when the sourcemap was uploaded. (required)") + cmd.Flags().StringVar(&fSourceType, "source-type", "", "Android error source type. Use 'ndk' with 'arch' for native symbolication.") + cmd.Flags().StringVar(&fStack, "stack", "", "Raw stack trace to parse and enrich.") + cmd.Flags().StringVar(&fType, "type", "", "Source platform. Defaults to 'browser' when omitted. [browser, android, ios, miniprogram, harmony]") + cmd.Flags().StringVar(&fVariant, "variant", "", "Android build variant used by older Gradle plugin versions.") + cmd.Flags().StringVar(&fVersion, "version", "", "Application version used when the sourcemap was uploaded. (required)") + cmd.Flags().StringVar(&dataJSON, "data", "", "Full request body as JSON; positional arguments and typed flags override its fields. Accepts inline JSON, or - to read stdin.") + return cmd +} + func registerGeneratedSourcemaps(root *cobra.Command) { gSourcemap := genGroup(root, "sourcemap", "RUM/Sourcemaps API") genAddLeaf(gSourcemap, genSourcemapsListCmd()) + genAddLeaf(gSourcemap, genSourcemapsStackEnrichCmd()) } diff --git a/skills/flashduty/SKILL.md b/skills/flashduty/SKILL.md index ad4925f..4670b2d 100644 --- a/skills/flashduty/SKILL.md +++ b/skills/flashduty/SKILL.md @@ -1,7 +1,7 @@ --- name: flashduty version: "3.0" -description: "USE FIRST for Flashduty tasks — status pages, incidents, alerts, on-call, monitors, automations, RUM, members. `fduty` CLI = the whole API. ALWAYS load this skill + read reference/.md for exact verbs & flags BEFORE running fduty. Don't guess or --help-dance." +description: "USE FIRST for Flashduty tasks — status pages, incidents, alerts, on-call, monitors, automations, RUM, sourcemaps, members. `fduty` CLI = the whole API. ALWAYS load this skill + read reference/.md for exact verbs & flags BEFORE running fduty. Don't guess or --help-dance." allowed-tools: bash, read hidden: true # internal-only: withheld from skills.sh public discovery (Safari embeds this skill directly). --- @@ -71,4 +71,5 @@ Some asks span several commands. For those the skill ships a script that fetches | custom field / 自定义字段 / field option 字段选项 | **`reference/field.md`** | | route / 分派路由 / alert routing 告警路由 / integration routing 集成路由 / routing case 路由用例 | **`reference/route.md`** | | RUM / real user monitoring / 真实用户监控 / frontend 前端 / application 应用 / issue | **`reference/rum.md`** | +| sourcemap / source map / source mapping / symbolication / deobfuscate / stack enrich / dSYM / miniprogram source map | **`reference/sourcemap.md`** | | status page / 状态页 / public incident 公开事件 / public timeline 公开时间线 / maintenance window 维护窗口 / subscriber 订阅者 | **`reference/status-page.md`** | diff --git a/skills/flashduty/reference/alert.md b/skills/flashduty/reference/alert.md index 6c63ec8..9bd12b6 100644 --- a/skills/flashduty/reference/alert.md +++ b/skills/flashduty/reference/alert.md @@ -49,7 +49,11 @@ fduty alert merge --incident-id --comment ### event-list List events for an alert -- `` (positional, required) string — Alert ID (ObjectID hex string). +- `` (positional, required) string — Alert ID (MongoDB ObjectID). +- `--asc` bool — When true, return events oldest-first. Defaults to newest-first. +- `--limit` int64 — Page size. Defaults to 20 and cannot exceed 100. (0-100) +- `--page` int64 — Page number starting at 1. Used when 'search_after_ctx' is omitted. (min 0) +- `--search-after-ctx` string — Cursor returned by the previous page. When supplied, cursor pagination is used instead of page-number pagination. ### events List alert events diff --git a/skills/flashduty/reference/field.md b/skills/flashduty/reference/field.md index 29c0d2c..506f05f 100644 --- a/skills/flashduty/reference/field.md +++ b/skills/flashduty/reference/field.md @@ -4,8 +4,8 @@ Prereq: `SKILL.md` read. Read verbs (`list`, `info`) are free. `delete` is **irr ## Route here when -"自定义字段 / 事件字段 / 字段选项 / incident field / custom field / field schema" → **field**. -NOT `enrichment` (enrichment = rules that auto-populate field values; field = the schema that defines those fields). +"自定义字段 / 事件字段 / 字段选项 / incident field / custom field / field schema" → **field**. +NOT `enrichment` (enrichment = rules that auto-populate field values; field = the schema that defines those fields). You need a **`field_id`** (24-char hex ObjectID) — get it from `field list`. ## Intent → verb diff --git a/skills/flashduty/reference/incident.md b/skills/flashduty/reference/incident.md index 3a1f195..447e274 100644 --- a/skills/flashduty/reference/incident.md +++ b/skills/flashduty/reference/incident.md @@ -124,7 +124,7 @@ Add responders to an incident ### alert-list List alerts of incident - `` (positional, required) string — Incident ID (MongoDB ObjectID). -- `--include-events` bool — When true, include raw alert events in each alert item. +- `--include-events` bool — When true, include at most the 20 newest raw events in each alert item as a preview. - `--is-active` bool — When true return only active alerts (Critical/Warning/Info); when false return only recovered alerts (Ok). Omit to include all. - `--limit` int64 — Page size, at most 1000. (0-1000) - `--page` int64 — Page number starting at 1. (min 0) @@ -317,10 +317,10 @@ Resolve incident - `--resolution` string — Optional resolution note applied to every resolved incident. (≤1024 chars) - `--root-cause` string — Optional root cause note applied to every resolved incident. (≤1024 chars) -### responder-add [...] +### responder-add [...] Add incident responder - `--incident-id` string (required) — Incident ID (MongoDB ObjectID). -- `--person-ids` intSlice (required) — Member IDs from 'flashduty member list' to add as responders. +- `` (positional, required) intSlice — Member IDs to add as responders. - body-only (`--data`): notify (object) ### similar @@ -380,7 +380,7 @@ List incident war rooms Add war-room member - `` (positional, required) string — Chat ID of the war room within the IM platform. - `--integration-id` int64 (required) — IM integration that hosts the war room. -- `--member-ids` intSlice (required) — Member IDs to add to the war room. +- `--member-ids` intSlice (required) — Person IDs to add to the war room. ### war-room-create Create war room diff --git a/skills/flashduty/reference/rum.md b/skills/flashduty/reference/rum.md index 81a38b6..85e3dbd 100644 --- a/skills/flashduty/reference/rum.md +++ b/skills/flashduty/reference/rum.md @@ -62,7 +62,7 @@ Create application - `--no-ip` bool — Do not collect IP addresses. - `` (positional, required) int64 — Owning team ID. - `--type` string (required) — Application type. · enum: browser | ios | android | react-native | flutter | kotlin-multiplatform | roku | unity -- body-only (`--data`): alerting (object); tracing (object) +- body-only (`--data`): alerting (object); links (object); tracing (object) ### application-delete Delete application @@ -96,13 +96,40 @@ Update application - `--no-ip` bool - `--team-id` int64 - `--type` string — enum: browser | ios | android | react-native | flutter | kotlin-multiplatform | roku | unity -- body-only (`--data`): alerting (object); tracing (object) +- body-only (`--data`): alerting (object); links (object); tracing (object) ### application-webhook-test Test application webhook - `` (positional, required) string — RUM application ID. - `--webhook-url` string (required) — Webhook URL to receive the sample alert event. +### data-query +Query RUM data +- `--end-time` int64 (required) — End of the query window, Unix epoch milliseconds. Maximum 31-day span. +- `--start-time` int64 (required) — Start of the query window, Unix epoch milliseconds. +- body-only (`--data`): queries (array) (required) + +### facet-count +Count facet value distribution +- `--dql` string — RUM DQL filter expression applied before counting. +- `--end-time` int64 (required) — End of the time range, Unix epoch milliseconds. Maximum 31-day span. +- `--facet-key` string (required) — The field key to count value distribution for. +- `--limit` int64 — Maximum number of top values to return. Default 100, maximum 100. (max 100) +- `--scope` string (required) — RUM data scope to query. · enum: session | view | action | error | resource | long_task | vital | issue | sourcemap +- `--sql` string — SQL WHERE clause (no SELECT) for additional filtering. +- `--start-time` int64 (required) — Start of the time range, Unix epoch milliseconds. +- body-only (`--data`): facet_value (any) + +### facet-list +List RUM facet fields +- `--is-facet` bool — When true, return only facet-enabled fields. When false or omitted, return all fields. +- `--scopes` stringSlice — Filter by RUM data scopes. Valid values: 'session', 'view', 'action', 'error', 'resource', 'long_task', 'vital', 'issue', 'sourcemap'. + +### field-list +List RUM fields +- `--is-facet` bool — When true, return only facet-enabled fields. When false or omitted, return all fields. +- `--scopes` stringSlice — Filter by RUM data scopes. Valid values: 'session', 'view', 'action', 'error', 'resource', 'long_task', 'vital', 'issue', 'sourcemap'. + ### issue-info Get issue detail - `` (positional, required) string — Issue ID. @@ -156,7 +183,7 @@ Regression: a `resolved` issue that recurs gets a `regression{}` object on its r - **`alerting` and `tracing` are nested objects** — configure them via `--data '{"alerting":{...},"tracing":{...}}'`; there are no flat flags for their sub-fields. Scalar flags (`--application-name`, `--type`, …) override matching `--data` keys. - **Application records hold CONFIG only** — no traffic volume, error-rate, or session-count fields. For trend data, query `monit` RUM series. - **Empty `issue-list` is authoritative** — a filter returning no items means no matching issues, not a missing feature. Do not widen the query or guess. -- **No `rum sourcemap` subcommand** — don't attempt it; it does not exist. +- **No `rum sourcemap` subcommand** — sourcemap lookup and stack enrichment are top-level: read `reference/sourcemap.md` and use `fduty sourcemap ...`. ## Worked example diff --git a/skills/flashduty/reference/sourcemap.md b/skills/flashduty/reference/sourcemap.md new file mode 100644 index 0000000..fea51a1 --- /dev/null +++ b/skills/flashduty/reference/sourcemap.md @@ -0,0 +1,72 @@ +# fduty sourcemap — command card + +Prereq: `SKILL.md` read. These verbs are read-only/debugging helpers. They do not upload, delete, or mutate sourcemap records. + +## Route here when + +"sourcemap / source map / source mapping / 代码映射 / 堆栈还原 / symbolication / deobfuscate / stack trace / stack enrich / dSYM / miniprogram source map" → **sourcemap**, NOT `rum sourcemap`. RUM data queries live under `reference/rum.md`; uploaded mapping-file lookup and stack enrichment live here. + +## Intent → verb + +| want | verb | +|---|---| +| list uploaded sourcemap or dSYM records | `list` | +| enrich / deobfuscate a minified stack trace | `stack-enrich` | + +## Hot flow — enrich a browser stack trace + +```bash +# 1. Confirm the service/version/type actually has uploaded mapping files +fduty sourcemap list \ + --type browser \ + --services checkout-web \ + --start-time 1712000000000 \ + --end-time 1712700000000 \ + --output-format toon + +# 2. Enrich the minified stack trace. Use --data for multiline stack payloads. +fduty sourcemap stack-enrich \ + --data '{"type":"browser","service":"checkout-web","version":"1.0.0","near":3,"stack":"TypeError: Cannot read properties of undefined\n at render (https://cdn.example.com/app.min.js:1:2345)"}' \ + --output-format toon +``` + + + +### list +List sourcemaps +- `--asc` bool — Sort ascending. Default false (descending). +- `--build-id` string — Android only. Filter by Gradle plugin build identifier. Max 200 characters. +- `--end-time` int64 (required) — End of upload time range, Unix epoch milliseconds. Maximum window: 365 days. +- `--limit` int64 — Page size. Maximum 100. Default 20. (max 100) +- `--orderby` string — Sort field. · enum: created_at | updated_at +- `--page` int64 — Page number, starting at 1. (min 1) +- `--query` string — Substring match on the minified URL (browser) or build ID (android). Max 200 characters. +- `--search-after-ctx` string +- `--services` stringSlice — Filter by service names. Up to 100 values. +- `--start-time` int64 (required) — Start of upload time range, Unix epoch milliseconds. Must be > 0 and before 'end_time'. +- `--type` string — Platform type. Defaults to 'browser' when omitted. · enum: browser | android | ios +- `--uuid` string — iOS only. Filter by dSYM bundle UUID. Max 200 characters. +- `--versions` stringSlice — Filter by version strings. Up to 100 values. + +### stack-enrich +Enrich a stack trace +- `--arch` string — Android NDK architecture such as 'arm', 'arm64', 'x86', or 'x64'. +- `--build-id` string — Android build ID for Gradle plugin 1.13.0 and later. +- `--near` int64 — Number of nearby meaningful source lines to return around converted frames. (1-20) +- `--no-cache` bool — Skip cached enrich results. Intended for debugging. +- `--service` string (required) — Application or service name used when the sourcemap was uploaded. +- `--source-type` string — Android error source type. Use 'ndk' with 'arch' for native symbolication. +- `--stack` string — Raw stack trace to parse and enrich. +- `--type` string — Source platform. Defaults to 'browser' when omitted. · enum: browser | android | ios | miniprogram | harmony +- `--variant` string — Android build variant used by older Gradle plugin versions. +- `--version` string (required) — Application version used when the sourcemap was uploaded. +- body-only (`--data`): binary_images (array) + + + +## Gotchas + +- **Top-level group:** use `fduty sourcemap ...`, not `fduty rum sourcemap ...`. +- **`stack-enrich` needs exact upload identity:** `type`, `service`, and `version` must match the uploaded sourcemap/dSYM metadata. +- **Use `--data` for stack traces.** Multiline stacks are easier and safer as JSON body payloads than shell-escaped flags. +- **Empty `list` is authoritative** for the supplied filters; re-check service/version/type from the RUM app or build metadata before changing the time window.