diff --git a/alert_rules.go b/alert_rules.go index 5a141c8..976ee01 100644 --- a/alert_rules.go +++ b/alert_rules.go @@ -12,7 +12,7 @@ type AlertRulesService service // Return the audit record (including the `content` field, a JSON string of the rule snapshot at that point in time). // // API: POST /monit/rule/audit/detail (monit-rule-read-audit-detail). -func (s *AlertRulesService) ReadAuditDetail(ctx context.Context, req *RuleIDRequest) (*AlertRuleAudit, *Response, error) { +func (s *AlertRulesService) ReadAuditDetail(ctx context.Context, req *AuditRecordIDRequest) (*AlertRuleAudit, *Response, error) { out := new(AlertRuleAudit) resp, err := s.client.do(ctx, "/monit/rule/audit/detail", req, out) if err != nil { diff --git a/gen b/gen new file mode 100755 index 0000000..e52581f Binary files /dev/null and b/gen differ diff --git a/incidents.go b/incidents.go index 98b4a9e..5b03b73 100644 --- a/incidents.go +++ b/incidents.go @@ -212,7 +212,7 @@ func (s *IncidentsService) PostMortemDelete(ctx context.Context, req *DeletePost // Get post-mortem. // -// Retrieve the post-mortem report for a specific incident. +// Retrieve a post-mortem report by its `post_mortem_id`. List reports via `/incident/post-mortem/list` first — each row carries the incident it covers — then fetch the full report here by that id. // // API: GET /incident/post-mortem/info (incidentPostMortemInfo). func (s *IncidentsService) PostMortemInfo(ctx context.Context, req *IncidentsPostMortemInfoRequest) (*PostMortemItem, *Response, error) { diff --git a/internal/cmd/gen/main.go b/internal/cmd/gen/main.go index 5008e09..7c4f8e1 100644 --- a/internal/cmd/gen/main.go +++ b/internal/cmd/gen/main.go @@ -660,7 +660,14 @@ func (g *Gen) emitStruct(name string, s map[string]any) string { b.WriteString("\t// " + l + "\n") } } - fmt.Fprintf(&b, "\t%s %s `json:%q`\n", field, gt, k+",omitempty") + // Mirror the json wire-name into a `toon` tag. toon-go reads ONLY the + // `toon` struct tag (internal/codec/structmeta.go) and falls back to the + // Go field NAME (PascalCase) when it is absent — it does NOT read `json`. + // So without this, `--output-format toon` renders PascalCase keys + // (AccountID) while `--json` and the spec-derived help use snake_case + // (account_id); an agent that reads field names off a toon dump and pipes + // them into `--json | jq '.account_id'` hits all-null. Keep both tags. + fmt.Fprintf(&b, "\t%s %s `json:%q toon:%q`\n", field, gt, k+",omitempty", k+",omitempty") } b.WriteString("}\n\n") return b.String() diff --git a/models_gen.go b/models_gen.go index 9f05d1c..4be24ff 100644 --- a/models_gen.go +++ b/models_gen.go @@ -165,750 +165,750 @@ type StoreRulesetListResponse []StoreRulesetItem // A2aAgentCreateRequest is generated from the Flashduty OpenAPI schema. type A2aAgentCreateRequest struct { // Display name of the agent. - AgentName string `json:"agent_name,omitempty"` + AgentName string `json:"agent_name,omitempty" toon:"agent_name,omitempty"` // Authentication parameters keyed by name. - AuthConfig map[string]string `json:"auth_config,omitempty"` + AuthConfig map[string]string `json:"auth_config,omitempty" toon:"auth_config,omitempty"` // Credential model; defaults to shared. - AuthMode string `json:"auth_mode,omitempty"` + AuthMode string `json:"auth_mode,omitempty" toon:"auth_mode,omitempty"` // Authentication scheme used when calling the agent. - AuthType string `json:"auth_type,omitempty"` + AuthType string `json:"auth_type,omitempty" toon:"auth_type,omitempty"` // URL of the agent's published A2A agent card. - CardURL string `json:"card_url,omitempty"` + CardURL string `json:"card_url,omitempty" toon:"card_url,omitempty"` // What this agent does and when to delegate to it. - Description string `json:"description,omitempty"` + Description string `json:"description,omitempty" toon:"description,omitempty"` // OAuth metadata JSON; reserved for OAuth-based auth. - OauthMetadata string `json:"oauth_metadata,omitempty"` + OauthMetadata string `json:"oauth_metadata,omitempty" toon:"oauth_metadata,omitempty"` // JSON schema of the per-user secret; required when auth_mode is per_user_secret. - SecretSchema string `json:"secret_schema,omitempty"` + SecretSchema string `json:"secret_schema,omitempty" toon:"secret_schema,omitempty"` // Whether the agent supports streaming responses. - Streaming bool `json:"streaming,omitempty"` + Streaming bool `json:"streaming,omitempty" toon:"streaming,omitempty"` // Owning team for the new agent; 0 for account scope. - TeamID int64 `json:"team_id,omitempty"` + TeamID int64 `json:"team_id,omitempty" toon:"team_id,omitempty"` } // A2aAgentCreateResponse is generated from the Flashduty OpenAPI schema. type A2aAgentCreateResponse struct { // Identifier of the created agent. - AgentID string `json:"agent_id,omitempty"` + AgentID string `json:"agent_id,omitempty" toon:"agent_id,omitempty"` } // A2aAgentIDRequest is generated from the Flashduty OpenAPI schema. type A2aAgentIDRequest struct { // Identifier of the target agent. - AgentID string `json:"agent_id,omitempty"` + AgentID string `json:"agent_id,omitempty" toon:"agent_id,omitempty"` } // A2aAgentItem is generated from the Flashduty OpenAPI schema. type A2aAgentItem struct { // Owning account. - AccountID int64 `json:"account_id,omitempty"` + AccountID int64 `json:"account_id,omitempty" toon:"account_id,omitempty"` // Name resolved from the fetched agent card. - AgentCardName string `json:"agent_card_name,omitempty"` + AgentCardName string `json:"agent_card_name,omitempty" toon:"agent_card_name,omitempty"` // Skills advertised on the fetched agent card. - AgentCardSkills []string `json:"agent_card_skills,omitempty"` + AgentCardSkills []string `json:"agent_card_skills,omitempty" toon:"agent_card_skills,omitempty"` // Unique identifier of the A2A agent. - AgentID string `json:"agent_id,omitempty"` + AgentID string `json:"agent_id,omitempty" toon:"agent_id,omitempty"` // Display name of the agent. - AgentName string `json:"agent_name,omitempty"` + AgentName string `json:"agent_name,omitempty" toon:"agent_name,omitempty"` // Authentication parameters keyed by name. - AuthConfig map[string]string `json:"auth_config,omitempty"` + AuthConfig map[string]string `json:"auth_config,omitempty" toon:"auth_config,omitempty"` // Credential model: shared, per_user_secret, or per_user_oauth. - AuthMode string `json:"auth_mode,omitempty"` + AuthMode string `json:"auth_mode,omitempty" toon:"auth_mode,omitempty"` // Authentication scheme used when calling the agent. - AuthType string `json:"auth_type,omitempty"` + AuthType string `json:"auth_type,omitempty" toon:"auth_type,omitempty"` // Whether the calling member may edit or delete this resource. - CanEdit bool `json:"can_edit,omitempty"` + CanEdit bool `json:"can_edit,omitempty" toon:"can_edit,omitempty"` // Timeout for fetching the agent card, in seconds. - CardResolveTimeout int64 `json:"card_resolve_timeout,omitempty"` + CardResolveTimeout int64 `json:"card_resolve_timeout,omitempty" toon:"card_resolve_timeout,omitempty"` // URL of the agent's published A2A agent card. - CardURL string `json:"card_url,omitempty"` + CardURL string `json:"card_url,omitempty" toon:"card_url,omitempty"` // Creation time as a Unix timestamp in seconds. - CreatedAt Timestamp `json:"created_at,omitempty"` + CreatedAt Timestamp `json:"created_at,omitempty" toon:"created_at,omitempty"` // Member who created this resource. - CreatedBy int64 `json:"created_by,omitempty"` + CreatedBy int64 `json:"created_by,omitempty" toon:"created_by,omitempty"` // What this agent does and when to delegate to it. - Description string `json:"description,omitempty"` + Description string `json:"description,omitempty" toon:"description,omitempty"` // OAuth metadata JSON. - OauthMetadata string `json:"oauth_metadata,omitempty"` + OauthMetadata string `json:"oauth_metadata,omitempty" toon:"oauth_metadata,omitempty"` // JSON schema of the per-user secret. - SecretSchema string `json:"secret_schema,omitempty"` + SecretSchema string `json:"secret_schema,omitempty" toon:"secret_schema,omitempty"` // Whether the agent is active and reachable. - Status string `json:"status,omitempty"` + Status string `json:"status,omitempty" toon:"status,omitempty"` // Whether the agent supports streaming responses. - Streaming bool `json:"streaming,omitempty"` + Streaming bool `json:"streaming,omitempty" toon:"streaming,omitempty"` // Timeout for a single delegated task, in seconds. - TaskTimeout int64 `json:"task_timeout,omitempty"` + TaskTimeout int64 `json:"task_timeout,omitempty" toon:"task_timeout,omitempty"` // Owning team; 0 means account scope. - TeamID int64 `json:"team_id,omitempty"` + TeamID int64 `json:"team_id,omitempty" toon:"team_id,omitempty"` // Last-update time as a Unix timestamp in seconds. - UpdatedAt Timestamp `json:"updated_at,omitempty"` + UpdatedAt Timestamp `json:"updated_at,omitempty" toon:"updated_at,omitempty"` } // A2aAgentListRequest is generated from the Flashduty OpenAPI schema. type A2aAgentListRequest struct { // Include account-scoped rows alongside team-scoped ones; defaults to true. - IncludeAccount bool `json:"include_account,omitempty"` + IncludeAccount bool `json:"include_account,omitempty" toon:"include_account,omitempty"` // Maximum number of rows to return; defaults to 20. - Limit int64 `json:"limit,omitempty"` + Limit int64 `json:"limit,omitempty" toon:"limit,omitempty"` // Number of rows to skip for pagination. - Offset int64 `json:"offset,omitempty"` + Offset int64 `json:"offset,omitempty" toon:"offset,omitempty"` // Restrict results to resources owned by these teams; intersected with the caller's visible set. - TeamIDs []int64 `json:"team_ids,omitempty"` + TeamIDs []int64 `json:"team_ids,omitempty" toon:"team_ids,omitempty"` } // A2aAgentListResponse is generated from the Flashduty OpenAPI schema. type A2aAgentListResponse struct { // A2A agents on the current page. - Items []A2aAgentItem `json:"items,omitempty"` + Items []A2aAgentItem `json:"items,omitempty" toon:"items,omitempty"` // Total number of agents matching the filters. - Total int64 `json:"total,omitempty"` + Total int64 `json:"total,omitempty" toon:"total,omitempty"` } // A2aAgentUpdateRequest is generated from the Flashduty OpenAPI schema. type A2aAgentUpdateRequest struct { // Identifier of the agent to update. - AgentID string `json:"agent_id,omitempty"` + AgentID string `json:"agent_id,omitempty" toon:"agent_id,omitempty"` // New display name. - AgentName string `json:"agent_name,omitempty"` + AgentName string `json:"agent_name,omitempty" toon:"agent_name,omitempty"` // New authentication parameters. - AuthConfig map[string]string `json:"auth_config,omitempty"` + AuthConfig map[string]string `json:"auth_config,omitempty" toon:"auth_config,omitempty"` // New credential model. - AuthMode string `json:"auth_mode,omitempty"` + AuthMode string `json:"auth_mode,omitempty" toon:"auth_mode,omitempty"` // New authentication scheme. - AuthType string `json:"auth_type,omitempty"` + AuthType string `json:"auth_type,omitempty" toon:"auth_type,omitempty"` // New agent card URL. - CardURL string `json:"card_url,omitempty"` + CardURL string `json:"card_url,omitempty" toon:"card_url,omitempty"` // New description. - Description string `json:"description,omitempty"` + Description string `json:"description,omitempty" toon:"description,omitempty"` // New OAuth metadata JSON. - OauthMetadata string `json:"oauth_metadata,omitempty"` + OauthMetadata string `json:"oauth_metadata,omitempty" toon:"oauth_metadata,omitempty"` // New per-user secret JSON schema. - SecretSchema string `json:"secret_schema,omitempty"` + SecretSchema string `json:"secret_schema,omitempty" toon:"secret_schema,omitempty"` // Toggle streaming-response support. - Streaming bool `json:"streaming,omitempty"` + Streaming bool `json:"streaming,omitempty" toon:"streaming,omitempty"` // Reassign the agent to this team; omit to leave unchanged, 0 for account scope. - TeamID int64 `json:"team_id,omitempty"` + TeamID int64 `json:"team_id,omitempty" toon:"team_id,omitempty"` } // AccountInfo is generated from the Flashduty OpenAPI schema. type AccountInfo struct { // Account identifier. - AccountID int64 `json:"account_id,omitempty"` + AccountID int64 `json:"account_id,omitempty" toon:"account_id,omitempty"` // Account name. - AccountName string `json:"account_name,omitempty"` + AccountName string `json:"account_name,omitempty" toon:"account_name,omitempty"` // Account avatar URL. - Avatar string `json:"avatar,omitempty"` + Avatar string `json:"avatar,omitempty" toon:"avatar,omitempty"` // Calling country code for the contact phone. - CountryCode string `json:"country_code,omitempty"` + CountryCode string `json:"country_code,omitempty" toon:"country_code,omitempty"` // Account creation time, Unix timestamp in seconds. - CreatedAt Timestamp `json:"created_at,omitempty"` + CreatedAt Timestamp `json:"created_at,omitempty" toon:"created_at,omitempty"` // Primary account domain (login subdomain). - Domain string `json:"domain,omitempty"` + Domain string `json:"domain,omitempty" toon:"domain,omitempty"` // Account contact email. - Email string `json:"email,omitempty"` + Email string `json:"email,omitempty" toon:"email,omitempty"` // Additional account domains. - ExtraDomains []string `json:"extra_domains,omitempty"` + ExtraDomains []string `json:"extra_domains,omitempty" toon:"extra_domains,omitempty"` // Account language preference (e.g. zh-CN, en-US). - Locale string `json:"locale,omitempty"` + Locale string `json:"locale,omitempty" toon:"locale,omitempty"` // Account identifier on the cloud marketplace platform (present only for marketplace accounts). - MpAccountID string `json:"mp_account_id,omitempty"` + MpAccountID string `json:"mp_account_id,omitempty" toon:"mp_account_id,omitempty"` // Cloud marketplace platform the account was provisioned from (present only for marketplace accounts). - MpPlat string `json:"mp_plat,omitempty"` + MpPlat string `json:"mp_plat,omitempty" toon:"mp_plat,omitempty"` // Account contact phone, masked for privacy. - Phone string `json:"phone,omitempty"` + Phone string `json:"phone,omitempty" toon:"phone,omitempty"` // Account access restrictions (present only when configured). - Restrictions AccountInfoRestrictions `json:"restrictions,omitempty"` + Restrictions AccountInfoRestrictions `json:"restrictions,omitempty" toon:"restrictions,omitempty"` // Account default timezone (IANA name, e.g. Asia/Shanghai). - TimeZone string `json:"time_zone,omitempty"` + TimeZone string `json:"time_zone,omitempty" toon:"time_zone,omitempty"` } // AckIncidentRequest is generated from the Flashduty OpenAPI schema. type AckIncidentRequest struct { // Incident IDs to acknowledge. At most 100 per call. - IncidentIDs []string `json:"incident_ids,omitempty"` + IncidentIDs []string `json:"incident_ids,omitempty" toon:"incident_ids,omitempty"` } // AddIncidentResponderRequest is generated from the Flashduty OpenAPI schema. type AddIncidentResponderRequest struct { // Incident ID (MongoDB ObjectID). - IncidentID string `json:"incident_id,omitempty"` + IncidentID string `json:"incident_id,omitempty" toon:"incident_id,omitempty"` // Optional notification override. Defaults to following each person's personal preference. - Notify AddIncidentResponderRequestNotify `json:"notify,omitempty"` + Notify AddIncidentResponderRequestNotify `json:"notify,omitempty" toon:"notify,omitempty"` // Member IDs to add as responders. - PersonIDs []int64 `json:"person_ids,omitempty"` + PersonIDs []int64 `json:"person_ids,omitempty" toon:"person_ids,omitempty"` } // AddWarRoomMemberRequest is generated from the Flashduty OpenAPI schema. type AddWarRoomMemberRequest struct { // Chat ID of the war room within the IM platform. - ChatID string `json:"chat_id,omitempty"` + ChatID string `json:"chat_id,omitempty" toon:"chat_id,omitempty"` // IM integration that hosts the war room. - IntegrationID int64 `json:"integration_id,omitempty"` + IntegrationID int64 `json:"integration_id,omitempty" toon:"integration_id,omitempty"` // Person IDs to add to the war room. - MemberIDs []int64 `json:"member_ids,omitempty"` + MemberIDs []int64 `json:"member_ids,omitempty" toon:"member_ids,omitempty"` } // AffectedStatusPageComponentItem is generated from the Flashduty OpenAPI schema. type AffectedStatusPageComponentItem struct { // Timestamp when the component was first available, in unix seconds. - AvailableSinceSeconds Timestamp `json:"available_since_seconds,omitempty"` + AvailableSinceSeconds Timestamp `json:"available_since_seconds,omitempty" toon:"available_since_seconds,omitempty"` // Component ID. - ComponentID string `json:"component_id,omitempty"` + ComponentID string `json:"component_id,omitempty" toon:"component_id,omitempty"` // Component description. - Description string `json:"description,omitempty"` + Description string `json:"description,omitempty" toon:"description,omitempty"` // When true, the component is hidden entirely from summary endpoints. - HideAll bool `json:"hide_all,omitempty"` + HideAll bool `json:"hide_all,omitempty" toon:"hide_all,omitempty"` // When true, uptime data is hidden from summary responses. - HideUptime bool `json:"hide_uptime,omitempty"` + HideUptime bool `json:"hide_uptime,omitempty" toon:"hide_uptime,omitempty"` // Component display name. - Name string `json:"name,omitempty"` + Name string `json:"name,omitempty" toon:"name,omitempty"` // Display order within its section. - OrderID int64 `json:"order_id,omitempty"` + OrderID int64 `json:"order_id,omitempty" toon:"order_id,omitempty"` // Parent section ID. - SectionID string `json:"section_id,omitempty"` + SectionID string `json:"section_id,omitempty" toon:"section_id,omitempty"` // Current component status resulting from the event. - Status string `json:"status,omitempty"` + Status string `json:"status,omitempty" toon:"status,omitempty"` } // AlertEventGlobalListRequest is generated from the Flashduty OpenAPI schema. type AlertEventGlobalListRequest struct { ListOptions // Sort ascending when `true`. - Asc bool `json:"asc,omitempty"` + Asc bool `json:"asc,omitempty" toon:"asc,omitempty"` // Filter by channel IDs. Max 100. - ChannelIDs []int64 `json:"channel_ids,omitempty"` + ChannelIDs []int64 `json:"channel_ids,omitempty" toon:"channel_ids,omitempty"` // End of search window, Unix epoch seconds. - EndTime int64 `json:"end_time,omitempty"` + EndTime int64 `json:"end_time,omitempty" toon:"end_time,omitempty"` // Filter by integration IDs. - IntegrationIDs []int64 `json:"integration_ids,omitempty"` + IntegrationIDs []int64 `json:"integration_ids,omitempty" toon:"integration_ids,omitempty"` // Filter by integration types (plugin keys). - IntegrationTypes []string `json:"integration_types,omitempty"` + IntegrationTypes []string `json:"integration_types,omitempty" toon:"integration_types,omitempty"` // Sort field (ES field name). - Orderby string `json:"orderby,omitempty"` + Orderby string `json:"orderby,omitempty" toon:"orderby,omitempty"` // Comma-separated severity filter, e.g. `Critical,Warning`. - Severities string `json:"severities,omitempty"` + Severities string `json:"severities,omitempty" toon:"severities,omitempty"` // Start of search window, Unix epoch seconds. - StartTime int64 `json:"start_time,omitempty"` + StartTime int64 `json:"start_time,omitempty" toon:"start_time,omitempty"` } // AlertEventGlobalListResponse is generated from the Flashduty OpenAPI schema. type AlertEventGlobalListResponse struct { - HasNextPage bool `json:"has_next_page,omitempty"` - Items []AlertEventItem `json:"items,omitempty"` - SearchAfterCtx string `json:"search_after_ctx,omitempty"` - Total int64 `json:"total,omitempty"` + HasNextPage bool `json:"has_next_page,omitempty" toon:"has_next_page,omitempty"` + Items []AlertEventItem `json:"items,omitempty" toon:"items,omitempty"` + SearchAfterCtx string `json:"search_after_ctx,omitempty" toon:"search_after_ctx,omitempty"` + Total int64 `json:"total,omitempty" toon:"total,omitempty"` } // AlertEventItem is generated from the Flashduty OpenAPI schema. type AlertEventItem struct { // Account ID. - AccountID int64 `json:"account_id,omitempty"` + AccountID int64 `json:"account_id,omitempty" toon:"account_id,omitempty"` // Parent alert ID (MongoDB ObjectID). - AlertID string `json:"alert_id,omitempty"` + AlertID string `json:"alert_id,omitempty" toon:"alert_id,omitempty"` // Deduplication key used to merge events into an alert. - AlertKey string `json:"alert_key,omitempty"` + AlertKey string `json:"alert_key,omitempty" toon:"alert_key,omitempty"` // Channel ID the event is routed to. - ChannelID int64 `json:"channel_id,omitempty"` + ChannelID int64 `json:"channel_id,omitempty" toon:"channel_id,omitempty"` // Record creation time, Unix epoch seconds. - CreatedAt Timestamp `json:"created_at,omitempty"` + CreatedAt Timestamp `json:"created_at,omitempty" toon:"created_at,omitempty"` // Deprecated. Use `integration_id` instead. - DataSourceID int64 `json:"data_source_id,omitempty"` + DataSourceID int64 `json:"data_source_id,omitempty" toon:"data_source_id,omitempty"` // Soft-delete timestamp (seconds). Zero if not deleted. - DeletedAt Timestamp `json:"deleted_at,omitempty"` + DeletedAt Timestamp `json:"deleted_at,omitempty" toon:"deleted_at,omitempty"` // Event description. - Description string `json:"description,omitempty"` + Description string `json:"description,omitempty" toon:"description,omitempty"` // Event ID (MongoDB ObjectID). - EventID string `json:"event_id,omitempty"` + EventID string `json:"event_id,omitempty" toon:"event_id,omitempty"` // Severity of this event. - EventSeverity string `json:"event_severity,omitempty"` + EventSeverity string `json:"event_severity,omitempty" toon:"event_severity,omitempty"` // Status of this event. - EventStatus string `json:"event_status,omitempty"` + EventStatus string `json:"event_status,omitempty" toon:"event_status,omitempty"` // Event timestamp, Unix epoch seconds. - EventTime Timestamp `json:"event_time,omitempty"` + EventTime Timestamp `json:"event_time,omitempty" toon:"event_time,omitempty"` // Images attached to the event. - Images []AlertImage `json:"images,omitempty"` + Images []AlertImage `json:"images,omitempty" toon:"images,omitempty"` // Integration that produced this event. - IntegrationID int64 `json:"integration_id,omitempty"` + IntegrationID int64 `json:"integration_id,omitempty" toon:"integration_id,omitempty"` // Type/plugin key of the integration that produced this event. - IntegrationType string `json:"integration_type,omitempty"` + IntegrationType string `json:"integration_type,omitempty" toon:"integration_type,omitempty"` // Label key-value pairs. - Labels map[string]string `json:"labels,omitempty"` + Labels map[string]string `json:"labels,omitempty" toon:"labels,omitempty"` // Event title. - Title string `json:"title,omitempty"` + Title string `json:"title,omitempty" toon:"title,omitempty"` // Title template used to derive `title` from labels. - TitleRule string `json:"title_rule,omitempty"` + TitleRule string `json:"title_rule,omitempty" toon:"title_rule,omitempty"` // Record update time, Unix epoch seconds. - UpdatedAt Timestamp `json:"updated_at,omitempty"` + UpdatedAt Timestamp `json:"updated_at,omitempty" toon:"updated_at,omitempty"` } // AlertEventListRequest is generated from the Flashduty OpenAPI schema. type AlertEventListRequest struct { // Alert ID (ObjectID hex string). - AlertID string `json:"alert_id,omitempty"` + AlertID string `json:"alert_id,omitempty" toon:"alert_id,omitempty"` } // AlertEventListResponse is generated from the Flashduty OpenAPI schema. type AlertEventListResponse struct { - Items []AlertEventItem `json:"items,omitempty"` + Items []AlertEventItem `json:"items,omitempty" toon:"items,omitempty"` } // AlertFeedRequest is generated from the Flashduty OpenAPI schema. type AlertFeedRequest struct { ListOptions // Alert ID. - AlertID string `json:"alert_id,omitempty"` + AlertID string `json:"alert_id,omitempty" toon:"alert_id,omitempty"` // Sort ascending. - Asc bool `json:"asc,omitempty"` + Asc bool `json:"asc,omitempty" toon:"asc,omitempty"` // Filter by feed types. - Types []string `json:"types,omitempty"` + Types []string `json:"types,omitempty" toon:"types,omitempty"` } // AlertFeedResponse is generated from the Flashduty OpenAPI schema. type AlertFeedResponse struct { - HasNextPage bool `json:"has_next_page,omitempty"` - Items []FeedItem `json:"items,omitempty"` + HasNextPage bool `json:"has_next_page,omitempty" toon:"has_next_page,omitempty"` + Items []FeedItem `json:"items,omitempty" toon:"items,omitempty"` } // AlertImage is generated from the Flashduty OpenAPI schema. type AlertImage struct { // Alt text. - Alt string `json:"alt,omitempty"` + Alt string `json:"alt,omitempty" toon:"alt,omitempty"` // Optional link URL when the image is clicked. - Href string `json:"href,omitempty"` + Href string `json:"href,omitempty" toon:"href,omitempty"` // Image source URL or internal image reference (starts with `img_` or `http`). - Src string `json:"src,omitempty"` + Src string `json:"src,omitempty" toon:"src,omitempty"` } // AlertInfo is generated from the Flashduty OpenAPI schema. type AlertInfo struct { // Account ID. - AccountID int64 `json:"account_id,omitempty"` + AccountID int64 `json:"account_id,omitempty" toon:"account_id,omitempty"` // Alert ID (MongoDB ObjectID). - AlertID string `json:"alert_id,omitempty"` + AlertID string `json:"alert_id,omitempty" toon:"alert_id,omitempty"` // Deduplication key used to merge events into the alert. - AlertKey string `json:"alert_key,omitempty"` + AlertKey string `json:"alert_key,omitempty" toon:"alert_key,omitempty"` // Current severity. - AlertSeverity string `json:"alert_severity,omitempty"` + AlertSeverity string `json:"alert_severity,omitempty" toon:"alert_severity,omitempty"` // Current status. - AlertStatus string `json:"alert_status,omitempty"` + AlertStatus string `json:"alert_status,omitempty" toon:"alert_status,omitempty"` // Channel ID. - ChannelID int64 `json:"channel_id,omitempty"` + ChannelID int64 `json:"channel_id,omitempty" toon:"channel_id,omitempty"` // Channel display name. - ChannelName string `json:"channel_name,omitempty"` + ChannelName string `json:"channel_name,omitempty" toon:"channel_name,omitempty"` // Channel status. - ChannelStatus string `json:"channel_status,omitempty"` + ChannelStatus string `json:"channel_status,omitempty" toon:"channel_status,omitempty"` // Creation timestamp (seconds). - CreatedAt Timestamp `json:"created_at,omitempty"` + CreatedAt Timestamp `json:"created_at,omitempty" toon:"created_at,omitempty"` // Deprecated. Use `integration_id` instead. - DataSourceID int64 `json:"data_source_id,omitempty"` + DataSourceID int64 `json:"data_source_id,omitempty" toon:"data_source_id,omitempty"` // Deprecated. Use `integration_name`. - DataSourceName string `json:"data_source_name,omitempty"` + DataSourceName string `json:"data_source_name,omitempty" toon:"data_source_name,omitempty"` // Deprecated. Use `integration_ref_id`. - DataSourceRefID string `json:"data_source_ref_id,omitempty"` + DataSourceRefID string `json:"data_source_ref_id,omitempty" toon:"data_source_ref_id,omitempty"` // Deprecated. Use `integration_type`. - DataSourceType string `json:"data_source_type,omitempty"` + DataSourceType string `json:"data_source_type,omitempty" toon:"data_source_type,omitempty"` // Soft-delete timestamp (seconds). Zero if not deleted. - DeletedAt Timestamp `json:"deleted_at,omitempty"` + DeletedAt Timestamp `json:"deleted_at,omitempty" toon:"deleted_at,omitempty"` // Alert description. - Description string `json:"description,omitempty"` + Description string `json:"description,omitempty" toon:"description,omitempty"` // Unix timestamp (seconds) when the alert recovered. 0 if still active. - EndTime Timestamp `json:"end_time,omitempty"` + EndTime Timestamp `json:"end_time,omitempty" toon:"end_time,omitempty"` // Total number of raw events merged into this alert. - EventCnt int64 `json:"event_cnt,omitempty"` + EventCnt int64 `json:"event_cnt,omitempty" toon:"event_cnt,omitempty"` // Raw alert events, populated when the caller opts in. - Events []AlertEventItem `json:"events,omitempty"` + Events []AlertEventItem `json:"events,omitempty" toon:"events,omitempty"` // Whether this alert has ever been silenced. - EverMuted bool `json:"ever_muted,omitempty"` + EverMuted bool `json:"ever_muted,omitempty" toon:"ever_muted,omitempty"` // Attached images. - Images []Image `json:"images,omitempty"` + Images []Image `json:"images,omitempty" toon:"images,omitempty"` // Parent incident reference, if the alert has been merged into one. - Incident IncidentShort `json:"incident,omitempty"` + Incident IncidentShort `json:"incident,omitempty" toon:"incident,omitempty"` // Integration ID that produced the alert. - IntegrationID int64 `json:"integration_id,omitempty"` + IntegrationID int64 `json:"integration_id,omitempty" toon:"integration_id,omitempty"` // Integration display name. - IntegrationName string `json:"integration_name,omitempty"` + IntegrationName string `json:"integration_name,omitempty" toon:"integration_name,omitempty"` // Integration reference ID. - IntegrationRefID string `json:"integration_ref_id,omitempty"` + IntegrationRefID string `json:"integration_ref_id,omitempty" toon:"integration_ref_id,omitempty"` // Integration type string. - IntegrationType string `json:"integration_type,omitempty"` + IntegrationType string `json:"integration_type,omitempty" toon:"integration_type,omitempty"` // Alert labels. - Labels map[string]string `json:"labels,omitempty"` + Labels map[string]string `json:"labels,omitempty" toon:"labels,omitempty"` // Unix timestamp (seconds) of the most recent event. - LastTime Timestamp `json:"last_time,omitempty"` + LastTime Timestamp `json:"last_time,omitempty" toon:"last_time,omitempty"` // Primary responder email, if any. - ResponderEmail string `json:"responder_email,omitempty"` + ResponderEmail string `json:"responder_email,omitempty" toon:"responder_email,omitempty"` // Primary responder name, if any. - ResponderName string `json:"responder_name,omitempty"` + ResponderName string `json:"responder_name,omitempty" toon:"responder_name,omitempty"` // Unix timestamp (seconds) when the alert first fired. - StartTime Timestamp `json:"start_time,omitempty"` + StartTime Timestamp `json:"start_time,omitempty" toon:"start_time,omitempty"` // Alert title. - Title string `json:"title,omitempty"` + Title string `json:"title,omitempty" toon:"title,omitempty"` // Title rendering rule. - TitleRule string `json:"title_rule,omitempty"` + TitleRule string `json:"title_rule,omitempty" toon:"title_rule,omitempty"` // Last update timestamp (seconds). - UpdatedAt Timestamp `json:"updated_at,omitempty"` + UpdatedAt Timestamp `json:"updated_at,omitempty" toon:"updated_at,omitempty"` } // AlertInfoRequest is generated from the Flashduty OpenAPI schema. type AlertInfoRequest struct { // Alert ID (ObjectID hex string). - AlertID string `json:"alert_id,omitempty"` + AlertID string `json:"alert_id,omitempty" toon:"alert_id,omitempty"` } // AlertItem is generated from the Flashduty OpenAPI schema. type AlertItem struct { // Account ID. - AccountID int64 `json:"account_id,omitempty"` + AccountID int64 `json:"account_id,omitempty" toon:"account_id,omitempty"` // Unique alert ID (ObjectID hex string). - AlertID string `json:"alert_id,omitempty"` + AlertID string `json:"alert_id,omitempty" toon:"alert_id,omitempty"` // Deduplication key. - AlertKey string `json:"alert_key,omitempty"` + AlertKey string `json:"alert_key,omitempty" toon:"alert_key,omitempty"` // Current severity. - AlertSeverity string `json:"alert_severity,omitempty"` + AlertSeverity string `json:"alert_severity,omitempty" toon:"alert_severity,omitempty"` // Current status. - AlertStatus string `json:"alert_status,omitempty"` + AlertStatus string `json:"alert_status,omitempty" toon:"alert_status,omitempty"` // ID of the channel the alert belongs to. - ChannelID int64 `json:"channel_id,omitempty"` + ChannelID int64 `json:"channel_id,omitempty" toon:"channel_id,omitempty"` // Display name of the channel. - ChannelName string `json:"channel_name,omitempty"` + ChannelName string `json:"channel_name,omitempty" toon:"channel_name,omitempty"` // Status of the channel (e.g. `enabled`, `disabled`). - ChannelStatus string `json:"channel_status,omitempty"` + ChannelStatus string `json:"channel_status,omitempty" toon:"channel_status,omitempty"` // Creation timestamp, Unix epoch seconds. - CreatedAt Timestamp `json:"created_at,omitempty"` + CreatedAt Timestamp `json:"created_at,omitempty" toon:"created_at,omitempty"` // Deprecated. Use `integration_id` instead. Deprecated: use `integration_id` instead. - DataSourceID int64 `json:"data_source_id,omitempty"` + DataSourceID int64 `json:"data_source_id,omitempty" toon:"data_source_id,omitempty"` // Deprecated. Use `integration_name` instead. - DataSourceName string `json:"data_source_name,omitempty"` + DataSourceName string `json:"data_source_name,omitempty" toon:"data_source_name,omitempty"` // Deprecated. Use `integration_ref_id` instead. - DataSourceRefID string `json:"data_source_ref_id,omitempty"` + DataSourceRefID string `json:"data_source_ref_id,omitempty" toon:"data_source_ref_id,omitempty"` // Deprecated. Use `integration_type` instead. - DataSourceType string `json:"data_source_type,omitempty"` + DataSourceType string `json:"data_source_type,omitempty" toon:"data_source_type,omitempty"` // Alert description. - Description string `json:"description,omitempty"` + Description string `json:"description,omitempty" toon:"description,omitempty"` // Resolution time, Unix epoch seconds. 0 if still active. - EndTime Timestamp `json:"end_time,omitempty"` + EndTime Timestamp `json:"end_time,omitempty" toon:"end_time,omitempty"` // Total number of raw events received by this alert. - EventCnt int64 `json:"event_cnt,omitempty"` + EventCnt int64 `json:"event_cnt,omitempty" toon:"event_cnt,omitempty"` // Recent raw events attached to this alert. Populated only by some endpoints. - Events []AlertEventItem `json:"events,omitempty"` + Events []AlertEventItem `json:"events,omitempty" toon:"events,omitempty"` // True if this alert has ever been silenced. - EverMuted bool `json:"ever_muted,omitempty"` + EverMuted bool `json:"ever_muted,omitempty" toon:"ever_muted,omitempty"` // Images attached to the alert. - Images []AlertImage `json:"images,omitempty"` + Images []AlertImage `json:"images,omitempty" toon:"images,omitempty"` // Associated incident, if any. - Incident IncidentShort `json:"incident,omitempty"` + Incident IncidentShort `json:"incident,omitempty" toon:"incident,omitempty"` // ID of the integration that produced this alert. - IntegrationID int64 `json:"integration_id,omitempty"` + IntegrationID int64 `json:"integration_id,omitempty" toon:"integration_id,omitempty"` // Display name of the integration. - IntegrationName string `json:"integration_name,omitempty"` + IntegrationName string `json:"integration_name,omitempty" toon:"integration_name,omitempty"` // External reference ID of the integration. - IntegrationRefID string `json:"integration_ref_id,omitempty"` + IntegrationRefID string `json:"integration_ref_id,omitempty" toon:"integration_ref_id,omitempty"` // Type/plugin key of the integration. - IntegrationType string `json:"integration_type,omitempty"` + IntegrationType string `json:"integration_type,omitempty" toon:"integration_type,omitempty"` // Label key-value pairs. - Labels map[string]string `json:"labels,omitempty"` + Labels map[string]string `json:"labels,omitempty" toon:"labels,omitempty"` // Last-event time, Unix epoch seconds. - LastTime Timestamp `json:"last_time,omitempty"` + LastTime Timestamp `json:"last_time,omitempty" toon:"last_time,omitempty"` // Email of the current responder (from the associated incident). - ResponderEmail string `json:"responder_email,omitempty"` + ResponderEmail string `json:"responder_email,omitempty" toon:"responder_email,omitempty"` // Display name of the current responder (from the associated incident). - ResponderName string `json:"responder_name,omitempty"` + ResponderName string `json:"responder_name,omitempty" toon:"responder_name,omitempty"` // First-seen time, Unix epoch seconds. - StartTime Timestamp `json:"start_time,omitempty"` + StartTime Timestamp `json:"start_time,omitempty" toon:"start_time,omitempty"` // Alert title. - Title string `json:"title,omitempty"` + Title string `json:"title,omitempty" toon:"title,omitempty"` // Title template used to derive `title` from the event labels (e.g. `$service::$cluster`). - TitleRule string `json:"title_rule,omitempty"` + TitleRule string `json:"title_rule,omitempty" toon:"title_rule,omitempty"` // Last update timestamp, Unix epoch seconds. - UpdatedAt Timestamp `json:"updated_at,omitempty"` + UpdatedAt Timestamp `json:"updated_at,omitempty" toon:"updated_at,omitempty"` } // AlertListByIDsRequest is generated from the Flashduty OpenAPI schema. type AlertListByIDsRequest struct { // List of alert IDs (ObjectID hex strings). - AlertIDs []string `json:"alert_ids,omitempty"` + AlertIDs []string `json:"alert_ids,omitempty" toon:"alert_ids,omitempty"` } // AlertListRequest is generated from the Flashduty OpenAPI schema. type AlertListRequest struct { ListOptions // Filter to specific alert IDs (ObjectID hex strings). - AlertIDs []string `json:"alert_ids,omitempty"` + AlertIDs []string `json:"alert_ids,omitempty" toon:"alert_ids,omitempty"` // Filter by alert deduplication keys. - AlertKeys []string `json:"alert_keys,omitempty"` + AlertKeys []string `json:"alert_keys,omitempty" toon:"alert_keys,omitempty"` // Comma-separated severity filter, e.g. `Critical,Warning`. Allowed values: `Critical`, `Warning`, `Info`, `Ok`. - AlertSeverity string `json:"alert_severity,omitempty"` + AlertSeverity string `json:"alert_severity,omitempty" toon:"alert_severity,omitempty"` // Sort ascending when `true`. Default descending. - Asc bool `json:"asc,omitempty"` + Asc bool `json:"asc,omitempty" toon:"asc,omitempty"` // When `true`, the time range filter is applied on `updated_at` rather than `start_time`. - ByUpdatedAt bool `json:"by_updated_at,omitempty"` + ByUpdatedAt bool `json:"by_updated_at,omitempty" toon:"by_updated_at,omitempty"` // Filter by channel IDs. - ChannelIDs []int64 `json:"channel_ids,omitempty"` + ChannelIDs []int64 `json:"channel_ids,omitempty" toon:"channel_ids,omitempty"` // End of the search window, Unix epoch seconds. Max span 31 days. - EndTime int64 `json:"end_time,omitempty"` + EndTime int64 `json:"end_time,omitempty" toon:"end_time,omitempty"` // Filter by whether the alert has ever been silenced. - EverMuted *bool `json:"ever_muted,omitempty"` + EverMuted *bool `json:"ever_muted,omitempty" toon:"ever_muted,omitempty"` // Filter by integration IDs. - IntegrationIDs []int64 `json:"integration_ids,omitempty"` + IntegrationIDs []int64 `json:"integration_ids,omitempty" toon:"integration_ids,omitempty"` // Filter by active (`true`) or resolved (`false`) status. - IsActive *bool `json:"is_active,omitempty"` + IsActive *bool `json:"is_active,omitempty" toon:"is_active,omitempty"` // Sort field. - Orderby string `json:"orderby,omitempty"` + Orderby string `json:"orderby,omitempty" toon:"orderby,omitempty"` // Start of the search window, Unix epoch seconds. - StartTime int64 `json:"start_time,omitempty"` + StartTime int64 `json:"start_time,omitempty" toon:"start_time,omitempty"` } // AlertListResponse is generated from the Flashduty OpenAPI schema. type AlertListResponse struct { // True if more pages are available. - HasNextPage bool `json:"has_next_page,omitempty"` - Items []AlertItem `json:"items,omitempty"` + HasNextPage bool `json:"has_next_page,omitempty" toon:"has_next_page,omitempty"` + Items []AlertItem `json:"items,omitempty" toon:"items,omitempty"` // Cursor for the next page. - SearchAfterCtx string `json:"search_after_ctx,omitempty"` + SearchAfterCtx string `json:"search_after_ctx,omitempty" toon:"search_after_ctx,omitempty"` // Total matching alerts. - Total int64 `json:"total,omitempty"` + Total int64 `json:"total,omitempty" toon:"total,omitempty"` } // AlertMergeRequest is generated from the Flashduty OpenAPI schema. type AlertMergeRequest struct { // Alert IDs to merge. - AlertIDs []string `json:"alert_ids,omitempty"` + AlertIDs []string `json:"alert_ids,omitempty" toon:"alert_ids,omitempty"` // Optional comment on the merge action. - Comment string `json:"comment,omitempty"` + Comment string `json:"comment,omitempty" toon:"comment,omitempty"` // Target incident ID. - IncidentID string `json:"incident_id,omitempty"` + IncidentID string `json:"incident_id,omitempty" toon:"incident_id,omitempty"` // Optional new owner for the target incident. - OwnerID int64 `json:"owner_id,omitempty"` + OwnerID int64 `json:"owner_id,omitempty" toon:"owner_id,omitempty"` // Optional new title for the target incident. - Title string `json:"title,omitempty"` + Title string `json:"title,omitempty" toon:"title,omitempty"` } // AlertPipeline is generated from the Flashduty OpenAPI schema. type AlertPipeline struct { // Optional OR-of-AND filter. When omitted, the rule applies to all alerts. - If OrFilterGroup `json:"if,omitempty"` + If OrFilterGroup `json:"if,omitempty" toon:"if,omitempty"` // Rule type. - Kind string `json:"kind,omitempty"` + Kind string `json:"kind,omitempty" toon:"kind,omitempty"` // Kind-specific settings. Shape depends on `kind`: // - `title_reset`: `{ "title": "" }` // - `description_reset`: `{ "description": "" }` // - `severity_reset`: `{ "severity": "Critical"|"Warning"|"Info" }` // - `alert_drop`: `{}` (empty object) // - `alert_inhibit`: `{ "equals": ["", ...], "source_filters": }` - Settings any `json:"settings,omitempty"` + Settings any `json:"settings,omitempty" toon:"settings,omitempty"` } // AlertPipelineInfoRequest is generated from the Flashduty OpenAPI schema. type AlertPipelineInfoRequest struct { // Integration ID. - IntegrationID int64 `json:"integration_id,omitempty"` + IntegrationID int64 `json:"integration_id,omitempty" toon:"integration_id,omitempty"` } // AlertPipelineItem is generated from the Flashduty OpenAPI schema. type AlertPipelineItem struct { // Creation timestamp, Unix epoch seconds. - CreatedAt Timestamp `json:"created_at,omitempty"` + CreatedAt Timestamp `json:"created_at,omitempty" toon:"created_at,omitempty"` // Member ID who created the pipeline. - CreatorID int64 `json:"creator_id,omitempty"` + CreatorID int64 `json:"creator_id,omitempty" toon:"creator_id,omitempty"` // Integration ID this pipeline applies to. - IntegrationID int64 `json:"integration_id,omitempty"` + IntegrationID int64 `json:"integration_id,omitempty" toon:"integration_id,omitempty"` // Ordered list of processing rules. - Rules []AlertPipeline `json:"rules,omitempty"` + Rules []AlertPipeline `json:"rules,omitempty" toon:"rules,omitempty"` // Pipeline status. Possible values: `enabled`, `disabled`. - Status string `json:"status,omitempty"` + Status string `json:"status,omitempty" toon:"status,omitempty"` // Last update timestamp, Unix epoch seconds. - UpdatedAt Timestamp `json:"updated_at,omitempty"` + UpdatedAt Timestamp `json:"updated_at,omitempty" toon:"updated_at,omitempty"` // Member ID who last updated the pipeline. - UpdatedBy int64 `json:"updated_by,omitempty"` + UpdatedBy int64 `json:"updated_by,omitempty" toon:"updated_by,omitempty"` } // AlertPipelineListRequest is generated from the Flashduty OpenAPI schema. type AlertPipelineListRequest struct { // Integration IDs. - IntegrationIDs []int64 `json:"integration_ids,omitempty"` + IntegrationIDs []int64 `json:"integration_ids,omitempty" toon:"integration_ids,omitempty"` } // AlertPipelineListResponse is generated from the Flashduty OpenAPI schema. type AlertPipelineListResponse struct { - Items []AlertPipelineItem `json:"items,omitempty"` + Items []AlertPipelineItem `json:"items,omitempty" toon:"items,omitempty"` } // AlertPipelineUpsertRequest is generated from the Flashduty OpenAPI schema. type AlertPipelineUpsertRequest struct { // Integration ID to configure. - IntegrationID int64 `json:"integration_id,omitempty"` + IntegrationID int64 `json:"integration_id,omitempty" toon:"integration_id,omitempty"` // Rules to apply. Max 50. - Rules []AlertPipeline `json:"rules,omitempty"` + Rules []AlertPipeline `json:"rules,omitempty" toon:"rules,omitempty"` } // AlertRule is generated from the Flashduty OpenAPI schema. type AlertRule struct { - AccountID uint64 `json:"account_id,omitempty"` - Annotations map[string]string `json:"annotations,omitempty"` + AccountID uint64 `json:"account_id,omitempty" toon:"account_id,omitempty"` + Annotations map[string]string `json:"annotations,omitempty" toon:"annotations,omitempty"` // Channel IDs to send alerts to. - ChannelIDs []uint64 `json:"channel_ids,omitempty"` - CreatedAt int64 `json:"created_at,omitempty"` - CreatorID uint64 `json:"creator_id,omitempty"` - CreatorName string `json:"creator_name,omitempty"` + ChannelIDs []uint64 `json:"channel_ids,omitempty" toon:"channel_ids,omitempty"` + CreatedAt int64 `json:"created_at,omitempty" toon:"created_at,omitempty"` + CreatorID uint64 `json:"creator_id,omitempty" toon:"creator_id,omitempty"` + CreatorName string `json:"creator_name,omitempty" toon:"creator_name,omitempty"` // 5-field cron schedule. - CronPattern string `json:"cron_pattern,omitempty"` - DebugLogEnabled bool `json:"debug_log_enabled,omitempty"` - DelaySeconds int64 `json:"delay_seconds,omitempty"` - Description string `json:"description,omitempty"` - DescriptionType string `json:"description_type,omitempty"` + CronPattern string `json:"cron_pattern,omitempty" toon:"cron_pattern,omitempty"` + DebugLogEnabled bool `json:"debug_log_enabled,omitempty" toon:"debug_log_enabled,omitempty"` + DelaySeconds int64 `json:"delay_seconds,omitempty" toon:"delay_seconds,omitempty"` + Description string `json:"description,omitempty" toon:"description,omitempty"` + DescriptionType string `json:"description_type,omitempty" toon:"description_type,omitempty"` // Specific data source IDs. - DsIDs []uint64 `json:"ds_ids,omitempty"` + DsIDs []uint64 `json:"ds_ids,omitempty" toon:"ds_ids,omitempty"` // Data source name patterns (supports wildcards). - DsList []string `json:"ds_list,omitempty"` + DsList []string `json:"ds_list,omitempty" toon:"ds_list,omitempty"` // Data source type. - DsType string `json:"ds_type,omitempty"` - Enabled bool `json:"enabled,omitempty"` + DsType string `json:"ds_type,omitempty" toon:"ds_type,omitempty"` + Enabled bool `json:"enabled,omitempty" toon:"enabled,omitempty"` // Time windows when the rule is active. - EnabledTimes []AlertRuleEnabledTimesItem `json:"enabled_times,omitempty"` + EnabledTimes []AlertRuleEnabledTimesItem `json:"enabled_times,omitempty" toon:"enabled_times,omitempty"` // Folder the rule belongs to. - FolderID uint64 `json:"folder_id,omitempty"` - ID uint64 `json:"id,omitempty"` + FolderID uint64 `json:"folder_id,omitempty" toon:"folder_id,omitempty"` + ID uint64 `json:"id,omitempty" toon:"id,omitempty"` // Custom labels. - Labels map[string]string `json:"labels,omitempty"` + Labels map[string]string `json:"labels,omitempty" toon:"labels,omitempty"` // Rule name. - Name string `json:"name,omitempty"` + Name string `json:"name,omitempty" toon:"name,omitempty"` // Notification repeat interval in seconds. - RepeatInterval int64 `json:"repeat_interval,omitempty"` + RepeatInterval int64 `json:"repeat_interval,omitempty" toon:"repeat_interval,omitempty"` // Max number of repeat notifications. - RepeatTotal int64 `json:"repeat_total,omitempty"` - RuleConfigs RuleConfigs `json:"rule_configs,omitempty"` - UpdatedAt int64 `json:"updated_at,omitempty"` - UpdaterID uint64 `json:"updater_id,omitempty"` - UpdaterName string `json:"updater_name,omitempty"` + RepeatTotal int64 `json:"repeat_total,omitempty" toon:"repeat_total,omitempty"` + RuleConfigs RuleConfigs `json:"rule_configs,omitempty" toon:"rule_configs,omitempty"` + UpdatedAt int64 `json:"updated_at,omitempty" toon:"updated_at,omitempty"` + UpdaterID uint64 `json:"updater_id,omitempty" toon:"updater_id,omitempty"` + UpdaterName string `json:"updater_name,omitempty" toon:"updater_name,omitempty"` } // AlertRuleAudit is generated from the Flashduty OpenAPI schema. type AlertRuleAudit struct { - AccountID uint64 `json:"account_id,omitempty"` + AccountID uint64 `json:"account_id,omitempty" toon:"account_id,omitempty"` // Action performed, e.g. `create`, `update`. - Action string `json:"action,omitempty"` + Action string `json:"action,omitempty" toon:"action,omitempty"` // ID of the alert rule this record belongs to. - AlertRuleID uint64 `json:"alert_rule_id,omitempty"` + AlertRuleID uint64 `json:"alert_rule_id,omitempty" toon:"alert_rule_id,omitempty"` // JSON string of the full rule snapshot at audit time. Populated on `/monit/rule/audit/detail`, omitted on list responses. - Content string `json:"content,omitempty"` - CreatedAt int64 `json:"created_at,omitempty"` - CreatorID uint64 `json:"creator_id,omitempty"` - CreatorName string `json:"creator_name,omitempty"` + Content string `json:"content,omitempty" toon:"content,omitempty"` + CreatedAt int64 `json:"created_at,omitempty" toon:"created_at,omitempty"` + CreatorID uint64 `json:"creator_id,omitempty" toon:"creator_id,omitempty"` + CreatorName string `json:"creator_name,omitempty" toon:"creator_name,omitempty"` // Audit record ID. - ID uint64 `json:"id,omitempty"` + ID uint64 `json:"id,omitempty" toon:"id,omitempty"` } // AlertRuleBasic is generated from the Flashduty OpenAPI schema. type AlertRuleBasic struct { // Account ID. - AccountID uint64 `json:"account_id,omitempty"` - CreatedAt int64 `json:"created_at,omitempty"` - CreatorID uint64 `json:"creator_id,omitempty"` - CreatorName string `json:"creator_name,omitempty"` + AccountID uint64 `json:"account_id,omitempty" toon:"account_id,omitempty"` + CreatedAt int64 `json:"created_at,omitempty" toon:"created_at,omitempty"` + CreatorID uint64 `json:"creator_id,omitempty" toon:"creator_id,omitempty"` + CreatorName string `json:"creator_name,omitempty" toon:"creator_name,omitempty"` // 5-field cron schedule, e.g. `* * * * *`. - CronPattern string `json:"cron_pattern,omitempty"` + CronPattern string `json:"cron_pattern,omitempty" toon:"cron_pattern,omitempty"` // Whether debug logging is enabled. - DebugLogEnabled bool `json:"debug_log_enabled,omitempty"` + DebugLogEnabled bool `json:"debug_log_enabled,omitempty" toon:"debug_log_enabled,omitempty"` // Evaluation delay in seconds. - DelaySeconds int64 `json:"delay_seconds,omitempty"` + DelaySeconds int64 `json:"delay_seconds,omitempty" toon:"delay_seconds,omitempty"` // Data source type, e.g. `prometheus`. - DsType string `json:"ds_type,omitempty"` + DsType string `json:"ds_type,omitempty" toon:"ds_type,omitempty"` // Whether the rule is enabled. - Enabled bool `json:"enabled,omitempty"` + Enabled bool `json:"enabled,omitempty" toon:"enabled,omitempty"` // Folder ID. - FolderID uint64 `json:"folder_id,omitempty"` + FolderID uint64 `json:"folder_id,omitempty" toon:"folder_id,omitempty"` // Unique rule ID. - ID uint64 `json:"id,omitempty"` + ID uint64 `json:"id,omitempty" toon:"id,omitempty"` // Custom labels. - Labels map[string]string `json:"labels,omitempty"` + Labels map[string]string `json:"labels,omitempty" toon:"labels,omitempty"` // Rule name. - Name string `json:"name,omitempty"` + Name string `json:"name,omitempty" toon:"name,omitempty"` // True if the rule currently has active alerts. - Triggered bool `json:"triggered,omitempty"` - UpdatedAt int64 `json:"updated_at,omitempty"` - UpdaterID uint64 `json:"updater_id,omitempty"` - UpdaterName string `json:"updater_name,omitempty"` + Triggered bool `json:"triggered,omitempty" toon:"triggered,omitempty"` + UpdatedAt int64 `json:"updated_at,omitempty" toon:"updated_at,omitempty"` + UpdaterID uint64 `json:"updater_id,omitempty" toon:"updater_id,omitempty"` + UpdaterName string `json:"updater_name,omitempty" toon:"updater_name,omitempty"` } // AlertRuleCounter is generated from the Flashduty OpenAPI schema. type AlertRuleCounter struct { - AccountID uint64 `json:"account_id,omitempty"` + AccountID uint64 `json:"account_id,omitempty" toon:"account_id,omitempty"` // Sample timestamp, Unix epoch seconds. - Clock Timestamp `json:"clock,omitempty"` - ID uint64 `json:"id,omitempty"` + Clock Timestamp `json:"clock,omitempty" toon:"clock,omitempty"` + ID uint64 `json:"id,omitempty" toon:"id,omitempty"` // Rule count at the sample time. - Num int64 `json:"num,omitempty"` + Num int64 `json:"num,omitempty" toon:"num,omitempty"` } // AlertRuleExport is generated from the Flashduty OpenAPI schema. type AlertRuleExport struct { - Annotations map[string]string `json:"annotations,omitempty"` - CronPattern string `json:"cron_pattern,omitempty"` - DebugLogEnabled bool `json:"debug_log_enabled,omitempty"` - DelaySeconds int64 `json:"delay_seconds,omitempty"` - Description string `json:"description,omitempty"` - DescriptionType string `json:"description_type,omitempty"` - DsIDs []uint64 `json:"ds_ids,omitempty"` - DsList []string `json:"ds_list,omitempty"` - DsType string `json:"ds_type,omitempty"` - Enabled bool `json:"enabled,omitempty"` - EnabledTimes []EnabledTime `json:"enabled_times,omitempty"` - Labels map[string]string `json:"labels,omitempty"` - Name string `json:"name,omitempty"` - RepeatInterval int64 `json:"repeat_interval,omitempty"` - RepeatTotal int64 `json:"repeat_total,omitempty"` - RuleConfigs RuleConfigs `json:"rule_configs,omitempty"` + Annotations map[string]string `json:"annotations,omitempty" toon:"annotations,omitempty"` + CronPattern string `json:"cron_pattern,omitempty" toon:"cron_pattern,omitempty"` + DebugLogEnabled bool `json:"debug_log_enabled,omitempty" toon:"debug_log_enabled,omitempty"` + DelaySeconds int64 `json:"delay_seconds,omitempty" toon:"delay_seconds,omitempty"` + Description string `json:"description,omitempty" toon:"description,omitempty"` + DescriptionType string `json:"description_type,omitempty" toon:"description_type,omitempty"` + DsIDs []uint64 `json:"ds_ids,omitempty" toon:"ds_ids,omitempty"` + DsList []string `json:"ds_list,omitempty" toon:"ds_list,omitempty"` + DsType string `json:"ds_type,omitempty" toon:"ds_type,omitempty"` + Enabled bool `json:"enabled,omitempty" toon:"enabled,omitempty"` + EnabledTimes []EnabledTime `json:"enabled_times,omitempty" toon:"enabled_times,omitempty"` + Labels map[string]string `json:"labels,omitempty" toon:"labels,omitempty"` + Name string `json:"name,omitempty" toon:"name,omitempty"` + RepeatInterval int64 `json:"repeat_interval,omitempty" toon:"repeat_interval,omitempty"` + RepeatTotal int64 `json:"repeat_total,omitempty" toon:"repeat_total,omitempty"` + RuleConfigs RuleConfigs `json:"rule_configs,omitempty" toon:"rule_configs,omitempty"` } // AlertRuleInfoResponse is generated from the Flashduty OpenAPI schema. type AlertRuleInfoResponse struct { - AccountID uint64 `json:"account_id,omitempty"` - Annotations map[string]string `json:"annotations,omitempty"` + AccountID uint64 `json:"account_id,omitempty" toon:"account_id,omitempty"` + Annotations map[string]string `json:"annotations,omitempty" toon:"annotations,omitempty"` // Channel IDs to send alerts to. - ChannelIDs []uint64 `json:"channel_ids,omitempty"` - CreatedAt int64 `json:"created_at,omitempty"` - CreatorID uint64 `json:"creator_id,omitempty"` - CreatorName string `json:"creator_name,omitempty"` + ChannelIDs []uint64 `json:"channel_ids,omitempty" toon:"channel_ids,omitempty"` + CreatedAt int64 `json:"created_at,omitempty" toon:"created_at,omitempty"` + CreatorID uint64 `json:"creator_id,omitempty" toon:"creator_id,omitempty"` + CreatorName string `json:"creator_name,omitempty" toon:"creator_name,omitempty"` // 5-field cron schedule. - CronPattern string `json:"cron_pattern,omitempty"` - DebugLogEnabled bool `json:"debug_log_enabled,omitempty"` - DelaySeconds int64 `json:"delay_seconds,omitempty"` - Description string `json:"description,omitempty"` - DescriptionType string `json:"description_type,omitempty"` + CronPattern string `json:"cron_pattern,omitempty" toon:"cron_pattern,omitempty"` + DebugLogEnabled bool `json:"debug_log_enabled,omitempty" toon:"debug_log_enabled,omitempty"` + DelaySeconds int64 `json:"delay_seconds,omitempty" toon:"delay_seconds,omitempty"` + Description string `json:"description,omitempty" toon:"description,omitempty"` + DescriptionType string `json:"description_type,omitempty" toon:"description_type,omitempty"` // Specific data source IDs. - DsIDs []uint64 `json:"ds_ids,omitempty"` + DsIDs []uint64 `json:"ds_ids,omitempty" toon:"ds_ids,omitempty"` // Data source name patterns (supports wildcards). - DsList []string `json:"ds_list,omitempty"` + DsList []string `json:"ds_list,omitempty" toon:"ds_list,omitempty"` // Data source type. - DsType string `json:"ds_type,omitempty"` - Enabled bool `json:"enabled,omitempty"` + DsType string `json:"ds_type,omitempty" toon:"ds_type,omitempty"` + Enabled bool `json:"enabled,omitempty" toon:"enabled,omitempty"` // Time windows when the rule is active. - EnabledTimes []AlertRuleInfoResponseEnabledTimesItem `json:"enabled_times,omitempty"` + EnabledTimes []AlertRuleInfoResponseEnabledTimesItem `json:"enabled_times,omitempty" toon:"enabled_times,omitempty"` // Folder the rule belongs to. - FolderID uint64 `json:"folder_id,omitempty"` - ID uint64 `json:"id,omitempty"` + FolderID uint64 `json:"folder_id,omitempty" toon:"folder_id,omitempty"` + ID uint64 `json:"id,omitempty" toon:"id,omitempty"` // Custom labels. - Labels map[string]string `json:"labels,omitempty"` + Labels map[string]string `json:"labels,omitempty" toon:"labels,omitempty"` // Rule name. - Name string `json:"name,omitempty"` + Name string `json:"name,omitempty" toon:"name,omitempty"` // Notification repeat interval in seconds. - RepeatInterval int64 `json:"repeat_interval,omitempty"` + RepeatInterval int64 `json:"repeat_interval,omitempty" toon:"repeat_interval,omitempty"` // Max number of repeat notifications. - RepeatTotal int64 `json:"repeat_total,omitempty"` - RuleConfigs RuleConfigs `json:"rule_configs,omitempty"` - UpdatedAt int64 `json:"updated_at,omitempty"` - UpdaterID uint64 `json:"updater_id,omitempty"` - UpdaterName string `json:"updater_name,omitempty"` + RepeatTotal int64 `json:"repeat_total,omitempty" toon:"repeat_total,omitempty"` + RuleConfigs RuleConfigs `json:"rule_configs,omitempty" toon:"rule_configs,omitempty"` + UpdatedAt int64 `json:"updated_at,omitempty" toon:"updated_at,omitempty"` + UpdaterID uint64 `json:"updater_id,omitempty" toon:"updater_id,omitempty"` + UpdaterName string `json:"updater_name,omitempty" toon:"updater_name,omitempty"` } // AlertRuleStatus is generated from the Flashduty OpenAPI schema. type AlertRuleStatus struct { - FolderID uint64 `json:"folder_id,omitempty"` - FolderName string `json:"folder_name,omitempty"` + FolderID uint64 `json:"folder_id,omitempty" toon:"folder_id,omitempty"` + FolderName string `json:"folder_name,omitempty" toon:"folder_name,omitempty"` // Total rules in the folder family. - RuleTotal int64 `json:"rule_total,omitempty"` + RuleTotal int64 `json:"rule_total,omitempty" toon:"rule_total,omitempty"` // Rules with active alerts. - TriggeredRuleCount int64 `json:"triggered_rule_count,omitempty"` + TriggeredRuleCount int64 `json:"triggered_rule_count,omitempty" toon:"triggered_rule_count,omitempty"` } // ApAlertDrop is generated from the Flashduty OpenAPI schema. @@ -917,84 +917,84 @@ type ApAlertDrop struct{} // ApAlertInhibit is generated from the Flashduty OpenAPI schema. type ApAlertInhibit struct { // Label keys whose values must be equal between the source and current alert for inhibition to apply. - Equals []string `json:"equals,omitempty"` + Equals []string `json:"equals,omitempty" toon:"equals,omitempty"` // Filter that identifies the source alerts to inhibit. - SourceFilters OrFilterGroup `json:"source_filters,omitempty"` + SourceFilters OrFilterGroup `json:"source_filters,omitempty" toon:"source_filters,omitempty"` } // ApDescriptionReset is generated from the Flashduty OpenAPI schema. type ApDescriptionReset struct { // New description template. - Description string `json:"description,omitempty"` + Description string `json:"description,omitempty" toon:"description,omitempty"` } // ApSeverityReset is generated from the Flashduty OpenAPI schema. type ApSeverityReset struct { // Target severity level. - Severity string `json:"severity,omitempty"` + Severity string `json:"severity,omitempty" toon:"severity,omitempty"` } // ApTitleReset is generated from the Flashduty OpenAPI schema. type ApTitleReset struct { // New title template. Supports Golang template syntax referencing alert fields. - Title string `json:"title,omitempty"` + Title string `json:"title,omitempty" toon:"title,omitempty"` } // AssignIncidentRequest is generated from the Flashduty OpenAPI schema. type AssignIncidentRequest struct { - AssignedTo AssignedTo `json:"assigned_to,omitempty"` + AssignedTo AssignedTo `json:"assigned_to,omitempty" toon:"assigned_to,omitempty"` // Single incident ID. Ignored when `incident_ids` is also provided. - IncidentID string `json:"incident_id,omitempty"` + IncidentID string `json:"incident_id,omitempty" toon:"incident_id,omitempty"` // Batch incident IDs. - IncidentIDs []string `json:"incident_ids,omitempty"` + IncidentIDs []string `json:"incident_ids,omitempty" toon:"incident_ids,omitempty"` } // AssignedTo is generated from the Flashduty OpenAPI schema. type AssignedTo struct { // Unix timestamp (seconds) when the assignment was made. - AssignedAt int64 `json:"assigned_at,omitempty"` + AssignedAt int64 `json:"assigned_at,omitempty" toon:"assigned_at,omitempty"` // Email recipients, used by integrations such as ServiceNow. - Emails []string `json:"emails,omitempty"` + Emails []string `json:"emails,omitempty" toon:"emails,omitempty"` // Escalation rule ID (MongoDB ObjectID) to drive assignment. - EscalateRuleID string `json:"escalate_rule_id,omitempty"` + EscalateRuleID string `json:"escalate_rule_id,omitempty" toon:"escalate_rule_id,omitempty"` // Escalation rule display name, filled by the server. - EscalateRuleName string `json:"escalate_rule_name,omitempty"` + EscalateRuleName string `json:"escalate_rule_name,omitempty" toon:"escalate_rule_name,omitempty"` // Opaque assignment ID generated by the server. - ID string `json:"id,omitempty"` + ID string `json:"id,omitempty" toon:"id,omitempty"` // Current level index within the escalation rule. - LayerIdx int64 `json:"layer_idx,omitempty"` + LayerIdx int64 `json:"layer_idx,omitempty" toon:"layer_idx,omitempty"` // Member IDs to assign directly. - PersonIDs []int64 `json:"person_ids,omitempty"` + PersonIDs []int64 `json:"person_ids,omitempty" toon:"person_ids,omitempty"` // Assignment type: `assign` direct assignment, `reassign` reassignment, `escalate` escalation-rule driven, `reopen` automatic reassignment on reopen. - Type string `json:"type,omitempty"` + Type string `json:"type,omitempty" toon:"type,omitempty"` } // AuditLog is generated from the Flashduty OpenAPI schema. type AuditLog struct { // ID of the account. - AccountID uint64 `json:"account_id,omitempty"` + AccountID uint64 `json:"account_id,omitempty" toon:"account_id,omitempty"` // JSON-encoded request body (may be truncated at 10 KB). - Body string `json:"body,omitempty"` + Body string `json:"body,omitempty" toon:"body,omitempty"` // Timestamp of the operation in Unix epoch milliseconds. - CreatedAt TimestampMilli `json:"created_at,omitempty"` + CreatedAt TimestampMilli `json:"created_at,omitempty" toon:"created_at,omitempty"` // Client IP address of the caller. - IP string `json:"ip,omitempty"` + IP string `json:"ip,omitempty" toon:"ip,omitempty"` // True if this is flagged as a high-risk operation. - IsDangerous bool `json:"is_dangerous,omitempty"` + IsDangerous bool `json:"is_dangerous,omitempty" toon:"is_dangerous,omitempty"` // True for mutating operations; false for read-only ones. - IsWrite bool `json:"is_write,omitempty"` + IsWrite bool `json:"is_write,omitempty" toon:"is_write,omitempty"` // ID of the member who performed the action. - MemberID uint64 `json:"member_id,omitempty"` + MemberID uint64 `json:"member_id,omitempty" toon:"member_id,omitempty"` // Display name of the member. - MemberName string `json:"member_name,omitempty"` + MemberName string `json:"member_name,omitempty" toon:"member_name,omitempty"` // Stable machine-readable operation name, e.g. `template:write:create`. - Operation string `json:"operation,omitempty"` + Operation string `json:"operation,omitempty" toon:"operation,omitempty"` // Human-readable operation label in the account's locale. - OperationName string `json:"operation_name,omitempty"` + OperationName string `json:"operation_name,omitempty" toon:"operation_name,omitempty"` // URL path parameters as an array of key-value pairs, or an empty array when none. - Params []AuditLogParamsItem `json:"params,omitempty"` + Params []AuditLogParamsItem `json:"params,omitempty" toon:"params,omitempty"` // Unique request ID for correlation. - RequestID string `json:"request_id,omitempty"` + RequestID string `json:"request_id,omitempty" toon:"request_id,omitempty"` } // AuditOperationListRequest is generated from the Flashduty OpenAPI schema. @@ -1002,153 +1002,159 @@ type AuditOperationListRequest struct{} // AuditOperationListResponse is generated from the Flashduty OpenAPI schema. type AuditOperationListResponse struct { - Items []AuditOperationTypeItem `json:"items,omitempty"` + Items []AuditOperationTypeItem `json:"items,omitempty" toon:"items,omitempty"` } // AuditOperationTypeItem is generated from the Flashduty OpenAPI schema. type AuditOperationTypeItem struct { // Stable machine-readable operation name for use as a filter. - Name string `json:"name,omitempty"` + Name string `json:"name,omitempty" toon:"name,omitempty"` // Human-readable Chinese label shown in the console. - NameCn string `json:"name_cn,omitempty"` + NameCn string `json:"name_cn,omitempty" toon:"name_cn,omitempty"` +} + +// AuditRecordIDRequest is generated from the Flashduty OpenAPI schema. +type AuditRecordIDRequest struct { + // Audit record ID — the `id` of an audit row returned by `POST /monit/rule/audits`, NOT the rule ID. Passing a rule ID returns HTTP 400. + ID uint64 `json:"id,omitempty" toon:"id,omitempty"` } // AuditSearchRequest is generated from the Flashduty OpenAPI schema. type AuditSearchRequest struct { // End of the search window, Unix epoch seconds. Must be after `start_time`. Maximum span 90 days. - EndTime int64 `json:"end_time,omitempty"` + EndTime int64 `json:"end_time,omitempty" toon:"end_time,omitempty"` // When true, return only high-risk (dangerous) operations. - IsDangerous *bool `json:"is_dangerous,omitempty"` + IsDangerous *bool `json:"is_dangerous,omitempty" toon:"is_dangerous,omitempty"` // When true, return only write operations; when false, return only read operations. - IsWrite *bool `json:"is_write,omitempty"` + IsWrite *bool `json:"is_write,omitempty" toon:"is_write,omitempty"` // Page size. Minimum 0, maximum 99. - Limit int64 `json:"limit,omitempty"` + Limit int64 `json:"limit,omitempty" toon:"limit,omitempty"` // Filter to specific operation names. Use `POST /audit/operation/list` to get the valid set. - Operations []string `json:"operations,omitempty"` + Operations []string `json:"operations,omitempty" toon:"operations,omitempty"` // Filter by the member who performed the action. - PersonID uint64 `json:"person_id,omitempty"` + PersonID uint64 `json:"person_id,omitempty" toon:"person_id,omitempty"` // Filter to a single request by its unique request ID. - RequestID string `json:"request_id,omitempty"` + RequestID string `json:"request_id,omitempty" toon:"request_id,omitempty"` // Opaque pagination cursor returned by the previous response. Leave empty for the first page. - SearchAfterCtx string `json:"search_after_ctx,omitempty"` + SearchAfterCtx string `json:"search_after_ctx,omitempty" toon:"search_after_ctx,omitempty"` // Start of the search window, Unix epoch seconds. - StartTime int64 `json:"start_time,omitempty"` + StartTime int64 `json:"start_time,omitempty" toon:"start_time,omitempty"` } // AuditSearchResponse is generated from the Flashduty OpenAPI schema. type AuditSearchResponse struct { // Audit log entries for this page. - Docs []AuditLog `json:"docs,omitempty"` + Docs []AuditLog `json:"docs,omitempty" toon:"docs,omitempty"` // Opaque cursor for the next page. Empty string when there are no more results. - SearchAfterCtx string `json:"search_after_ctx,omitempty"` + SearchAfterCtx string `json:"search_after_ctx,omitempty" toon:"search_after_ctx,omitempty"` // Total matching entries in the search window. - Total int64 `json:"total,omitempty"` + Total int64 `json:"total,omitempty" toon:"total,omitempty"` } // CalEventIDRequest is generated from the Flashduty OpenAPI schema. type CalEventIDRequest struct { // Calendar ID. - CalID string `json:"cal_id,omitempty"` + CalID string `json:"cal_id,omitempty" toon:"cal_id,omitempty"` // Event ID. - EventID string `json:"event_id,omitempty"` + EventID string `json:"event_id,omitempty" toon:"event_id,omitempty"` } // CalEventItem is generated from the Flashduty OpenAPI schema. type CalEventItem struct { // Account ID. Only present for private events. - AccountID uint64 `json:"account_id,omitempty"` + AccountID uint64 `json:"account_id,omitempty" toon:"account_id,omitempty"` // Calendar ID. For public events this is a locale key such as zh-cn.china.official. - CalID string `json:"cal_id,omitempty"` + CalID string `json:"cal_id,omitempty" toon:"cal_id,omitempty"` // Creation timestamp (Unix seconds). - CreatedAt Timestamp `json:"created_at,omitempty"` + CreatedAt Timestamp `json:"created_at,omitempty" toon:"created_at,omitempty"` // Creator person ID. Only present for private events. - CreatorID uint64 `json:"creator_id,omitempty"` + CreatorID uint64 `json:"creator_id,omitempty" toon:"creator_id,omitempty"` // Event description. - Description string `json:"description,omitempty"` + Description string `json:"description,omitempty" toon:"description,omitempty"` // Event end date (YYYY-MM-DD, exclusive). - EndAt string `json:"end_at,omitempty"` + EndAt string `json:"end_at,omitempty" toon:"end_at,omitempty"` // Event ID. - EventID string `json:"event_id,omitempty"` + EventID string `json:"event_id,omitempty" toon:"event_id,omitempty"` // Whether the event marks a non-working day. - IsOff bool `json:"is_off,omitempty"` + IsOff bool `json:"is_off,omitempty" toon:"is_off,omitempty"` // Event start date (YYYY-MM-DD). - StartAt string `json:"start_at,omitempty"` + StartAt string `json:"start_at,omitempty" toon:"start_at,omitempty"` // Event summary. - Summary string `json:"summary,omitempty"` + Summary string `json:"summary,omitempty" toon:"summary,omitempty"` // Last update timestamp (Unix seconds). - UpdatedAt Timestamp `json:"updated_at,omitempty"` + UpdatedAt Timestamp `json:"updated_at,omitempty" toon:"updated_at,omitempty"` } // CalEventListRequest is generated from the Flashduty OpenAPI schema. type CalEventListRequest struct { // Calendar ID. - CalID string `json:"cal_id,omitempty"` + CalID string `json:"cal_id,omitempty" toon:"cal_id,omitempty"` // Day (1-31). 0 means no day filter. - Day int64 `json:"day,omitempty"` + Day int64 `json:"day,omitempty" toon:"day,omitempty"` // Month (1-12). 0 means no month filter. - Month int64 `json:"month,omitempty"` + Month int64 `json:"month,omitempty" toon:"month,omitempty"` // Year. Defaults to the current year when omitted. - Year int64 `json:"year,omitempty"` + Year int64 `json:"year,omitempty" toon:"year,omitempty"` } // CalEventListResponse is generated from the Flashduty OpenAPI schema. type CalEventListResponse struct { // Calendar events sorted by start_at. - Items []CalEventItem `json:"items,omitempty"` + Items []CalEventItem `json:"items,omitempty" toon:"items,omitempty"` // Total number of events returned. - Total int64 `json:"total,omitempty"` + Total int64 `json:"total,omitempty" toon:"total,omitempty"` } // CalEventUpsertRequest is generated from the Flashduty OpenAPI schema. type CalEventUpsertRequest struct { // Calendar ID. - CalID string `json:"cal_id,omitempty"` + CalID string `json:"cal_id,omitempty" toon:"cal_id,omitempty"` // Event description. - Description string `json:"description,omitempty"` + Description string `json:"description,omitempty" toon:"description,omitempty"` // Event end date in YYYY-MM-DD (exclusive). - EndAt string `json:"end_at,omitempty"` + EndAt string `json:"end_at,omitempty" toon:"end_at,omitempty"` // Event ID. Omit when creating. - EventID string `json:"event_id,omitempty"` + EventID string `json:"event_id,omitempty" toon:"event_id,omitempty"` // Whether the event marks a non-working day. true = day off, false = working day override. - IsOff *bool `json:"is_off,omitempty"` + IsOff *bool `json:"is_off,omitempty" toon:"is_off,omitempty"` // Event start date in YYYY-MM-DD. - StartAt string `json:"start_at,omitempty"` + StartAt string `json:"start_at,omitempty" toon:"start_at,omitempty"` // Event summary. - Summary string `json:"summary,omitempty"` + Summary string `json:"summary,omitempty" toon:"summary,omitempty"` } // CalEventUpsertResponse is generated from the Flashduty OpenAPI schema. type CalEventUpsertResponse struct { // Calendar ID. - CalID string `json:"cal_id,omitempty"` + CalID string `json:"cal_id,omitempty" toon:"cal_id,omitempty"` // Event ID (existing or newly generated). - EventID string `json:"event_id,omitempty"` + EventID string `json:"event_id,omitempty" toon:"event_id,omitempty"` // Event summary. - Summary string `json:"summary,omitempty"` + Summary string `json:"summary,omitempty" toon:"summary,omitempty"` } // CalendarCreateRequest is generated from the Flashduty OpenAPI schema. type CalendarCreateRequest struct { // Calendar display name. - CalName string `json:"cal_name,omitempty"` + CalName string `json:"cal_name,omitempty" toon:"cal_name,omitempty"` // Calendar description. - Description string `json:"description,omitempty"` + Description string `json:"description,omitempty" toon:"description,omitempty"` // Additional public-holiday calendar IDs to inherit events from (for example zh-cn.china.official). - ExtraCalIDs []string `json:"extra_cal_ids,omitempty"` + ExtraCalIDs []string `json:"extra_cal_ids,omitempty" toon:"extra_cal_ids,omitempty"` // Owning team ID. 0 means no team. - TeamID int64 `json:"team_id,omitempty"` + TeamID int64 `json:"team_id,omitempty" toon:"team_id,omitempty"` // IANA timezone. Defaults to Asia/Shanghai when empty. - Timezone string `json:"timezone,omitempty"` + Timezone string `json:"timezone,omitempty" toon:"timezone,omitempty"` // Workday numbers (0 = Sunday, 6 = Saturday). - Workdays []int64 `json:"workdays,omitempty"` + Workdays []int64 `json:"workdays,omitempty" toon:"workdays,omitempty"` } // CalendarCreateResponse is generated from the Flashduty OpenAPI schema. type CalendarCreateResponse struct { // ID of the newly created calendar (format cal.). - CalID string `json:"cal_id,omitempty"` + CalID string `json:"cal_id,omitempty" toon:"cal_id,omitempty"` // Calendar display name. - CalName string `json:"cal_name,omitempty"` + CalName string `json:"cal_name,omitempty" toon:"cal_name,omitempty"` } // CalendarEmptyObject is generated from the Flashduty OpenAPI schema. @@ -1157,843 +1163,843 @@ type CalendarEmptyObject struct{} // CalendarIDRequest is generated from the Flashduty OpenAPI schema. type CalendarIDRequest struct { // Calendar ID. - CalID string `json:"cal_id,omitempty"` + CalID string `json:"cal_id,omitempty" toon:"cal_id,omitempty"` } // CalendarItem is generated from the Flashduty OpenAPI schema. type CalendarItem struct { // Account ID. - AccountID uint64 `json:"account_id,omitempty"` + AccountID uint64 `json:"account_id,omitempty" toon:"account_id,omitempty"` // Calendar ID. - CalID string `json:"cal_id,omitempty"` + CalID string `json:"cal_id,omitempty" toon:"cal_id,omitempty"` // Calendar display name. - CalName string `json:"cal_name,omitempty"` + CalName string `json:"cal_name,omitempty" toon:"cal_name,omitempty"` // Creation timestamp (Unix seconds). - CreatedAt Timestamp `json:"created_at,omitempty"` + CreatedAt Timestamp `json:"created_at,omitempty" toon:"created_at,omitempty"` // Creator person ID. - CreatorID uint64 `json:"creator_id,omitempty"` + CreatorID uint64 `json:"creator_id,omitempty" toon:"creator_id,omitempty"` // Calendar description. - Description string `json:"description,omitempty"` + Description string `json:"description,omitempty" toon:"description,omitempty"` // Inherited public-holiday calendar IDs. - ExtraCalIDs []string `json:"extra_cal_ids,omitempty"` + ExtraCalIDs []string `json:"extra_cal_ids,omitempty" toon:"extra_cal_ids,omitempty"` // Calendar kind. - Kind string `json:"kind,omitempty"` + Kind string `json:"kind,omitempty" toon:"kind,omitempty"` // Calendar status. - Status string `json:"status,omitempty"` + Status string `json:"status,omitempty" toon:"status,omitempty"` // Owning team ID (0 when not assigned). - TeamID uint64 `json:"team_id,omitempty"` + TeamID uint64 `json:"team_id,omitempty" toon:"team_id,omitempty"` // IANA timezone. - Timezone string `json:"timezone,omitempty"` + Timezone string `json:"timezone,omitempty" toon:"timezone,omitempty"` // Last update timestamp (Unix seconds). - UpdatedAt Timestamp `json:"updated_at,omitempty"` + UpdatedAt Timestamp `json:"updated_at,omitempty" toon:"updated_at,omitempty"` // Last updater person ID. - UpdatedBy uint64 `json:"updated_by,omitempty"` + UpdatedBy uint64 `json:"updated_by,omitempty" toon:"updated_by,omitempty"` // Workday numbers (0 = Sunday, 6 = Saturday). - Workdays []int64 `json:"workdays,omitempty"` + Workdays []int64 `json:"workdays,omitempty" toon:"workdays,omitempty"` } // CalendarListRequest is generated from the Flashduty OpenAPI schema. type CalendarListRequest struct { // Calendar kind filter. Defaults to personal when empty. - Kind string `json:"kind,omitempty"` + Kind string `json:"kind,omitempty" toon:"kind,omitempty"` // Disable locale filtering when listing public-holiday calendars. - NoLocale bool `json:"no_locale,omitempty"` + NoLocale bool `json:"no_locale,omitempty" toon:"no_locale,omitempty"` } // CalendarListResponse is generated from the Flashduty OpenAPI schema. type CalendarListResponse struct { // Calendar items. - Items []CalendarItem `json:"items,omitempty"` + Items []CalendarItem `json:"items,omitempty" toon:"items,omitempty"` // Total number of calendars returned. - Total int64 `json:"total,omitempty"` + Total int64 `json:"total,omitempty" toon:"total,omitempty"` } // CalendarUpdateRequest is generated from the Flashduty OpenAPI schema. type CalendarUpdateRequest struct { // Calendar ID. - CalID string `json:"cal_id,omitempty"` + CalID string `json:"cal_id,omitempty" toon:"cal_id,omitempty"` // New calendar name. - CalName *string `json:"cal_name,omitempty"` + CalName *string `json:"cal_name,omitempty" toon:"cal_name,omitempty"` // New description. - Description *string `json:"description,omitempty"` + Description *string `json:"description,omitempty" toon:"description,omitempty"` // Additional public-holiday calendar IDs to inherit events from. - ExtraCalIDs []string `json:"extra_cal_ids,omitempty"` + ExtraCalIDs []string `json:"extra_cal_ids,omitempty" toon:"extra_cal_ids,omitempty"` // New owning team ID. - TeamID *int64 `json:"team_id,omitempty"` + TeamID *int64 `json:"team_id,omitempty" toon:"team_id,omitempty"` // New IANA timezone. - Timezone *string `json:"timezone,omitempty"` + Timezone *string `json:"timezone,omitempty" toon:"timezone,omitempty"` // Workday numbers (0 = Sunday, 6 = Saturday). - Workdays []int64 `json:"workdays,omitempty"` + Workdays []int64 `json:"workdays,omitempty" toon:"workdays,omitempty"` } // CancelStatusPageMigrationRequest is generated from the Flashduty OpenAPI schema. type CancelStatusPageMigrationRequest struct { // Migration job ID. - JobID string `json:"job_id,omitempty"` + JobID string `json:"job_id,omitempty" toon:"job_id,omitempty"` } // ChangeEventItem is generated from the Flashduty OpenAPI schema. type ChangeEventItem struct { // Account this change event belongs to. - AccountID int64 `json:"account_id,omitempty"` + AccountID int64 `json:"account_id,omitempty" toon:"account_id,omitempty"` // Stable key that groups events belonging to the same change. - ChangeKey string `json:"change_key,omitempty"` + ChangeKey string `json:"change_key,omitempty" toon:"change_key,omitempty"` // Lifecycle status of the change event. - ChangeStatus string `json:"change_status,omitempty"` + ChangeStatus string `json:"change_status,omitempty" toon:"change_status,omitempty"` // Collaboration channel this change event is routed to. - ChannelID int64 `json:"channel_id,omitempty"` + ChannelID int64 `json:"channel_id,omitempty" toon:"channel_id,omitempty"` // Unix timestamp in seconds when the change event was created. - CreatedAt Timestamp `json:"created_at,omitempty"` + CreatedAt Timestamp `json:"created_at,omitempty" toon:"created_at,omitempty"` // Unix timestamp in seconds when the change event was deleted. - DeletedAt Timestamp `json:"deleted_at,omitempty"` + DeletedAt Timestamp `json:"deleted_at,omitempty" toon:"deleted_at,omitempty"` // Change event description. - Description string `json:"description,omitempty"` + Description string `json:"description,omitempty" toon:"description,omitempty"` // Change event ID, a MongoDB ObjectID hex string. - EventID string `json:"event_id,omitempty"` + EventID string `json:"event_id,omitempty" toon:"event_id,omitempty"` // Unix timestamp in seconds when the change event occurred. - EventTime Timestamp `json:"event_time,omitempty"` + EventTime Timestamp `json:"event_time,omitempty" toon:"event_time,omitempty"` // Integration that reported this change event. - IntegrationID int64 `json:"integration_id,omitempty"` + IntegrationID int64 `json:"integration_id,omitempty" toon:"integration_id,omitempty"` // Key-value labels attached to the change event. - Labels map[string]string `json:"labels,omitempty"` + Labels map[string]string `json:"labels,omitempty" toon:"labels,omitempty"` // External link to the source change record. - Link string `json:"link,omitempty"` + Link string `json:"link,omitempty" toon:"link,omitempty"` // Change event title. - Title string `json:"title,omitempty"` + Title string `json:"title,omitempty" toon:"title,omitempty"` // Unix timestamp in seconds when the change event was last updated. - UpdatedAt Timestamp `json:"updated_at,omitempty"` + UpdatedAt Timestamp `json:"updated_at,omitempty" toon:"updated_at,omitempty"` } // ChangeItem is generated from the Flashduty OpenAPI schema. type ChangeItem struct { // Account this change belongs to. - AccountID int64 `json:"account_id,omitempty"` + AccountID int64 `json:"account_id,omitempty" toon:"account_id,omitempty"` // Change ID, a MongoDB ObjectID hex string. - ChangeID string `json:"change_id,omitempty"` + ChangeID string `json:"change_id,omitempty" toon:"change_id,omitempty"` // Stable key that groups events belonging to the same change. - ChangeKey string `json:"change_key,omitempty"` + ChangeKey string `json:"change_key,omitempty" toon:"change_key,omitempty"` // Current lifecycle status of the change. - ChangeStatus string `json:"change_status,omitempty"` + ChangeStatus string `json:"change_status,omitempty" toon:"change_status,omitempty"` // Collaboration channel this change is routed to. - ChannelID int64 `json:"channel_id,omitempty"` + ChannelID int64 `json:"channel_id,omitempty" toon:"channel_id,omitempty"` // Name of the collaboration channel. - ChannelName string `json:"channel_name,omitempty"` + ChannelName string `json:"channel_name,omitempty" toon:"channel_name,omitempty"` // Status of the collaboration channel. - ChannelStatus string `json:"channel_status,omitempty"` + ChannelStatus string `json:"channel_status,omitempty" toon:"channel_status,omitempty"` // Change description. - Description string `json:"description,omitempty"` + Description string `json:"description,omitempty" toon:"description,omitempty"` // Unix timestamp in seconds when the change ended. - EndTime Timestamp `json:"end_time,omitempty"` + EndTime Timestamp `json:"end_time,omitempty" toon:"end_time,omitempty"` // Underlying change events, returned only when include_events is true. - Events []ChangeEventItem `json:"events,omitempty"` + Events []ChangeEventItem `json:"events,omitempty" toon:"events,omitempty"` // Integration that reported this change. - IntegrationID int64 `json:"integration_id,omitempty"` + IntegrationID int64 `json:"integration_id,omitempty" toon:"integration_id,omitempty"` // Name of the reporting integration. - IntegrationName string `json:"integration_name,omitempty"` + IntegrationName string `json:"integration_name,omitempty" toon:"integration_name,omitempty"` // Key-value labels attached to the change. - Labels map[string]string `json:"labels,omitempty"` + Labels map[string]string `json:"labels,omitempty" toon:"labels,omitempty"` // Unix timestamp in seconds of the most recent change activity. - LastTime Timestamp `json:"last_time,omitempty"` + LastTime Timestamp `json:"last_time,omitempty" toon:"last_time,omitempty"` // External link to the source change record. - Link string `json:"link,omitempty"` + Link string `json:"link,omitempty" toon:"link,omitempty"` // Unix timestamp in seconds when the change started. - StartTime Timestamp `json:"start_time,omitempty"` + StartTime Timestamp `json:"start_time,omitempty" toon:"start_time,omitempty"` // Change title. - Title string `json:"title,omitempty"` + Title string `json:"title,omitempty" toon:"title,omitempty"` } // ChannelCreateResponse is generated from the Flashduty OpenAPI schema. type ChannelCreateResponse struct { // Newly created channel ID. - ChannelID int64 `json:"channel_id,omitempty"` + ChannelID int64 `json:"channel_id,omitempty" toon:"channel_id,omitempty"` // Channel name echoed back from the request. - ChannelName string `json:"channel_name,omitempty"` + ChannelName string `json:"channel_name,omitempty" toon:"channel_name,omitempty"` // External report token. Emitted only when external reporting is enabled. - ExternalReportToken string `json:"external_report_token,omitempty"` + ExternalReportToken string `json:"external_report_token,omitempty" toon:"external_report_token,omitempty"` } // ChannelIDRequest is generated from the Flashduty OpenAPI schema. type ChannelIDRequest struct { // Channel ID. - ChannelID int64 `json:"channel_id,omitempty"` + ChannelID int64 `json:"channel_id,omitempty" toon:"channel_id,omitempty"` } // ChannelInfoRequest is generated from the Flashduty OpenAPI schema. type ChannelInfoRequest struct { // Channel ID to fetch. - ChannelID int64 `json:"channel_id,omitempty"` + ChannelID int64 `json:"channel_id,omitempty" toon:"channel_id,omitempty"` } // ChannelInfosRequest is generated from the Flashduty OpenAPI schema. type ChannelInfosRequest struct { // Channel IDs to look up. Up to 1000. - ChannelIDs []int64 `json:"channel_ids,omitempty"` + ChannelIDs []int64 `json:"channel_ids,omitempty" toon:"channel_ids,omitempty"` } // ChannelInfosResponse is generated from the Flashduty OpenAPI schema. type ChannelInfosResponse struct { - Items []ChannelShort `json:"items,omitempty"` + Items []ChannelShort `json:"items,omitempty" toon:"items,omitempty"` } // ChannelItem is generated from the Flashduty OpenAPI schema. type ChannelItem struct { // Owning account ID. - AccountID int64 `json:"account_id,omitempty"` + AccountID int64 `json:"account_id,omitempty" toon:"account_id,omitempty"` // Highest severity among active incidents in the channel. - ActiveIncidentHighestSeverity string `json:"active_incident_highest_severity,omitempty"` + ActiveIncidentHighestSeverity string `json:"active_incident_highest_severity,omitempty" toon:"active_incident_highest_severity,omitempty"` // Auto-resolve timer reset mode. - AutoResolveMode string `json:"auto_resolve_mode,omitempty"` + AutoResolveMode string `json:"auto_resolve_mode,omitempty" toon:"auto_resolve_mode,omitempty"` // Auto-resolve timeout in seconds. 0 disables auto-resolve. - AutoResolveTimeout int64 `json:"auto_resolve_timeout,omitempty"` + AutoResolveTimeout int64 `json:"auto_resolve_timeout,omitempty" toon:"auto_resolve_timeout,omitempty"` // Channel ID. - ChannelID int64 `json:"channel_id,omitempty"` + ChannelID int64 `json:"channel_id,omitempty" toon:"channel_id,omitempty"` // Channel name. - ChannelName string `json:"channel_name,omitempty"` + ChannelName string `json:"channel_name,omitempty" toon:"channel_name,omitempty"` // Creation timestamp (unix seconds). - CreatedAt Timestamp `json:"created_at,omitempty"` + CreatedAt Timestamp `json:"created_at,omitempty" toon:"created_at,omitempty"` // Member ID who created the channel. - CreatorID int64 `json:"creator_id,omitempty"` + CreatorID int64 `json:"creator_id,omitempty" toon:"creator_id,omitempty"` // Deletion timestamp (unix seconds). Non-zero only for soft-deleted channels. - DeletedAt Timestamp `json:"deleted_at,omitempty"` + DeletedAt Timestamp `json:"deleted_at,omitempty" toon:"deleted_at,omitempty"` // Free-form description. - Description string `json:"description,omitempty"` + Description string `json:"description,omitempty" toon:"description,omitempty"` // When true, automatic incident closing is disabled. - DisableAutoClose bool `json:"disable_auto_close,omitempty"` + DisableAutoClose bool `json:"disable_auto_close,omitempty" toon:"disable_auto_close,omitempty"` // When true, outlier incident detection is disabled. - DisableOutlierDetection bool `json:"disable_outlier_detection,omitempty"` + DisableOutlierDetection bool `json:"disable_outlier_detection,omitempty" toon:"disable_outlier_detection,omitempty"` // Token granted to external reporters when external reporting is enabled. - ExternalReportToken string `json:"external_report_token,omitempty"` - Flapping Flapping `json:"flapping,omitempty"` - Group Group `json:"group,omitempty"` + ExternalReportToken string `json:"external_report_token,omitempty" toon:"external_report_token,omitempty"` + Flapping Flapping `json:"flapping,omitempty" toon:"flapping,omitempty"` + Group Group `json:"group,omitempty" toon:"group,omitempty"` // Whether external reporters can file incidents into this channel. - IsExternalReportEnabled bool `json:"is_external_report_enabled,omitempty"` + IsExternalReportEnabled bool `json:"is_external_report_enabled,omitempty" toon:"is_external_report_enabled,omitempty"` // When true, the channel is visible only to its managing teams. - IsPrivate bool `json:"is_private,omitempty"` + IsPrivate bool `json:"is_private,omitempty" toon:"is_private,omitempty"` // Whether the current user has starred this channel. - IsStarred bool `json:"is_starred,omitempty"` + IsStarred bool `json:"is_starred,omitempty" toon:"is_starred,omitempty"` // Timestamp of the most recent incident (unix seconds). - LastIncidentAt Timestamp `json:"last_incident_at,omitempty"` + LastIncidentAt Timestamp `json:"last_incident_at,omitempty" toon:"last_incident_at,omitempty"` // Additional teams that can manage the channel. - ManagingTeamIDs []int64 `json:"managing_team_ids,omitempty"` - ProgressToIncidentCnts IncProgressCnts `json:"progress_to_incident_cnts,omitempty"` + ManagingTeamIDs []int64 `json:"managing_team_ids,omitempty" toon:"managing_team_ids,omitempty"` + ProgressToIncidentCnts IncProgressCnts `json:"progress_to_incident_cnts,omitempty" toon:"progress_to_incident_cnts,omitempty"` // Channel status. - Status string `json:"status,omitempty"` + Status string `json:"status,omitempty" toon:"status,omitempty"` // Owning team ID. - TeamID int64 `json:"team_id,omitempty"` + TeamID int64 `json:"team_id,omitempty" toon:"team_id,omitempty"` // Last update timestamp (unix seconds). - UpdatedAt Timestamp `json:"updated_at,omitempty"` + UpdatedAt Timestamp `json:"updated_at,omitempty" toon:"updated_at,omitempty"` } // ChannelRuleIDRequest is generated from the Flashduty OpenAPI schema. type ChannelRuleIDRequest struct { // Channel the rule belongs to. - ChannelID int64 `json:"channel_id,omitempty"` + ChannelID int64 `json:"channel_id,omitempty" toon:"channel_id,omitempty"` // Rule ID (MongoDB ObjectID). - RuleID string `json:"rule_id,omitempty"` + RuleID string `json:"rule_id,omitempty" toon:"rule_id,omitempty"` } // ChannelScopedListRequest is generated from the Flashduty OpenAPI schema. type ChannelScopedListRequest struct { // Channel to list rules for. - ChannelID int64 `json:"channel_id,omitempty"` + ChannelID int64 `json:"channel_id,omitempty" toon:"channel_id,omitempty"` } // ChannelShort is generated from the Flashduty OpenAPI schema. type ChannelShort struct { // Channel ID. - ChannelID int64 `json:"channel_id,omitempty"` + ChannelID int64 `json:"channel_id,omitempty" toon:"channel_id,omitempty"` // Channel name. - ChannelName string `json:"channel_name,omitempty"` + ChannelName string `json:"channel_name,omitempty" toon:"channel_name,omitempty"` // Channel status. - Status string `json:"status,omitempty"` + Status string `json:"status,omitempty" toon:"status,omitempty"` } // CommentIncidentRequest is generated from the Flashduty OpenAPI schema. type CommentIncidentRequest struct { // Comment body. - Comment string `json:"comment,omitempty"` + Comment string `json:"comment,omitempty" toon:"comment,omitempty"` // Incident IDs to comment on. At most 100 per call. - IncidentIDs []string `json:"incident_ids,omitempty"` + IncidentIDs []string `json:"incident_ids,omitempty" toon:"incident_ids,omitempty"` // When true, do not trigger webhook reply actions for this comment. - MuteReply bool `json:"mute_reply,omitempty"` + MuteReply bool `json:"mute_reply,omitempty" toon:"mute_reply,omitempty"` } // CreateChannelRequest is generated from the Flashduty OpenAPI schema. type CreateChannelRequest struct { // Auto-resolve timer reset mode. - AutoResolveMode string `json:"auto_resolve_mode,omitempty"` + AutoResolveMode string `json:"auto_resolve_mode,omitempty" toon:"auto_resolve_mode,omitempty"` // Auto-resolve timeout in seconds. 0 disables auto-resolve. Max 30 days. - AutoResolveTimeout int64 `json:"auto_resolve_timeout,omitempty"` + AutoResolveTimeout int64 `json:"auto_resolve_timeout,omitempty" toon:"auto_resolve_timeout,omitempty"` // Channel name. 1 to 59 characters. - ChannelName string `json:"channel_name,omitempty"` + ChannelName string `json:"channel_name,omitempty" toon:"channel_name,omitempty"` // Free-form description. Up to 500 characters. - Description string `json:"description,omitempty"` + Description string `json:"description,omitempty" toon:"description,omitempty"` // Disable automatic incident closing. - DisableAutoClose bool `json:"disable_auto_close,omitempty"` + DisableAutoClose bool `json:"disable_auto_close,omitempty" toon:"disable_auto_close,omitempty"` // Disable outlier incident detection. - DisableOutlierDetection bool `json:"disable_outlier_detection,omitempty"` + DisableOutlierDetection bool `json:"disable_outlier_detection,omitempty" toon:"disable_outlier_detection,omitempty"` // Default escalation rule applied to the channel. Omit to skip default escalation. - EscalateRule CreateChannelRequestEscalateRule `json:"escalate_rule,omitempty"` + EscalateRule CreateChannelRequestEscalateRule `json:"escalate_rule,omitempty" toon:"escalate_rule,omitempty"` // Flapping detection configuration. - Flapping CreateChannelRequestFlapping `json:"flapping,omitempty"` + Flapping CreateChannelRequestFlapping `json:"flapping,omitempty" toon:"flapping,omitempty"` // Alert grouping configuration. - Group CreateChannelRequestGroup `json:"group,omitempty"` + Group CreateChannelRequestGroup `json:"group,omitempty" toon:"group,omitempty"` // Allow external reporters to file incidents into this channel. - IsExternalReportEnabled bool `json:"is_external_report_enabled,omitempty"` + IsExternalReportEnabled bool `json:"is_external_report_enabled,omitempty" toon:"is_external_report_enabled,omitempty"` // When true, the channel is visible only to its managing teams. - IsPrivate bool `json:"is_private,omitempty"` + IsPrivate bool `json:"is_private,omitempty" toon:"is_private,omitempty"` // Additional teams that can manage the channel. Up to 3 entries. - ManagingTeamIDs []int64 `json:"managing_team_ids,omitempty"` + ManagingTeamIDs []int64 `json:"managing_team_ids,omitempty" toon:"managing_team_ids,omitempty"` // IDs of plugins (integrations) subscribed to this channel. - PluginIDs []int64 `json:"plugin_ids,omitempty"` + PluginIDs []int64 `json:"plugin_ids,omitempty" toon:"plugin_ids,omitempty"` // Owning team ID. - TeamID int64 `json:"team_id,omitempty"` + TeamID int64 `json:"team_id,omitempty" toon:"team_id,omitempty"` } // CreateDropRuleRequest is generated from the Flashduty OpenAPI schema. type CreateDropRuleRequest struct { // Channel the rule belongs to. - ChannelID int64 `json:"channel_id,omitempty"` + ChannelID int64 `json:"channel_id,omitempty" toon:"channel_id,omitempty"` // Rule description, up to 500 characters. - Description string `json:"description,omitempty"` + Description string `json:"description,omitempty" toon:"description,omitempty"` // Or-of-and filter tree. Each outer element is an AND group; within each group, all conditions must match. - Filters [][]CreateDropRuleRequestFiltersItemItem `json:"filters,omitempty"` + Filters [][]CreateDropRuleRequestFiltersItemItem `json:"filters,omitempty" toon:"filters,omitempty"` // Evaluation priority. Lower runs first. - Priority int64 `json:"priority,omitempty"` + Priority int64 `json:"priority,omitempty" toon:"priority,omitempty"` // Rule name, 1 to 39 characters. - RuleName string `json:"rule_name,omitempty"` + RuleName string `json:"rule_name,omitempty" toon:"rule_name,omitempty"` } // CreateEscalationRuleRequest is generated from the Flashduty OpenAPI schema. type CreateEscalationRuleRequest struct { // Aggregation window in seconds. 0 disables aggregation. - AggrWindow int64 `json:"aggr_window,omitempty"` + AggrWindow int64 `json:"aggr_window,omitempty" toon:"aggr_window,omitempty"` // Channel the rule belongs to. - ChannelID int64 `json:"channel_id,omitempty"` + ChannelID int64 `json:"channel_id,omitempty" toon:"channel_id,omitempty"` // Rule description, up to 500 characters. - Description string `json:"description,omitempty"` + Description string `json:"description,omitempty" toon:"description,omitempty"` // Or-of-and filter tree. Each outer element is an AND group; within each group, all conditions must match. - Filters [][]CreateEscalationRuleRequestFiltersItemItem `json:"filters,omitempty"` + Filters [][]CreateEscalationRuleRequestFiltersItemItem `json:"filters,omitempty" toon:"filters,omitempty"` // Escalation levels in order. At least one level is required. - Layers []CreateEscalationRuleRequestLayersItem `json:"layers,omitempty"` + Layers []CreateEscalationRuleRequestLayersItem `json:"layers,omitempty" toon:"layers,omitempty"` // Evaluation priority. Lower runs first. - Priority *int64 `json:"priority,omitempty"` + Priority *int64 `json:"priority,omitempty" toon:"priority,omitempty"` // Rule name, 1 to 39 characters. - RuleName string `json:"rule_name,omitempty"` + RuleName string `json:"rule_name,omitempty" toon:"rule_name,omitempty"` // Notification template ID (MongoDB ObjectID). - TemplateID string `json:"template_id,omitempty"` + TemplateID string `json:"template_id,omitempty" toon:"template_id,omitempty"` // Optional recurring time windows during which the rule applies. - TimeFilters []CreateEscalationRuleRequestTimeFiltersItem `json:"time_filters,omitempty"` + TimeFilters []CreateEscalationRuleRequestTimeFiltersItem `json:"time_filters,omitempty" toon:"time_filters,omitempty"` } // CreateFieldRequest is generated from the Flashduty OpenAPI schema. type CreateFieldRequest struct { // Optional default value. Type must match `field_type`: `bool` for checkbox; one of `options` for single_select; subset of `options` for multi_select; string ≤3000 chars for text. - DefaultValue any `json:"default_value,omitempty"` + DefaultValue any `json:"default_value,omitempty" toon:"default_value,omitempty"` // Optional free-text description. - Description string `json:"description,omitempty"` + Description string `json:"description,omitempty" toon:"description,omitempty"` // Human-readable name. Must be unique within the account. - DisplayName string `json:"display_name,omitempty"` + DisplayName string `json:"display_name,omitempty" toon:"display_name,omitempty"` // Machine name. Must start with a letter or underscore; 1–40 chars of `[a-zA-Z0-9_]`. Immutable after creation. - FieldName string `json:"field_name,omitempty"` + FieldName string `json:"field_name,omitempty" toon:"field_name,omitempty"` // Field input type. Immutable after creation. - FieldType string `json:"field_type,omitempty"` + FieldType string `json:"field_type,omitempty" toon:"field_type,omitempty"` // Required and non-empty for `single_select`/`multi_select` (unique strings, each 1–200 chars). Must be omitted or empty for `checkbox`/`text`. - Options []string `json:"options,omitempty"` + Options []string `json:"options,omitempty" toon:"options,omitempty"` // Stored value type. `checkbox` requires `bool`; `single_select`/`multi_select`/`text` require `string`. Immutable after creation. - ValueType string `json:"value_type,omitempty"` + ValueType string `json:"value_type,omitempty" toon:"value_type,omitempty"` } // CreateFieldResponse is generated from the Flashduty OpenAPI schema. type CreateFieldResponse struct { // Newly assigned field ID — 24-character hex ObjectID. - FieldID string `json:"field_id,omitempty"` + FieldID string `json:"field_id,omitempty" toon:"field_id,omitempty"` // Echo of the submitted `field_name`. - FieldName string `json:"field_name,omitempty"` + FieldName string `json:"field_name,omitempty" toon:"field_name,omitempty"` } // CreateIncidentRequest is generated from the Flashduty OpenAPI schema. type CreateIncidentRequest struct { // Incident assignment target. Either `person_ids` or `escalate_rule_id` must be provided. - AssignedTo CreateIncidentRequestAssignedTo `json:"assigned_to,omitempty"` + AssignedTo CreateIncidentRequestAssignedTo `json:"assigned_to,omitempty" toon:"assigned_to,omitempty"` // Channel to file the incident into. Optional; leave unset for a standalone incident. - ChannelID int64 `json:"channel_id,omitempty"` + ChannelID int64 `json:"channel_id,omitempty" toon:"channel_id,omitempty"` // Incident description, up to 1024 characters. - Description string `json:"description,omitempty"` + Description string `json:"description,omitempty" toon:"description,omitempty"` // Incident severity. - IncidentSeverity string `json:"incident_severity,omitempty"` + IncidentSeverity string `json:"incident_severity,omitempty" toon:"incident_severity,omitempty"` // Incident title, up to 512 characters. - Title string `json:"title,omitempty"` + Title string `json:"title,omitempty" toon:"title,omitempty"` } // CreateIncidentResponse is generated from the Flashduty OpenAPI schema. type CreateIncidentResponse struct { // Newly created incident ID (MongoDB ObjectID). - IncidentID string `json:"incident_id,omitempty"` + IncidentID string `json:"incident_id,omitempty" toon:"incident_id,omitempty"` // Echoes the incident title from the request. - Title string `json:"title,omitempty"` + Title string `json:"title,omitempty" toon:"title,omitempty"` } // CreateInhibitRuleRequest is generated from the Flashduty OpenAPI schema. type CreateInhibitRuleRequest struct { // Channel the rule belongs to. - ChannelID int64 `json:"channel_id,omitempty"` + ChannelID int64 `json:"channel_id,omitempty" toon:"channel_id,omitempty"` // Rule description, up to 500 characters. - Description string `json:"description,omitempty"` + Description string `json:"description,omitempty" toon:"description,omitempty"` // Label keys used to pair source and target alerts. - Equals []string `json:"equals,omitempty"` + Equals []string `json:"equals,omitempty" toon:"equals,omitempty"` // When true, suppressed target alerts are dropped instead of merged. - IsDirectlyDiscard bool `json:"is_directly_discard,omitempty"` + IsDirectlyDiscard bool `json:"is_directly_discard,omitempty" toon:"is_directly_discard,omitempty"` // Evaluation priority. Lower runs first. - Priority int64 `json:"priority,omitempty"` + Priority int64 `json:"priority,omitempty" toon:"priority,omitempty"` // Rule name, 1 to 39 characters. - RuleName string `json:"rule_name,omitempty"` + RuleName string `json:"rule_name,omitempty" toon:"rule_name,omitempty"` // Or-of-and filter tree. Each outer element is an AND group; within each group, all conditions must match. - SourceFilters [][]CreateInhibitRuleRequestSourceFiltersItemItem `json:"source_filters,omitempty"` + SourceFilters [][]CreateInhibitRuleRequestSourceFiltersItemItem `json:"source_filters,omitempty" toon:"source_filters,omitempty"` // Or-of-and filter tree. Each outer element is an AND group; within each group, all conditions must match. - TargetFilters [][]CreateInhibitRuleRequestTargetFiltersItemItem `json:"target_filters,omitempty"` + TargetFilters [][]CreateInhibitRuleRequestTargetFiltersItemItem `json:"target_filters,omitempty" toon:"target_filters,omitempty"` } // CreateSilenceRuleRequest is generated from the Flashduty OpenAPI schema. type CreateSilenceRuleRequest struct { // Channel the rule belongs to. - ChannelID int64 `json:"channel_id,omitempty"` + ChannelID int64 `json:"channel_id,omitempty" toon:"channel_id,omitempty"` // Rule description, up to 500 characters. - Description string `json:"description,omitempty"` + Description string `json:"description,omitempty" toon:"description,omitempty"` // Or-of-and filter tree. Each outer element is an AND group; within each group, all conditions must match. - Filters [][]CreateSilenceRuleRequestFiltersItemItem `json:"filters,omitempty"` + Filters [][]CreateSilenceRuleRequestFiltersItemItem `json:"filters,omitempty" toon:"filters,omitempty"` // Source incident ID when the silence was created from an incident. - FromIncidentID string `json:"from_incident_id,omitempty"` + FromIncidentID string `json:"from_incident_id,omitempty" toon:"from_incident_id,omitempty"` // When true, the silence rule is automatically deleted after its time window expires. Defaults to false. - IsAutoDelete bool `json:"is_auto_delete,omitempty"` + IsAutoDelete bool `json:"is_auto_delete,omitempty" toon:"is_auto_delete,omitempty"` // When true, silenced alerts are dropped instead of suppressed into incidents. - IsDirectlyDiscard bool `json:"is_directly_discard,omitempty"` + IsDirectlyDiscard bool `json:"is_directly_discard,omitempty" toon:"is_directly_discard,omitempty"` // Evaluation priority. Lower runs first. - Priority int64 `json:"priority,omitempty"` + Priority int64 `json:"priority,omitempty" toon:"priority,omitempty"` // Rule name, 1 to 39 characters. - RuleName string `json:"rule_name,omitempty"` + RuleName string `json:"rule_name,omitempty" toon:"rule_name,omitempty"` // One-off time window defined by unix seconds. - TimeFilter CreateSilenceRuleRequestTimeFilter `json:"time_filter,omitempty"` + TimeFilter CreateSilenceRuleRequestTimeFilter `json:"time_filter,omitempty" toon:"time_filter,omitempty"` // Recurring time windows during which silencing applies. Mutually exclusive with `time_filter`. - TimeFilters []CreateSilenceRuleRequestTimeFiltersItem `json:"time_filters,omitempty"` + TimeFilters []CreateSilenceRuleRequestTimeFiltersItem `json:"time_filters,omitempty" toon:"time_filters,omitempty"` } // CreateStatusPageChangeRequest is generated from the Flashduty OpenAPI schema. type CreateStatusPageChangeRequest struct { // Maintenance only: automatically advance the status based on the scheduled window. - AutoUpdateBySchedule bool `json:"auto_update_by_schedule,omitempty"` + AutoUpdateBySchedule bool `json:"auto_update_by_schedule,omitempty" toon:"auto_update_by_schedule,omitempty"` // Scheduled close time for retrospective events. Must be greater than `start_at_seconds`. - CloseAtSeconds int64 `json:"close_at_seconds,omitempty"` + CloseAtSeconds int64 `json:"close_at_seconds,omitempty" toon:"close_at_seconds,omitempty"` // Event description (Markdown). Required by the validator. - Description string `json:"description,omitempty"` + Description string `json:"description,omitempty" toon:"description,omitempty"` // Mark this event as a retrospective (historical) one. - IsRetrospective bool `json:"is_retrospective,omitempty"` + IsRetrospective bool `json:"is_retrospective,omitempty" toon:"is_retrospective,omitempty"` // Linked change IDs (related incidents, deployments, etc.). - LinkedChanges []string `json:"linked_changes,omitempty"` + LinkedChanges []string `json:"linked_changes,omitempty" toon:"linked_changes,omitempty"` // Notify subscribers about this event and all its updates. - NotifySubscribers bool `json:"notify_subscribers,omitempty"` + NotifySubscribers bool `json:"notify_subscribers,omitempty" toon:"notify_subscribers,omitempty"` // Status page ID. - PageID int64 `json:"page_id,omitempty"` + PageID int64 `json:"page_id,omitempty" toon:"page_id,omitempty"` // Member IDs responsible for this event. - Responders []int64 `json:"responders,omitempty"` + Responders []int64 `json:"responders,omitempty" toon:"responders,omitempty"` // Event start time in unix seconds. Defaults to now when omitted. - StartAtSeconds int64 `json:"start_at_seconds,omitempty"` + StartAtSeconds int64 `json:"start_at_seconds,omitempty" toon:"start_at_seconds,omitempty"` // Initial event status. `investigating`/`identified`/`monitoring`/`resolved` apply to incidents; `scheduled`/`ongoing`/`completed` apply to maintenances. - Status string `json:"status,omitempty"` + Status string `json:"status,omitempty" toon:"status,omitempty"` // Event title, up to 255 characters. - Title string `json:"title,omitempty"` + Title string `json:"title,omitempty" toon:"title,omitempty"` // Event type. - Type string `json:"type,omitempty"` + Type string `json:"type,omitempty" toon:"type,omitempty"` // Timeline updates. Immediate events normally pass one update; retrospective events must pass all historical updates. - Updates []CreateStatusPageChangeRequestUpdatesItem `json:"updates,omitempty"` + Updates []CreateStatusPageChangeRequestUpdatesItem `json:"updates,omitempty" toon:"updates,omitempty"` } // CreateStatusPageChangeTimelineRequest is generated from the Flashduty OpenAPI schema. type CreateStatusPageChangeTimelineRequest struct { // Update timestamp in unix seconds. Defaults to now when omitted. - AtSeconds int64 `json:"at_seconds,omitempty"` + AtSeconds int64 `json:"at_seconds,omitempty" toon:"at_seconds,omitempty"` // Target event ID. - ChangeID int64 `json:"change_id,omitempty"` + ChangeID int64 `json:"change_id,omitempty" toon:"change_id,omitempty"` // Component status transitions applied by this update. Component IDs must be unique. - ComponentChanges []CreateStatusPageChangeTimelineRequestComponentChangesItem `json:"component_changes,omitempty"` + ComponentChanges []CreateStatusPageChangeTimelineRequestComponentChangesItem `json:"component_changes,omitempty" toon:"component_changes,omitempty"` // Update description (Markdown). Required. - Description string `json:"description,omitempty"` + Description string `json:"description,omitempty" toon:"description,omitempty"` // Status page ID. - PageID int64 `json:"page_id,omitempty"` + PageID int64 `json:"page_id,omitempty" toon:"page_id,omitempty"` // New event status. Must match the event type. When the status transitions to `resolved` or `completed`, all referenced components must become `operational`. - Status string `json:"status,omitempty"` + Status string `json:"status,omitempty" toon:"status,omitempty"` } // CreateWarRoomRequest is generated from the Flashduty OpenAPI schema. type CreateWarRoomRequest struct { // When true, also add historical responders of the incident as observers. - AddObservers bool `json:"add_observers,omitempty"` + AddObservers bool `json:"add_observers,omitempty" toon:"add_observers,omitempty"` // Incident ID (MongoDB ObjectID). - IncidentID string `json:"incident_id,omitempty"` + IncidentID string `json:"incident_id,omitempty" toon:"incident_id,omitempty"` // IM integration ID. Must have war room enabled; Feishu, DingTalk, WeCom (self-built), Slack and Teams are supported. - IntegrationID int64 `json:"integration_id,omitempty"` + IntegrationID int64 `json:"integration_id,omitempty" toon:"integration_id,omitempty"` // Additional member IDs to add to the war room. - MemberIDs []int64 `json:"member_ids,omitempty"` + MemberIDs []int64 `json:"member_ids,omitempty" toon:"member_ids,omitempty"` } // DsClickHouseConfig is generated from the Flashduty OpenAPI schema. type DsClickHouseConfig struct { // Default database for authentication. - Database string `json:"database,omitempty"` + Database string `json:"database,omitempty" toon:"database,omitempty"` // Dial timeout in milliseconds. - DialTimeoutMills int64 `json:"dial_timeout_mills,omitempty"` - IdleConns int64 `json:"idle_conns,omitempty"` - LifetimeSeconds int64 `json:"lifetime_seconds,omitempty"` + DialTimeoutMills int64 `json:"dial_timeout_mills,omitempty" toon:"dial_timeout_mills,omitempty"` + IdleConns int64 `json:"idle_conns,omitempty" toon:"idle_conns,omitempty"` + LifetimeSeconds int64 `json:"lifetime_seconds,omitempty" toon:"lifetime_seconds,omitempty"` // Max query execution time in seconds. - MaxExecutionSeconds int64 `json:"max_execution_seconds,omitempty"` - OpenConns int64 `json:"open_conns,omitempty"` - Password string `json:"password,omitempty"` - TimeoutMills int64 `json:"timeout_mills,omitempty"` - TlsCa string `json:"tls_ca,omitempty"` - TlsCert string `json:"tls_cert,omitempty"` - TlsEnabled bool `json:"tls_enabled,omitempty"` - TlsKey string `json:"tls_key,omitempty"` - TlsKeyPwd string `json:"tls_key_pwd,omitempty"` - TlsMaxVersion string `json:"tls_max_version,omitempty"` - TlsMinVersion string `json:"tls_min_version,omitempty"` - TlsServerName string `json:"tls_server_name,omitempty"` - TlsSkipVerify bool `json:"tls_skip_verify,omitempty"` - Username string `json:"username,omitempty"` + MaxExecutionSeconds int64 `json:"max_execution_seconds,omitempty" toon:"max_execution_seconds,omitempty"` + OpenConns int64 `json:"open_conns,omitempty" toon:"open_conns,omitempty"` + Password string `json:"password,omitempty" toon:"password,omitempty"` + TimeoutMills int64 `json:"timeout_mills,omitempty" toon:"timeout_mills,omitempty"` + TlsCa string `json:"tls_ca,omitempty" toon:"tls_ca,omitempty"` + TlsCert string `json:"tls_cert,omitempty" toon:"tls_cert,omitempty"` + TlsEnabled bool `json:"tls_enabled,omitempty" toon:"tls_enabled,omitempty"` + TlsKey string `json:"tls_key,omitempty" toon:"tls_key,omitempty"` + TlsKeyPwd string `json:"tls_key_pwd,omitempty" toon:"tls_key_pwd,omitempty"` + TlsMaxVersion string `json:"tls_max_version,omitempty" toon:"tls_max_version,omitempty"` + TlsMinVersion string `json:"tls_min_version,omitempty" toon:"tls_min_version,omitempty"` + TlsServerName string `json:"tls_server_name,omitempty" toon:"tls_server_name,omitempty"` + TlsSkipVerify bool `json:"tls_skip_verify,omitempty" toon:"tls_skip_verify,omitempty"` + Username string `json:"username,omitempty" toon:"username,omitempty"` } // DsElasticSearchConfig is generated from the Flashduty OpenAPI schema. type DsElasticSearchConfig struct { // Elastic Cloud API key. Only for `cloud` deployment. - APIKey string `json:"api_key,omitempty"` - CertificateFingerprint string `json:"certificate_fingerprint,omitempty"` + APIKey string `json:"api_key,omitempty" toon:"api_key,omitempty"` + CertificateFingerprint string `json:"certificate_fingerprint,omitempty" toon:"certificate_fingerprint,omitempty"` // Elastic Cloud deployment ID. Only for `cloud` deployment. - CloudID string `json:"cloud_id,omitempty"` + CloudID string `json:"cloud_id,omitempty" toon:"cloud_id,omitempty"` // Deployment type. `cloud` uses Elastic Cloud; `self-managed` uses a self-hosted cluster. - Deployment string `json:"deployment,omitempty"` - Headers []string `json:"headers,omitempty"` - Password string `json:"password,omitempty"` + Deployment string `json:"deployment,omitempty" toon:"deployment,omitempty"` + Headers []string `json:"headers,omitempty" toon:"headers,omitempty"` + Password string `json:"password,omitempty" toon:"password,omitempty"` // Service token; overrides username/password if set. - ServiceToken string `json:"service_token,omitempty"` - TimeoutMills int64 `json:"timeout_mills,omitempty"` - TlsCa string `json:"tls_ca,omitempty"` + ServiceToken string `json:"service_token,omitempty" toon:"service_token,omitempty"` + TimeoutMills int64 `json:"timeout_mills,omitempty" toon:"timeout_mills,omitempty"` + TlsCa string `json:"tls_ca,omitempty" toon:"tls_ca,omitempty"` // Username for `self-managed` deployment. - Username string `json:"username,omitempty"` + Username string `json:"username,omitempty" toon:"username,omitempty"` } // DsLokiConfig is generated from the Flashduty OpenAPI schema. type DsLokiConfig struct { - BasicAuthEnabled bool `json:"basic_auth_enabled,omitempty"` - BasicAuthPassword string `json:"basic_auth_password,omitempty"` - BasicAuthUsername string `json:"basic_auth_username,omitempty"` - Headers []string `json:"headers,omitempty"` - Params []string `json:"params,omitempty"` - TlsCa string `json:"tls_ca,omitempty"` - TlsCert string `json:"tls_cert,omitempty"` - TlsKey string `json:"tls_key,omitempty"` - TlsKeyPwd string `json:"tls_key_pwd,omitempty"` - TlsMaxVersion string `json:"tls_max_version,omitempty"` - TlsMinVersion string `json:"tls_min_version,omitempty"` - TlsServerName string `json:"tls_server_name,omitempty"` - TlsSkipVerify bool `json:"tls_skip_verify,omitempty"` + BasicAuthEnabled bool `json:"basic_auth_enabled,omitempty" toon:"basic_auth_enabled,omitempty"` + BasicAuthPassword string `json:"basic_auth_password,omitempty" toon:"basic_auth_password,omitempty"` + BasicAuthUsername string `json:"basic_auth_username,omitempty" toon:"basic_auth_username,omitempty"` + Headers []string `json:"headers,omitempty" toon:"headers,omitempty"` + Params []string `json:"params,omitempty" toon:"params,omitempty"` + TlsCa string `json:"tls_ca,omitempty" toon:"tls_ca,omitempty"` + TlsCert string `json:"tls_cert,omitempty" toon:"tls_cert,omitempty"` + TlsKey string `json:"tls_key,omitempty" toon:"tls_key,omitempty"` + TlsKeyPwd string `json:"tls_key_pwd,omitempty" toon:"tls_key_pwd,omitempty"` + TlsMaxVersion string `json:"tls_max_version,omitempty" toon:"tls_max_version,omitempty"` + TlsMinVersion string `json:"tls_min_version,omitempty" toon:"tls_min_version,omitempty"` + TlsServerName string `json:"tls_server_name,omitempty" toon:"tls_server_name,omitempty"` + TlsSkipVerify bool `json:"tls_skip_verify,omitempty" toon:"tls_skip_verify,omitempty"` } // DsMySqlConfig is generated from the Flashduty OpenAPI schema. type DsMySqlConfig struct { // Maximum idle connections. - IdleConns int64 `json:"idle_conns,omitempty"` + IdleConns int64 `json:"idle_conns,omitempty" toon:"idle_conns,omitempty"` // Connection maximum lifetime in seconds. - LifetimeSeconds int64 `json:"lifetime_seconds,omitempty"` + LifetimeSeconds int64 `json:"lifetime_seconds,omitempty" toon:"lifetime_seconds,omitempty"` // Maximum open connections. - OpenConns int64 `json:"open_conns,omitempty"` - Password string `json:"password,omitempty"` + OpenConns int64 `json:"open_conns,omitempty" toon:"open_conns,omitempty"` + Password string `json:"password,omitempty" toon:"password,omitempty"` // Query timeout in milliseconds. - TimeoutMills int64 `json:"timeout_mills,omitempty"` - TlsCa string `json:"tls_ca,omitempty"` - TlsCert string `json:"tls_cert,omitempty"` - TlsKey string `json:"tls_key,omitempty"` - TlsKeyPwd string `json:"tls_key_pwd,omitempty"` - TlsMaxVersion string `json:"tls_max_version,omitempty"` - TlsMinVersion string `json:"tls_min_version,omitempty"` - TlsServerName string `json:"tls_server_name,omitempty"` - TlsSkipVerify bool `json:"tls_skip_verify,omitempty"` - Username string `json:"username,omitempty"` + TimeoutMills int64 `json:"timeout_mills,omitempty" toon:"timeout_mills,omitempty"` + TlsCa string `json:"tls_ca,omitempty" toon:"tls_ca,omitempty"` + TlsCert string `json:"tls_cert,omitempty" toon:"tls_cert,omitempty"` + TlsKey string `json:"tls_key,omitempty" toon:"tls_key,omitempty"` + TlsKeyPwd string `json:"tls_key_pwd,omitempty" toon:"tls_key_pwd,omitempty"` + TlsMaxVersion string `json:"tls_max_version,omitempty" toon:"tls_max_version,omitempty"` + TlsMinVersion string `json:"tls_min_version,omitempty" toon:"tls_min_version,omitempty"` + TlsServerName string `json:"tls_server_name,omitempty" toon:"tls_server_name,omitempty"` + TlsSkipVerify bool `json:"tls_skip_verify,omitempty" toon:"tls_skip_verify,omitempty"` + Username string `json:"username,omitempty" toon:"username,omitempty"` } // DsOracleConfig is generated from the Flashduty OpenAPI schema. type DsOracleConfig struct { - IdleConns int64 `json:"idle_conns,omitempty"` - LifetimeSeconds int64 `json:"lifetime_seconds,omitempty"` - OpenConns int64 `json:"open_conns,omitempty"` + IdleConns int64 `json:"idle_conns,omitempty" toon:"idle_conns,omitempty"` + LifetimeSeconds int64 `json:"lifetime_seconds,omitempty" toon:"lifetime_seconds,omitempty"` + OpenConns int64 `json:"open_conns,omitempty" toon:"open_conns,omitempty"` // Extra connection options as key-value pairs. - Options map[string]string `json:"options,omitempty"` - Password string `json:"password,omitempty"` - TimeoutMills int64 `json:"timeout_mills,omitempty"` - Username string `json:"username,omitempty"` + Options map[string]string `json:"options,omitempty" toon:"options,omitempty"` + Password string `json:"password,omitempty" toon:"password,omitempty"` + TimeoutMills int64 `json:"timeout_mills,omitempty" toon:"timeout_mills,omitempty"` + Username string `json:"username,omitempty" toon:"username,omitempty"` } // DsPayload is generated from the Flashduty OpenAPI schema. type DsPayload struct { - Clickhouse DsClickHouseConfig `json:"clickhouse,omitempty"` - Elasticsearch DsElasticSearchConfig `json:"elasticsearch,omitempty"` - Loki DsLokiConfig `json:"loki,omitempty"` - Mysql DsMySqlConfig `json:"mysql,omitempty"` - Oracle DsOracleConfig `json:"oracle,omitempty"` - Postgres DsPostgresConfig `json:"postgres,omitempty"` - Prometheus DsPrometheusConfig `json:"prometheus,omitempty"` - SLS DsslsConfig `json:"sls,omitempty"` - Victorialogs DsVictoriaLogsConfig `json:"victorialogs,omitempty"` + Clickhouse DsClickHouseConfig `json:"clickhouse,omitempty" toon:"clickhouse,omitempty"` + Elasticsearch DsElasticSearchConfig `json:"elasticsearch,omitempty" toon:"elasticsearch,omitempty"` + Loki DsLokiConfig `json:"loki,omitempty" toon:"loki,omitempty"` + Mysql DsMySqlConfig `json:"mysql,omitempty" toon:"mysql,omitempty"` + Oracle DsOracleConfig `json:"oracle,omitempty" toon:"oracle,omitempty"` + Postgres DsPostgresConfig `json:"postgres,omitempty" toon:"postgres,omitempty"` + Prometheus DsPrometheusConfig `json:"prometheus,omitempty" toon:"prometheus,omitempty"` + SLS DsslsConfig `json:"sls,omitempty" toon:"sls,omitempty"` + Victorialogs DsVictoriaLogsConfig `json:"victorialogs,omitempty" toon:"victorialogs,omitempty"` } // DsPostgresConfig is generated from the Flashduty OpenAPI schema. type DsPostgresConfig struct { - IdleConns int64 `json:"idle_conns,omitempty"` - LifetimeSeconds int64 `json:"lifetime_seconds,omitempty"` - OpenConns int64 `json:"open_conns,omitempty"` - Password string `json:"password,omitempty"` - TimeoutMills int64 `json:"timeout_mills,omitempty"` - TlsCa string `json:"tls_ca,omitempty"` - TlsCert string `json:"tls_cert,omitempty"` - TlsKey string `json:"tls_key,omitempty"` - Username string `json:"username,omitempty"` + IdleConns int64 `json:"idle_conns,omitempty" toon:"idle_conns,omitempty"` + LifetimeSeconds int64 `json:"lifetime_seconds,omitempty" toon:"lifetime_seconds,omitempty"` + OpenConns int64 `json:"open_conns,omitempty" toon:"open_conns,omitempty"` + Password string `json:"password,omitempty" toon:"password,omitempty"` + TimeoutMills int64 `json:"timeout_mills,omitempty" toon:"timeout_mills,omitempty"` + TlsCa string `json:"tls_ca,omitempty" toon:"tls_ca,omitempty"` + TlsCert string `json:"tls_cert,omitempty" toon:"tls_cert,omitempty"` + TlsKey string `json:"tls_key,omitempty" toon:"tls_key,omitempty"` + Username string `json:"username,omitempty" toon:"username,omitempty"` } // DsPrometheusConfig is generated from the Flashduty OpenAPI schema. type DsPrometheusConfig struct { // Enable HTTP Basic Auth. - BasicAuthEnabled bool `json:"basic_auth_enabled,omitempty"` + BasicAuthEnabled bool `json:"basic_auth_enabled,omitempty" toon:"basic_auth_enabled,omitempty"` // Basic auth password. - BasicAuthPassword string `json:"basic_auth_password,omitempty"` + BasicAuthPassword string `json:"basic_auth_password,omitempty" toon:"basic_auth_password,omitempty"` // Basic auth username. - BasicAuthUsername string `json:"basic_auth_username,omitempty"` + BasicAuthUsername string `json:"basic_auth_username,omitempty" toon:"basic_auth_username,omitempty"` // Custom HTTP headers in `Key: Value` format. - Headers []string `json:"headers,omitempty"` + Headers []string `json:"headers,omitempty" toon:"headers,omitempty"` // Custom query parameters in `key=value` format. - Params []string `json:"params,omitempty"` - TlsCa string `json:"tls_ca,omitempty"` - TlsCert string `json:"tls_cert,omitempty"` - TlsKey string `json:"tls_key,omitempty"` - TlsKeyPwd string `json:"tls_key_pwd,omitempty"` - TlsMaxVersion string `json:"tls_max_version,omitempty"` - TlsMinVersion string `json:"tls_min_version,omitempty"` - TlsServerName string `json:"tls_server_name,omitempty"` - TlsSkipVerify bool `json:"tls_skip_verify,omitempty"` + Params []string `json:"params,omitempty" toon:"params,omitempty"` + TlsCa string `json:"tls_ca,omitempty" toon:"tls_ca,omitempty"` + TlsCert string `json:"tls_cert,omitempty" toon:"tls_cert,omitempty"` + TlsKey string `json:"tls_key,omitempty" toon:"tls_key,omitempty"` + TlsKeyPwd string `json:"tls_key_pwd,omitempty" toon:"tls_key_pwd,omitempty"` + TlsMaxVersion string `json:"tls_max_version,omitempty" toon:"tls_max_version,omitempty"` + TlsMinVersion string `json:"tls_min_version,omitempty" toon:"tls_min_version,omitempty"` + TlsServerName string `json:"tls_server_name,omitempty" toon:"tls_server_name,omitempty"` + TlsSkipVerify bool `json:"tls_skip_verify,omitempty" toon:"tls_skip_verify,omitempty"` } // DsslsConfig is generated from the Flashduty OpenAPI schema. type DsslsConfig struct { // Alibaba Cloud Access Key ID. - AccessKeyID string `json:"access_key_id,omitempty"` + AccessKeyID string `json:"access_key_id,omitempty" toon:"access_key_id,omitempty"` // Alibaba Cloud Access Key Secret. - AccessKeySecret string `json:"access_key_secret,omitempty"` + AccessKeySecret string `json:"access_key_secret,omitempty" toon:"access_key_secret,omitempty"` // Custom HTTP headers. - Headers []string `json:"headers,omitempty"` + Headers []string `json:"headers,omitempty" toon:"headers,omitempty"` } // DsType is generated from the Flashduty OpenAPI schema. type DsType struct { // Owning account ID. `0` for global types. - AccountID uint64 `json:"account_id,omitempty"` - ID uint64 `json:"id,omitempty"` + AccountID uint64 `json:"account_id,omitempty" toon:"account_id,omitempty"` + ID uint64 `json:"id,omitempty" toon:"id,omitempty"` // Identifier used as the `ds_type` of rules, e.g. `prometheus`. - Ident string `json:"ident,omitempty"` + Ident string `json:"ident,omitempty" toon:"ident,omitempty"` // Display name, e.g. `Prometheus`. - Name string `json:"name,omitempty"` + Name string `json:"name,omitempty" toon:"name,omitempty"` // Display order weight; higher appears first. - Weight int64 `json:"weight,omitempty"` + Weight int64 `json:"weight,omitempty" toon:"weight,omitempty"` } // DsVictoriaLogsConfig is generated from the Flashduty OpenAPI schema. type DsVictoriaLogsConfig struct { - BasicAuthEnabled bool `json:"basic_auth_enabled,omitempty"` - BasicAuthPassword string `json:"basic_auth_password,omitempty"` - BasicAuthUsername string `json:"basic_auth_username,omitempty"` - Headers []string `json:"headers,omitempty"` - Params []string `json:"params,omitempty"` - TlsCa string `json:"tls_ca,omitempty"` - TlsCert string `json:"tls_cert,omitempty"` - TlsKey string `json:"tls_key,omitempty"` - TlsKeyPwd string `json:"tls_key_pwd,omitempty"` - TlsMaxVersion string `json:"tls_max_version,omitempty"` - TlsMinVersion string `json:"tls_min_version,omitempty"` - TlsServerName string `json:"tls_server_name,omitempty"` - TlsSkipVerify bool `json:"tls_skip_verify,omitempty"` + BasicAuthEnabled bool `json:"basic_auth_enabled,omitempty" toon:"basic_auth_enabled,omitempty"` + BasicAuthPassword string `json:"basic_auth_password,omitempty" toon:"basic_auth_password,omitempty"` + BasicAuthUsername string `json:"basic_auth_username,omitempty" toon:"basic_auth_username,omitempty"` + Headers []string `json:"headers,omitempty" toon:"headers,omitempty"` + Params []string `json:"params,omitempty" toon:"params,omitempty"` + TlsCa string `json:"tls_ca,omitempty" toon:"tls_ca,omitempty"` + TlsCert string `json:"tls_cert,omitempty" toon:"tls_cert,omitempty"` + TlsKey string `json:"tls_key,omitempty" toon:"tls_key,omitempty"` + TlsKeyPwd string `json:"tls_key_pwd,omitempty" toon:"tls_key_pwd,omitempty"` + TlsMaxVersion string `json:"tls_max_version,omitempty" toon:"tls_max_version,omitempty"` + TlsMinVersion string `json:"tls_min_version,omitempty" toon:"tls_min_version,omitempty"` + TlsServerName string `json:"tls_server_name,omitempty" toon:"tls_server_name,omitempty"` + TlsSkipVerify bool `json:"tls_skip_verify,omitempty" toon:"tls_skip_verify,omitempty"` } // DataSourceItem is generated from the Flashduty OpenAPI schema. type DataSourceItem struct { // Account ID. - AccountID uint64 `json:"account_id,omitempty"` + AccountID uint64 `json:"account_id,omitempty" toon:"account_id,omitempty"` // Connection address. For Prometheus/Loki/VictoriaLogs: HTTP URL. For MySQL/Oracle/Postgres/ClickHouse: `host:port`. For SLS: endpoint without http/https prefix. - Address string `json:"address,omitempty"` + Address string `json:"address,omitempty" toon:"address,omitempty"` // Monitors edge cluster name responsible for evaluating rules using this datasource. - EdgeClusterName string `json:"edge_cluster_name,omitempty"` + EdgeClusterName string `json:"edge_cluster_name,omitempty" toon:"edge_cluster_name,omitempty"` // Whether the datasource is active. - Enabled bool `json:"enabled,omitempty"` + Enabled bool `json:"enabled,omitempty" toon:"enabled,omitempty"` // Unique datasource ID. - ID uint64 `json:"id,omitempty"` + ID uint64 `json:"id,omitempty" toon:"id,omitempty"` // Datasource display name. - Name string `json:"name,omitempty"` + Name string `json:"name,omitempty" toon:"name,omitempty"` // Optional description. - Note string `json:"note,omitempty"` - Payload DsPayload `json:"payload,omitempty"` + Note string `json:"note,omitempty" toon:"note,omitempty"` + Payload DsPayload `json:"payload,omitempty" toon:"payload,omitempty"` // Datasource type identifier. Allowed: `prometheus`, `loki`, `mysql`, `oracle`, `postgres`, `clickhouse`, `elasticsearch`, `sls`, `victorialogs`. - TypeIdent string `json:"type_ident,omitempty"` + TypeIdent string `json:"type_ident,omitempty" toon:"type_ident,omitempty"` // Last update timestamp, Unix epoch seconds. - UpdatedAt Timestamp `json:"updated_at,omitempty"` + UpdatedAt Timestamp `json:"updated_at,omitempty" toon:"updated_at,omitempty"` } // DataSourceListRequest is generated from the Flashduty OpenAPI schema. type DataSourceListRequest struct { // Filter by datasource type identifier. Omit to return all types. Allowed values: `prometheus`, `loki`, `mysql`, `oracle`, `postgres`, `clickhouse`, `elasticsearch`, `sls`, `victorialogs`. - Type string `json:"type,omitempty"` + Type string `json:"type,omitempty" toon:"type,omitempty"` } // DataSourceUpsertRequest is generated from the Flashduty OpenAPI schema. type DataSourceUpsertRequest struct { // Connection address. For Prometheus/Loki/VictoriaLogs: HTTP URL. For MySQL/Oracle/Postgres/ClickHouse: `host:port`. For SLS: endpoint without http/https prefix. Not required for Elasticsearch cloud deployment. - Address string `json:"address,omitempty"` + Address string `json:"address,omitempty" toon:"address,omitempty"` // Monitors edge cluster name responsible for evaluating rules using this datasource. - EdgeClusterName string `json:"edge_cluster_name,omitempty"` + EdgeClusterName string `json:"edge_cluster_name,omitempty" toon:"edge_cluster_name,omitempty"` // Datasource ID. Required for update; omit for create. - ID uint64 `json:"id,omitempty"` + ID uint64 `json:"id,omitempty" toon:"id,omitempty"` // Datasource display name. - Name string `json:"name,omitempty"` + Name string `json:"name,omitempty" toon:"name,omitempty"` // Optional description. - Note string `json:"note,omitempty"` + Note string `json:"note,omitempty" toon:"note,omitempty"` // Type-specific configuration block. Must include the key matching `type_ident`. - Payload DsPayload `json:"payload,omitempty"` + Payload DsPayload `json:"payload,omitempty" toon:"payload,omitempty"` // Datasource type identifier. Allowed: `prometheus`, `loki`, `mysql`, `oracle`, `postgres`, `clickhouse`, `elasticsearch`, `sls`, `victorialogs`. - TypeIdent string `json:"type_ident,omitempty"` + TypeIdent string `json:"type_ident,omitempty" toon:"type_ident,omitempty"` } // DeleteFieldRequest is generated from the Flashduty OpenAPI schema. type DeleteFieldRequest struct { // Field ID — 24-character hex ObjectID. - FieldID string `json:"field_id,omitempty"` + FieldID string `json:"field_id,omitempty" toon:"field_id,omitempty"` } // DeletePostMortemRequest is generated from the Flashduty OpenAPI schema. type DeletePostMortemRequest struct { // Post-mortem ID. - PostMortemID string `json:"post_mortem_id,omitempty"` + PostMortemID string `json:"post_mortem_id,omitempty" toon:"post_mortem_id,omitempty"` } // DeleteStatusPageChangeRequest is generated from the Flashduty OpenAPI schema. type DeleteStatusPageChangeRequest struct { // Target event ID. - ChangeID int64 `json:"change_id,omitempty"` + ChangeID int64 `json:"change_id,omitempty" toon:"change_id,omitempty"` // Status page ID. - PageID int64 `json:"page_id,omitempty"` + PageID int64 `json:"page_id,omitempty" toon:"page_id,omitempty"` } // DeleteStatusPageChangeTimelineRequest is generated from the Flashduty OpenAPI schema. type DeleteStatusPageChangeTimelineRequest struct { // Parent event ID. - ChangeID int64 `json:"change_id,omitempty"` + ChangeID int64 `json:"change_id,omitempty" toon:"change_id,omitempty"` // Status page ID. - PageID int64 `json:"page_id,omitempty"` + PageID int64 `json:"page_id,omitempty" toon:"page_id,omitempty"` // Timeline update ID to delete. - UpdateID string `json:"update_id,omitempty"` + UpdateID string `json:"update_id,omitempty" toon:"update_id,omitempty"` } // DeleteWarRoomRequest is generated from the Flashduty OpenAPI schema. type DeleteWarRoomRequest struct { // Incident ID (MongoDB ObjectID). - IncidentID string `json:"incident_id,omitempty"` + IncidentID string `json:"incident_id,omitempty" toon:"incident_id,omitempty"` // IM integration ID. - IntegrationID int64 `json:"integration_id,omitempty"` + IntegrationID int64 `json:"integration_id,omitempty" toon:"integration_id,omitempty"` } // DiagnoseRequest is generated from the Flashduty OpenAPI schema. type DiagnoseRequest struct { // Optional consistency check. Must equal the authenticated account when supplied. - AccountID int64 `json:"account_id,omitempty"` + AccountID int64 `json:"account_id,omitempty" toon:"account_id,omitempty"` // Data source name configured under the tenant. - DsName string `json:"ds_name,omitempty"` + DsName string `json:"ds_name,omitempty" toon:"ds_name,omitempty"` // Data source type. `log_patterns` supports `loki` and `victorialogs`; `metric_trends` supports `prometheus`. - DsType string `json:"ds_type,omitempty"` - Input DiagnoseRequestInput `json:"input,omitempty"` + DsType string `json:"ds_type,omitempty" toon:"ds_type,omitempty"` + Input DiagnoseRequestInput `json:"input,omitempty" toon:"input,omitempty"` // Diagnostic methods to run. When omitted, `log_patterns` defaults to `pattern_snapshot + pattern_compare(previous_window)` and `metric_trends` defaults to `single_window_shape + window_compare(previous_window)`. - Methods []DiagnoseRequestMethodsItem `json:"methods,omitempty"` + Methods []DiagnoseRequestMethodsItem `json:"methods,omitempty" toon:"methods,omitempty"` // Diagnostic operation. When omitted, inferred from `ds_type` (loki / victorialogs → `log_patterns`, prometheus → `metric_trends`). Other sources must specify explicitly. - Operation string `json:"operation,omitempty"` + Operation string `json:"operation,omitempty" toon:"operation,omitempty"` // Execution options, all upper-bounded by monit-edge. - Options DiagnoseRequestOptions `json:"options,omitempty"` + Options DiagnoseRequestOptions `json:"options,omitempty" toon:"options,omitempty"` // Diagnostic window in Unix seconds. Defaults to the last 15 minutes when missing or invalid; windows wider than 6 hours are rejected. - TimeRange DiagnoseRequestTimeRange `json:"time_range,omitempty"` + TimeRange DiagnoseRequestTimeRange `json:"time_range,omitempty" toon:"time_range,omitempty"` } // DiagnoseResponse is generated from the Flashduty OpenAPI schema. type DiagnoseResponse struct { - DsName string `json:"ds_name,omitempty"` - DsType string `json:"ds_type,omitempty"` - Operation string `json:"operation,omitempty"` + DsName string `json:"ds_name,omitempty" toon:"ds_name,omitempty"` + DsType string `json:"ds_type,omitempty" toon:"ds_type,omitempty"` + Operation string `json:"operation,omitempty" toon:"operation,omitempty"` // Query string echoed back from the request. - Query string `json:"query,omitempty"` + Query string `json:"query,omitempty" toon:"query,omitempty"` // One entry per `methods[]` in the request, in the same order. - Results []DiagnoseResponseResultsItem `json:"results,omitempty"` - Window DiagnoseResponseWindow `json:"window,omitempty"` + Results []DiagnoseResponseResultsItem `json:"results,omitempty" toon:"results,omitempty"` + Window DiagnoseResponseWindow `json:"window,omitempty" toon:"window,omitempty"` } // DimensionInsightItem is generated from the Flashduty OpenAPI schema. type DimensionInsightItem struct { - AccountID int64 `json:"account_id,omitempty"` - AcknowledgementPct float64 `json:"acknowledgement_pct,omitempty"` - ChannelID int64 `json:"channel_id,omitempty"` - ChannelName string `json:"channel_name,omitempty"` + AccountID int64 `json:"account_id,omitempty" toon:"account_id,omitempty"` + AcknowledgementPct float64 `json:"acknowledgement_pct,omitempty" toon:"acknowledgement_pct,omitempty"` + ChannelID int64 `json:"channel_id,omitempty" toon:"channel_id,omitempty"` + ChannelName string `json:"channel_name,omitempty" toon:"channel_name,omitempty"` // Hour bucket when `split_hours` is enabled. - Hours string `json:"hours,omitempty"` - MeanSecondsToAck float64 `json:"mean_seconds_to_ack,omitempty"` - MeanSecondsToClose float64 `json:"mean_seconds_to_close,omitempty"` - NoiseReductionPct float64 `json:"noise_reduction_pct,omitempty"` - ResponderID int64 `json:"responder_id,omitempty"` - ResponderName string `json:"responder_name,omitempty"` - TeamID int64 `json:"team_id,omitempty"` - TeamName string `json:"team_name,omitempty"` - TotalAlertCnt int64 `json:"total_alert_cnt,omitempty"` - TotalAlertEventCnt int64 `json:"total_alert_event_cnt,omitempty"` - TotalEngagedSeconds int64 `json:"total_engaged_seconds,omitempty"` - TotalIncidentCnt int64 `json:"total_incident_cnt,omitempty"` - TotalIncidentsAcknowledged int64 `json:"total_incidents_acknowledged,omitempty"` - TotalIncidentsAutoClosed int64 `json:"total_incidents_auto_closed,omitempty"` - TotalIncidentsClosed int64 `json:"total_incidents_closed,omitempty"` - TotalIncidentsEscalated int64 `json:"total_incidents_escalated,omitempty"` - TotalIncidentsManuallyClosed int64 `json:"total_incidents_manually_closed,omitempty"` - TotalIncidentsManuallyEscalated int64 `json:"total_incidents_manually_escalated,omitempty"` - TotalIncidentsReassigned int64 `json:"total_incidents_reassigned,omitempty"` - TotalIncidentsTimeoutClosed int64 `json:"total_incidents_timeout_closed,omitempty"` - TotalIncidentsTimeoutEscalated int64 `json:"total_incidents_timeout_escalated,omitempty"` - TotalInterruptions int64 `json:"total_interruptions,omitempty"` - TotalNotifications int64 `json:"total_notifications,omitempty"` - TotalSecondsToAck int64 `json:"total_seconds_to_ack,omitempty"` - TotalSecondsToClose int64 `json:"total_seconds_to_close,omitempty"` + Hours string `json:"hours,omitempty" toon:"hours,omitempty"` + MeanSecondsToAck float64 `json:"mean_seconds_to_ack,omitempty" toon:"mean_seconds_to_ack,omitempty"` + MeanSecondsToClose float64 `json:"mean_seconds_to_close,omitempty" toon:"mean_seconds_to_close,omitempty"` + NoiseReductionPct float64 `json:"noise_reduction_pct,omitempty" toon:"noise_reduction_pct,omitempty"` + ResponderID int64 `json:"responder_id,omitempty" toon:"responder_id,omitempty"` + ResponderName string `json:"responder_name,omitempty" toon:"responder_name,omitempty"` + TeamID int64 `json:"team_id,omitempty" toon:"team_id,omitempty"` + TeamName string `json:"team_name,omitempty" toon:"team_name,omitempty"` + TotalAlertCnt int64 `json:"total_alert_cnt,omitempty" toon:"total_alert_cnt,omitempty"` + TotalAlertEventCnt int64 `json:"total_alert_event_cnt,omitempty" toon:"total_alert_event_cnt,omitempty"` + TotalEngagedSeconds int64 `json:"total_engaged_seconds,omitempty" toon:"total_engaged_seconds,omitempty"` + TotalIncidentCnt int64 `json:"total_incident_cnt,omitempty" toon:"total_incident_cnt,omitempty"` + TotalIncidentsAcknowledged int64 `json:"total_incidents_acknowledged,omitempty" toon:"total_incidents_acknowledged,omitempty"` + TotalIncidentsAutoClosed int64 `json:"total_incidents_auto_closed,omitempty" toon:"total_incidents_auto_closed,omitempty"` + TotalIncidentsClosed int64 `json:"total_incidents_closed,omitempty" toon:"total_incidents_closed,omitempty"` + TotalIncidentsEscalated int64 `json:"total_incidents_escalated,omitempty" toon:"total_incidents_escalated,omitempty"` + TotalIncidentsManuallyClosed int64 `json:"total_incidents_manually_closed,omitempty" toon:"total_incidents_manually_closed,omitempty"` + TotalIncidentsManuallyEscalated int64 `json:"total_incidents_manually_escalated,omitempty" toon:"total_incidents_manually_escalated,omitempty"` + TotalIncidentsReassigned int64 `json:"total_incidents_reassigned,omitempty" toon:"total_incidents_reassigned,omitempty"` + TotalIncidentsTimeoutClosed int64 `json:"total_incidents_timeout_closed,omitempty" toon:"total_incidents_timeout_closed,omitempty"` + TotalIncidentsTimeoutEscalated int64 `json:"total_incidents_timeout_escalated,omitempty" toon:"total_incidents_timeout_escalated,omitempty"` + TotalInterruptions int64 `json:"total_interruptions,omitempty" toon:"total_interruptions,omitempty"` + TotalNotifications int64 `json:"total_notifications,omitempty" toon:"total_notifications,omitempty"` + TotalSecondsToAck int64 `json:"total_seconds_to_ack,omitempty" toon:"total_seconds_to_ack,omitempty"` + TotalSecondsToClose int64 `json:"total_seconds_to_close,omitempty" toon:"total_seconds_to_close,omitempty"` // Aggregation bucket start time, Unix seconds. Present when `aggregate_unit` is used. - TS Timestamp `json:"ts,omitempty"` + TS Timestamp `json:"ts,omitempty" toon:"ts,omitempty"` } // DimensionInsightResponse is generated from the Flashduty OpenAPI schema. type DimensionInsightResponse struct { - Items []DimensionInsightItem `json:"items,omitempty"` + Items []DimensionInsightItem `json:"items,omitempty" toon:"items,omitempty"` } // DisableIncidentMergeRequest is generated from the Flashduty OpenAPI schema. type DisableIncidentMergeRequest struct { // Incident IDs whose automatic merge should be disabled. - IncidentIDs []string `json:"incident_ids,omitempty"` + IncidentIDs []string `json:"incident_ids,omitempty" toon:"incident_ids,omitempty"` } // DoIncidentCustomActionRequest is generated from the Flashduty OpenAPI schema. type DoIncidentCustomActionRequest struct { // Incident ID (MongoDB ObjectID). - IncidentID string `json:"incident_id,omitempty"` + IncidentID string `json:"incident_id,omitempty" toon:"incident_id,omitempty"` // Custom action integration ID. Must be enabled and associated with the incident's channel. - IntegrationID int64 `json:"integration_id,omitempty"` + IntegrationID int64 `json:"integration_id,omitempty" toon:"integration_id,omitempty"` } // DoIncidentCustomActionResponse is generated from the Flashduty OpenAPI schema. type DoIncidentCustomActionResponse struct { // Error message if the action's HTTP call failed; omitted on success. - Message string `json:"message,omitempty"` + Message string `json:"message,omitempty" toon:"message,omitempty"` } // EmptyObject is generated from the Flashduty OpenAPI schema. @@ -2008,207 +2014,207 @@ type EmptyResponse struct{} // EnabledTime is generated from the Flashduty OpenAPI schema. type EnabledTime struct { // Days of week, 0 = Sunday. - Days []int64 `json:"days,omitempty"` + Days []int64 `json:"days,omitempty" toon:"days,omitempty"` // End time, e.g. `18:00`. - Etime string `json:"etime,omitempty"` + Etime string `json:"etime,omitempty" toon:"etime,omitempty"` // Start time, e.g. `09:00`. - Stime string `json:"stime,omitempty"` + Stime string `json:"stime,omitempty" toon:"stime,omitempty"` } // EnrichFilter is generated from the Flashduty OpenAPI schema. type EnrichFilter struct { // Alert label key. - Key string `json:"key,omitempty"` + Key string `json:"key,omitempty" toon:"key,omitempty"` // Match operator. `IN` matches when any value matches; `NOTIN` matches when none of the values match. - Oper string `json:"oper,omitempty"` + Oper string `json:"oper,omitempty" toon:"oper,omitempty"` // Values to match against. - Vals []string `json:"vals,omitempty"` + Vals []string `json:"vals,omitempty" toon:"vals,omitempty"` } // EnrichRule is generated from the Flashduty OpenAPI schema. type EnrichRule struct { // Optional AND-filter list. The rule is skipped if the condition does not match. - If []EnrichFilter `json:"if,omitempty"` + If []EnrichFilter `json:"if,omitempty" toon:"if,omitempty"` // Rule type. `extraction` extracts a label via regex or GJson. `composition` builds a label from a template. `mapping` looks up values from a schema or API. `drop` removes labels. - Kind string `json:"kind,omitempty"` + Kind string `json:"kind,omitempty" toon:"kind,omitempty"` // Rule-kind–specific settings. The shape depends on `kind`. - Settings any `json:"settings,omitempty"` + Settings any `json:"settings,omitempty" toon:"settings,omitempty"` } // EnrichmentInfoRequest is generated from the Flashduty OpenAPI schema. type EnrichmentInfoRequest struct { // Integration ID to query enrichment rules for. Must be greater than 0. - IntegrationID int64 `json:"integration_id,omitempty"` + IntegrationID int64 `json:"integration_id,omitempty" toon:"integration_id,omitempty"` } // EnrichmentItem is generated from the Flashduty OpenAPI schema. type EnrichmentItem struct { // Creation timestamp, Unix seconds. - CreatedAt Timestamp `json:"created_at,omitempty"` + CreatedAt Timestamp `json:"created_at,omitempty" toon:"created_at,omitempty"` // Creator member ID. - CreatorID int64 `json:"creator_id,omitempty"` + CreatorID int64 `json:"creator_id,omitempty" toon:"creator_id,omitempty"` // Integration ID. - IntegrationID int64 `json:"integration_id,omitempty"` + IntegrationID int64 `json:"integration_id,omitempty" toon:"integration_id,omitempty"` // Ordered enrichment rules. - Rules []EnrichRule `json:"rules,omitempty"` + Rules []EnrichRule `json:"rules,omitempty" toon:"rules,omitempty"` // Rule set status. - Status string `json:"status,omitempty"` + Status string `json:"status,omitempty" toon:"status,omitempty"` // Last update timestamp, Unix seconds. - UpdatedAt Timestamp `json:"updated_at,omitempty"` + UpdatedAt Timestamp `json:"updated_at,omitempty" toon:"updated_at,omitempty"` // Last updater member ID. - UpdatedBy int64 `json:"updated_by,omitempty"` + UpdatedBy int64 `json:"updated_by,omitempty" toon:"updated_by,omitempty"` } // EnrichmentListRequest is generated from the Flashduty OpenAPI schema. type EnrichmentListRequest struct { // List of integration IDs to query. - IntegrationIDs []int64 `json:"integration_ids,omitempty"` + IntegrationIDs []int64 `json:"integration_ids,omitempty" toon:"integration_ids,omitempty"` } // EnrichmentListResponse is generated from the Flashduty OpenAPI schema. type EnrichmentListResponse struct { // Enrichment rule sets. - Items []EnrichmentItem `json:"items,omitempty"` + Items []EnrichmentItem `json:"items,omitempty" toon:"items,omitempty"` } // EnrichmentUpsertRequest is generated from the Flashduty OpenAPI schema. type EnrichmentUpsertRequest struct { // Integration ID to configure enrichment rules for. - IntegrationID int64 `json:"integration_id,omitempty"` + IntegrationID int64 `json:"integration_id,omitempty" toon:"integration_id,omitempty"` // Ordered list of enrichment rules. Replaces all existing rules. - Rules []EnrichRule `json:"rules,omitempty"` + Rules []EnrichRule `json:"rules,omitempty" toon:"rules,omitempty"` } // ErsComposition is generated from the Flashduty OpenAPI schema. type ErsComposition struct { // When `true`, overwrite the label if it already exists. Defaults to `false`. - Override bool `json:"override,omitempty"` + Override bool `json:"override,omitempty" toon:"override,omitempty"` // Destination label key to write the composed value into. Must match `^[a-z][a-z0-9_]{0,62}$`. - ResultLabel string `json:"result_label,omitempty"` + ResultLabel string `json:"result_label,omitempty" toon:"result_label,omitempty"` // Go `text/template` string. Alert fields are available as `{{.title}}`, `{{.description}}`, and `{{.labels.key}}`. Example: `{{.labels.region}}-{{.labels.env}}`. - Template string `json:"template,omitempty"` + Template string `json:"template,omitempty" toon:"template,omitempty"` } // ErsDrop is generated from the Flashduty OpenAPI schema. type ErsDrop struct { // List of label keys to remove from the alert. - DropLabels []string `json:"drop_labels,omitempty"` + DropLabels []string `json:"drop_labels,omitempty" toon:"drop_labels,omitempty"` } // ErsExtraction is generated from the Flashduty OpenAPI schema. type ErsExtraction struct { // GJson path expression used to extract a value from a JSON-encoded field. Mutually exclusive with `pattern`. - GJSON string `json:"g_json,omitempty"` + GJSON string `json:"g_json,omitempty" toon:"g_json,omitempty"` // When `true`, overwrite the label if it already exists. Defaults to `false`. - Override bool `json:"override,omitempty"` + Override bool `json:"override,omitempty" toon:"override,omitempty"` // RE2 regular expression. Use a named capture group `(?P...)` to extract a sub-match; without a named group the full match is used. Mutually exclusive with `g_json`. - Pattern string `json:"pattern,omitempty"` + Pattern string `json:"pattern,omitempty" toon:"pattern,omitempty"` // Destination label key to write the extracted value into. Must match `^[a-z][a-z0-9_]{0,62}$`. - ResultLabel string `json:"result_label,omitempty"` + ResultLabel string `json:"result_label,omitempty" toon:"result_label,omitempty"` // Source field to extract from. Must be `title`, `description`, or a label key prefixed with `labels.` (e.g. `labels.env`). - SourceField string `json:"source_field,omitempty"` + SourceField string `json:"source_field,omitempty" toon:"source_field,omitempty"` } // ErsMapping is generated from the Flashduty OpenAPI schema. type ErsMapping struct { // Mapping API ID (MongoDB ObjectID hex). Required when `mapping_type` is `api`. - APIID string `json:"api_id,omitempty"` + APIID string `json:"api_id,omitempty" toon:"api_id,omitempty"` // Mapping source type. `schema` uses a mapping schema table; `api` calls an external HTTP API. - MappingType string `json:"mapping_type,omitempty"` + MappingType string `json:"mapping_type,omitempty" toon:"mapping_type,omitempty"` // When `true`, overwrite labels that already exist. Defaults to `false`. - Override bool `json:"override,omitempty"` + Override bool `json:"override,omitempty" toon:"override,omitempty"` // Label keys to populate from the mapping lookup result. - ResultLabels []string `json:"result_labels,omitempty"` + ResultLabels []string `json:"result_labels,omitempty" toon:"result_labels,omitempty"` // Mapping schema ID (MongoDB ObjectID hex). Required when `mapping_type` is `schema`. - SchemaID string `json:"schema_id,omitempty"` + SchemaID string `json:"schema_id,omitempty" toon:"schema_id,omitempty"` } // EscalateLayer is generated from the Flashduty OpenAPI schema. type EscalateLayer struct { // Wait before moving to the next level, in minutes. - EscalateWindow int64 `json:"escalate_window,omitempty"` + EscalateWindow int64 `json:"escalate_window,omitempty" toon:"escalate_window,omitempty"` // When true, always escalate regardless of acknowledgement. - ForceEscalate bool `json:"force_escalate,omitempty"` + ForceEscalate bool `json:"force_escalate,omitempty" toon:"force_escalate,omitempty"` // Max repeat notifications within the level. - MaxTimes int64 `json:"max_times,omitempty"` + MaxTimes int64 `json:"max_times,omitempty" toon:"max_times,omitempty"` // Repeat interval in minutes. - NotifyStep float64 `json:"notify_step,omitempty"` - Target EscalateTarget `json:"target,omitempty"` + NotifyStep float64 `json:"notify_step,omitempty" toon:"notify_step,omitempty"` + Target EscalateTarget `json:"target,omitempty" toon:"target,omitempty"` } // EscalateRuleItem is generated from the Flashduty OpenAPI schema. type EscalateRuleItem struct { // Owning account ID. - AccountID int64 `json:"account_id,omitempty"` + AccountID int64 `json:"account_id,omitempty" toon:"account_id,omitempty"` // Aggregation window in seconds. - AggrWindow int64 `json:"aggr_window,omitempty"` + AggrWindow int64 `json:"aggr_window,omitempty" toon:"aggr_window,omitempty"` // Channel the rule belongs to. - ChannelID int64 `json:"channel_id,omitempty"` + ChannelID int64 `json:"channel_id,omitempty" toon:"channel_id,omitempty"` // Channel name, populated for cross-channel listing responses. - ChannelName string `json:"channel_name,omitempty"` + ChannelName string `json:"channel_name,omitempty" toon:"channel_name,omitempty"` // Creation timestamp (unix seconds). - CreatedAt Timestamp `json:"created_at,omitempty"` + CreatedAt Timestamp `json:"created_at,omitempty" toon:"created_at,omitempty"` // Deletion timestamp (unix seconds). Emitted only for soft-deleted rules. - DeletedAt Timestamp `json:"deleted_at,omitempty"` + DeletedAt Timestamp `json:"deleted_at,omitempty" toon:"deleted_at,omitempty"` // Rule description. - Description string `json:"description,omitempty"` - Filters FilterGroup `json:"filters,omitempty"` + Description string `json:"description,omitempty" toon:"description,omitempty"` + Filters FilterGroup `json:"filters,omitempty" toon:"filters,omitempty"` // Escalation levels in order. - Layers []EscalateLayer `json:"layers,omitempty"` + Layers []EscalateLayer `json:"layers,omitempty" toon:"layers,omitempty"` // Evaluation priority. Lower runs first. - Priority int64 `json:"priority,omitempty"` + Priority int64 `json:"priority,omitempty" toon:"priority,omitempty"` // Escalation rule ID (MongoDB ObjectID). - RuleID string `json:"rule_id,omitempty"` + RuleID string `json:"rule_id,omitempty" toon:"rule_id,omitempty"` // Rule name. - RuleName string `json:"rule_name,omitempty"` + RuleName string `json:"rule_name,omitempty" toon:"rule_name,omitempty"` // Rule status. - Status string `json:"status,omitempty"` + Status string `json:"status,omitempty" toon:"status,omitempty"` // Notification template ID (MongoDB ObjectID). - TemplateID string `json:"template_id,omitempty"` + TemplateID string `json:"template_id,omitempty" toon:"template_id,omitempty"` // Recurring time windows during which the rule applies. - TimeFilters []TimeFilter `json:"time_filters,omitempty"` + TimeFilters []TimeFilter `json:"time_filters,omitempty" toon:"time_filters,omitempty"` // Last update timestamp (unix seconds). - UpdatedAt Timestamp `json:"updated_at,omitempty"` + UpdatedAt Timestamp `json:"updated_at,omitempty" toon:"updated_at,omitempty"` // Member ID that last updated the rule. - UpdatedBy int64 `json:"updated_by,omitempty"` + UpdatedBy int64 `json:"updated_by,omitempty" toon:"updated_by,omitempty"` } // EscalateTarget is generated from the Flashduty OpenAPI schema. type EscalateTarget struct { // Per-severity personal notification channels. Required unless `webhooks` is provided. - By EscalateTargetBy `json:"by,omitempty"` + By EscalateTargetBy `json:"by,omitempty" toon:"by,omitempty"` // Email addresses to notify (push-only scenarios). - Emails []string `json:"emails,omitempty"` + Emails []string `json:"emails,omitempty" toon:"emails,omitempty"` // Member IDs to notify directly. - PersonIDs []int64 `json:"person_ids,omitempty"` + PersonIDs []int64 `json:"person_ids,omitempty" toon:"person_ids,omitempty"` // Map of schedule ID to the role IDs on that schedule to notify. - ScheduleToRoleIDs map[string][]int64 `json:"schedule_to_role_ids,omitempty"` + ScheduleToRoleIDs map[string][]int64 `json:"schedule_to_role_ids,omitempty" toon:"schedule_to_role_ids,omitempty"` // Team IDs to notify. - TeamIDs []int64 `json:"team_ids,omitempty"` + TeamIDs []int64 `json:"team_ids,omitempty" toon:"team_ids,omitempty"` // Group chat / webhook targets. Required unless `by` is provided. - Webhooks []EscalateTargetWebhooksItem `json:"webhooks,omitempty"` + Webhooks []EscalateTargetWebhooksItem `json:"webhooks,omitempty" toon:"webhooks,omitempty"` } // ExportStatusPageSubscribersRequest is generated from the Flashduty OpenAPI schema. type ExportStatusPageSubscribersRequest struct { // Optional component IDs to filter subscribers by. - ComponentIDs []string `json:"component_ids,omitempty"` + ComponentIDs []string `json:"component_ids,omitempty" toon:"component_ids,omitempty"` // Status page ID. - PageID int64 `json:"page_id,omitempty"` + PageID int64 `json:"page_id,omitempty" toon:"page_id,omitempty"` } // ExportedStatusPageSubscriberItem is generated from the Flashduty OpenAPI schema. type ExportedStatusPageSubscriberItem struct { // Whether the subscriber is subscribed to all components. - All bool `json:"all,omitempty"` + All bool `json:"all,omitempty" toon:"all,omitempty"` // Components this subscriber has subscribed to. - Components []StatusPageComponentItem `json:"components,omitempty"` + Components []StatusPageComponentItem `json:"components,omitempty" toon:"components,omitempty"` // Preferred locale for notifications. - Locale string `json:"locale,omitempty"` + Locale string `json:"locale,omitempty" toon:"locale,omitempty"` // Subscription delivery method. - Method string `json:"method,omitempty"` + Method string `json:"method,omitempty" toon:"method,omitempty"` // Subscriber recipient: email address for public pages, user ID for internal pages. - Recipient string `json:"recipient,omitempty"` + Recipient string `json:"recipient,omitempty" toon:"recipient,omitempty"` } // FeedDetailAlertClose is generated from the Flashduty OpenAPI schema. @@ -2217,47 +2223,47 @@ type FeedDetailAlertClose struct{} // FeedDetailAlertComment is generated from the Flashduty OpenAPI schema. type FeedDetailAlertComment struct { // Comment body. - Comment string `json:"comment,omitempty"` + Comment string `json:"comment,omitempty" toon:"comment,omitempty"` } // FeedDetailAlertTrigger is generated from the Flashduty OpenAPI schema. type FeedDetailAlertTrigger struct { - Severity FeedSeverity `json:"severity,omitempty"` - Status FeedSeverity `json:"status,omitempty"` + Severity FeedSeverity `json:"severity,omitempty" toon:"severity,omitempty"` + Status FeedSeverity `json:"status,omitempty" toon:"status,omitempty"` } // FeedDetailIncidentAck is generated from the Flashduty OpenAPI schema. type FeedDetailIncidentAck struct { // Progress note entered at acknowledgement. - Progress string `json:"progress,omitempty"` + Progress string `json:"progress,omitempty" toon:"progress,omitempty"` } // FeedDetailIncidentAddRspd is generated from the Flashduty OpenAPI schema. type FeedDetailIncidentAddRspd struct { // Member IDs added as responders. - To []int64 `json:"to,omitempty"` + To []int64 `json:"to,omitempty" toon:"to,omitempty"` } // FeedDetailIncidentAssign is generated from the Flashduty OpenAPI schema. type FeedDetailIncidentAssign struct { // Unix timestamp (seconds) when the assignment was made. - AssignedAt Timestamp `json:"assigned_at,omitempty"` + AssignedAt Timestamp `json:"assigned_at,omitempty" toon:"assigned_at,omitempty"` // Email recipients, used by integrations such as ServiceNow. - Emails []string `json:"emails,omitempty"` + Emails []string `json:"emails,omitempty" toon:"emails,omitempty"` // Escalation rule ID (MongoDB ObjectID) to drive assignment. - EscalateRuleID string `json:"escalate_rule_id,omitempty"` + EscalateRuleID string `json:"escalate_rule_id,omitempty" toon:"escalate_rule_id,omitempty"` // Escalation rule display name, filled by the server. - EscalateRuleName string `json:"escalate_rule_name,omitempty"` + EscalateRuleName string `json:"escalate_rule_name,omitempty" toon:"escalate_rule_name,omitempty"` // Opaque assignment ID generated by the server. - ID string `json:"id,omitempty"` + ID string `json:"id,omitempty" toon:"id,omitempty"` // Current level index within the escalation rule. - LayerIdx int64 `json:"layer_idx,omitempty"` + LayerIdx int64 `json:"layer_idx,omitempty" toon:"layer_idx,omitempty"` // Member IDs to assign directly. - PersonIDs []int64 `json:"person_ids,omitempty"` + PersonIDs []int64 `json:"person_ids,omitempty" toon:"person_ids,omitempty"` // Member IDs that received the assignment. - To []int64 `json:"to,omitempty"` + To []int64 `json:"to,omitempty" toon:"to,omitempty"` // Assignment type: `assign` direct assignment, `reassign` reassignment, `escalate` escalation-rule driven, `reopen` automatic reassignment on reopen. - Type string `json:"type,omitempty"` + Type string `json:"type,omitempty" toon:"type,omitempty"` } // FeedDetailIncidentAutoRefreshCard is generated from the Flashduty OpenAPI schema. @@ -2266,44 +2272,44 @@ type FeedDetailIncidentAutoRefreshCard struct{} // FeedDetailIncidentComment is generated from the Flashduty OpenAPI schema. type FeedDetailIncidentComment struct { // Comment body. - Comment string `json:"comment,omitempty"` + Comment string `json:"comment,omitempty" toon:"comment,omitempty"` // Whether replies to this comment are muted. - MuteReply bool `json:"mute_reply,omitempty"` + MuteReply bool `json:"mute_reply,omitempty" toon:"mute_reply,omitempty"` } // FeedDetailIncidentCustomAction is generated from the Flashduty OpenAPI schema. type FeedDetailIncidentCustomAction struct { // Integration ID that executed the action. - IntegrationID int64 `json:"integration_id,omitempty"` + IntegrationID int64 `json:"integration_id,omitempty" toon:"integration_id,omitempty"` // Integration display name. - IntegrationName string `json:"integration_name,omitempty"` + IntegrationName string `json:"integration_name,omitempty" toon:"integration_name,omitempty"` } // FeedDetailIncidentMerge is generated from the Flashduty OpenAPI schema. type FeedDetailIncidentMerge struct { // Merge comment. - Comment string `json:"comment,omitempty"` + Comment string `json:"comment,omitempty" toon:"comment,omitempty"` // Member ID that performed the merge. - OwnerID int64 `json:"owner_id,omitempty"` + OwnerID int64 `json:"owner_id,omitempty" toon:"owner_id,omitempty"` // True if the source incidents were removed after merging. - RemoveSourceIncidents bool `json:"remove_source_incidents,omitempty"` + RemoveSourceIncidents bool `json:"remove_source_incidents,omitempty" toon:"remove_source_incidents,omitempty"` // Source incidents that were merged. - SourceIncidents []IncidentShort `json:"source_incidents,omitempty"` + SourceIncidents []IncidentShort `json:"source_incidents,omitempty" toon:"source_incidents,omitempty"` // Responder member IDs carried over from the source incidents. - SourceResponders []int64 `json:"source_responders,omitempty"` - TargetIncident IncidentShort `json:"target_incident,omitempty"` + SourceResponders []int64 `json:"source_responders,omitempty" toon:"source_responders,omitempty"` + TargetIncident IncidentShort `json:"target_incident,omitempty" toon:"target_incident,omitempty"` // Resulting incident title. - Title string `json:"title,omitempty"` + Title string `json:"title,omitempty" toon:"title,omitempty"` } // FeedDetailIncidentMuteByFlapping is generated from the Flashduty OpenAPI schema. type FeedDetailIncidentMuteByFlapping struct { // Window length in minutes. - InMins int64 `json:"in_mins,omitempty"` + InMins int64 `json:"in_mins,omitempty" toon:"in_mins,omitempty"` // Maximum state changes allowed within the window. - MaxChanges int64 `json:"max_changes,omitempty"` + MaxChanges int64 `json:"max_changes,omitempty" toon:"max_changes,omitempty"` // Mute duration in minutes once flapping is detected. - MuteMins int64 `json:"mute_mins,omitempty"` + MuteMins int64 `json:"mute_mins,omitempty" toon:"mute_mins,omitempty"` } // FeedDetailIncidentMuteReply is generated from the Flashduty OpenAPI schema. @@ -2312,40 +2318,40 @@ type FeedDetailIncidentMuteReply struct{} // FeedDetailIncidentNew is generated from the Flashduty OpenAPI schema. type FeedDetailIncidentNew struct { // Email of the reporter when the incident was created externally. - ReporterEmail string `json:"reporter_email,omitempty"` - Severity FeedSeverity `json:"severity,omitempty"` + ReporterEmail string `json:"reporter_email,omitempty" toon:"reporter_email,omitempty"` + Severity FeedSeverity `json:"severity,omitempty" toon:"severity,omitempty"` // Initial incident title. - Title string `json:"title,omitempty"` + Title string `json:"title,omitempty" toon:"title,omitempty"` } // FeedDetailIncidentNotify is generated from the Flashduty OpenAPI schema. type FeedDetailIncidentNotify struct { // Delivery channel or method label. - By string `json:"by,omitempty"` + By string `json:"by,omitempty" toon:"by,omitempty"` // Per-chat delivery records. - Chats []NotifyChat `json:"chats,omitempty"` + Chats []NotifyChat `json:"chats,omitempty" toon:"chats,omitempty"` // Escalation rule ID (MongoDB ObjectID). - EscalateRuleID string `json:"escalate_rule_id,omitempty"` + EscalateRuleID string `json:"escalate_rule_id,omitempty" toon:"escalate_rule_id,omitempty"` // Escalation rule display name. - EscalateRuleName string `json:"escalate_rule_name,omitempty"` + EscalateRuleName string `json:"escalate_rule_name,omitempty" toon:"escalate_rule_name,omitempty"` // Whether this is the first fire or a refire. - FireType string `json:"fire_type,omitempty"` + FireType string `json:"fire_type,omitempty" toon:"fire_type,omitempty"` // Escalation level index used for this notification. - LayerIdx int64 `json:"layer_idx,omitempty"` + LayerIdx int64 `json:"layer_idx,omitempty" toon:"layer_idx,omitempty"` // Upstream message ID returned by the delivery channel. - MsgID string `json:"msg_id,omitempty"` + MsgID string `json:"msg_id,omitempty" toon:"msg_id,omitempty"` // Per-person delivery records. - Persons []NotifyPerson `json:"persons,omitempty"` + Persons []NotifyPerson `json:"persons,omitempty" toon:"persons,omitempty"` // Notification record ID. - Rid string `json:"rid,omitempty"` + Rid string `json:"rid,omitempty" toon:"rid,omitempty"` // Per-robot delivery records. - Robots []NotifyRobot `json:"robots,omitempty"` + Robots []NotifyRobot `json:"robots,omitempty" toon:"robots,omitempty"` } // FeedDetailIncidentReopen is generated from the Flashduty OpenAPI schema. type FeedDetailIncidentReopen struct { // Reason why the incident was reopened. - Reason string `json:"reason,omitempty"` + Reason string `json:"reason,omitempty" toon:"reason,omitempty"` } // FeedDetailIncidentResetDescription is generated from the Flashduty OpenAPI schema. @@ -2354,9 +2360,9 @@ type FeedDetailIncidentResetDescription struct{} // FeedDetailIncidentResetField is generated from the Flashduty OpenAPI schema. type FeedDetailIncidentResetField struct { // Name of the custom field that was updated. - FieldName string `json:"field_name,omitempty"` + FieldName string `json:"field_name,omitempty" toon:"field_name,omitempty"` // New value of the custom field. Type depends on the field definition. - To any `json:"to,omitempty"` + To any `json:"to,omitempty" toon:"to,omitempty"` } // FeedDetailIncidentResetImpact is generated from the Flashduty OpenAPI schema. @@ -2370,1457 +2376,1457 @@ type FeedDetailIncidentResetRootCause struct{} // FeedDetailIncidentResetSeverity is generated from the Flashduty OpenAPI schema. type FeedDetailIncidentResetSeverity struct { - From FeedSeverity `json:"from,omitempty"` - To FeedSeverity `json:"to,omitempty"` + From FeedSeverity `json:"from,omitempty" toon:"from,omitempty"` + To FeedSeverity `json:"to,omitempty" toon:"to,omitempty"` } // FeedDetailIncidentResetTitle is generated from the Flashduty OpenAPI schema. type FeedDetailIncidentResetTitle struct { // Previous title. - From string `json:"from,omitempty"` + From string `json:"from,omitempty" toon:"from,omitempty"` // New title. - To string `json:"to,omitempty"` + To string `json:"to,omitempty" toon:"to,omitempty"` } // FeedDetailIncidentResolve is generated from the Flashduty OpenAPI schema. type FeedDetailIncidentResolve struct { // Source that triggered the resolve action. - From string `json:"from,omitempty"` + From string `json:"from,omitempty" toon:"from,omitempty"` } // FeedDetailIncidentSnooze is generated from the Flashduty OpenAPI schema. type FeedDetailIncidentSnooze struct { // Snooze duration in minutes. - Minutes int64 `json:"minutes,omitempty"` + Minutes int64 `json:"minutes,omitempty" toon:"minutes,omitempty"` } // FeedDetailIncidentStorm is generated from the Flashduty OpenAPI schema. type FeedDetailIncidentStorm struct { // Storm threshold that was reached. - Threshold int64 `json:"threshold,omitempty"` + Threshold int64 `json:"threshold,omitempty" toon:"threshold,omitempty"` } // FeedDetailIncidentUnack is generated from the Flashduty OpenAPI schema. type FeedDetailIncidentUnack struct { // Progress note entered when acknowledgement was removed. - Progress string `json:"progress,omitempty"` + Progress string `json:"progress,omitempty" toon:"progress,omitempty"` } // FeedDetailIncidentWake is generated from the Flashduty OpenAPI schema. type FeedDetailIncidentWake struct { // Unix timestamp at which the prior snooze was scheduled to end. - SnoozedBefore Timestamp `json:"snoozedBefore,omitempty"` + SnoozedBefore Timestamp `json:"snoozedBefore,omitempty" toon:"snoozedBefore,omitempty"` } // FeedDetailIncidentWarRoomCreate is generated from the Flashduty OpenAPI schema. type FeedDetailIncidentWarRoomCreate struct { // Chat group identifier. - ChatID string `json:"chat_id,omitempty"` + ChatID string `json:"chat_id,omitempty" toon:"chat_id,omitempty"` // Chat group display name. - ChatName string `json:"chat_name,omitempty"` + ChatName string `json:"chat_name,omitempty" toon:"chat_name,omitempty"` // Integration ID that hosts the war room chat group. - IntegrationID int64 `json:"integration_id,omitempty"` + IntegrationID int64 `json:"integration_id,omitempty" toon:"integration_id,omitempty"` // Integration display name. - IntegrationName string `json:"integration_name,omitempty"` + IntegrationName string `json:"integration_name,omitempty" toon:"integration_name,omitempty"` // Chat integration plugin type. - PluginType string `json:"plugin_type,omitempty"` + PluginType string `json:"plugin_type,omitempty" toon:"plugin_type,omitempty"` // Shareable join link for the war room. - ShareLink string `json:"share_link,omitempty"` + ShareLink string `json:"share_link,omitempty" toon:"share_link,omitempty"` } // FeedDetailIncidentWarRoomDelete is generated from the Flashduty OpenAPI schema. type FeedDetailIncidentWarRoomDelete struct { // Chat group identifier. - ChatID string `json:"chat_id,omitempty"` + ChatID string `json:"chat_id,omitempty" toon:"chat_id,omitempty"` // Chat group display name. - ChatName string `json:"chat_name,omitempty"` + ChatName string `json:"chat_name,omitempty" toon:"chat_name,omitempty"` // Integration ID that hosted the war room chat group. - IntegrationID int64 `json:"integration_id,omitempty"` + IntegrationID int64 `json:"integration_id,omitempty" toon:"integration_id,omitempty"` // Integration display name. - IntegrationName string `json:"integration_name,omitempty"` + IntegrationName string `json:"integration_name,omitempty" toon:"integration_name,omitempty"` // Chat integration plugin type. - PluginType string `json:"plugin_type,omitempty"` + PluginType string `json:"plugin_type,omitempty" toon:"plugin_type,omitempty"` } // FeedItem is generated from the Flashduty OpenAPI schema. type FeedItem struct { // Account ID. - AccountID int64 `json:"account_id,omitempty"` + AccountID int64 `json:"account_id,omitempty" toon:"account_id,omitempty"` // Creation timestamp in Unix epoch milliseconds. - CreatedAt TimestampMilli `json:"created_at,omitempty"` + CreatedAt TimestampMilli `json:"created_at,omitempty" toon:"created_at,omitempty"` // Member ID of the creator. 0 for system-generated entries. - CreatorID int64 `json:"creator_id,omitempty"` + CreatorID int64 `json:"creator_id,omitempty" toon:"creator_id,omitempty"` // Type-specific payload. The concrete shape is determined by `type`. - Detail any `json:"detail,omitempty"` + Detail any `json:"detail,omitempty" toon:"detail,omitempty"` // ObjectID of the alert this entry references. - RefID string `json:"ref_id,omitempty"` - Type AlertFeedType `json:"type,omitempty"` + RefID string `json:"ref_id,omitempty" toon:"ref_id,omitempty"` + Type AlertFeedType `json:"type,omitempty" toon:"type,omitempty"` // Last update timestamp in Unix epoch milliseconds. - UpdatedAt TimestampMilli `json:"updated_at,omitempty"` + UpdatedAt TimestampMilli `json:"updated_at,omitempty" toon:"updated_at,omitempty"` } // FieldInfoRequest is generated from the Flashduty OpenAPI schema. type FieldInfoRequest struct { // Field ID — 24-character hex ObjectID. - FieldID string `json:"field_id,omitempty"` + FieldID string `json:"field_id,omitempty" toon:"field_id,omitempty"` } // FieldItem is generated from the Flashduty OpenAPI schema. type FieldItem struct { // Owning account ID. - AccountID int64 `json:"account_id,omitempty"` + AccountID int64 `json:"account_id,omitempty" toon:"account_id,omitempty"` // Creation timestamp, Unix seconds. - CreatedAt Timestamp `json:"created_at,omitempty"` + CreatedAt Timestamp `json:"created_at,omitempty" toon:"created_at,omitempty"` // Creator member ID. - CreatorID int64 `json:"creator_id,omitempty"` + CreatorID int64 `json:"creator_id,omitempty" toon:"creator_id,omitempty"` // Default value. Type depends on `field_type`: `bool` for checkbox; `string` for single_select/text; `string[]` for multi_select; may be `null` if no default. - DefaultValue any `json:"default_value,omitempty"` + DefaultValue any `json:"default_value,omitempty" toon:"default_value,omitempty"` // Deletion timestamp, Unix seconds. Only present for soft-deleted fields. - DeletedAt Timestamp `json:"deleted_at,omitempty"` + DeletedAt Timestamp `json:"deleted_at,omitempty" toon:"deleted_at,omitempty"` // Optional free-text description. - Description string `json:"description,omitempty"` + Description string `json:"description,omitempty" toon:"description,omitempty"` // Human-readable name shown in the UI. - DisplayName string `json:"display_name,omitempty"` + DisplayName string `json:"display_name,omitempty" toon:"display_name,omitempty"` // Field ID — 24-character hex ObjectID. - FieldID string `json:"field_id,omitempty"` + FieldID string `json:"field_id,omitempty" toon:"field_id,omitempty"` // Machine name used in incident payloads under `fields.`. Immutable. - FieldName string `json:"field_name,omitempty"` + FieldName string `json:"field_name,omitempty" toon:"field_name,omitempty"` // Field input type. - FieldType string `json:"field_type,omitempty"` + FieldType string `json:"field_type,omitempty" toon:"field_type,omitempty"` // Allowed choices for `single_select`/`multi_select` (non-empty unique string array). `null` or empty for `checkbox`/`text`. - Options []string `json:"options,omitempty"` + Options []string `json:"options,omitempty" toon:"options,omitempty"` // Field status (e.g. `enabled`, `deleted`). - Status string `json:"status,omitempty"` + Status string `json:"status,omitempty" toon:"status,omitempty"` // Last update timestamp, Unix seconds. - UpdatedAt Timestamp `json:"updated_at,omitempty"` + UpdatedAt Timestamp `json:"updated_at,omitempty" toon:"updated_at,omitempty"` // Last updater member ID. - UpdatedBy int64 `json:"updated_by,omitempty"` + UpdatedBy int64 `json:"updated_by,omitempty" toon:"updated_by,omitempty"` // Stored value type. `checkbox` is always `bool`; `single_select`/`multi_select`/`text` are always `string`. - ValueType string `json:"value_type,omitempty"` + ValueType string `json:"value_type,omitempty" toon:"value_type,omitempty"` } // FieldListRequest is generated from the Flashduty OpenAPI schema. type FieldListRequest struct { // Sort ascending when `true`; descending otherwise. - Asc bool `json:"asc,omitempty"` + Asc bool `json:"asc,omitempty" toon:"asc,omitempty"` // Filter by creator member ID. Omit or send `null` to skip. - CreatorID *int64 `json:"creator_id,omitempty"` + CreatorID *int64 `json:"creator_id,omitempty" toon:"creator_id,omitempty"` // Sort key. Defaults to backend ordering when omitted. - Orderby string `json:"orderby,omitempty"` + Orderby string `json:"orderby,omitempty" toon:"orderby,omitempty"` // Regex filter against `field_name` and `display_name`. Invalid regex is auto-escaped to literal substring match. - Query string `json:"query,omitempty"` + Query string `json:"query,omitempty" toon:"query,omitempty"` } // FieldListResponse is generated from the Flashduty OpenAPI schema. type FieldListResponse struct { // All non-deleted custom fields for the account. No pagination. - Items []FieldItem `json:"items,omitempty"` + Items []FieldItem `json:"items,omitempty" toon:"items,omitempty"` } // FilterCondition is generated from the Flashduty OpenAPI schema. type FilterCondition struct { // Field name to filter on. Use plain names for built-in alert fields (e.g. `alert_severity`, `alert_key`, `check`, `resource`, `service`, `cluster`) or the `labels.` prefix for custom alert labels (e.g. `labels.env`, `labels.region`). - Key string `json:"key,omitempty"` + Key string `json:"key,omitempty" toon:"key,omitempty"` // Filter operator. `IN` — value must match one of `vals`; `NOTIN` — value must not match any of `vals`. Supports regex patterns wrapped in `/pattern/`. - Oper string `json:"oper,omitempty"` + Oper string `json:"oper,omitempty" toon:"oper,omitempty"` // List of values to match against. Each entry is a plain string or a `/regex/` pattern. - Vals []string `json:"vals,omitempty"` + Vals []string `json:"vals,omitempty" toon:"vals,omitempty"` } // Flapping is generated from the Flashduty OpenAPI schema. type Flapping struct { // Observation window in minutes. - InMins int64 `json:"in_mins,omitempty"` + InMins int64 `json:"in_mins,omitempty" toon:"in_mins,omitempty"` // Disable flapping detection. - IsDisabled bool `json:"is_disabled,omitempty"` + IsDisabled bool `json:"is_disabled,omitempty" toon:"is_disabled,omitempty"` // Max state changes allowed within `in_mins`. - MaxChanges int64 `json:"max_changes,omitempty"` + MaxChanges int64 `json:"max_changes,omitempty" toon:"max_changes,omitempty"` // Mute duration in minutes after flapping is detected. - MuteMins int64 `json:"mute_mins,omitempty"` + MuteMins int64 `json:"mute_mins,omitempty" toon:"mute_mins,omitempty"` } // GetWarRoomDefaultObserversRequest is generated from the Flashduty OpenAPI schema. type GetWarRoomDefaultObserversRequest struct { // Incident ID, a MongoDB ObjectID hex string. - IncidentID string `json:"incident_id,omitempty"` + IncidentID string `json:"incident_id,omitempty" toon:"incident_id,omitempty"` } // GetWarRoomDefaultObserversResponse is generated from the Flashduty OpenAPI schema. type GetWarRoomDefaultObserversResponse struct { // Historical responders suggested as default war-room observers. - Observers []WarRoomPersonItem `json:"observers,omitempty"` + Observers []WarRoomPersonItem `json:"observers,omitempty" toon:"observers,omitempty"` } // GetWarRoomDetailRequest is generated from the Flashduty OpenAPI schema. type GetWarRoomDetailRequest struct { // Chat/group ID on the IM side. - ChatID string `json:"chat_id,omitempty"` + ChatID string `json:"chat_id,omitempty" toon:"chat_id,omitempty"` // IM integration ID that hosts the war room. - IntegrationID int64 `json:"integration_id,omitempty"` + IntegrationID int64 `json:"integration_id,omitempty" toon:"integration_id,omitempty"` } // GetWebhookHistoryDetailRequest is generated from the Flashduty OpenAPI schema. type GetWebhookHistoryDetailRequest struct { // Event ID returned by `ListWebhookHistory`. - EventID string `json:"event_id,omitempty"` + EventID string `json:"event_id,omitempty" toon:"event_id,omitempty"` // Integration ID the event belongs to. - IntegrationID int64 `json:"integration_id,omitempty"` + IntegrationID int64 `json:"integration_id,omitempty" toon:"integration_id,omitempty"` } // Group is generated from the Flashduty OpenAPI schema. type Group struct { // When true, all listed keys must be present for grouping. - AllEqualsRequired bool `json:"all_equals_required,omitempty"` + AllEqualsRequired bool `json:"all_equals_required,omitempty" toon:"all_equals_required,omitempty"` // Per-filter grouping overrides. - Cases []map[string]any `json:"cases,omitempty"` + Cases []map[string]any `json:"cases,omitempty" toon:"cases,omitempty"` // Groups of label keys whose equality defines a bucket. - Equals [][]string `json:"equals,omitempty"` + Equals [][]string `json:"equals,omitempty" toon:"equals,omitempty"` // Label keys used for intelligent grouping embeddings. - IKeys []string `json:"i_keys,omitempty"` + IKeys []string `json:"i_keys,omitempty" toon:"i_keys,omitempty"` // Intelligent grouping similarity threshold. - IScoreThreshold float64 `json:"i_score_threshold,omitempty"` + IScoreThreshold float64 `json:"i_score_threshold,omitempty" toon:"i_score_threshold,omitempty"` // Grouping method: `i` intelligent, `p` pattern, `n` none. - Method string `json:"method,omitempty"` + Method string `json:"method,omitempty" toon:"method,omitempty"` // Alert storm threshold. - StormThreshold int64 `json:"storm_threshold,omitempty"` + StormThreshold int64 `json:"storm_threshold,omitempty" toon:"storm_threshold,omitempty"` // Multi-level storm thresholds. - StormThresholds []int64 `json:"storm_thresholds,omitempty"` + StormThresholds []int64 `json:"storm_thresholds,omitempty" toon:"storm_thresholds,omitempty"` // Grouping time window in minutes. Default max is 1440 minutes (24 h); extended accounts may allow up to 43200 minutes (30 days). - TimeWindow int64 `json:"time_window,omitempty"` + TimeWindow int64 `json:"time_window,omitempty" toon:"time_window,omitempty"` // Window type. Defaults to `tumbling`. - WindowType string `json:"window_type,omitempty"` + WindowType string `json:"window_type,omitempty" toon:"window_type,omitempty"` } // IDRequest is generated from the Flashduty OpenAPI schema. type IDRequest struct { // Resource ID. - ID uint64 `json:"id,omitempty"` + ID uint64 `json:"id,omitempty" toon:"id,omitempty"` } // Image is generated from the Flashduty OpenAPI schema. type Image struct { // Alt text. - Alt string `json:"alt,omitempty"` + Alt string `json:"alt,omitempty" toon:"alt,omitempty"` // Optional link the image points to. - Href string `json:"href,omitempty"` + Href string `json:"href,omitempty" toon:"href,omitempty"` // Image source. Either an `img_` upload token or an `http(s)` URL. - Src string `json:"src,omitempty"` + Src string `json:"src,omitempty" toon:"src,omitempty"` } // ImportStatusPageSubscriberItem is generated from the Flashduty OpenAPI schema. type ImportStatusPageSubscriberItem struct { // When true, the subscriber receives notifications for all components. Must be true when `component_ids` and `change_ids` are both empty. - All bool `json:"all,omitempty"` + All bool `json:"all,omitempty" toon:"all,omitempty"` // Specific event IDs the subscriber should receive notifications for. - ChangeIDs []int64 `json:"change_ids,omitempty"` + ChangeIDs []int64 `json:"change_ids,omitempty" toon:"change_ids,omitempty"` // Component IDs the subscriber should receive notifications for. - ComponentIDs []string `json:"component_ids,omitempty"` + ComponentIDs []string `json:"component_ids,omitempty" toon:"component_ids,omitempty"` // Preferred locale for notifications. Defaults to the request locale when omitted. - Locale string `json:"locale,omitempty"` + Locale string `json:"locale,omitempty" toon:"locale,omitempty"` // Email address (for public pages) or user ID (for internal pages). - Recipient string `json:"recipient,omitempty"` + Recipient string `json:"recipient,omitempty" toon:"recipient,omitempty"` } // ImportStatusPageSubscribersRequest is generated from the Flashduty OpenAPI schema. type ImportStatusPageSubscribersRequest struct { // Subscription method. `email` is only valid for public pages; `im` is only valid for internal pages. - Method string `json:"method,omitempty"` + Method string `json:"method,omitempty" toon:"method,omitempty"` // Target status page ID. - PageID int64 `json:"page_id,omitempty"` + PageID int64 `json:"page_id,omitempty" toon:"page_id,omitempty"` // Subscribers to import. - Subscribers []ImportStatusPageSubscriberItem `json:"subscribers,omitempty"` + Subscribers []ImportStatusPageSubscriberItem `json:"subscribers,omitempty" toon:"subscribers,omitempty"` } // IncProgressCnts is generated from the Flashduty OpenAPI schema. type IncProgressCnts struct { // Count of processing incidents in the last 30 days. - Processing int64 `json:"Processing,omitempty"` + Processing int64 `json:"Processing,omitempty" toon:"Processing,omitempty"` // Count of triggered incidents in the last 30 days. - Triggered int64 `json:"Triggered,omitempty"` + Triggered int64 `json:"Triggered,omitempty" toon:"Triggered,omitempty"` } // IncidentFeedItem is generated from the Flashduty OpenAPI schema. type IncidentFeedItem struct { // Account ID. - AccountID int64 `json:"account_id,omitempty"` + AccountID int64 `json:"account_id,omitempty" toon:"account_id,omitempty"` // Creation timestamp in milliseconds. - CreatedAt TimestampMilli `json:"created_at,omitempty"` + CreatedAt TimestampMilli `json:"created_at,omitempty" toon:"created_at,omitempty"` // User ID of the actor. `0` means system-generated. - CreatorID int64 `json:"creator_id,omitempty"` + CreatorID int64 `json:"creator_id,omitempty" toon:"creator_id,omitempty"` // Soft-delete timestamp (ms). Zero if not deleted. - DeletedAt Timestamp `json:"deleted_at,omitempty"` + DeletedAt Timestamp `json:"deleted_at,omitempty" toon:"deleted_at,omitempty"` // Type-specific payload. The concrete shape is determined by `type`. - Detail any `json:"detail,omitempty"` + Detail any `json:"detail,omitempty" toon:"detail,omitempty"` // ObjectID of the source alert or incident this entry references. - RefID string `json:"ref_id,omitempty"` - Type IncidentFeedType `json:"type,omitempty"` + RefID string `json:"ref_id,omitempty" toon:"ref_id,omitempty"` + Type IncidentFeedType `json:"type,omitempty" toon:"type,omitempty"` // Last update timestamp in milliseconds. - UpdatedAt TimestampMilli `json:"updated_at,omitempty"` + UpdatedAt TimestampMilli `json:"updated_at,omitempty" toon:"updated_at,omitempty"` } // IncidentInfo is generated from the Flashduty OpenAPI schema. type IncidentInfo struct { // Account ID that owns the incident. - AccountID int64 `json:"account_id,omitempty"` + AccountID int64 `json:"account_id,omitempty" toon:"account_id,omitempty"` // Account locale. - AccountLocale string `json:"account_locale,omitempty"` + AccountLocale string `json:"account_locale,omitempty" toon:"account_locale,omitempty"` // Account name. - AccountName string `json:"account_name,omitempty"` + AccountName string `json:"account_name,omitempty" toon:"account_name,omitempty"` // Account time zone. - AccountTimeZone string `json:"account_time_zone,omitempty"` + AccountTimeZone string `json:"account_time_zone,omitempty" toon:"account_time_zone,omitempty"` // Unix timestamp (seconds) when the incident was first acknowledged. 0 if unacknowledged. - AckTime Timestamp `json:"ack_time,omitempty"` + AckTime Timestamp `json:"ack_time,omitempty" toon:"ack_time,omitempty"` // Count of alerts currently in Critical/Warning/Info state. - ActiveAlertCnt int64 `json:"active_alert_cnt,omitempty"` + ActiveAlertCnt int64 `json:"active_alert_cnt,omitempty" toon:"active_alert_cnt,omitempty"` // AI-generated summary of the incident. - AISummary string `json:"ai_summary,omitempty"` + AISummary string `json:"ai_summary,omitempty" toon:"ai_summary,omitempty"` // Total count of alerts merged into this incident. - AlertCnt int64 `json:"alert_cnt,omitempty"` + AlertCnt int64 `json:"alert_cnt,omitempty" toon:"alert_cnt,omitempty"` // Total raw alert event count across all merged alerts. - AlertEventCnt int64 `json:"alert_event_cnt,omitempty"` + AlertEventCnt int64 `json:"alert_event_cnt,omitempty" toon:"alert_event_cnt,omitempty"` // Embedded alerts, only populated for notification templates and custom actions. - Alerts []AlertInfo `json:"alerts,omitempty"` + Alerts []AlertInfo `json:"alerts,omitempty" toon:"alerts,omitempty"` // Current assignment target for the incident. - AssignedTo AssignedTo `json:"assigned_to,omitempty"` + AssignedTo AssignedTo `json:"assigned_to,omitempty" toon:"assigned_to,omitempty"` // Channel ID. 0 for standalone incidents. - ChannelID int64 `json:"channel_id,omitempty"` + ChannelID int64 `json:"channel_id,omitempty" toon:"channel_id,omitempty"` // Channel display name. - ChannelName string `json:"channel_name,omitempty"` + ChannelName string `json:"channel_name,omitempty" toon:"channel_name,omitempty"` // Channel status. - ChannelStatus string `json:"channel_status,omitempty"` + ChannelStatus string `json:"channel_status,omitempty" toon:"channel_status,omitempty"` // Unix timestamp (seconds) when the incident was closed. 0 if still open. - CloseTime Timestamp `json:"close_time,omitempty"` + CloseTime Timestamp `json:"close_time,omitempty" toon:"close_time,omitempty"` // Closer member info. - Closer PersonShort `json:"closer,omitempty"` + Closer PersonShort `json:"closer,omitempty" toon:"closer,omitempty"` // Member ID that closed the incident. 0 if auto-closed. - CloserID int64 `json:"closer_id,omitempty"` + CloserID int64 `json:"closer_id,omitempty" toon:"closer_id,omitempty"` // Creation timestamp (seconds). - CreatedAt Timestamp `json:"created_at,omitempty"` + CreatedAt Timestamp `json:"created_at,omitempty" toon:"created_at,omitempty"` // Creator member info. - Creator PersonShort `json:"creator,omitempty"` + Creator PersonShort `json:"creator,omitempty" toon:"creator,omitempty"` // Member ID that created the incident. 0 if auto-created by the system. - CreatorID int64 `json:"creator_id,omitempty"` + CreatorID int64 `json:"creator_id,omitempty" toon:"creator_id,omitempty"` // Deprecated. Use `integration_id` instead. - DataSourceID int64 `json:"data_source_id,omitempty"` + DataSourceID int64 `json:"data_source_id,omitempty" toon:"data_source_id,omitempty"` // Deprecated. Use `integration_ids` instead. - DataSourceIDs []int64 `json:"data_source_ids,omitempty"` + DataSourceIDs []int64 `json:"data_source_ids,omitempty" toon:"data_source_ids,omitempty"` // Deprecated. Use `integration_type` instead. - DataSourceType string `json:"data_source_type,omitempty"` + DataSourceType string `json:"data_source_type,omitempty" toon:"data_source_type,omitempty"` // Deprecated. Use `integration_types` instead. - DataSourceTypes []string `json:"data_source_types,omitempty"` + DataSourceTypes []string `json:"data_source_types,omitempty" toon:"data_source_types,omitempty"` // Deduplication key used to coalesce alerts. - DedupKey string `json:"dedup_key,omitempty"` + DedupKey string `json:"dedup_key,omitempty" toon:"dedup_key,omitempty"` // Soft-delete timestamp (seconds). Zero if not deleted. - DeletedAt Timestamp `json:"deleted_at,omitempty"` + DeletedAt Timestamp `json:"deleted_at,omitempty" toon:"deleted_at,omitempty"` // Incident description. - Description string `json:"description,omitempty"` + Description string `json:"description,omitempty" toon:"description,omitempty"` // Web console URL for the incident. - DetailURL string `json:"detail_url,omitempty"` + DetailURL string `json:"detail_url,omitempty" toon:"detail_url,omitempty"` // Unix timestamp (seconds) when the incident ended. 0 if still active. - EndTime Timestamp `json:"end_time,omitempty"` + EndTime Timestamp `json:"end_time,omitempty" toon:"end_time,omitempty"` // MD5 hash used for content-equality checks. - EqualsMD5 string `json:"equals_md5,omitempty"` + EqualsMD5 string `json:"equals_md5,omitempty" toon:"equals_md5,omitempty"` // Whether the incident has ever been silenced. - EverMuted bool `json:"ever_muted,omitempty"` + EverMuted bool `json:"ever_muted,omitempty" toon:"ever_muted,omitempty"` // Custom field values keyed by field name. - Fields map[string]any `json:"fields,omitempty"` + Fields map[string]any `json:"fields,omitempty" toon:"fields,omitempty"` // Frequency bucket for recurrence analysis: `frequent` or `rare`. - Frequency string `json:"frequency,omitempty"` + Frequency string `json:"frequency,omitempty" toon:"frequency,omitempty"` // Alert grouping method: `i` intelligent, `p` pattern, `n` none. - GroupMethod string `json:"group_method,omitempty"` + GroupMethod string `json:"group_method,omitempty" toon:"group_method,omitempty"` // Attached images. - Images []Image `json:"images,omitempty"` + Images []Image `json:"images,omitempty" toon:"images,omitempty"` // Impact description. - Impact string `json:"impact,omitempty"` + Impact string `json:"impact,omitempty" toon:"impact,omitempty"` // Incident ID (MongoDB ObjectID). - IncidentID string `json:"incident_id,omitempty"` + IncidentID string `json:"incident_id,omitempty" toon:"incident_id,omitempty"` // Configured incident severity. - IncidentSeverity string `json:"incident_severity,omitempty"` + IncidentSeverity string `json:"incident_severity,omitempty" toon:"incident_severity,omitempty"` // Current incident status, derived from alert statuses. - IncidentStatus string `json:"incident_status,omitempty"` + IncidentStatus string `json:"incident_status,omitempty" toon:"incident_status,omitempty"` // First integration associated with the incident. - IntegrationID int64 `json:"integration_id,omitempty"` + IntegrationID int64 `json:"integration_id,omitempty" toon:"integration_id,omitempty"` // All integration IDs contributing alerts to this incident. - IntegrationIDs []int64 `json:"integration_ids,omitempty"` + IntegrationIDs []int64 `json:"integration_ids,omitempty" toon:"integration_ids,omitempty"` // First alert's integration type string, used by the detail page for label mappings. - IntegrationType string `json:"integration_type,omitempty"` + IntegrationType string `json:"integration_type,omitempty" toon:"integration_type,omitempty"` // Integration type strings for all contributing integrations. - IntegrationTypes []string `json:"integration_types,omitempty"` + IntegrationTypes []string `json:"integration_types,omitempty" toon:"integration_types,omitempty"` // Labels propagated from alerts. - Labels map[string]string `json:"labels,omitempty"` + Labels map[string]string `json:"labels,omitempty" toon:"labels,omitempty"` // Unix timestamp (seconds) of the most recent update. - LastTime Timestamp `json:"last_time,omitempty"` + LastTime Timestamp `json:"last_time,omitempty" toon:"last_time,omitempty"` // Channel-level link integrations rendered for this incident. - Links []LinkItem `json:"links,omitempty"` + Links []LinkItem `json:"links,omitempty" toon:"links,omitempty"` // Fields that were manually overridden after auto-population. - ManualOverrides []string `json:"manual_overrides,omitempty"` + ManualOverrides []string `json:"manual_overrides,omitempty" toon:"manual_overrides,omitempty"` // Short display identifier; not guaranteed unique. - Num string `json:"num,omitempty"` + Num string `json:"num,omitempty" toon:"num,omitempty"` // Owner member info. May be deprecated. - Owner PersonShort `json:"owner,omitempty"` + Owner PersonShort `json:"owner,omitempty" toon:"owner,omitempty"` // Primary owner member ID. 0 if none. - OwnerID int64 `json:"owner_id,omitempty"` + OwnerID int64 `json:"owner_id,omitempty" toon:"owner_id,omitempty"` // Associated post-mortem ID, if any. One incident can only link to a single post-mortem. - PostMortemID string `json:"post_mortem_id,omitempty"` + PostMortemID string `json:"post_mortem_id,omitempty" toon:"post_mortem_id,omitempty"` // Incident progress state. - Progress string `json:"progress,omitempty"` + Progress string `json:"progress,omitempty" toon:"progress,omitempty"` // Reporter email for manually created incidents. - ReporterEmail string `json:"reporter_email,omitempty"` + ReporterEmail string `json:"reporter_email,omitempty" toon:"reporter_email,omitempty"` // Resolution notes. - Resolution string `json:"resolution,omitempty"` + Resolution string `json:"resolution,omitempty" toon:"resolution,omitempty"` // Current responders with assignment/acknowledgement state. - Responders []Responder `json:"responders,omitempty"` + Responders []Responder `json:"responders,omitempty" toon:"responders,omitempty"` // Root cause analysis. - RootCause string `json:"root_cause,omitempty"` + RootCause string `json:"root_cause,omitempty" toon:"root_cause,omitempty"` // Quick-silence URL for this incident. - SilenceURL string `json:"silence_url,omitempty"` + SilenceURL string `json:"silence_url,omitempty" toon:"silence_url,omitempty"` // Unix timestamp (seconds) until which notifications are snoozed. 0 if not snoozed. - SnoozedBefore Timestamp `json:"snoozed_before,omitempty"` + SnoozedBefore Timestamp `json:"snoozed_before,omitempty" toon:"snoozed_before,omitempty"` // Unix timestamp (seconds) when the incident started. - StartTime Timestamp `json:"start_time,omitempty"` + StartTime Timestamp `json:"start_time,omitempty" toon:"start_time,omitempty"` // Incident title. - Title string `json:"title,omitempty"` + Title string `json:"title,omitempty" toon:"title,omitempty"` // Last update timestamp (seconds). - UpdatedAt Timestamp `json:"updated_at,omitempty"` + UpdatedAt Timestamp `json:"updated_at,omitempty" toon:"updated_at,omitempty"` } // IncidentInfoRequest is generated from the Flashduty OpenAPI schema. type IncidentInfoRequest struct { // Incident ID (MongoDB ObjectID). - IncidentID string `json:"incident_id,omitempty"` + IncidentID string `json:"incident_id,omitempty" toon:"incident_id,omitempty"` } // IncidentListResponse is generated from the Flashduty OpenAPI schema. type IncidentListResponse struct { // True when more results are available beyond this page. - HasNextPage bool `json:"has_next_page,omitempty"` + HasNextPage bool `json:"has_next_page,omitempty" toon:"has_next_page,omitempty"` // Incident list for the current page. - Items []IncidentInfo `json:"items,omitempty"` + Items []IncidentInfo `json:"items,omitempty" toon:"items,omitempty"` // Opaque cursor to pass as `search_after_ctx` on the next request. - SearchAfterCtx string `json:"search_after_ctx,omitempty"` + SearchAfterCtx string `json:"search_after_ctx,omitempty" toon:"search_after_ctx,omitempty"` // Total number of matching incidents. - Total int64 `json:"total,omitempty"` + Total int64 `json:"total,omitempty" toon:"total,omitempty"` } // IncidentRawItem is generated from the Flashduty OpenAPI schema. type IncidentRawItem struct { - Acknowledgements int64 `json:"acknowledgements,omitempty"` + Acknowledgements int64 `json:"acknowledgements,omitempty" toon:"acknowledgements,omitempty"` // Current assignment target for the incident. - AssignedTo IncidentRawItemAssignedTo `json:"assigned_to,omitempty"` - Assignments int64 `json:"assignments,omitempty"` - ChannelID int64 `json:"channel_id,omitempty"` - ChannelName string `json:"channel_name,omitempty"` - ClosedBy string `json:"closed_by,omitempty"` - CreatedAt int64 `json:"created_at,omitempty"` - CreatorID int64 `json:"creator_id,omitempty"` - CreatorName string `json:"creator_name,omitempty"` - Description string `json:"description,omitempty"` - EngagedSeconds int64 `json:"engaged_seconds,omitempty"` - Escalations int64 `json:"escalations,omitempty"` - Fields map[string]any `json:"fields,omitempty"` - Hours string `json:"hours,omitempty"` - IncidentID string `json:"incident_id,omitempty"` - Interruptions int64 `json:"interruptions,omitempty"` - Labels map[string]string `json:"labels,omitempty"` - ManualEscalations int64 `json:"manual_escalations,omitempty"` - Notifications int64 `json:"notifications,omitempty"` - // Incident progress state (e.g. `Triggered`, `Acknowledged`, `Closed`). - Progress string `json:"progress,omitempty"` - Reassignments int64 `json:"reassignments,omitempty"` - Responders []map[string]any `json:"responders,omitempty"` - SecondsToAck int64 `json:"seconds_to_ack,omitempty"` - SecondsToClose int64 `json:"seconds_to_close,omitempty"` - Severity string `json:"severity,omitempty"` - TeamID int64 `json:"team_id,omitempty"` - TeamName string `json:"team_name,omitempty"` - TimeoutEscalations int64 `json:"timeout_escalations,omitempty"` - Title string `json:"title,omitempty"` + AssignedTo IncidentRawItemAssignedTo `json:"assigned_to,omitempty" toon:"assigned_to,omitempty"` + Assignments int64 `json:"assignments,omitempty" toon:"assignments,omitempty"` + ChannelID int64 `json:"channel_id,omitempty" toon:"channel_id,omitempty"` + ChannelName string `json:"channel_name,omitempty" toon:"channel_name,omitempty"` + ClosedBy string `json:"closed_by,omitempty" toon:"closed_by,omitempty"` + CreatedAt int64 `json:"created_at,omitempty" toon:"created_at,omitempty"` + CreatorID int64 `json:"creator_id,omitempty" toon:"creator_id,omitempty"` + CreatorName string `json:"creator_name,omitempty" toon:"creator_name,omitempty"` + Description string `json:"description,omitempty" toon:"description,omitempty"` + EngagedSeconds int64 `json:"engaged_seconds,omitempty" toon:"engaged_seconds,omitempty"` + Escalations int64 `json:"escalations,omitempty" toon:"escalations,omitempty"` + Fields map[string]any `json:"fields,omitempty" toon:"fields,omitempty"` + Hours string `json:"hours,omitempty" toon:"hours,omitempty"` + IncidentID string `json:"incident_id,omitempty" toon:"incident_id,omitempty"` + Interruptions int64 `json:"interruptions,omitempty" toon:"interruptions,omitempty"` + Labels map[string]string `json:"labels,omitempty" toon:"labels,omitempty"` + ManualEscalations int64 `json:"manual_escalations,omitempty" toon:"manual_escalations,omitempty"` + Notifications int64 `json:"notifications,omitempty" toon:"notifications,omitempty"` + // Incident progress state — one of `Triggered`, `Processing`, `Closed`. + Progress string `json:"progress,omitempty" toon:"progress,omitempty"` + Reassignments int64 `json:"reassignments,omitempty" toon:"reassignments,omitempty"` + Responders []map[string]any `json:"responders,omitempty" toon:"responders,omitempty"` + SecondsToAck int64 `json:"seconds_to_ack,omitempty" toon:"seconds_to_ack,omitempty"` + SecondsToClose int64 `json:"seconds_to_close,omitempty" toon:"seconds_to_close,omitempty"` + Severity string `json:"severity,omitempty" toon:"severity,omitempty"` + TeamID int64 `json:"team_id,omitempty" toon:"team_id,omitempty"` + TeamName string `json:"team_name,omitempty" toon:"team_name,omitempty"` + TimeoutEscalations int64 `json:"timeout_escalations,omitempty" toon:"timeout_escalations,omitempty"` + Title string `json:"title,omitempty" toon:"title,omitempty"` } // IncidentShort is generated from the Flashduty OpenAPI schema. type IncidentShort struct { // Incident ID (ObjectID hex string). - IncidentID string `json:"incident_id,omitempty"` - // Incident progress (e.g. `Processing`, `Resolved`). - Progress string `json:"progress,omitempty"` + IncidentID string `json:"incident_id,omitempty" toon:"incident_id,omitempty"` + // Incident progress — one of `Triggered`, `Processing`, `Closed`. + Progress string `json:"progress,omitempty" toon:"progress,omitempty"` // Incident title. - Title string `json:"title,omitempty"` + Title string `json:"title,omitempty" toon:"title,omitempty"` } // InhibitRuleItem is generated from the Flashduty OpenAPI schema. type InhibitRuleItem struct { - AccountID int64 `json:"account_id,omitempty"` - ChannelID int64 `json:"channel_id,omitempty"` - CreatedAt int64 `json:"created_at,omitempty"` - DeletedAt int64 `json:"deleted_at,omitempty"` - Description string `json:"description,omitempty"` + AccountID int64 `json:"account_id,omitempty" toon:"account_id,omitempty"` + ChannelID int64 `json:"channel_id,omitempty" toon:"channel_id,omitempty"` + CreatedAt int64 `json:"created_at,omitempty" toon:"created_at,omitempty"` + DeletedAt int64 `json:"deleted_at,omitempty" toon:"deleted_at,omitempty"` + Description string `json:"description,omitempty" toon:"description,omitempty"` // Label keys used to pair source and target alerts. - Equals []string `json:"equals,omitempty"` - IsDirectlyDiscard bool `json:"is_directly_discard,omitempty"` - Priority int64 `json:"priority,omitempty"` - RuleID string `json:"rule_id,omitempty"` - RuleName string `json:"rule_name,omitempty"` - SourceFilters FilterGroup `json:"source_filters,omitempty"` - Status string `json:"status,omitempty"` - TargetFilters FilterGroup `json:"target_filters,omitempty"` - UpdatedAt int64 `json:"updated_at,omitempty"` - UpdatedBy int64 `json:"updated_by,omitempty"` + Equals []string `json:"equals,omitempty" toon:"equals,omitempty"` + IsDirectlyDiscard bool `json:"is_directly_discard,omitempty" toon:"is_directly_discard,omitempty"` + Priority int64 `json:"priority,omitempty" toon:"priority,omitempty"` + RuleID string `json:"rule_id,omitempty" toon:"rule_id,omitempty"` + RuleName string `json:"rule_name,omitempty" toon:"rule_name,omitempty"` + SourceFilters FilterGroup `json:"source_filters,omitempty" toon:"source_filters,omitempty"` + Status string `json:"status,omitempty" toon:"status,omitempty"` + TargetFilters FilterGroup `json:"target_filters,omitempty" toon:"target_filters,omitempty"` + UpdatedAt int64 `json:"updated_at,omitempty" toon:"updated_at,omitempty"` + UpdatedBy int64 `json:"updated_by,omitempty" toon:"updated_by,omitempty"` } // InsightAlertByLabelItem is generated from the Flashduty OpenAPI schema. type InsightAlertByLabelItem struct { // Hour bucket when `split_hours` is enabled. - Hours string `json:"hours,omitempty"` + Hours string `json:"hours,omitempty" toon:"hours,omitempty"` // Aggregation key value (check name or resource identifier). - Label string `json:"label,omitempty"` - TotalAlertCnt int64 `json:"total_alert_cnt,omitempty"` - TotalAlertEventCnt int64 `json:"total_alert_event_cnt,omitempty"` + Label string `json:"label,omitempty" toon:"label,omitempty"` + TotalAlertCnt int64 `json:"total_alert_cnt,omitempty" toon:"total_alert_cnt,omitempty"` + TotalAlertEventCnt int64 `json:"total_alert_event_cnt,omitempty" toon:"total_alert_event_cnt,omitempty"` } // InsightAlertByLabelResponse is generated from the Flashduty OpenAPI schema. type InsightAlertByLabelResponse struct { - Items []InsightAlertByLabelItem `json:"items,omitempty"` + Items []InsightAlertByLabelItem `json:"items,omitempty" toon:"items,omitempty"` } // InsightFilter is generated from the Flashduty OpenAPI schema. type InsightFilter struct { // Sort ascending when `true`, descending otherwise. - Asc bool `json:"asc,omitempty"` + Asc bool `json:"asc,omitempty" toon:"asc,omitempty"` // Filter by channel IDs. At most 100 entries. - ChannelIDs []int64 `json:"channel_ids,omitempty"` + ChannelIDs []int64 `json:"channel_ids,omitempty" toon:"channel_ids,omitempty"` // Strip HTML markup from the description column when exporting. - DescriptionHTMLToText bool `json:"description_html_to_text,omitempty"` + DescriptionHTMLToText bool `json:"description_html_to_text,omitempty" toon:"description_html_to_text,omitempty"` // End time, Unix seconds. Must be greater than `start_time`. - EndTime int64 `json:"end_time,omitempty"` + EndTime int64 `json:"end_time,omitempty" toon:"end_time,omitempty"` // Subset of CSV column keys to include in the export. At most 50 entries. Only used by the export endpoints. - ExportFields []string `json:"export_fields,omitempty"` + ExportFields []string `json:"export_fields,omitempty" toon:"export_fields,omitempty"` // Custom-field filters (exact match). - Fields map[string]any `json:"fields,omitempty"` + Fields map[string]any `json:"fields,omitempty" toon:"fields,omitempty"` // Filter by incident IDs (MongoDB ObjectIDs). At most 100 entries. - IncidentIDs []string `json:"incident_ids,omitempty"` + IncidentIDs []string `json:"incident_ids,omitempty" toon:"incident_ids,omitempty"` // Restrict results to teams the caller belongs to. When true and the caller has no teams, the result set is empty. - IsMyTeam bool `json:"is_my_team,omitempty"` + IsMyTeam bool `json:"is_my_team,omitempty" toon:"is_my_team,omitempty"` // Label filters (exact match). - Labels map[string]string `json:"labels,omitempty"` + Labels map[string]string `json:"labels,omitempty" toon:"labels,omitempty"` // Field to sort the underlying incident set by. - Orderby string `json:"orderby,omitempty"` + Orderby string `json:"orderby,omitempty" toon:"orderby,omitempty"` // Full-text query applied to incident title and description. - Query string `json:"query,omitempty"` + Query string `json:"query,omitempty" toon:"query,omitempty"` // Filter by responder person IDs. At most 100 entries. - ResponderIDs []int64 `json:"responder_ids,omitempty"` + ResponderIDs []int64 `json:"responder_ids,omitempty" toon:"responder_ids,omitempty"` // Lower bound (inclusive) on time-to-acknowledge, in seconds. - SecondsToAckFrom int64 `json:"seconds_to_ack_from,omitempty"` + SecondsToAckFrom int64 `json:"seconds_to_ack_from,omitempty" toon:"seconds_to_ack_from,omitempty"` // Upper bound (exclusive) on time-to-acknowledge, in seconds. Must be greater than `seconds_to_ack_from` when both are set. - SecondsToAckTo int64 `json:"seconds_to_ack_to,omitempty"` + SecondsToAckTo int64 `json:"seconds_to_ack_to,omitempty" toon:"seconds_to_ack_to,omitempty"` // Lower bound (inclusive) on time-to-close, in seconds. - SecondsToCloseFrom int64 `json:"seconds_to_close_from,omitempty"` + SecondsToCloseFrom int64 `json:"seconds_to_close_from,omitempty" toon:"seconds_to_close_from,omitempty"` // Upper bound (exclusive) on time-to-close, in seconds. Must be greater than `seconds_to_close_from` when both are set. - SecondsToCloseTo int64 `json:"seconds_to_close_to,omitempty"` + SecondsToCloseTo int64 `json:"seconds_to_close_to,omitempty" toon:"seconds_to_close_to,omitempty"` // Filter by severity. At most 3 entries. - Severities []string `json:"severities,omitempty"` + Severities []string `json:"severities,omitempty" toon:"severities,omitempty"` // Start time, Unix seconds. Must be greater than 0. - StartTime int64 `json:"start_time,omitempty"` + StartTime int64 `json:"start_time,omitempty" toon:"start_time,omitempty"` // Filter by team IDs. At most 100 entries. - TeamIDs []int64 `json:"team_ids,omitempty"` + TeamIDs []int64 `json:"team_ids,omitempty" toon:"team_ids,omitempty"` // IANA time zone name used to interpret the time range (e.g. `Asia/Shanghai`). Defaults to the account time zone. - TimeZone string `json:"time_zone,omitempty"` + TimeZone string `json:"time_zone,omitempty" toon:"time_zone,omitempty"` } // InsightIncidentListRequest is generated from the Flashduty OpenAPI schema. type InsightIncidentListRequest struct { ListOptions // Sort ascending when `true`, descending otherwise. - Asc bool `json:"asc,omitempty"` + Asc bool `json:"asc,omitempty" toon:"asc,omitempty"` // Filter by channel IDs. At most 100 entries. - ChannelIDs []int64 `json:"channel_ids,omitempty"` + ChannelIDs []int64 `json:"channel_ids,omitempty" toon:"channel_ids,omitempty"` // Strip HTML markup from the description column when exporting. - DescriptionHTMLToText bool `json:"description_html_to_text,omitempty"` + DescriptionHTMLToText bool `json:"description_html_to_text,omitempty" toon:"description_html_to_text,omitempty"` // End time, Unix seconds. Must be greater than `start_time`. - EndTime int64 `json:"end_time,omitempty"` + EndTime int64 `json:"end_time,omitempty" toon:"end_time,omitempty"` // Subset of CSV column keys to include in the export. At most 50 entries. Only used by the export endpoints. - ExportFields []string `json:"export_fields,omitempty"` + ExportFields []string `json:"export_fields,omitempty" toon:"export_fields,omitempty"` // Custom-field filters (exact match). - Fields map[string]any `json:"fields,omitempty"` + Fields map[string]any `json:"fields,omitempty" toon:"fields,omitempty"` // Filter by incident IDs (MongoDB ObjectIDs). At most 100 entries. - IncidentIDs []string `json:"incident_ids,omitempty"` + IncidentIDs []string `json:"incident_ids,omitempty" toon:"incident_ids,omitempty"` // Restrict results to teams the caller belongs to. When true and the caller has no teams, the result set is empty. - IsMyTeam bool `json:"is_my_team,omitempty"` + IsMyTeam bool `json:"is_my_team,omitempty" toon:"is_my_team,omitempty"` // Label filters (exact match). - Labels map[string]string `json:"labels,omitempty"` + Labels map[string]string `json:"labels,omitempty" toon:"labels,omitempty"` // Field to sort the underlying incident set by. - Orderby string `json:"orderby,omitempty"` + Orderby string `json:"orderby,omitempty" toon:"orderby,omitempty"` // Full-text query applied to incident title and description. - Query string `json:"query,omitempty"` + Query string `json:"query,omitempty" toon:"query,omitempty"` // Filter by responder person IDs. At most 100 entries. - ResponderIDs []int64 `json:"responder_ids,omitempty"` + ResponderIDs []int64 `json:"responder_ids,omitempty" toon:"responder_ids,omitempty"` // Lower bound (inclusive) on time-to-acknowledge, in seconds. - SecondsToAckFrom int64 `json:"seconds_to_ack_from,omitempty"` + SecondsToAckFrom int64 `json:"seconds_to_ack_from,omitempty" toon:"seconds_to_ack_from,omitempty"` // Upper bound (exclusive) on time-to-acknowledge, in seconds. Must be greater than `seconds_to_ack_from` when both are set. - SecondsToAckTo int64 `json:"seconds_to_ack_to,omitempty"` + SecondsToAckTo int64 `json:"seconds_to_ack_to,omitempty" toon:"seconds_to_ack_to,omitempty"` // Lower bound (inclusive) on time-to-close, in seconds. - SecondsToCloseFrom int64 `json:"seconds_to_close_from,omitempty"` + SecondsToCloseFrom int64 `json:"seconds_to_close_from,omitempty" toon:"seconds_to_close_from,omitempty"` // Upper bound (exclusive) on time-to-close, in seconds. Must be greater than `seconds_to_close_from` when both are set. - SecondsToCloseTo int64 `json:"seconds_to_close_to,omitempty"` + SecondsToCloseTo int64 `json:"seconds_to_close_to,omitempty" toon:"seconds_to_close_to,omitempty"` // Filter by severity. At most 3 entries. - Severities []string `json:"severities,omitempty"` + Severities []string `json:"severities,omitempty" toon:"severities,omitempty"` // Start time, Unix seconds. Must be greater than 0. - StartTime int64 `json:"start_time,omitempty"` + StartTime int64 `json:"start_time,omitempty" toon:"start_time,omitempty"` // Filter by team IDs. At most 100 entries. - TeamIDs []int64 `json:"team_ids,omitempty"` + TeamIDs []int64 `json:"team_ids,omitempty" toon:"team_ids,omitempty"` // IANA time zone name used to interpret the time range (e.g. `Asia/Shanghai`). Defaults to the account time zone. - TimeZone string `json:"time_zone,omitempty"` + TimeZone string `json:"time_zone,omitempty" toon:"time_zone,omitempty"` } // InsightIncidentListResponse is generated from the Flashduty OpenAPI schema. type InsightIncidentListResponse struct { - HasNextPage bool `json:"has_next_page,omitempty"` - Items []IncidentRawItem `json:"items,omitempty"` + HasNextPage bool `json:"has_next_page,omitempty" toon:"has_next_page,omitempty"` + Items []IncidentRawItem `json:"items,omitempty" toon:"items,omitempty"` // Cursor token to fetch the next page. Pass it back in the next request's `search_after_ctx`. - SearchAfterCtx string `json:"search_after_ctx,omitempty"` + SearchAfterCtx string `json:"search_after_ctx,omitempty" toon:"search_after_ctx,omitempty"` // Total matching incidents. - Total int64 `json:"total,omitempty"` + Total int64 `json:"total,omitempty" toon:"total,omitempty"` } // InsightQueryRequest is generated from the Flashduty OpenAPI schema. type InsightQueryRequest struct { // Aggregate metrics into time buckets. When set, the time range must cover at least 24 hours; `day` additionally caps the range at 31 days. - AggregateUnit string `json:"aggregate_unit,omitempty"` + AggregateUnit string `json:"aggregate_unit,omitempty" toon:"aggregate_unit,omitempty"` // Sort ascending when `true`, descending otherwise. - Asc bool `json:"asc,omitempty"` + Asc bool `json:"asc,omitempty" toon:"asc,omitempty"` // Filter by channel IDs. At most 100 entries. - ChannelIDs []int64 `json:"channel_ids,omitempty"` + ChannelIDs []int64 `json:"channel_ids,omitempty" toon:"channel_ids,omitempty"` // Strip HTML markup from the description column when exporting. - DescriptionHTMLToText bool `json:"description_html_to_text,omitempty"` + DescriptionHTMLToText bool `json:"description_html_to_text,omitempty" toon:"description_html_to_text,omitempty"` // End time, Unix seconds. Must be greater than `start_time`. - EndTime int64 `json:"end_time,omitempty"` + EndTime int64 `json:"end_time,omitempty" toon:"end_time,omitempty"` // Subset of CSV column keys to include in the export. At most 50 entries. Only used by the export endpoints. - ExportFields []string `json:"export_fields,omitempty"` + ExportFields []string `json:"export_fields,omitempty" toon:"export_fields,omitempty"` // Custom-field filters (exact match). - Fields map[string]any `json:"fields,omitempty"` + Fields map[string]any `json:"fields,omitempty" toon:"fields,omitempty"` // Filter by incident IDs (MongoDB ObjectIDs). At most 100 entries. - IncidentIDs []string `json:"incident_ids,omitempty"` + IncidentIDs []string `json:"incident_ids,omitempty" toon:"incident_ids,omitempty"` // Restrict results to teams the caller belongs to. When true and the caller has no teams, the result set is empty. - IsMyTeam bool `json:"is_my_team,omitempty"` + IsMyTeam bool `json:"is_my_team,omitempty" toon:"is_my_team,omitempty"` // Label filters (exact match). - Labels map[string]string `json:"labels,omitempty"` + Labels map[string]string `json:"labels,omitempty" toon:"labels,omitempty"` // Field to sort the underlying incident set by. - Orderby string `json:"orderby,omitempty"` + Orderby string `json:"orderby,omitempty" toon:"orderby,omitempty"` // Full-text query applied to incident title and description. - Query string `json:"query,omitempty"` + Query string `json:"query,omitempty" toon:"query,omitempty"` // Filter by responder person IDs. At most 100 entries. - ResponderIDs []int64 `json:"responder_ids,omitempty"` + ResponderIDs []int64 `json:"responder_ids,omitempty" toon:"responder_ids,omitempty"` // Lower bound (inclusive) on time-to-acknowledge, in seconds. - SecondsToAckFrom int64 `json:"seconds_to_ack_from,omitempty"` + SecondsToAckFrom int64 `json:"seconds_to_ack_from,omitempty" toon:"seconds_to_ack_from,omitempty"` // Upper bound (exclusive) on time-to-acknowledge, in seconds. Must be greater than `seconds_to_ack_from` when both are set. - SecondsToAckTo int64 `json:"seconds_to_ack_to,omitempty"` + SecondsToAckTo int64 `json:"seconds_to_ack_to,omitempty" toon:"seconds_to_ack_to,omitempty"` // Lower bound (inclusive) on time-to-close, in seconds. - SecondsToCloseFrom int64 `json:"seconds_to_close_from,omitempty"` + SecondsToCloseFrom int64 `json:"seconds_to_close_from,omitempty" toon:"seconds_to_close_from,omitempty"` // Upper bound (exclusive) on time-to-close, in seconds. Must be greater than `seconds_to_close_from` when both are set. - SecondsToCloseTo int64 `json:"seconds_to_close_to,omitempty"` + SecondsToCloseTo int64 `json:"seconds_to_close_to,omitempty" toon:"seconds_to_close_to,omitempty"` // Filter by severity. At most 3 entries. - Severities []string `json:"severities,omitempty"` + Severities []string `json:"severities,omitempty" toon:"severities,omitempty"` // When true, metrics are split into `work`/`sleep`/`off` hour buckets. - SplitHours bool `json:"split_hours,omitempty"` + SplitHours bool `json:"split_hours,omitempty" toon:"split_hours,omitempty"` // Start time, Unix seconds. Must be greater than 0. - StartTime int64 `json:"start_time,omitempty"` + StartTime int64 `json:"start_time,omitempty" toon:"start_time,omitempty"` // Filter by team IDs. At most 100 entries. - TeamIDs []int64 `json:"team_ids,omitempty"` + TeamIDs []int64 `json:"team_ids,omitempty" toon:"team_ids,omitempty"` // IANA time zone name used to interpret the time range (e.g. `Asia/Shanghai`). Defaults to the account time zone. - TimeZone string `json:"time_zone,omitempty"` + TimeZone string `json:"time_zone,omitempty" toon:"time_zone,omitempty"` } // InsightTopkAlertByLabelRequest is generated from the Flashduty OpenAPI schema. type InsightTopkAlertByLabelRequest struct { // Aggregate metrics into time buckets. When set, the time range must cover at least 24 hours; `day` additionally caps the range at 31 days. - AggregateUnit string `json:"aggregate_unit,omitempty"` + AggregateUnit string `json:"aggregate_unit,omitempty" toon:"aggregate_unit,omitempty"` // Sort ascending when `true`, descending otherwise. - Asc bool `json:"asc,omitempty"` + Asc bool `json:"asc,omitempty" toon:"asc,omitempty"` // Filter by channel IDs. At most 100 entries. - ChannelIDs []int64 `json:"channel_ids,omitempty"` + ChannelIDs []int64 `json:"channel_ids,omitempty" toon:"channel_ids,omitempty"` // Strip HTML markup from the description column when exporting. - DescriptionHTMLToText bool `json:"description_html_to_text,omitempty"` + DescriptionHTMLToText bool `json:"description_html_to_text,omitempty" toon:"description_html_to_text,omitempty"` // End time, Unix seconds. Must be greater than `start_time`. - EndTime int64 `json:"end_time,omitempty"` + EndTime int64 `json:"end_time,omitempty" toon:"end_time,omitempty"` // Subset of CSV column keys to include in the export. At most 50 entries. Only used by the export endpoints. - ExportFields []string `json:"export_fields,omitempty"` + ExportFields []string `json:"export_fields,omitempty" toon:"export_fields,omitempty"` // Custom-field filters (exact match). - Fields map[string]any `json:"fields,omitempty"` + Fields map[string]any `json:"fields,omitempty" toon:"fields,omitempty"` // Filter by incident IDs (MongoDB ObjectIDs). At most 100 entries. - IncidentIDs []string `json:"incident_ids,omitempty"` + IncidentIDs []string `json:"incident_ids,omitempty" toon:"incident_ids,omitempty"` // Restrict results to teams the caller belongs to. When true and the caller has no teams, the result set is empty. - IsMyTeam bool `json:"is_my_team,omitempty"` + IsMyTeam bool `json:"is_my_team,omitempty" toon:"is_my_team,omitempty"` // Number of top entries to return, between 1 and 100. - K int64 `json:"k,omitempty"` + K int64 `json:"k,omitempty" toon:"k,omitempty"` // Dimension to aggregate by. - Label string `json:"label,omitempty"` + Label string `json:"label,omitempty" toon:"label,omitempty"` // Label filters (exact match). - Labels map[string]string `json:"labels,omitempty"` + Labels map[string]string `json:"labels,omitempty" toon:"labels,omitempty"` // Field to sort results by. - Orderby string `json:"orderby,omitempty"` + Orderby string `json:"orderby,omitempty" toon:"orderby,omitempty"` // Full-text query applied to incident title and description. - Query string `json:"query,omitempty"` + Query string `json:"query,omitempty" toon:"query,omitempty"` // Filter by responder person IDs. At most 100 entries. - ResponderIDs []int64 `json:"responder_ids,omitempty"` + ResponderIDs []int64 `json:"responder_ids,omitempty" toon:"responder_ids,omitempty"` // Lower bound (inclusive) on time-to-acknowledge, in seconds. - SecondsToAckFrom int64 `json:"seconds_to_ack_from,omitempty"` + SecondsToAckFrom int64 `json:"seconds_to_ack_from,omitempty" toon:"seconds_to_ack_from,omitempty"` // Upper bound (exclusive) on time-to-acknowledge, in seconds. Must be greater than `seconds_to_ack_from` when both are set. - SecondsToAckTo int64 `json:"seconds_to_ack_to,omitempty"` + SecondsToAckTo int64 `json:"seconds_to_ack_to,omitempty" toon:"seconds_to_ack_to,omitempty"` // Lower bound (inclusive) on time-to-close, in seconds. - SecondsToCloseFrom int64 `json:"seconds_to_close_from,omitempty"` + SecondsToCloseFrom int64 `json:"seconds_to_close_from,omitempty" toon:"seconds_to_close_from,omitempty"` // Upper bound (exclusive) on time-to-close, in seconds. Must be greater than `seconds_to_close_from` when both are set. - SecondsToCloseTo int64 `json:"seconds_to_close_to,omitempty"` + SecondsToCloseTo int64 `json:"seconds_to_close_to,omitempty" toon:"seconds_to_close_to,omitempty"` // Filter by severity. At most 3 entries. - Severities []string `json:"severities,omitempty"` + Severities []string `json:"severities,omitempty" toon:"severities,omitempty"` // When true, metrics are split into `work`/`sleep`/`off` hour buckets. - SplitHours bool `json:"split_hours,omitempty"` + SplitHours bool `json:"split_hours,omitempty" toon:"split_hours,omitempty"` // Start time, Unix seconds. Must be greater than 0. - StartTime int64 `json:"start_time,omitempty"` + StartTime int64 `json:"start_time,omitempty" toon:"start_time,omitempty"` // Filter by team IDs. At most 100 entries. - TeamIDs []int64 `json:"team_ids,omitempty"` + TeamIDs []int64 `json:"team_ids,omitempty" toon:"team_ids,omitempty"` // IANA time zone name used to interpret the time range (e.g. `Asia/Shanghai`). Defaults to the account time zone. - TimeZone string `json:"time_zone,omitempty"` + TimeZone string `json:"time_zone,omitempty" toon:"time_zone,omitempty"` } // InviteMemberItem is generated from the Flashduty OpenAPI schema. type InviteMemberItem struct { // Country code - CountryCode string `json:"country_code,omitempty"` + CountryCode string `json:"country_code,omitempty" toon:"country_code,omitempty"` // Email address - Email string `json:"email,omitempty"` + Email string `json:"email,omitempty" toon:"email,omitempty"` // Locale - Locale string `json:"locale,omitempty"` + Locale string `json:"locale,omitempty" toon:"locale,omitempty"` // Display name - MemberName string `json:"member_name,omitempty"` + MemberName string `json:"member_name,omitempty" toon:"member_name,omitempty"` // Phone number - Phone string `json:"phone,omitempty"` + Phone string `json:"phone,omitempty" toon:"phone,omitempty"` // External reference ID - RefID string `json:"ref_id,omitempty"` + RefID string `json:"ref_id,omitempty" toon:"ref_id,omitempty"` // Role IDs to assign - RoleIDs []int64 `json:"role_ids,omitempty"` + RoleIDs []int64 `json:"role_ids,omitempty" toon:"role_ids,omitempty"` // Time zone - TimeZone string `json:"time_zone,omitempty"` + TimeZone string `json:"time_zone,omitempty" toon:"time_zone,omitempty"` } // LinkItem is generated from the Flashduty OpenAPI schema. type LinkItem struct { // Rendered URL for the link. - Endpoint string `json:"endpoint,omitempty"` + Endpoint string `json:"endpoint,omitempty" toon:"endpoint,omitempty"` // Display name of the link. - Name string `json:"name,omitempty"` + Name string `json:"name,omitempty" toon:"name,omitempty"` // How the link should be opened. - OpenType string `json:"open_type,omitempty"` + OpenType string `json:"open_type,omitempty" toon:"open_type,omitempty"` } // ListChangeRequest is generated from the Flashduty OpenAPI schema. type ListChangeRequest struct { ListOptions // Sort in ascending order when true. - Asc bool `json:"asc,omitempty"` + Asc bool `json:"asc,omitempty" toon:"asc,omitempty"` // Filter by collaboration channel IDs. - ChannelIDs []int64 `json:"channel_ids,omitempty"` + ChannelIDs []int64 `json:"channel_ids,omitempty" toon:"channel_ids,omitempty"` // Unix timestamp in seconds for the end of the query window. - EndTime int64 `json:"end_time,omitempty"` + EndTime int64 `json:"end_time,omitempty" toon:"end_time,omitempty"` // Include the underlying change events for each change when true. - IncludeEvents bool `json:"include_events,omitempty"` + IncludeEvents bool `json:"include_events,omitempty" toon:"include_events,omitempty"` // Filter by reporting integration IDs. - IntegrationIDs []int64 `json:"integration_ids,omitempty"` + IntegrationIDs []int64 `json:"integration_ids,omitempty" toon:"integration_ids,omitempty"` // Field to sort the result by. - Orderby string `json:"orderby,omitempty"` + Orderby string `json:"orderby,omitempty" toon:"orderby,omitempty"` // Free-text or regular-expression search over change fields. - Query string `json:"query,omitempty"` + Query string `json:"query,omitempty" toon:"query,omitempty"` // Unix timestamp in seconds for the start of the query window. - StartTime int64 `json:"start_time,omitempty"` + StartTime int64 `json:"start_time,omitempty" toon:"start_time,omitempty"` } // ListChangeResponse is generated from the Flashduty OpenAPI schema. type ListChangeResponse struct { // Whether more pages are available after this one. - HasNextPage bool `json:"has_next_page,omitempty"` + HasNextPage bool `json:"has_next_page,omitempty" toon:"has_next_page,omitempty"` // Changes on the current page. - Items []ChangeItem `json:"items,omitempty"` + Items []ChangeItem `json:"items,omitempty" toon:"items,omitempty"` // Total number of matching changes. - Total int64 `json:"total,omitempty"` + Total int64 `json:"total,omitempty" toon:"total,omitempty"` } // ListChannelsRequest is generated from the Flashduty OpenAPI schema. type ListChannelsRequest struct { ListOptions // When true, sort ascending. - Asc bool `json:"asc,omitempty"` + Asc bool `json:"asc,omitempty" toon:"asc,omitempty"` // Filter by explicit channel IDs. - ChannelIDs []int64 `json:"channel_ids,omitempty"` + ChannelIDs []int64 `json:"channel_ids,omitempty" toon:"channel_ids,omitempty"` // Exact-match filter on channel name. Takes priority over `query` for name filtering. - ChannelName string `json:"channel_name,omitempty"` + ChannelName string `json:"channel_name,omitempty" toon:"channel_name,omitempty"` // When true, return only brief fields (`channel_id`, `channel_name`, `description`, `status`). - IsBrief bool `json:"is_brief,omitempty"` + IsBrief bool `json:"is_brief,omitempty" toon:"is_brief,omitempty"` // When true, return only channels the caller manages. - IsMyManaged bool `json:"is_my_managed,omitempty"` + IsMyManaged bool `json:"is_my_managed,omitempty" toon:"is_my_managed,omitempty"` // When true, return only channels the caller has starred. Mutually exclusive with `is_my_team`. - IsMyStarred bool `json:"is_my_starred,omitempty"` + IsMyStarred bool `json:"is_my_starred,omitempty" toon:"is_my_starred,omitempty"` // When true, return channels owned by the caller's teams. Mutually exclusive with `is_my_starred`. - IsMyTeam bool `json:"is_my_team,omitempty"` + IsMyTeam bool `json:"is_my_team,omitempty" toon:"is_my_team,omitempty"` // Field used to order results. - Orderby string `json:"orderby,omitempty"` + Orderby string `json:"orderby,omitempty" toon:"orderby,omitempty"` // Free-text query against channel name/description. - Query string `json:"query,omitempty"` + Query string `json:"query,omitempty" toon:"query,omitempty"` // Filter by team IDs. - TeamIDs []int64 `json:"team_ids,omitempty"` + TeamIDs []int64 `json:"team_ids,omitempty" toon:"team_ids,omitempty"` } // ListChannelsResponse is generated from the Flashduty OpenAPI schema. type ListChannelsResponse struct { // Whether more pages are available. - HasNextPage bool `json:"has_next_page,omitempty"` - Items []ChannelItem `json:"items,omitempty"` + HasNextPage bool `json:"has_next_page,omitempty" toon:"has_next_page,omitempty"` + Items []ChannelItem `json:"items,omitempty" toon:"items,omitempty"` // Total matching channels. - Total int64 `json:"total,omitempty"` + Total int64 `json:"total,omitempty" toon:"total,omitempty"` } // ListDropRulesResponse is generated from the Flashduty OpenAPI schema. type ListDropRulesResponse struct { - Items []UnsubscribeRuleItem `json:"items,omitempty"` + Items []UnsubscribeRuleItem `json:"items,omitempty" toon:"items,omitempty"` } // ListEscalationRulesResponse is generated from the Flashduty OpenAPI schema. type ListEscalationRulesResponse struct { - Items []EscalateRuleItem `json:"items,omitempty"` + Items []EscalateRuleItem `json:"items,omitempty" toon:"items,omitempty"` } // ListIncidentAlertsRequest is generated from the Flashduty OpenAPI schema. type ListIncidentAlertsRequest struct { ListOptions // Incident ID (MongoDB ObjectID). - IncidentID string `json:"incident_id,omitempty"` + IncidentID string `json:"incident_id,omitempty" toon:"incident_id,omitempty"` // When true, include raw alert events in each alert item. - IncludeEvents bool `json:"include_events,omitempty"` + IncludeEvents bool `json:"include_events,omitempty" toon:"include_events,omitempty"` // When true return only active alerts (Critical/Warning/Info); when false return only recovered alerts (Ok). Omit to include all. - IsActive *bool `json:"is_active,omitempty"` + IsActive *bool `json:"is_active,omitempty" toon:"is_active,omitempty"` } // ListIncidentAlertsResponse is generated from the Flashduty OpenAPI schema. type ListIncidentAlertsResponse struct { // Alert list. - Items []AlertInfo `json:"items,omitempty"` + Items []AlertInfo `json:"items,omitempty" toon:"items,omitempty"` // Total matching alerts. - Total int64 `json:"total,omitempty"` + Total int64 `json:"total,omitempty" toon:"total,omitempty"` } // ListIncidentFeedRequest is generated from the Flashduty OpenAPI schema. type ListIncidentFeedRequest struct { ListOptions // Ascending chronological order when true. - Asc bool `json:"asc,omitempty"` + Asc bool `json:"asc,omitempty" toon:"asc,omitempty"` // Incident ID (MongoDB ObjectID). - IncidentID string `json:"incident_id,omitempty"` + IncidentID string `json:"incident_id,omitempty" toon:"incident_id,omitempty"` // Optional filter restricting the returned entries to specific types. - Types []IncidentFeedType `json:"types,omitempty"` + Types []IncidentFeedType `json:"types,omitempty" toon:"types,omitempty"` } // ListIncidentFeedResponse is generated from the Flashduty OpenAPI schema. type ListIncidentFeedResponse struct { // True when more entries are available. - HasNextPage bool `json:"has_next_page,omitempty"` + HasNextPage bool `json:"has_next_page,omitempty" toon:"has_next_page,omitempty"` // Timeline entries for the current page. - Items []IncidentFeedItem `json:"items,omitempty"` + Items []IncidentFeedItem `json:"items,omitempty" toon:"items,omitempty"` } // ListIncidentsByIDsRequest is generated from the Flashduty OpenAPI schema. type ListIncidentsByIDsRequest struct { // Incident IDs to fetch. - IncidentIDs []string `json:"incident_ids,omitempty"` + IncidentIDs []string `json:"incident_ids,omitempty" toon:"incident_ids,omitempty"` } // ListIncidentsRequest is generated from the Flashduty OpenAPI schema. type ListIncidentsRequest struct { ListOptions // Acknowledger member IDs. - AckerIDs []int64 `json:"acker_ids,omitempty"` + AckerIDs []int64 `json:"acker_ids,omitempty" toon:"acker_ids,omitempty"` // Ascending order when true. - Asc bool `json:"asc,omitempty"` + Asc bool `json:"asc,omitempty" toon:"asc,omitempty"` // Channel IDs to filter by. Use 0 for standalone (global) incidents. - ChannelIDs []int64 `json:"channel_ids,omitempty"` + ChannelIDs []int64 `json:"channel_ids,omitempty" toon:"channel_ids,omitempty"` // Closer member IDs. Use 0 for automatically closed incidents. - CloserIDs []int64 `json:"closer_ids,omitempty"` + CloserIDs []int64 `json:"closer_ids,omitempty" toon:"closer_ids,omitempty"` // Creator member IDs. Use 0 for automatically created incidents. - CreatorIDs []int64 `json:"creator_ids,omitempty"` + CreatorIDs []int64 `json:"creator_ids,omitempty" toon:"creator_ids,omitempty"` // Window end, Unix seconds. Must be greater than `start_time` and within 31 days. - EndTime int64 `json:"end_time,omitempty"` + EndTime int64 `json:"end_time,omitempty" toon:"end_time,omitempty"` // When true, include only incidents that were ever silenced. - EverMuted bool `json:"ever_muted,omitempty"` + EverMuted bool `json:"ever_muted,omitempty" toon:"ever_muted,omitempty"` // Restrict to the given incident IDs. - IncidentIDs []string `json:"incident_ids,omitempty"` + IncidentIDs []string `json:"incident_ids,omitempty" toon:"incident_ids,omitempty"` // Comma-separated list of severities (`Critical,Warning,Info`). - IncidentSeverity string `json:"incident_severity,omitempty"` + IncidentSeverity string `json:"incident_severity,omitempty" toon:"incident_severity,omitempty"` // When true, restrict to incidents in channels the user personally owns. - IsMyChannel bool `json:"is_my_channel,omitempty"` + IsMyChannel bool `json:"is_my_channel,omitempty" toon:"is_my_channel,omitempty"` // When true, restrict to incidents in channels owned by the user's teams. - IsMyTeam bool `json:"is_my_team,omitempty"` + IsMyTeam bool `json:"is_my_team,omitempty" toon:"is_my_team,omitempty"` // When true, include only outlier (rare) incidents. - IsRare bool `json:"is_rare,omitempty"` + IsRare bool `json:"is_rare,omitempty" toon:"is_rare,omitempty"` // When true, include only snoozed incidents. - IsSnoozed bool `json:"is_snoozed,omitempty"` + IsSnoozed bool `json:"is_snoozed,omitempty" toon:"is_snoozed,omitempty"` // Restrict to the given short display identifiers. - Nums []string `json:"nums,omitempty"` + Nums []string `json:"nums,omitempty" toon:"nums,omitempty"` // Comma-separated list of progress states to match (e.g. `Triggered,Processing`). - Progress string `json:"progress,omitempty"` + Progress string `json:"progress,omitempty" toon:"progress,omitempty"` // Full-text search query. - Query string `json:"query,omitempty"` + Query string `json:"query,omitempty" toon:"query,omitempty"` // Responder member IDs. - ResponderIDs []int64 `json:"responder_ids,omitempty"` + ResponderIDs []int64 `json:"responder_ids,omitempty" toon:"responder_ids,omitempty"` // Window start, Unix seconds. - StartTime int64 `json:"start_time,omitempty"` + StartTime int64 `json:"start_time,omitempty" toon:"start_time,omitempty"` // Team IDs; resolved to channels via channel ownership. - TeamIDs []int64 `json:"team_ids,omitempty"` + TeamIDs []int64 `json:"team_ids,omitempty" toon:"team_ids,omitempty"` } // ListInhibitRulesResponse is generated from the Flashduty OpenAPI schema. type ListInhibitRulesResponse struct { - Items []InhibitRuleItem `json:"items,omitempty"` + Items []InhibitRuleItem `json:"items,omitempty" toon:"items,omitempty"` } // ListPastIncidentsRequest is generated from the Flashduty OpenAPI schema. type ListPastIncidentsRequest struct { // Reference incident ID (MongoDB ObjectID). - IncidentID string `json:"incident_id,omitempty"` + IncidentID string `json:"incident_id,omitempty" toon:"incident_id,omitempty"` // Maximum number of similar incidents to return. - Limit *int64 `json:"limit,omitempty"` + Limit *int64 `json:"limit,omitempty" toon:"limit,omitempty"` } // ListPastIncidentsResponse is generated from the Flashduty OpenAPI schema. type ListPastIncidentsResponse struct { // Similar past incidents with similarity scores. - Items []PastIncidentItem `json:"items,omitempty"` + Items []PastIncidentItem `json:"items,omitempty" toon:"items,omitempty"` } // ListPostMortemsRequest is generated from the Flashduty OpenAPI schema. type ListPostMortemsRequest struct { ListOptions // Ascending order when true. - Asc bool `json:"asc,omitempty"` + Asc bool `json:"asc,omitempty" toon:"asc,omitempty"` // Channel IDs to restrict the query to. - ChannelIDs []int64 `json:"channel_ids,omitempty"` + ChannelIDs []int64 `json:"channel_ids,omitempty" toon:"channel_ids,omitempty"` // Filter by creation time: upper bound in seconds. - CreatedAtEndSeconds int64 `json:"created_at_end_seconds,omitempty"` + CreatedAtEndSeconds int64 `json:"created_at_end_seconds,omitempty" toon:"created_at_end_seconds,omitempty"` // Filter by creation time: lower bound in seconds. - CreatedAtStartSeconds int64 `json:"created_at_start_seconds,omitempty"` + CreatedAtStartSeconds int64 `json:"created_at_start_seconds,omitempty" toon:"created_at_start_seconds,omitempty"` // Field used to order results. - OrderBy string `json:"order_by,omitempty"` + OrderBy string `json:"order_by,omitempty" toon:"order_by,omitempty"` // Report status. Defaults to `published` on the server when omitted. - Status string `json:"status,omitempty"` + Status string `json:"status,omitempty" toon:"status,omitempty"` // Team IDs to restrict the query to. - TeamIDs []int64 `json:"team_ids,omitempty"` + TeamIDs []int64 `json:"team_ids,omitempty" toon:"team_ids,omitempty"` } // ListPostMortemsResponse is generated from the Flashduty OpenAPI schema. type ListPostMortemsResponse struct { // True when more results are available beyond this page. - HasNextPage bool `json:"has_next_page,omitempty"` + HasNextPage bool `json:"has_next_page,omitempty" toon:"has_next_page,omitempty"` // Post-mortem metadata for the current page. - Items []PostMortemMeta `json:"items,omitempty"` + Items []PostMortemMeta `json:"items,omitempty" toon:"items,omitempty"` // Cursor for forward pagination. - SearchAfterCtx string `json:"search_after_ctx,omitempty"` + SearchAfterCtx string `json:"search_after_ctx,omitempty" toon:"search_after_ctx,omitempty"` // Total matching reports. - Total int64 `json:"total,omitempty"` + Total int64 `json:"total,omitempty" toon:"total,omitempty"` } // ListRoutesRequest is generated from the Flashduty OpenAPI schema. type ListRoutesRequest struct { // Integration IDs to fetch routing rules for. - IntegrationIDs []int64 `json:"integration_ids,omitempty"` + IntegrationIDs []int64 `json:"integration_ids,omitempty" toon:"integration_ids,omitempty"` } // ListRoutesResponse is generated from the Flashduty OpenAPI schema. type ListRoutesResponse struct { // Routing rules of the requested integrations. Integrations without a configured rule are omitted. - Items []RouteItem `json:"items,omitempty"` + Items []RouteItem `json:"items,omitempty" toon:"items,omitempty"` } // ListSilenceRulesResponse is generated from the Flashduty OpenAPI schema. type ListSilenceRulesResponse struct { - Items []SilenceRuleItem `json:"items,omitempty"` + Items []SilenceRuleItem `json:"items,omitempty" toon:"items,omitempty"` } // ListStatusPageResponse is generated from the Flashduty OpenAPI schema. type ListStatusPageResponse struct { // Status pages owned by the account. - Items []StatusPageItem `json:"items,omitempty"` + Items []StatusPageItem `json:"items,omitempty" toon:"items,omitempty"` } // ListWarRoomEnabledResponse is generated from the Flashduty OpenAPI schema. type ListWarRoomEnabledResponse struct { // IM integrations with the war-room feature enabled. - Items []WarRoomDataSourceItem `json:"items,omitempty"` + Items []WarRoomDataSourceItem `json:"items,omitempty" toon:"items,omitempty"` } // ListWarRoomsRequest is generated from the Flashduty OpenAPI schema. type ListWarRoomsRequest struct { // Incident ID (MongoDB ObjectID). - IncidentID string `json:"incident_id,omitempty"` + IncidentID string `json:"incident_id,omitempty" toon:"incident_id,omitempty"` // Optional filter: only return war rooms for this IM integration. - IntegrationID int64 `json:"integration_id,omitempty"` + IntegrationID int64 `json:"integration_id,omitempty" toon:"integration_id,omitempty"` } // ListWarRoomsResponse is generated from the Flashduty OpenAPI schema. type ListWarRoomsResponse struct { // War room records. - Items []WarRoomItem `json:"items,omitempty"` + Items []WarRoomItem `json:"items,omitempty" toon:"items,omitempty"` } // ListWebhookHistoryRequest is generated from the Flashduty OpenAPI schema. type ListWebhookHistoryRequest struct { // Ascending order by `event_time` when true; otherwise descending. - Asc bool `json:"asc,omitempty"` + Asc bool `json:"asc,omitempty" toon:"asc,omitempty"` // Window end time in Unix milliseconds. Must be greater than `start_time`. - EndTime int64 `json:"end_time,omitempty"` + EndTime int64 `json:"end_time,omitempty" toon:"end_time,omitempty"` // Filter by event type values. - EventTypes []string `json:"event_types,omitempty"` + EventTypes []string `json:"event_types,omitempty" toon:"event_types,omitempty"` // Filter by integration ID. - IntegrationID int64 `json:"integration_id,omitempty"` + IntegrationID int64 `json:"integration_id,omitempty" toon:"integration_id,omitempty"` // Page size. - Limit int64 `json:"limit,omitempty"` + Limit int64 `json:"limit,omitempty" toon:"limit,omitempty"` // Sort field. Currently only `event_time` is supported. - Orderby string `json:"orderby,omitempty"` + Orderby string `json:"orderby,omitempty" toon:"orderby,omitempty"` // Reference ID filter (incident or alert ID). - RefID string `json:"ref_id,omitempty"` + RefID string `json:"ref_id,omitempty" toon:"ref_id,omitempty"` // Opaque cursor returned by a previous call for fetching the next page. - SearchAfterCtx string `json:"search_after_ctx,omitempty"` + SearchAfterCtx string `json:"search_after_ctx,omitempty" toon:"search_after_ctx,omitempty"` // Window start time in Unix milliseconds. - StartTime int64 `json:"start_time,omitempty"` + StartTime int64 `json:"start_time,omitempty" toon:"start_time,omitempty"` // Filter by delivery status. - Status string `json:"status,omitempty"` + Status string `json:"status,omitempty" toon:"status,omitempty"` } // ListWebhookHistoryResponse is generated from the Flashduty OpenAPI schema. type ListWebhookHistoryResponse struct { - Items []WebhookHistoryItem `json:"items,omitempty"` + Items []WebhookHistoryItem `json:"items,omitempty" toon:"items,omitempty"` // Cursor to pass as `search_after_ctx` to fetch the next page. Empty when no further pages are available. - SearchAfterCtx string `json:"search_after_ctx,omitempty"` + SearchAfterCtx string `json:"search_after_ctx,omitempty" toon:"search_after_ctx,omitempty"` // Total number of matching records. - Total int64 `json:"total,omitempty"` + Total int64 `json:"total,omitempty" toon:"total,omitempty"` } // McpServerCreateRequest is generated from the Flashduty OpenAPI schema. type McpServerCreateRequest struct { // Command-line arguments for the stdio executable. - Args []string `json:"args,omitempty"` + Args []string `json:"args,omitempty" toon:"args,omitempty"` // Credential model; defaults to shared. - AuthMode string `json:"auth_mode,omitempty"` + AuthMode string `json:"auth_mode,omitempty" toon:"auth_mode,omitempty"` // Per-call timeout in seconds. - CallTimeout int64 `json:"call_timeout,omitempty"` + CallTimeout int64 `json:"call_timeout,omitempty" toon:"call_timeout,omitempty"` // Executable to launch for stdio transport. - Command string `json:"command,omitempty"` + Command string `json:"command,omitempty" toon:"command,omitempty"` // Connection timeout in seconds. - ConnectTimeout int64 `json:"connect_timeout,omitempty"` + ConnectTimeout int64 `json:"connect_timeout,omitempty" toon:"connect_timeout,omitempty"` // What this MCP server provides. - Description string `json:"description,omitempty"` + Description string `json:"description,omitempty" toon:"description,omitempty"` // Environment variables for the stdio process. - Env map[string]string `json:"env,omitempty"` + Env map[string]string `json:"env,omitempty" toon:"env,omitempty"` // HTTP headers sent to the remote endpoint. - Headers map[string]string `json:"headers,omitempty"` + Headers map[string]string `json:"headers,omitempty" toon:"headers,omitempty"` // OAuth metadata JSON; reserved for OAuth-based auth. - OauthMetadata string `json:"oauth_metadata,omitempty"` + OauthMetadata string `json:"oauth_metadata,omitempty" toon:"oauth_metadata,omitempty"` // JSON schema of the per-user secret; required when auth_mode is per_user_secret. - SecretSchema string `json:"secret_schema,omitempty"` + SecretSchema string `json:"secret_schema,omitempty" toon:"secret_schema,omitempty"` // Display name of the server. - ServerName string `json:"server_name,omitempty"` + ServerName string `json:"server_name,omitempty" toon:"server_name,omitempty"` // Initial lifecycle state of the server. - Status string `json:"status,omitempty"` + Status string `json:"status,omitempty" toon:"status,omitempty"` // Owning team for the new server; 0 for account scope. - TeamID int64 `json:"team_id,omitempty"` + TeamID int64 `json:"team_id,omitempty" toon:"team_id,omitempty"` // Transport used to reach the server. - Transport string `json:"transport,omitempty"` + Transport string `json:"transport,omitempty" toon:"transport,omitempty"` // Endpoint URL for sse or streamable-http transport. - URL string `json:"url,omitempty"` + URL string `json:"url,omitempty" toon:"url,omitempty"` } // McpServerDeleteRequest is generated from the Flashduty OpenAPI schema. type McpServerDeleteRequest struct { // Identifier of the server to delete. - ServerID string `json:"server_id,omitempty"` + ServerID string `json:"server_id,omitempty" toon:"server_id,omitempty"` } // McpServerGetRequest is generated from the Flashduty OpenAPI schema. type McpServerGetRequest struct { // Identifier of the server to fetch. - ServerID string `json:"server_id,omitempty"` + ServerID string `json:"server_id,omitempty" toon:"server_id,omitempty"` } // McpServerItem is generated from the Flashduty OpenAPI schema. type McpServerItem struct { // Owning account. - AccountID int64 `json:"account_id,omitempty"` + AccountID int64 `json:"account_id,omitempty" toon:"account_id,omitempty"` // LLM-generated description, preferred over description when present. - AIDescription string `json:"ai_description,omitempty"` + AIDescription string `json:"ai_description,omitempty" toon:"ai_description,omitempty"` // Command-line arguments for the stdio executable. - Args []string `json:"args,omitempty"` + Args []string `json:"args,omitempty" toon:"args,omitempty"` // Credential model: shared, per_user_secret, or per_user_oauth. - AuthMode string `json:"auth_mode,omitempty"` + AuthMode string `json:"auth_mode,omitempty" toon:"auth_mode,omitempty"` // Per-call timeout in seconds. - CallTimeout int64 `json:"call_timeout,omitempty"` + CallTimeout int64 `json:"call_timeout,omitempty" toon:"call_timeout,omitempty"` // Whether the calling member may edit or delete this resource. - CanEdit bool `json:"can_edit,omitempty"` + CanEdit bool `json:"can_edit,omitempty" toon:"can_edit,omitempty"` // Executable launched for stdio transport. - Command string `json:"command,omitempty"` + Command string `json:"command,omitempty" toon:"command,omitempty"` // Connection timeout in seconds. - ConnectTimeout int64 `json:"connect_timeout,omitempty"` + ConnectTimeout int64 `json:"connect_timeout,omitempty" toon:"connect_timeout,omitempty"` // Creation time as a Unix timestamp in milliseconds. - CreatedAt TimestampMilli `json:"created_at,omitempty"` + CreatedAt TimestampMilli `json:"created_at,omitempty" toon:"created_at,omitempty"` // Member who created this resource. - CreatedBy int64 `json:"created_by,omitempty"` + CreatedBy int64 `json:"created_by,omitempty" toon:"created_by,omitempty"` // What this MCP server provides. - Description string `json:"description,omitempty"` + Description string `json:"description,omitempty" toon:"description,omitempty"` // Environment variables passed to the stdio process. - Env map[string]string `json:"env,omitempty"` + Env map[string]string `json:"env,omitempty" toon:"env,omitempty"` // HTTP headers sent to the remote endpoint; secret values are masked. - Headers map[string]string `json:"headers,omitempty"` + Headers map[string]string `json:"headers,omitempty" toon:"headers,omitempty"` // Tool-probe failure message; present when the live probe failed. - ListError string `json:"list_error,omitempty"` + ListError string `json:"list_error,omitempty" toon:"list_error,omitempty"` // OAuth metadata JSON. - OauthMetadata string `json:"oauth_metadata,omitempty"` + OauthMetadata string `json:"oauth_metadata,omitempty" toon:"oauth_metadata,omitempty"` // Outbound proxy URL used to reach the server. - ProxyURL string `json:"proxy_url,omitempty"` + ProxyURL string `json:"proxy_url,omitempty" toon:"proxy_url,omitempty"` // JSON schema of the per-user secret. - SecretSchema string `json:"secret_schema,omitempty"` + SecretSchema string `json:"secret_schema,omitempty" toon:"secret_schema,omitempty"` // Unique identifier of the MCP server. - ServerID string `json:"server_id,omitempty"` + ServerID string `json:"server_id,omitempty" toon:"server_id,omitempty"` // Display name of the MCP server. - ServerName string `json:"server_name,omitempty"` + ServerName string `json:"server_name,omitempty" toon:"server_name,omitempty"` // Whether the server is active and usable by agents. - Status string `json:"status,omitempty"` + Status string `json:"status,omitempty" toon:"status,omitempty"` // Owning team; 0 means account scope. - TeamID int64 `json:"team_id,omitempty"` + TeamID int64 `json:"team_id,omitempty" toon:"team_id,omitempty"` // Number of tools discovered on the server. - ToolCount int64 `json:"tool_count,omitempty"` + ToolCount int64 `json:"tool_count,omitempty" toon:"tool_count,omitempty"` // Live tool catalogue; populated only by get and test. - Tools []McpToolInfo `json:"tools,omitempty"` + Tools []McpToolInfo `json:"tools,omitempty" toon:"tools,omitempty"` // Transport used to reach the server. - Transport string `json:"transport,omitempty"` + Transport string `json:"transport,omitempty" toon:"transport,omitempty"` // Last-update time as a Unix timestamp in milliseconds. - UpdatedAt TimestampMilli `json:"updated_at,omitempty"` + UpdatedAt TimestampMilli `json:"updated_at,omitempty" toon:"updated_at,omitempty"` // Endpoint URL for sse or streamable-http transport. - URL string `json:"url,omitempty"` + URL string `json:"url,omitempty" toon:"url,omitempty"` } // McpServerListRequest is generated from the Flashduty OpenAPI schema. type McpServerListRequest struct { ListOptions // Include account-scoped rows alongside team-scoped ones; defaults to true. - IncludeAccount bool `json:"include_account,omitempty"` + IncludeAccount bool `json:"include_account,omitempty" toon:"include_account,omitempty"` // Restrict results to resources owned by these teams; intersected with the caller's visible set. - TeamIDs []int64 `json:"team_ids,omitempty"` + TeamIDs []int64 `json:"team_ids,omitempty" toon:"team_ids,omitempty"` } // McpServerListResponse is generated from the Flashduty OpenAPI schema. type McpServerListResponse struct { // MCP servers on the current page. - Servers []McpServerItem `json:"servers,omitempty"` + Servers []McpServerItem `json:"servers,omitempty" toon:"servers,omitempty"` // Total number of servers matching the filters. - Total int64 `json:"total,omitempty"` + Total int64 `json:"total,omitempty" toon:"total,omitempty"` } // McpServerStatusRequest is generated from the Flashduty OpenAPI schema. type McpServerStatusRequest struct { // Identifier of the target server. - ServerID string `json:"server_id,omitempty"` + ServerID string `json:"server_id,omitempty" toon:"server_id,omitempty"` } // McpServerUpdateRequest is generated from the Flashduty OpenAPI schema. type McpServerUpdateRequest struct { // New stdio arguments. - Args []string `json:"args,omitempty"` + Args []string `json:"args,omitempty" toon:"args,omitempty"` // New credential model. - AuthMode string `json:"auth_mode,omitempty"` + AuthMode string `json:"auth_mode,omitempty" toon:"auth_mode,omitempty"` // New per-call timeout in seconds. - CallTimeout int64 `json:"call_timeout,omitempty"` + CallTimeout int64 `json:"call_timeout,omitempty" toon:"call_timeout,omitempty"` // New stdio executable. - Command string `json:"command,omitempty"` + Command string `json:"command,omitempty" toon:"command,omitempty"` // New connection timeout in seconds. - ConnectTimeout int64 `json:"connect_timeout,omitempty"` + ConnectTimeout int64 `json:"connect_timeout,omitempty" toon:"connect_timeout,omitempty"` // New description. - Description string `json:"description,omitempty"` + Description string `json:"description,omitempty" toon:"description,omitempty"` // New stdio environment variables. - Env map[string]string `json:"env,omitempty"` + Env map[string]string `json:"env,omitempty" toon:"env,omitempty"` // New HTTP headers for the remote endpoint. - Headers map[string]string `json:"headers,omitempty"` + Headers map[string]string `json:"headers,omitempty" toon:"headers,omitempty"` // New OAuth metadata JSON. - OauthMetadata string `json:"oauth_metadata,omitempty"` + OauthMetadata string `json:"oauth_metadata,omitempty" toon:"oauth_metadata,omitempty"` // New per-user secret JSON schema. - SecretSchema string `json:"secret_schema,omitempty"` + SecretSchema string `json:"secret_schema,omitempty" toon:"secret_schema,omitempty"` // Identifier of the server to update. - ServerID string `json:"server_id,omitempty"` + ServerID string `json:"server_id,omitempty" toon:"server_id,omitempty"` // New display name. - ServerName string `json:"server_name,omitempty"` + ServerName string `json:"server_name,omitempty" toon:"server_name,omitempty"` // Reassign the server to this team; omit to leave unchanged, 0 for account scope. - TeamID int64 `json:"team_id,omitempty"` + TeamID int64 `json:"team_id,omitempty" toon:"team_id,omitempty"` // New transport for the server. - Transport string `json:"transport,omitempty"` + Transport string `json:"transport,omitempty" toon:"transport,omitempty"` // New endpoint URL for remote transports. - URL string `json:"url,omitempty"` + URL string `json:"url,omitempty" toon:"url,omitempty"` } // McpToolInfo is generated from the Flashduty OpenAPI schema. type McpToolInfo struct { // What the tool does. - Description string `json:"description,omitempty"` + Description string `json:"description,omitempty" toon:"description,omitempty"` // JSON schema of the tool's input arguments. - InputSchema any `json:"input_schema,omitempty"` + InputSchema any `json:"input_schema,omitempty" toon:"input_schema,omitempty"` // Tool name as advertised by the server. - Name string `json:"name,omitempty"` + Name string `json:"name,omitempty" toon:"name,omitempty"` } // MappingAPICreateRequest is generated from the Flashduty OpenAPI schema. type MappingAPICreateRequest struct { // Unique API name (max 199 chars). - APIName string `json:"api_name,omitempty"` + APIName string `json:"api_name,omitempty" toon:"api_name,omitempty"` // Optional description. - Description string `json:"description,omitempty"` + Description string `json:"description,omitempty" toon:"description,omitempty"` // Custom HTTP request headers. - Headers map[string]string `json:"headers,omitempty"` + Headers map[string]string `json:"headers,omitempty" toon:"headers,omitempty"` // Skip TLS certificate verification. Default `false`. - InsecureSkipVerify bool `json:"insecure_skip_verify,omitempty"` + InsecureSkipVerify bool `json:"insecure_skip_verify,omitempty" toon:"insecure_skip_verify,omitempty"` // Number of retries on failure (0–1). Default 0. - RetryCount int64 `json:"retry_count,omitempty"` + RetryCount int64 `json:"retry_count,omitempty" toon:"retry_count,omitempty"` // Owning team ID. - TeamID int64 `json:"team_id,omitempty"` + TeamID int64 `json:"team_id,omitempty" toon:"team_id,omitempty"` // Request timeout in seconds (1–3). Default 2. - Timeout int64 `json:"timeout,omitempty"` + Timeout int64 `json:"timeout,omitempty" toon:"timeout,omitempty"` // HTTP/HTTPS endpoint URL (max 500 chars). - URL string `json:"url,omitempty"` + URL string `json:"url,omitempty" toon:"url,omitempty"` } // MappingAPICreateResponse is generated from the Flashduty OpenAPI schema. type MappingAPICreateResponse struct { // Created API ID (MongoDB ObjectID hex). - APIID string `json:"api_id,omitempty"` + APIID string `json:"api_id,omitempty" toon:"api_id,omitempty"` // API name. - APIName string `json:"api_name,omitempty"` + APIName string `json:"api_name,omitempty" toon:"api_name,omitempty"` } // MappingApiidRequest is generated from the Flashduty OpenAPI schema. type MappingApiidRequest struct { // Mapping API ID (MongoDB ObjectID hex). - APIID string `json:"api_id,omitempty"` + APIID string `json:"api_id,omitempty" toon:"api_id,omitempty"` } // MappingAPIItem is generated from the Flashduty OpenAPI schema. type MappingAPIItem struct { // API ID (MongoDB ObjectID hex). - APIID string `json:"api_id,omitempty"` + APIID string `json:"api_id,omitempty" toon:"api_id,omitempty"` // API name. - APIName string `json:"api_name,omitempty"` + APIName string `json:"api_name,omitempty" toon:"api_name,omitempty"` // Creation timestamp, Unix seconds. - CreatedAt Timestamp `json:"created_at,omitempty"` + CreatedAt Timestamp `json:"created_at,omitempty" toon:"created_at,omitempty"` // Creator member ID. - CreatorID int64 `json:"creator_id,omitempty"` + CreatorID int64 `json:"creator_id,omitempty" toon:"creator_id,omitempty"` // Description. - Description string `json:"description,omitempty"` + Description string `json:"description,omitempty" toon:"description,omitempty"` // Custom request headers. - Headers map[string]string `json:"headers,omitempty"` + Headers map[string]string `json:"headers,omitempty" toon:"headers,omitempty"` // Whether TLS verification is skipped. - InsecureSkipVerify bool `json:"insecure_skip_verify,omitempty"` + InsecureSkipVerify bool `json:"insecure_skip_verify,omitempty" toon:"insecure_skip_verify,omitempty"` // Retry count. - RetryCount int64 `json:"retry_count,omitempty"` + RetryCount int64 `json:"retry_count,omitempty" toon:"retry_count,omitempty"` // API status. - Status string `json:"status,omitempty"` + Status string `json:"status,omitempty" toon:"status,omitempty"` // Owning team ID. - TeamID int64 `json:"team_id,omitempty"` + TeamID int64 `json:"team_id,omitempty" toon:"team_id,omitempty"` // Request timeout in seconds. - Timeout int64 `json:"timeout,omitempty"` + Timeout int64 `json:"timeout,omitempty" toon:"timeout,omitempty"` // Last update timestamp, Unix seconds. - UpdatedAt Timestamp `json:"updated_at,omitempty"` + UpdatedAt Timestamp `json:"updated_at,omitempty" toon:"updated_at,omitempty"` // Last updater member ID. - UpdatedBy int64 `json:"updated_by,omitempty"` + UpdatedBy int64 `json:"updated_by,omitempty" toon:"updated_by,omitempty"` // Endpoint URL. - URL string `json:"url,omitempty"` + URL string `json:"url,omitempty" toon:"url,omitempty"` } // MappingAPIListResponse is generated from the Flashduty OpenAPI schema. type MappingAPIListResponse struct { // Mapping APIs. - Items []MappingAPIItem `json:"items,omitempty"` + Items []MappingAPIItem `json:"items,omitempty" toon:"items,omitempty"` // Total API count. - Total int64 `json:"total,omitempty"` + Total int64 `json:"total,omitempty" toon:"total,omitempty"` } // MappingAPIUpdateRequest is generated from the Flashduty OpenAPI schema. type MappingAPIUpdateRequest struct { // Mapping API ID (MongoDB ObjectID hex). - APIID string `json:"api_id,omitempty"` + APIID string `json:"api_id,omitempty" toon:"api_id,omitempty"` // New API name (max 199 chars). - APIName *string `json:"api_name,omitempty"` + APIName *string `json:"api_name,omitempty" toon:"api_name,omitempty"` // New description. - Description *string `json:"description,omitempty"` + Description *string `json:"description,omitempty" toon:"description,omitempty"` // New headers map (replaces existing). - Headers map[string]string `json:"headers,omitempty"` + Headers map[string]string `json:"headers,omitempty" toon:"headers,omitempty"` // New TLS skip-verify setting. - InsecureSkipVerify *bool `json:"insecure_skip_verify,omitempty"` + InsecureSkipVerify *bool `json:"insecure_skip_verify,omitempty" toon:"insecure_skip_verify,omitempty"` // New retry count. - RetryCount *int64 `json:"retry_count,omitempty"` + RetryCount *int64 `json:"retry_count,omitempty" toon:"retry_count,omitempty"` // New owning team ID. - TeamID *int64 `json:"team_id,omitempty"` + TeamID *int64 `json:"team_id,omitempty" toon:"team_id,omitempty"` // New timeout in seconds. - Timeout *int64 `json:"timeout,omitempty"` + Timeout *int64 `json:"timeout,omitempty" toon:"timeout,omitempty"` // New endpoint URL (max 500 chars). - URL *string `json:"url,omitempty"` + URL *string `json:"url,omitempty" toon:"url,omitempty"` } // MappingDataDeleteRequest is generated from the Flashduty OpenAPI schema. type MappingDataDeleteRequest struct { // Keys of rows to delete. - Keys []string `json:"keys,omitempty"` + Keys []string `json:"keys,omitempty" toon:"keys,omitempty"` // Mapping schema ID (MongoDB ObjectID hex). - SchemaID string `json:"schema_id,omitempty"` + SchemaID string `json:"schema_id,omitempty" toon:"schema_id,omitempty"` } // MappingDataItem is generated from the Flashduty OpenAPI schema. type MappingDataItem struct { // Creation timestamp, Unix seconds. - CreatedAt Timestamp `json:"created_at,omitempty"` + CreatedAt Timestamp `json:"created_at,omitempty" toon:"created_at,omitempty"` // All label key-value pairs for this row. - Fields map[string]string `json:"fields,omitempty"` + Fields map[string]string `json:"fields,omitempty" toon:"fields,omitempty"` // Composite key derived from source label values. - Key string `json:"key,omitempty"` + Key string `json:"key,omitempty" toon:"key,omitempty"` // Last update timestamp, Unix seconds. - UpdatedAt Timestamp `json:"updated_at,omitempty"` + UpdatedAt Timestamp `json:"updated_at,omitempty" toon:"updated_at,omitempty"` } // MappingDataListRequest is generated from the Flashduty OpenAPI schema. type MappingDataListRequest struct { ListOptions // Sort ascending when `true`. - Asc bool `json:"asc,omitempty"` + Asc bool `json:"asc,omitempty" toon:"asc,omitempty"` // Sort field. - Orderby string `json:"orderby,omitempty"` + Orderby string `json:"orderby,omitempty" toon:"orderby,omitempty"` // Exact-match filter on source label values. All source labels must be provided if any are specified. - Query map[string]string `json:"query,omitempty"` + Query map[string]string `json:"query,omitempty" toon:"query,omitempty"` // Mapping schema ID (MongoDB ObjectID hex). - SchemaID string `json:"schema_id,omitempty"` + SchemaID string `json:"schema_id,omitempty" toon:"schema_id,omitempty"` } // MappingDataListResponse is generated from the Flashduty OpenAPI schema. type MappingDataListResponse struct { // Whether more pages exist. - HasNextPage bool `json:"has_next_page,omitempty"` + HasNextPage bool `json:"has_next_page,omitempty" toon:"has_next_page,omitempty"` // Data rows. - Items []MappingDataItem `json:"items,omitempty"` + Items []MappingDataItem `json:"items,omitempty" toon:"items,omitempty"` // Cursor token for the next page. - SearchAfterCtx string `json:"search_after_ctx,omitempty"` + SearchAfterCtx string `json:"search_after_ctx,omitempty" toon:"search_after_ctx,omitempty"` // Total matching rows. - Total int64 `json:"total,omitempty"` + Total int64 `json:"total,omitempty" toon:"total,omitempty"` } // MappingDataUploadRequest is generated from the Flashduty OpenAPI schema. type MappingDataUploadRequest struct { // CSV file to upload. - File string `json:"file,omitempty"` + File string `json:"file,omitempty" toon:"file,omitempty"` // Mapping schema ID (query parameter). - SchemaID string `json:"schema_id,omitempty"` + SchemaID string `json:"schema_id,omitempty" toon:"schema_id,omitempty"` } // MappingDataUpsertRequest is generated from the Flashduty OpenAPI schema. type MappingDataUpsertRequest struct { // Rows to insert or update. Each row must include all source and result labels. - Docs []map[string]string `json:"docs,omitempty"` + Docs []map[string]string `json:"docs,omitempty" toon:"docs,omitempty"` // Mapping schema ID (MongoDB ObjectID hex). - SchemaID string `json:"schema_id,omitempty"` + SchemaID string `json:"schema_id,omitempty" toon:"schema_id,omitempty"` } // MappingDataUpsertResponse is generated from the Flashduty OpenAPI schema. type MappingDataUpsertResponse struct { // Composite keys of upserted rows. - Keys []string `json:"keys,omitempty"` + Keys []string `json:"keys,omitempty" toon:"keys,omitempty"` } // MappingSchemaCreateRequest is generated from the Flashduty OpenAPI schema. type MappingSchemaCreateRequest struct { // Optional description (max 500 chars). - Description string `json:"description,omitempty"` + Description string `json:"description,omitempty" toon:"description,omitempty"` // Output label names (1–10). Must not overlap with `source_labels`. - ResultLabels []string `json:"result_labels,omitempty"` + ResultLabels []string `json:"result_labels,omitempty" toon:"result_labels,omitempty"` // Unique schema name (max 39 chars). - SchemaName string `json:"schema_name,omitempty"` + SchemaName string `json:"schema_name,omitempty" toon:"schema_name,omitempty"` // Lookup key label names (1–3). Must not overlap with `result_labels`. - SourceLabels []string `json:"source_labels,omitempty"` + SourceLabels []string `json:"source_labels,omitempty" toon:"source_labels,omitempty"` // Owning team ID. `0` means no team. - TeamID int64 `json:"team_id,omitempty"` + TeamID int64 `json:"team_id,omitempty" toon:"team_id,omitempty"` } // MappingSchemaCreateResponse is generated from the Flashduty OpenAPI schema. type MappingSchemaCreateResponse struct { // Created schema ID (MongoDB ObjectID hex). - SchemaID string `json:"schema_id,omitempty"` + SchemaID string `json:"schema_id,omitempty" toon:"schema_id,omitempty"` // Schema name. - SchemaName string `json:"schema_name,omitempty"` + SchemaName string `json:"schema_name,omitempty" toon:"schema_name,omitempty"` } // MappingSchemaIDRequest is generated from the Flashduty OpenAPI schema. type MappingSchemaIDRequest struct { // Mapping schema ID (MongoDB ObjectID hex). - SchemaID string `json:"schema_id,omitempty"` + SchemaID string `json:"schema_id,omitempty" toon:"schema_id,omitempty"` } // MappingSchemaItem is generated from the Flashduty OpenAPI schema. type MappingSchemaItem struct { // Creation timestamp, Unix seconds. - CreatedAt Timestamp `json:"created_at,omitempty"` + CreatedAt Timestamp `json:"created_at,omitempty" toon:"created_at,omitempty"` // Creator member ID. - CreatorID int64 `json:"creator_id,omitempty"` + CreatorID int64 `json:"creator_id,omitempty" toon:"creator_id,omitempty"` // Schema description. - Description string `json:"description,omitempty"` + Description string `json:"description,omitempty" toon:"description,omitempty"` // Output label names. - ResultLabels []string `json:"result_labels,omitempty"` + ResultLabels []string `json:"result_labels,omitempty" toon:"result_labels,omitempty"` // Schema ID (MongoDB ObjectID hex). - SchemaID string `json:"schema_id,omitempty"` + SchemaID string `json:"schema_id,omitempty" toon:"schema_id,omitempty"` // Schema name. - SchemaName string `json:"schema_name,omitempty"` + SchemaName string `json:"schema_name,omitempty" toon:"schema_name,omitempty"` // Lookup key label names. - SourceLabels []string `json:"source_labels,omitempty"` + SourceLabels []string `json:"source_labels,omitempty" toon:"source_labels,omitempty"` // Schema status. - Status string `json:"status,omitempty"` + Status string `json:"status,omitempty" toon:"status,omitempty"` // Owning team ID. - TeamID int64 `json:"team_id,omitempty"` + TeamID int64 `json:"team_id,omitempty" toon:"team_id,omitempty"` // Last update timestamp, Unix seconds. - UpdatedAt Timestamp `json:"updated_at,omitempty"` + UpdatedAt Timestamp `json:"updated_at,omitempty" toon:"updated_at,omitempty"` // Last updater member ID. - UpdatedBy int64 `json:"updated_by,omitempty"` + UpdatedBy int64 `json:"updated_by,omitempty" toon:"updated_by,omitempty"` } // MappingSchemaListResponse is generated from the Flashduty OpenAPI schema. type MappingSchemaListResponse struct { // Mapping schemas. - Items []MappingSchemaItem `json:"items,omitempty"` + Items []MappingSchemaItem `json:"items,omitempty" toon:"items,omitempty"` // Total schema count. - Total int64 `json:"total,omitempty"` + Total int64 `json:"total,omitempty" toon:"total,omitempty"` } // MappingSchemaUpdateRequest is generated from the Flashduty OpenAPI schema. type MappingSchemaUpdateRequest struct { // New description (max 500 chars). - Description *string `json:"description,omitempty"` + Description *string `json:"description,omitempty" toon:"description,omitempty"` // Schema ID (MongoDB ObjectID hex). - SchemaID string `json:"schema_id,omitempty"` + SchemaID string `json:"schema_id,omitempty" toon:"schema_id,omitempty"` // New schema name (max 39 chars). - SchemaName *string `json:"schema_name,omitempty"` + SchemaName *string `json:"schema_name,omitempty" toon:"schema_name,omitempty"` // New owning team ID. `0` removes the team association. - TeamID *int64 `json:"team_id,omitempty"` + TeamID *int64 `json:"team_id,omitempty" toon:"team_id,omitempty"` } // MemberDeleteRequest is generated from the Flashduty OpenAPI schema. type MemberDeleteRequest struct { // Phone country code, used with phone - CountryCode string `json:"country_code,omitempty"` + CountryCode string `json:"country_code,omitempty" toon:"country_code,omitempty"` // Email address - Email string `json:"email,omitempty"` + Email string `json:"email,omitempty" toon:"email,omitempty"` // Force delete. Defaults to false, which checks for references from escalation rules, schedules, etc. Set to true to skip the reference check and delete immediately - IsForce bool `json:"is_force,omitempty"` + IsForce bool `json:"is_force,omitempty" toon:"is_force,omitempty"` // Member ID - MemberID uint64 `json:"member_id,omitempty"` + MemberID uint64 `json:"member_id,omitempty" toon:"member_id,omitempty"` // Member name - MemberName string `json:"member_name,omitempty"` + MemberName string `json:"member_name,omitempty" toon:"member_name,omitempty"` // Phone number - Phone string `json:"phone,omitempty"` + Phone string `json:"phone,omitempty" toon:"phone,omitempty"` // External reference ID - RefID string `json:"ref_id,omitempty"` + RefID string `json:"ref_id,omitempty" toon:"ref_id,omitempty"` } // MemberEmptyObject is generated from the Flashduty OpenAPI schema. @@ -3832,482 +3838,482 @@ type MemberInfoRequest struct{} // MemberInfoResponse is generated from the Flashduty OpenAPI schema. type MemberInfoResponse struct { // Account avatar URL - AccountAvatar string `json:"account_avatar,omitempty"` + AccountAvatar string `json:"account_avatar,omitempty" toon:"account_avatar,omitempty"` // Account email - AccountEmail string `json:"account_email,omitempty"` + AccountEmail string `json:"account_email,omitempty" toon:"account_email,omitempty"` // Account ID - AccountID uint64 `json:"account_id,omitempty"` + AccountID uint64 `json:"account_id,omitempty" toon:"account_id,omitempty"` // Account-level locale preference (e.g. zh-CN or en-US) - AccountLocale string `json:"account_locale,omitempty"` + AccountLocale string `json:"account_locale,omitempty" toon:"account_locale,omitempty"` // Account name - AccountName string `json:"account_name,omitempty"` + AccountName string `json:"account_name,omitempty" toon:"account_name,omitempty"` // Assigned role IDs - AccountRoleIDs []uint64 `json:"account_role_ids,omitempty"` + AccountRoleIDs []uint64 `json:"account_role_ids,omitempty" toon:"account_role_ids,omitempty"` // Account-level time zone (e.g. Asia/Shanghai) - AccountTimeZone string `json:"account_time_zone,omitempty"` + AccountTimeZone string `json:"account_time_zone,omitempty" toon:"account_time_zone,omitempty"` // Member avatar URL - Avatar string `json:"avatar,omitempty"` + Avatar string `json:"avatar,omitempty" toon:"avatar,omitempty"` // Phone country code - CountryCode string `json:"country_code,omitempty"` + CountryCode string `json:"country_code,omitempty" toon:"country_code,omitempty"` // Account domain - Domain string `json:"domain,omitempty"` + Domain string `json:"domain,omitempty" toon:"domain,omitempty"` // Email address - Email string `json:"email,omitempty"` + Email string `json:"email,omitempty" toon:"email,omitempty"` // Whether email is verified - EmailVerified bool `json:"email_verified,omitempty"` + EmailVerified bool `json:"email_verified,omitempty" toon:"email_verified,omitempty"` // Whether provisioned via SSO - IsExternal bool `json:"is_external,omitempty"` + IsExternal bool `json:"is_external,omitempty" toon:"is_external,omitempty"` // Locale preference - Locale string `json:"locale,omitempty"` + Locale string `json:"locale,omitempty" toon:"locale,omitempty"` // Member ID - MemberID uint64 `json:"member_id,omitempty"` + MemberID uint64 `json:"member_id,omitempty" toon:"member_id,omitempty"` // Member display name - MemberName string `json:"member_name,omitempty"` + MemberName string `json:"member_name,omitempty" toon:"member_name,omitempty"` // Masked phone number - Phone string `json:"phone,omitempty"` + Phone string `json:"phone,omitempty" toon:"phone,omitempty"` // Whether phone is verified - PhoneVerified bool `json:"phone_verified,omitempty"` + PhoneVerified bool `json:"phone_verified,omitempty" toon:"phone_verified,omitempty"` // Member status. `enabled` — active member; `pending` — invited but not yet accepted; `deleted` — removed from the organization. - Status string `json:"status,omitempty"` + Status string `json:"status,omitempty" toon:"status,omitempty"` // Time zone - TimeZone string `json:"time_zone,omitempty"` + TimeZone string `json:"time_zone,omitempty" toon:"time_zone,omitempty"` } // MemberInviteRequest is generated from the Flashduty OpenAPI schema. type MemberInviteRequest struct { // Invite source context - From string `json:"from,omitempty"` + From string `json:"from,omitempty" toon:"from,omitempty"` // Members to invite (max 20) - Members []InviteMemberItem `json:"members,omitempty"` + Members []InviteMemberItem `json:"members,omitempty" toon:"members,omitempty"` } // MemberInviteResponse is generated from the Flashduty OpenAPI schema. type MemberInviteResponse struct { // Newly created members - Items []NewMemberItem `json:"items,omitempty"` + Items []NewMemberItem `json:"items,omitempty" toon:"items,omitempty"` } // MemberItem is generated from the Flashduty OpenAPI schema. type MemberItem struct { // Account ID - AccountID uint64 `json:"account_id,omitempty"` + AccountID uint64 `json:"account_id,omitempty" toon:"account_id,omitempty"` // Role IDs - AccountRoleIDs []uint64 `json:"account_role_ids,omitempty"` + AccountRoleIDs []uint64 `json:"account_role_ids,omitempty" toon:"account_role_ids,omitempty"` // Avatar URL - Avatar string `json:"avatar,omitempty"` + Avatar string `json:"avatar,omitempty" toon:"avatar,omitempty"` // Phone country code - CountryCode string `json:"country_code,omitempty"` + CountryCode string `json:"country_code,omitempty" toon:"country_code,omitempty"` // Creation timestamp (Unix seconds) - CreatedAt Timestamp `json:"created_at,omitempty"` + CreatedAt Timestamp `json:"created_at,omitempty" toon:"created_at,omitempty"` // Email address - Email string `json:"email,omitempty"` + Email string `json:"email,omitempty" toon:"email,omitempty"` // Email verified - EmailVerified bool `json:"email_verified,omitempty"` + EmailVerified bool `json:"email_verified,omitempty" toon:"email_verified,omitempty"` // Provisioned via SSO - IsExternal bool `json:"is_external,omitempty"` + IsExternal bool `json:"is_external,omitempty" toon:"is_external,omitempty"` // Locale - Locale string `json:"locale,omitempty"` + Locale string `json:"locale,omitempty" toon:"locale,omitempty"` // Member ID - MemberID uint64 `json:"member_id,omitempty"` + MemberID uint64 `json:"member_id,omitempty" toon:"member_id,omitempty"` // Display name - MemberName string `json:"member_name,omitempty"` + MemberName string `json:"member_name,omitempty" toon:"member_name,omitempty"` // Masked phone number - Phone string `json:"phone,omitempty"` + Phone string `json:"phone,omitempty" toon:"phone,omitempty"` // Phone verified - PhoneVerified bool `json:"phone_verified,omitempty"` + PhoneVerified bool `json:"phone_verified,omitempty" toon:"phone_verified,omitempty"` // External reference ID - RefID string `json:"ref_id,omitempty"` + RefID string `json:"ref_id,omitempty" toon:"ref_id,omitempty"` // Member status. `enabled` — active member; `pending` — invited but not yet accepted; `deleted` — removed from the organization. - Status string `json:"status,omitempty"` + Status string `json:"status,omitempty" toon:"status,omitempty"` // Time zone - TimeZone string `json:"time_zone,omitempty"` + TimeZone string `json:"time_zone,omitempty" toon:"time_zone,omitempty"` // Update timestamp (Unix seconds) - UpdatedAt Timestamp `json:"updated_at,omitempty"` + UpdatedAt Timestamp `json:"updated_at,omitempty" toon:"updated_at,omitempty"` } // MemberListRequest is generated from the Flashduty OpenAPI schema. type MemberListRequest struct { ListOptions // Ascending order - Asc bool `json:"asc,omitempty"` + Asc bool `json:"asc,omitempty" toon:"asc,omitempty"` // Sort field - Orderby string `json:"orderby,omitempty"` + Orderby string `json:"orderby,omitempty" toon:"orderby,omitempty"` // Search keyword - Query string `json:"query,omitempty"` + Query string `json:"query,omitempty" toon:"query,omitempty"` // Filter by role ID - RoleID uint64 `json:"role_id,omitempty"` + RoleID uint64 `json:"role_id,omitempty" toon:"role_id,omitempty"` } // MemberListResponse is generated from the Flashduty OpenAPI schema. type MemberListResponse struct { ListOptions // Member items - Items []MemberItem `json:"items,omitempty"` + Items []MemberItem `json:"items,omitempty" toon:"items,omitempty"` // Total count - Total int64 `json:"total,omitempty"` + Total int64 `json:"total,omitempty" toon:"total,omitempty"` } // MemberResetInfoRequest is generated from the Flashduty OpenAPI schema. type MemberResetInfoRequest struct { // Avatar URL - Avatar *string `json:"avatar,omitempty"` + Avatar *string `json:"avatar,omitempty" toon:"avatar,omitempty"` // Country code - CountryCode *string `json:"country_code,omitempty"` + CountryCode *string `json:"country_code,omitempty" toon:"country_code,omitempty"` // Email address - Email *string `json:"email,omitempty"` + Email *string `json:"email,omitempty" toon:"email,omitempty"` // Locale - Locale *string `json:"locale,omitempty"` + Locale *string `json:"locale,omitempty" toon:"locale,omitempty"` // Member ID of the member to update - MemberID uint64 `json:"member_id,omitempty"` + MemberID uint64 `json:"member_id,omitempty" toon:"member_id,omitempty"` // Display name - MemberName *string `json:"member_name,omitempty"` + MemberName *string `json:"member_name,omitempty" toon:"member_name,omitempty"` // Phone number - Phone *string `json:"phone,omitempty"` + Phone *string `json:"phone,omitempty" toon:"phone,omitempty"` // Time zone - TimeZone *string `json:"time_zone,omitempty"` + TimeZone *string `json:"time_zone,omitempty" toon:"time_zone,omitempty"` } // MemberRoleGrantRequest is generated from the Flashduty OpenAPI schema. type MemberRoleGrantRequest struct { // Member ID - MemberID uint64 `json:"member_id,omitempty"` + MemberID uint64 `json:"member_id,omitempty" toon:"member_id,omitempty"` // Role IDs to grant; appended to the member's current roles (duplicates are deduplicated). - RoleIDs []uint64 `json:"role_ids,omitempty"` + RoleIDs []uint64 `json:"role_ids,omitempty" toon:"role_ids,omitempty"` } // MemberRoleRevokeRequest is generated from the Flashduty OpenAPI schema. type MemberRoleRevokeRequest struct { // Member ID - MemberID uint64 `json:"member_id,omitempty"` + MemberID uint64 `json:"member_id,omitempty" toon:"member_id,omitempty"` // Role IDs to remove from the member. - RoleIDs []uint64 `json:"role_ids,omitempty"` + RoleIDs []uint64 `json:"role_ids,omitempty" toon:"role_ids,omitempty"` } // MemberRoleUpdateRequest is generated from the Flashduty OpenAPI schema. type MemberRoleUpdateRequest struct { // Member ID - MemberID uint64 `json:"member_id,omitempty"` + MemberID uint64 `json:"member_id,omitempty" toon:"member_id,omitempty"` // New set of role IDs - RoleIDs []uint64 `json:"role_ids,omitempty"` + RoleIDs []uint64 `json:"role_ids,omitempty" toon:"role_ids,omitempty"` } // MergeIncidentsRequest is generated from the Flashduty OpenAPI schema. type MergeIncidentsRequest struct { // Optional comment recorded on the merge timeline entry. - Comment string `json:"comment,omitempty"` + Comment string `json:"comment,omitempty" toon:"comment,omitempty"` // Optional new owner member ID for the target incident. - OwnerID int64 `json:"owner_id,omitempty"` + OwnerID int64 `json:"owner_id,omitempty" toon:"owner_id,omitempty"` // When true, soft-delete the source incidents after merging instead of closing them. - RemoveSourceIncidents bool `json:"remove_source_incidents,omitempty"` + RemoveSourceIncidents bool `json:"remove_source_incidents,omitempty" toon:"remove_source_incidents,omitempty"` // Source incident IDs. The target incident is removed from this set automatically. - SourceIncidentIDs []string `json:"source_incident_ids,omitempty"` + SourceIncidentIDs []string `json:"source_incident_ids,omitempty" toon:"source_incident_ids,omitempty"` // Target incident ID that source incidents will be merged into. - TargetIncidentID string `json:"target_incident_id,omitempty"` + TargetIncidentID string `json:"target_incident_id,omitempty" toon:"target_incident_id,omitempty"` // Optional new title for the target incident. - Title string `json:"title,omitempty"` + Title string `json:"title,omitempty" toon:"title,omitempty"` } // MetricsBase is generated from the Flashduty OpenAPI schema. type MetricsBase struct { - AccountID int64 `json:"account_id,omitempty"` - ChannelID int64 `json:"channel_id,omitempty"` - ChannelName string `json:"channel_name,omitempty"` + AccountID int64 `json:"account_id,omitempty" toon:"account_id,omitempty"` + ChannelID int64 `json:"channel_id,omitempty" toon:"channel_id,omitempty"` + ChannelName string `json:"channel_name,omitempty" toon:"channel_name,omitempty"` // Hour bucket when `split_hours` is enabled. - Hours string `json:"hours,omitempty"` - ResponderID int64 `json:"responder_id,omitempty"` - ResponderName string `json:"responder_name,omitempty"` - TeamID int64 `json:"team_id,omitempty"` - TeamName string `json:"team_name,omitempty"` + Hours string `json:"hours,omitempty" toon:"hours,omitempty"` + ResponderID int64 `json:"responder_id,omitempty" toon:"responder_id,omitempty"` + ResponderName string `json:"responder_name,omitempty" toon:"responder_name,omitempty"` + TeamID int64 `json:"team_id,omitempty" toon:"team_id,omitempty"` + TeamName string `json:"team_name,omitempty" toon:"team_name,omitempty"` // Aggregation bucket start time, Unix seconds. Present when `aggregate_unit` is used. - TS Timestamp `json:"ts,omitempty"` + TS Timestamp `json:"ts,omitempty" toon:"ts,omitempty"` } // MigrateStatusPageEmailSubscribersRequest is generated from the Flashduty OpenAPI schema. type MigrateStatusPageEmailSubscribersRequest struct { // Atlassian Statuspage API key with access to the source page. - APIKey string `json:"api_key,omitempty"` + APIKey string `json:"api_key,omitempty" toon:"api_key,omitempty"` // Atlassian Statuspage source page ID. - SourcePageID string `json:"source_page_id,omitempty"` + SourcePageID string `json:"source_page_id,omitempty" toon:"source_page_id,omitempty"` // Flashduty target status page ID that will receive the imported subscribers. - TargetPageID int64 `json:"target_page_id,omitempty"` + TargetPageID int64 `json:"target_page_id,omitempty" toon:"target_page_id,omitempty"` } // MigrateStatusPageStructureRequest is generated from the Flashduty OpenAPI schema. type MigrateStatusPageStructureRequest struct { // Atlassian Statuspage API key with access to the source page. - APIKey string `json:"api_key,omitempty"` + APIKey string `json:"api_key,omitempty" toon:"api_key,omitempty"` // Atlassian Statuspage source page ID. - SourcePageID string `json:"source_page_id,omitempty"` + SourcePageID string `json:"source_page_id,omitempty" toon:"source_page_id,omitempty"` // Target URL name for the migrated status page. When omitted, the source page's URL name is reused. - URLName *string `json:"url_name,omitempty"` + URLName *string `json:"url_name,omitempty" toon:"url_name,omitempty"` } // NameMessage is generated from the Flashduty OpenAPI schema. type NameMessage struct { // Empty on success, error message on failure. - Message string `json:"message,omitempty"` + Message string `json:"message,omitempty" toon:"message,omitempty"` // Rule name. - Name string `json:"name,omitempty"` + Name string `json:"name,omitempty" toon:"name,omitempty"` } // NewMemberItem is generated from the Flashduty OpenAPI schema. type NewMemberItem struct { // Member ID - MemberID uint64 `json:"member_id,omitempty"` + MemberID uint64 `json:"member_id,omitempty" toon:"member_id,omitempty"` // Member display name - MemberName string `json:"member_name,omitempty"` + MemberName string `json:"member_name,omitempty" toon:"member_name,omitempty"` } // NotifyChat is generated from the Flashduty OpenAPI schema. type NotifyChat struct { // Chat group identifier. - ChatID string `json:"chat_id,omitempty"` + ChatID string `json:"chat_id,omitempty" toon:"chat_id,omitempty"` // Chat group display name. - ChatName string `json:"chat_name,omitempty"` + ChatName string `json:"chat_name,omitempty" toon:"chat_name,omitempty"` // Integration data source ID used to send the notification. - DataSourceID int64 `json:"data_source_id,omitempty"` + DataSourceID int64 `json:"data_source_id,omitempty" toon:"data_source_id,omitempty"` // Failure reason if delivery did not succeed. - FailedReason string `json:"failed_reason,omitempty"` + FailedReason string `json:"failed_reason,omitempty" toon:"failed_reason,omitempty"` } // NotifyPerson is generated from the Flashduty OpenAPI schema. type NotifyPerson struct { // Failure reason if delivery did not succeed. - FailedReason string `json:"failed_reason,omitempty"` + FailedReason string `json:"failed_reason,omitempty" toon:"failed_reason,omitempty"` // Recipient member ID. - PersonID int64 `json:"person_id,omitempty"` + PersonID int64 `json:"person_id,omitempty" toon:"person_id,omitempty"` } // NotifyRobot is generated from the Flashduty OpenAPI schema. type NotifyRobot struct { // Robot alias. - Alias string `json:"alias,omitempty"` + Alias string `json:"alias,omitempty" toon:"alias,omitempty"` // Failure reason if delivery did not succeed. - FailedReason string `json:"failed_reason,omitempty"` + FailedReason string `json:"failed_reason,omitempty" toon:"failed_reason,omitempty"` // Robot token or identifier. - Token string `json:"token,omitempty"` + Token string `json:"token,omitempty" toon:"token,omitempty"` } // OnceTimeFilter is generated from the Flashduty OpenAPI schema. type OnceTimeFilter struct { // Window end (unix seconds). Must be > 0. - EndTime int64 `json:"end_time,omitempty"` + EndTime int64 `json:"end_time,omitempty" toon:"end_time,omitempty"` // Window start (unix seconds). Must be > 0 and less than `end_time`. - StartTime int64 `json:"start_time,omitempty"` + StartTime int64 `json:"start_time,omitempty" toon:"start_time,omitempty"` } // PastIncidentItem is generated from the Flashduty OpenAPI schema. type PastIncidentItem struct { // Account ID that owns the incident. - AccountID int64 `json:"account_id,omitempty"` + AccountID int64 `json:"account_id,omitempty" toon:"account_id,omitempty"` // Account locale. - AccountLocale string `json:"account_locale,omitempty"` + AccountLocale string `json:"account_locale,omitempty" toon:"account_locale,omitempty"` // Account name. - AccountName string `json:"account_name,omitempty"` + AccountName string `json:"account_name,omitempty" toon:"account_name,omitempty"` // Account time zone. - AccountTimeZone string `json:"account_time_zone,omitempty"` + AccountTimeZone string `json:"account_time_zone,omitempty" toon:"account_time_zone,omitempty"` // Unix timestamp (seconds) when the incident was first acknowledged. 0 if unacknowledged. - AckTime Timestamp `json:"ack_time,omitempty"` + AckTime Timestamp `json:"ack_time,omitempty" toon:"ack_time,omitempty"` // Count of alerts currently in Critical/Warning/Info state. - ActiveAlertCnt int64 `json:"active_alert_cnt,omitempty"` + ActiveAlertCnt int64 `json:"active_alert_cnt,omitempty" toon:"active_alert_cnt,omitempty"` // AI-generated summary of the incident. - AISummary string `json:"ai_summary,omitempty"` + AISummary string `json:"ai_summary,omitempty" toon:"ai_summary,omitempty"` // Total count of alerts merged into this incident. - AlertCnt int64 `json:"alert_cnt,omitempty"` + AlertCnt int64 `json:"alert_cnt,omitempty" toon:"alert_cnt,omitempty"` // Total raw alert event count across all merged alerts. - AlertEventCnt int64 `json:"alert_event_cnt,omitempty"` + AlertEventCnt int64 `json:"alert_event_cnt,omitempty" toon:"alert_event_cnt,omitempty"` // Embedded alerts, only populated for notification templates and custom actions. - Alerts []AlertInfo `json:"alerts,omitempty"` + Alerts []AlertInfo `json:"alerts,omitempty" toon:"alerts,omitempty"` // Current assignment target for the incident. - AssignedTo AssignedTo `json:"assigned_to,omitempty"` + AssignedTo AssignedTo `json:"assigned_to,omitempty" toon:"assigned_to,omitempty"` // Channel ID. 0 for standalone incidents. - ChannelID int64 `json:"channel_id,omitempty"` + ChannelID int64 `json:"channel_id,omitempty" toon:"channel_id,omitempty"` // Channel display name. - ChannelName string `json:"channel_name,omitempty"` + ChannelName string `json:"channel_name,omitempty" toon:"channel_name,omitempty"` // Channel status. - ChannelStatus string `json:"channel_status,omitempty"` + ChannelStatus string `json:"channel_status,omitempty" toon:"channel_status,omitempty"` // Unix timestamp (seconds) when the incident was closed. 0 if still open. - CloseTime Timestamp `json:"close_time,omitempty"` + CloseTime Timestamp `json:"close_time,omitempty" toon:"close_time,omitempty"` // Closer member info. - Closer PersonShort `json:"closer,omitempty"` + Closer PersonShort `json:"closer,omitempty" toon:"closer,omitempty"` // Member ID that closed the incident. 0 if auto-closed. - CloserID int64 `json:"closer_id,omitempty"` + CloserID int64 `json:"closer_id,omitempty" toon:"closer_id,omitempty"` // Creation timestamp (seconds). - CreatedAt Timestamp `json:"created_at,omitempty"` + CreatedAt Timestamp `json:"created_at,omitempty" toon:"created_at,omitempty"` // Creator member info. - Creator PersonShort `json:"creator,omitempty"` + Creator PersonShort `json:"creator,omitempty" toon:"creator,omitempty"` // Member ID that created the incident. 0 if auto-created by the system. - CreatorID int64 `json:"creator_id,omitempty"` + CreatorID int64 `json:"creator_id,omitempty" toon:"creator_id,omitempty"` // Deprecated. Use `integration_id` instead. - DataSourceID int64 `json:"data_source_id,omitempty"` + DataSourceID int64 `json:"data_source_id,omitempty" toon:"data_source_id,omitempty"` // Deprecated. Use `integration_ids` instead. - DataSourceIDs []int64 `json:"data_source_ids,omitempty"` + DataSourceIDs []int64 `json:"data_source_ids,omitempty" toon:"data_source_ids,omitempty"` // Deprecated. Use `integration_type` instead. - DataSourceType string `json:"data_source_type,omitempty"` + DataSourceType string `json:"data_source_type,omitempty" toon:"data_source_type,omitempty"` // Deprecated. Use `integration_types` instead. - DataSourceTypes []string `json:"data_source_types,omitempty"` + DataSourceTypes []string `json:"data_source_types,omitempty" toon:"data_source_types,omitempty"` // Deduplication key used to coalesce alerts. - DedupKey string `json:"dedup_key,omitempty"` + DedupKey string `json:"dedup_key,omitempty" toon:"dedup_key,omitempty"` // Soft-delete timestamp (seconds). Zero if not deleted. - DeletedAt Timestamp `json:"deleted_at,omitempty"` + DeletedAt Timestamp `json:"deleted_at,omitempty" toon:"deleted_at,omitempty"` // Incident description. - Description string `json:"description,omitempty"` + Description string `json:"description,omitempty" toon:"description,omitempty"` // Web console URL for the incident. - DetailURL string `json:"detail_url,omitempty"` + DetailURL string `json:"detail_url,omitempty" toon:"detail_url,omitempty"` // Unix timestamp (seconds) when the incident ended. 0 if still active. - EndTime Timestamp `json:"end_time,omitempty"` + EndTime Timestamp `json:"end_time,omitempty" toon:"end_time,omitempty"` // MD5 hash used for content-equality checks. - EqualsMD5 string `json:"equals_md5,omitempty"` + EqualsMD5 string `json:"equals_md5,omitempty" toon:"equals_md5,omitempty"` // Whether the incident has ever been silenced. - EverMuted bool `json:"ever_muted,omitempty"` + EverMuted bool `json:"ever_muted,omitempty" toon:"ever_muted,omitempty"` // Custom field values keyed by field name. - Fields map[string]any `json:"fields,omitempty"` + Fields map[string]any `json:"fields,omitempty" toon:"fields,omitempty"` // Frequency bucket for recurrence analysis: `frequent` or `rare`. - Frequency string `json:"frequency,omitempty"` + Frequency string `json:"frequency,omitempty" toon:"frequency,omitempty"` // Alert grouping method: `i` intelligent, `p` pattern, `n` none. - GroupMethod string `json:"group_method,omitempty"` + GroupMethod string `json:"group_method,omitempty" toon:"group_method,omitempty"` // Attached images. - Images []Image `json:"images,omitempty"` + Images []Image `json:"images,omitempty" toon:"images,omitempty"` // Impact description. - Impact string `json:"impact,omitempty"` + Impact string `json:"impact,omitempty" toon:"impact,omitempty"` // Incident ID (MongoDB ObjectID). - IncidentID string `json:"incident_id,omitempty"` + IncidentID string `json:"incident_id,omitempty" toon:"incident_id,omitempty"` // Configured incident severity. - IncidentSeverity string `json:"incident_severity,omitempty"` + IncidentSeverity string `json:"incident_severity,omitempty" toon:"incident_severity,omitempty"` // Current incident status, derived from alert statuses. - IncidentStatus string `json:"incident_status,omitempty"` + IncidentStatus string `json:"incident_status,omitempty" toon:"incident_status,omitempty"` // First integration associated with the incident. - IntegrationID int64 `json:"integration_id,omitempty"` + IntegrationID int64 `json:"integration_id,omitempty" toon:"integration_id,omitempty"` // All integration IDs contributing alerts to this incident. - IntegrationIDs []int64 `json:"integration_ids,omitempty"` + IntegrationIDs []int64 `json:"integration_ids,omitempty" toon:"integration_ids,omitempty"` // First alert's integration type string, used by the detail page for label mappings. - IntegrationType string `json:"integration_type,omitempty"` + IntegrationType string `json:"integration_type,omitempty" toon:"integration_type,omitempty"` // Integration type strings for all contributing integrations. - IntegrationTypes []string `json:"integration_types,omitempty"` + IntegrationTypes []string `json:"integration_types,omitempty" toon:"integration_types,omitempty"` // Labels propagated from alerts. - Labels map[string]string `json:"labels,omitempty"` + Labels map[string]string `json:"labels,omitempty" toon:"labels,omitempty"` // Unix timestamp (seconds) of the most recent update. - LastTime Timestamp `json:"last_time,omitempty"` + LastTime Timestamp `json:"last_time,omitempty" toon:"last_time,omitempty"` // Channel-level link integrations rendered for this incident. - Links []LinkItem `json:"links,omitempty"` + Links []LinkItem `json:"links,omitempty" toon:"links,omitempty"` // Fields that were manually overridden after auto-population. - ManualOverrides []string `json:"manual_overrides,omitempty"` + ManualOverrides []string `json:"manual_overrides,omitempty" toon:"manual_overrides,omitempty"` // Short display identifier; not guaranteed unique. - Num string `json:"num,omitempty"` + Num string `json:"num,omitempty" toon:"num,omitempty"` // Owner member info. May be deprecated. - Owner PersonShort `json:"owner,omitempty"` + Owner PersonShort `json:"owner,omitempty" toon:"owner,omitempty"` // Primary owner member ID. 0 if none. - OwnerID int64 `json:"owner_id,omitempty"` + OwnerID int64 `json:"owner_id,omitempty" toon:"owner_id,omitempty"` // Associated post-mortem ID, if any. One incident can only link to a single post-mortem. - PostMortemID string `json:"post_mortem_id,omitempty"` + PostMortemID string `json:"post_mortem_id,omitempty" toon:"post_mortem_id,omitempty"` // Incident progress state. - Progress string `json:"progress,omitempty"` + Progress string `json:"progress,omitempty" toon:"progress,omitempty"` // Reporter email for manually created incidents. - ReporterEmail string `json:"reporter_email,omitempty"` + ReporterEmail string `json:"reporter_email,omitempty" toon:"reporter_email,omitempty"` // Resolution notes. - Resolution string `json:"resolution,omitempty"` + Resolution string `json:"resolution,omitempty" toon:"resolution,omitempty"` // Current responders with assignment/acknowledgement state. - Responders []Responder `json:"responders,omitempty"` + Responders []Responder `json:"responders,omitempty" toon:"responders,omitempty"` // Root cause analysis. - RootCause string `json:"root_cause,omitempty"` + RootCause string `json:"root_cause,omitempty" toon:"root_cause,omitempty"` // Similarity score from the vector search. - Score float64 `json:"score,omitempty"` + Score float64 `json:"score,omitempty" toon:"score,omitempty"` // Quick-silence URL for this incident. - SilenceURL string `json:"silence_url,omitempty"` + SilenceURL string `json:"silence_url,omitempty" toon:"silence_url,omitempty"` // Unix timestamp (seconds) until which notifications are snoozed. 0 if not snoozed. - SnoozedBefore Timestamp `json:"snoozed_before,omitempty"` + SnoozedBefore Timestamp `json:"snoozed_before,omitempty" toon:"snoozed_before,omitempty"` // Unix timestamp (seconds) when the incident started. - StartTime Timestamp `json:"start_time,omitempty"` + StartTime Timestamp `json:"start_time,omitempty" toon:"start_time,omitempty"` // Incident title. - Title string `json:"title,omitempty"` + Title string `json:"title,omitempty" toon:"title,omitempty"` // Last update timestamp (seconds). - UpdatedAt Timestamp `json:"updated_at,omitempty"` + UpdatedAt Timestamp `json:"updated_at,omitempty" toon:"updated_at,omitempty"` } // PermissionFactorItem is generated from the Flashduty OpenAPI schema. type PermissionFactorItem struct { // Factor identifier (e.g., 'template:read:info'). - FactorName string `json:"factor_name,omitempty"` + FactorName string `json:"factor_name,omitempty" toon:"factor_name,omitempty"` // Factor type. - FactorType string `json:"factor_type,omitempty"` + FactorType string `json:"factor_type,omitempty" toon:"factor_type,omitempty"` } // PermissionFactorListRequest is generated from the Flashduty OpenAPI schema. type PermissionFactorListRequest struct { // Filter by factor type. - FactorTypes []string `json:"factor_types,omitempty"` + FactorTypes []string `json:"factor_types,omitempty" toon:"factor_types,omitempty"` } // PermissionItem is generated from the Flashduty OpenAPI schema. type PermissionItem struct { // Permission class (e.g., 'On-call', 'Organization'). - Class string `json:"class,omitempty"` + Class string `json:"class,omitempty" toon:"class,omitempty"` // Human-readable permission description. - Description string `json:"description,omitempty"` + Description string `json:"description,omitempty" toon:"description,omitempty"` // Unique permission ID. - ID uint64 `json:"id,omitempty"` + ID uint64 `json:"id,omitempty" toon:"id,omitempty"` // Present when with_all is true. Indicates whether this permission is granted to the requested roles. - IsGranted bool `json:"is_granted,omitempty"` + IsGranted bool `json:"is_granted,omitempty" toon:"is_granted,omitempty"` // Permission display name. - PermissionName string `json:"permission_name,omitempty"` + PermissionName string `json:"permission_name,omitempty" toon:"permission_name,omitempty"` // Whether this is a read or manage permission. - PermissionType string `json:"permission_type,omitempty"` + PermissionType string `json:"permission_type,omitempty" toon:"permission_type,omitempty"` // Permission scope (e.g., 'on-call', 'organization'). - Scope string `json:"scope,omitempty"` + Scope string `json:"scope,omitempty" toon:"scope,omitempty"` // Permission status. - Status string `json:"status,omitempty"` + Status string `json:"status,omitempty" toon:"status,omitempty"` } // PersonInfosRequest is generated from the Flashduty OpenAPI schema. type PersonInfosRequest struct { // List of person IDs - PersonIDs []uint64 `json:"person_ids,omitempty"` + PersonIDs []uint64 `json:"person_ids,omitempty" toon:"person_ids,omitempty"` } // PersonInfosResponse is generated from the Flashduty OpenAPI schema. type PersonInfosResponse struct { // Person profiles - Items []PersonItem `json:"items,omitempty"` + Items []PersonItem `json:"items,omitempty" toon:"items,omitempty"` } // PersonItem is generated from the Flashduty OpenAPI schema. type PersonItem struct { // Account ID - AccountID uint64 `json:"account_id,omitempty"` + AccountID uint64 `json:"account_id,omitempty" toon:"account_id,omitempty"` // Login role (account/member) - As string `json:"as,omitempty"` + As string `json:"as,omitempty" toon:"as,omitempty"` // Avatar URL - Avatar string `json:"avatar,omitempty"` + Avatar string `json:"avatar,omitempty" toon:"avatar,omitempty"` // Email address - Email string `json:"email,omitempty"` + Email string `json:"email,omitempty" toon:"email,omitempty"` // Email verified - EmailVerified bool `json:"email_verified,omitempty"` + EmailVerified bool `json:"email_verified,omitempty" toon:"email_verified,omitempty"` // Locale - Locale string `json:"locale,omitempty"` + Locale string `json:"locale,omitempty" toon:"locale,omitempty"` // Person ID - PersonID uint64 `json:"person_id,omitempty"` + PersonID uint64 `json:"person_id,omitempty" toon:"person_id,omitempty"` // Display name - PersonName string `json:"person_name,omitempty"` + PersonName string `json:"person_name,omitempty" toon:"person_name,omitempty"` // Phone number - Phone string `json:"phone,omitempty"` + Phone string `json:"phone,omitempty" toon:"phone,omitempty"` // Phone verified - PhoneVerified bool `json:"phone_verified,omitempty"` + PhoneVerified bool `json:"phone_verified,omitempty" toon:"phone_verified,omitempty"` // Person status. `enabled` — active; `pending` — invited but not yet accepted; `deleted` — removed. - Status string `json:"status,omitempty"` + Status string `json:"status,omitempty" toon:"status,omitempty"` // Time zone - TimeZone string `json:"time_zone,omitempty"` + TimeZone string `json:"time_zone,omitempty" toon:"time_zone,omitempty"` } // PersonShort is generated from the Flashduty OpenAPI schema. type PersonShort struct { // Role label for this member in the context of the current object. - As string `json:"as,omitempty"` + As string `json:"as,omitempty" toon:"as,omitempty"` // Member email address. - Email string `json:"email,omitempty"` + Email string `json:"email,omitempty" toon:"email,omitempty"` // Member ID. - PersonID int64 `json:"person_id,omitempty"` + PersonID int64 `json:"person_id,omitempty" toon:"person_id,omitempty"` // Member display name. - PersonName string `json:"person_name,omitempty"` + PersonName string `json:"person_name,omitempty" toon:"person_name,omitempty"` } // PlatformEmptyObject is generated from the Flashduty OpenAPI schema. @@ -4315,356 +4321,356 @@ type PlatformEmptyObject struct{} // PostMortemItem is generated from the Flashduty OpenAPI schema. type PostMortemItem struct { - Basics PostMortemItemBasics `json:"basics,omitempty"` - Content PostMortemItemContent `json:"content,omitempty"` + Basics PostMortemItemBasics `json:"basics,omitempty" toon:"basics,omitempty"` + Content PostMortemItemContent `json:"content,omitempty" toon:"content,omitempty"` // Follow-up action items rendered as a single string. - FollowUps string `json:"follow_ups,omitempty"` - Meta PostMortemMeta `json:"meta,omitempty"` + FollowUps string `json:"follow_ups,omitempty" toon:"follow_ups,omitempty"` + Meta PostMortemMeta `json:"meta,omitempty" toon:"meta,omitempty"` } // PostMortemMeta is generated from the Flashduty OpenAPI schema. type PostMortemMeta struct { // Account ID. - AccountID int64 `json:"account_id,omitempty"` + AccountID int64 `json:"account_id,omitempty" toon:"account_id,omitempty"` // Member IDs that contributed to the report. - AuthorIDs []int64 `json:"author_ids,omitempty"` + AuthorIDs []int64 `json:"author_ids,omitempty" toon:"author_ids,omitempty"` // Owning channel ID. 0 if none. - ChannelID int64 `json:"channel_id,omitempty"` + ChannelID int64 `json:"channel_id,omitempty" toon:"channel_id,omitempty"` // Channel name, filled by the server. - ChannelName string `json:"channel_name,omitempty"` + ChannelName string `json:"channel_name,omitempty" toon:"channel_name,omitempty"` // Creation timestamp (seconds). - CreatedAtSeconds Timestamp `json:"created_at_seconds,omitempty"` + CreatedAtSeconds Timestamp `json:"created_at_seconds,omitempty" toon:"created_at_seconds,omitempty"` // Linked incident IDs. - IncidentIDs []string `json:"incident_ids,omitempty"` + IncidentIDs []string `json:"incident_ids,omitempty" toon:"incident_ids,omitempty"` // When true, only team members and admins can view. - IsPrivate bool `json:"is_private,omitempty"` + IsPrivate bool `json:"is_private,omitempty" toon:"is_private,omitempty"` // Number of uploaded media files. - MediaCount int64 `json:"media_count,omitempty"` + MediaCount int64 `json:"media_count,omitempty" toon:"media_count,omitempty"` // Deterministic post-mortem ID derived from account and incident IDs. - PostMortemID string `json:"post_mortem_id,omitempty"` + PostMortemID string `json:"post_mortem_id,omitempty" toon:"post_mortem_id,omitempty"` // Report status. - Status string `json:"status,omitempty"` + Status string `json:"status,omitempty" toon:"status,omitempty"` // Owning team ID. 0 if none. - TeamID int64 `json:"team_id,omitempty"` + TeamID int64 `json:"team_id,omitempty" toon:"team_id,omitempty"` // Template used to initialize the report. - TemplateID string `json:"template_id,omitempty"` + TemplateID string `json:"template_id,omitempty" toon:"template_id,omitempty"` // Report title. - Title string `json:"title,omitempty"` + Title string `json:"title,omitempty" toon:"title,omitempty"` // Last update timestamp (seconds). - UpdatedAtSeconds Timestamp `json:"updated_at_seconds,omitempty"` + UpdatedAtSeconds Timestamp `json:"updated_at_seconds,omitempty" toon:"updated_at_seconds,omitempty"` } // PreviewTemplateRequest is generated from the Flashduty OpenAPI schema. type PreviewTemplateRequest struct { // Template content to render. - Content string `json:"content,omitempty"` + Content string `json:"content,omitempty" toon:"content,omitempty"` // Incident ID whose data is used to render the template; mock data is used when omitted. A MongoDB ObjectID hex string. - IncidentID string `json:"incident_id,omitempty"` + IncidentID string `json:"incident_id,omitempty" toon:"incident_id,omitempty"` // Template channel type that selects the rendering engine. - Type string `json:"type,omitempty"` + Type string `json:"type,omitempty" toon:"type,omitempty"` } // PreviewTemplateResponse is generated from the Flashduty OpenAPI schema. type PreviewTemplateResponse struct { // Rendered template output, present when success is true. - Content string `json:"content,omitempty"` + Content string `json:"content,omitempty" toon:"content,omitempty"` // Error message describing why rendering failed, present when success is false. - Message string `json:"message,omitempty"` + Message string `json:"message,omitempty" toon:"message,omitempty"` // Whether the template rendered without errors. - Success bool `json:"success,omitempty"` + Success bool `json:"success,omitempty" toon:"success,omitempty"` } // QueryRow is generated from the Flashduty OpenAPI schema. type QueryRow struct { // String-valued fields (labels, log fields, SQL columns). - Fields map[string]string `json:"fields,omitempty"` + Fields map[string]string `json:"fields,omitempty" toon:"fields,omitempty"` // Numeric fields. For metric queries the canonical key is `__value__`. May be `null` for detail-oriented sources. - Values map[string]float64 `json:"values,omitempty"` + Values map[string]float64 `json:"values,omitempty" toon:"values,omitempty"` } // QueryRowsRequest is generated from the Flashduty OpenAPI schema. type QueryRowsRequest struct { // Optional consistency check. Must equal the authenticated account when supplied; mismatched values are rejected. Business execution always uses the authenticated account. - AccountID int64 `json:"account_id,omitempty"` + AccountID int64 `json:"account_id,omitempty" toon:"account_id,omitempty"` // Polymorphic key/value extension parameters forwarded verbatim to monit-edge. All values must be strings. Semantics depend on `ds_type`: SLS requires `sls.project` + `sls.logstore`; Loki / VictoriaLogs raw mode requires a time range via `.start`/`.end` or `.timespan.value` + `.timespan.unit`; Prometheus and SQL sources ignore it. Always namespace keys by source (e.g. `sls.project`, `loki.type`). - Args map[string]string `json:"args,omitempty"` + Args map[string]string `json:"args,omitempty" toon:"args,omitempty"` // Look-back offset in seconds applied to point-in-time queries (Prometheus, Loki stats, VictoriaLogs stats). Ignored for raw / detail queries. - DelaySeconds int64 `json:"delay_seconds,omitempty"` + DelaySeconds int64 `json:"delay_seconds,omitempty" toon:"delay_seconds,omitempty"` // Data source name; must match a configured data source under the tenant. - DsName string `json:"ds_name,omitempty"` + DsName string `json:"ds_name,omitempty" toon:"ds_name,omitempty"` // Data source type; must match a configured data source under the tenant. Examples: `prometheus`, `loki`, `victorialogs`, `sls`, `elasticsearch`, `mysql`, `postgres`, `oracle`, `clickhouse`. - DsType string `json:"ds_type,omitempty"` + DsType string `json:"ds_type,omitempty" toon:"ds_type,omitempty"` // Query expression. Syntax depends on `ds_type` and is interpreted by the corresponding monit-edge client (PromQL for Prometheus, LogQL for Loki, SQL for SQL sources, etc.). - Expr string `json:"expr,omitempty"` + Expr string `json:"expr,omitempty" toon:"expr,omitempty"` } // RemoveIncidentRequest is generated from the Flashduty OpenAPI schema. type RemoveIncidentRequest struct { // Incident IDs to remove. At most 100 per call. The caller must have access to every channel the incidents belong to. - IncidentIDs []string `json:"incident_ids,omitempty"` + IncidentIDs []string `json:"incident_ids,omitempty" toon:"incident_ids,omitempty"` } // ReopenIncidentRequest is generated from the Flashduty OpenAPI schema. type ReopenIncidentRequest struct { // Incident IDs to reopen. At most 100 per call. - IncidentIDs []string `json:"incident_ids,omitempty"` + IncidentIDs []string `json:"incident_ids,omitempty" toon:"incident_ids,omitempty"` // Optional reason recorded on the timeline. - Reason string `json:"reason,omitempty"` + Reason string `json:"reason,omitempty" toon:"reason,omitempty"` } // ResetIncidentFieldRequest is generated from the Flashduty OpenAPI schema. type ResetIncidentFieldRequest struct { // Custom field name; must match a field defined on the account. - FieldName string `json:"field_name,omitempty"` + FieldName string `json:"field_name,omitempty" toon:"field_name,omitempty"` // New field value. Type must match the field definition. - FieldValue any `json:"field_value,omitempty"` + FieldValue any `json:"field_value,omitempty" toon:"field_value,omitempty"` // Incident ID (MongoDB ObjectID). - IncidentID string `json:"incident_id,omitempty"` + IncidentID string `json:"incident_id,omitempty" toon:"incident_id,omitempty"` } // ResolveIncidentRequest is generated from the Flashduty OpenAPI schema. type ResolveIncidentRequest struct { // Incident IDs to resolve. At most 100 per call. - IncidentIDs []string `json:"incident_ids,omitempty"` + IncidentIDs []string `json:"incident_ids,omitempty" toon:"incident_ids,omitempty"` // Optional resolution note applied to every resolved incident. - Resolution *string `json:"resolution,omitempty"` + Resolution *string `json:"resolution,omitempty" toon:"resolution,omitempty"` // Optional root cause note applied to every resolved incident. - RootCause *string `json:"root_cause,omitempty"` + RootCause *string `json:"root_cause,omitempty" toon:"root_cause,omitempty"` } // Responder is generated from the Flashduty OpenAPI schema. type Responder struct { // Unix timestamp (seconds) when the member acknowledged. 0 if not yet acknowledged. - AcknowledgedAt Timestamp `json:"acknowledged_at,omitempty"` + AcknowledgedAt Timestamp `json:"acknowledged_at,omitempty" toon:"acknowledged_at,omitempty"` // Role label of this responder. - As string `json:"as,omitempty"` + As string `json:"as,omitempty" toon:"as,omitempty"` // Unix timestamp (seconds) when the member was assigned. - AssignedAt Timestamp `json:"assigned_at,omitempty"` + AssignedAt Timestamp `json:"assigned_at,omitempty" toon:"assigned_at,omitempty"` // Member email, filled by the server. - Email string `json:"email,omitempty"` + Email string `json:"email,omitempty" toon:"email,omitempty"` // Responder member ID. - PersonID int64 `json:"person_id,omitempty"` + PersonID int64 `json:"person_id,omitempty" toon:"person_id,omitempty"` // Member display name, filled by the server. - PersonName string `json:"person_name,omitempty"` + PersonName string `json:"person_name,omitempty" toon:"person_name,omitempty"` } // ResponderInsightItem is generated from the Flashduty OpenAPI schema. type ResponderInsightItem struct { - AccountID int64 `json:"account_id,omitempty"` - AcknowledgementPct float64 `json:"acknowledgement_pct,omitempty"` - ChannelID int64 `json:"channel_id,omitempty"` - ChannelName string `json:"channel_name,omitempty"` + AccountID int64 `json:"account_id,omitempty" toon:"account_id,omitempty"` + AcknowledgementPct float64 `json:"acknowledgement_pct,omitempty" toon:"acknowledgement_pct,omitempty"` + ChannelID int64 `json:"channel_id,omitempty" toon:"channel_id,omitempty"` + ChannelName string `json:"channel_name,omitempty" toon:"channel_name,omitempty"` // Hour bucket when `split_hours` is enabled. - Hours string `json:"hours,omitempty"` - MeanSecondsToAck float64 `json:"mean_seconds_to_ack,omitempty"` - ResponderID int64 `json:"responder_id,omitempty"` - ResponderName string `json:"responder_name,omitempty"` - TeamID int64 `json:"team_id,omitempty"` - TeamName string `json:"team_name,omitempty"` - TotalEngagedSeconds int64 `json:"total_engaged_seconds,omitempty"` - TotalIncidentCnt int64 `json:"total_incident_cnt,omitempty"` - TotalIncidentsAcknowledged int64 `json:"total_incidents_acknowledged,omitempty"` - TotalIncidentsEscalated int64 `json:"total_incidents_escalated,omitempty"` - TotalIncidentsManuallyEscalated int64 `json:"total_incidents_manually_escalated,omitempty"` - TotalIncidentsReassigned int64 `json:"total_incidents_reassigned,omitempty"` - TotalIncidentsTimeoutEscalated int64 `json:"total_incidents_timeout_escalated,omitempty"` - TotalInterruptions int64 `json:"total_interruptions,omitempty"` - TotalNotifications int64 `json:"total_notifications,omitempty"` - TotalSecondsToAck int64 `json:"total_seconds_to_ack,omitempty"` + Hours string `json:"hours,omitempty" toon:"hours,omitempty"` + MeanSecondsToAck float64 `json:"mean_seconds_to_ack,omitempty" toon:"mean_seconds_to_ack,omitempty"` + ResponderID int64 `json:"responder_id,omitempty" toon:"responder_id,omitempty"` + ResponderName string `json:"responder_name,omitempty" toon:"responder_name,omitempty"` + TeamID int64 `json:"team_id,omitempty" toon:"team_id,omitempty"` + TeamName string `json:"team_name,omitempty" toon:"team_name,omitempty"` + TotalEngagedSeconds int64 `json:"total_engaged_seconds,omitempty" toon:"total_engaged_seconds,omitempty"` + TotalIncidentCnt int64 `json:"total_incident_cnt,omitempty" toon:"total_incident_cnt,omitempty"` + TotalIncidentsAcknowledged int64 `json:"total_incidents_acknowledged,omitempty" toon:"total_incidents_acknowledged,omitempty"` + TotalIncidentsEscalated int64 `json:"total_incidents_escalated,omitempty" toon:"total_incidents_escalated,omitempty"` + TotalIncidentsManuallyEscalated int64 `json:"total_incidents_manually_escalated,omitempty" toon:"total_incidents_manually_escalated,omitempty"` + TotalIncidentsReassigned int64 `json:"total_incidents_reassigned,omitempty" toon:"total_incidents_reassigned,omitempty"` + TotalIncidentsTimeoutEscalated int64 `json:"total_incidents_timeout_escalated,omitempty" toon:"total_incidents_timeout_escalated,omitempty"` + TotalInterruptions int64 `json:"total_interruptions,omitempty" toon:"total_interruptions,omitempty"` + TotalNotifications int64 `json:"total_notifications,omitempty" toon:"total_notifications,omitempty"` + TotalSecondsToAck int64 `json:"total_seconds_to_ack,omitempty" toon:"total_seconds_to_ack,omitempty"` // Aggregation bucket start time, Unix seconds. Present when `aggregate_unit` is used. - TS Timestamp `json:"ts,omitempty"` + TS Timestamp `json:"ts,omitempty" toon:"ts,omitempty"` } // ResponderInsightResponse is generated from the Flashduty OpenAPI schema. type ResponderInsightResponse struct { - Items []ResponderInsightItem `json:"items,omitempty"` + Items []ResponderInsightItem `json:"items,omitempty" toon:"items,omitempty"` } // ResponseEnvelope is generated from the Flashduty OpenAPI schema. type ResponseEnvelope struct { // Endpoint-specific payload. See each operation's 200 response schema. - Data any `json:"data,omitempty"` - Error any `json:"error,omitempty"` + Data any `json:"data,omitempty" toon:"data,omitempty"` + Error any `json:"error,omitempty" toon:"error,omitempty"` // Unique ID for this request. Mirrored in the Flashcat-Request-Id header. Include it when reporting issues. - RequestID string `json:"request_id,omitempty"` + RequestID string `json:"request_id,omitempty" toon:"request_id,omitempty"` } // RoleGrantRequest is generated from the Flashduty OpenAPI schema. type RoleGrantRequest struct { // Member IDs to grant/revoke the role. Max 100. - MemberIDs []uint64 `json:"member_ids,omitempty"` + MemberIDs []uint64 `json:"member_ids,omitempty" toon:"member_ids,omitempty"` // Role ID to grant or revoke. - RoleID uint64 `json:"role_id,omitempty"` + RoleID uint64 `json:"role_id,omitempty" toon:"role_id,omitempty"` } // RoleIDRequest is generated from the Flashduty OpenAPI schema. type RoleIDRequest struct { // Role ID. - RoleID uint64 `json:"role_id,omitempty"` + RoleID uint64 `json:"role_id,omitempty" toon:"role_id,omitempty"` } // RoleInfoRequest is generated from the Flashduty OpenAPI schema. type RoleInfoRequest struct { // Role ID. - RoleID uint64 `json:"role_id,omitempty"` + RoleID uint64 `json:"role_id,omitempty" toon:"role_id,omitempty"` } // RoleItem is generated from the Flashduty OpenAPI schema. type RoleItem struct { // Unix epoch seconds the role was created. - CreatedAt Timestamp `json:"created_at,omitempty"` + CreatedAt Timestamp `json:"created_at,omitempty" toon:"created_at,omitempty"` // Role description. - Description string `json:"description,omitempty"` + Description string `json:"description,omitempty" toon:"description,omitempty"` // False for built-in roles which cannot be modified. - Editable bool `json:"editable,omitempty"` + Editable bool `json:"editable,omitempty" toon:"editable,omitempty"` // IDs of permissions granted by this role. - PermissionIDs []uint64 `json:"permission_ids,omitempty"` + PermissionIDs []uint64 `json:"permission_ids,omitempty" toon:"permission_ids,omitempty"` // Unique role ID. - RoleID uint64 `json:"role_id,omitempty"` + RoleID uint64 `json:"role_id,omitempty" toon:"role_id,omitempty"` // Role display name. - RoleName string `json:"role_name,omitempty"` + RoleName string `json:"role_name,omitempty" toon:"role_name,omitempty"` // Role status. - Status string `json:"status,omitempty"` + Status string `json:"status,omitempty" toon:"status,omitempty"` // Unix epoch seconds the role was last updated. - UpdatedAt Timestamp `json:"updated_at,omitempty"` + UpdatedAt Timestamp `json:"updated_at,omitempty" toon:"updated_at,omitempty"` } // RoleListRequest is generated from the Flashduty OpenAPI schema. type RoleListRequest struct { // Ascending sort order. - Asc bool `json:"asc,omitempty"` + Asc bool `json:"asc,omitempty" toon:"asc,omitempty"` // Sort field. - Orderby string `json:"orderby,omitempty"` + Orderby string `json:"orderby,omitempty" toon:"orderby,omitempty"` } // RoleListResponse is generated from the Flashduty OpenAPI schema. type RoleListResponse struct { - Items []RoleItem `json:"items,omitempty"` + Items []RoleItem `json:"items,omitempty" toon:"items,omitempty"` // Total role count. - Total int64 `json:"total,omitempty"` + Total int64 `json:"total,omitempty" toon:"total,omitempty"` } // RolePermissionListRequest is generated from the Flashduty OpenAPI schema. type RolePermissionListRequest struct { // Filter to permissions granted to these roles. - RoleIDs []uint64 `json:"role_ids,omitempty"` + RoleIDs []uint64 `json:"role_ids,omitempty" toon:"role_ids,omitempty"` // If true, return all permissions with is_granted set to indicate which are granted. - WithAll bool `json:"with_all,omitempty"` + WithAll bool `json:"with_all,omitempty" toon:"with_all,omitempty"` } // RolePermissionListResponse is generated from the Flashduty OpenAPI schema. type RolePermissionListResponse struct { - Items []PermissionItem `json:"items,omitempty"` + Items []PermissionItem `json:"items,omitempty" toon:"items,omitempty"` } // RoleUpsertRequest is generated from the Flashduty OpenAPI schema. type RoleUpsertRequest struct { // Role description. - Description string `json:"description,omitempty"` + Description string `json:"description,omitempty" toon:"description,omitempty"` // Permission IDs to grant. Replaces the existing set. - PermissionIDs []uint64 `json:"permission_ids,omitempty"` + PermissionIDs []uint64 `json:"permission_ids,omitempty" toon:"permission_ids,omitempty"` // Role ID. Omit or set to 0 to create. - RoleID uint64 `json:"role_id,omitempty"` + RoleID uint64 `json:"role_id,omitempty" toon:"role_id,omitempty"` // Role display name. 1–39 characters. - RoleName string `json:"role_name,omitempty"` + RoleName string `json:"role_name,omitempty" toon:"role_name,omitempty"` } // RoleUpsertResponse is generated from the Flashduty OpenAPI schema. type RoleUpsertResponse struct { // Created or updated role ID. - RoleID uint64 `json:"role_id,omitempty"` + RoleID uint64 `json:"role_id,omitempty" toon:"role_id,omitempty"` // Role name echoed from the request. - RoleName string `json:"role_name,omitempty"` + RoleName string `json:"role_name,omitempty" toon:"role_name,omitempty"` } // RouteCase is generated from the Flashduty OpenAPI schema. type RouteCase struct { // Target channel IDs. Required when `routing_mode` is `standard` (or empty). - ChannelIDs []int64 `json:"channel_ids,omitempty"` + ChannelIDs []int64 `json:"channel_ids,omitempty" toon:"channel_ids,omitempty"` // If `true`, evaluation continues to the next case after this one matches; otherwise matching stops at the first hit. - Fallthrough bool `json:"fallthrough,omitempty"` + Fallthrough bool `json:"fallthrough,omitempty" toon:"fallthrough,omitempty"` // List of match conditions that are AND-ed together. - If []RouteMatchCondition `json:"if,omitempty"` + If []RouteMatchCondition `json:"if,omitempty" toon:"if,omitempty"` // Label key whose value is used as the target channel name. Required when `routing_mode` is `name_mapping`. - NameMappingLabel string `json:"name_mapping_label,omitempty"` + NameMappingLabel string `json:"name_mapping_label,omitempty" toon:"name_mapping_label,omitempty"` // Routing mode. `standard` (default, also used when left empty) routes to the fixed channel IDs; `name_mapping` resolves channels by reading a label value from the alert event. - RoutingMode string `json:"routing_mode,omitempty"` + RoutingMode string `json:"routing_mode,omitempty" toon:"routing_mode,omitempty"` } // RouteDefault is generated from the Flashduty OpenAPI schema. type RouteDefault struct { // Channel IDs to fall back to. - ChannelIDs []int64 `json:"channel_ids,omitempty"` + ChannelIDs []int64 `json:"channel_ids,omitempty" toon:"channel_ids,omitempty"` } // RouteInfoRequest is generated from the Flashduty OpenAPI schema. type RouteInfoRequest struct { // Integration ID. Must be greater than 0. - IntegrationID int64 `json:"integration_id,omitempty"` + IntegrationID int64 `json:"integration_id,omitempty" toon:"integration_id,omitempty"` } // RouteItem is generated from the Flashduty OpenAPI schema. type RouteItem struct { // Ordered list of case branches. - Cases []RouteCase `json:"cases,omitempty"` + Cases []RouteCase `json:"cases,omitempty" toon:"cases,omitempty"` // Creation time, Unix timestamp in seconds. - CreatedAt Timestamp `json:"created_at,omitempty"` + CreatedAt Timestamp `json:"created_at,omitempty" toon:"created_at,omitempty"` // ID of the person who created the rule. - CreatorID int64 `json:"creator_id,omitempty"` - Default RouteDefault `json:"default,omitempty"` + CreatorID int64 `json:"creator_id,omitempty" toon:"creator_id,omitempty"` + Default RouteDefault `json:"default,omitempty" toon:"default,omitempty"` // Soft-delete timestamp, Unix seconds. Omitted when the rule is active. - DeletedAt Timestamp `json:"deleted_at,omitempty"` + DeletedAt Timestamp `json:"deleted_at,omitempty" toon:"deleted_at,omitempty"` // Integration the rule belongs to. - IntegrationID int64 `json:"integration_id,omitempty"` + IntegrationID int64 `json:"integration_id,omitempty" toon:"integration_id,omitempty"` // Optional sections that visually group cases. - Sections []RouteSection `json:"sections,omitempty"` + Sections []RouteSection `json:"sections,omitempty" toon:"sections,omitempty"` // Rule status. - Status string `json:"status,omitempty"` + Status string `json:"status,omitempty" toon:"status,omitempty"` // Last update time, Unix timestamp in seconds. - UpdatedAt Timestamp `json:"updated_at,omitempty"` + UpdatedAt Timestamp `json:"updated_at,omitempty" toon:"updated_at,omitempty"` // ID of the person who performed the last update. - UpdatedBy int64 `json:"updated_by,omitempty"` + UpdatedBy int64 `json:"updated_by,omitempty" toon:"updated_by,omitempty"` // Monotonic version number, incremented on each update. Use it for optimistic concurrency control. - Version int64 `json:"version,omitempty"` + Version int64 `json:"version,omitempty" toon:"version,omitempty"` } // RouteMatchCondition is generated from the Flashduty OpenAPI schema. type RouteMatchCondition struct { // Field key to match against the alert event (e.g. `alert_severity`, `labels.service`). - Key string `json:"key,omitempty"` + Key string `json:"key,omitempty" toon:"key,omitempty"` // Match operator. `IN` matches when the field value is one of `vals`; `NOTIN` matches when it is not. - Oper string `json:"oper,omitempty"` + Oper string `json:"oper,omitempty" toon:"oper,omitempty"` // Values to compare against. Each value may be a literal string, a wildcard (`*`, `?`), a regular expression wrapped in slashes (`/pattern/`), a CIDR (`cidr:10.0.0.0/8`), or a numeric comparison (`num:lt:100`). - Vals []string `json:"vals,omitempty"` + Vals []string `json:"vals,omitempty" toon:"vals,omitempty"` } // RouteSection is generated from the Flashduty OpenAPI schema. type RouteSection struct { // Section name. Must be unique within the rule. - Name string `json:"name,omitempty"` + Name string `json:"name,omitempty" toon:"name,omitempty"` // Index in `cases` where this section starts. Must be between 0 and the length of `cases`. - Position int64 `json:"position,omitempty"` + Position int64 `json:"position,omitempty" toon:"position,omitempty"` } // RuleConfigs is generated from the Flashduty OpenAPI schema. type RuleConfigs struct { // Any-data check configuration. Fires when the query returns any data rows. - CheckAnydata RuleConfigsCheckAnydata `json:"check_anydata,omitempty"` + CheckAnydata RuleConfigsCheckAnydata `json:"check_anydata,omitempty" toon:"check_anydata,omitempty"` // No-data check configuration. - CheckNodata RuleConfigsCheckNodata `json:"check_nodata,omitempty"` + CheckNodata RuleConfigsCheckNodata `json:"check_nodata,omitempty" toon:"check_nodata,omitempty"` // Threshold check configuration. - CheckThreshold RuleConfigsCheckThreshold `json:"check_threshold,omitempty"` - Queries []RuleConfigsQueriesItem `json:"queries,omitempty"` + CheckThreshold RuleConfigsCheckThreshold `json:"check_threshold,omitempty" toon:"check_threshold,omitempty"` + Queries []RuleConfigsQueriesItem `json:"queries,omitempty" toon:"queries,omitempty"` // Optional auxiliary queries whose results are attached to alert events as context. Each entry must have a unique `name` (not duplicating any query name) and a non-empty `expr`. - RelateQueries []RuleConfigsRelateQueriesItem `json:"relate_queries,omitempty"` + RelateQueries []RuleConfigsRelateQueriesItem `json:"relate_queries,omitempty" toon:"relate_queries,omitempty"` } // RuleCreateResponse is generated from the Flashduty OpenAPI schema. type RuleCreateResponse struct { // Newly created rule ID (MongoDB ObjectID). - RuleID string `json:"rule_id,omitempty"` + RuleID string `json:"rule_id,omitempty" toon:"rule_id,omitempty"` // Rule name echoed back from the request. - RuleName string `json:"rule_name,omitempty"` + RuleName string `json:"rule_name,omitempty" toon:"rule_name,omitempty"` } // RuleEmptyRequest is generated from the Flashduty OpenAPI schema. @@ -4675,325 +4681,325 @@ type RuleEmptyResponse struct{} // RuleFieldsUpdateRequest is generated from the Flashduty OpenAPI schema. type RuleFieldsUpdateRequest struct { - Annotations map[string]string `json:"annotations,omitempty"` - ChannelIDs []uint64 `json:"channel_ids,omitempty"` - CronPattern string `json:"cron_pattern,omitempty"` - DebugLogEnabled bool `json:"debug_log_enabled,omitempty"` - DelaySeconds int64 `json:"delay_seconds,omitempty"` - Description string `json:"description,omitempty"` - DsIDs []uint64 `json:"ds_ids,omitempty"` - DsList []string `json:"ds_list,omitempty"` - DsType string `json:"ds_type,omitempty"` - Enabled bool `json:"enabled,omitempty"` - EnabledTimes []EnabledTime `json:"enabled_times,omitempty"` + Annotations map[string]string `json:"annotations,omitempty" toon:"annotations,omitempty"` + ChannelIDs []uint64 `json:"channel_ids,omitempty" toon:"channel_ids,omitempty"` + CronPattern string `json:"cron_pattern,omitempty" toon:"cron_pattern,omitempty"` + DebugLogEnabled bool `json:"debug_log_enabled,omitempty" toon:"debug_log_enabled,omitempty"` + DelaySeconds int64 `json:"delay_seconds,omitempty" toon:"delay_seconds,omitempty"` + Description string `json:"description,omitempty" toon:"description,omitempty"` + DsIDs []uint64 `json:"ds_ids,omitempty" toon:"ds_ids,omitempty"` + DsList []string `json:"ds_list,omitempty" toon:"ds_list,omitempty"` + DsType string `json:"ds_type,omitempty" toon:"ds_type,omitempty"` + Enabled bool `json:"enabled,omitempty" toon:"enabled,omitempty"` + EnabledTimes []EnabledTime `json:"enabled_times,omitempty" toon:"enabled_times,omitempty"` // Field names to update. - Fields []string `json:"fields,omitempty"` + Fields []string `json:"fields,omitempty" toon:"fields,omitempty"` // Rule IDs to update. - IDs []uint64 `json:"ids,omitempty"` - Labels map[string]string `json:"labels,omitempty"` - RepeatInterval int64 `json:"repeat_interval,omitempty"` - RepeatTotal int64 `json:"repeat_total,omitempty"` + IDs []uint64 `json:"ids,omitempty" toon:"ids,omitempty"` + Labels map[string]string `json:"labels,omitempty" toon:"labels,omitempty"` + RepeatInterval int64 `json:"repeat_interval,omitempty" toon:"repeat_interval,omitempty"` + RepeatTotal int64 `json:"repeat_total,omitempty" toon:"repeat_total,omitempty"` } // RuleFolderIDRequest is generated from the Flashduty OpenAPI schema. type RuleFolderIDRequest struct { // Folder ID. 0 for all. - FolderID uint64 `json:"folder_id,omitempty"` + FolderID uint64 `json:"folder_id,omitempty" toon:"folder_id,omitempty"` } // RuleIDRequest is generated from the Flashduty OpenAPI schema. type RuleIDRequest struct { // Rule ID. - ID uint64 `json:"id,omitempty"` + ID uint64 `json:"id,omitempty" toon:"id,omitempty"` } // RuleIDsRequest is generated from the Flashduty OpenAPI schema. type RuleIDsRequest struct { // Rule IDs. - IDs []uint64 `json:"ids,omitempty"` + IDs []uint64 `json:"ids,omitempty" toon:"ids,omitempty"` } // RuleListRequest is generated from the Flashduty OpenAPI schema. type RuleListRequest struct { // Folder ID. 0 to list all accessible rules. - FolderID uint64 `json:"folder_id,omitempty"` + FolderID uint64 `json:"folder_id,omitempty" toon:"folder_id,omitempty"` } // RuleMoveRequest is generated from the Flashduty OpenAPI schema. type RuleMoveRequest struct { // Destination folder ID. - DestFolderID uint64 `json:"dest_folder_id,omitempty"` + DestFolderID uint64 `json:"dest_folder_id,omitempty" toon:"dest_folder_id,omitempty"` // Rule IDs to move. - IDs []uint64 `json:"ids,omitempty"` + IDs []uint64 `json:"ids,omitempty" toon:"ids,omitempty"` } // RUMApplicationAlerting is generated from the Flashduty OpenAPI schema. type RUMApplicationAlerting struct { // Channel IDs to send alerts to. - ChannelIDs []int64 `json:"channel_ids,omitempty"` + ChannelIDs []int64 `json:"channel_ids,omitempty" toon:"channel_ids,omitempty"` // Whether alerting is enabled. - Enabled bool `json:"enabled,omitempty"` + Enabled bool `json:"enabled,omitempty" toon:"enabled,omitempty"` // Associated on-call integration ID (read-only, auto-assigned). - IntegrationID int64 `json:"integration_id,omitempty"` + IntegrationID int64 `json:"integration_id,omitempty" toon:"integration_id,omitempty"` } // RUMApplicationCreateRequest is generated from the Flashduty OpenAPI schema. type RUMApplicationCreateRequest struct { - Alerting RUMApplicationAlerting `json:"alerting,omitempty"` + Alerting RUMApplicationAlerting `json:"alerting,omitempty" toon:"alerting,omitempty"` // Application name. 1–40 characters. - ApplicationName string `json:"application_name,omitempty"` + ApplicationName string `json:"application_name,omitempty" toon:"application_name,omitempty"` // Restrict access to team members only. - IsPrivate bool `json:"is_private,omitempty"` + IsPrivate bool `json:"is_private,omitempty" toon:"is_private,omitempty"` // Do not infer geographic location. - NoGeo bool `json:"no_geo,omitempty"` + NoGeo bool `json:"no_geo,omitempty" toon:"no_geo,omitempty"` // Do not collect IP addresses. - NoIP bool `json:"no_ip,omitempty"` + NoIP bool `json:"no_ip,omitempty" toon:"no_ip,omitempty"` // Owning team ID. - TeamID int64 `json:"team_id,omitempty"` - Tracing RUMApplicationTracing `json:"tracing,omitempty"` + TeamID int64 `json:"team_id,omitempty" toon:"team_id,omitempty"` + Tracing RUMApplicationTracing `json:"tracing,omitempty" toon:"tracing,omitempty"` // Application type. - Type string `json:"type,omitempty"` + Type string `json:"type,omitempty" toon:"type,omitempty"` } // RUMApplicationCreateResponse is generated from the Flashduty OpenAPI schema. type RUMApplicationCreateResponse struct { // Auto-generated unique application ID. - ApplicationID string `json:"application_id,omitempty"` + ApplicationID string `json:"application_id,omitempty" toon:"application_id,omitempty"` // Application display name. - ApplicationName string `json:"application_name,omitempty"` + ApplicationName string `json:"application_name,omitempty" toon:"application_name,omitempty"` // Token for RUM SDK initialization. - ClientToken string `json:"client_token,omitempty"` + ClientToken string `json:"client_token,omitempty" toon:"client_token,omitempty"` } // RUMApplicationIDRequest is generated from the Flashduty OpenAPI schema. type RUMApplicationIDRequest struct { // RUM application ID. - ApplicationID string `json:"application_id,omitempty"` + ApplicationID string `json:"application_id,omitempty" toon:"application_id,omitempty"` } // RUMApplicationInfosRequest is generated from the Flashduty OpenAPI schema. type RUMApplicationInfosRequest struct { // Up to 200 application IDs. - ApplicationIDs []string `json:"application_ids,omitempty"` + ApplicationIDs []string `json:"application_ids,omitempty" toon:"application_ids,omitempty"` } // RUMApplicationInfosResponse is generated from the Flashduty OpenAPI schema. type RUMApplicationInfosResponse struct { - Items []RUMApplicationItem `json:"items,omitempty"` + Items []RUMApplicationItem `json:"items,omitempty" toon:"items,omitempty"` } // RUMApplicationItem is generated from the Flashduty OpenAPI schema. type RUMApplicationItem struct { // Account ID. - AccountID int64 `json:"account_id,omitempty"` - Alerting RUMApplicationAlerting `json:"alerting,omitempty"` + AccountID int64 `json:"account_id,omitempty" toon:"account_id,omitempty"` + Alerting RUMApplicationAlerting `json:"alerting,omitempty" toon:"alerting,omitempty"` // Unique application ID. - ApplicationID string `json:"application_id,omitempty"` + ApplicationID string `json:"application_id,omitempty" toon:"application_id,omitempty"` // Application display name. - ApplicationName string `json:"application_name,omitempty"` + ApplicationName string `json:"application_name,omitempty" toon:"application_name,omitempty"` // Token used to initialize the RUM SDK. - ClientToken string `json:"client_token,omitempty"` + ClientToken string `json:"client_token,omitempty" toon:"client_token,omitempty"` // Creation timestamp, Unix epoch seconds. - CreatedAt Timestamp `json:"created_at,omitempty"` + CreatedAt Timestamp `json:"created_at,omitempty" toon:"created_at,omitempty"` // Creator member ID. - CreatedBy int64 `json:"created_by,omitempty"` + CreatedBy int64 `json:"created_by,omitempty" toon:"created_by,omitempty"` // If `true`, the application is only accessible to team members. - IsPrivate bool `json:"is_private,omitempty"` + IsPrivate bool `json:"is_private,omitempty" toon:"is_private,omitempty"` // If `true`, geographic location is not inferred from IP. - NoGeo bool `json:"no_geo,omitempty"` + NoGeo bool `json:"no_geo,omitempty" toon:"no_geo,omitempty"` // If `true`, IP addresses are not collected. - NoIP bool `json:"no_ip,omitempty"` + NoIP bool `json:"no_ip,omitempty" toon:"no_ip,omitempty"` // Application status. - Status string `json:"status,omitempty"` + Status string `json:"status,omitempty" toon:"status,omitempty"` // Owning team ID. - TeamID int64 `json:"team_id,omitempty"` - Tracing RUMApplicationTracing `json:"tracing,omitempty"` + TeamID int64 `json:"team_id,omitempty" toon:"team_id,omitempty"` + Tracing RUMApplicationTracing `json:"tracing,omitempty" toon:"tracing,omitempty"` // Application type. - Type string `json:"type,omitempty"` + Type string `json:"type,omitempty" toon:"type,omitempty"` // Last update timestamp, Unix epoch seconds. - UpdatedAt Timestamp `json:"updated_at,omitempty"` + UpdatedAt Timestamp `json:"updated_at,omitempty" toon:"updated_at,omitempty"` // Last updater member ID. - UpdatedBy int64 `json:"updated_by,omitempty"` + UpdatedBy int64 `json:"updated_by,omitempty" toon:"updated_by,omitempty"` } // RUMApplicationListRequest is generated from the Flashduty OpenAPI schema. type RUMApplicationListRequest struct { ListOptions // Sort ascending if `true`. - Asc bool `json:"asc,omitempty"` + Asc bool `json:"asc,omitempty" toon:"asc,omitempty"` // If `true`, return only applications belonging to the current user's teams. - IsMyTeam bool `json:"is_my_team,omitempty"` + IsMyTeam bool `json:"is_my_team,omitempty" toon:"is_my_team,omitempty"` // Sort field. - Orderby string `json:"orderby,omitempty"` + Orderby string `json:"orderby,omitempty" toon:"orderby,omitempty"` // Search query to filter by application name. - Query string `json:"query,omitempty"` + Query string `json:"query,omitempty" toon:"query,omitempty"` // Filter by team ID. - TeamID int64 `json:"team_id,omitempty"` + TeamID int64 `json:"team_id,omitempty" toon:"team_id,omitempty"` } // RUMApplicationListResponse is generated from the Flashduty OpenAPI schema. type RUMApplicationListResponse struct { - HasNextPage bool `json:"has_next_page,omitempty"` - Items []RUMApplicationItem `json:"items,omitempty"` - Total int64 `json:"total,omitempty"` + HasNextPage bool `json:"has_next_page,omitempty" toon:"has_next_page,omitempty"` + Items []RUMApplicationItem `json:"items,omitempty" toon:"items,omitempty"` + Total int64 `json:"total,omitempty" toon:"total,omitempty"` } // RUMApplicationTracing is generated from the Flashduty OpenAPI schema. type RUMApplicationTracing struct { // Whether tracing integration is enabled. - Enabled bool `json:"enabled,omitempty"` + Enabled bool `json:"enabled,omitempty" toon:"enabled,omitempty"` // Trace endpoint URL (http or https). - Endpoint string `json:"endpoint,omitempty"` + Endpoint string `json:"endpoint,omitempty" toon:"endpoint,omitempty"` // How to open the trace link. - OpenType string `json:"open_type,omitempty"` + OpenType string `json:"open_type,omitempty" toon:"open_type,omitempty"` } // RUMApplicationUpdateRequest is generated from the Flashduty OpenAPI schema. type RUMApplicationUpdateRequest struct { - Alerting RUMApplicationAlerting `json:"alerting,omitempty"` + Alerting RUMApplicationAlerting `json:"alerting,omitempty" toon:"alerting,omitempty"` // Application ID to update. - ApplicationID string `json:"application_id,omitempty"` + ApplicationID string `json:"application_id,omitempty" toon:"application_id,omitempty"` // New application name. - ApplicationName *string `json:"application_name,omitempty"` - IsPrivate *bool `json:"is_private,omitempty"` - NoGeo *bool `json:"no_geo,omitempty"` - NoIP *bool `json:"no_ip,omitempty"` - TeamID *int64 `json:"team_id,omitempty"` - Tracing RUMApplicationTracing `json:"tracing,omitempty"` - Type *string `json:"type,omitempty"` + ApplicationName *string `json:"application_name,omitempty" toon:"application_name,omitempty"` + IsPrivate *bool `json:"is_private,omitempty" toon:"is_private,omitempty"` + NoGeo *bool `json:"no_geo,omitempty" toon:"no_geo,omitempty"` + NoIP *bool `json:"no_ip,omitempty" toon:"no_ip,omitempty"` + TeamID *int64 `json:"team_id,omitempty" toon:"team_id,omitempty"` + Tracing RUMApplicationTracing `json:"tracing,omitempty" toon:"tracing,omitempty"` + Type *string `json:"type,omitempty" toon:"type,omitempty"` } // RUMIssueIDRequest is generated from the Flashduty OpenAPI schema. type RUMIssueIDRequest struct { // Issue ID. - IssueID string `json:"issue_id,omitempty"` + IssueID string `json:"issue_id,omitempty" toon:"issue_id,omitempty"` } // RUMIssueItem is generated from the Flashduty OpenAPI schema. type RUMIssueItem struct { - Age int64 `json:"age,omitempty"` - ApplicationID string `json:"application_id,omitempty"` - ApplicationName string `json:"application_name,omitempty"` - CreatedAt int64 `json:"created_at,omitempty"` - Error RUMIssueItemError `json:"error,omitempty"` + Age int64 `json:"age,omitempty" toon:"age,omitempty"` + ApplicationID string `json:"application_id,omitempty" toon:"application_id,omitempty"` + ApplicationName string `json:"application_name,omitempty" toon:"application_name,omitempty"` + CreatedAt int64 `json:"created_at,omitempty" toon:"created_at,omitempty"` + Error RUMIssueItemError `json:"error,omitempty" toon:"error,omitempty"` // Total error occurrences. - ErrorCount int64 `json:"error_count,omitempty"` - FirstSeen RUMIssueItemFirstSeen `json:"first_seen,omitempty"` + ErrorCount int64 `json:"error_count,omitempty" toon:"error_count,omitempty"` + FirstSeen RUMIssueItemFirstSeen `json:"first_seen,omitempty" toon:"first_seen,omitempty"` // Whether the error caused an app crash. - IsCrash bool `json:"is_crash,omitempty"` + IsCrash bool `json:"is_crash,omitempty" toon:"is_crash,omitempty"` // Unique issue ID. - IssueID string `json:"issue_id,omitempty"` - LastSeen RUMIssueItemLastSeen `json:"last_seen,omitempty"` + IssueID string `json:"issue_id,omitempty" toon:"issue_id,omitempty"` + LastSeen RUMIssueItemLastSeen `json:"last_seen,omitempty" toon:"last_seen,omitempty"` // Regression metadata. Present only when a previously resolved issue re-occurred. - Regression RUMIssueItemRegression `json:"regression,omitempty"` - ResolvedAt int64 `json:"resolved_at,omitempty"` - ResolvedBy int64 `json:"resolved_by,omitempty"` - Service string `json:"service,omitempty"` + Regression RUMIssueItemRegression `json:"regression,omitempty" toon:"regression,omitempty"` + ResolvedAt int64 `json:"resolved_at,omitempty" toon:"resolved_at,omitempty"` + ResolvedBy int64 `json:"resolved_by,omitempty" toon:"resolved_by,omitempty"` + Service string `json:"service,omitempty" toon:"service,omitempty"` // Affected user sessions. - SessionCount int64 `json:"session_count,omitempty"` + SessionCount int64 `json:"session_count,omitempty" toon:"session_count,omitempty"` // Issue severity level. - Severity string `json:"severity,omitempty"` - Status string `json:"status,omitempty"` - SuspectedCause RUMIssueItemSuspectedCause `json:"suspected_cause,omitempty"` - TeamID int64 `json:"team_id,omitempty"` - UpdatedAt int64 `json:"updated_at,omitempty"` - Versions []string `json:"versions,omitempty"` + Severity string `json:"severity,omitempty" toon:"severity,omitempty"` + Status string `json:"status,omitempty" toon:"status,omitempty"` + SuspectedCause RUMIssueItemSuspectedCause `json:"suspected_cause,omitempty" toon:"suspected_cause,omitempty"` + TeamID int64 `json:"team_id,omitempty" toon:"team_id,omitempty"` + UpdatedAt int64 `json:"updated_at,omitempty" toon:"updated_at,omitempty"` + Versions []string `json:"versions,omitempty" toon:"versions,omitempty"` } // RUMIssueListRequest is generated from the Flashduty OpenAPI schema. type RUMIssueListRequest struct { ListOptions // Filter by application IDs. - ApplicationIDs []string `json:"application_ids,omitempty"` - Asc bool `json:"asc,omitempty"` - ByIntersection bool `json:"by_intersection,omitempty"` + ApplicationIDs []string `json:"application_ids,omitempty" toon:"application_ids,omitempty"` + Asc bool `json:"asc,omitempty" toon:"asc,omitempty"` + ByIntersection bool `json:"by_intersection,omitempty" toon:"by_intersection,omitempty"` // DQL query for advanced filtering. Cannot be used with `sql`. - Dql string `json:"dql,omitempty"` + Dql string `json:"dql,omitempty" toon:"dql,omitempty"` // End of time range, millisecond timestamp. Maximum range: 183 days. - EndTime int64 `json:"end_time,omitempty"` + EndTime int64 `json:"end_time,omitempty" toon:"end_time,omitempty"` // If `true`, only return issues with at least one associated error event. - ErrorRequired bool `json:"error_required,omitempty"` - Orderby string `json:"orderby,omitempty"` + ErrorRequired bool `json:"error_required,omitempty" toon:"error_required,omitempty"` + Orderby string `json:"orderby,omitempty" toon:"orderby,omitempty"` // SQL-style query for advanced filtering. Cannot be used with `dql`. - Sql string `json:"sql,omitempty"` + Sql string `json:"sql,omitempty" toon:"sql,omitempty"` // Start of time range, millisecond timestamp. - StartTime int64 `json:"start_time,omitempty"` + StartTime int64 `json:"start_time,omitempty" toon:"start_time,omitempty"` // Filter by statuses. - Statuses []string `json:"statuses,omitempty"` + Statuses []string `json:"statuses,omitempty" toon:"statuses,omitempty"` // Filter by suspected causes. - SuspectedCauses []string `json:"suspected_causes,omitempty"` + SuspectedCauses []string `json:"suspected_causes,omitempty" toon:"suspected_causes,omitempty"` // Filter by team IDs. - TeamIDs []int64 `json:"team_ids,omitempty"` + TeamIDs []int64 `json:"team_ids,omitempty" toon:"team_ids,omitempty"` } // RUMIssueListResponse is generated from the Flashduty OpenAPI schema. type RUMIssueListResponse struct { - HasNextPage bool `json:"has_next_page,omitempty"` - Items []RUMIssueItem `json:"items,omitempty"` - Total int64 `json:"total,omitempty"` + HasNextPage bool `json:"has_next_page,omitempty" toon:"has_next_page,omitempty"` + Items []RUMIssueItem `json:"items,omitempty" toon:"items,omitempty"` + Total int64 `json:"total,omitempty" toon:"total,omitempty"` } // RUMIssueUpdateRequest is generated from the Flashduty OpenAPI schema. type RUMIssueUpdateRequest struct { // Issue ID to update. - IssueID string `json:"issue_id,omitempty"` + IssueID string `json:"issue_id,omitempty" toon:"issue_id,omitempty"` // New status. - Status string `json:"status,omitempty"` + Status string `json:"status,omitempty" toon:"status,omitempty"` // Suspected cause. - SuspectedCause string `json:"suspected_cause,omitempty"` + SuspectedCause string `json:"suspected_cause,omitempty" toon:"suspected_cause,omitempty"` } // SLSLogstoresRequest is generated from the Flashduty OpenAPI schema. type SLSLogstoresRequest struct { // SLS datasource ID. - ID uint64 `json:"id,omitempty"` + ID uint64 `json:"id,omitempty" toon:"id,omitempty"` // Pagination offset. - Offset int64 `json:"offset,omitempty"` + Offset int64 `json:"offset,omitempty" toon:"offset,omitempty"` // SLS project name. - Project string `json:"project,omitempty"` + Project string `json:"project,omitempty" toon:"project,omitempty"` // Page size. - Size int64 `json:"size,omitempty"` + Size int64 `json:"size,omitempty" toon:"size,omitempty"` } // SLSProjectsRequest is generated from the Flashduty OpenAPI schema. type SLSProjectsRequest struct { // SLS datasource ID. - ID uint64 `json:"id,omitempty"` + ID uint64 `json:"id,omitempty" toon:"id,omitempty"` // Pagination offset. - Offset int64 `json:"offset,omitempty"` + Offset int64 `json:"offset,omitempty" toon:"offset,omitempty"` // Name prefix filter. - Query string `json:"query,omitempty"` + Query string `json:"query,omitempty" toon:"query,omitempty"` // Page size. - Size int64 `json:"size,omitempty"` + Size int64 `json:"size,omitempty" toon:"size,omitempty"` } // ScheduleCalculatedLayer is generated from the Flashduty OpenAPI schema. type ScheduleCalculatedLayer struct { // Layer display name. - LayerName string `json:"layer_name,omitempty"` + LayerName string `json:"layer_name,omitempty" toon:"layer_name,omitempty"` // Layer mode: 0 = common rotation, 1 = override. - Mode int64 `json:"mode,omitempty"` + Mode int64 `json:"mode,omitempty" toon:"mode,omitempty"` // Layer internal name. - Name string `json:"name,omitempty"` + Name string `json:"name,omitempty" toon:"name,omitempty"` // Computed shifts. - Schedules []ScheduleCalculatedSchedule `json:"schedules,omitempty"` + Schedules []ScheduleCalculatedSchedule `json:"schedules,omitempty" toon:"schedules,omitempty"` } // ScheduleCalculatedSchedule is generated from the Flashduty OpenAPI schema. type ScheduleCalculatedSchedule struct { // Shift end timestamp (Unix seconds). - End Timestamp `json:"end,omitempty"` - Group ScheduleGroup `json:"group,omitempty"` + End Timestamp `json:"end,omitempty" toon:"end,omitempty"` + Group ScheduleGroup `json:"group,omitempty" toon:"group,omitempty"` // Index inside the rotation. - Index int64 `json:"index,omitempty"` + Index int64 `json:"index,omitempty" toon:"index,omitempty"` // Shift start timestamp (Unix seconds). - Start Timestamp `json:"start,omitempty"` + Start Timestamp `json:"start,omitempty" toon:"start,omitempty"` } // ScheduleDayMask is generated from the Flashduty OpenAPI schema. type ScheduleDayMask struct { // Weekday numbers (0 = Sunday) included in the rotation. - Repeat []int64 `json:"repeat,omitempty"` + Repeat []int64 `json:"repeat,omitempty" toon:"repeat,omitempty"` } // ScheduleEmptyObject is generated from the Flashduty OpenAPI schema. @@ -5002,2172 +5008,2172 @@ type ScheduleEmptyObject struct{} // ScheduleFixedTimeNotifyInfo is generated from the Flashduty OpenAPI schema. type ScheduleFixedTimeNotifyInfo struct { // Notification cycle. - Cycle string `json:"cycle,omitempty"` + Cycle string `json:"cycle,omitempty" toon:"cycle,omitempty"` // Notification start time within the cycle. - Start string `json:"start,omitempty"` + Start string `json:"start,omitempty" toon:"start,omitempty"` } // ScheduleGroup is generated from the Flashduty OpenAPI schema. type ScheduleGroup struct { // Group end timestamp (Unix seconds). - End int64 `json:"end,omitempty"` + End int64 `json:"end,omitempty" toon:"end,omitempty"` // Group display name. - GroupName string `json:"group_name,omitempty"` + GroupName string `json:"group_name,omitempty" toon:"group_name,omitempty"` // Members of this group. - Members []ScheduleMember `json:"members,omitempty"` + Members []ScheduleMember `json:"members,omitempty" toon:"members,omitempty"` // Legacy group name. - Name string `json:"name,omitempty"` + Name string `json:"name,omitempty" toon:"name,omitempty"` // Group start timestamp (Unix seconds). - Start int64 `json:"start,omitempty"` + Start int64 `json:"start,omitempty" toon:"start,omitempty"` } // ScheduleIDResponse is generated from the Flashduty OpenAPI schema. type ScheduleIDResponse struct { // ID of the newly created schedule. - ScheduleID int64 `json:"schedule_id,omitempty"` + ScheduleID int64 `json:"schedule_id,omitempty" toon:"schedule_id,omitempty"` } // ScheduleIDsBodyRequest is generated from the Flashduty OpenAPI schema. type ScheduleIDsBodyRequest struct { // Schedule IDs to operate on. - ScheduleIDs []int64 `json:"schedule_ids,omitempty"` + ScheduleIDs []int64 `json:"schedule_ids,omitempty" toon:"schedule_ids,omitempty"` } // ScheduleIDsRequest is generated from the Flashduty OpenAPI schema. type ScheduleIDsRequest struct { // Schedule ID list. - ScheduleIDs []int64 `json:"schedule_ids,omitempty"` + ScheduleIDs []int64 `json:"schedule_ids,omitempty" toon:"schedule_ids,omitempty"` } // ScheduleImNotify is generated from the Flashduty OpenAPI schema. type ScheduleImNotify struct { - Settings ScheduleImNotifySettings `json:"settings,omitempty"` + Settings ScheduleImNotifySettings `json:"settings,omitempty" toon:"settings,omitempty"` // IM provider type (for example feishu_app, dingtalk_app, wecom_app, teams_app, slack_app). - Type string `json:"type,omitempty"` + Type string `json:"type,omitempty" toon:"type,omitempty"` } // ScheduleImNotifySettings is generated from the Flashduty OpenAPI schema. type ScheduleImNotifySettings struct { // Channel alias. - Alias string `json:"alias,omitempty"` + Alias string `json:"alias,omitempty" toon:"alias,omitempty"` // Chat IDs. - ChatIDs []string `json:"chat_ids,omitempty"` + ChatIDs []string `json:"chat_ids,omitempty" toon:"chat_ids,omitempty"` // Data source ID. - DataSourceID int64 `json:"data_source_id,omitempty"` + DataSourceID int64 `json:"data_source_id,omitempty" toon:"data_source_id,omitempty"` // Signature secret. - SignSecret string `json:"sign_secret,omitempty"` + SignSecret string `json:"sign_secret,omitempty" toon:"sign_secret,omitempty"` // Webhook token. - Token string `json:"token,omitempty"` + Token string `json:"token,omitempty" toon:"token,omitempty"` // Verification token. - VerifyToken string `json:"verify_token,omitempty"` + VerifyToken string `json:"verify_token,omitempty" toon:"verify_token,omitempty"` } // ScheduleInfoRequest is generated from the Flashduty OpenAPI schema. type ScheduleInfoRequest struct { // Preview end timestamp (Unix seconds, 10 digits). - End int64 `json:"end,omitempty"` + End int64 `json:"end,omitempty" toon:"end,omitempty"` // Schedule ID. - ScheduleID int64 `json:"schedule_id,omitempty"` + ScheduleID int64 `json:"schedule_id,omitempty" toon:"schedule_id,omitempty"` // Preview start timestamp (Unix seconds, 10 digits). - Start int64 `json:"start,omitempty"` + Start int64 `json:"start,omitempty" toon:"start,omitempty"` } // ScheduleItem is generated from the Flashduty OpenAPI schema. type ScheduleItem struct { // Account ID. - AccountID int64 `json:"account_id,omitempty"` + AccountID int64 `json:"account_id,omitempty" toon:"account_id,omitempty"` // Creation timestamp (Unix seconds). - CreateAt Timestamp `json:"create_at,omitempty"` + CreateAt Timestamp `json:"create_at,omitempty" toon:"create_at,omitempty"` // Creator person ID. - CreateBy int64 `json:"create_by,omitempty"` + CreateBy int64 `json:"create_by,omitempty" toon:"create_by,omitempty"` // Current on-call group, or null when nobody is on-call. - CurOncall ScheduleOncallGroup `json:"cur_oncall,omitempty"` + CurOncall ScheduleOncallGroup `json:"cur_oncall,omitempty" toon:"cur_oncall,omitempty"` // Schedule description. null when returned from /schedule/preview. - Description string `json:"description,omitempty"` + Description string `json:"description,omitempty" toon:"description,omitempty"` // Disabled flag (0 = enabled, 1 = disabled). Deprecated. null when returned from /schedule/preview. - Disabled int64 `json:"disabled,omitempty"` + Disabled int64 `json:"disabled,omitempty" toon:"disabled,omitempty"` // Window end (Unix seconds). - End Timestamp `json:"end,omitempty"` + End Timestamp `json:"end,omitempty" toon:"end,omitempty"` // Field name used by the legacy update-field endpoint. - Field string `json:"field,omitempty"` + Field string `json:"field,omitempty" toon:"field,omitempty"` // Collapsed final schedule across all layers. - FinalSchedule ScheduleCalculatedLayer `json:"final_schedule,omitempty"` + FinalSchedule ScheduleCalculatedLayer `json:"final_schedule,omitempty" toon:"final_schedule,omitempty"` // Legacy team/group ID. null when returned from /schedule/preview. - GroupID int64 `json:"group_id,omitempty"` + GroupID int64 `json:"group_id,omitempty" toon:"group_id,omitempty"` // Schedule ID. null when returned from /schedule/preview. - ID int64 `json:"id,omitempty"` + ID int64 `json:"id,omitempty" toon:"id,omitempty"` // Alias of schedule_layers returned for compatibility. - LayerSchedules []ScheduleCalculatedLayer `json:"layer_schedules,omitempty"` + LayerSchedules []ScheduleCalculatedLayer `json:"layer_schedules,omitempty" toon:"layer_schedules,omitempty"` // Rotation layers defined on the schedule. - Layers []ScheduleLayer `json:"layers,omitempty"` + Layers []ScheduleLayer `json:"layers,omitempty" toon:"layers,omitempty"` // Schedule name (legacy field; mirrors schedule_name). null when returned from /schedule/preview. - Name string `json:"name,omitempty"` + Name string `json:"name,omitempty" toon:"name,omitempty"` // Next on-call group, or null when unknown. - NextOncall ScheduleOncallGroup `json:"next_oncall,omitempty"` - Notify ScheduleNotify `json:"notify,omitempty"` + NextOncall ScheduleOncallGroup `json:"next_oncall,omitempty" toon:"next_oncall,omitempty"` + Notify ScheduleNotify `json:"notify,omitempty" toon:"notify,omitempty"` // Schedule ID. - ScheduleID int64 `json:"schedule_id,omitempty"` + ScheduleID int64 `json:"schedule_id,omitempty" toon:"schedule_id,omitempty"` // Computed layers for the requested window. - ScheduleLayers []ScheduleCalculatedLayer `json:"schedule_layers,omitempty"` + ScheduleLayers []ScheduleCalculatedLayer `json:"schedule_layers,omitempty" toon:"schedule_layers,omitempty"` // Schedule display name. null when returned from /schedule/preview. - ScheduleName string `json:"schedule_name,omitempty"` + ScheduleName string `json:"schedule_name,omitempty" toon:"schedule_name,omitempty"` // Window start (Unix seconds). - Start Timestamp `json:"start,omitempty"` + Start Timestamp `json:"start,omitempty" toon:"start,omitempty"` // Legacy status flag. Deprecated. null when returned from /schedule/preview. - Status int64 `json:"status,omitempty"` + Status int64 `json:"status,omitempty" toon:"status,omitempty"` // Owning team ID. null when returned from /schedule/preview. - TeamID int64 `json:"team_id,omitempty"` + TeamID int64 `json:"team_id,omitempty" toon:"team_id,omitempty"` // Last update timestamp (Unix seconds). - UpdateAt Timestamp `json:"update_at,omitempty"` + UpdateAt Timestamp `json:"update_at,omitempty" toon:"update_at,omitempty"` // Last updater person ID. - UpdateBy int64 `json:"update_by,omitempty"` + UpdateBy int64 `json:"update_by,omitempty" toon:"update_by,omitempty"` } // ScheduleLayer is generated from the Flashduty OpenAPI schema. type ScheduleLayer struct { // Account ID. - AccountID int64 `json:"account_id,omitempty"` + AccountID int64 `json:"account_id,omitempty" toon:"account_id,omitempty"` // Creation timestamp (Unix seconds). - CreateAt int64 `json:"create_at,omitempty"` + CreateAt int64 `json:"create_at,omitempty" toon:"create_at,omitempty"` // Creator person ID. - CreateBy int64 `json:"create_by,omitempty"` + CreateBy int64 `json:"create_by,omitempty" toon:"create_by,omitempty"` // Day-of-week mask. - DayMask ScheduleDayMask `json:"day_mask,omitempty"` + DayMask ScheduleDayMask `json:"day_mask,omitempty" toon:"day_mask,omitempty"` // When the layer becomes effective (Unix seconds). - EnableTime int64 `json:"enable_time,omitempty"` + EnableTime int64 `json:"enable_time,omitempty" toon:"enable_time,omitempty"` // When the layer expires (Unix seconds, 0 means never). - ExpireTime int64 `json:"expire_time,omitempty"` + ExpireTime int64 `json:"expire_time,omitempty" toon:"expire_time,omitempty"` // Whether fair rotation is enabled. - FairRotation bool `json:"fair_rotation,omitempty"` + FairRotation bool `json:"fair_rotation,omitempty" toon:"fair_rotation,omitempty"` // Oncall groups participating in the rotation. - Groups []ScheduleGroup `json:"groups,omitempty"` + Groups []ScheduleGroup `json:"groups,omitempty" toon:"groups,omitempty"` // Handoff time inside the rotation cycle (seconds). - HandoffTime int64 `json:"handoff_time,omitempty"` + HandoffTime int64 `json:"handoff_time,omitempty" toon:"handoff_time,omitempty"` // Whether the layer is hidden in the UI (0 = no, 1 = yes). - Hidden int64 `json:"hidden,omitempty"` + Hidden int64 `json:"hidden,omitempty" toon:"hidden,omitempty"` // Layer end timestamp (Unix seconds). null means open-ended. - LayerEnd *int64 `json:"layer_end,omitempty"` + LayerEnd *int64 `json:"layer_end,omitempty" toon:"layer_end,omitempty"` // User-facing layer name. - LayerName string `json:"layer_name,omitempty"` + LayerName string `json:"layer_name,omitempty" toon:"layer_name,omitempty"` // Layer start timestamp (Unix seconds). - LayerStart int64 `json:"layer_start,omitempty"` + LayerStart int64 `json:"layer_start,omitempty" toon:"layer_start,omitempty"` // Whether continuous masking is enabled. - MaskContinuousEnabled bool `json:"mask_continuous_enabled,omitempty"` + MaskContinuousEnabled bool `json:"mask_continuous_enabled,omitempty" toon:"mask_continuous_enabled,omitempty"` // Layer mode: 0 = common rotation, 1 = override. - Mode int64 `json:"mode,omitempty"` + Mode int64 `json:"mode,omitempty" toon:"mode,omitempty"` // Layer internal name. - Name string `json:"name,omitempty"` + Name string `json:"name,omitempty" toon:"name,omitempty"` // Legacy end offset inside the restriction window (seconds). - RestrictEnd int64 `json:"restrict_end,omitempty"` + RestrictEnd int64 `json:"restrict_end,omitempty" toon:"restrict_end,omitempty"` // Restriction mode: 0 = none, 1 = day, 2 = week. - RestrictMode int64 `json:"restrict_mode,omitempty"` + RestrictMode int64 `json:"restrict_mode,omitempty" toon:"restrict_mode,omitempty"` // Restriction windows inside each rotation cycle. - RestrictPeriods []ScheduleRestrictPeriod `json:"restrict_periods,omitempty"` + RestrictPeriods []ScheduleRestrictPeriod `json:"restrict_periods,omitempty" toon:"restrict_periods,omitempty"` // Legacy start offset inside the restriction window (seconds). - RestrictStart int64 `json:"restrict_start,omitempty"` + RestrictStart int64 `json:"restrict_start,omitempty" toon:"restrict_start,omitempty"` // Rotation duration in seconds. - RotationDuration int64 `json:"rotation_duration,omitempty"` + RotationDuration int64 `json:"rotation_duration,omitempty" toon:"rotation_duration,omitempty"` // Rotation unit. - RotationUnit string `json:"rotation_unit,omitempty"` + RotationUnit string `json:"rotation_unit,omitempty" toon:"rotation_unit,omitempty"` // Rotation quantity (number of rotation_unit per cycle). - RotationValue int64 `json:"rotation_value,omitempty"` + RotationValue int64 `json:"rotation_value,omitempty" toon:"rotation_value,omitempty"` // Parent schedule ID. - ScheduleID int64 `json:"schedule_id,omitempty"` + ScheduleID int64 `json:"schedule_id,omitempty" toon:"schedule_id,omitempty"` // Last update timestamp (Unix seconds). - UpdateAt int64 `json:"update_at,omitempty"` + UpdateAt int64 `json:"update_at,omitempty" toon:"update_at,omitempty"` // Last updater person ID. - UpdateBy int64 `json:"update_by,omitempty"` + UpdateBy int64 `json:"update_by,omitempty" toon:"update_by,omitempty"` // Layer weight for ordering. - Weight int64 `json:"weight,omitempty"` + Weight int64 `json:"weight,omitempty" toon:"weight,omitempty"` } // ScheduleListRequest is generated from the Flashduty OpenAPI schema. type ScheduleListRequest struct { ListOptions // Window end timestamp (Unix seconds). - End int64 `json:"end,omitempty"` + End int64 `json:"end,omitempty" toon:"end,omitempty"` // Only return schedules created by the current user within their teams. - IsMyManage bool `json:"is_my_manage,omitempty"` + IsMyManage bool `json:"is_my_manage,omitempty" toon:"is_my_manage,omitempty"` // Only return schedules whose owning team the current user belongs to. - IsMyTeam bool `json:"is_my_team,omitempty"` + IsMyTeam bool `json:"is_my_team,omitempty" toon:"is_my_team,omitempty"` // Search keyword matched against schedule names. - Query string `json:"query,omitempty"` + Query string `json:"query,omitempty" toon:"query,omitempty"` // When set together with end, computed layer schedules are returned. Span must be less than 45 days. - Start int64 `json:"start,omitempty"` + Start int64 `json:"start,omitempty" toon:"start,omitempty"` // Filter by team IDs. - TeamIDs []int64 `json:"team_ids,omitempty"` + TeamIDs []int64 `json:"team_ids,omitempty" toon:"team_ids,omitempty"` } // ScheduleListResponse is generated from the Flashduty OpenAPI schema. type ScheduleListResponse struct { // Schedules on this page. - Items []ScheduleItem `json:"items,omitempty"` + Items []ScheduleItem `json:"items,omitempty" toon:"items,omitempty"` // Total number of schedules matching the filters. - Total int64 `json:"total,omitempty"` + Total int64 `json:"total,omitempty" toon:"total,omitempty"` } // ScheduleMember is generated from the Flashduty OpenAPI schema. type ScheduleMember struct { // Person IDs in this slot. - PersonIDs []int64 `json:"person_ids,omitempty"` + PersonIDs []int64 `json:"person_ids,omitempty" toon:"person_ids,omitempty"` // Oncall role ID. - RoleID int64 `json:"role_id,omitempty"` + RoleID int64 `json:"role_id,omitempty" toon:"role_id,omitempty"` } // ScheduleNotify is generated from the Flashduty OpenAPI schema. type ScheduleNotify struct { // Advance notification lead time (seconds). - AdvanceInTime int64 `json:"advance_in_time,omitempty"` - By ScheduleNotifyBy `json:"by,omitempty"` - FixedTime ScheduleFixedTimeNotifyInfo `json:"fixed_time,omitempty"` + AdvanceInTime int64 `json:"advance_in_time,omitempty" toon:"advance_in_time,omitempty"` + By ScheduleNotifyBy `json:"by,omitempty" toon:"by,omitempty"` + FixedTime ScheduleFixedTimeNotifyInfo `json:"fixed_time,omitempty" toon:"fixed_time,omitempty"` // Legacy IM-type to token map. - Im map[string]string `json:"im,omitempty"` + Im map[string]string `json:"im,omitempty" toon:"im,omitempty"` // IM webhook notification channels. - Webhooks []ScheduleImNotify `json:"webhooks,omitempty"` + Webhooks []ScheduleImNotify `json:"webhooks,omitempty" toon:"webhooks,omitempty"` } // ScheduleNotifyBy is generated from the Flashduty OpenAPI schema. type ScheduleNotifyBy struct { // Whether to follow each responder's personal notification preference. - FollowPreference bool `json:"follow_preference,omitempty"` + FollowPreference bool `json:"follow_preference,omitempty" toon:"follow_preference,omitempty"` // Personal notification channel keys. - PersonalChannels []string `json:"personal_channels,omitempty"` + PersonalChannels []string `json:"personal_channels,omitempty" toon:"personal_channels,omitempty"` } // ScheduleOncallGroup is generated from the Flashduty OpenAPI schema. type ScheduleOncallGroup struct { // Shift end timestamp (Unix seconds). - End Timestamp `json:"end,omitempty"` - Group ScheduleGroup `json:"group,omitempty"` + End Timestamp `json:"end,omitempty" toon:"end,omitempty"` + Group ScheduleGroup `json:"group,omitempty" toon:"group,omitempty"` // Index inside the rotation. - Index int64 `json:"index,omitempty"` + Index int64 `json:"index,omitempty" toon:"index,omitempty"` // Shift start timestamp (Unix seconds). - Start Timestamp `json:"start,omitempty"` + Start Timestamp `json:"start,omitempty" toon:"start,omitempty"` // Update timestamp (Unix seconds). - UpdateAt Timestamp `json:"update_at,omitempty"` + UpdateAt Timestamp `json:"update_at,omitempty" toon:"update_at,omitempty"` // Layer weight the shift comes from. - Weight int64 `json:"weight,omitempty"` + Weight int64 `json:"weight,omitempty" toon:"weight,omitempty"` } // ScheduleRestrictPeriod is generated from the Flashduty OpenAPI schema. type ScheduleRestrictPeriod struct { // End offset inside the rotation cycle. - RestrictEnd int64 `json:"restrict_end,omitempty"` + RestrictEnd int64 `json:"restrict_end,omitempty" toon:"restrict_end,omitempty"` // Start offset inside the rotation cycle. - RestrictStart int64 `json:"restrict_start,omitempty"` + RestrictStart int64 `json:"restrict_start,omitempty" toon:"restrict_start,omitempty"` } // ScheduleSelfRequest is generated from the Flashduty OpenAPI schema. type ScheduleSelfRequest struct { // Window end (Unix seconds, 10 digits). Must be within 30 days of start. - End int64 `json:"end,omitempty"` + End int64 `json:"end,omitempty" toon:"end,omitempty"` // Window start (Unix seconds, 10 digits). - Start int64 `json:"start,omitempty"` + Start int64 `json:"start,omitempty" toon:"start,omitempty"` } // ScheduleSelfResponse is generated from the Flashduty OpenAPI schema. type ScheduleSelfResponse struct { // Schedules assigned to the current user (or matching the requested IDs). - Items []ScheduleItem `json:"items,omitempty"` + Items []ScheduleItem `json:"items,omitempty" toon:"items,omitempty"` } // ScheduleUpsertRequest is generated from the Flashduty OpenAPI schema. type ScheduleUpsertRequest struct { // Schedule description. Max 500 characters. - Description *string `json:"description,omitempty"` + Description *string `json:"description,omitempty" toon:"description,omitempty"` // Preview window end (Unix seconds, 10 digits). Required for /schedule/preview. Max 45 days after start. - End int64 `json:"end,omitempty"` + End int64 `json:"end,omitempty" toon:"end,omitempty"` // Rotation layers. - Layers []ScheduleLayer `json:"layers,omitempty"` + Layers []ScheduleLayer `json:"layers,omitempty" toon:"layers,omitempty"` // Legacy schedule name field. Used when schedule_name is empty. - Name *string `json:"name,omitempty"` - Notify ScheduleNotify `json:"notify,omitempty"` + Name *string `json:"name,omitempty" toon:"name,omitempty"` + Notify ScheduleNotify `json:"notify,omitempty" toon:"notify,omitempty"` // Schedule ID. Required on update. - ScheduleID *int64 `json:"schedule_id,omitempty"` + ScheduleID *int64 `json:"schedule_id,omitempty" toon:"schedule_id,omitempty"` // Schedule display name. Max 40 characters. - ScheduleName *string `json:"schedule_name,omitempty"` + ScheduleName *string `json:"schedule_name,omitempty" toon:"schedule_name,omitempty"` // Preview window start (Unix seconds, 10 digits). Required for /schedule/preview. - Start int64 `json:"start,omitempty"` + Start int64 `json:"start,omitempty" toon:"start,omitempty"` // Owning team ID. - TeamID *int64 `json:"team_id,omitempty"` + TeamID *int64 `json:"team_id,omitempty" toon:"team_id,omitempty"` } // SilenceRuleItem is generated from the Flashduty OpenAPI schema. type SilenceRuleItem struct { - AccountID int64 `json:"account_id,omitempty"` - ChannelID int64 `json:"channel_id,omitempty"` - CreatedAt int64 `json:"created_at,omitempty"` - DeletedAt int64 `json:"deleted_at,omitempty"` - Description string `json:"description,omitempty"` - Filters FilterGroup `json:"filters,omitempty"` + AccountID int64 `json:"account_id,omitempty" toon:"account_id,omitempty"` + ChannelID int64 `json:"channel_id,omitempty" toon:"channel_id,omitempty"` + CreatedAt int64 `json:"created_at,omitempty" toon:"created_at,omitempty"` + DeletedAt int64 `json:"deleted_at,omitempty" toon:"deleted_at,omitempty"` + Description string `json:"description,omitempty" toon:"description,omitempty"` + Filters FilterGroup `json:"filters,omitempty" toon:"filters,omitempty"` // Source incident ID when the silence was created from an incident. - FromIncidentID string `json:"from_incident_id,omitempty"` + FromIncidentID string `json:"from_incident_id,omitempty" toon:"from_incident_id,omitempty"` // When true, the silence rule is automatically deleted after its time window expires. Defaults to false. - IsAutoDelete bool `json:"is_auto_delete,omitempty"` + IsAutoDelete bool `json:"is_auto_delete,omitempty" toon:"is_auto_delete,omitempty"` // When true, silenced alerts are dropped instead of suppressed into incidents. - IsDirectlyDiscard bool `json:"is_directly_discard,omitempty"` + IsDirectlyDiscard bool `json:"is_directly_discard,omitempty" toon:"is_directly_discard,omitempty"` // Whether the rule is currently in effect. - IsEffective bool `json:"is_effective,omitempty"` + IsEffective bool `json:"is_effective,omitempty" toon:"is_effective,omitempty"` // Evaluation priority. Lower runs first. - Priority int64 `json:"priority,omitempty"` - RuleID string `json:"rule_id,omitempty"` - RuleName string `json:"rule_name,omitempty"` - Status string `json:"status,omitempty"` - TimeFilter OnceTimeFilter `json:"time_filter,omitempty"` + Priority int64 `json:"priority,omitempty" toon:"priority,omitempty"` + RuleID string `json:"rule_id,omitempty" toon:"rule_id,omitempty"` + RuleName string `json:"rule_name,omitempty" toon:"rule_name,omitempty"` + Status string `json:"status,omitempty" toon:"status,omitempty"` + TimeFilter OnceTimeFilter `json:"time_filter,omitempty" toon:"time_filter,omitempty"` // Recurring time windows. - TimeFilters []TimeFilter `json:"time_filters,omitempty"` - UpdatedAt int64 `json:"updated_at,omitempty"` - UpdatedBy int64 `json:"updated_by,omitempty"` + TimeFilters []TimeFilter `json:"time_filters,omitempty" toon:"time_filters,omitempty"` + UpdatedAt int64 `json:"updated_at,omitempty" toon:"updated_at,omitempty"` + UpdatedBy int64 `json:"updated_by,omitempty" toon:"updated_by,omitempty"` } // SkillDeleteRequest is generated from the Flashduty OpenAPI schema. type SkillDeleteRequest struct { // Identifier of the skill to delete. - SkillID string `json:"skill_id,omitempty"` + SkillID string `json:"skill_id,omitempty" toon:"skill_id,omitempty"` } // SkillDownloadRequest is generated from the Flashduty OpenAPI schema. type SkillDownloadRequest struct { // Identifier of the skill to download. - SkillID string `json:"skill_id,omitempty"` + SkillID string `json:"skill_id,omitempty" toon:"skill_id,omitempty"` } // SkillGetRequest is generated from the Flashduty OpenAPI schema. type SkillGetRequest struct { // Identifier of the skill to fetch. - SkillID string `json:"skill_id,omitempty"` + SkillID string `json:"skill_id,omitempty" toon:"skill_id,omitempty"` } // SkillItem is generated from the Flashduty OpenAPI schema. type SkillItem struct { // Owning account. - AccountID int64 `json:"account_id,omitempty"` + AccountID int64 `json:"account_id,omitempty" toon:"account_id,omitempty"` // Author declared in the skill frontmatter. - Author string `json:"author,omitempty"` + Author string `json:"author,omitempty" toon:"author,omitempty"` // Whether the calling member may edit or delete this resource. - CanEdit bool `json:"can_edit,omitempty"` + CanEdit bool `json:"can_edit,omitempty" toon:"can_edit,omitempty"` // SHA-256 checksum of the skill's zip package. - Checksum string `json:"checksum,omitempty"` + Checksum string `json:"checksum,omitempty" toon:"checksum,omitempty"` // Full SKILL.md body; omitted in list responses. - Content string `json:"content,omitempty"` + Content string `json:"content,omitempty" toon:"content,omitempty"` // Install response only: true for a fresh install, false for an in-place upsert. - Created bool `json:"created,omitempty"` + Created bool `json:"created,omitempty" toon:"created,omitempty"` // Creation time as a Unix timestamp in milliseconds. - CreatedAt TimestampMilli `json:"created_at,omitempty"` + CreatedAt TimestampMilli `json:"created_at,omitempty" toon:"created_at,omitempty"` // Member who created this resource. - CreatedBy int64 `json:"created_by,omitempty"` + CreatedBy int64 `json:"created_by,omitempty" toon:"created_by,omitempty"` // What the skill does and when the agent should use it. - Description string `json:"description,omitempty"` + Description string `json:"description,omitempty" toon:"description,omitempty"` // A marketplace-sourced skill has been edited locally; auto-update skips it. - IsModified bool `json:"is_modified,omitempty"` + IsModified bool `json:"is_modified,omitempty" toon:"is_modified,omitempty"` // License declared in the skill frontmatter. - License string `json:"license,omitempty"` + License string `json:"license,omitempty" toon:"license,omitempty"` // Object-storage key of the skill's zip package. - S3Key string `json:"s3_key,omitempty"` + S3Key string `json:"s3_key,omitempty" toon:"s3_key,omitempty"` // Unique identifier of the skill. - SkillID string `json:"skill_id,omitempty"` + SkillID string `json:"skill_id,omitempty" toon:"skill_id,omitempty"` // Name of the skill, parsed from its SKILL.md frontmatter. - SkillName string `json:"skill_name,omitempty"` + SkillName string `json:"skill_name,omitempty" toon:"skill_name,omitempty"` // Marketplace template this skill was installed from, if any. - SourceTemplateName string `json:"source_template_name,omitempty"` + SourceTemplateName string `json:"source_template_name,omitempty" toon:"source_template_name,omitempty"` // Marketplace template version captured at install time. - SourceTemplateVersion string `json:"source_template_version,omitempty"` + SourceTemplateVersion string `json:"source_template_version,omitempty" toon:"source_template_version,omitempty"` // Whether the skill is active and loadable by agents. - Status string `json:"status,omitempty"` + Status string `json:"status,omitempty" toon:"status,omitempty"` // Tags declared in the skill frontmatter. - Tags []string `json:"tags,omitempty"` + Tags []string `json:"tags,omitempty" toon:"tags,omitempty"` // Owning team; 0 means account scope. - TeamID int64 `json:"team_id,omitempty"` + TeamID int64 `json:"team_id,omitempty" toon:"team_id,omitempty"` // Tools the skill requires, declared in its frontmatter. - Tools []string `json:"tools,omitempty"` + Tools []string `json:"tools,omitempty" toon:"tools,omitempty"` // A newer marketplace template version exists for this skill. - UpdateAvailable bool `json:"update_available,omitempty"` + UpdateAvailable bool `json:"update_available,omitempty" toon:"update_available,omitempty"` // Last-update time as a Unix timestamp in milliseconds. - UpdatedAt TimestampMilli `json:"updated_at,omitempty"` + UpdatedAt TimestampMilli `json:"updated_at,omitempty" toon:"updated_at,omitempty"` // Skill version string from its frontmatter. - Version string `json:"version,omitempty"` + Version string `json:"version,omitempty" toon:"version,omitempty"` } // SkillListRequest is generated from the Flashduty OpenAPI schema. type SkillListRequest struct { ListOptions // Include account-scoped rows alongside team-scoped ones; defaults to true. - IncludeAccount bool `json:"include_account,omitempty"` + IncludeAccount bool `json:"include_account,omitempty" toon:"include_account,omitempty"` // Restrict results to resources owned by these teams; intersected with the caller's visible set. - TeamIDs []int64 `json:"team_ids,omitempty"` + TeamIDs []int64 `json:"team_ids,omitempty" toon:"team_ids,omitempty"` } // SkillListResponse is generated from the Flashduty OpenAPI schema. type SkillListResponse struct { // Skills on the current page. - Skills []SkillItem `json:"skills,omitempty"` + Skills []SkillItem `json:"skills,omitempty" toon:"skills,omitempty"` // Total number of skills matching the filters. - Total int64 `json:"total,omitempty"` + Total int64 `json:"total,omitempty" toon:"total,omitempty"` } // SkillStatusRequest is generated from the Flashduty OpenAPI schema. type SkillStatusRequest struct { // Identifier of the target skill. - SkillID string `json:"skill_id,omitempty"` + SkillID string `json:"skill_id,omitempty" toon:"skill_id,omitempty"` } // SkillUpdateRequest is generated from the Flashduty OpenAPI schema. type SkillUpdateRequest struct { // New description for the skill. - Description string `json:"description,omitempty"` + Description string `json:"description,omitempty" toon:"description,omitempty"` // Identifier of the skill to update. - SkillID string `json:"skill_id,omitempty"` + SkillID string `json:"skill_id,omitempty" toon:"skill_id,omitempty"` // Reassign the skill to this team; omit to leave unchanged, 0 for account scope. - TeamID int64 `json:"team_id,omitempty"` + TeamID int64 `json:"team_id,omitempty" toon:"team_id,omitempty"` } // SnoozeIncidentRequest is generated from the Flashduty OpenAPI schema. type SnoozeIncidentRequest struct { // Incident IDs to snooze. At most 100 per call. - IncidentIDs []string `json:"incident_ids,omitempty"` + IncidentIDs []string `json:"incident_ids,omitempty" toon:"incident_ids,omitempty"` // Duration in minutes. Must be greater than 0 and at most 1440 (24h). - Minutes int64 `json:"minutes,omitempty"` + Minutes int64 `json:"minutes,omitempty" toon:"minutes,omitempty"` } // SourcemapItem is generated from the Flashduty OpenAPI schema. type SourcemapItem struct { // Upload timestamp, Unix epoch seconds. - CreatedAt Timestamp `json:"created_at,omitempty"` + CreatedAt Timestamp `json:"created_at,omitempty" toon:"created_at,omitempty"` // Git commit SHA for this build. - GitCommitSHA string `json:"git_commit_sha,omitempty"` + GitCommitSHA string `json:"git_commit_sha,omitempty" toon:"git_commit_sha,omitempty"` // Git repository URL associated with this build. - GitRepositoryURL string `json:"git_repository_url,omitempty"` + GitRepositoryURL string `json:"git_repository_url,omitempty" toon:"git_repository_url,omitempty"` // Storage key uniquely identifying this sourcemap file. - Key string `json:"key,omitempty"` + Key string `json:"key,omitempty" toon:"key,omitempty"` // 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). - Metadata map[string]any `json:"metadata,omitempty"` + Metadata map[string]any `json:"metadata,omitempty" toon:"metadata,omitempty"` // Application or service name. - Service string `json:"service,omitempty"` + Service string `json:"service,omitempty" toon:"service,omitempty"` // File size in bytes. - Size int64 `json:"size,omitempty"` + Size int64 `json:"size,omitempty" toon:"size,omitempty"` // Platform type: `browser`, `android`, or `ios`. - Type string `json:"type,omitempty"` + Type string `json:"type,omitempty" toon:"type,omitempty"` // Last update timestamp, Unix epoch seconds. - UpdatedAt Timestamp `json:"updated_at,omitempty"` + UpdatedAt Timestamp `json:"updated_at,omitempty" toon:"updated_at,omitempty"` // Application version string. - Version string `json:"version,omitempty"` + Version string `json:"version,omitempty" toon:"version,omitempty"` } // SourcemapListRequest is generated from the Flashduty OpenAPI schema. type SourcemapListRequest struct { ListOptions // Sort ascending. Default false (descending). - Asc bool `json:"asc,omitempty"` + Asc bool `json:"asc,omitempty" toon:"asc,omitempty"` // Android only. Filter by Gradle plugin build identifier. Max 200 characters. - BuildID string `json:"build_id,omitempty"` + BuildID string `json:"build_id,omitempty" toon:"build_id,omitempty"` // End of upload time range, Unix epoch milliseconds. Maximum window: 365 days. - EndTime int64 `json:"end_time,omitempty"` + EndTime int64 `json:"end_time,omitempty" toon:"end_time,omitempty"` // Sort field. - Orderby string `json:"orderby,omitempty"` + Orderby string `json:"orderby,omitempty" toon:"orderby,omitempty"` // Substring match on the minified URL (browser) or build ID (android). Max 200 characters. - Query string `json:"query,omitempty"` + Query string `json:"query,omitempty" toon:"query,omitempty"` // Filter by service names. Up to 100 values. - Services []string `json:"services,omitempty"` + Services []string `json:"services,omitempty" toon:"services,omitempty"` // Start of upload time range, Unix epoch milliseconds. Must be > 0 and before `end_time`. - StartTime int64 `json:"start_time,omitempty"` + StartTime int64 `json:"start_time,omitempty" toon:"start_time,omitempty"` // Platform type. Defaults to `browser` when omitted. - Type string `json:"type,omitempty"` + Type string `json:"type,omitempty" toon:"type,omitempty"` // iOS only. Filter by dSYM bundle UUID. Max 200 characters. - Uuid string `json:"uuid,omitempty"` + Uuid string `json:"uuid,omitempty" toon:"uuid,omitempty"` // Filter by version strings. Up to 100 values. - Versions []string `json:"versions,omitempty"` + Versions []string `json:"versions,omitempty" toon:"versions,omitempty"` } // SourcemapListResponse is generated from the Flashduty OpenAPI schema. type SourcemapListResponse struct { - Items []SourcemapItem `json:"items,omitempty"` + Items []SourcemapItem `json:"items,omitempty" toon:"items,omitempty"` // Total number of matching records. - Total int64 `json:"total,omitempty"` + Total int64 `json:"total,omitempty" toon:"total,omitempty"` } // StatusPageChangeCreateResponse is generated from the Flashduty OpenAPI schema. type StatusPageChangeCreateResponse struct { // Newly created event ID. - ChangeID int64 `json:"change_id,omitempty"` + ChangeID int64 `json:"change_id,omitempty" toon:"change_id,omitempty"` // Event title (echoed from the request). - ChangeName string `json:"change_name,omitempty"` + ChangeName string `json:"change_name,omitempty" toon:"change_name,omitempty"` } // StatusPageChangeItem is generated from the Flashduty OpenAPI schema. type StatusPageChangeItem struct { // Components currently affected by this event, with their resulting status. - AffectedComponents []AffectedStatusPageComponentItem `json:"affected_components,omitempty"` + AffectedComponents []AffectedStatusPageComponentItem `json:"affected_components,omitempty" toon:"affected_components,omitempty"` // Maintenance only: whether the status advances automatically based on the scheduled window. - AutoUpdateBySchedule bool `json:"auto_update_by_schedule,omitempty"` + AutoUpdateBySchedule bool `json:"auto_update_by_schedule,omitempty" toon:"auto_update_by_schedule,omitempty"` // Event ID. - ChangeID int64 `json:"change_id,omitempty"` + ChangeID int64 `json:"change_id,omitempty" toon:"change_id,omitempty"` // Scheduled close time in unix seconds. Set for retrospective and maintenance events. - CloseAtSeconds Timestamp `json:"close_at_seconds,omitempty"` + CloseAtSeconds Timestamp `json:"close_at_seconds,omitempty" toon:"close_at_seconds,omitempty"` // Event description (Markdown). - Description string `json:"description,omitempty"` + Description string `json:"description,omitempty" toon:"description,omitempty"` // Whether this event is a retrospective (historical) one. - IsRetrospective bool `json:"is_retrospective,omitempty"` + IsRetrospective bool `json:"is_retrospective,omitempty" toon:"is_retrospective,omitempty"` // Linked event IDs (related incidents, deployments, etc.). - LinkedChangeIDs []string `json:"linked_change_ids,omitempty"` + LinkedChangeIDs []string `json:"linked_change_ids,omitempty" toon:"linked_change_ids,omitempty"` // Whether subscribers were notified about this event. - NotifySubscribers bool `json:"notify_subscribers,omitempty"` + NotifySubscribers bool `json:"notify_subscribers,omitempty" toon:"notify_subscribers,omitempty"` // Parent status page ID. - PageID int64 `json:"page_id,omitempty"` + PageID int64 `json:"page_id,omitempty" toon:"page_id,omitempty"` // Member IDs responsible for this event. - ResponderIDs []int64 `json:"responder_ids,omitempty"` + ResponderIDs []int64 `json:"responder_ids,omitempty" toon:"responder_ids,omitempty"` // Event start time in unix seconds. - StartAtSeconds Timestamp `json:"start_at_seconds,omitempty"` + StartAtSeconds Timestamp `json:"start_at_seconds,omitempty" toon:"start_at_seconds,omitempty"` // Current event status. Incident statuses: `investigating`/`identified`/`monitoring`/`resolved`. Maintenance statuses: `scheduled`/`ongoing`/`completed`. - Status string `json:"status,omitempty"` + Status string `json:"status,omitempty" toon:"status,omitempty"` // Event title. - Title string `json:"title,omitempty"` + Title string `json:"title,omitempty" toon:"title,omitempty"` // Event type. - Type string `json:"type,omitempty"` + Type string `json:"type,omitempty" toon:"type,omitempty"` // Timeline updates attached to this event, ordered by time. - Updates []StatusPageChangeUpdateItem `json:"updates,omitempty"` + Updates []StatusPageChangeUpdateItem `json:"updates,omitempty" toon:"updates,omitempty"` } // StatusPageChangeListResponse is generated from the Flashduty OpenAPI schema. type StatusPageChangeListResponse struct { - Items []StatusPageChangeItem `json:"items,omitempty"` + Items []StatusPageChangeItem `json:"items,omitempty" toon:"items,omitempty"` } // StatusPageChangeTimelineCreateResponse is generated from the Flashduty OpenAPI schema. type StatusPageChangeTimelineCreateResponse struct { // Newly created update ID. - UpdateID string `json:"update_id,omitempty"` + UpdateID string `json:"update_id,omitempty" toon:"update_id,omitempty"` } // StatusPageChangeUpdateItem is generated from the Flashduty OpenAPI schema. type StatusPageChangeUpdateItem struct { // Update timestamp in unix seconds. - AtSeconds Timestamp `json:"at_seconds,omitempty"` + AtSeconds Timestamp `json:"at_seconds,omitempty" toon:"at_seconds,omitempty"` // Component status transitions applied by this update. - ComponentChanges []StatusPageComponentChangeItem `json:"component_changes,omitempty"` + ComponentChanges []StatusPageComponentChangeItem `json:"component_changes,omitempty" toon:"component_changes,omitempty"` // Update description (Markdown). - Description string `json:"description,omitempty"` + Description string `json:"description,omitempty" toon:"description,omitempty"` // Event status after this update. Omitted when the update does not change the overall status. - Status string `json:"status,omitempty"` + Status string `json:"status,omitempty" toon:"status,omitempty"` // Update ID. - UpdateID string `json:"update_id,omitempty"` + UpdateID string `json:"update_id,omitempty" toon:"update_id,omitempty"` } // StatusPageComponentChangeItem is generated from the Flashduty OpenAPI schema. type StatusPageComponentChangeItem struct { // Component ID. - ComponentID string `json:"component_id,omitempty"` + ComponentID string `json:"component_id,omitempty" toon:"component_id,omitempty"` // Component display name. Populated by the backend on read; ignored on write. - ComponentName string `json:"component_name,omitempty"` + ComponentName string `json:"component_name,omitempty" toon:"component_name,omitempty"` // New component status. Incidents support `operational`/`degraded`/`partial_outage`/`full_outage`; maintenances support `operational`/`under_maintenance`. - Status string `json:"status,omitempty"` + Status string `json:"status,omitempty" toon:"status,omitempty"` } // StatusPageComponentItem is generated from the Flashduty OpenAPI schema. type StatusPageComponentItem struct { // Timestamp when the component was first available, in unix seconds. - AvailableSinceSeconds Timestamp `json:"available_since_seconds,omitempty"` + AvailableSinceSeconds Timestamp `json:"available_since_seconds,omitempty" toon:"available_since_seconds,omitempty"` // Component ID. - ComponentID string `json:"component_id,omitempty"` + ComponentID string `json:"component_id,omitempty" toon:"component_id,omitempty"` // Component description. - Description string `json:"description,omitempty"` + Description string `json:"description,omitempty" toon:"description,omitempty"` // When true, the component is hidden entirely from summary endpoints. - HideAll bool `json:"hide_all,omitempty"` + HideAll bool `json:"hide_all,omitempty" toon:"hide_all,omitempty"` // When true, uptime data is hidden from summary responses. - HideUptime bool `json:"hide_uptime,omitempty"` + HideUptime bool `json:"hide_uptime,omitempty" toon:"hide_uptime,omitempty"` // Component display name. - Name string `json:"name,omitempty"` + Name string `json:"name,omitempty" toon:"name,omitempty"` // Display order within its section. - OrderID int64 `json:"order_id,omitempty"` + OrderID int64 `json:"order_id,omitempty" toon:"order_id,omitempty"` // Parent section ID. - SectionID string `json:"section_id,omitempty"` + SectionID string `json:"section_id,omitempty" toon:"section_id,omitempty"` } // StatusPageItem is generated from the Flashduty OpenAPI schema. type StatusPageItem struct { // Components tracked on the status page. - Components []StatusPageComponentItem `json:"components,omitempty"` + Components []StatusPageComponentItem `json:"components,omitempty" toon:"components,omitempty"` // Get-in-touch contact, a mailto or website URL. - ContactInfo string `json:"contact_info,omitempty"` + ContactInfo string `json:"contact_info,omitempty" toon:"contact_info,omitempty"` // Custom domain pointing to the status page. - CustomDomain string `json:"custom_domain,omitempty"` + CustomDomain string `json:"custom_domain,omitempty" toon:"custom_domain,omitempty"` // Custom navigation links shown on the status page. - CustomLinks []map[string]string `json:"custom_links,omitempty"` + CustomLinks []map[string]string `json:"custom_links,omitempty" toon:"custom_links,omitempty"` // Dark-mode logo image of the status page. - DarkLogo string `json:"dark_logo,omitempty"` + DarkLogo string `json:"dark_logo,omitempty" toon:"dark_logo,omitempty"` // How the timeline is displayed. - DateView string `json:"date_view,omitempty"` + DateView string `json:"date_view,omitempty" toon:"date_view,omitempty"` // How uptime is displayed. - DisplayUptimeMode string `json:"display_uptime_mode,omitempty"` + DisplayUptimeMode string `json:"display_uptime_mode,omitempty" toon:"display_uptime_mode,omitempty"` // Favicon of the status page. - Favicon string `json:"favicon,omitempty"` + Favicon string `json:"favicon,omitempty" toon:"favicon,omitempty"` // Logo image of the status page. - Logo string `json:"logo,omitempty"` + Logo string `json:"logo,omitempty" toon:"logo,omitempty"` // URL opened when the logo is clicked. - LogoURL string `json:"logo_url,omitempty"` + LogoURL string `json:"logo_url,omitempty" toon:"logo_url,omitempty"` // Display name of the status page. - Name string `json:"name,omitempty"` + Name string `json:"name,omitempty" toon:"name,omitempty"` // Footer content of the status page. - PageFooter string `json:"page_footer,omitempty"` + PageFooter string `json:"page_footer,omitempty" toon:"page_footer,omitempty"` // Header content of the status page. - PageHeader string `json:"page_header,omitempty"` + PageHeader string `json:"page_header,omitempty" toon:"page_header,omitempty"` // Status page ID. - PageID int64 `json:"page_id,omitempty"` + PageID int64 `json:"page_id,omitempty" toon:"page_id,omitempty"` // Sections grouping the components. - Sections []StatusPageSectionItem `json:"sections,omitempty"` - Subscription StatusPageSubscriptionItem `json:"subscription,omitempty"` + Sections []StatusPageSectionItem `json:"sections,omitempty" toon:"sections,omitempty"` + Subscription StatusPageSubscriptionItem `json:"subscription,omitempty" toon:"subscription,omitempty"` // Preferred change-event template type. - TemplatePreference string `json:"template_preference,omitempty"` + TemplatePreference string `json:"template_preference,omitempty" toon:"template_preference,omitempty"` // Visibility type of the status page. - Type string `json:"type,omitempty"` + Type string `json:"type,omitempty" toon:"type,omitempty"` // URL-safe slug, unique per account. - URLName string `json:"url_name,omitempty"` + URLName string `json:"url_name,omitempty" toon:"url_name,omitempty"` } // StatusPageMigrationJob is generated from the Flashduty OpenAPI schema. type StatusPageMigrationJob struct { // Owner account ID. - AccountID int64 `json:"account_id,omitempty"` + AccountID int64 `json:"account_id,omitempty" toon:"account_id,omitempty"` // Job creation time, unix seconds. - CreatedAt Timestamp `json:"created_at,omitempty"` + CreatedAt Timestamp `json:"created_at,omitempty" toon:"created_at,omitempty"` // Terminal error message when `status` is `failed`. - Error string `json:"error,omitempty"` + Error string `json:"error,omitempty" toon:"error,omitempty"` // Migration job ID. - JobID string `json:"job_id,omitempty"` + JobID string `json:"job_id,omitempty" toon:"job_id,omitempty"` // Current migration phase. - Phase string `json:"phase,omitempty"` + Phase string `json:"phase,omitempty" toon:"phase,omitempty"` // Per-entity progress counters. - Progress StatusPageMigrationProgress `json:"progress,omitempty"` + Progress StatusPageMigrationProgress `json:"progress,omitempty" toon:"progress,omitempty"` // Atlassian Statuspage source page ID. - SourcePageID string `json:"source_page_id,omitempty"` + SourcePageID string `json:"source_page_id,omitempty" toon:"source_page_id,omitempty"` // Current job status. - Status string `json:"status,omitempty"` + Status string `json:"status,omitempty" toon:"status,omitempty"` // Flashduty target status page ID. Set once the job produces one, or supplied up front for subscriber migration. - TargetPageID int64 `json:"target_page_id,omitempty"` + TargetPageID int64 `json:"target_page_id,omitempty" toon:"target_page_id,omitempty"` // Last status update time, unix seconds. - UpdatedAt Timestamp `json:"updated_at,omitempty"` + UpdatedAt Timestamp `json:"updated_at,omitempty" toon:"updated_at,omitempty"` } // StatusPageMigrationProgress is generated from the Flashduty OpenAPI schema. type StatusPageMigrationProgress struct { // Steps completed so far. - CompletedSteps int64 `json:"completed_steps,omitempty"` - ComponentsImported int64 `json:"components_imported,omitempty"` - IncidentsImported int64 `json:"incidents_imported,omitempty"` - MaintenancesImported int64 `json:"maintenances_imported,omitempty"` - SectionsImported int64 `json:"sections_imported,omitempty"` - SubscribersImported int64 `json:"subscribers_imported,omitempty"` + CompletedSteps int64 `json:"completed_steps,omitempty" toon:"completed_steps,omitempty"` + ComponentsImported int64 `json:"components_imported,omitempty" toon:"components_imported,omitempty"` + IncidentsImported int64 `json:"incidents_imported,omitempty" toon:"incidents_imported,omitempty"` + MaintenancesImported int64 `json:"maintenances_imported,omitempty" toon:"maintenances_imported,omitempty"` + SectionsImported int64 `json:"sections_imported,omitempty" toon:"sections_imported,omitempty"` + SubscribersImported int64 `json:"subscribers_imported,omitempty" toon:"subscribers_imported,omitempty"` // Number of subscribers skipped (e.g. because they would create duplicates). - SubscribersSkipped int64 `json:"subscribers_skipped,omitempty"` - TemplatesImported int64 `json:"templates_imported,omitempty"` + SubscribersSkipped int64 `json:"subscribers_skipped,omitempty" toon:"subscribers_skipped,omitempty"` + TemplatesImported int64 `json:"templates_imported,omitempty" toon:"templates_imported,omitempty"` // Total steps this job will perform. - TotalSteps int64 `json:"total_steps,omitempty"` + TotalSteps int64 `json:"total_steps,omitempty" toon:"total_steps,omitempty"` // Non-fatal warnings recorded during the job. - Warnings []string `json:"warnings,omitempty"` + Warnings []string `json:"warnings,omitempty" toon:"warnings,omitempty"` } // StatusPageMigrationStartResponse is generated from the Flashduty OpenAPI schema. type StatusPageMigrationStartResponse struct { // Migration job ID. Use this to poll status or request cancellation. - JobID string `json:"job_id,omitempty"` + JobID string `json:"job_id,omitempty" toon:"job_id,omitempty"` } // StatusPageSectionItem is generated from the Flashduty OpenAPI schema. type StatusPageSectionItem struct { // Section description. - Description string `json:"description,omitempty"` + Description string `json:"description,omitempty" toon:"description,omitempty"` // Whether the section and its components are hidden from summary endpoints. - HideAll bool `json:"hide_all,omitempty"` + HideAll bool `json:"hide_all,omitempty" toon:"hide_all,omitempty"` // Whether uptime data is hidden from summary responses. - HideUptime bool `json:"hide_uptime,omitempty"` + HideUptime bool `json:"hide_uptime,omitempty" toon:"hide_uptime,omitempty"` // Section name. - Name string `json:"name,omitempty"` + Name string `json:"name,omitempty" toon:"name,omitempty"` // Display order of the section. - OrderID int64 `json:"order_id,omitempty"` + OrderID int64 `json:"order_id,omitempty" toon:"order_id,omitempty"` // Section ID. - SectionID string `json:"section_id,omitempty"` + SectionID string `json:"section_id,omitempty" toon:"section_id,omitempty"` } // StatusPageSubscriberListResponse is generated from the Flashduty OpenAPI schema. type StatusPageSubscriberListResponse struct { // Whether there is at least one more page after the current one. - HasNextPage bool `json:"has_next_page,omitempty"` - Items []ExportedStatusPageSubscriberItem `json:"items,omitempty"` + HasNextPage bool `json:"has_next_page,omitempty" toon:"has_next_page,omitempty"` + Items []ExportedStatusPageSubscriberItem `json:"items,omitempty" toon:"items,omitempty"` // Total matching subscribers. - Total int64 `json:"total,omitempty"` + Total int64 `json:"total,omitempty" toon:"total,omitempty"` } // StatusPageSubscriptionItem is generated from the Flashduty OpenAPI schema. type StatusPageSubscriptionItem struct { // Whether email subscription is enabled. - Email bool `json:"email,omitempty"` + Email bool `json:"email,omitempty" toon:"email,omitempty"` // Whether IM subscription is enabled. - Im bool `json:"im,omitempty"` + Im bool `json:"im,omitempty" toon:"im,omitempty"` } // StoreRulesetItem is generated from the Flashduty OpenAPI schema. type StoreRulesetItem struct { // Creation timestamp, Unix epoch seconds. - CreatedAt Timestamp `json:"created_at,omitempty"` + CreatedAt Timestamp `json:"created_at,omitempty" toon:"created_at,omitempty"` // Account ID of the creator. - CreatorAccountID uint64 `json:"creator_account_id,omitempty"` + CreatorAccountID uint64 `json:"creator_account_id,omitempty" toon:"creator_account_id,omitempty"` // Member ID of the creator. - CreatorID uint64 `json:"creator_id,omitempty"` + CreatorID uint64 `json:"creator_id,omitempty" toon:"creator_id,omitempty"` // Display name of the creator. - CreatorName string `json:"creator_name,omitempty"` + CreatorName string `json:"creator_name,omitempty" toon:"creator_name,omitempty"` // Ruleset ID. - ID uint64 `json:"id,omitempty"` + ID uint64 `json:"id,omitempty" toon:"id,omitempty"` // Description or title of the ruleset. - Note string `json:"note,omitempty"` + Note string `json:"note,omitempty" toon:"note,omitempty"` // Sharing scope. `0` = private (creator only), `1` = account-shared, `2` = public. - OpenFlag int64 `json:"open_flag,omitempty"` + OpenFlag int64 `json:"open_flag,omitempty" toon:"open_flag,omitempty"` // JSON string containing the alert rule definitions. Omitted in list responses. - Payload string `json:"payload,omitempty"` + Payload string `json:"payload,omitempty" toon:"payload,omitempty"` // Datasource type identifier this ruleset applies to. - TypeIdent string `json:"type_ident,omitempty"` + TypeIdent string `json:"type_ident,omitempty" toon:"type_ident,omitempty"` // Last update timestamp, Unix epoch seconds. - UpdatedAt Timestamp `json:"updated_at,omitempty"` + UpdatedAt Timestamp `json:"updated_at,omitempty" toon:"updated_at,omitempty"` } // StoreRulesetListRequest is generated from the Flashduty OpenAPI schema. type StoreRulesetListRequest struct { // Datasource type identifier to filter by, e.g. `prometheus`. - TypeIdent string `json:"type_ident,omitempty"` + TypeIdent string `json:"type_ident,omitempty" toon:"type_ident,omitempty"` } // StoreRulesetUpdateRequest is generated from the Flashduty OpenAPI schema. type StoreRulesetUpdateRequest struct { // Ruleset ID to update. - ID uint64 `json:"id,omitempty"` + ID uint64 `json:"id,omitempty" toon:"id,omitempty"` // New description. - Note string `json:"note,omitempty"` + Note string `json:"note,omitempty" toon:"note,omitempty"` // New sharing scope. `0` = private, `1` = account-shared, `2` = public. - OpenFlag int64 `json:"open_flag,omitempty"` + OpenFlag int64 `json:"open_flag,omitempty" toon:"open_flag,omitempty"` // New JSON string of alert rule definitions. - Payload string `json:"payload,omitempty"` + Payload string `json:"payload,omitempty" toon:"payload,omitempty"` } // StoreRulesetUpsertRequest is generated from the Flashduty OpenAPI schema. type StoreRulesetUpsertRequest struct { // Description or title of the ruleset. - Note string `json:"note,omitempty"` + Note string `json:"note,omitempty" toon:"note,omitempty"` // Sharing scope. `0` = private (creator only), `1` = account-shared, `2` = public. Defaults to `0` if omitted. - OpenFlag int64 `json:"open_flag,omitempty"` + OpenFlag int64 `json:"open_flag,omitempty" toon:"open_flag,omitempty"` // JSON string containing the alert rule definitions. - Payload string `json:"payload,omitempty"` + Payload string `json:"payload,omitempty" toon:"payload,omitempty"` // Datasource type identifier this ruleset applies to, e.g. `prometheus`. - TypeIdent string `json:"type_ident,omitempty"` + TypeIdent string `json:"type_ident,omitempty" toon:"type_ident,omitempty"` } // TargetsListRequest is generated from the Flashduty OpenAPI schema. type TargetsListRequest struct { // Optional consistency check. Must equal the authenticated account when supplied. - AccountID int64 `json:"account_id,omitempty"` + AccountID int64 `json:"account_id,omitempty" toon:"account_id,omitempty"` // Opaque pagination cursor from the previous response's `next_cursor`. Omit / pass empty string for the first page. Reset whenever `keyword`, `limit`, or tenant changes. - Cursor string `json:"cursor,omitempty"` + Cursor string `json:"cursor,omitempty" toon:"cursor,omitempty"` // Prefix match against `target_locator`. ASCII only, no whitespace, no `|`, max 256 bytes. Substring search is not supported. - Keyword string `json:"keyword,omitempty"` + Keyword string `json:"keyword,omitempty" toon:"keyword,omitempty"` // Page size. Default 50, max 200. - Limit int64 `json:"limit,omitempty"` + Limit int64 `json:"limit,omitempty" toon:"limit,omitempty"` } // TargetsListResponse is generated from the Flashduty OpenAPI schema. type TargetsListResponse struct { - Items []TargetsListResponseItemsItem `json:"items,omitempty"` + Items []TargetsListResponseItemsItem `json:"items,omitempty" toon:"items,omitempty"` // Opaque cursor for the next page. Absent / empty means this is the last page. - NextCursor string `json:"next_cursor,omitempty"` + NextCursor string `json:"next_cursor,omitempty" toon:"next_cursor,omitempty"` // Total matches for the current `(account_id, keyword)` pair, independent of `cursor`. - Total int64 `json:"total,omitempty"` + Total int64 `json:"total,omitempty" toon:"total,omitempty"` } // TeamBriefItem is generated from the Flashduty OpenAPI schema. type TeamBriefItem struct { - PersonIDs []uint64 `json:"person_ids,omitempty"` - TeamID uint64 `json:"team_id,omitempty"` - TeamName string `json:"team_name,omitempty"` + PersonIDs []uint64 `json:"person_ids,omitempty" toon:"person_ids,omitempty"` + TeamID uint64 `json:"team_id,omitempty" toon:"team_id,omitempty"` + TeamName string `json:"team_name,omitempty" toon:"team_name,omitempty"` } // TeamDeleteRequest is generated from the Flashduty OpenAPI schema. type TeamDeleteRequest struct { // External reference ID. - RefID string `json:"ref_id,omitempty"` + RefID string `json:"ref_id,omitempty" toon:"ref_id,omitempty"` // Team ID. - TeamID uint64 `json:"team_id,omitempty"` + TeamID uint64 `json:"team_id,omitempty" toon:"team_id,omitempty"` // Team name. - TeamName string `json:"team_name,omitempty"` + TeamName string `json:"team_name,omitempty" toon:"team_name,omitempty"` } // TeamInfoRequest is generated from the Flashduty OpenAPI schema. type TeamInfoRequest struct { // External reference ID. - RefID string `json:"ref_id,omitempty"` + RefID string `json:"ref_id,omitempty" toon:"ref_id,omitempty"` // Team ID. - TeamID uint64 `json:"team_id,omitempty"` + TeamID uint64 `json:"team_id,omitempty" toon:"team_id,omitempty"` // Team name. - TeamName string `json:"team_name,omitempty"` + TeamName string `json:"team_name,omitempty" toon:"team_name,omitempty"` } // TeamInfosRequest is generated from the Flashduty OpenAPI schema. type TeamInfosRequest struct { // List of team IDs to look up. Max 100. - TeamIDs []uint64 `json:"team_ids,omitempty"` + TeamIDs []uint64 `json:"team_ids,omitempty" toon:"team_ids,omitempty"` } // TeamInfosResponse is generated from the Flashduty OpenAPI schema. type TeamInfosResponse struct { - Items []TeamBriefItem `json:"items,omitempty"` + Items []TeamBriefItem `json:"items,omitempty" toon:"items,omitempty"` } // TeamItem is generated from the Flashduty OpenAPI schema. type TeamItem struct { // Owning account ID. - AccountID uint64 `json:"account_id,omitempty"` + AccountID uint64 `json:"account_id,omitempty" toon:"account_id,omitempty"` // Unix epoch seconds the team was created. - CreatedAt Timestamp `json:"created_at,omitempty"` + CreatedAt Timestamp `json:"created_at,omitempty" toon:"created_at,omitempty"` // Member ID of the creator. - CreatorID uint64 `json:"creator_id,omitempty"` + CreatorID uint64 `json:"creator_id,omitempty" toon:"creator_id,omitempty"` // Display name of the creator. - CreatorName string `json:"creator_name,omitempty"` + CreatorName string `json:"creator_name,omitempty" toon:"creator_name,omitempty"` // Free-form description. - Description string `json:"description,omitempty"` + Description string `json:"description,omitempty" toon:"description,omitempty"` // Member IDs of team members. - PersonIDs []uint64 `json:"person_ids,omitempty"` + PersonIDs []uint64 `json:"person_ids,omitempty" toon:"person_ids,omitempty"` // External reference ID for third-party HR system integration. - RefID string `json:"ref_id,omitempty"` + RefID string `json:"ref_id,omitempty" toon:"ref_id,omitempty"` // Team status. - Status string `json:"status,omitempty"` + Status string `json:"status,omitempty" toon:"status,omitempty"` // Unique team ID. - TeamID uint64 `json:"team_id,omitempty"` + TeamID uint64 `json:"team_id,omitempty" toon:"team_id,omitempty"` // Team display name. 1–39 characters, unique per account. - TeamName string `json:"team_name,omitempty"` + TeamName string `json:"team_name,omitempty" toon:"team_name,omitempty"` // Unix epoch seconds the team was last updated. - UpdatedAt Timestamp `json:"updated_at,omitempty"` + UpdatedAt Timestamp `json:"updated_at,omitempty" toon:"updated_at,omitempty"` // Member ID of the last editor. - UpdatedBy uint64 `json:"updated_by,omitempty"` + UpdatedBy uint64 `json:"updated_by,omitempty" toon:"updated_by,omitempty"` // Display name of the last editor. - UpdatedByName string `json:"updated_by_name,omitempty"` + UpdatedByName string `json:"updated_by_name,omitempty" toon:"updated_by_name,omitempty"` } // TeamListRequest is generated from the Flashduty OpenAPI schema. type TeamListRequest struct { ListOptions // Ascending sort order. - Asc bool `json:"asc,omitempty"` + Asc bool `json:"asc,omitempty" toon:"asc,omitempty"` // Sort field. - Orderby string `json:"orderby,omitempty"` + Orderby string `json:"orderby,omitempty" toon:"orderby,omitempty"` // Filter by member ID — return only teams this person belongs to. - PersonID uint64 `json:"person_id,omitempty"` + PersonID uint64 `json:"person_id,omitempty" toon:"person_id,omitempty"` // Substring match on team name. - Query string `json:"query,omitempty"` + Query string `json:"query,omitempty" toon:"query,omitempty"` } // TeamListResponse is generated from the Flashduty OpenAPI schema. type TeamListResponse struct { ListOptions - Items []TeamItem `json:"items,omitempty"` + Items []TeamItem `json:"items,omitempty" toon:"items,omitempty"` // Total number of teams matching the filter. - Total int64 `json:"total,omitempty"` + Total int64 `json:"total,omitempty" toon:"total,omitempty"` } // TeamUpsertRequest is generated from the Flashduty OpenAPI schema. type TeamUpsertRequest struct { // Default country code applied to any `phones` entries that are not in E.164 format. - CountryCode string `json:"countryCode,omitempty"` + CountryCode string `json:"countryCode,omitempty" toon:"countryCode,omitempty"` // Free-form description. - Description string `json:"description,omitempty"` + Description string `json:"description,omitempty" toon:"description,omitempty"` // Email addresses to invite as members. - Emails []string `json:"emails,omitempty"` + Emails []string `json:"emails,omitempty" toon:"emails,omitempty"` // Member IDs to set as team members. Replaces the existing member list. - PersonIDs []uint64 `json:"person_ids,omitempty"` + PersonIDs []uint64 `json:"person_ids,omitempty" toon:"person_ids,omitempty"` // Phone numbers to invite as members. - Phones []string `json:"phones,omitempty"` + Phones []string `json:"phones,omitempty" toon:"phones,omitempty"` // External reference ID for HR system integration. - RefID string `json:"ref_id,omitempty"` + RefID string `json:"ref_id,omitempty" toon:"ref_id,omitempty"` // If true and a team with the same name already exists, reset its membership to the provided person_ids. - ResetIfNameExist bool `json:"reset_if_name_exist,omitempty"` + ResetIfNameExist bool `json:"reset_if_name_exist,omitempty" toon:"reset_if_name_exist,omitempty"` // Team ID. Omit or set to 0 to create a new team. - TeamID uint64 `json:"team_id,omitempty"` + TeamID uint64 `json:"team_id,omitempty" toon:"team_id,omitempty"` // Team display name. 1–39 characters. - TeamName string `json:"team_name,omitempty"` + TeamName string `json:"team_name,omitempty" toon:"team_name,omitempty"` } // TeamUpsertResponse is generated from the Flashduty OpenAPI schema. type TeamUpsertResponse struct { // Created or updated team ID. - TeamID uint64 `json:"team_id,omitempty"` + TeamID uint64 `json:"team_id,omitempty" toon:"team_id,omitempty"` // Team name echoed from the request. - TeamName string `json:"team_name,omitempty"` + TeamName string `json:"team_name,omitempty" toon:"team_name,omitempty"` } // TemplateCreateRequest is generated from the Flashduty OpenAPI schema. type TemplateCreateRequest struct { // Free-form description. Up to 500 characters. - Description string `json:"description,omitempty"` + Description string `json:"description,omitempty" toon:"description,omitempty"` // DingTalk robot message template source. - Dingtalk string `json:"dingtalk,omitempty"` + Dingtalk string `json:"dingtalk,omitempty" toon:"dingtalk,omitempty"` // DingTalk app message template source. - DingtalkApp string `json:"dingtalk_app,omitempty"` + DingtalkApp string `json:"dingtalk_app,omitempty" toon:"dingtalk_app,omitempty"` // Email body template source (Go `html/template` syntax). - Email string `json:"email,omitempty"` + Email string `json:"email,omitempty" toon:"email,omitempty"` // Feishu robot message template source. - Feishu string `json:"feishu,omitempty"` + Feishu string `json:"feishu,omitempty" toon:"feishu,omitempty"` // Feishu app message template source. - FeishuApp string `json:"feishu_app,omitempty"` + FeishuApp string `json:"feishu_app,omitempty" toon:"feishu_app,omitempty"` // Slack robot message template source. - Slack string `json:"slack,omitempty"` + Slack string `json:"slack,omitempty" toon:"slack,omitempty"` // Slack app message template source. - SlackApp string `json:"slack_app,omitempty"` + SlackApp string `json:"slack_app,omitempty" toon:"slack_app,omitempty"` // SMS template source (Go `text/template` syntax). - SMS string `json:"sms,omitempty"` + SMS string `json:"sms,omitempty" toon:"sms,omitempty"` // Team scope. 0 for account-wide. - TeamID int64 `json:"team_id,omitempty"` + TeamID int64 `json:"team_id,omitempty" toon:"team_id,omitempty"` // Microsoft Teams app message template source. - TeamsApp string `json:"teams_app,omitempty"` + TeamsApp string `json:"teams_app,omitempty" toon:"teams_app,omitempty"` // Telegram bot message template source. - Telegram string `json:"telegram,omitempty"` + Telegram string `json:"telegram,omitempty" toon:"telegram,omitempty"` // Template name, unique per account. 1–39 characters. - TemplateName string `json:"template_name,omitempty"` + TemplateName string `json:"template_name,omitempty" toon:"template_name,omitempty"` // Voice call script template source. - Voice string `json:"voice,omitempty"` + Voice string `json:"voice,omitempty" toon:"voice,omitempty"` // WeCom robot message template source. - Wecom string `json:"wecom,omitempty"` + Wecom string `json:"wecom,omitempty" toon:"wecom,omitempty"` // WeCom app message template source. - WecomApp string `json:"wecom_app,omitempty"` + WecomApp string `json:"wecom_app,omitempty" toon:"wecom_app,omitempty"` // Zoom bot message template source. - Zoom string `json:"zoom,omitempty"` + Zoom string `json:"zoom,omitempty" toon:"zoom,omitempty"` } // TemplateCreateResponse is generated from the Flashduty OpenAPI schema. type TemplateCreateResponse struct { // Newly created template ID. - TemplateID string `json:"template_id,omitempty"` + TemplateID string `json:"template_id,omitempty" toon:"template_id,omitempty"` // Template name echoed from the request. - TemplateName string `json:"template_name,omitempty"` + TemplateName string `json:"template_name,omitempty" toon:"template_name,omitempty"` } // TemplateIDRequest is generated from the Flashduty OpenAPI schema. type TemplateIDRequest struct { // Target template ID. Pass `000000000000000000000001` to address the built-in preset. - TemplateID string `json:"template_id,omitempty"` + TemplateID string `json:"template_id,omitempty" toon:"template_id,omitempty"` } // TemplateItem is generated from the Flashduty OpenAPI schema. type TemplateItem struct { // ID of the owning account. - AccountID int64 `json:"account_id,omitempty"` + AccountID int64 `json:"account_id,omitempty" toon:"account_id,omitempty"` // Unix epoch seconds the template was created. - CreatedAt Timestamp `json:"created_at,omitempty"` + CreatedAt Timestamp `json:"created_at,omitempty" toon:"created_at,omitempty"` // Member ID of the creator. - CreatorID int64 `json:"creator_id,omitempty"` + CreatorID int64 `json:"creator_id,omitempty" toon:"creator_id,omitempty"` // Unix epoch seconds the template was soft-deleted. Absent (omitempty) when the template is live. - DeletedAt Timestamp `json:"deleted_at,omitempty"` + DeletedAt Timestamp `json:"deleted_at,omitempty" toon:"deleted_at,omitempty"` // Free-form description. - Description string `json:"description,omitempty"` + Description string `json:"description,omitempty" toon:"description,omitempty"` // DingTalk robot message template source. - Dingtalk string `json:"dingtalk,omitempty"` + Dingtalk string `json:"dingtalk,omitempty" toon:"dingtalk,omitempty"` // DingTalk app message template source. - DingtalkApp string `json:"dingtalk_app,omitempty"` + DingtalkApp string `json:"dingtalk_app,omitempty" toon:"dingtalk_app,omitempty"` // Email body template source (Go `html/template` syntax). - Email string `json:"email,omitempty"` + Email string `json:"email,omitempty" toon:"email,omitempty"` // Feishu robot message template source. - Feishu string `json:"feishu,omitempty"` + Feishu string `json:"feishu,omitempty" toon:"feishu,omitempty"` // Feishu app message template source. - FeishuApp string `json:"feishu_app,omitempty"` + FeishuApp string `json:"feishu_app,omitempty" toon:"feishu_app,omitempty"` // Slack robot message template source. - Slack string `json:"slack,omitempty"` + Slack string `json:"slack,omitempty" toon:"slack,omitempty"` // Slack app message template source. - SlackApp string `json:"slack_app,omitempty"` + SlackApp string `json:"slack_app,omitempty" toon:"slack_app,omitempty"` // SMS template source (Go `text/template` syntax). - SMS string `json:"sms,omitempty"` + SMS string `json:"sms,omitempty" toon:"sms,omitempty"` // Template lifecycle status. - Status string `json:"status,omitempty"` + Status string `json:"status,omitempty" toon:"status,omitempty"` // ID of the team this template is scoped to, or 0 for account-wide. - TeamID int64 `json:"team_id,omitempty"` + TeamID int64 `json:"team_id,omitempty" toon:"team_id,omitempty"` // Microsoft Teams app message template source. - TeamsApp string `json:"teams_app,omitempty"` + TeamsApp string `json:"teams_app,omitempty" toon:"teams_app,omitempty"` // Telegram bot message template source. - Telegram string `json:"telegram,omitempty"` + Telegram string `json:"telegram,omitempty" toon:"telegram,omitempty"` // Template ID. - TemplateID string `json:"template_id,omitempty"` + TemplateID string `json:"template_id,omitempty" toon:"template_id,omitempty"` // Unique template name within the account. - TemplateName string `json:"template_name,omitempty"` + TemplateName string `json:"template_name,omitempty" toon:"template_name,omitempty"` // Unix epoch seconds the template was last updated. - UpdatedAt Timestamp `json:"updated_at,omitempty"` + UpdatedAt Timestamp `json:"updated_at,omitempty" toon:"updated_at,omitempty"` // Member ID of the last editor. - UpdatedBy int64 `json:"updated_by,omitempty"` + UpdatedBy int64 `json:"updated_by,omitempty" toon:"updated_by,omitempty"` // Voice call script template source. - Voice string `json:"voice,omitempty"` + Voice string `json:"voice,omitempty" toon:"voice,omitempty"` // WeCom robot message template source. - Wecom string `json:"wecom,omitempty"` + Wecom string `json:"wecom,omitempty" toon:"wecom,omitempty"` // WeCom app message template source. - WecomApp string `json:"wecom_app,omitempty"` + WecomApp string `json:"wecom_app,omitempty" toon:"wecom_app,omitempty"` // Zoom bot message template source. - Zoom string `json:"zoom,omitempty"` + Zoom string `json:"zoom,omitempty" toon:"zoom,omitempty"` } // TemplateListRequest is generated from the Flashduty OpenAPI schema. type TemplateListRequest struct { ListOptions // Ascending sort order. - Asc bool `json:"asc,omitempty"` + Asc bool `json:"asc,omitempty" toon:"asc,omitempty"` // Filter by creator member ID. - CreatorID *int64 `json:"creator_id,omitempty"` + CreatorID *int64 `json:"creator_id,omitempty" toon:"creator_id,omitempty"` // When true, only return templates scoped to teams the caller belongs to. - IsMyTeam bool `json:"is_my_team,omitempty"` + IsMyTeam bool `json:"is_my_team,omitempty" toon:"is_my_team,omitempty"` // Sort field. - Orderby string `json:"orderby,omitempty"` + Orderby string `json:"orderby,omitempty" toon:"orderby,omitempty"` // Regex or substring match on template_name. - Query string `json:"query,omitempty"` + Query string `json:"query,omitempty" toon:"query,omitempty"` // Filter by specific team IDs. - TeamIDs []int64 `json:"team_ids,omitempty"` + TeamIDs []int64 `json:"team_ids,omitempty" toon:"team_ids,omitempty"` } // TemplateListResponse is generated from the Flashduty OpenAPI schema. type TemplateListResponse struct { // True if another page exists after the returned one. - HasNextPage bool `json:"has_next_page,omitempty"` - Items []TemplateItem `json:"items,omitempty"` + HasNextPage bool `json:"has_next_page,omitempty" toon:"has_next_page,omitempty"` + Items []TemplateItem `json:"items,omitempty" toon:"items,omitempty"` // Total number of templates matching the filter, across all pages. - Total int64 `json:"total,omitempty"` + Total int64 `json:"total,omitempty" toon:"total,omitempty"` } // TemplateUpdateRequest is generated from the Flashduty OpenAPI schema. type TemplateUpdateRequest struct { // Free-form description. Up to 500 characters. - Description string `json:"description,omitempty"` + Description string `json:"description,omitempty" toon:"description,omitempty"` // DingTalk robot message template source. - Dingtalk string `json:"dingtalk,omitempty"` + Dingtalk string `json:"dingtalk,omitempty" toon:"dingtalk,omitempty"` // DingTalk app message template source. - DingtalkApp string `json:"dingtalk_app,omitempty"` + DingtalkApp string `json:"dingtalk_app,omitempty" toon:"dingtalk_app,omitempty"` // Email body template source (Go `html/template` syntax). - Email string `json:"email,omitempty"` + Email string `json:"email,omitempty" toon:"email,omitempty"` // Feishu robot message template source. - Feishu string `json:"feishu,omitempty"` + Feishu string `json:"feishu,omitempty" toon:"feishu,omitempty"` // Feishu app message template source. - FeishuApp string `json:"feishu_app,omitempty"` + FeishuApp string `json:"feishu_app,omitempty" toon:"feishu_app,omitempty"` // Slack robot message template source. - Slack string `json:"slack,omitempty"` + Slack string `json:"slack,omitempty" toon:"slack,omitempty"` // Slack app message template source. - SlackApp string `json:"slack_app,omitempty"` + SlackApp string `json:"slack_app,omitempty" toon:"slack_app,omitempty"` // SMS template source (Go `text/template` syntax). - SMS string `json:"sms,omitempty"` + SMS string `json:"sms,omitempty" toon:"sms,omitempty"` // Team scope. 0 for account-wide. - TeamID int64 `json:"team_id,omitempty"` + TeamID int64 `json:"team_id,omitempty" toon:"team_id,omitempty"` // Microsoft Teams app message template source. - TeamsApp string `json:"teams_app,omitempty"` + TeamsApp string `json:"teams_app,omitempty" toon:"teams_app,omitempty"` // Telegram bot message template source. - Telegram string `json:"telegram,omitempty"` + Telegram string `json:"telegram,omitempty" toon:"telegram,omitempty"` // Target template ID. - TemplateID string `json:"template_id,omitempty"` + TemplateID string `json:"template_id,omitempty" toon:"template_id,omitempty"` // Template name. 1–39 characters. - TemplateName string `json:"template_name,omitempty"` + TemplateName string `json:"template_name,omitempty" toon:"template_name,omitempty"` // Voice call script template source. - Voice string `json:"voice,omitempty"` + Voice string `json:"voice,omitempty" toon:"voice,omitempty"` // WeCom robot message template source. - Wecom string `json:"wecom,omitempty"` + Wecom string `json:"wecom,omitempty" toon:"wecom,omitempty"` // WeCom app message template source. - WecomApp string `json:"wecom_app,omitempty"` + WecomApp string `json:"wecom_app,omitempty" toon:"wecom_app,omitempty"` // Zoom bot message template source. - Zoom string `json:"zoom,omitempty"` + Zoom string `json:"zoom,omitempty" toon:"zoom,omitempty"` } // TimeFilter is generated from the Flashduty OpenAPI schema. type TimeFilter struct { // Optional calendar ID; restricts the window to days matching the calendar. - CalID string `json:"cal_id,omitempty"` + CalID string `json:"cal_id,omitempty" toon:"cal_id,omitempty"` // End of the window in `HH:MM`. - End string `json:"end,omitempty"` + End string `json:"end,omitempty" toon:"end,omitempty"` // When true, match days marked as days-off in the calendar. - IsOff bool `json:"is_off,omitempty"` + IsOff bool `json:"is_off,omitempty" toon:"is_off,omitempty"` // Days of the week this window repeats on. Empty means every day. - Repeat []int64 `json:"repeat,omitempty"` + Repeat []int64 `json:"repeat,omitempty" toon:"repeat,omitempty"` // Start of the window in `HH:MM`. - Start string `json:"start,omitempty"` + Start string `json:"start,omitempty" toon:"start,omitempty"` } // ToolCatalogRequest is generated from the Flashduty OpenAPI schema. type ToolCatalogRequest struct { // Optional consistency check. Must equal the authenticated account when supplied. - AccountID int64 `json:"account_id,omitempty"` + AccountID int64 `json:"account_id,omitempty" toon:"account_id,omitempty"` // When true, each tool entry includes its `output_shape` JSON Schema. Defaults to false to keep responses small for LLM consumption. - IncludeOutputShape bool `json:"include_output_shape,omitempty"` + IncludeOutputShape bool `json:"include_output_shape,omitempty" toon:"include_output_shape,omitempty"` // Optional target kind. When omitted webapi auto-infers across currently known kinds. Built-in kinds: `host`, `mysql`. Required on retry when the previous call returned `ambiguous_target_kind`. - TargetKind string `json:"target_kind,omitempty"` + TargetKind string `json:"target_kind,omitempty" toon:"target_kind,omitempty"` // Target identifier (host name, MySQL address, …). Max 256 bytes; no whitespace, control characters, or `|`. - TargetLocator string `json:"target_locator,omitempty"` + TargetLocator string `json:"target_locator,omitempty" toon:"target_locator,omitempty"` } // ToolCatalogResponse is generated from the Flashduty OpenAPI schema. type ToolCatalogResponse struct { // Business error. `null` on success. - Error ToolCatalogResponseError `json:"error,omitempty"` + Error ToolCatalogResponseError `json:"error,omitempty" toon:"error,omitempty"` // Resolved target. `null` when locator could not be uniquely resolved. - Target ToolCatalogResponseTarget `json:"target,omitempty"` + Target ToolCatalogResponseTarget `json:"target,omitempty" toon:"target,omitempty"` // Tool catalog entries. Empty when `error` is non-null. - Tools []ToolCatalogResponseToolsItem `json:"tools,omitempty"` + Tools []ToolCatalogResponseToolsItem `json:"tools,omitempty" toon:"tools,omitempty"` } // ToolInvokeRequest is generated from the Flashduty OpenAPI schema. type ToolInvokeRequest struct { // Optional consistency check. Must equal the authenticated account when supplied. - AccountID int64 `json:"account_id,omitempty"` + AccountID int64 `json:"account_id,omitempty" toon:"account_id,omitempty"` // Optional target kind; auto-inferred when omitted. - TargetKind string `json:"target_kind,omitempty"` + TargetKind string `json:"target_kind,omitempty" toon:"target_kind,omitempty"` // Target identifier. Same validation rules as `/monit/tools/catalog`. - TargetLocator string `json:"target_locator,omitempty"` + TargetLocator string `json:"target_locator,omitempty" toon:"target_locator,omitempty"` // Up to 8 tool calls; webapi executes them concurrently and returns results in input order. - Tools []ToolInvokeRequestToolsItem `json:"tools,omitempty"` + Tools []ToolInvokeRequestToolsItem `json:"tools,omitempty" toon:"tools,omitempty"` } // ToolInvokeResponse is generated from the Flashduty OpenAPI schema. type ToolInvokeResponse struct { // Request-level business error. `null` on success. - Error ToolInvokeResponseError `json:"error,omitempty"` + Error ToolInvokeResponseError `json:"error,omitempty" toon:"error,omitempty"` // Per-tool results aligned with the request `tools[]` order. Empty when `error` is non-null. - Results []ToolInvokeResponseResultsItem `json:"results,omitempty"` + Results []ToolInvokeResponseResultsItem `json:"results,omitempty" toon:"results,omitempty"` // Resolved target. - Target ToolInvokeResponseTarget `json:"target,omitempty"` + Target ToolInvokeResponseTarget `json:"target,omitempty" toon:"target,omitempty"` } // UnackIncidentRequest is generated from the Flashduty OpenAPI schema. type UnackIncidentRequest struct { // Incident IDs to unacknowledge. At most 100 per call. - IncidentIDs []string `json:"incident_ids,omitempty"` + IncidentIDs []string `json:"incident_ids,omitempty" toon:"incident_ids,omitempty"` } // UnsubscribeRuleItem is generated from the Flashduty OpenAPI schema. type UnsubscribeRuleItem struct { - AccountID int64 `json:"account_id,omitempty"` - ChannelID int64 `json:"channel_id,omitempty"` - CreatedAt int64 `json:"created_at,omitempty"` - DeletedAt int64 `json:"deleted_at,omitempty"` - Description string `json:"description,omitempty"` - Filters FilterGroup `json:"filters,omitempty"` - Priority int64 `json:"priority,omitempty"` - RuleID string `json:"rule_id,omitempty"` - RuleName string `json:"rule_name,omitempty"` - Status string `json:"status,omitempty"` - UpdatedAt int64 `json:"updated_at,omitempty"` - UpdatedBy int64 `json:"updated_by,omitempty"` + AccountID int64 `json:"account_id,omitempty" toon:"account_id,omitempty"` + ChannelID int64 `json:"channel_id,omitempty" toon:"channel_id,omitempty"` + CreatedAt int64 `json:"created_at,omitempty" toon:"created_at,omitempty"` + DeletedAt int64 `json:"deleted_at,omitempty" toon:"deleted_at,omitempty"` + Description string `json:"description,omitempty" toon:"description,omitempty"` + Filters FilterGroup `json:"filters,omitempty" toon:"filters,omitempty"` + Priority int64 `json:"priority,omitempty" toon:"priority,omitempty"` + RuleID string `json:"rule_id,omitempty" toon:"rule_id,omitempty"` + RuleName string `json:"rule_name,omitempty" toon:"rule_name,omitempty"` + Status string `json:"status,omitempty" toon:"status,omitempty"` + UpdatedAt int64 `json:"updated_at,omitempty" toon:"updated_at,omitempty"` + UpdatedBy int64 `json:"updated_by,omitempty" toon:"updated_by,omitempty"` } // UpdateChannelRequest is generated from the Flashduty OpenAPI schema. type UpdateChannelRequest struct { // Auto-resolve timer reset mode. - AutoResolveMode string `json:"auto_resolve_mode,omitempty"` + AutoResolveMode string `json:"auto_resolve_mode,omitempty" toon:"auto_resolve_mode,omitempty"` // Auto-resolve timeout in seconds. 0 disables auto-resolve. Max 30 days. - AutoResolveTimeout *int64 `json:"auto_resolve_timeout,omitempty"` + AutoResolveTimeout *int64 `json:"auto_resolve_timeout,omitempty" toon:"auto_resolve_timeout,omitempty"` // Channel ID to update. - ChannelID int64 `json:"channel_id,omitempty"` + ChannelID int64 `json:"channel_id,omitempty" toon:"channel_id,omitempty"` // New channel name. 1 to 59 characters. - ChannelName *string `json:"channel_name,omitempty"` + ChannelName *string `json:"channel_name,omitempty" toon:"channel_name,omitempty"` // New description. Up to 500 characters. - Description *string `json:"description,omitempty"` + Description *string `json:"description,omitempty" toon:"description,omitempty"` // Disable automatic incident closing. - DisableAutoClose *bool `json:"disable_auto_close,omitempty"` + DisableAutoClose *bool `json:"disable_auto_close,omitempty" toon:"disable_auto_close,omitempty"` // Disable outlier incident detection. - DisableOutlierDetection *bool `json:"disable_outlier_detection,omitempty"` - Flapping Flapping `json:"flapping,omitempty"` - Group Group `json:"group,omitempty"` + DisableOutlierDetection *bool `json:"disable_outlier_detection,omitempty" toon:"disable_outlier_detection,omitempty"` + Flapping Flapping `json:"flapping,omitempty" toon:"flapping,omitempty"` + Group Group `json:"group,omitempty" toon:"group,omitempty"` // Allow external reporters to file incidents into this channel. - IsExternalReportEnabled *bool `json:"is_external_report_enabled,omitempty"` + IsExternalReportEnabled *bool `json:"is_external_report_enabled,omitempty" toon:"is_external_report_enabled,omitempty"` // When true, the channel is visible only to its managing teams. - IsPrivate *bool `json:"is_private,omitempty"` + IsPrivate *bool `json:"is_private,omitempty" toon:"is_private,omitempty"` // Additional teams that can manage the channel. Up to 3 entries. - ManagingTeamIDs []int64 `json:"managing_team_ids,omitempty"` + ManagingTeamIDs []int64 `json:"managing_team_ids,omitempty" toon:"managing_team_ids,omitempty"` // New owning team ID. - TeamID *int64 `json:"team_id,omitempty"` + TeamID *int64 `json:"team_id,omitempty" toon:"team_id,omitempty"` } // UpdateChannelResponse is generated from the Flashduty OpenAPI schema. type UpdateChannelResponse struct { // Newly generated token for external reporters. Only returned when `is_external_report_enabled` is set to `true` in the request. Callers should store this value; it cannot be retrieved afterwards. - ExternalReportToken string `json:"external_report_token,omitempty"` + ExternalReportToken string `json:"external_report_token,omitempty" toon:"external_report_token,omitempty"` } // UpdateDropRuleRequest is generated from the Flashduty OpenAPI schema. type UpdateDropRuleRequest struct { // Channel the rule belongs to. - ChannelID int64 `json:"channel_id,omitempty"` + ChannelID int64 `json:"channel_id,omitempty" toon:"channel_id,omitempty"` // Rule description, up to 500 characters. - Description string `json:"description,omitempty"` - Filters FilterGroup `json:"filters,omitempty"` + Description string `json:"description,omitempty" toon:"description,omitempty"` + Filters FilterGroup `json:"filters,omitempty" toon:"filters,omitempty"` // Evaluation priority. Lower runs first. - Priority int64 `json:"priority,omitempty"` + Priority int64 `json:"priority,omitempty" toon:"priority,omitempty"` // Drop rule ID (MongoDB ObjectID). - RuleID string `json:"rule_id,omitempty"` + RuleID string `json:"rule_id,omitempty" toon:"rule_id,omitempty"` // Rule name, 1 to 39 characters. - RuleName string `json:"rule_name,omitempty"` + RuleName string `json:"rule_name,omitempty" toon:"rule_name,omitempty"` } // UpdateEscalationRuleRequest is generated from the Flashduty OpenAPI schema. type UpdateEscalationRuleRequest struct { // Aggregation window in seconds. 0 disables aggregation. - AggrWindow int64 `json:"aggr_window,omitempty"` + AggrWindow int64 `json:"aggr_window,omitempty" toon:"aggr_window,omitempty"` // Channel the rule belongs to. - ChannelID int64 `json:"channel_id,omitempty"` + ChannelID int64 `json:"channel_id,omitempty" toon:"channel_id,omitempty"` // Rule description, up to 500 characters. - Description string `json:"description,omitempty"` - Filters FilterGroup `json:"filters,omitempty"` + Description string `json:"description,omitempty" toon:"description,omitempty"` + Filters FilterGroup `json:"filters,omitempty" toon:"filters,omitempty"` // Escalation levels in order. At least one level is required. - Layers []EscalateLayer `json:"layers,omitempty"` + Layers []EscalateLayer `json:"layers,omitempty" toon:"layers,omitempty"` // Evaluation priority. Lower runs first. - Priority *int64 `json:"priority,omitempty"` + Priority *int64 `json:"priority,omitempty" toon:"priority,omitempty"` // Escalation rule ID (MongoDB ObjectID). - RuleID string `json:"rule_id,omitempty"` + RuleID string `json:"rule_id,omitempty" toon:"rule_id,omitempty"` // Rule name, 1 to 39 characters. - RuleName string `json:"rule_name,omitempty"` + RuleName string `json:"rule_name,omitempty" toon:"rule_name,omitempty"` // Notification template ID (MongoDB ObjectID). - TemplateID string `json:"template_id,omitempty"` + TemplateID string `json:"template_id,omitempty" toon:"template_id,omitempty"` // Optional recurring time windows during which the rule applies. - TimeFilters []TimeFilter `json:"time_filters,omitempty"` + TimeFilters []TimeFilter `json:"time_filters,omitempty" toon:"time_filters,omitempty"` } // UpdateFieldRequest is generated from the Flashduty OpenAPI schema. type UpdateFieldRequest struct { // Replacement default value. Type must match the field's existing `field_type`. - DefaultValue any `json:"default_value,omitempty"` + DefaultValue any `json:"default_value,omitempty" toon:"default_value,omitempty"` // New description. - Description string `json:"description,omitempty"` + Description string `json:"description,omitempty" toon:"description,omitempty"` // New display name. Must remain unique within the account. - DisplayName string `json:"display_name,omitempty"` + DisplayName string `json:"display_name,omitempty" toon:"display_name,omitempty"` // Field ID — 24-character hex ObjectID. - FieldID string `json:"field_id,omitempty"` + FieldID string `json:"field_id,omitempty" toon:"field_id,omitempty"` // Replacement options list. Must obey the same per-type rules as create. - Options []string `json:"options,omitempty"` + Options []string `json:"options,omitempty" toon:"options,omitempty"` } // UpdateIncidentFieldsRequest is generated from the Flashduty OpenAPI schema. type UpdateIncidentFieldsRequest struct { // New description. - Description string `json:"description,omitempty"` + Description string `json:"description,omitempty" toon:"description,omitempty"` // New impact description. - Impact string `json:"impact,omitempty"` + Impact string `json:"impact,omitempty" toon:"impact,omitempty"` // Incident ID (MongoDB ObjectID). - IncidentID string `json:"incident_id,omitempty"` + IncidentID string `json:"incident_id,omitempty" toon:"incident_id,omitempty"` // New severity. - IncidentSeverity string `json:"incident_severity,omitempty"` + IncidentSeverity string `json:"incident_severity,omitempty" toon:"incident_severity,omitempty"` // New resolution notes. - Resolution string `json:"resolution,omitempty"` + Resolution string `json:"resolution,omitempty" toon:"resolution,omitempty"` // New root cause analysis. - RootCause string `json:"root_cause,omitempty"` + RootCause string `json:"root_cause,omitempty" toon:"root_cause,omitempty"` // New incident title. - Title string `json:"title,omitempty"` + Title string `json:"title,omitempty" toon:"title,omitempty"` } // UpdateInhibitRuleRequest is generated from the Flashduty OpenAPI schema. type UpdateInhibitRuleRequest struct { // Channel the rule belongs to. - ChannelID int64 `json:"channel_id,omitempty"` + ChannelID int64 `json:"channel_id,omitempty" toon:"channel_id,omitempty"` // Rule description, up to 500 characters. - Description string `json:"description,omitempty"` + Description string `json:"description,omitempty" toon:"description,omitempty"` // Label keys used to pair source and target alerts. - Equals []string `json:"equals,omitempty"` + Equals []string `json:"equals,omitempty" toon:"equals,omitempty"` // When true, suppressed target alerts are dropped instead of merged. - IsDirectlyDiscard bool `json:"is_directly_discard,omitempty"` + IsDirectlyDiscard bool `json:"is_directly_discard,omitempty" toon:"is_directly_discard,omitempty"` // Evaluation priority. Lower runs first. - Priority int64 `json:"priority,omitempty"` + Priority int64 `json:"priority,omitempty" toon:"priority,omitempty"` // Inhibit rule ID (MongoDB ObjectID). - RuleID string `json:"rule_id,omitempty"` + RuleID string `json:"rule_id,omitempty" toon:"rule_id,omitempty"` // Rule name, 1 to 39 characters. - RuleName string `json:"rule_name,omitempty"` - SourceFilters FilterGroup `json:"source_filters,omitempty"` - TargetFilters FilterGroup `json:"target_filters,omitempty"` + RuleName string `json:"rule_name,omitempty" toon:"rule_name,omitempty"` + SourceFilters FilterGroup `json:"source_filters,omitempty" toon:"source_filters,omitempty"` + TargetFilters FilterGroup `json:"target_filters,omitempty" toon:"target_filters,omitempty"` } // UpdateSilenceRuleRequest is generated from the Flashduty OpenAPI schema. type UpdateSilenceRuleRequest struct { // Channel the rule belongs to. - ChannelID int64 `json:"channel_id,omitempty"` + ChannelID int64 `json:"channel_id,omitempty" toon:"channel_id,omitempty"` // Rule description, up to 500 characters. - Description string `json:"description,omitempty"` - Filters FilterGroup `json:"filters,omitempty"` + Description string `json:"description,omitempty" toon:"description,omitempty"` + Filters FilterGroup `json:"filters,omitempty" toon:"filters,omitempty"` // When true, the silence rule is automatically deleted after its time window expires. Defaults to false. - IsAutoDelete bool `json:"is_auto_delete,omitempty"` + IsAutoDelete bool `json:"is_auto_delete,omitempty" toon:"is_auto_delete,omitempty"` // When true, silenced alerts are dropped instead of suppressed into incidents. - IsDirectlyDiscard bool `json:"is_directly_discard,omitempty"` + IsDirectlyDiscard bool `json:"is_directly_discard,omitempty" toon:"is_directly_discard,omitempty"` // Evaluation priority. Lower runs first. - Priority int64 `json:"priority,omitempty"` + Priority int64 `json:"priority,omitempty" toon:"priority,omitempty"` // Silence rule ID (MongoDB ObjectID). - RuleID string `json:"rule_id,omitempty"` + RuleID string `json:"rule_id,omitempty" toon:"rule_id,omitempty"` // Rule name, 1 to 39 characters. - RuleName string `json:"rule_name,omitempty"` - TimeFilter OnceTimeFilter `json:"time_filter,omitempty"` + RuleName string `json:"rule_name,omitempty" toon:"rule_name,omitempty"` + TimeFilter OnceTimeFilter `json:"time_filter,omitempty" toon:"time_filter,omitempty"` // Recurring time windows. Mutually exclusive with `time_filter`. - TimeFilters []TimeFilter `json:"time_filters,omitempty"` + TimeFilters []TimeFilter `json:"time_filters,omitempty" toon:"time_filters,omitempty"` } // UpdateStatusPageChangeRequest is generated from the Flashduty OpenAPI schema. type UpdateStatusPageChangeRequest struct { // Target event ID. - ChangeID int64 `json:"change_id,omitempty"` + ChangeID int64 `json:"change_id,omitempty" toon:"change_id,omitempty"` // Linked event IDs. Pass the full replacement list. - LinkedChanges []string `json:"linked_changes,omitempty"` + LinkedChanges []string `json:"linked_changes,omitempty" toon:"linked_changes,omitempty"` // Status page ID. - PageID int64 `json:"page_id,omitempty"` + PageID int64 `json:"page_id,omitempty" toon:"page_id,omitempty"` // Member IDs responsible for this event. Pass the full replacement list. - Responders []int64 `json:"responders,omitempty"` + Responders []int64 `json:"responders,omitempty" toon:"responders,omitempty"` // New event title, up to 255 characters. Omit to keep the existing value. - Title *string `json:"title,omitempty"` + Title *string `json:"title,omitempty" toon:"title,omitempty"` } // UpdateStatusPageChangeTimelineRequest is generated from the Flashduty OpenAPI schema. type UpdateStatusPageChangeTimelineRequest struct { // New update timestamp in unix seconds. - AtSeconds int64 `json:"at_seconds,omitempty"` + AtSeconds int64 `json:"at_seconds,omitempty" toon:"at_seconds,omitempty"` // Parent event ID. - ChangeID int64 `json:"change_id,omitempty"` + ChangeID int64 `json:"change_id,omitempty" toon:"change_id,omitempty"` // New update description (Markdown). - Description string `json:"description,omitempty"` + Description string `json:"description,omitempty" toon:"description,omitempty"` // Status page ID. - PageID int64 `json:"page_id,omitempty"` + PageID int64 `json:"page_id,omitempty" toon:"page_id,omitempty"` // Target timeline update ID. - UpdateID string `json:"update_id,omitempty"` + UpdateID string `json:"update_id,omitempty" toon:"update_id,omitempty"` } // UpsertRouteRequest is generated from the Flashduty OpenAPI schema. type UpsertRouteRequest struct { // Ordered list of case branches. Cases are evaluated top to bottom. - Cases []RouteCase `json:"cases,omitempty"` - Default RouteDefault `json:"default,omitempty"` + Cases []RouteCase `json:"cases,omitempty" toon:"cases,omitempty"` + Default RouteDefault `json:"default,omitempty" toon:"default,omitempty"` // Integration the rule belongs to. - IntegrationID int64 `json:"integration_id,omitempty"` + IntegrationID int64 `json:"integration_id,omitempty" toon:"integration_id,omitempty"` // Optional sections that group consecutive cases for display. - Sections []RouteSection `json:"sections,omitempty"` + Sections []RouteSection `json:"sections,omitempty" toon:"sections,omitempty"` // Expected current version for optimistic concurrency control. Pass the value returned by the latest read. - Version int64 `json:"version,omitempty"` + Version int64 `json:"version,omitempty" toon:"version,omitempty"` } // WakeIncidentRequest is generated from the Flashduty OpenAPI schema. type WakeIncidentRequest struct { // Incident IDs to wake. At most 100 per call. - IncidentIDs []string `json:"incident_ids,omitempty"` + IncidentIDs []string `json:"incident_ids,omitempty" toon:"incident_ids,omitempty"` } // WarRoom is generated from the Flashduty OpenAPI schema. type WarRoom struct { // Chat/group ID on the IM side. - ChatID string `json:"chat_id,omitempty"` + ChatID string `json:"chat_id,omitempty" toon:"chat_id,omitempty"` // Chat/group display name. - ChatName string `json:"chat_name,omitempty"` + ChatName string `json:"chat_name,omitempty" toon:"chat_name,omitempty"` // Join link for the war room, if provided by the IM. - ShareLink string `json:"share_link,omitempty"` + ShareLink string `json:"share_link,omitempty" toon:"share_link,omitempty"` } // WarRoomDataSourceItem is generated from the Flashduty OpenAPI schema. type WarRoomDataSourceItem struct { // Account this integration belongs to. - AccountID int64 `json:"account_id,omitempty"` + AccountID int64 `json:"account_id,omitempty" toon:"account_id,omitempty"` // Category of the integration plugin. - Category string `json:"category,omitempty"` + Category string `json:"category,omitempty" toon:"category,omitempty"` // Unix timestamp in seconds when the integration was created. - CreatedAt Timestamp `json:"created_at,omitempty"` + CreatedAt Timestamp `json:"created_at,omitempty" toon:"created_at,omitempty"` // Person who created the integration. - CreatorID int64 `json:"creator_id,omitempty"` + CreatorID int64 `json:"creator_id,omitempty" toon:"creator_id,omitempty"` // Integration ID. - DataSourceID int64 `json:"data_source_id,omitempty"` + DataSourceID int64 `json:"data_source_id,omitempty" toon:"data_source_id,omitempty"` // Integration description. - Description string `json:"description,omitempty"` + Description string `json:"description,omitempty" toon:"description,omitempty"` // Exclusive integration ID associated with this integration. - ExclusiveDataSourceID int64 `json:"exclusive_data_source_id,omitempty"` + ExclusiveDataSourceID int64 `json:"exclusive_data_source_id,omitempty" toon:"exclusive_data_source_id,omitempty"` // Integration ID, alias of data_source_id. - IntegrationID int64 `json:"integration_id,omitempty"` + IntegrationID int64 `json:"integration_id,omitempty" toon:"integration_id,omitempty"` // Push key used by alert sources to send to this integration. - IntegrationKey string `json:"integration_key,omitempty"` + IntegrationKey string `json:"integration_key,omitempty" toon:"integration_key,omitempty"` // Unix timestamp in seconds of the most recent activity on the integration. - LastTime Timestamp `json:"last_time,omitempty"` + LastTime Timestamp `json:"last_time,omitempty" toon:"last_time,omitempty"` // Integration name. - Name string `json:"name,omitempty"` + Name string `json:"name,omitempty" toon:"name,omitempty"` // Whether the integration is read-only. - NoEditable bool `json:"no_editable,omitempty"` + NoEditable bool `json:"no_editable,omitempty" toon:"no_editable,omitempty"` // Plugin ID backing this integration. - PluginID int64 `json:"plugin_id,omitempty"` + PluginID int64 `json:"plugin_id,omitempty" toon:"plugin_id,omitempty"` // Type identifier of the integration plugin. - PluginType string `json:"plugin_type,omitempty"` + PluginType string `json:"plugin_type,omitempty" toon:"plugin_type,omitempty"` // Localized display name of the integration plugin type. - PluginTypeName string `json:"plugin_type_name,omitempty"` + PluginTypeName string `json:"plugin_type_name,omitempty" toon:"plugin_type_name,omitempty"` // External reference ID of the integration. - RefID string `json:"ref_id,omitempty"` + RefID string `json:"ref_id,omitempty" toon:"ref_id,omitempty"` // Plugin-specific configuration of the integration. - Settings map[string]any `json:"settings,omitempty"` + Settings map[string]any `json:"settings,omitempty" toon:"settings,omitempty"` // Current status of the integration. - Status string `json:"status,omitempty"` + Status string `json:"status,omitempty" toon:"status,omitempty"` // Team that owns this integration. - TeamID int64 `json:"team_id,omitempty"` + TeamID int64 `json:"team_id,omitempty" toon:"team_id,omitempty"` // Unix timestamp in seconds when the integration was last updated. - UpdatedAt Timestamp `json:"updated_at,omitempty"` + UpdatedAt Timestamp `json:"updated_at,omitempty" toon:"updated_at,omitempty"` // Person who last updated the integration. - UpdatedBy int64 `json:"updated_by,omitempty"` + UpdatedBy int64 `json:"updated_by,omitempty" toon:"updated_by,omitempty"` } // WarRoomItem is generated from the Flashduty OpenAPI schema. type WarRoomItem struct { // Account ID. - AccountID int64 `json:"account_id,omitempty"` + AccountID int64 `json:"account_id,omitempty" toon:"account_id,omitempty"` // Chat/group ID on the IM side. - ChatID string `json:"chat_id,omitempty"` + ChatID string `json:"chat_id,omitempty" toon:"chat_id,omitempty"` // Creation timestamp (seconds). - CreatedAt Timestamp `json:"created_at,omitempty"` + CreatedAt Timestamp `json:"created_at,omitempty" toon:"created_at,omitempty"` // Member ID that created the war room. - CreatedBy int64 `json:"created_by,omitempty"` + CreatedBy int64 `json:"created_by,omitempty" toon:"created_by,omitempty"` // Associated incident ID (MongoDB ObjectID). - IncidentID string `json:"incident_id,omitempty"` + IncidentID string `json:"incident_id,omitempty" toon:"incident_id,omitempty"` // IM integration ID. - IntegrationID int64 `json:"integration_id,omitempty"` + IntegrationID int64 `json:"integration_id,omitempty" toon:"integration_id,omitempty"` // IM plugin type (e.g. `feishu`, `dingtalk`, `wecom`, `slack`). - PluginType string `json:"plugin_type,omitempty"` + PluginType string `json:"plugin_type,omitempty" toon:"plugin_type,omitempty"` // War room status. - Status string `json:"status,omitempty"` + Status string `json:"status,omitempty" toon:"status,omitempty"` } // WarRoomPersonItem is generated from the Flashduty OpenAPI schema. type WarRoomPersonItem struct { // Account this person belongs to. - AccountID int64 `json:"account_id,omitempty"` + AccountID int64 `json:"account_id,omitempty" toon:"account_id,omitempty"` // Role the person holds in the related context. - As string `json:"as,omitempty"` + As string `json:"as,omitempty" toon:"as,omitempty"` // URL of the person's avatar image. - Avatar string `json:"avatar,omitempty"` + Avatar string `json:"avatar,omitempty" toon:"avatar,omitempty"` // Email address of the person. - Email string `json:"email,omitempty"` + Email string `json:"email,omitempty" toon:"email,omitempty"` // Preferred language locale of the person. - Locale string `json:"locale,omitempty"` + Locale string `json:"locale,omitempty" toon:"locale,omitempty"` // Person ID. - PersonID int64 `json:"person_id,omitempty"` + PersonID int64 `json:"person_id,omitempty" toon:"person_id,omitempty"` // Display name of the person. - PersonName string `json:"person_name,omitempty"` + PersonName string `json:"person_name,omitempty" toon:"person_name,omitempty"` // Phone number of the person. - Phone string `json:"phone,omitempty"` + Phone string `json:"phone,omitempty" toon:"phone,omitempty"` // Current status of the person. - Status string `json:"status,omitempty"` + Status string `json:"status,omitempty" toon:"status,omitempty"` // Time zone of the person. - TimeZone string `json:"time_zone,omitempty"` + TimeZone string `json:"time_zone,omitempty" toon:"time_zone,omitempty"` } // WebhookHistoryDetail is generated from the Flashduty OpenAPI schema. type WebhookHistoryDetail struct { // Attempt sequence number. - Attempt int64 `json:"attempt,omitempty"` + Attempt int64 `json:"attempt,omitempty" toon:"attempt,omitempty"` // Channel ID when applicable. - ChannelID int64 `json:"channel_id,omitempty"` + ChannelID int64 `json:"channel_id,omitempty" toon:"channel_id,omitempty"` // Name of the associated channel, resolved at query time. - ChannelName string `json:"channel_name,omitempty"` + ChannelName string `json:"channel_name,omitempty" toon:"channel_name,omitempty"` // Total elapsed time of the attempt in milliseconds. - Duration int64 `json:"duration,omitempty"` + Duration int64 `json:"duration,omitempty" toon:"duration,omitempty"` // Destination URL. - Endpoint string `json:"endpoint,omitempty"` + Endpoint string `json:"endpoint,omitempty" toon:"endpoint,omitempty"` // Error message when delivery failed. - ErrorMessage string `json:"error_message,omitempty"` + ErrorMessage string `json:"error_message,omitempty" toon:"error_message,omitempty"` // Event ID. - EventID string `json:"event_id,omitempty"` + EventID string `json:"event_id,omitempty" toon:"event_id,omitempty"` // Event time as a formatted timestamp string. - EventTime string `json:"event_time,omitempty"` + EventTime string `json:"event_time,omitempty" toon:"event_time,omitempty"` // Event type. - EventType string `json:"event_type,omitempty"` + EventType string `json:"event_type,omitempty" toon:"event_type,omitempty"` // Integration ID. - IntegrationID int64 `json:"integration_id,omitempty"` + IntegrationID int64 `json:"integration_id,omitempty" toon:"integration_id,omitempty"` // Source object ID. - RefID string `json:"ref_id,omitempty"` + RefID string `json:"ref_id,omitempty" toon:"ref_id,omitempty"` // Title of the source incident or alert, resolved at query time. - RefTitle string `json:"ref_title,omitempty"` + RefTitle string `json:"ref_title,omitempty" toon:"ref_title,omitempty"` // Outbound request body payload. - RequestBody string `json:"request_body,omitempty"` + RequestBody string `json:"request_body,omitempty" toon:"request_body,omitempty"` // Serialized outbound request headers. - RequestHeaders string `json:"request_headers,omitempty"` + RequestHeaders string `json:"request_headers,omitempty" toon:"request_headers,omitempty"` // Response body. - ResponseBody string `json:"response_body,omitempty"` + ResponseBody string `json:"response_body,omitempty" toon:"response_body,omitempty"` // Serialized response headers. - ResponseHeaders string `json:"response_headers,omitempty"` + ResponseHeaders string `json:"response_headers,omitempty" toon:"response_headers,omitempty"` // Delivery outcome. - Status string `json:"status,omitempty"` + Status string `json:"status,omitempty" toon:"status,omitempty"` // HTTP status code. - StatusCode int64 `json:"status_code,omitempty"` + StatusCode int64 `json:"status_code,omitempty" toon:"status_code,omitempty"` // Source object kind. `incident` or `alert`. - WebhookType string `json:"webhook_type,omitempty"` + WebhookType string `json:"webhook_type,omitempty" toon:"webhook_type,omitempty"` } // WebhookHistoryItem is generated from the Flashduty OpenAPI schema. type WebhookHistoryItem struct { // Attempt sequence number. - Attempt int64 `json:"attempt,omitempty"` + Attempt int64 `json:"attempt,omitempty" toon:"attempt,omitempty"` // Channel ID associated with the event, when applicable. - ChannelID int64 `json:"channel_id,omitempty"` + ChannelID int64 `json:"channel_id,omitempty" toon:"channel_id,omitempty"` // Total elapsed time of the attempt in milliseconds. - Duration int64 `json:"duration,omitempty"` + Duration int64 `json:"duration,omitempty" toon:"duration,omitempty"` // Destination URL. - Endpoint string `json:"endpoint,omitempty"` + Endpoint string `json:"endpoint,omitempty" toon:"endpoint,omitempty"` // Error message when delivery failed. - ErrorMessage string `json:"error_message,omitempty"` + ErrorMessage string `json:"error_message,omitempty" toon:"error_message,omitempty"` // Unique event identifier for the delivery attempt. - EventID string `json:"event_id,omitempty"` + EventID string `json:"event_id,omitempty" toon:"event_id,omitempty"` // Event time as a formatted timestamp string. - EventTime string `json:"event_time,omitempty"` + EventTime string `json:"event_time,omitempty" toon:"event_time,omitempty"` // Event type (e.g. `created`, `acknowledged`, `closed`). - EventType string `json:"event_type,omitempty"` + EventType string `json:"event_type,omitempty" toon:"event_type,omitempty"` // Integration ID that triggered the webhook. - IntegrationID int64 `json:"integration_id,omitempty"` + IntegrationID int64 `json:"integration_id,omitempty" toon:"integration_id,omitempty"` // Source object ID (incident ID or alert ID). - RefID string `json:"ref_id,omitempty"` + RefID string `json:"ref_id,omitempty" toon:"ref_id,omitempty"` // Outbound request body payload. - RequestBody string `json:"request_body,omitempty"` + RequestBody string `json:"request_body,omitempty" toon:"request_body,omitempty"` // Serialized outbound request headers. - RequestHeaders string `json:"request_headers,omitempty"` + RequestHeaders string `json:"request_headers,omitempty" toon:"request_headers,omitempty"` // Response body returned by the destination. - ResponseBody string `json:"response_body,omitempty"` + ResponseBody string `json:"response_body,omitempty" toon:"response_body,omitempty"` // Serialized response headers from the destination. - ResponseHeaders string `json:"response_headers,omitempty"` + ResponseHeaders string `json:"response_headers,omitempty" toon:"response_headers,omitempty"` // Delivery outcome. - Status string `json:"status,omitempty"` + Status string `json:"status,omitempty" toon:"status,omitempty"` // HTTP status code returned by the destination. - StatusCode int64 `json:"status_code,omitempty"` + StatusCode int64 `json:"status_code,omitempty" toon:"status_code,omitempty"` // Source object kind. `incident` or `alert`. - WebhookType string `json:"webhook_type,omitempty"` + WebhookType string `json:"webhook_type,omitempty" toon:"webhook_type,omitempty"` } // AccountInfoRestrictions is generated from the Flashduty OpenAPI schema. type AccountInfoRestrictions struct { // Whether subdomains of the allowed email domains are also accepted. - AllowSubdomain bool `json:"allow_subdomain,omitempty"` + AllowSubdomain bool `json:"allow_subdomain,omitempty" toon:"allow_subdomain,omitempty"` // Allowed login email domains. - EmailDomains []string `json:"email_domains,omitempty"` + EmailDomains []string `json:"email_domains,omitempty" toon:"email_domains,omitempty"` // Allowed source IP/CIDR whitelist. - Ips []string `json:"ips,omitempty"` + Ips []string `json:"ips,omitempty" toon:"ips,omitempty"` } // AddIncidentResponderRequestNotify is generated from the Flashduty OpenAPI schema. type AddIncidentResponderRequestNotify struct { // When true, fall back to each responder's personal preference. - FollowPreference bool `json:"follow_preference,omitempty"` + FollowPreference bool `json:"follow_preference,omitempty" toon:"follow_preference,omitempty"` // Channels to use (e.g. `voice`, `sms`, `email`). - PersonalChannels []string `json:"personal_channels,omitempty"` + PersonalChannels []string `json:"personal_channels,omitempty" toon:"personal_channels,omitempty"` // Notification template ID (MongoDB ObjectID). - TemplateID string `json:"template_id,omitempty"` + TemplateID string `json:"template_id,omitempty" toon:"template_id,omitempty"` } // AlertRuleEnabledTimesItem is generated from the Flashduty OpenAPI schema. type AlertRuleEnabledTimesItem struct { // Days of week (0=Sunday). - Days []int64 `json:"days,omitempty"` + Days []int64 `json:"days,omitempty" toon:"days,omitempty"` // End time, e.g. `18:00`. - Etime string `json:"etime,omitempty"` + Etime string `json:"etime,omitempty" toon:"etime,omitempty"` // Start time, e.g. `09:00`. - Stime string `json:"stime,omitempty"` + Stime string `json:"stime,omitempty" toon:"stime,omitempty"` } // AlertRuleInfoResponseEnabledTimesItem is generated from the Flashduty OpenAPI schema. type AlertRuleInfoResponseEnabledTimesItem struct { // Days of week (0=Sunday). - Days []int64 `json:"days,omitempty"` + Days []int64 `json:"days,omitempty" toon:"days,omitempty"` // End time, e.g. `18:00`. - Etime string `json:"etime,omitempty"` + Etime string `json:"etime,omitempty" toon:"etime,omitempty"` // Start time, e.g. `09:00`. - Stime string `json:"stime,omitempty"` + Stime string `json:"stime,omitempty" toon:"stime,omitempty"` } // AuditLogParamsItem is generated from the Flashduty OpenAPI schema. type AuditLogParamsItem struct { - Key string `json:"Key,omitempty"` - Value string `json:"Value,omitempty"` + Key string `json:"Key,omitempty" toon:"Key,omitempty"` + Value string `json:"Value,omitempty" toon:"Value,omitempty"` } // CreateChannelRequestEscalateRule is generated from the Flashduty OpenAPI schema. type CreateChannelRequestEscalateRule struct { // Aggregation window in seconds. 0 disables aggregation. - AggrWindow int64 `json:"aggr_window,omitempty"` + AggrWindow int64 `json:"aggr_window,omitempty" toon:"aggr_window,omitempty"` // Notification target. At least one of `person_ids`, `team_ids`, `schedule_to_role_ids`, or `emails` must be set, together with either `by` or `webhooks`. - Target CreateChannelRequestEscalateRuleTarget `json:"target,omitempty"` + Target CreateChannelRequestEscalateRuleTarget `json:"target,omitempty" toon:"target,omitempty"` // Notification template ID (MongoDB ObjectID). - TemplateID string `json:"template_id,omitempty"` + TemplateID string `json:"template_id,omitempty" toon:"template_id,omitempty"` } // CreateChannelRequestFlapping is generated from the Flashduty OpenAPI schema. type CreateChannelRequestFlapping struct { // Observation window in minutes. - InMins int64 `json:"in_mins,omitempty"` + InMins int64 `json:"in_mins,omitempty" toon:"in_mins,omitempty"` // Disable flapping detection. - IsDisabled bool `json:"is_disabled,omitempty"` + IsDisabled bool `json:"is_disabled,omitempty" toon:"is_disabled,omitempty"` // Max state changes allowed within `in_mins`. - MaxChanges int64 `json:"max_changes,omitempty"` + MaxChanges int64 `json:"max_changes,omitempty" toon:"max_changes,omitempty"` // Mute duration in minutes after flapping is detected. - MuteMins int64 `json:"mute_mins,omitempty"` + MuteMins int64 `json:"mute_mins,omitempty" toon:"mute_mins,omitempty"` } // CreateChannelRequestGroup is generated from the Flashduty OpenAPI schema. type CreateChannelRequestGroup struct { // When true, all listed keys must be present for grouping. - AllEqualsRequired bool `json:"all_equals_required,omitempty"` + AllEqualsRequired bool `json:"all_equals_required,omitempty" toon:"all_equals_required,omitempty"` // Per-filter grouping overrides. - Cases []map[string]any `json:"cases,omitempty"` + Cases []map[string]any `json:"cases,omitempty" toon:"cases,omitempty"` // Groups of label keys whose equality defines a bucket. - Equals [][]string `json:"equals,omitempty"` + Equals [][]string `json:"equals,omitempty" toon:"equals,omitempty"` // Label keys used for intelligent grouping embeddings. - IKeys []string `json:"i_keys,omitempty"` + IKeys []string `json:"i_keys,omitempty" toon:"i_keys,omitempty"` // Intelligent grouping similarity threshold. - IScoreThreshold float64 `json:"i_score_threshold,omitempty"` + IScoreThreshold float64 `json:"i_score_threshold,omitempty" toon:"i_score_threshold,omitempty"` // Grouping method: `i` intelligent, `p` pattern, `n` none. - Method string `json:"method,omitempty"` + Method string `json:"method,omitempty" toon:"method,omitempty"` // Alert storm threshold. - StormThreshold int64 `json:"storm_threshold,omitempty"` + StormThreshold int64 `json:"storm_threshold,omitempty" toon:"storm_threshold,omitempty"` // Multi-level storm thresholds. - StormThresholds []int64 `json:"storm_thresholds,omitempty"` + StormThresholds []int64 `json:"storm_thresholds,omitempty" toon:"storm_thresholds,omitempty"` // Grouping time window in seconds. - TimeWindow int64 `json:"time_window,omitempty"` + TimeWindow int64 `json:"time_window,omitempty" toon:"time_window,omitempty"` // Window type. Defaults to `tumbling`. - WindowType string `json:"window_type,omitempty"` + WindowType string `json:"window_type,omitempty" toon:"window_type,omitempty"` } // CreateDropRuleRequestFiltersItemItem is generated from the Flashduty OpenAPI schema. type CreateDropRuleRequestFiltersItemItem struct { // Field key (e.g. `alert_severity`, `labels.service`). - Key string `json:"key,omitempty"` + Key string `json:"key,omitempty" toon:"key,omitempty"` // Filter operator. - Oper string `json:"oper,omitempty"` + Oper string `json:"oper,omitempty" toon:"oper,omitempty"` // Values to match. - Vals []string `json:"vals,omitempty"` + Vals []string `json:"vals,omitempty" toon:"vals,omitempty"` } // CreateEscalationRuleRequestFiltersItemItem is generated from the Flashduty OpenAPI schema. type CreateEscalationRuleRequestFiltersItemItem struct { // Field key (e.g. `alert_severity`, `labels.service`). - Key string `json:"key,omitempty"` + Key string `json:"key,omitempty" toon:"key,omitempty"` // Filter operator. - Oper string `json:"oper,omitempty"` + Oper string `json:"oper,omitempty" toon:"oper,omitempty"` // Values to match. - Vals []string `json:"vals,omitempty"` + Vals []string `json:"vals,omitempty" toon:"vals,omitempty"` } // CreateEscalationRuleRequestLayersItem is generated from the Flashduty OpenAPI schema. type CreateEscalationRuleRequestLayersItem struct { // Wait before moving to the next level, in minutes. - EscalateWindow int64 `json:"escalate_window,omitempty"` + EscalateWindow int64 `json:"escalate_window,omitempty" toon:"escalate_window,omitempty"` // When true, always escalate regardless of acknowledgement. - ForceEscalate bool `json:"force_escalate,omitempty"` + ForceEscalate bool `json:"force_escalate,omitempty" toon:"force_escalate,omitempty"` // Max repeat notifications within the level. - MaxTimes int64 `json:"max_times,omitempty"` + MaxTimes int64 `json:"max_times,omitempty" toon:"max_times,omitempty"` // Repeat interval in minutes. - NotifyStep float64 `json:"notify_step,omitempty"` + NotifyStep float64 `json:"notify_step,omitempty" toon:"notify_step,omitempty"` // Notification target. At least one of `person_ids`, `team_ids`, `schedule_to_role_ids`, or `emails` must be set, together with either `by` or `webhooks`. - Target CreateEscalationRuleRequestLayersItemTarget `json:"target,omitempty"` + Target CreateEscalationRuleRequestLayersItemTarget `json:"target,omitempty" toon:"target,omitempty"` } // CreateEscalationRuleRequestTimeFiltersItem is generated from the Flashduty OpenAPI schema. type CreateEscalationRuleRequestTimeFiltersItem struct { // Optional calendar ID; restricts the window to days matching the calendar. - CalID string `json:"cal_id,omitempty"` + CalID string `json:"cal_id,omitempty" toon:"cal_id,omitempty"` // End of the window in `HH:MM`. - End string `json:"end,omitempty"` + End string `json:"end,omitempty" toon:"end,omitempty"` // When true, match days marked as days-off in the calendar. - IsOff bool `json:"is_off,omitempty"` + IsOff bool `json:"is_off,omitempty" toon:"is_off,omitempty"` // Days of the week this window repeats on. Empty means every day. - Repeat []int64 `json:"repeat,omitempty"` + Repeat []int64 `json:"repeat,omitempty" toon:"repeat,omitempty"` // Start of the window in `HH:MM`. - Start string `json:"start,omitempty"` + Start string `json:"start,omitempty" toon:"start,omitempty"` } // CreateIncidentRequestAssignedTo is generated from the Flashduty OpenAPI schema. type CreateIncidentRequestAssignedTo struct { // Email recipients, used for ServiceNow-style integrations. - Emails []string `json:"emails,omitempty"` + Emails []string `json:"emails,omitempty" toon:"emails,omitempty"` // Escalation rule ID (MongoDB ObjectID) to drive assignment. - EscalateRuleID string `json:"escalate_rule_id,omitempty"` + EscalateRuleID string `json:"escalate_rule_id,omitempty" toon:"escalate_rule_id,omitempty"` // Starting layer index when using an escalation rule. - LayerIdx int64 `json:"layer_idx,omitempty"` + LayerIdx int64 `json:"layer_idx,omitempty" toon:"layer_idx,omitempty"` // Override the notification channels used for this assignment. - Notify CreateIncidentRequestAssignedToNotify `json:"notify,omitempty"` + Notify CreateIncidentRequestAssignedToNotify `json:"notify,omitempty" toon:"notify,omitempty"` // Member IDs to assign directly. - PersonIDs []int64 `json:"person_ids,omitempty"` + PersonIDs []int64 `json:"person_ids,omitempty" toon:"person_ids,omitempty"` // Assignment type. - Type string `json:"type,omitempty"` + Type string `json:"type,omitempty" toon:"type,omitempty"` } // CreateInhibitRuleRequestSourceFiltersItemItem is generated from the Flashduty OpenAPI schema. type CreateInhibitRuleRequestSourceFiltersItemItem struct { // Field key (e.g. `alert_severity`, `labels.service`). - Key string `json:"key,omitempty"` + Key string `json:"key,omitempty" toon:"key,omitempty"` // Filter operator. - Oper string `json:"oper,omitempty"` + Oper string `json:"oper,omitempty" toon:"oper,omitempty"` // Values to match. - Vals []string `json:"vals,omitempty"` + Vals []string `json:"vals,omitempty" toon:"vals,omitempty"` } // CreateInhibitRuleRequestTargetFiltersItemItem is generated from the Flashduty OpenAPI schema. type CreateInhibitRuleRequestTargetFiltersItemItem struct { // Field key (e.g. `alert_severity`, `labels.service`). - Key string `json:"key,omitempty"` + Key string `json:"key,omitempty" toon:"key,omitempty"` // Filter operator. - Oper string `json:"oper,omitempty"` + Oper string `json:"oper,omitempty" toon:"oper,omitempty"` // Values to match. - Vals []string `json:"vals,omitempty"` + Vals []string `json:"vals,omitempty" toon:"vals,omitempty"` } // CreateSilenceRuleRequestFiltersItemItem is generated from the Flashduty OpenAPI schema. type CreateSilenceRuleRequestFiltersItemItem struct { // Field key (e.g. `alert_severity`, `labels.service`). - Key string `json:"key,omitempty"` + Key string `json:"key,omitempty" toon:"key,omitempty"` // Filter operator. - Oper string `json:"oper,omitempty"` + Oper string `json:"oper,omitempty" toon:"oper,omitempty"` // Values to match. - Vals []string `json:"vals,omitempty"` + Vals []string `json:"vals,omitempty" toon:"vals,omitempty"` } // CreateSilenceRuleRequestTimeFilter is generated from the Flashduty OpenAPI schema. type CreateSilenceRuleRequestTimeFilter struct { // Window end (unix seconds). - EndTime int64 `json:"end_time,omitempty"` + EndTime int64 `json:"end_time,omitempty" toon:"end_time,omitempty"` // Window start (unix seconds). Must be less than `end_time`. - StartTime int64 `json:"start_time,omitempty"` + StartTime int64 `json:"start_time,omitempty" toon:"start_time,omitempty"` } // CreateSilenceRuleRequestTimeFiltersItem is generated from the Flashduty OpenAPI schema. type CreateSilenceRuleRequestTimeFiltersItem struct { // Optional calendar ID; restricts the window to days matching the calendar. - CalID string `json:"cal_id,omitempty"` + CalID string `json:"cal_id,omitempty" toon:"cal_id,omitempty"` // End of the window in `HH:MM`. - End string `json:"end,omitempty"` + End string `json:"end,omitempty" toon:"end,omitempty"` // When true, match days marked as days-off in the calendar. - IsOff bool `json:"is_off,omitempty"` + IsOff bool `json:"is_off,omitempty" toon:"is_off,omitempty"` // Days of the week this window repeats on. Empty means every day. - Repeat []int64 `json:"repeat,omitempty"` + Repeat []int64 `json:"repeat,omitempty" toon:"repeat,omitempty"` // Start of the window in `HH:MM`. - Start string `json:"start,omitempty"` + Start string `json:"start,omitempty" toon:"start,omitempty"` } // CreateStatusPageChangeRequestUpdatesItem is generated from the Flashduty OpenAPI schema. type CreateStatusPageChangeRequestUpdatesItem struct { // Update timestamp in unix seconds. - AtSeconds int64 `json:"at_seconds,omitempty"` + AtSeconds int64 `json:"at_seconds,omitempty" toon:"at_seconds,omitempty"` // Component status transitions applied by this update. - ComponentChanges []CreateStatusPageChangeRequestUpdatesItemComponentChangesItem `json:"component_changes,omitempty"` + ComponentChanges []CreateStatusPageChangeRequestUpdatesItemComponentChangesItem `json:"component_changes,omitempty" toon:"component_changes,omitempty"` // Update description (Markdown). - Description string `json:"description,omitempty"` + Description string `json:"description,omitempty" toon:"description,omitempty"` // Change status after this update. Omit if the overall status does not change. - Status string `json:"status,omitempty"` + Status string `json:"status,omitempty" toon:"status,omitempty"` // Update ID. Server-assigned on create; supply when replaying historical updates. - UpdateID string `json:"update_id,omitempty"` + UpdateID string `json:"update_id,omitempty" toon:"update_id,omitempty"` } // CreateStatusPageChangeTimelineRequestComponentChangesItem is generated from the Flashduty OpenAPI schema. type CreateStatusPageChangeTimelineRequestComponentChangesItem struct { // Component ID. - ComponentID string `json:"component_id,omitempty"` + ComponentID string `json:"component_id,omitempty" toon:"component_id,omitempty"` // New component status. `operational`/`degraded`/`partial_outage`/`full_outage` apply to incidents; `operational`/`under_maintenance` apply to maintenances. - Status string `json:"status,omitempty"` + Status string `json:"status,omitempty" toon:"status,omitempty"` } // DiagnoseRequestInput is generated from the Flashduty OpenAPI schema. type DiagnoseRequestInput struct { // Query expression. LogQL / VictoriaLogs query syntax for `log_patterns`; PromQL for `metric_trends`. - Query string `json:"query,omitempty"` + Query string `json:"query,omitempty" toon:"query,omitempty"` } // DiagnoseRequestMethodsItem is generated from the Flashduty OpenAPI schema. type DiagnoseRequestMethodsItem struct { // Only meaningful for compare-style methods. Defaults to `previous_window`. - Baseline string `json:"baseline,omitempty"` + Baseline string `json:"baseline,omitempty" toon:"baseline,omitempty"` // `log_patterns` supports `pattern_snapshot`, `pattern_compare`. `metric_trends` supports `single_window_shape`, `window_compare`. - Name string `json:"name,omitempty"` + Name string `json:"name,omitempty" toon:"name,omitempty"` } // DiagnoseRequestOptions is generated from the Flashduty OpenAPI schema. type DiagnoseRequestOptions struct { // Max redacted examples per pattern. Default 2, hard max 3. - ExamplesPerPattern int64 `json:"examples_per_pattern,omitempty"` + ExamplesPerPattern int64 `json:"examples_per_pattern,omitempty" toon:"examples_per_pattern,omitempty"` // Per-window log scan cap. Default 10 000, hard max 50 000. - MaxLogsScanned int64 `json:"max_logs_scanned,omitempty"` + MaxLogsScanned int64 `json:"max_logs_scanned,omitempty" toon:"max_logs_scanned,omitempty"` // Max patterns returned. Default 20, hard max 50. - MaxPatterns int64 `json:"max_patterns,omitempty"` + MaxPatterns int64 `json:"max_patterns,omitempty" toon:"max_patterns,omitempty"` // `metric_trends` max series considered. Default 50, hard max 200. - MaxSeries int64 `json:"max_series,omitempty"` + MaxSeries int64 `json:"max_series,omitempty" toon:"max_series,omitempty"` // `metric_trends` query_range step. Default 60, range [15, 300]. - StepSeconds int64 `json:"step_seconds,omitempty"` + StepSeconds int64 `json:"step_seconds,omitempty" toon:"step_seconds,omitempty"` // Edge-side diagnostic timeout in seconds. Default 25, hard max 30. - TimeoutSeconds int64 `json:"timeout_seconds,omitempty"` + TimeoutSeconds int64 `json:"timeout_seconds,omitempty" toon:"timeout_seconds,omitempty"` // `metric_trends` max notable series returned. Default 10, hard max 50. - Topk int64 `json:"topk,omitempty"` + Topk int64 `json:"topk,omitempty" toon:"topk,omitempty"` } // DiagnoseRequestTimeRange is generated from the Flashduty OpenAPI schema. type DiagnoseRequestTimeRange struct { // Window end, Unix seconds. - End int64 `json:"end,omitempty"` + End int64 `json:"end,omitempty" toon:"end,omitempty"` // Window start, Unix seconds. - Start int64 `json:"start,omitempty"` + Start int64 `json:"start,omitempty" toon:"start,omitempty"` } // DiagnoseResponseResultsItem is generated from the Flashduty OpenAPI schema. type DiagnoseResponseResultsItem struct { // Only present for compare-style methods. - Baseline string `json:"baseline,omitempty"` + Baseline string `json:"baseline,omitempty" toon:"baseline,omitempty"` // Only present for compare-style methods. - BaselineWindow DiagnoseResponseResultsItemBaselineWindow `json:"baseline_window,omitempty"` + BaselineWindow DiagnoseResponseResultsItemBaselineWindow `json:"baseline_window,omitempty" toon:"baseline_window,omitempty"` // `pattern_snapshot` / `pattern_compare` for `log_patterns`; `single_window_shape` / `window_compare` for `metric_trends`. - Method string `json:"method,omitempty"` + Method string `json:"method,omitempty" toon:"method,omitempty"` // `log_patterns` only. Sorted RCA-first; each item carries pattern_hash, template, count, severity, sources, examples, and (for compare) baseline_count / change_ratio / is_new / is_gone. - Patterns []map[string]any `json:"patterns,omitempty"` + Patterns []map[string]any `json:"patterns,omitempty" toon:"patterns,omitempty"` // `metric_trends` only. Notable series with current / baseline / change / notable_period. - Series []map[string]any `json:"series,omitempty"` + Series []map[string]any `json:"series,omitempty" toon:"series,omitempty"` // Aggregate summary for this method. Shape differs between `log_patterns` (logs_scanned, patterns_total, surging_threshold, …) and `metric_trends` (series_total, data_quality, observations, …). - Summary map[string]any `json:"summary,omitempty"` + Summary map[string]any `json:"summary,omitempty" toon:"summary,omitempty"` // Per-method advisory messages (e.g. `examples redacted`, sampling notices). - Warnings []string `json:"warnings,omitempty"` - Window DiagnoseResponseResultsItemWindow `json:"window,omitempty"` + Warnings []string `json:"warnings,omitempty" toon:"warnings,omitempty"` + Window DiagnoseResponseResultsItemWindow `json:"window,omitempty" toon:"window,omitempty"` } // DiagnoseResponseWindow is generated from the Flashduty OpenAPI schema. type DiagnoseResponseWindow struct { - End int64 `json:"end,omitempty"` - Start int64 `json:"start,omitempty"` + End int64 `json:"end,omitempty" toon:"end,omitempty"` + Start int64 `json:"start,omitempty" toon:"start,omitempty"` } // EscalateTargetBy is generated from the Flashduty OpenAPI schema. type EscalateTargetBy struct { // Channels for Critical events (e.g. `voice`, `sms`, `email`, `feishu`). - Critical []string `json:"critical,omitempty"` + Critical []string `json:"critical,omitempty" toon:"critical,omitempty"` // When true, use each responder's personal preference instead of the lists below. - FollowPreference bool `json:"follow_preference,omitempty"` + FollowPreference bool `json:"follow_preference,omitempty" toon:"follow_preference,omitempty"` // Channels for Info events. - Info []string `json:"info,omitempty"` + Info []string `json:"info,omitempty" toon:"info,omitempty"` // Channels for Warning events. - Warning []string `json:"warning,omitempty"` + Warning []string `json:"warning,omitempty" toon:"warning,omitempty"` } // EscalateTargetWebhooksItem is generated from the Flashduty OpenAPI schema. type EscalateTargetWebhooksItem struct { // Type-specific settings (chat IDs, URLs, etc.). - Settings map[string]any `json:"settings,omitempty"` + Settings map[string]any `json:"settings,omitempty" toon:"settings,omitempty"` // Webhook type (e.g. `feishu`, `dingtalk_app`, `wecom_app`, `slack`, `teams`, `custom`). - Type string `json:"type,omitempty"` + Type string `json:"type,omitempty" toon:"type,omitempty"` } // IncidentRawItemAssignedTo is generated from the Flashduty OpenAPI schema. type IncidentRawItemAssignedTo struct { // Unix timestamp (seconds) when this assignment was made. - AssignedAt Timestamp `json:"assigned_at,omitempty"` + AssignedAt Timestamp `json:"assigned_at,omitempty" toon:"assigned_at,omitempty"` // Escalation rule ID (MongoDB ObjectID) driving the assignment. - EscalateRuleID string `json:"escalate_rule_id,omitempty"` + EscalateRuleID string `json:"escalate_rule_id,omitempty" toon:"escalate_rule_id,omitempty"` // Display name of the escalation rule. - EscalateRuleName string `json:"escalate_rule_name,omitempty"` + EscalateRuleName string `json:"escalate_rule_name,omitempty" toon:"escalate_rule_name,omitempty"` // Internal assignment record ID. - ID string `json:"id,omitempty"` + ID string `json:"id,omitempty" toon:"id,omitempty"` // Current level index within the escalation rule. - LayerIdx int64 `json:"layer_idx,omitempty"` + LayerIdx int64 `json:"layer_idx,omitempty" toon:"layer_idx,omitempty"` // Member IDs assigned directly to this incident. - PersonIDs []int64 `json:"person_ids,omitempty"` + PersonIDs []int64 `json:"person_ids,omitempty" toon:"person_ids,omitempty"` // Assignment type. - Type string `json:"type,omitempty"` + Type string `json:"type,omitempty" toon:"type,omitempty"` } // PostMortemItemBasics is generated from the Flashduty OpenAPI schema. type PostMortemItemBasics struct { // Earliest start time among linked incidents (seconds). - IncidentsEarliestStartSeconds int64 `json:"incidents_earliest_start_seconds,omitempty"` + IncidentsEarliestStartSeconds int64 `json:"incidents_earliest_start_seconds,omitempty" toon:"incidents_earliest_start_seconds,omitempty"` // Highest severity among linked incidents. - IncidentsHighestSeverity string `json:"incidents_highest_severity,omitempty"` + IncidentsHighestSeverity string `json:"incidents_highest_severity,omitempty" toon:"incidents_highest_severity,omitempty"` // Latest close time among linked incidents (seconds). - IncidentsLatestCloseSeconds int64 `json:"incidents_latest_close_seconds,omitempty"` + IncidentsLatestCloseSeconds int64 `json:"incidents_latest_close_seconds,omitempty" toon:"incidents_latest_close_seconds,omitempty"` // Cumulative duration in seconds. - IncidentsTotalDurationSeconds int64 `json:"incidents_total_duration_seconds,omitempty"` + IncidentsTotalDurationSeconds int64 `json:"incidents_total_duration_seconds,omitempty" toon:"incidents_total_duration_seconds,omitempty"` // Responders involved in the incident(s). - Responders []Responder `json:"responders,omitempty"` + Responders []Responder `json:"responders,omitempty" toon:"responders,omitempty"` } // PostMortemItemContent is generated from the Flashduty OpenAPI schema. type PostMortemItemContent struct { // Report body content (BlockNote JSON). - Content string `json:"content,omitempty"` + Content string `json:"content,omitempty" toon:"content,omitempty"` } // RuleConfigsCheckAnydata is generated from the Flashduty OpenAPI schema. type RuleConfigsCheckAnydata struct { - AlertingCheckTimes int64 `json:"alerting_check_times,omitempty"` - Enabled bool `json:"enabled,omitempty"` - PushRecoveryEvent bool `json:"push_recovery_event,omitempty"` + AlertingCheckTimes int64 `json:"alerting_check_times,omitempty" toon:"alerting_check_times,omitempty"` + Enabled bool `json:"enabled,omitempty" toon:"enabled,omitempty"` + PushRecoveryEvent bool `json:"push_recovery_event,omitempty" toon:"push_recovery_event,omitempty"` // Recovery condition for any-data check. If omitted or `mode` is empty, treated as `nodata`. - Recovery RuleConfigsCheckAnydataRecovery `json:"recovery,omitempty"` - RecoveryCheckTimes int64 `json:"recovery_check_times,omitempty"` - Severity string `json:"severity,omitempty"` + Recovery RuleConfigsCheckAnydataRecovery `json:"recovery,omitempty" toon:"recovery,omitempty"` + RecoveryCheckTimes int64 `json:"recovery_check_times,omitempty" toon:"recovery_check_times,omitempty"` + Severity string `json:"severity,omitempty" toon:"severity,omitempty"` } // RuleConfigsCheckNodata is generated from the Flashduty OpenAPI schema. type RuleConfigsCheckNodata struct { - AlertingCheckTimes int64 `json:"alerting_check_times,omitempty"` - Enabled bool `json:"enabled,omitempty"` - PushRecoveryEvent bool `json:"push_recovery_event,omitempty"` - RecoveryCheckTimes int64 `json:"recovery_check_times,omitempty"` + AlertingCheckTimes int64 `json:"alerting_check_times,omitempty" toon:"alerting_check_times,omitempty"` + Enabled bool `json:"enabled,omitempty" toon:"enabled,omitempty"` + PushRecoveryEvent bool `json:"push_recovery_event,omitempty" toon:"push_recovery_event,omitempty"` + RecoveryCheckTimes int64 `json:"recovery_check_times,omitempty" toon:"recovery_check_times,omitempty"` // Auto-resolve after N seconds. - ResolveTimeout int64 `json:"resolve_timeout,omitempty"` - Severity string `json:"severity,omitempty"` + ResolveTimeout int64 `json:"resolve_timeout,omitempty" toon:"resolve_timeout,omitempty"` + Severity string `json:"severity,omitempty" toon:"severity,omitempty"` } // RuleConfigsCheckThreshold is generated from the Flashduty OpenAPI schema. type RuleConfigsCheckThreshold struct { - AlertingCheckTimes int64 `json:"alerting_check_times,omitempty"` - Critical string `json:"critical,omitempty"` - Enabled bool `json:"enabled,omitempty"` - Info string `json:"info,omitempty"` - PushRecoveryEvent bool `json:"push_recovery_event,omitempty"` - Recovery RuleConfigsCheckThresholdRecovery `json:"recovery,omitempty"` - RecoveryCheckTimes int64 `json:"recovery_check_times,omitempty"` - Warning string `json:"warning,omitempty"` + AlertingCheckTimes int64 `json:"alerting_check_times,omitempty" toon:"alerting_check_times,omitempty"` + Critical string `json:"critical,omitempty" toon:"critical,omitempty"` + Enabled bool `json:"enabled,omitempty" toon:"enabled,omitempty"` + Info string `json:"info,omitempty" toon:"info,omitempty"` + PushRecoveryEvent bool `json:"push_recovery_event,omitempty" toon:"push_recovery_event,omitempty"` + Recovery RuleConfigsCheckThresholdRecovery `json:"recovery,omitempty" toon:"recovery,omitempty"` + RecoveryCheckTimes int64 `json:"recovery_check_times,omitempty" toon:"recovery_check_times,omitempty"` + Warning string `json:"warning,omitempty" toon:"warning,omitempty"` } // RuleConfigsQueriesItem is generated from the Flashduty OpenAPI schema. type RuleConfigsQueriesItem struct { - Args map[string]string `json:"args,omitempty"` + Args map[string]string `json:"args,omitempty" toon:"args,omitempty"` // Query expression. - Expr string `json:"expr,omitempty"` - LabelFields []string `json:"label_fields,omitempty"` + Expr string `json:"expr,omitempty" toon:"expr,omitempty"` + LabelFields []string `json:"label_fields,omitempty" toon:"label_fields,omitempty"` // Query identifier (letter, e.g. `A`). The name `R` is reserved and must not be used. - Name string `json:"name,omitempty"` - ValueFields []string `json:"value_fields,omitempty"` + Name string `json:"name,omitempty" toon:"name,omitempty"` + ValueFields []string `json:"value_fields,omitempty" toon:"value_fields,omitempty"` } // RuleConfigsRelateQueriesItem is generated from the Flashduty OpenAPI schema. type RuleConfigsRelateQueriesItem struct { - Args map[string]string `json:"args,omitempty"` + Args map[string]string `json:"args,omitempty" toon:"args,omitempty"` // Query expression. - Expr string `json:"expr,omitempty"` + Expr string `json:"expr,omitempty" toon:"expr,omitempty"` // Relate-query identifier. - Name string `json:"name,omitempty"` + Name string `json:"name,omitempty" toon:"name,omitempty"` } // RUMIssueItemError is generated from the Flashduty OpenAPI schema. type RUMIssueItemError struct { - Message string `json:"message,omitempty"` - Type string `json:"type,omitempty"` + Message string `json:"message,omitempty" toon:"message,omitempty"` + Type string `json:"type,omitempty" toon:"type,omitempty"` } // RUMIssueItemFirstSeen is generated from the Flashduty OpenAPI schema. type RUMIssueItemFirstSeen struct { - Timestamp int64 `json:"timestamp,omitempty"` - Version string `json:"version,omitempty"` + Timestamp int64 `json:"timestamp,omitempty" toon:"timestamp,omitempty"` + Version string `json:"version,omitempty" toon:"version,omitempty"` } // RUMIssueItemLastSeen is generated from the Flashduty OpenAPI schema. type RUMIssueItemLastSeen struct { - Timestamp int64 `json:"timestamp,omitempty"` - Version string `json:"version,omitempty"` + Timestamp int64 `json:"timestamp,omitempty" toon:"timestamp,omitempty"` + Version string `json:"version,omitempty" toon:"version,omitempty"` } // RUMIssueItemRegression is generated from the Flashduty OpenAPI schema. type RUMIssueItemRegression struct { // Timestamp when the regression was detected. - RegressedAt Timestamp `json:"regressed_at,omitempty"` + RegressedAt Timestamp `json:"regressed_at,omitempty" toon:"regressed_at,omitempty"` // Application version in which the regression was observed. - RegressedAtVersion string `json:"regressed_at_version,omitempty"` + RegressedAtVersion string `json:"regressed_at_version,omitempty" toon:"regressed_at_version,omitempty"` // Timestamp of the previous resolution before the regression. - ResolvedAt Timestamp `json:"resolved_at,omitempty"` + ResolvedAt Timestamp `json:"resolved_at,omitempty" toon:"resolved_at,omitempty"` } // RUMIssueItemSuspectedCause is generated from the Flashduty OpenAPI schema. type RUMIssueItemSuspectedCause struct { - PersonID int64 `json:"person_id,omitempty"` - Reason string `json:"reason,omitempty"` - Source string `json:"source,omitempty"` - Value string `json:"value,omitempty"` + PersonID int64 `json:"person_id,omitempty" toon:"person_id,omitempty"` + Reason string `json:"reason,omitempty" toon:"reason,omitempty"` + Source string `json:"source,omitempty" toon:"source,omitempty"` + Value string `json:"value,omitempty" toon:"value,omitempty"` } // TargetsListResponseItemsItem is generated from the Flashduty OpenAPI schema. type TargetsListResponseItemsItem struct { // Most recently observed Agent version. - AgentVersion string `json:"agent_version,omitempty"` + AgentVersion string `json:"agent_version,omitempty" toon:"agent_version,omitempty"` // Edge cluster name. - ClusterName string `json:"cluster_name,omitempty"` + ClusterName string `json:"cluster_name,omitempty" toon:"cluster_name,omitempty"` // Edge instance address (`ip:port`), surfaced for diagnostics. - EdgeIpport string `json:"edge_ipport,omitempty"` + EdgeIpport string `json:"edge_ipport,omitempty" toon:"edge_ipport,omitempty"` // Target kind, e.g. `host`, `mysql`. Filtering by kind is not supported in v1. - TargetKind string `json:"target_kind,omitempty"` + TargetKind string `json:"target_kind,omitempty" toon:"target_kind,omitempty"` // Target identifier; the list is sorted by this field ascending. - TargetLocator string `json:"target_locator,omitempty"` + TargetLocator string `json:"target_locator,omitempty" toon:"target_locator,omitempty"` // Last route-projection upsert time, Unix seconds. Treat as 'most recently observed', not a live-online indicator. - UpdatedAt Timestamp `json:"updated_at,omitempty"` + UpdatedAt Timestamp `json:"updated_at,omitempty" toon:"updated_at,omitempty"` } // ToolCatalogResponseError is generated from the Flashduty OpenAPI schema. type ToolCatalogResponseError struct { - Code string `json:"code,omitempty"` - Message string `json:"message,omitempty"` + Code string `json:"code,omitempty" toon:"code,omitempty"` + Message string `json:"message,omitempty" toon:"message,omitempty"` // Returned for `ambiguous_target_kind`; lists the candidate kinds. - TargetKinds []string `json:"target_kinds,omitempty"` + TargetKinds []string `json:"target_kinds,omitempty" toon:"target_kinds,omitempty"` } // ToolCatalogResponseTarget is generated from the Flashduty OpenAPI schema. type ToolCatalogResponseTarget struct { - Kind string `json:"kind,omitempty"` - Locator string `json:"locator,omitempty"` + Kind string `json:"kind,omitempty" toon:"kind,omitempty"` + Locator string `json:"locator,omitempty" toon:"locator,omitempty"` } // ToolCatalogResponseToolsItem is generated from the Flashduty OpenAPI schema. type ToolCatalogResponseToolsItem struct { // Tool capability description for UI / AI-SRE consumption. - Description string `json:"description,omitempty"` + Description string `json:"description,omitempty" toon:"description,omitempty"` // JSON Schema for `tools[].params`. - InputSchema map[string]any `json:"input_schema,omitempty"` + InputSchema map[string]any `json:"input_schema,omitempty" toon:"input_schema,omitempty"` // Tool name; pass into `/monit/tools/invoke` as `tools[].tool`. - Name string `json:"name,omitempty"` + Name string `json:"name,omitempty" toon:"name,omitempty"` // Optional output JSON Schema; only returned when `include_output_shape=true`. - OutputShape map[string]any `json:"output_shape,omitempty"` + OutputShape map[string]any `json:"output_shape,omitempty" toon:"output_shape,omitempty"` // Target kind this tool applies to. - TargetKind string `json:"target_kind,omitempty"` + TargetKind string `json:"target_kind,omitempty" toon:"target_kind,omitempty"` } // ToolInvokeRequestToolsItem is generated from the Flashduty OpenAPI schema. type ToolInvokeRequestToolsItem struct { // Tool parameters matching the catalog `input_schema`. For no-arg tools pass `{}` explicitly. - Params map[string]any `json:"params,omitempty"` + Params map[string]any `json:"params,omitempty" toon:"params,omitempty"` // Tool name, typically from `/monit/tools/catalog`. - Tool string `json:"tool,omitempty"` + Tool string `json:"tool,omitempty" toon:"tool,omitempty"` } // ToolInvokeResponseError is generated from the Flashduty OpenAPI schema. type ToolInvokeResponseError struct { - Code string `json:"code,omitempty"` - Message string `json:"message,omitempty"` - TargetKinds []string `json:"target_kinds,omitempty"` + Code string `json:"code,omitempty" toon:"code,omitempty"` + Message string `json:"message,omitempty" toon:"message,omitempty"` + TargetKinds []string `json:"target_kinds,omitempty" toon:"target_kinds,omitempty"` } // ToolInvokeResponseResultsItem is generated from the Flashduty OpenAPI schema. type ToolInvokeResponseResultsItem struct { // Agent-self-reported tool execution time in milliseconds, excludes network. May be 0 when the failure occurred before the agent started executing. - AgentElapsedMs int64 `json:"agent_elapsed_ms,omitempty"` + AgentElapsedMs int64 `json:"agent_elapsed_ms,omitempty" toon:"agent_elapsed_ms,omitempty"` // Successful tool payload — passthrough of monit-agent `ToolResultPayload.data` (typically `data` / `summary` / `truncated`). `null` when the per-tool `error` is set. - Data map[string]any `json:"data,omitempty"` + Data map[string]any `json:"data,omitempty" toon:"data,omitempty"` // 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. - E2eElapsedMs int64 `json:"e2e_elapsed_ms,omitempty"` + E2eElapsedMs int64 `json:"e2e_elapsed_ms,omitempty" toon:"e2e_elapsed_ms,omitempty"` // Per-tool error. Mutually exclusive with `data`. - Error ToolInvokeResponseResultsItemError `json:"error,omitempty"` - Tool string `json:"tool,omitempty"` + Error ToolInvokeResponseResultsItemError `json:"error,omitempty" toon:"error,omitempty"` + Tool string `json:"tool,omitempty" toon:"tool,omitempty"` // Agent-executed tool version. Empty when execution failed before the agent picked a version. - ToolVersion string `json:"tool_version,omitempty"` + ToolVersion string `json:"tool_version,omitempty" toon:"tool_version,omitempty"` } // ToolInvokeResponseTarget is generated from the Flashduty OpenAPI schema. type ToolInvokeResponseTarget struct { - Kind string `json:"kind,omitempty"` - Locator string `json:"locator,omitempty"` + Kind string `json:"kind,omitempty" toon:"kind,omitempty"` + Locator string `json:"locator,omitempty" toon:"locator,omitempty"` } // CreateChannelRequestEscalateRuleTarget is generated from the Flashduty OpenAPI schema. type CreateChannelRequestEscalateRuleTarget struct { // Per-severity personal notification channels. Required unless `webhooks` is provided. - By CreateChannelRequestEscalateRuleTargetBy `json:"by,omitempty"` + By CreateChannelRequestEscalateRuleTargetBy `json:"by,omitempty" toon:"by,omitempty"` // Email addresses to notify (push-only scenarios). - Emails []string `json:"emails,omitempty"` + Emails []string `json:"emails,omitempty" toon:"emails,omitempty"` // Member IDs to notify directly. - PersonIDs []int64 `json:"person_ids,omitempty"` + PersonIDs []int64 `json:"person_ids,omitempty" toon:"person_ids,omitempty"` // Map of schedule ID to the role IDs on that schedule to notify. - ScheduleToRoleIDs map[string][]int64 `json:"schedule_to_role_ids,omitempty"` + ScheduleToRoleIDs map[string][]int64 `json:"schedule_to_role_ids,omitempty" toon:"schedule_to_role_ids,omitempty"` // Team IDs to notify. - TeamIDs []int64 `json:"team_ids,omitempty"` + TeamIDs []int64 `json:"team_ids,omitempty" toon:"team_ids,omitempty"` // Group chat / webhook targets. Required unless `by` is provided. - Webhooks []CreateChannelRequestEscalateRuleTargetWebhooksItem `json:"webhooks,omitempty"` + Webhooks []CreateChannelRequestEscalateRuleTargetWebhooksItem `json:"webhooks,omitempty" toon:"webhooks,omitempty"` } // CreateEscalationRuleRequestLayersItemTarget is generated from the Flashduty OpenAPI schema. type CreateEscalationRuleRequestLayersItemTarget struct { // Per-severity personal notification channels. Required unless `webhooks` is provided. - By CreateEscalationRuleRequestLayersItemTargetBy `json:"by,omitempty"` + By CreateEscalationRuleRequestLayersItemTargetBy `json:"by,omitempty" toon:"by,omitempty"` // Email addresses to notify (push-only scenarios). - Emails []string `json:"emails,omitempty"` + Emails []string `json:"emails,omitempty" toon:"emails,omitempty"` // Member IDs to notify directly. - PersonIDs []int64 `json:"person_ids,omitempty"` + PersonIDs []int64 `json:"person_ids,omitempty" toon:"person_ids,omitempty"` // Map of schedule ID to the role IDs on that schedule to notify. - ScheduleToRoleIDs map[string][]int64 `json:"schedule_to_role_ids,omitempty"` + ScheduleToRoleIDs map[string][]int64 `json:"schedule_to_role_ids,omitempty" toon:"schedule_to_role_ids,omitempty"` // Team IDs to notify. - TeamIDs []int64 `json:"team_ids,omitempty"` + TeamIDs []int64 `json:"team_ids,omitempty" toon:"team_ids,omitempty"` // Group chat / webhook targets. Required unless `by` is provided. - Webhooks []CreateEscalationRuleRequestLayersItemTargetWebhooksItem `json:"webhooks,omitempty"` + Webhooks []CreateEscalationRuleRequestLayersItemTargetWebhooksItem `json:"webhooks,omitempty" toon:"webhooks,omitempty"` } // CreateIncidentRequestAssignedToNotify is generated from the Flashduty OpenAPI schema. type CreateIncidentRequestAssignedToNotify struct { // When true, fall back to each responder's personal preference. - FollowPreference bool `json:"follow_preference,omitempty"` + FollowPreference bool `json:"follow_preference,omitempty" toon:"follow_preference,omitempty"` // Channels to use (e.g. `voice`, `sms`, `email`). - PersonalChannels []string `json:"personal_channels,omitempty"` + PersonalChannels []string `json:"personal_channels,omitempty" toon:"personal_channels,omitempty"` // Notification template ID (MongoDB ObjectID). - TemplateID string `json:"template_id,omitempty"` + TemplateID string `json:"template_id,omitempty" toon:"template_id,omitempty"` } // CreateStatusPageChangeRequestUpdatesItemComponentChangesItem is generated from the Flashduty OpenAPI schema. type CreateStatusPageChangeRequestUpdatesItemComponentChangesItem struct { // Component ID. - ComponentID string `json:"component_id,omitempty"` + ComponentID string `json:"component_id,omitempty" toon:"component_id,omitempty"` // New component status. `operational`/`degraded`/`partial_outage`/`full_outage` apply to incidents; `operational`/`under_maintenance` apply to maintenances. - Status string `json:"status,omitempty"` + Status string `json:"status,omitempty" toon:"status,omitempty"` } // DiagnoseResponseResultsItemBaselineWindow is generated from the Flashduty OpenAPI schema. type DiagnoseResponseResultsItemBaselineWindow struct { - End int64 `json:"end,omitempty"` - Start int64 `json:"start,omitempty"` + End int64 `json:"end,omitempty" toon:"end,omitempty"` + Start int64 `json:"start,omitempty" toon:"start,omitempty"` } // DiagnoseResponseResultsItemWindow is generated from the Flashduty OpenAPI schema. type DiagnoseResponseResultsItemWindow struct { - End int64 `json:"end,omitempty"` - Start int64 `json:"start,omitempty"` + End int64 `json:"end,omitempty" toon:"end,omitempty"` + Start int64 `json:"start,omitempty" toon:"start,omitempty"` } // RuleConfigsCheckAnydataRecovery is generated from the Flashduty OpenAPI schema. type RuleConfigsCheckAnydataRecovery struct { - Args map[string]string `json:"args,omitempty"` + Args map[string]string `json:"args,omitempty" toon:"args,omitempty"` // Recovery expression. Required when `mode` is `ql`. - Condition string `json:"condition,omitempty"` + Condition string `json:"condition,omitempty" toon:"condition,omitempty"` // `nodata` = recover when the query returns no data; `ql` = recover when the `condition` expression evaluates to true. When `mode` is `ql`, only a single query (`name=A`) is permitted. - Mode string `json:"mode,omitempty"` + Mode string `json:"mode,omitempty" toon:"mode,omitempty"` } // RuleConfigsCheckThresholdRecovery is generated from the Flashduty OpenAPI schema. type RuleConfigsCheckThresholdRecovery struct { - Condition string `json:"condition,omitempty"` - Mode string `json:"mode,omitempty"` + Condition string `json:"condition,omitempty" toon:"condition,omitempty"` + Mode string `json:"mode,omitempty" toon:"mode,omitempty"` } // ToolInvokeResponseResultsItemError is generated from the Flashduty OpenAPI schema. type ToolInvokeResponseResultsItemError struct { // 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`. - Code string `json:"code,omitempty"` - Message string `json:"message,omitempty"` + Code string `json:"code,omitempty" toon:"code,omitempty"` + Message string `json:"message,omitempty" toon:"message,omitempty"` } // CreateChannelRequestEscalateRuleTargetBy is generated from the Flashduty OpenAPI schema. type CreateChannelRequestEscalateRuleTargetBy struct { // Channels for Critical events (e.g. `voice`, `sms`, `email`, `feishu`). - Critical []string `json:"critical,omitempty"` + Critical []string `json:"critical,omitempty" toon:"critical,omitempty"` // When true, use each responder's personal preference instead of the lists below. - FollowPreference bool `json:"follow_preference,omitempty"` + FollowPreference bool `json:"follow_preference,omitempty" toon:"follow_preference,omitempty"` // Channels for Info events. - Info []string `json:"info,omitempty"` + Info []string `json:"info,omitempty" toon:"info,omitempty"` // Channels for Warning events. - Warning []string `json:"warning,omitempty"` + Warning []string `json:"warning,omitempty" toon:"warning,omitempty"` } // CreateChannelRequestEscalateRuleTargetWebhooksItem is generated from the Flashduty OpenAPI schema. type CreateChannelRequestEscalateRuleTargetWebhooksItem struct { // Type-specific settings (chat IDs, URLs, etc.). - Settings map[string]any `json:"settings,omitempty"` + Settings map[string]any `json:"settings,omitempty" toon:"settings,omitempty"` // Webhook type (e.g. `feishu`, `dingtalk_app`, `wecom_app`, `slack`, `teams`, `custom`). - Type string `json:"type,omitempty"` + Type string `json:"type,omitempty" toon:"type,omitempty"` } // CreateEscalationRuleRequestLayersItemTargetBy is generated from the Flashduty OpenAPI schema. type CreateEscalationRuleRequestLayersItemTargetBy struct { // Channels for Critical events (e.g. `voice`, `sms`, `email`, `feishu`). - Critical []string `json:"critical,omitempty"` + Critical []string `json:"critical,omitempty" toon:"critical,omitempty"` // When true, use each responder's personal preference instead of the lists below. - FollowPreference bool `json:"follow_preference,omitempty"` + FollowPreference bool `json:"follow_preference,omitempty" toon:"follow_preference,omitempty"` // Channels for Info events. - Info []string `json:"info,omitempty"` + Info []string `json:"info,omitempty" toon:"info,omitempty"` // Channels for Warning events. - Warning []string `json:"warning,omitempty"` + Warning []string `json:"warning,omitempty" toon:"warning,omitempty"` } // CreateEscalationRuleRequestLayersItemTargetWebhooksItem is generated from the Flashduty OpenAPI schema. type CreateEscalationRuleRequestLayersItemTargetWebhooksItem struct { // Type-specific settings (chat IDs, URLs, etc.). - Settings map[string]any `json:"settings,omitempty"` + Settings map[string]any `json:"settings,omitempty" toon:"settings,omitempty"` // Webhook type (e.g. `feishu`, `dingtalk_app`, `wecom_app`, `slack`, `teams`, `custom`). - Type string `json:"type,omitempty"` + Type string `json:"type,omitempty" toon:"type,omitempty"` } // IncidentsPostMortemInfoRequest holds the query parameters for Get post-mortem. diff --git a/openapi/openapi.en.json b/openapi/openapi.en.json index 8af2963..791f983 100644 --- a/openapi/openapi.en.json +++ b/openapi/openapi.en.json @@ -2349,7 +2349,7 @@ "get": { "operationId": "incidentPostMortemInfo", "summary": "Get post-mortem", - "description": "Retrieve the post-mortem report for a specific incident.", + "description": "Retrieve a post-mortem report by its `post_mortem_id`. List reports via `/incident/post-mortem/list` first — each row carries the incident it covers — then fetch the full report here by that id.", "tags": [ "On-call/Incidents" ], @@ -14510,7 +14510,7 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/RuleIDRequest" + "$ref": "#/components/schemas/AuditRecordIDRequest" }, "example": { "id": 9001 @@ -23121,7 +23121,7 @@ }, "progress": { "type": "string", - "description": "Incident progress (e.g. `Processing`, `Resolved`)." + "description": "Incident progress — one of `Triggered`, `Processing`, `Closed`." } } }, @@ -32427,7 +32427,38 @@ "export_fields": { "type": "array", "items": { - "type": "string" + "type": "string", + "enum": [ + "incident_id", + "title", + "severity", + "progress", + "channel_id", + "channel_name", + "team_id", + "team_name", + "created_at", + "seconds_to_ack", + "seconds_to_close", + "closed_by", + "engaged_seconds", + "hours", + "notifications", + "interruptions", + "acknowledgements", + "assignments", + "reassignments", + "escalations", + "manual_escalations", + "timeout_escalations", + "assigned_to", + "responders", + "description", + "labels", + "fields", + "creator_id", + "creator_name" + ] }, "description": "Subset of CSV column keys to include in the export. At most 50 entries. Only used by the export endpoints." }, @@ -32790,7 +32821,7 @@ }, "progress": { "type": "string", - "description": "Incident progress state (e.g. `Triggered`, `Acknowledged`, `Closed`)." + "description": "Incident progress state — one of `Triggered`, `Processing`, `Closed`." }, "severity": { "type": "string", @@ -34490,6 +34521,19 @@ } } }, + "AuditRecordIDRequest": { + "type": "object", + "required": [ + "id" + ], + "properties": { + "id": { + "type": "integer", + "format": "uint64", + "description": "Audit record ID — the `id` of an audit row returned by `POST /monit/rule/audits`, NOT the rule ID. Passing a rule ID returns HTTP 400." + } + } + }, "RuleIDsRequest": { "type": "object", "required": [ diff --git a/openapi/openapi.zh.json b/openapi/openapi.zh.json index 88c59e9..98c8b32 100644 --- a/openapi/openapi.zh.json +++ b/openapi/openapi.zh.json @@ -2349,7 +2349,7 @@ "get": { "operationId": "incidentPostMortemInfo", "summary": "获取复盘报告", - "description": "获取指定故障的复盘报告。", + "description": "通过 `post_mortem_id` 获取复盘报告。先用 `/incident/post-mortem/list` 列出报告(每行标明所属故障),再用其 id 在此获取完整报告。", "tags": [ "On-call/故障管理" ], @@ -14502,7 +14502,7 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/RuleIDRequest" + "$ref": "#/components/schemas/AuditRecordIDRequest" }, "example": { "id": 9001 @@ -23113,7 +23113,7 @@ }, "progress": { "type": "string", - "description": "故障处理进度(如 `Processing`、`Resolved`)。" + "description": "故障处理进度——`Triggered`、`Processing`、`Closed` 之一。" } } }, @@ -32418,7 +32418,38 @@ "export_fields": { "type": "array", "items": { - "type": "string" + "type": "string", + "enum": [ + "incident_id", + "title", + "severity", + "progress", + "channel_id", + "channel_name", + "team_id", + "team_name", + "created_at", + "seconds_to_ack", + "seconds_to_close", + "closed_by", + "engaged_seconds", + "hours", + "notifications", + "interruptions", + "acknowledgements", + "assignments", + "reassignments", + "escalations", + "manual_escalations", + "timeout_escalations", + "assigned_to", + "responders", + "description", + "labels", + "fields", + "creator_id", + "creator_name" + ] }, "description": "导出 CSV 时要包含的列键子集,至多 50 项。仅导出接口会读取。" }, @@ -32781,7 +32812,7 @@ }, "progress": { "type": "string", - "description": "故障进度状态(如 `Triggered`、`Acknowledged`、`Closed`)。" + "description": "故障处理进度——`Triggered`、`Processing`、`Closed` 之一。" }, "severity": { "type": "string", @@ -34481,6 +34512,19 @@ } } }, + "AuditRecordIDRequest": { + "type": "object", + "required": [ + "id" + ], + "properties": { + "id": { + "type": "integer", + "format": "uint64", + "description": "审计记录 ID——来自 `POST /monit/rule/audits` 返回行的 `id`,不是规则 ID。传规则 ID 会返回 HTTP 400。" + } + } + }, "RuleIDsRequest": { "type": "object", "required": [