{
    "schemes": [],
    "swagger": "2.0",
    "info": {
        "description": "REST API for Earnation earning/payment platform",
        "title": "Earnation API",
        "termsOfService": "http://earnation.live/terms/",
        "contact": {
            "name": "API Support",
            "url": "http://earnation.live/support",
            "email": "support@earnation.live"
        },
        "version": "1.0"
    },
    "host": "localhost:1323",
    "basePath": "/",
    "paths": {
        "/i/payments/checkout/{reference}": {
            "get": {
                "produces": [
                    "text/html"
                ],
                "tags": [
                    "payments"
                ],
                "summary": "Render the checkout page for a payment reference (public)",
                "parameters": [
                    {
                        "type": "string",
                        "description": "Payment reference (UUID)",
                        "name": "reference",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Rendered checkout HTML",
                        "schema": {
                            "type": "string"
                        }
                    },
                    "404": {
                        "description": "Reference not found",
                        "schema": {
                            "type": "string"
                        }
                    }
                }
            }
        },
        "/i/test/accesscodes/{paymentId}": {
            "post": {
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "payments"
                ],
                "summary": "Validate a payment and generate its access codes (public/test)",
                "parameters": [
                    {
                        "type": "integer",
                        "description": "Payment ID",
                        "name": "paymentId",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "type": "object",
                            "additionalProperties": true
                        }
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/httputil.ErrorResponse"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/httputil.ErrorResponse"
                        }
                    }
                }
            }
        },
        "/i/validations": {
            "get": {
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "event-requirements"
                ],
                "summary": "Validate an event-requirement QR token (public)",
                "parameters": [
                    {
                        "type": "string",
                        "description": "Signed JWT token from the QR code",
                        "name": "i",
                        "in": "query",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "type": "object",
                            "additionalProperties": true
                        }
                    }
                }
            }
        },
        "/i/webhook/paypal/{paymentGateway}": {
            "post": {
                "consumes": [
                    "application/x-www-form-urlencoded"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "payment-webhooks"
                ],
                "summary": "Handle PayPal checkout approval/cancellation callbacks (public)",
                "parameters": [
                    {
                        "type": "integer",
                        "description": "Payment gateway ID",
                        "name": "paymentGateway",
                        "in": "path",
                        "required": true
                    },
                    {
                        "type": "string",
                        "description": "PayPal order ID",
                        "name": "id",
                        "in": "formData",
                        "required": true
                    },
                    {
                        "type": "string",
                        "description": "Callback action (capture or cancel)",
                        "name": "action",
                        "in": "formData",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "type": "object",
                            "additionalProperties": true
                        }
                    }
                }
            }
        },
        "/i/webhook/payu/{paymentGateway}": {
            "post": {
                "description": "Authenticated via PayU MD5 signature (sign), not JWT.",
                "consumes": [
                    "application/x-www-form-urlencoded"
                ],
                "tags": [
                    "payment-webhooks"
                ],
                "summary": "Handle PayU payment confirmation callbacks (public)",
                "parameters": [
                    {
                        "type": "integer",
                        "description": "Payment gateway ID",
                        "name": "paymentGateway",
                        "in": "path",
                        "required": true
                    },
                    {
                        "type": "string",
                        "description": "PayU merchant ID",
                        "name": "merchant_id",
                        "in": "formData",
                        "required": true
                    },
                    {
                        "type": "string",
                        "description": "Payment reference",
                        "name": "reference_sale",
                        "in": "formData",
                        "required": true
                    },
                    {
                        "type": "string",
                        "description": "Payment value",
                        "name": "value",
                        "in": "formData",
                        "required": true
                    },
                    {
                        "type": "string",
                        "description": "Currency code",
                        "name": "currency",
                        "in": "formData",
                        "required": true
                    },
                    {
                        "type": "string",
                        "description": "PayU transaction state",
                        "name": "state_pol",
                        "in": "formData",
                        "required": true
                    },
                    {
                        "type": "string",
                        "description": "PayU MD5 signature",
                        "name": "sign",
                        "in": "formData",
                        "required": true
                    },
                    {
                        "type": "string",
                        "description": "PayU response message",
                        "name": "response_message_pol",
                        "in": "formData"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    },
                    "400": {
                        "description": "Bad Request"
                    },
                    "404": {
                        "description": "Payment not found"
                    },
                    "500": {
                        "description": "Internal Server Error"
                    }
                }
            }
        },
        "/i/webhook/strapi/{paymentGateway}": {
            "post": {
                "description": "Authenticated via the Stripe-Signature header, not JWT. The route segment is \"strapi\" by design.",
                "consumes": [
                    "application/json"
                ],
                "tags": [
                    "payment-webhooks"
                ],
                "summary": "Handle Stripe checkout webhook events (public)",
                "parameters": [
                    {
                        "type": "integer",
                        "description": "Payment gateway ID",
                        "name": "paymentGateway",
                        "in": "path",
                        "required": true
                    },
                    {
                        "type": "string",
                        "description": "Stripe webhook signature",
                        "name": "Stripe-Signature",
                        "in": "header",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    },
                    "400": {
                        "description": "Bad Request"
                    },
                    "404": {
                        "description": "Payment not found"
                    },
                    "500": {
                        "description": "Internal Server Error"
                    },
                    "503": {
                        "description": "Service Unavailable"
                    }
                }
            }
        },
        "/i/webhooks/s3": {
            "post": {
                "description": "Internal endpoint called by S3/LocalStack. Authenticated via the X-Webhook-Secret header, not a JWT.",
                "consumes": [
                    "application/json"
                ],
                "tags": [
                    "webhooks"
                ],
                "summary": "S3 upload-completed webhook",
                "parameters": [
                    {
                        "type": "string",
                        "description": "Shared webhook secret",
                        "name": "X-Webhook-Secret",
                        "in": "header",
                        "required": true
                    },
                    {
                        "description": "S3 event notification",
                        "name": "request",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/http.s3WebhookPayload"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "No Content"
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/httputil.ErrorResponse"
                        }
                    },
                    "401": {
                        "description": "Unauthorized"
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/httputil.ErrorResponse"
                        }
                    }
                }
            }
        },
        "/i/zooms/link/guest/{reference}": {
            "get": {
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "zoom-links"
                ],
                "summary": "Get a guest invitation by reference code",
                "parameters": [
                    {
                        "type": "string",
                        "description": "Guest invitation reference code",
                        "name": "reference",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "type": "object",
                            "additionalProperties": true
                        }
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/httputil.ErrorResponse"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/httputil.ErrorResponse"
                        }
                    }
                }
            }
        },
        "/i/zooms/past/{id}": {
            "get": {
                "tags": [
                    "zoom-webhook"
                ],
                "summary": "Sync and record past meeting participants",
                "parameters": [
                    {
                        "type": "string",
                        "description": "Zoom meeting ID",
                        "name": "id",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "No Content"
                    },
                    "400": {
                        "description": "Bad Request"
                    },
                    "404": {
                        "description": "Not Found"
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/http.WebhookMessageResponse"
                        }
                    }
                }
            }
        },
        "/i/zooms/webhook": {
            "post": {
                "description": "Authenticated via Zoom HMAC signature headers, not JWT. Also answers Zoom's endpoint URL validation challenge.",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "zoom-webhook"
                ],
                "summary": "Process Zoom webhook events",
                "parameters": [
                    {
                        "type": "string",
                        "description": "Zoom request timestamp",
                        "name": "X-Zm-Request-Timestamp",
                        "in": "header",
                        "required": true
                    },
                    {
                        "type": "string",
                        "description": "Zoom HMAC signature",
                        "name": "X-Zm-Signature",
                        "in": "header",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/http.WebhookMessageResponse"
                        }
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/http.WebhookMessageResponse"
                        }
                    },
                    "401": {
                        "description": "Unauthorized",
                        "schema": {
                            "$ref": "#/definitions/http.WebhookMessageResponse"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/http.WebhookMessageResponse"
                        }
                    }
                }
            }
        },
        "/v1/accesscodes": {
            "post": {
                "security": [
                    {
                        "CognitoJWT": []
                    }
                ],
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "access-codes"
                ],
                "summary": "List access codes for a product in the user's business",
                "parameters": [
                    {
                        "description": "Product, region and country scope",
                        "name": "request",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/http.AccessCodeInfoRequest"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "type": "object",
                            "additionalProperties": true
                        }
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/httputil.ErrorResponse"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/httputil.ErrorResponse"
                        }
                    }
                }
            }
        },
        "/v1/accounting-change-requests": {
            "get": {
                "security": [
                    {
                        "CognitoJWT": []
                    }
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "change-requests"
                ],
                "summary": "List the current user's change requests",
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "type": "object",
                            "additionalProperties": true
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/httputil.ErrorResponse"
                        }
                    }
                }
            },
            "post": {
                "security": [
                    {
                        "CognitoJWT": []
                    }
                ],
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "change-requests"
                ],
                "summary": "Create an accounting change request",
                "parameters": [
                    {
                        "description": "Change request",
                        "name": "request",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/http.ChangeRequestDTO"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "type": "object",
                            "additionalProperties": true
                        }
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/httputil.ErrorResponse"
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "schema": {
                            "$ref": "#/definitions/httputil.ErrorResponse"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/httputil.ErrorResponse"
                        }
                    }
                }
            }
        },
        "/v1/bigdata/businesses": {
            "get": {
                "security": [
                    {
                        "CognitoJWT": []
                    }
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "bigdata-businesses"
                ],
                "summary": "List businesses for the authenticated user",
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "type": "object",
                            "additionalProperties": true
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/httputil.ErrorResponse"
                        }
                    }
                }
            }
        },
        "/v1/bigdata/dashboards": {
            "post": {
                "security": [
                    {
                        "CognitoJWT": []
                    }
                ],
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "bigdata-dashboards"
                ],
                "summary": "List CubeJS dashboards with signed tokens",
                "parameters": [
                    {
                        "description": "Region and country scope",
                        "name": "request",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/http.BusinessRegionRequest"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "type": "object",
                            "additionalProperties": true
                        }
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/httputil.ErrorResponse"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/httputil.ErrorResponse"
                        }
                    }
                }
            }
        },
        "/v1/bigdata/eventguest": {
            "post": {
                "security": [
                    {
                        "CognitoJWT": []
                    }
                ],
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "bigdata-events"
                ],
                "summary": "List individual guest attendance for an event",
                "parameters": [
                    {
                        "description": "Event, region and country scope",
                        "name": "request",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/http.EventGuestRequest"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "type": "object",
                            "additionalProperties": true
                        }
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/httputil.ErrorResponse"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/httputil.ErrorResponse"
                        }
                    }
                }
            }
        },
        "/v1/bigdata/eventguesttotals": {
            "post": {
                "security": [
                    {
                        "CognitoJWT": []
                    }
                ],
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "bigdata-events"
                ],
                "summary": "List event guest registration totals",
                "parameters": [
                    {
                        "description": "Event, region and country scope",
                        "name": "request",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/http.EventGuestRequest"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "type": "object",
                            "additionalProperties": true
                        }
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/httputil.ErrorResponse"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/httputil.ErrorResponse"
                        }
                    }
                }
            }
        },
        "/v1/bigdata/eventguesttotalsassistants": {
            "post": {
                "security": [
                    {
                        "CognitoJWT": []
                    }
                ],
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "bigdata-events"
                ],
                "summary": "List event guest totals with attendance data",
                "parameters": [
                    {
                        "description": "Event, region and country scope",
                        "name": "request",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/http.EventGuestRequest"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "type": "object",
                            "additionalProperties": true
                        }
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/httputil.ErrorResponse"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/httputil.ErrorResponse"
                        }
                    }
                }
            }
        },
        "/v1/bigdata/membership": {
            "post": {
                "security": [
                    {
                        "CognitoJWT": []
                    }
                ],
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/octet-stream"
                ],
                "tags": [
                    "bigdata-membership"
                ],
                "summary": "Generate and download an Excel membership report",
                "parameters": [
                    {
                        "description": "Product, region and country scope",
                        "name": "request",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/http.MembershipInfoRequest"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Excel membership report",
                        "schema": {
                            "type": "file"
                        }
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/httputil.ErrorResponse"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/httputil.ErrorResponse"
                        }
                    }
                }
            }
        },
        "/v1/bigdata/membershipsnew": {
            "get": {
                "security": [
                    {
                        "CognitoJWT": []
                    }
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "bigdata-membership"
                ],
                "summary": "List aggregated membership payment summaries",
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "type": "object",
                            "additionalProperties": true
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/httputil.ErrorResponse"
                        }
                    }
                }
            }
        },
        "/v1/bigdata/product": {
            "post": {
                "security": [
                    {
                        "CognitoJWT": []
                    }
                ],
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "bigdata-membership"
                ],
                "summary": "Get detailed product data (membership tree, users, payments)",
                "parameters": [
                    {
                        "description": "Product, region and country scope",
                        "name": "request",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/http.MembershipInfoRequest"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "type": "object",
                            "additionalProperties": true
                        }
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/httputil.ErrorResponse"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/httputil.ErrorResponse"
                        }
                    }
                }
            }
        },
        "/v1/bigdata/products": {
            "post": {
                "security": [
                    {
                        "CognitoJWT": []
                    }
                ],
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "bigdata-membership"
                ],
                "summary": "List products for the authenticated user",
                "parameters": [
                    {
                        "description": "Product, region and country scope",
                        "name": "request",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/http.MembershipInfoRequest"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "type": "object",
                            "additionalProperties": true
                        }
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/httputil.ErrorResponse"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/httputil.ErrorResponse"
                        }
                    }
                }
            }
        },
        "/v1/bigdata/zoomevents": {
            "get": {
                "security": [
                    {
                        "CognitoJWT": []
                    }
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "bigdata-zoom"
                ],
                "summary": "List zoom events flagged for bigdata",
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "type": "object",
                            "additionalProperties": true
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/httputil.ErrorResponse"
                        }
                    }
                }
            }
        },
        "/v1/biz/buy-config": {
            "get": {
                "security": [
                    {
                        "BearerAuth": []
                    }
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "buy-config"
                ],
                "summary": "Get the buy-config purchase selector for the authenticated business",
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "type": "object",
                            "additionalProperties": true
                        }
                    },
                    "401": {
                        "description": "Unauthorized",
                        "schema": {
                            "$ref": "#/definitions/httputil.ErrorResponse"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/httputil.ErrorResponse"
                        }
                    }
                }
            }
        },
        "/v1/biz/deliveryticket": {
            "get": {
                "security": [
                    {
                        "BearerAuth": []
                    }
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "delivery-tickets"
                ],
                "summary": "List delivery tickets for a business by type (business)",
                "parameters": [
                    {
                        "type": "integer",
                        "description": "Delivery ticket type ID",
                        "name": "id",
                        "in": "query",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "type": "object",
                            "additionalProperties": true
                        }
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/httputil.ErrorResponse"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/httputil.ErrorResponse"
                        }
                    }
                }
            }
        },
        "/v1/biz/deliveryticket/begin": {
            "post": {
                "security": [
                    {
                        "BearerAuth": []
                    }
                ],
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "delivery-tickets"
                ],
                "summary": "Create a delivery ticket and mark its access codes (business)",
                "parameters": [
                    {
                        "description": "Delivery ticket type ID: {\\",
                        "name": "request",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "type": "object"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "type": "object",
                            "additionalProperties": true
                        }
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/httputil.ErrorResponse"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/httputil.ErrorResponse"
                        }
                    }
                }
            }
        },
        "/v1/biz/deliveryticket/{id}/detail": {
            "get": {
                "security": [
                    {
                        "BearerAuth": []
                    }
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "delivery-tickets"
                ],
                "summary": "Get the per-owner detail of a delivered delivery ticket (business)",
                "parameters": [
                    {
                        "type": "integer",
                        "description": "Delivery ticket ID",
                        "name": "id",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "type": "object",
                            "additionalProperties": true
                        }
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/httputil.ErrorResponse"
                        }
                    },
                    "403": {
                        "description": "Forbidden",
                        "schema": {
                            "$ref": "#/definitions/httputil.ErrorResponse"
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "schema": {
                            "$ref": "#/definitions/httputil.ErrorResponse"
                        }
                    },
                    "409": {
                        "description": "Conflict",
                        "schema": {
                            "$ref": "#/definitions/httputil.ErrorResponse"
                        }
                    }
                }
            }
        },
        "/v1/biz/deliverytickettype/summary": {
            "post": {
                "security": [
                    {
                        "BearerAuth": []
                    }
                ],
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "delivery-tickets"
                ],
                "summary": "Get a temporary summary for a delivery ticket type (business)",
                "parameters": [
                    {
                        "description": "Delivery ticket type ID: {\\",
                        "name": "request",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "type": "object"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "type": "object",
                            "additionalProperties": true
                        }
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/httputil.ErrorResponse"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/httputil.ErrorResponse"
                        }
                    }
                }
            }
        },
        "/v1/biz/externalrequests": {
            "get": {
                "security": [
                    {
                        "BearerAuth": []
                    }
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "external-requests"
                ],
                "summary": "List external requests for a business and product (business)",
                "parameters": [
                    {
                        "type": "integer",
                        "description": "Product ID",
                        "name": "productId",
                        "in": "query",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "type": "object",
                            "additionalProperties": true
                        }
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/httputil.ErrorResponse"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/httputil.ErrorResponse"
                        }
                    }
                }
            }
        },
        "/v1/biz/file-uploads": {
            "get": {
                "security": [
                    {
                        "BearerAuth": []
                    }
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "file-uploads"
                ],
                "summary": "List the current business's uploaded files",
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "type": "object",
                            "additionalProperties": true
                        }
                    },
                    "401": {
                        "description": "Unauthorized",
                        "schema": {
                            "$ref": "#/definitions/httputil.ErrorResponse"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/httputil.ErrorResponse"
                        }
                    }
                }
            }
        },
        "/v1/biz/file-uploads/presign": {
            "post": {
                "security": [
                    {
                        "CognitoJWT": []
                    },
                    {
                        "BearerAuth": []
                    }
                ],
                "description": "Same operation in user, business and business-user contexts (distinct paths/auth).",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "file-uploads"
                ],
                "summary": "Request a presigned upload URL",
                "parameters": [
                    {
                        "description": "File to upload",
                        "name": "request",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/http.presignUploadRequest"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "type": "object",
                            "additionalProperties": true
                        }
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/httputil.ErrorResponse"
                        }
                    },
                    "401": {
                        "description": "Unauthorized",
                        "schema": {
                            "$ref": "#/definitions/httputil.ErrorResponse"
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "schema": {
                            "$ref": "#/definitions/httputil.ErrorResponse"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/httputil.ErrorResponse"
                        }
                    }
                }
            }
        },
        "/v1/biz/file-uploads/user": {
            "get": {
                "security": [
                    {
                        "BearerAuth": []
                    }
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "file-uploads"
                ],
                "summary": "List the current business user's uploaded files",
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "type": "object",
                            "additionalProperties": true
                        }
                    },
                    "401": {
                        "description": "Unauthorized",
                        "schema": {
                            "$ref": "#/definitions/httputil.ErrorResponse"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/httputil.ErrorResponse"
                        }
                    }
                }
            }
        },
        "/v1/biz/file-uploads/user/presign": {
            "post": {
                "security": [
                    {
                        "CognitoJWT": []
                    },
                    {
                        "BearerAuth": []
                    }
                ],
                "description": "Same operation in user, business and business-user contexts (distinct paths/auth).",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "file-uploads"
                ],
                "summary": "Request a presigned upload URL",
                "parameters": [
                    {
                        "description": "File to upload",
                        "name": "request",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/http.presignUploadRequest"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "type": "object",
                            "additionalProperties": true
                        }
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/httputil.ErrorResponse"
                        }
                    },
                    "401": {
                        "description": "Unauthorized",
                        "schema": {
                            "$ref": "#/definitions/httputil.ErrorResponse"
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "schema": {
                            "$ref": "#/definitions/httputil.ErrorResponse"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/httputil.ErrorResponse"
                        }
                    }
                }
            }
        },
        "/v1/biz/file-uploads/user/{id}/view": {
            "get": {
                "security": [
                    {
                        "CognitoJWT": []
                    },
                    {
                        "BearerAuth": []
                    }
                ],
                "description": "Same operation in user, business and business-user contexts (distinct paths/auth).",
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "file-uploads"
                ],
                "summary": "Request a presigned view URL",
                "parameters": [
                    {
                        "type": "integer",
                        "description": "File upload ID",
                        "name": "id",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "type": "object",
                            "additionalProperties": true
                        }
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/httputil.ErrorResponse"
                        }
                    },
                    "401": {
                        "description": "Unauthorized",
                        "schema": {
                            "$ref": "#/definitions/httputil.ErrorResponse"
                        }
                    },
                    "403": {
                        "description": "Forbidden",
                        "schema": {
                            "$ref": "#/definitions/httputil.ErrorResponse"
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "schema": {
                            "$ref": "#/definitions/httputil.ErrorResponse"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/httputil.ErrorResponse"
                        }
                    }
                }
            }
        },
        "/v1/biz/file-uploads/{id}/view": {
            "get": {
                "security": [
                    {
                        "CognitoJWT": []
                    },
                    {
                        "BearerAuth": []
                    }
                ],
                "description": "Same operation in user, business and business-user contexts (distinct paths/auth).",
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "file-uploads"
                ],
                "summary": "Request a presigned view URL",
                "parameters": [
                    {
                        "type": "integer",
                        "description": "File upload ID",
                        "name": "id",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "type": "object",
                            "additionalProperties": true
                        }
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/httputil.ErrorResponse"
                        }
                    },
                    "401": {
                        "description": "Unauthorized",
                        "schema": {
                            "$ref": "#/definitions/httputil.ErrorResponse"
                        }
                    },
                    "403": {
                        "description": "Forbidden",
                        "schema": {
                            "$ref": "#/definitions/httputil.ErrorResponse"
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "schema": {
                            "$ref": "#/definitions/httputil.ErrorResponse"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/httputil.ErrorResponse"
                        }
                    }
                }
            }
        },
        "/v1/biz/installments/scheduled": {
            "get": {
                "security": [
                    {
                        "BearerAuth": []
                    }
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "installments"
                ],
                "summary": "List scheduled installments for a business (business)",
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "type": "object",
                            "additionalProperties": true
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/httputil.ErrorResponse"
                        }
                    }
                }
            }
        },
        "/v1/biz/installments/{id}/startpayment": {
            "post": {
                "security": [
                    {
                        "BearerAuth": []
                    }
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "installments"
                ],
                "summary": "Start a payment for a scheduled installment (business)",
                "parameters": [
                    {
                        "type": "integer",
                        "description": "Installment ID",
                        "name": "id",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "type": "object",
                            "additionalProperties": true
                        }
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/httputil.ErrorResponse"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/httputil.ErrorResponse"
                        }
                    }
                }
            }
        },
        "/v1/businesses/joined-at": {
            "put": {
                "security": [
                    {
                        "CognitoJWT": []
                    }
                ],
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "businesses"
                ],
                "summary": "Set a business joined_at date (by ABO)",
                "parameters": [
                    {
                        "description": "ABO and joined_at date",
                        "name": "request",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/http.SetBusinessJoinedAtRequest"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "type": "object",
                            "additionalProperties": true
                        }
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/httputil.ErrorResponse"
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "schema": {
                            "$ref": "#/definitions/httputil.ErrorResponse"
                        }
                    },
                    "409": {
                        "description": "Conflict",
                        "schema": {
                            "$ref": "#/definitions/httputil.ErrorResponse"
                        }
                    }
                }
            }
        },
        "/v1/buy-config-groups": {
            "get": {
                "security": [
                    {
                        "CognitoJWT": []
                    }
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "buy-config-admin"
                ],
                "summary": "List every purchase configuration group (active and inactive)",
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "type": "object",
                            "additionalProperties": true
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/httputil.ErrorResponse"
                        }
                    }
                }
            },
            "post": {
                "security": [
                    {
                        "CognitoJWT": []
                    }
                ],
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "buy-config-admin"
                ],
                "summary": "Create a purchase configuration group",
                "parameters": [
                    {
                        "description": "New group metadata",
                        "name": "request",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/http.CreateGroupRequest"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "type": "object",
                            "additionalProperties": true
                        }
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/httputil.ErrorResponse"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/httputil.ErrorResponse"
                        }
                    }
                }
            }
        },
        "/v1/buy-config-groups/{id}": {
            "put": {
                "security": [
                    {
                        "CognitoJWT": []
                    }
                ],
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "buy-config-admin"
                ],
                "summary": "Update a purchase configuration group's metadata",
                "parameters": [
                    {
                        "type": "integer",
                        "description": "Buy-config group ID",
                        "name": "id",
                        "in": "path",
                        "required": true
                    },
                    {
                        "description": "New group metadata",
                        "name": "request",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/http.UpdateGroupRequest"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "type": "object",
                            "additionalProperties": true
                        }
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/httputil.ErrorResponse"
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "schema": {
                            "$ref": "#/definitions/httputil.ErrorResponse"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/httputil.ErrorResponse"
                        }
                    }
                }
            }
        },
        "/v1/buy-config-groups/{id}/active": {
            "put": {
                "security": [
                    {
                        "CognitoJWT": []
                    }
                ],
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "buy-config-admin"
                ],
                "summary": "Activate or deactivate a purchase configuration group",
                "parameters": [
                    {
                        "type": "integer",
                        "description": "Buy-config group ID",
                        "name": "id",
                        "in": "path",
                        "required": true
                    },
                    {
                        "description": "New active flag",
                        "name": "request",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/http.SetGroupActiveRequest"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "type": "object",
                            "additionalProperties": true
                        }
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/httputil.ErrorResponse"
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "schema": {
                            "$ref": "#/definitions/httputil.ErrorResponse"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/httputil.ErrorResponse"
                        }
                    }
                }
            }
        },
        "/v1/buy-config-groups/{id}/config": {
            "get": {
                "security": [
                    {
                        "CognitoJWT": []
                    }
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "buy-config-admin"
                ],
                "summary": "Get a group's full nested purchase configuration (unfiltered)",
                "parameters": [
                    {
                        "type": "integer",
                        "description": "Buy-config group ID",
                        "name": "id",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "type": "object",
                            "additionalProperties": true
                        }
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/httputil.ErrorResponse"
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "schema": {
                            "$ref": "#/definitions/httputil.ErrorResponse"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/httputil.ErrorResponse"
                        }
                    }
                }
            },
            "put": {
                "security": [
                    {
                        "CognitoJWT": []
                    }
                ],
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "buy-config-admin"
                ],
                "summary": "Replace a group's full nested purchase configuration",
                "parameters": [
                    {
                        "type": "integer",
                        "description": "Buy-config group ID",
                        "name": "id",
                        "in": "path",
                        "required": true
                    },
                    {
                        "description": "Full nested configuration",
                        "name": "request",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/http.SaveConfigRequest"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "type": "object",
                            "additionalProperties": true
                        }
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/httputil.ErrorResponse"
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "schema": {
                            "$ref": "#/definitions/httputil.ErrorResponse"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/httputil.ErrorResponse"
                        }
                    }
                }
            }
        },
        "/v1/cities": {
            "get": {
                "security": [
                    {
                        "CognitoJWT": []
                    }
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "cities"
                ],
                "summary": "List all cities",
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "type": "object",
                            "additionalProperties": true
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/httputil.ErrorResponse"
                        }
                    }
                }
            },
            "post": {
                "security": [
                    {
                        "CognitoJWT": []
                    }
                ],
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "cities"
                ],
                "summary": "Create a city",
                "parameters": [
                    {
                        "description": "City to create",
                        "name": "request",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/http.CreateCityRequest"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "type": "object",
                            "additionalProperties": true
                        }
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/httputil.ErrorResponse"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/httputil.ErrorResponse"
                        }
                    }
                }
            }
        },
        "/v1/cities/{idCity}": {
            "get": {
                "security": [
                    {
                        "CognitoJWT": []
                    }
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "cities"
                ],
                "summary": "Get a city by ID",
                "parameters": [
                    {
                        "type": "integer",
                        "description": "City ID",
                        "name": "idCity",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "type": "object",
                            "additionalProperties": true
                        }
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/httputil.ErrorResponse"
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "schema": {
                            "$ref": "#/definitions/httputil.ErrorResponse"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/httputil.ErrorResponse"
                        }
                    }
                }
            },
            "put": {
                "security": [
                    {
                        "CognitoJWT": []
                    }
                ],
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "cities"
                ],
                "summary": "Update a city",
                "parameters": [
                    {
                        "type": "integer",
                        "description": "City ID",
                        "name": "idCity",
                        "in": "path",
                        "required": true
                    },
                    {
                        "description": "City fields to update",
                        "name": "request",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/http.UpdateCityRequest"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "type": "object",
                            "additionalProperties": true
                        }
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/httputil.ErrorResponse"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/httputil.ErrorResponse"
                        }
                    }
                }
            },
            "delete": {
                "security": [
                    {
                        "CognitoJWT": []
                    }
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "cities"
                ],
                "summary": "Delete a city",
                "parameters": [
                    {
                        "type": "integer",
                        "description": "City ID",
                        "name": "idCity",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "type": "object",
                            "additionalProperties": true
                        }
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/httputil.ErrorResponse"
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "schema": {
                            "$ref": "#/definitions/httputil.ErrorResponse"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/httputil.ErrorResponse"
                        }
                    }
                }
            }
        },
        "/v1/countries": {
            "get": {
                "security": [
                    {
                        "CognitoJWT": []
                    }
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "countries"
                ],
                "summary": "List all countries",
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "type": "object",
                            "additionalProperties": true
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/httputil.ErrorResponse"
                        }
                    }
                }
            },
            "post": {
                "security": [
                    {
                        "CognitoJWT": []
                    }
                ],
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "countries"
                ],
                "summary": "Create a country",
                "parameters": [
                    {
                        "description": "Country to create",
                        "name": "request",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/http.CreateCountryRequest"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "type": "object",
                            "additionalProperties": true
                        }
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/httputil.ErrorResponse"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/httputil.ErrorResponse"
                        }
                    }
                }
            }
        },
        "/v1/countries/{idCountry}": {
            "get": {
                "security": [
                    {
                        "CognitoJWT": []
                    }
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "countries"
                ],
                "summary": "Get a country by ID",
                "parameters": [
                    {
                        "type": "integer",
                        "description": "Country ID",
                        "name": "idCountry",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "type": "object",
                            "additionalProperties": true
                        }
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/httputil.ErrorResponse"
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "schema": {
                            "$ref": "#/definitions/httputil.ErrorResponse"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/httputil.ErrorResponse"
                        }
                    }
                }
            },
            "put": {
                "security": [
                    {
                        "CognitoJWT": []
                    }
                ],
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "countries"
                ],
                "summary": "Update a country",
                "parameters": [
                    {
                        "type": "integer",
                        "description": "Country ID",
                        "name": "idCountry",
                        "in": "path",
                        "required": true
                    },
                    {
                        "description": "Country fields to update",
                        "name": "request",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/http.UpdateCountryRequest"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "type": "object",
                            "additionalProperties": true
                        }
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/httputil.ErrorResponse"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/httputil.ErrorResponse"
                        }
                    }
                }
            },
            "delete": {
                "security": [
                    {
                        "CognitoJWT": []
                    }
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "countries"
                ],
                "summary": "Delete a country",
                "parameters": [
                    {
                        "type": "integer",
                        "description": "Country ID",
                        "name": "idCountry",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "type": "object",
                            "additionalProperties": true
                        }
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/httputil.ErrorResponse"
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "schema": {
                            "$ref": "#/definitions/httputil.ErrorResponse"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/httputil.ErrorResponse"
                        }
                    }
                }
            }
        },
        "/v1/countries/{idCountry}/departments": {
            "get": {
                "security": [
                    {
                        "CognitoJWT": []
                    }
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "countries"
                ],
                "summary": "List departments in a country",
                "parameters": [
                    {
                        "type": "integer",
                        "description": "Country ID",
                        "name": "idCountry",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "type": "object",
                            "additionalProperties": true
                        }
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/httputil.ErrorResponse"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/httputil.ErrorResponse"
                        }
                    }
                }
            }
        },
        "/v1/deliveryticket/cancel": {
            "post": {
                "security": [
                    {
                        "CognitoJWT": []
                    }
                ],
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "delivery-tickets"
                ],
                "summary": "Cancel a delivery ticket and unmark its access codes",
                "parameters": [
                    {
                        "description": "Delivery ticket ID",
                        "name": "request",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/http.DeliveryTicketCancelRequest"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "type": "object",
                            "additionalProperties": true
                        }
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/httputil.ErrorResponse"
                        }
                    }
                }
            }
        },
        "/v1/deliveryticket/complete": {
            "post": {
                "security": [
                    {
                        "CognitoJWT": []
                    }
                ],
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "delivery-tickets"
                ],
                "summary": "Mark a delivery ticket as completed",
                "parameters": [
                    {
                        "description": "Delivery ticket ID and who completed it",
                        "name": "request",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/http.DeliveryTicketCompleteRequest"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "type": "object",
                            "additionalProperties": true
                        }
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/httputil.ErrorResponse"
                        }
                    }
                }
            }
        },
        "/v1/deliveryticket/validate/{id}": {
            "get": {
                "security": [
                    {
                        "CognitoJWT": []
                    }
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "delivery-tickets"
                ],
                "summary": "Validate a delivery ticket is pending",
                "parameters": [
                    {
                        "type": "integer",
                        "description": "Delivery ticket ID",
                        "name": "id",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "type": "object",
                            "additionalProperties": true
                        }
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/httputil.ErrorResponse"
                        }
                    }
                }
            }
        },
        "/v1/deliverytickettype": {
            "get": {
                "security": [
                    {
                        "CognitoJWT": []
                    }
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "delivery-tickets"
                ],
                "summary": "List active delivery ticket types",
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "type": "object",
                            "additionalProperties": true
                        }
                    }
                }
            }
        },
        "/v1/departments": {
            "get": {
                "security": [
                    {
                        "CognitoJWT": []
                    }
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "departments"
                ],
                "summary": "List all departments",
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "type": "object",
                            "additionalProperties": true
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/httputil.ErrorResponse"
                        }
                    }
                }
            },
            "post": {
                "security": [
                    {
                        "CognitoJWT": []
                    }
                ],
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "departments"
                ],
                "summary": "Create a department",
                "parameters": [
                    {
                        "description": "Department to create",
                        "name": "request",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/http.CreateDepartmentRequest"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "type": "object",
                            "additionalProperties": true
                        }
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/httputil.ErrorResponse"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/httputil.ErrorResponse"
                        }
                    }
                }
            }
        },
        "/v1/departments/{idDepartment}": {
            "get": {
                "security": [
                    {
                        "CognitoJWT": []
                    }
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "departments"
                ],
                "summary": "Get a department by ID",
                "parameters": [
                    {
                        "type": "integer",
                        "description": "Department ID",
                        "name": "idDepartment",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "type": "object",
                            "additionalProperties": true
                        }
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/httputil.ErrorResponse"
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "schema": {
                            "$ref": "#/definitions/httputil.ErrorResponse"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/httputil.ErrorResponse"
                        }
                    }
                }
            },
            "put": {
                "security": [
                    {
                        "CognitoJWT": []
                    }
                ],
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "departments"
                ],
                "summary": "Update a department",
                "parameters": [
                    {
                        "type": "integer",
                        "description": "Department ID",
                        "name": "idDepartment",
                        "in": "path",
                        "required": true
                    },
                    {
                        "description": "Department fields to update",
                        "name": "request",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/http.UpdateDepartmentRequest"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "type": "object",
                            "additionalProperties": true
                        }
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/httputil.ErrorResponse"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/httputil.ErrorResponse"
                        }
                    }
                }
            },
            "delete": {
                "security": [
                    {
                        "CognitoJWT": []
                    }
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "departments"
                ],
                "summary": "Delete a department",
                "parameters": [
                    {
                        "type": "integer",
                        "description": "Department ID",
                        "name": "idDepartment",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "type": "object",
                            "additionalProperties": true
                        }
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/httputil.ErrorResponse"
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "schema": {
                            "$ref": "#/definitions/httputil.ErrorResponse"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/httputil.ErrorResponse"
                        }
                    }
                }
            }
        },
        "/v1/departments/{idDepartment}/cities": {
            "get": {
                "security": [
                    {
                        "CognitoJWT": []
                    }
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "departments"
                ],
                "summary": "List cities in a department",
                "parameters": [
                    {
                        "type": "integer",
                        "description": "Department ID",
                        "name": "idDepartment",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "type": "object",
                            "additionalProperties": true
                        }
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/httputil.ErrorResponse"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/httputil.ErrorResponse"
                        }
                    }
                }
            }
        },
        "/v1/eventrequirements/{requirement}/status": {
            "get": {
                "security": [
                    {
                        "CognitoJWT": []
                    }
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "event-requirements"
                ],
                "summary": "Get event requirement completion status (QR when complete)",
                "parameters": [
                    {
                        "type": "integer",
                        "description": "Event requirement ID",
                        "name": "requirement",
                        "in": "path",
                        "required": true
                    },
                    {
                        "type": "integer",
                        "description": "Country ID",
                        "name": "c",
                        "in": "query",
                        "required": true
                    },
                    {
                        "type": "integer",
                        "description": "Region ID",
                        "name": "r",
                        "in": "query",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "type": "object",
                            "additionalProperties": true
                        }
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/httputil.ErrorResponse"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/httputil.ErrorResponse"
                        }
                    }
                }
            }
        },
        "/v1/file-upload-topics": {
            "get": {
                "security": [
                    {
                        "CognitoJWT": []
                    }
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "file-upload-topics"
                ],
                "summary": "List all file upload topics",
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "type": "object",
                            "additionalProperties": true
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/httputil.ErrorResponse"
                        }
                    }
                }
            },
            "post": {
                "security": [
                    {
                        "CognitoJWT": []
                    }
                ],
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "file-upload-topics"
                ],
                "summary": "Create a file upload topic",
                "parameters": [
                    {
                        "description": "Topic to create",
                        "name": "request",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/http.createTopicRequest"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "type": "object",
                            "additionalProperties": true
                        }
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/httputil.ErrorResponse"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/httputil.ErrorResponse"
                        }
                    }
                }
            }
        },
        "/v1/file-upload-topics/{id}": {
            "get": {
                "security": [
                    {
                        "CognitoJWT": []
                    }
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "file-upload-topics"
                ],
                "summary": "Get a file upload topic by ID",
                "parameters": [
                    {
                        "type": "integer",
                        "description": "Topic ID",
                        "name": "id",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "type": "object",
                            "additionalProperties": true
                        }
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/httputil.ErrorResponse"
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "schema": {
                            "$ref": "#/definitions/httputil.ErrorResponse"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/httputil.ErrorResponse"
                        }
                    }
                }
            },
            "put": {
                "security": [
                    {
                        "CognitoJWT": []
                    }
                ],
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "file-upload-topics"
                ],
                "summary": "Update a file upload topic",
                "parameters": [
                    {
                        "type": "integer",
                        "description": "Topic ID",
                        "name": "id",
                        "in": "path",
                        "required": true
                    },
                    {
                        "description": "Topic fields to update",
                        "name": "request",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/http.updateTopicRequest"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "type": "object",
                            "additionalProperties": true
                        }
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/httputil.ErrorResponse"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/httputil.ErrorResponse"
                        }
                    }
                }
            },
            "delete": {
                "security": [
                    {
                        "CognitoJWT": []
                    }
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "file-upload-topics"
                ],
                "summary": "Delete a file upload topic",
                "parameters": [
                    {
                        "type": "integer",
                        "description": "Topic ID",
                        "name": "id",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "type": "object",
                            "additionalProperties": true
                        }
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/httputil.ErrorResponse"
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "schema": {
                            "$ref": "#/definitions/httputil.ErrorResponse"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/httputil.ErrorResponse"
                        }
                    }
                }
            }
        },
        "/v1/file-uploads": {
            "get": {
                "security": [
                    {
                        "CognitoJWT": []
                    }
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "file-uploads"
                ],
                "summary": "List the current user's uploaded files",
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "type": "object",
                            "additionalProperties": true
                        }
                    },
                    "401": {
                        "description": "Unauthorized",
                        "schema": {
                            "$ref": "#/definitions/httputil.ErrorResponse"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/httputil.ErrorResponse"
                        }
                    }
                }
            }
        },
        "/v1/file-uploads/admin/{id}/view": {
            "get": {
                "security": [
                    {
                        "CognitoJWT": []
                    }
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "file-uploads"
                ],
                "summary": "Admin presigned view URL (no ownership check)",
                "parameters": [
                    {
                        "type": "integer",
                        "description": "File upload ID",
                        "name": "id",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "type": "object",
                            "additionalProperties": true
                        }
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/httputil.ErrorResponse"
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "schema": {
                            "$ref": "#/definitions/httputil.ErrorResponse"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/httputil.ErrorResponse"
                        }
                    }
                }
            }
        },
        "/v1/file-uploads/presign": {
            "post": {
                "security": [
                    {
                        "CognitoJWT": []
                    },
                    {
                        "BearerAuth": []
                    }
                ],
                "description": "Same operation in user, business and business-user contexts (distinct paths/auth).",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "file-uploads"
                ],
                "summary": "Request a presigned upload URL",
                "parameters": [
                    {
                        "description": "File to upload",
                        "name": "request",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/http.presignUploadRequest"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "type": "object",
                            "additionalProperties": true
                        }
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/httputil.ErrorResponse"
                        }
                    },
                    "401": {
                        "description": "Unauthorized",
                        "schema": {
                            "$ref": "#/definitions/httputil.ErrorResponse"
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "schema": {
                            "$ref": "#/definitions/httputil.ErrorResponse"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/httputil.ErrorResponse"
                        }
                    }
                }
            }
        },
        "/v1/file-uploads/{id}/status": {
            "get": {
                "security": [
                    {
                        "CognitoJWT": []
                    }
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "file-uploads"
                ],
                "summary": "Get file upload status",
                "parameters": [
                    {
                        "type": "integer",
                        "description": "File upload ID",
                        "name": "id",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "type": "object",
                            "additionalProperties": true
                        }
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/httputil.ErrorResponse"
                        }
                    },
                    "401": {
                        "description": "Unauthorized",
                        "schema": {
                            "$ref": "#/definitions/httputil.ErrorResponse"
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "schema": {
                            "$ref": "#/definitions/httputil.ErrorResponse"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/httputil.ErrorResponse"
                        }
                    }
                }
            }
        },
        "/v1/file-uploads/{id}/view": {
            "get": {
                "security": [
                    {
                        "CognitoJWT": []
                    },
                    {
                        "BearerAuth": []
                    }
                ],
                "description": "Same operation in user, business and business-user contexts (distinct paths/auth).",
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "file-uploads"
                ],
                "summary": "Request a presigned view URL",
                "parameters": [
                    {
                        "type": "integer",
                        "description": "File upload ID",
                        "name": "id",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "type": "object",
                            "additionalProperties": true
                        }
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/httputil.ErrorResponse"
                        }
                    },
                    "401": {
                        "description": "Unauthorized",
                        "schema": {
                            "$ref": "#/definitions/httputil.ErrorResponse"
                        }
                    },
                    "403": {
                        "description": "Forbidden",
                        "schema": {
                            "$ref": "#/definitions/httputil.ErrorResponse"
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "schema": {
                            "$ref": "#/definitions/httputil.ErrorResponse"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/httputil.ErrorResponse"
                        }
                    }
                }
            }
        },
        "/v1/levels": {
            "get": {
                "security": [
                    {
                        "CognitoJWT": []
                    }
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "levels"
                ],
                "summary": "List all hierarchical levels",
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "type": "object",
                            "additionalProperties": true
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/httputil.ErrorResponse"
                        }
                    }
                }
            }
        },
        "/v1/myaccesscodes": {
            "post": {
                "security": [
                    {
                        "CognitoJWT": []
                    }
                ],
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "access-codes"
                ],
                "summary": "List the user's business type-code IDs",
                "parameters": [
                    {
                        "description": "Region and country scope",
                        "name": "request",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/http.AccessCodeMyRequest"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "type": "object",
                            "additionalProperties": true
                        }
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/httputil.ErrorResponse"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/httputil.ErrorResponse"
                        }
                    }
                }
            }
        },
        "/v1/payment-conversions": {
            "post": {
                "security": [
                    {
                        "CognitoJWT": []
                    }
                ],
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "payment-conversions-admin"
                ],
                "summary": "Convert a FULL payment to credit 50/50",
                "parameters": [
                    {
                        "description": "Conversion request",
                        "name": "request",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/http.ConvertPaymentRequestDTO"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "type": "object",
                            "additionalProperties": true
                        }
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/httputil.ErrorResponse"
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "schema": {
                            "$ref": "#/definitions/httputil.ErrorResponse"
                        }
                    },
                    "409": {
                        "description": "Conflict",
                        "schema": {
                            "$ref": "#/definitions/httputil.ErrorResponse"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/httputil.ErrorResponse"
                        }
                    }
                }
            }
        },
        "/v1/payment-conversions/search": {
            "get": {
                "security": [
                    {
                        "CognitoJWT": []
                    }
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "payment-conversions-admin"
                ],
                "summary": "Search FULL payments convertible to credit for an affiliate/event",
                "parameters": [
                    {
                        "type": "string",
                        "description": "Affiliate email (at least one of email/abo required)",
                        "name": "email",
                        "in": "query"
                    },
                    {
                        "type": "string",
                        "description": "Affiliate ABO (at least one of email/abo required)",
                        "name": "abo",
                        "in": "query"
                    },
                    {
                        "type": "string",
                        "description": "Event code_internal",
                        "name": "code_internal",
                        "in": "query",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "type": "object",
                            "additionalProperties": true
                        }
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/httputil.ErrorResponse"
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "schema": {
                            "$ref": "#/definitions/httputil.ErrorResponse"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/httputil.ErrorResponse"
                        }
                    }
                }
            }
        },
        "/v1/payment-gateways": {
            "get": {
                "security": [
                    {
                        "CognitoJWT": []
                    }
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "payment-gateways"
                ],
                "summary": "List all active payment gateways",
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "type": "object",
                            "additionalProperties": true
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/httputil.ErrorResponse"
                        }
                    }
                }
            }
        },
        "/v1/payment-gateways/{id}": {
            "get": {
                "security": [
                    {
                        "CognitoJWT": []
                    }
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "payment-gateways"
                ],
                "summary": "Get a payment gateway by ID",
                "parameters": [
                    {
                        "type": "integer",
                        "description": "Payment gateway ID",
                        "name": "id",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "type": "object",
                            "additionalProperties": true
                        }
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/httputil.ErrorResponse"
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "schema": {
                            "$ref": "#/definitions/httputil.ErrorResponse"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/httputil.ErrorResponse"
                        }
                    }
                }
            }
        },
        "/v1/payments": {
            "get": {
                "security": [
                    {
                        "CognitoJWT": []
                    }
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "payments"
                ],
                "summary": "List the authenticated user's payment history",
                "parameters": [
                    {
                        "type": "integer",
                        "description": "Region ID",
                        "name": "r",
                        "in": "query",
                        "required": true
                    },
                    {
                        "type": "integer",
                        "description": "Country ID",
                        "name": "c",
                        "in": "query",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "type": "object",
                            "additionalProperties": true
                        }
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/httputil.ErrorResponse"
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "schema": {
                            "$ref": "#/definitions/httputil.ErrorResponse"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/httputil.ErrorResponse"
                        }
                    }
                }
            },
            "post": {
                "security": [
                    {
                        "CognitoJWT": []
                    }
                ],
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "payments"
                ],
                "summary": "Generate a payment intent for a product",
                "parameters": [
                    {
                        "description": "Product, region and country scope",
                        "name": "request",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/http.PaymentProductRequest"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "type": "object",
                            "additionalProperties": true
                        }
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/httputil.ErrorResponse"
                        }
                    },
                    "409": {
                        "description": "Rejected. Branch on code: ALREADY_PURCHASED (the business already owns the product) or PAYMENT_IN_PROGRESS (a pending intent is blocking a second one). message carries the customer-facing text.",
                        "schema": {
                            "$ref": "#/definitions/httputil.ErrorResponse"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/httputil.ErrorResponse"
                        }
                    }
                }
            }
        },
        "/v1/products": {
            "get": {
                "security": [
                    {
                        "CognitoJWT": []
                    }
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "products"
                ],
                "summary": "List all products",
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "type": "object",
                            "additionalProperties": true
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/httputil.ErrorResponse"
                        }
                    }
                }
            },
            "post": {
                "security": [
                    {
                        "CognitoJWT": []
                    }
                ],
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "products"
                ],
                "summary": "Create a product",
                "parameters": [
                    {
                        "description": "Product to create",
                        "name": "request",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/http.CreateProductRequest"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "type": "object",
                            "additionalProperties": true
                        }
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/httputil.ErrorResponse"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/httputil.ErrorResponse"
                        }
                    }
                }
            }
        },
        "/v1/products/{id}": {
            "get": {
                "security": [
                    {
                        "CognitoJWT": []
                    }
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "products"
                ],
                "summary": "Get a product by ID",
                "parameters": [
                    {
                        "type": "integer",
                        "description": "Product ID",
                        "name": "id",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "type": "object",
                            "additionalProperties": true
                        }
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/httputil.ErrorResponse"
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "schema": {
                            "$ref": "#/definitions/httputil.ErrorResponse"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/httputil.ErrorResponse"
                        }
                    }
                }
            },
            "put": {
                "security": [
                    {
                        "CognitoJWT": []
                    }
                ],
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "products"
                ],
                "summary": "Update a product",
                "parameters": [
                    {
                        "type": "integer",
                        "description": "Product ID",
                        "name": "id",
                        "in": "path",
                        "required": true
                    },
                    {
                        "description": "Product fields to update",
                        "name": "request",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/http.UpdateProductRequest"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "type": "object",
                            "additionalProperties": true
                        }
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/httputil.ErrorResponse"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/httputil.ErrorResponse"
                        }
                    }
                }
            }
        },
        "/v1/products/{id}/selectors": {
            "get": {
                "security": [
                    {
                        "CognitoJWT": []
                    }
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "products"
                ],
                "summary": "List selector products for a product",
                "parameters": [
                    {
                        "type": "integer",
                        "description": "Product ID",
                        "name": "id",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "type": "object",
                            "additionalProperties": true
                        }
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/httputil.ErrorResponse"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/httputil.ErrorResponse"
                        }
                    }
                }
            }
        },
        "/v1/products/{id}/type-codes": {
            "get": {
                "security": [
                    {
                        "CognitoJWT": []
                    }
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "products"
                ],
                "summary": "List type code products for a product",
                "parameters": [
                    {
                        "type": "integer",
                        "description": "Product ID",
                        "name": "id",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "type": "object",
                            "additionalProperties": true
                        }
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/httputil.ErrorResponse"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/httputil.ErrorResponse"
                        }
                    }
                }
            }
        },
        "/v1/regions": {
            "get": {
                "security": [
                    {
                        "CognitoJWT": []
                    }
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "regions"
                ],
                "summary": "List all regions",
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "type": "object",
                            "additionalProperties": true
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/httputil.ErrorResponse"
                        }
                    }
                }
            },
            "post": {
                "security": [
                    {
                        "CognitoJWT": []
                    }
                ],
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "regions"
                ],
                "summary": "Create a region",
                "parameters": [
                    {
                        "description": "Region to create",
                        "name": "request",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/http.CreateRegionRequest"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "type": "object",
                            "additionalProperties": true
                        }
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/httputil.ErrorResponse"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/httputil.ErrorResponse"
                        }
                    }
                }
            }
        },
        "/v1/regions/{idRegion}": {
            "get": {
                "security": [
                    {
                        "CognitoJWT": []
                    }
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "regions"
                ],
                "summary": "Get a region by ID",
                "parameters": [
                    {
                        "type": "integer",
                        "description": "Region ID",
                        "name": "idRegion",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "type": "object",
                            "additionalProperties": true
                        }
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/httputil.ErrorResponse"
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "schema": {
                            "$ref": "#/definitions/httputil.ErrorResponse"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/httputil.ErrorResponse"
                        }
                    }
                }
            },
            "put": {
                "security": [
                    {
                        "CognitoJWT": []
                    }
                ],
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "regions"
                ],
                "summary": "Update a region",
                "parameters": [
                    {
                        "type": "integer",
                        "description": "Region ID",
                        "name": "idRegion",
                        "in": "path",
                        "required": true
                    },
                    {
                        "description": "Region fields to update",
                        "name": "request",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/http.UpdateRegionRequest"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "type": "object",
                            "additionalProperties": true
                        }
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/httputil.ErrorResponse"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/httputil.ErrorResponse"
                        }
                    }
                }
            },
            "delete": {
                "security": [
                    {
                        "CognitoJWT": []
                    }
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "regions"
                ],
                "summary": "Delete a region",
                "parameters": [
                    {
                        "type": "integer",
                        "description": "Region ID",
                        "name": "idRegion",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "type": "object",
                            "additionalProperties": true
                        }
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/httputil.ErrorResponse"
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "schema": {
                            "$ref": "#/definitions/httputil.ErrorResponse"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/httputil.ErrorResponse"
                        }
                    }
                }
            }
        },
        "/v1/regions/{idRegion}/businesses": {
            "get": {
                "security": [
                    {
                        "CognitoJWT": []
                    }
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "businesses"
                ],
                "summary": "List businesses in a region",
                "parameters": [
                    {
                        "type": "integer",
                        "description": "Region ID",
                        "name": "idRegion",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "type": "object",
                            "additionalProperties": true
                        }
                    },
                    "400": {
                        "description": "Bad Request"
                    },
                    "500": {
                        "description": "Internal Server Error"
                    }
                }
            }
        },
        "/v1/regions/{idRegion}/countries": {
            "get": {
                "security": [
                    {
                        "CognitoJWT": []
                    }
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "regions"
                ],
                "summary": "List countries in a region",
                "parameters": [
                    {
                        "type": "integer",
                        "description": "Region ID",
                        "name": "idRegion",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "type": "object",
                            "additionalProperties": true
                        }
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/httputil.ErrorResponse"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/httputil.ErrorResponse"
                        }
                    }
                }
            }
        },
        "/v1/regions/{idRegion}/requestbusinesses": {
            "get": {
                "security": [
                    {
                        "CognitoJWT": []
                    }
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "request-businesses"
                ],
                "summary": "List request businesses in a region",
                "parameters": [
                    {
                        "type": "integer",
                        "description": "Region ID",
                        "name": "idRegion",
                        "in": "path",
                        "required": true
                    },
                    {
                        "type": "integer",
                        "description": "Filter by approval state (-1 = all)",
                        "name": "aproved",
                        "in": "query"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "type": "object",
                            "additionalProperties": true
                        }
                    },
                    "400": {
                        "description": "Bad Request"
                    },
                    "500": {
                        "description": "Internal Server Error"
                    }
                }
            }
        },
        "/v1/selector-products": {
            "get": {
                "security": [
                    {
                        "CognitoJWT": []
                    }
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "selector-products"
                ],
                "summary": "List all selector products",
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "type": "object",
                            "additionalProperties": true
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/httputil.ErrorResponse"
                        }
                    }
                }
            },
            "post": {
                "security": [
                    {
                        "CognitoJWT": []
                    }
                ],
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "selector-products"
                ],
                "summary": "Create a selector product",
                "parameters": [
                    {
                        "description": "Selector product to create",
                        "name": "request",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/http.CreateSelectorProductRequest"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "type": "object",
                            "additionalProperties": true
                        }
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/httputil.ErrorResponse"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/httputil.ErrorResponse"
                        }
                    }
                }
            }
        },
        "/v1/selector-products/{id}": {
            "get": {
                "security": [
                    {
                        "CognitoJWT": []
                    }
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "selector-products"
                ],
                "summary": "Get a selector product by ID",
                "parameters": [
                    {
                        "type": "integer",
                        "description": "Selector product ID",
                        "name": "id",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "type": "object",
                            "additionalProperties": true
                        }
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/httputil.ErrorResponse"
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "schema": {
                            "$ref": "#/definitions/httputil.ErrorResponse"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/httputil.ErrorResponse"
                        }
                    }
                }
            },
            "put": {
                "security": [
                    {
                        "CognitoJWT": []
                    }
                ],
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "selector-products"
                ],
                "summary": "Update a selector product",
                "parameters": [
                    {
                        "type": "integer",
                        "description": "Selector product ID",
                        "name": "id",
                        "in": "path",
                        "required": true
                    },
                    {
                        "description": "Selector product fields to update",
                        "name": "request",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/http.UpdateSelectorProductRequest"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "type": "object",
                            "additionalProperties": true
                        }
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/httputil.ErrorResponse"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/httputil.ErrorResponse"
                        }
                    }
                }
            }
        },
        "/v1/support/accounting-change-requests": {
            "get": {
                "security": [
                    {
                        "CognitoJWT": []
                    }
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "change-requests"
                ],
                "summary": "List pending change requests (support)",
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "type": "object",
                            "additionalProperties": true
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/httputil.ErrorResponse"
                        }
                    }
                }
            }
        },
        "/v1/support/accounting-change-requests/{id}/approve": {
            "put": {
                "security": [
                    {
                        "CognitoJWT": []
                    }
                ],
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "change-requests"
                ],
                "summary": "Approve a change request (support)",
                "parameters": [
                    {
                        "type": "integer",
                        "description": "Change request ID",
                        "name": "id",
                        "in": "path",
                        "required": true
                    },
                    {
                        "description": "Decision message",
                        "name": "request",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/http.ChangeRequestApproval"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "type": "object",
                            "additionalProperties": true
                        }
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/httputil.ErrorResponse"
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "schema": {
                            "$ref": "#/definitions/httputil.ErrorResponse"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/httputil.ErrorResponse"
                        }
                    }
                }
            }
        },
        "/v1/support/accounting-change-requests/{id}/deny": {
            "put": {
                "security": [
                    {
                        "CognitoJWT": []
                    }
                ],
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "change-requests"
                ],
                "summary": "Deny a change request (support)",
                "parameters": [
                    {
                        "type": "integer",
                        "description": "Change request ID",
                        "name": "id",
                        "in": "path",
                        "required": true
                    },
                    {
                        "description": "Decision message",
                        "name": "request",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/http.ChangeRequestApproval"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "type": "object",
                            "additionalProperties": true
                        }
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/httputil.ErrorResponse"
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "schema": {
                            "$ref": "#/definitions/httputil.ErrorResponse"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/httputil.ErrorResponse"
                        }
                    }
                }
            }
        },
        "/v1/support/generatefreepayment": {
            "post": {
                "security": [
                    {
                        "CognitoJWT": []
                    }
                ],
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "support"
                ],
                "summary": "Generate a free (no-charge) payment for a product (support)",
                "parameters": [
                    {
                        "description": "Free payment details (abo or email required)",
                        "name": "request",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/http.SupportFreePaymentRequest"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "type": "object",
                            "additionalProperties": true
                        }
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/httputil.ErrorResponse"
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "schema": {
                            "$ref": "#/definitions/httputil.ErrorResponse"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/httputil.ErrorResponse"
                        }
                    }
                }
            }
        },
        "/v1/transfer/begin": {
            "post": {
                "security": [
                    {
                        "CognitoJWT": []
                    }
                ],
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "transfers"
                ],
                "summary": "Initiate an access-code transfer to another user",
                "parameters": [
                    {
                        "description": "Access code ID and target email",
                        "name": "request",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/http.BeginTransferRequest"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "type": "object",
                            "additionalProperties": true
                        }
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/httputil.ErrorResponse"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/httputil.ErrorResponse"
                        }
                    }
                }
            }
        },
        "/v1/transfer/confirm": {
            "post": {
                "security": [
                    {
                        "CognitoJWT": []
                    }
                ],
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "transfers"
                ],
                "summary": "Confirm and finalize a pending access-code transfer",
                "parameters": [
                    {
                        "description": "Access code ID, region and country scope",
                        "name": "request",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/http.ConfirmTransferRequest"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "type": "object",
                            "additionalProperties": true
                        }
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/httputil.ErrorResponse"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/httputil.ErrorResponse"
                        }
                    }
                }
            }
        },
        "/v1/transfer/pending": {
            "post": {
                "security": [
                    {
                        "CognitoJWT": []
                    }
                ],
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "transfers"
                ],
                "summary": "List access codes pending transfer for a product",
                "parameters": [
                    {
                        "description": "Product, region and country scope",
                        "name": "request",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/http.PendingTransfer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "type": "object",
                            "additionalProperties": true
                        }
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/httputil.ErrorResponse"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/httputil.ErrorResponse"
                        }
                    }
                }
            }
        },
        "/v1/type-code-products": {
            "get": {
                "security": [
                    {
                        "CognitoJWT": []
                    }
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "type-code-products"
                ],
                "summary": "List all type code products",
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "type": "object",
                            "additionalProperties": true
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/httputil.ErrorResponse"
                        }
                    }
                }
            },
            "post": {
                "security": [
                    {
                        "CognitoJWT": []
                    }
                ],
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "type-code-products"
                ],
                "summary": "Create a type code product",
                "parameters": [
                    {
                        "description": "Type code product to create",
                        "name": "request",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/http.CreateTypeCodeProductRequest"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "type": "object",
                            "additionalProperties": true
                        }
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/httputil.ErrorResponse"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/httputil.ErrorResponse"
                        }
                    }
                }
            }
        },
        "/v1/type-code-products/{id}": {
            "get": {
                "security": [
                    {
                        "CognitoJWT": []
                    }
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "type-code-products"
                ],
                "summary": "Get a type code product by ID",
                "parameters": [
                    {
                        "type": "integer",
                        "description": "Type code product ID",
                        "name": "id",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "type": "object",
                            "additionalProperties": true
                        }
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/httputil.ErrorResponse"
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "schema": {
                            "$ref": "#/definitions/httputil.ErrorResponse"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/httputil.ErrorResponse"
                        }
                    }
                }
            },
            "put": {
                "security": [
                    {
                        "CognitoJWT": []
                    }
                ],
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "type-code-products"
                ],
                "summary": "Update a type code product",
                "parameters": [
                    {
                        "type": "integer",
                        "description": "Type code product ID",
                        "name": "id",
                        "in": "path",
                        "required": true
                    },
                    {
                        "description": "Type code product fields to update",
                        "name": "request",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/http.UpdateTypeCodeProductRequest"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "type": "object",
                            "additionalProperties": true
                        }
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/httputil.ErrorResponse"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/httputil.ErrorResponse"
                        }
                    }
                }
            }
        },
        "/v1/typecodes": {
            "get": {
                "security": [
                    {
                        "CognitoJWT": []
                    }
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "type-codes"
                ],
                "summary": "List all access code types",
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "type": "object",
                            "additionalProperties": true
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/httputil.ErrorResponse"
                        }
                    }
                }
            },
            "post": {
                "security": [
                    {
                        "CognitoJWT": []
                    }
                ],
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "type-codes"
                ],
                "summary": "Create an access code type",
                "parameters": [
                    {
                        "description": "Type code to create",
                        "name": "request",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/http.CreateTypeCodeRequest"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "type": "object",
                            "additionalProperties": true
                        }
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/httputil.ErrorResponse"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/httputil.ErrorResponse"
                        }
                    }
                }
            }
        },
        "/v1/typecodes/{id}": {
            "get": {
                "security": [
                    {
                        "CognitoJWT": []
                    }
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "type-codes"
                ],
                "summary": "Get an access code type by ID",
                "parameters": [
                    {
                        "type": "integer",
                        "description": "Type code ID",
                        "name": "id",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "type": "object",
                            "additionalProperties": true
                        }
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/httputil.ErrorResponse"
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "schema": {
                            "$ref": "#/definitions/httputil.ErrorResponse"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/httputil.ErrorResponse"
                        }
                    }
                }
            },
            "put": {
                "security": [
                    {
                        "CognitoJWT": []
                    }
                ],
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "type-codes"
                ],
                "summary": "Update an access code type",
                "parameters": [
                    {
                        "type": "integer",
                        "description": "Type code ID",
                        "name": "id",
                        "in": "path",
                        "required": true
                    },
                    {
                        "description": "New type code values",
                        "name": "request",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/http.UpdateTypeCodeRequest"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "type": "object",
                            "additionalProperties": true
                        }
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/httputil.ErrorResponse"
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "schema": {
                            "$ref": "#/definitions/httputil.ErrorResponse"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/httputil.ErrorResponse"
                        }
                    }
                }
            },
            "delete": {
                "security": [
                    {
                        "CognitoJWT": []
                    }
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "type-codes"
                ],
                "summary": "Delete an access code type",
                "parameters": [
                    {
                        "type": "integer",
                        "description": "Type code ID",
                        "name": "id",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "type": "object",
                            "additionalProperties": true
                        }
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/httputil.ErrorResponse"
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "schema": {
                            "$ref": "#/definitions/httputil.ErrorResponse"
                        }
                    },
                    "409": {
                        "description": "Conflict",
                        "schema": {
                            "$ref": "#/definitions/httputil.ErrorResponse"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/httputil.ErrorResponse"
                        }
                    }
                }
            }
        },
        "/v1/users/{idUser}/businesses": {
            "get": {
                "security": [
                    {
                        "CognitoJWT": []
                    }
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "businesses"
                ],
                "summary": "List businesses accessible by a user",
                "parameters": [
                    {
                        "type": "string",
                        "description": "User ID (Cognito sub)",
                        "name": "idUser",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "type": "object",
                            "additionalProperties": true
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/httputil.ErrorResponse"
                        }
                    }
                }
            }
        },
        "/v1/users/{idUser}/businesses/{idBusiness}/select": {
            "post": {
                "security": [
                    {
                        "CognitoJWT": []
                    }
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "businesses"
                ],
                "summary": "Select a business and issue a business session token",
                "parameters": [
                    {
                        "type": "string",
                        "description": "User ID (Cognito sub)",
                        "name": "idUser",
                        "in": "path",
                        "required": true
                    },
                    {
                        "type": "integer",
                        "description": "Business ID",
                        "name": "idBusiness",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "type": "object",
                            "additionalProperties": true
                        }
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/httputil.ErrorResponse"
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "schema": {
                            "$ref": "#/definitions/httputil.ErrorResponse"
                        }
                    },
                    "409": {
                        "description": "Conflict",
                        "schema": {
                            "$ref": "#/definitions/httputil.ErrorResponse"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/httputil.ErrorResponse"
                        }
                    }
                }
            }
        },
        "/v1/users/{idUser}/requestbusinesses": {
            "get": {
                "security": [
                    {
                        "CognitoJWT": []
                    }
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "request-businesses"
                ],
                "summary": "List request businesses for a user",
                "parameters": [
                    {
                        "type": "string",
                        "description": "User ID (Cognito sub)",
                        "name": "idUser",
                        "in": "path",
                        "required": true
                    },
                    {
                        "type": "integer",
                        "description": "Filter by approval state (-1 = all)",
                        "name": "aproved",
                        "in": "query"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "type": "object",
                            "additionalProperties": true
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/httputil.ErrorResponse"
                        }
                    }
                }
            },
            "post": {
                "security": [
                    {
                        "CognitoJWT": []
                    }
                ],
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "request-businesses"
                ],
                "summary": "Create a business request (optional accounting info)",
                "parameters": [
                    {
                        "type": "string",
                        "description": "User ID (Cognito sub)",
                        "name": "idUser",
                        "in": "path",
                        "required": true
                    },
                    {
                        "description": "Business request",
                        "name": "request",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/http.CreateRequestBusinessRequest"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "type": "object",
                            "additionalProperties": true
                        }
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/httputil.ErrorResponse"
                        }
                    },
                    "401": {
                        "description": "Unauthorized",
                        "schema": {
                            "$ref": "#/definitions/httputil.ErrorResponse"
                        }
                    },
                    "409": {
                        "description": "Conflict",
                        "schema": {
                            "$ref": "#/definitions/httputil.ErrorResponse"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/httputil.ErrorResponse"
                        }
                    }
                }
            }
        },
        "/v1/users/{idUser}/requestbusinesses/{idRequestBusiness}/promote": {
            "post": {
                "security": [
                    {
                        "CognitoJWT": []
                    }
                ],
                "tags": [
                    "request-businesses"
                ],
                "summary": "Promote a request business into an active business",
                "parameters": [
                    {
                        "type": "string",
                        "description": "User ID (Cognito sub)",
                        "name": "idUser",
                        "in": "path",
                        "required": true
                    },
                    {
                        "type": "integer",
                        "description": "Request business ID",
                        "name": "idRequestBusiness",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "No Content"
                    },
                    "400": {
                        "description": "Bad Request"
                    },
                    "409": {
                        "description": "Conflict",
                        "schema": {
                            "$ref": "#/definitions/httputil.ErrorResponse"
                        }
                    }
                }
            }
        },
        "/v1/zooms": {
            "get": {
                "security": [
                    {
                        "CognitoJWT": []
                    }
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "zoom-events"
                ],
                "summary": "List all zoom events",
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "type": "object",
                            "additionalProperties": true
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/httputil.ErrorResponse"
                        }
                    }
                }
            },
            "post": {
                "security": [
                    {
                        "CognitoJWT": []
                    }
                ],
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "zoom-events"
                ],
                "summary": "Create a zoom event and meeting",
                "parameters": [
                    {
                        "description": "Zoom event to create",
                        "name": "request",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/http.EventRequest"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "type": "object",
                            "additionalProperties": true
                        }
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/httputil.ErrorResponse"
                        }
                    },
                    "409": {
                        "description": "Conflict",
                        "schema": {
                            "$ref": "#/definitions/httputil.ErrorResponse"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/httputil.ErrorResponse"
                        }
                    }
                }
            }
        },
        "/v1/zooms/link/accesscode": {
            "post": {
                "security": [
                    {
                        "CognitoJWT": []
                    }
                ],
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "zoom-links"
                ],
                "summary": "Create a guest link via access code",
                "parameters": [
                    {
                        "description": "Access code guest details",
                        "name": "request",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/http.AccessCodeGuestRequest"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "type": "object",
                            "additionalProperties": true
                        }
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/httputil.ErrorResponse"
                        }
                    },
                    "409": {
                        "description": "Conflict",
                        "schema": {
                            "$ref": "#/definitions/httputil.ErrorResponse"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/httputil.ErrorResponse"
                        }
                    }
                }
            }
        },
        "/v1/zooms/link/guest": {
            "post": {
                "security": [
                    {
                        "CognitoJWT": []
                    }
                ],
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "zoom-links"
                ],
                "summary": "Create a guest invitation for an event",
                "parameters": [
                    {
                        "description": "Guest invitation details",
                        "name": "request",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/http.GuestLinkRequest"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "type": "object",
                            "additionalProperties": true
                        }
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/httputil.ErrorResponse"
                        }
                    },
                    "409": {
                        "description": "Conflict",
                        "schema": {
                            "$ref": "#/definitions/httputil.ErrorResponse"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/httputil.ErrorResponse"
                        }
                    }
                }
            }
        },
        "/v1/zooms/link/myguests": {
            "post": {
                "security": [
                    {
                        "CognitoJWT": []
                    }
                ],
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "zoom-links"
                ],
                "summary": "List guests invited by the authenticated user",
                "parameters": [
                    {
                        "description": "Event, region and country scope",
                        "name": "request",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/http.EventLinkRequest"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "type": "object",
                            "additionalProperties": true
                        }
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/httputil.ErrorResponse"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/httputil.ErrorResponse"
                        }
                    }
                }
            }
        },
        "/v1/zooms/link/user": {
            "post": {
                "security": [
                    {
                        "CognitoJWT": []
                    }
                ],
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "zoom-links"
                ],
                "summary": "Generate a meeting link for the authenticated user",
                "parameters": [
                    {
                        "description": "Event, region and country scope",
                        "name": "request",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/http.EventLinkRequest"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "type": "object",
                            "additionalProperties": true
                        }
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/httputil.ErrorResponse"
                        }
                    },
                    "409": {
                        "description": "Conflict",
                        "schema": {
                            "$ref": "#/definitions/httputil.ErrorResponse"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/httputil.ErrorResponse"
                        }
                    }
                }
            }
        },
        "/v1/zooms/{id}": {
            "get": {
                "security": [
                    {
                        "CognitoJWT": []
                    }
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "zoom-events"
                ],
                "summary": "Get a zoom event by ID",
                "parameters": [
                    {
                        "type": "integer",
                        "description": "Zoom event ID",
                        "name": "id",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "type": "object",
                            "additionalProperties": true
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/httputil.ErrorResponse"
                        }
                    }
                }
            }
        }
    },
    "definitions": {
        "http.AccessCodeGuestRequest": {
            "type": "object",
            "required": [
                "accesscode_id",
                "country_id",
                "email",
                "first_name",
                "last_name",
                "phone",
                "product_id",
                "region_id"
            ],
            "properties": {
                "accesscode_id": {
                    "type": "integer"
                },
                "country_id": {
                    "type": "integer"
                },
                "email": {
                    "type": "string"
                },
                "first_name": {
                    "type": "string"
                },
                "last_name": {
                    "type": "string"
                },
                "phone": {
                    "type": "string"
                },
                "product_id": {
                    "type": "integer"
                },
                "region_id": {
                    "type": "integer"
                }
            }
        },
        "http.AccessCodeInfoRequest": {
            "type": "object",
            "required": [
                "country_id",
                "product_id",
                "region_id"
            ],
            "properties": {
                "country_id": {
                    "type": "integer"
                },
                "product_id": {
                    "type": "integer"
                },
                "region_id": {
                    "type": "integer"
                }
            }
        },
        "http.AccessCodeMyRequest": {
            "type": "object",
            "required": [
                "country_id",
                "region_id"
            ],
            "properties": {
                "country_id": {
                    "type": "integer"
                },
                "region_id": {
                    "type": "integer"
                }
            }
        },
        "http.BeginTransferRequest": {
            "type": "object",
            "required": [
                "accessCodeId",
                "email"
            ],
            "properties": {
                "accessCodeId": {
                    "type": "integer"
                },
                "email": {
                    "type": "string"
                }
            }
        },
        "http.BusinessRegionRequest": {
            "type": "object",
            "required": [
                "country_id",
                "region_id"
            ],
            "properties": {
                "country_id": {
                    "type": "integer"
                },
                "region_id": {
                    "type": "integer"
                }
            }
        },
        "http.ChangeRequestApproval": {
            "type": "object",
            "required": [
                "action",
                "message"
            ],
            "properties": {
                "action": {
                    "type": "string",
                    "enum": [
                        "approve",
                        "deny"
                    ]
                },
                "message": {
                    "type": "string"
                }
            }
        },
        "http.ChangeRequestDTO": {
            "type": "object",
            "required": [
                "entityId",
                "entityType",
                "requestedChanges"
            ],
            "properties": {
                "entityId": {
                    "type": "integer"
                },
                "entityType": {
                    "type": "string",
                    "enum": [
                        "business_company",
                        "business_user"
                    ]
                },
                "requestedChanges": {
                    "type": "object",
                    "additionalProperties": {}
                }
            }
        },
        "http.ConfirmTransferRequest": {
            "type": "object",
            "required": [
                "accessCodeId",
                "country_id",
                "region_id"
            ],
            "properties": {
                "accessCodeId": {
                    "type": "integer"
                },
                "country_id": {
                    "type": "integer"
                },
                "region_id": {
                    "type": "integer"
                }
            }
        },
        "http.ConvertPaymentRequestDTO": {
            "type": "object",
            "required": [
                "motivo",
                "payment_id",
                "target_product_id"
            ],
            "properties": {
                "motivo": {
                    "type": "string",
                    "maxLength": 500
                },
                "payment_id": {
                    "type": "integer"
                },
                "target_product_id": {
                    "type": "integer"
                }
            }
        },
        "http.CreateCityRequest": {
            "type": "object",
            "required": [
                "department_id",
                "name"
            ],
            "properties": {
                "code": {
                    "type": "string",
                    "maxLength": 10
                },
                "department_id": {
                    "type": "integer",
                    "minimum": 1
                },
                "name": {
                    "type": "string",
                    "maxLength": 100
                }
            }
        },
        "http.CreateCountryRequest": {
            "type": "object",
            "required": [
                "code",
                "icon",
                "name",
                "region_id"
            ],
            "properties": {
                "code": {
                    "type": "string",
                    "maxLength": 255
                },
                "icon": {
                    "type": "string",
                    "maxLength": 255
                },
                "name": {
                    "type": "string",
                    "maxLength": 255
                },
                "region_id": {
                    "type": "integer",
                    "minimum": 1
                }
            }
        },
        "http.CreateDepartmentRequest": {
            "type": "object",
            "required": [
                "country_id",
                "name"
            ],
            "properties": {
                "code": {
                    "type": "string",
                    "maxLength": 10
                },
                "country_id": {
                    "type": "integer",
                    "minimum": 1
                },
                "name": {
                    "type": "string",
                    "maxLength": 100
                }
            }
        },
        "http.CreateGroupRequest": {
            "type": "object",
            "required": [
                "key",
                "title"
            ],
            "properties": {
                "image_alt": {
                    "type": "string",
                    "maxLength": 255
                },
                "image_url": {
                    "type": "string",
                    "maxLength": 255
                },
                "key": {
                    "type": "string",
                    "maxLength": 100
                },
                "sort_order": {
                    "type": "integer"
                },
                "title": {
                    "type": "string",
                    "maxLength": 255
                }
            }
        },
        "http.CreateProductRequest": {
            "type": "object",
            "required": [
                "code_internal",
                "min_quantity",
                "name",
                "state",
                "type"
            ],
            "properties": {
                "code_internal": {
                    "type": "string",
                    "maxLength": 100
                },
                "image_url": {
                    "type": "string",
                    "maxLength": 200
                },
                "is_unique": {
                    "type": "integer",
                    "enum": [
                        0,
                        1
                    ]
                },
                "min_quantity": {
                    "type": "integer",
                    "minimum": 1
                },
                "name": {
                    "type": "string",
                    "maxLength": 100
                },
                "return_url": {
                    "type": "string",
                    "maxLength": 200
                },
                "state": {
                    "type": "integer",
                    "enum": [
                        1,
                        2
                    ]
                },
                "type": {
                    "type": "integer",
                    "enum": [
                        1,
                        2,
                        3,
                        4
                    ]
                },
                "type_owner": {
                    "type": "integer",
                    "enum": [
                        1,
                        2
                    ]
                }
            }
        },
        "http.CreateRegionRequest": {
            "type": "object",
            "required": [
                "name"
            ],
            "properties": {
                "display_order": {
                    "type": "integer",
                    "minimum": 0
                },
                "name": {
                    "type": "string",
                    "maxLength": 255
                }
            }
        },
        "http.CreateRequestBusinessRequest": {
            "type": "object",
            "required": [
                "abo",
                "cellphone",
                "countryId",
                "fileUploadId",
                "firstName",
                "lastName",
                "name",
                "parentId",
                "regionId"
            ],
            "properties": {
                "abo": {
                    "type": "string"
                },
                "accountingInfo": {
                    "$ref": "#/definitions/http.RequestBusinessAccountingInfoDTO"
                },
                "cellphone": {
                    "type": "string"
                },
                "countryId": {
                    "type": "integer"
                },
                "fileUploadId": {
                    "type": "integer"
                },
                "firstName": {
                    "type": "string"
                },
                "lastName": {
                    "type": "string"
                },
                "levelId": {
                    "type": "integer"
                },
                "name": {
                    "type": "string"
                },
                "parentId": {
                    "type": "integer"
                },
                "regionId": {
                    "type": "integer"
                },
                "titular": {
                    "type": "boolean"
                }
            }
        },
        "http.CreateSelectorProductRequest": {
            "type": "object"
        },
        "http.CreateTypeCodeProductRequest": {
            "type": "object",
            "required": [
                "product_id",
                "type_code_id"
            ],
            "properties": {
                "product_id": {
                    "type": "integer",
                    "minimum": 1
                },
                "type_code_id": {
                    "type": "integer",
                    "minimum": 1
                }
            }
        },
        "http.CreateTypeCodeRequest": {
            "type": "object",
            "required": [
                "code_internal",
                "name"
            ],
            "properties": {
                "code_internal": {
                    "type": "string",
                    "maxLength": 100
                },
                "name": {
                    "type": "string",
                    "maxLength": 100
                }
            }
        },
        "http.DeliveryTicketCancelRequest": {
            "type": "object",
            "required": [
                "id"
            ],
            "properties": {
                "id": {
                    "type": "integer"
                }
            }
        },
        "http.DeliveryTicketCompleteRequest": {
            "type": "object",
            "required": [
                "id",
                "who"
            ],
            "properties": {
                "id": {
                    "type": "integer"
                },
                "who": {
                    "type": "string"
                }
            }
        },
        "http.EventGuestRequest": {
            "type": "object",
            "required": [
                "country_id",
                "event_id",
                "region_id"
            ],
            "properties": {
                "country_id": {
                    "type": "integer"
                },
                "event_id": {
                    "type": "integer"
                },
                "region_id": {
                    "type": "integer"
                }
            }
        },
        "http.EventLinkRequest": {
            "type": "object",
            "required": [
                "country_id",
                "event_id",
                "region_id"
            ],
            "properties": {
                "country_id": {
                    "type": "integer"
                },
                "event_id": {
                    "type": "integer"
                },
                "prefix": {
                    "type": "string"
                },
                "region_id": {
                    "type": "integer"
                }
            }
        },
        "http.EventRequest": {
            "type": "object",
            "required": [
                "display_name",
                "event_id",
                "product_id"
            ],
            "properties": {
                "day": {
                    "type": "string"
                },
                "display_name": {
                    "type": "string"
                },
                "display_order": {
                    "type": "integer"
                },
                "event_id": {
                    "type": "integer"
                },
                "hour": {
                    "type": "string"
                },
                "product_id": {
                    "type": "integer"
                },
                "show_in_big_data": {
                    "type": "integer"
                },
                "type_code_id": {
                    "type": "integer"
                }
            }
        },
        "http.GuestLinkRequest": {
            "type": "object",
            "required": [
                "country_id",
                "email",
                "event_id",
                "first_name",
                "last_name",
                "phone",
                "region_id"
            ],
            "properties": {
                "country_id": {
                    "type": "integer"
                },
                "email": {
                    "type": "string"
                },
                "event_id": {
                    "type": "integer"
                },
                "first_name": {
                    "type": "string"
                },
                "last_name": {
                    "type": "string"
                },
                "phone": {
                    "type": "string"
                },
                "region_id": {
                    "type": "integer"
                }
            }
        },
        "http.MembershipInfoRequest": {
            "type": "object",
            "required": [
                "country_id",
                "product_id",
                "region_id"
            ],
            "properties": {
                "country_id": {
                    "type": "integer"
                },
                "product_id": {
                    "type": "integer"
                },
                "region_id": {
                    "type": "integer"
                }
            }
        },
        "http.NestedDimensionRequest": {
            "type": "object",
            "required": [
                "key",
                "label"
            ],
            "properties": {
                "key": {
                    "type": "string",
                    "maxLength": 100
                },
                "label": {
                    "type": "string",
                    "maxLength": 255
                },
                "options": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/http.NestedOptionRequest"
                    }
                },
                "sort_order": {
                    "type": "integer"
                }
            }
        },
        "http.NestedOptionRequest": {
            "type": "object",
            "required": [
                "label",
                "value"
            ],
            "properties": {
                "label": {
                    "type": "string",
                    "maxLength": 255
                },
                "sort_order": {
                    "type": "integer"
                },
                "value": {
                    "type": "string",
                    "maxLength": 100
                }
            }
        },
        "http.NestedQuantityRuleRequest": {
            "type": "object",
            "required": [
                "scope_key",
                "scope_type"
            ],
            "properties": {
                "quantity_default": {
                    "type": "integer"
                },
                "quantity_options": {
                    "type": "array",
                    "items": {
                        "type": "integer"
                    }
                },
                "scope_key": {
                    "type": "string"
                },
                "scope_type": {
                    "type": "string"
                }
            }
        },
        "http.NestedResolutionRequest": {
            "type": "object",
            "required": [
                "product_id",
                "resolution_key"
            ],
            "properties": {
                "active": {
                    "type": "boolean"
                },
                "image_alt": {
                    "type": "string",
                    "maxLength": 255
                },
                "image_url": {
                    "type": "string",
                    "maxLength": 255
                },
                "info": {
                    "type": "string",
                    "maxLength": 500
                },
                "product_id": {
                    "type": "integer"
                },
                "resolution_key": {
                    "type": "string",
                    "maxLength": 255
                }
            }
        },
        "http.PaymentProductRequest": {
            "type": "object",
            "required": [
                "country_id",
                "product_id",
                "region_id"
            ],
            "properties": {
                "country_id": {
                    "type": "integer"
                },
                "product_id": {
                    "type": "integer"
                },
                "quantity": {
                    "type": "integer"
                },
                "region_id": {
                    "type": "integer"
                }
            }
        },
        "http.PendingTransfer": {
            "type": "object",
            "properties": {
                "country_id": {
                    "type": "integer"
                },
                "product_id": {
                    "type": "integer"
                },
                "region_id": {
                    "type": "integer"
                }
            }
        },
        "http.RequestBusinessAccountingInfoDTO": {
            "type": "object",
            "required": [
                "cityId",
                "fullLegalName",
                "identityDocumentTypeId",
                "identityNumber",
                "residenceAddress"
            ],
            "properties": {
                "cityId": {
                    "type": "integer"
                },
                "fullLegalName": {
                    "type": "string"
                },
                "identityDocumentTypeId": {
                    "type": "integer"
                },
                "identityNumber": {
                    "type": "string"
                },
                "identityVerificationDigit": {
                    "type": "string"
                },
                "postalCode": {
                    "type": "string"
                },
                "residenceAddress": {
                    "type": "string"
                }
            }
        },
        "http.SaveConfigRequest": {
            "type": "object",
            "properties": {
                "dimensions": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/http.NestedDimensionRequest"
                    }
                },
                "quantity_rules": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/http.NestedQuantityRuleRequest"
                    }
                },
                "resolutions": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/http.NestedResolutionRequest"
                    }
                }
            }
        },
        "http.SetBusinessJoinedAtRequest": {
            "type": "object",
            "required": [
                "abo",
                "joined_at"
            ],
            "properties": {
                "abo": {
                    "type": "string"
                },
                "joined_at": {
                    "type": "string"
                }
            }
        },
        "http.SetGroupActiveRequest": {
            "type": "object",
            "properties": {
                "active": {
                    "type": "boolean"
                }
            }
        },
        "http.SupportFreePaymentRequest": {
            "type": "object",
            "required": [
                "product_id",
                "quantity",
                "reference"
            ],
            "properties": {
                "abo": {
                    "type": "string"
                },
                "email": {
                    "type": "string"
                },
                "product_id": {
                    "type": "integer"
                },
                "quantity": {
                    "type": "integer"
                },
                "reference": {
                    "type": "string"
                }
            }
        },
        "http.UpdateCityRequest": {
            "type": "object",
            "required": [
                "department_id",
                "name"
            ],
            "properties": {
                "code": {
                    "type": "string",
                    "maxLength": 10
                },
                "department_id": {
                    "type": "integer",
                    "minimum": 1
                },
                "name": {
                    "type": "string",
                    "maxLength": 100
                }
            }
        },
        "http.UpdateCountryRequest": {
            "type": "object",
            "required": [
                "code",
                "icon",
                "name",
                "region_id"
            ],
            "properties": {
                "code": {
                    "type": "string",
                    "maxLength": 255
                },
                "icon": {
                    "type": "string",
                    "maxLength": 255
                },
                "name": {
                    "type": "string",
                    "maxLength": 255
                },
                "region_id": {
                    "type": "integer",
                    "minimum": 1
                }
            }
        },
        "http.UpdateDepartmentRequest": {
            "type": "object",
            "required": [
                "country_id",
                "name"
            ],
            "properties": {
                "code": {
                    "type": "string",
                    "maxLength": 10
                },
                "country_id": {
                    "type": "integer",
                    "minimum": 1
                },
                "name": {
                    "type": "string",
                    "maxLength": 100
                }
            }
        },
        "http.UpdateGroupRequest": {
            "type": "object",
            "required": [
                "title"
            ],
            "properties": {
                "image_alt": {
                    "type": "string",
                    "maxLength": 255
                },
                "image_url": {
                    "type": "string",
                    "maxLength": 255
                },
                "sort_order": {
                    "type": "integer"
                },
                "title": {
                    "type": "string",
                    "maxLength": 255
                }
            }
        },
        "http.UpdateProductRequest": {
            "type": "object",
            "required": [
                "code_internal",
                "min_quantity",
                "name",
                "state",
                "type"
            ],
            "properties": {
                "code_internal": {
                    "type": "string",
                    "maxLength": 100
                },
                "image_url": {
                    "type": "string",
                    "maxLength": 200
                },
                "is_unique": {
                    "type": "integer",
                    "enum": [
                        0,
                        1
                    ]
                },
                "min_quantity": {
                    "type": "integer",
                    "minimum": 1
                },
                "name": {
                    "type": "string",
                    "maxLength": 100
                },
                "return_url": {
                    "type": "string",
                    "maxLength": 200
                },
                "state": {
                    "type": "integer",
                    "enum": [
                        1,
                        2
                    ]
                },
                "type": {
                    "type": "integer",
                    "enum": [
                        1,
                        2,
                        3,
                        4
                    ]
                },
                "type_owner": {
                    "type": "integer",
                    "enum": [
                        1,
                        2
                    ]
                }
            }
        },
        "http.UpdateRegionRequest": {
            "type": "object",
            "required": [
                "name"
            ],
            "properties": {
                "display_order": {
                    "type": "integer",
                    "minimum": 0
                },
                "name": {
                    "type": "string",
                    "maxLength": 255
                }
            }
        },
        "http.UpdateSelectorProductRequest": {
            "type": "object"
        },
        "http.UpdateTypeCodeProductRequest": {
            "type": "object",
            "required": [
                "product_id",
                "type_code_id"
            ],
            "properties": {
                "product_id": {
                    "type": "integer",
                    "minimum": 1
                },
                "type_code_id": {
                    "type": "integer",
                    "minimum": 1
                }
            }
        },
        "http.UpdateTypeCodeRequest": {
            "type": "object",
            "required": [
                "code_internal",
                "name"
            ],
            "properties": {
                "code_internal": {
                    "type": "string",
                    "maxLength": 100
                },
                "name": {
                    "type": "string",
                    "maxLength": 100
                }
            }
        },
        "http.WebhookMessageResponse": {
            "type": "object",
            "properties": {
                "message": {
                    "type": "string"
                }
            }
        },
        "http.createTopicRequest": {
            "type": "object",
            "required": [
                "context_type",
                "file_extensions_allowed",
                "max_size_bytes",
                "name"
            ],
            "properties": {
                "context_type": {
                    "type": "string",
                    "enum": [
                        "user",
                        "business",
                        "business_user"
                    ]
                },
                "description": {
                    "type": "string",
                    "maxLength": 500
                },
                "file_extensions_allowed": {
                    "type": "array",
                    "minItems": 1,
                    "items": {
                        "type": "string"
                    }
                },
                "max_size_bytes": {
                    "type": "integer",
                    "maximum": 104857600,
                    "minimum": 1
                },
                "name": {
                    "type": "string",
                    "maxLength": 100
                }
            }
        },
        "http.presignUploadRequest": {
            "type": "object",
            "required": [
                "content_type",
                "file_size_bytes",
                "filename",
                "topic_id"
            ],
            "properties": {
                "content_type": {
                    "type": "string",
                    "maxLength": 255
                },
                "file_size_bytes": {
                    "type": "integer",
                    "minimum": 1
                },
                "filename": {
                    "type": "string",
                    "maxLength": 500
                },
                "topic_id": {
                    "type": "integer",
                    "minimum": 1
                }
            }
        },
        "http.s3WebhookBucket": {
            "type": "object",
            "properties": {
                "name": {
                    "type": "string"
                }
            }
        },
        "http.s3WebhookDetail": {
            "type": "object",
            "properties": {
                "bucket": {
                    "$ref": "#/definitions/http.s3WebhookBucket"
                },
                "object": {
                    "$ref": "#/definitions/http.s3WebhookObject"
                }
            }
        },
        "http.s3WebhookObject": {
            "type": "object",
            "properties": {
                "key": {
                    "type": "string"
                },
                "size": {
                    "type": "integer"
                },
                "userMetadata": {
                    "type": "object",
                    "additionalProperties": {
                        "type": "string"
                    }
                }
            }
        },
        "http.s3WebhookPayload": {
            "type": "object",
            "properties": {
                "Records": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/http.s3WebhookRecord"
                    }
                }
            }
        },
        "http.s3WebhookRecord": {
            "type": "object",
            "properties": {
                "eventName": {
                    "type": "string"
                },
                "eventSource": {
                    "type": "string"
                },
                "s3": {
                    "$ref": "#/definitions/http.s3WebhookDetail"
                }
            }
        },
        "http.updateTopicRequest": {
            "type": "object",
            "required": [
                "context_type",
                "file_extensions_allowed",
                "max_size_bytes",
                "name"
            ],
            "properties": {
                "context_type": {
                    "type": "string",
                    "enum": [
                        "user",
                        "business",
                        "business_user"
                    ]
                },
                "description": {
                    "type": "string",
                    "maxLength": 500
                },
                "file_extensions_allowed": {
                    "type": "array",
                    "minItems": 1,
                    "items": {
                        "type": "string"
                    }
                },
                "max_size_bytes": {
                    "type": "integer",
                    "maximum": 104857600,
                    "minimum": 1
                },
                "name": {
                    "type": "string",
                    "maxLength": 100
                }
            }
        },
        "httputil.ErrorResponse": {
            "type": "object",
            "properties": {
                "code": {
                    "type": "string"
                },
                "errors": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/httputil.ValidationErrorResponse"
                    }
                },
                "message": {
                    "type": "string"
                }
            }
        },
        "httputil.ValidationErrorResponse": {
            "type": "object",
            "properties": {
                "field": {
                    "type": "string"
                },
                "message": {
                    "type": "string"
                }
            }
        }
    },
    "securityDefinitions": {
        "BearerAuth": {
            "description": "Business session token (HS256, BizPrivateKey) used by the /v1/biz routes. Type \"Bearer\" followed by a space and the biz JWT (also accepted via the biz_access_token cookie).",
            "type": "apiKey",
            "name": "Authorization",
            "in": "header"
        },
        "CognitoJWT": {
            "description": "Type \"Bearer\" followed by a space and Cognito JWT token.",
            "type": "apiKey",
            "name": "Authorization",
            "in": "header"
        }
    }
}