// Package swagger Code generated by swaggo/swag. DO NOT EDIT
package swagger

import "github.com/swaggo/swag"

const docTemplate = `{
    "schemes": {{ marshal .Schemes }},
    "swagger": "2.0",
    "info": {
        "description": "{{escape .Description}}",
        "title": "{{.Title}}",
        "contact": {},
        "version": "{{.Version}}"
    },
    "host": "{{.Host}}",
    "basePath": "{{.BasePath}}",
    "paths": {
        "/api/webhooks/azure-eventgrid": {
            "post": {
                "description": "Handles the Event Grid validation handshake (` + "`" + `SubscriptionValidationEvent` + "`" + `) and forwards ` + "`" + `Microsoft.*` + "`" + ` events to the cloud-collector.",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "webhooks"
                ],
                "summary": "Azure Event Grid webhook",
                "parameters": [
                    {
                        "description": "Event Grid event array",
                        "name": "payload",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/api.WebhookPayload"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Validation response or relay-success message",
                        "schema": {
                            "$ref": "#/definitions/api.SuccessMessage"
                        }
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/api.ErrorMessage"
                        }
                    },
                    "502": {
                        "description": "Relay to cloud-collector failed",
                        "schema": {
                            "$ref": "#/definitions/api.ErrorMessage"
                        }
                    }
                }
            }
        },
        "/api/webhooks/azure-monitor": {
            "post": {
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "webhooks"
                ],
                "summary": "Azure Monitor webhook",
                "parameters": [
                    {
                        "description": "Azure Monitor common-alert-schema payload",
                        "name": "payload",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/api.WebhookPayload"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/api.SuccessMessage"
                        }
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/api.ActionError"
                        }
                    }
                }
            }
        },
        "/api/webhooks/datadog": {
            "post": {
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "webhooks"
                ],
                "summary": "Datadog webhook",
                "parameters": [
                    {
                        "description": "Datadog event payload",
                        "name": "payload",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/api.WebhookPayload"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/api.SuccessMessage"
                        }
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/api.ActionError"
                        }
                    }
                }
            }
        },
        "/api/webhooks/dynatrace": {
            "post": {
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "webhooks"
                ],
                "summary": "Dynatrace webhook",
                "parameters": [
                    {
                        "description": "Dynatrace problem notification payload",
                        "name": "payload",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/api.WebhookPayload"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/api.SuccessMessage"
                        }
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/api.ActionError"
                        }
                    }
                }
            }
        },
        "/api/webhooks/gcp-monitoring": {
            "post": {
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "webhooks"
                ],
                "summary": "GCP Monitoring webhook",
                "parameters": [
                    {
                        "description": "GCP Cloud Monitoring notification payload",
                        "name": "payload",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/api.WebhookPayload"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/api.SuccessMessage"
                        }
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/api.ActionError"
                        }
                    }
                }
            }
        },
        "/api/webhooks/grafana": {
            "post": {
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "webhooks"
                ],
                "summary": "Grafana webhook",
                "parameters": [
                    {
                        "description": "Grafana unified-alerting payload",
                        "name": "payload",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/api.WebhookPayload"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/api.SuccessMessage"
                        }
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/api.ActionError"
                        }
                    }
                }
            }
        },
        "/api/webhooks/newrelic": {
            "post": {
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "webhooks"
                ],
                "summary": "New Relic webhook",
                "parameters": [
                    {
                        "description": "New Relic event payload",
                        "name": "payload",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/api.WebhookPayload"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/api.SuccessMessage"
                        }
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/api.ActionError"
                        }
                    }
                }
            }
        },
        "/api/webhooks/pagerduty": {
            "post": {
                "description": "Receives PagerDuty incident events. Validated and queued for async processing.",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "webhooks"
                ],
                "summary": "PagerDuty webhook",
                "parameters": [
                    {
                        "description": "PagerDuty event payload (provider-defined)",
                        "name": "payload",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/api.WebhookPayload"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/api.SuccessMessage"
                        }
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/api.ActionError"
                        }
                    }
                }
            }
        },
        "/api/webhooks/prometheus-alertmanager": {
            "post": {
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "webhooks"
                ],
                "summary": "Prometheus Alertmanager webhook",
                "parameters": [
                    {
                        "description": "Alertmanager v4 webhook payload",
                        "name": "payload",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/api.WebhookPayload"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/api.SuccessMessage"
                        }
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/api.ActionError"
                        }
                    }
                }
            }
        },
        "/api/webhooks/servicenow": {
            "post": {
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "webhooks"
                ],
                "summary": "ServiceNow webhook",
                "parameters": [
                    {
                        "description": "ServiceNow event payload",
                        "name": "payload",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/api.WebhookPayload"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/api.SuccessMessage"
                        }
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/api.ActionError"
                        }
                    }
                }
            }
        },
        "/api/webhooks/solarwinds": {
            "post": {
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "webhooks"
                ],
                "summary": "SolarWinds webhook",
                "parameters": [
                    {
                        "description": "SolarWinds event payload",
                        "name": "payload",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/api.WebhookPayload"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/api.SuccessMessage"
                        }
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/api.ActionError"
                        }
                    }
                }
            }
        },
        "/api/webhooks/splunk": {
            "post": {
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "webhooks"
                ],
                "summary": "Splunk webhook",
                "parameters": [
                    {
                        "description": "Splunk alert payload",
                        "name": "payload",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/api.WebhookPayload"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/api.SuccessMessage"
                        }
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/api.ActionError"
                        }
                    }
                }
            }
        },
        "/api/webhooks/workflow": {
            "post": {
                "description": "Receives the JSON payload that triggers a Nudgebee workflow integration. Validated against the workflow's webhook schema, then queued.",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "webhooks"
                ],
                "summary": "Inbound workflow trigger webhook",
                "parameters": [
                    {
                        "description": "Workflow trigger payload (matches the workflow integration's declared schema)",
                        "name": "payload",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/api.WebhookPayload"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/api.SuccessMessage"
                        }
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/api.ActionError"
                        }
                    }
                }
            }
        },
        "/api/webhooks/zenduty": {
            "post": {
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "webhooks"
                ],
                "summary": "Zenduty webhook",
                "parameters": [
                    {
                        "description": "Zenduty event payload",
                        "name": "payload",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/api.WebhookPayload"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/api.SuccessMessage"
                        }
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/api.ActionError"
                        }
                    }
                }
            }
        },
        "/health": {
            "get": {
                "description": "Returns 200 OK when the service process is up. Does not verify downstream dependencies.",
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "system"
                ],
                "summary": "Liveness probe",
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/api.HealthResponse"
                        }
                    }
                }
            }
        },
        "/marketplace/aws/send-test-usage": {
            "post": {
                "security": [
                    {
                        "ActionToken": []
                    }
                ],
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "marketplace"
                ],
                "summary": "Send a test metered-usage record to AWS",
                "parameters": [
                    {
                        "description": "marketplace.TestMeteredUsageRequest",
                        "name": "payload",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "type": "object",
                            "additionalProperties": true
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/api.SuccessMessage"
                        }
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/api.ActionError"
                        }
                    }
                }
            }
        },
        "/marketplace/aws/webhook": {
            "post": {
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "marketplace"
                ],
                "summary": "AWS Marketplace subscription webhook",
                "parameters": [
                    {
                        "description": "marketplace.CustomerSubscription",
                        "name": "payload",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "type": "object",
                            "additionalProperties": true
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "type": "object",
                            "additionalProperties": true
                        }
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/api.ActionError"
                        }
                    }
                }
            }
        },
        "/marketplace/azure/webhook": {
            "post": {
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "marketplace"
                ],
                "summary": "Azure Marketplace subscription webhook",
                "parameters": [
                    {
                        "description": "marketplace.AzurePayload",
                        "name": "payload",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "type": "object",
                            "additionalProperties": true
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "type": "object",
                            "additionalProperties": true
                        }
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/api.ActionError"
                        }
                    }
                }
            }
        },
        "/marketplace/billing/charge-buyers": {
            "post": {
                "security": [
                    {
                        "ActionToken": []
                    }
                ],
                "description": "Triggers SendUsageReportsToMarketplacesForBilling. Internal/admin only.",
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "marketplace"
                ],
                "summary": "Send marketplace usage reports for billing",
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/api.SuccessMessage"
                        }
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/api.ActionError"
                        }
                    }
                }
            }
        },
        "/marketplace/create/tenant-user": {
            "post": {
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "marketplace"
                ],
                "summary": "Create tenant + initial user from a marketplace signup",
                "parameters": [
                    {
                        "description": "marketplace.NewCustomerTenantRequest",
                        "name": "payload",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "type": "object",
                            "additionalProperties": true
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "type": "object",
                            "additionalProperties": true
                        }
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/api.ActionError"
                        }
                    }
                }
            }
        },
        "/marketplace/subscribe": {
            "post": {
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "marketplace"
                ],
                "summary": "Add a marketplace customer subscription",
                "parameters": [
                    {
                        "description": "marketplace.CustomerSubscription",
                        "name": "payload",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "type": "object",
                            "additionalProperties": true
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Created subscription record",
                        "schema": {
                            "type": "object",
                            "additionalProperties": true
                        }
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/api.ActionError"
                        }
                    }
                }
            }
        },
        "/rpc-cron": {
            "post": {
                "security": [
                    {
                        "ActionToken": []
                    }
                ],
                "description": "Invoked by the runbook-server cron scheduler. Branches on ` + "`" + `payload.name` + "`" + ` to dispatch the matching cron job (e.g. ` + "`" + `finops-score-recompute` + "`" + `). Background work runs detached from the request.",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "rpc"
                ],
                "summary": "Scheduled-trigger entry point",
                "parameters": [
                    {
                        "description": "Scheduled-event payload (` + "`" + `{id, name, payload, scheduled_time}` + "`" + `)",
                        "name": "payload",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "type": "object",
                            "additionalProperties": true
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/api.SuccessMessage"
                        }
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/api.ActionError"
                        }
                    }
                }
            }
        },
        "/v1/export/recommendations": {
            "post": {
                "security": [
                    {
                        "ActionToken": []
                    }
                ],
                "description": "RPC action endpoint. Wraps an ExportRecommendationsRequest in the standard RPC action envelope (` + "`" + `{action, input, session_variables}` + "`" + `).",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "export"
                ],
                "summary": "Export recommendations as CSV/XLSX",
                "parameters": [
                    {
                        "description": "RPC action envelope wrapping ExportRecommendationsRequest in ` + "`" + `input.request` + "`" + `",
                        "name": "payload",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "type": "object",
                            "additionalProperties": true
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/api.ExportRecommendationsResult"
                        }
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/api.ActionError"
                        }
                    }
                }
            }
        }
    },
    "definitions": {
        "api.ActionError": {
            "type": "object",
            "properties": {
                "extensions": {
                    "type": "object",
                    "properties": {
                        "code": {
                            "type": "string",
                            "example": "bad_request"
                        }
                    }
                },
                "message": {
                    "type": "string",
                    "example": "invalid json"
                }
            }
        },
        "api.ErrorMessage": {
            "type": "object",
            "properties": {
                "error": {
                    "type": "string",
                    "example": "failed to read request body"
                }
            }
        },
        "api.ExportRecommendationsResult": {
            "type": "object",
            "properties": {
                "content": {
                    "type": "string",
                    "example": "\u003cbase64-encoded payload\u003e"
                },
                "filename": {
                    "type": "string",
                    "example": "recommendations-2026-05-07.csv"
                },
                "format": {
                    "type": "string",
                    "example": "csv"
                },
                "record_count": {
                    "type": "integer",
                    "example": 42
                }
            }
        },
        "api.HealthResponse": {
            "type": "object",
            "properties": {
                "status": {
                    "type": "string",
                    "example": "ok"
                }
            }
        },
        "api.SuccessMessage": {
            "type": "object",
            "properties": {
                "message": {
                    "type": "string",
                    "example": "success"
                }
            }
        },
        "api.WebhookPayload": {
            "type": "object",
            "additionalProperties": true
        }
    },
    "securityDefinitions": {
        "ActionToken": {
            "description": "Internal service-to-service auth token. Default header name (configurable via ` + "`" + `action_api_server_token_header` + "`" + `); value is the ` + "`" + `action_api_server_token` + "`" + ` config value.",
            "type": "apiKey",
            "name": "X-ACTION-TOKEN",
            "in": "header"
        }
    }
}`

// SwaggerInfo holds exported Swagger Info so clients can modify it
var SwaggerInfo = &swag.Spec{
	Version:          "1.0",
	Host:             "",
	BasePath:         "/",
	Schemes:          []string{},
	Title:            "Nudgebee Services API",
	Description:      "Backend API for the Nudgebee platform (RPC actions, webhooks, integrations, observability).",
	InfoInstanceName: "swagger",
	SwaggerTemplate:  docTemplate,
	LeftDelim:        "{{",
	RightDelim:       "}}",
}

func init() {
	swag.Register(SwaggerInfo.InstanceName(), SwaggerInfo)
}
