{
    "openapi": "3.1.0",
    "info": {
        "title": "Allegro REST API",
        "version": "1.0",
        "description": "Endpoints that use authenticated user tokens."
    },
    "servers": [
        {
            "url": "https://{tenant}.allegrocdp.com/api/v1",
            "variables": {
                "tenant": {
                    "default": "example",
                    "description": "The tenant slug."
                }
            }
        }
    ],
    "security": [
        {
            "http": []
        }
    ],
    "paths": {
        "/analytics/schema": {
            "get": {
                "operationId": "analyticsSchema.show",
                "description": "Lists what analytics can be asked for: event types seen in the range (with event, session\nand reader counts, narrowed by `where[]` filters), plus the measures, dimensions, filter\noperators, report resolutions and preset ranges, and the tenant's properties and products.",
                "summary": "Get Analytics Schema",
                "tags": [
                    "Analytics",
                    "AnalyticsSchema"
                ],
                "parameters": [
                    {
                        "name": "range",
                        "in": "query",
                        "schema": {
                            "type": [
                                "string",
                                "null"
                            ],
                            "enum": [
                                "7d",
                                "30d",
                                "90d",
                                "1y",
                                null
                            ]
                        }
                    },
                    {
                        "name": "start",
                        "in": "query",
                        "schema": {
                            "type": [
                                "string",
                                "null"
                            ],
                            "format": "date"
                        }
                    },
                    {
                        "name": "end",
                        "in": "query",
                        "schema": {
                            "type": [
                                "string",
                                "null"
                            ],
                            "format": "date"
                        }
                    },
                    {
                        "name": "property",
                        "in": "query",
                        "schema": {
                            "type": [
                                "string",
                                "null"
                            ],
                            "enum": [
                                "",
                                null
                            ]
                        }
                    },
                    {
                        "name": "product",
                        "in": "query",
                        "schema": {
                            "type": [
                                "string",
                                "null"
                            ]
                        }
                    },
                    {
                        "name": "include",
                        "in": "query",
                        "schema": {
                            "type": [
                                "string",
                                "null"
                            ]
                        }
                    },
                    {
                        "name": "limit",
                        "in": "query",
                        "schema": {
                            "type": [
                                "integer",
                                "null"
                            ],
                            "minimum": 1,
                            "maximum": 50
                        }
                    },
                    {
                        "name": "where",
                        "in": "query",
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "`AnalyticsResource`",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#/components/schemas/AnalyticsResource"
                                        },
                                        "meta": {
                                            "type": "object",
                                            "properties": {
                                                "range": {
                                                    "type": "object",
                                                    "properties": {
                                                        "key": {
                                                            "type": "string"
                                                        },
                                                        "start": {
                                                            "type": "string"
                                                        },
                                                        "end": {
                                                            "type": "string"
                                                        },
                                                        "days": {
                                                            "type": "integer"
                                                        },
                                                        "timezone": {
                                                            "type": "string"
                                                        }
                                                    },
                                                    "required": [
                                                        "key",
                                                        "start",
                                                        "end",
                                                        "days",
                                                        "timezone"
                                                    ]
                                                },
                                                "previous": {
                                                    "type": "object",
                                                    "properties": {
                                                        "start": {
                                                            "type": "string"
                                                        },
                                                        "end": {
                                                            "type": "string"
                                                        }
                                                    },
                                                    "required": [
                                                        "start",
                                                        "end"
                                                    ]
                                                },
                                                "property": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "product": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "generated_at": {
                                                    "type": "string"
                                                }
                                            },
                                            "required": [
                                                "range",
                                                "previous",
                                                "property",
                                                "product",
                                                "generated_at"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "data",
                                        "meta"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationException"
                    }
                }
            }
        },
        "/analytics/explore": {
            "get": {
                "operationId": "analyticsExplore.show",
                "description": "Returns the Events explorer's chart and breakdown: event counts per type (up to six types,\nbucketed by hour, day or week to suit the range) and event counts by the `by` dimension\n(top 10, default `referrer`). Narrow with comma-separated `types` and `where[]` filters\n(`where[0][dimension]`, `where[0][operator]`, `where[0][value]`).",
                "summary": "Explore Events",
                "tags": [
                    "Analytics",
                    "AnalyticsExplore"
                ],
                "parameters": [
                    {
                        "name": "range",
                        "in": "query",
                        "schema": {
                            "type": [
                                "string",
                                "null"
                            ],
                            "enum": [
                                "7d",
                                "30d",
                                "90d",
                                "1y",
                                null
                            ]
                        }
                    },
                    {
                        "name": "start",
                        "in": "query",
                        "schema": {
                            "type": [
                                "string",
                                "null"
                            ],
                            "format": "date"
                        }
                    },
                    {
                        "name": "end",
                        "in": "query",
                        "schema": {
                            "type": [
                                "string",
                                "null"
                            ],
                            "format": "date"
                        }
                    },
                    {
                        "name": "property",
                        "in": "query",
                        "schema": {
                            "type": [
                                "string",
                                "null"
                            ],
                            "enum": [
                                "",
                                null
                            ]
                        }
                    },
                    {
                        "name": "product",
                        "in": "query",
                        "schema": {
                            "type": [
                                "string",
                                "null"
                            ]
                        }
                    },
                    {
                        "name": "include",
                        "in": "query",
                        "schema": {
                            "type": [
                                "string",
                                "null"
                            ]
                        }
                    },
                    {
                        "name": "limit",
                        "in": "query",
                        "schema": {
                            "type": [
                                "integer",
                                "null"
                            ],
                            "minimum": 1,
                            "maximum": 50
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "`AnalyticsResource`",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#/components/schemas/AnalyticsResource"
                                        },
                                        "meta": {
                                            "type": "object",
                                            "properties": {
                                                "range": {
                                                    "type": "object",
                                                    "properties": {
                                                        "key": {
                                                            "type": "string"
                                                        },
                                                        "start": {
                                                            "type": "string"
                                                        },
                                                        "end": {
                                                            "type": "string"
                                                        },
                                                        "days": {
                                                            "type": "integer"
                                                        },
                                                        "timezone": {
                                                            "type": "string"
                                                        }
                                                    },
                                                    "required": [
                                                        "key",
                                                        "start",
                                                        "end",
                                                        "days",
                                                        "timezone"
                                                    ]
                                                },
                                                "previous": {
                                                    "type": "object",
                                                    "properties": {
                                                        "start": {
                                                            "type": "string"
                                                        },
                                                        "end": {
                                                            "type": "string"
                                                        }
                                                    },
                                                    "required": [
                                                        "start",
                                                        "end"
                                                    ]
                                                },
                                                "property": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "product": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "generated_at": {
                                                    "type": "string"
                                                }
                                            },
                                            "required": [
                                                "range",
                                                "previous",
                                                "property",
                                                "product",
                                                "generated_at"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "data",
                                        "meta"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationException"
                    }
                }
            }
        },
        "/analytics/events": {
            "get": {
                "operationId": "analyticsEventStream.index",
                "description": "Returns the explorer's event stream, newest first, 50 per page. Pass `next_cursor` back as\n`before` for the next page. Narrow with `types`, `where[]` filters, or a `session` UUID.",
                "summary": "List Analytics Events",
                "tags": [
                    "Analytics",
                    "AnalyticsEventStream"
                ],
                "parameters": [
                    {
                        "name": "range",
                        "in": "query",
                        "schema": {
                            "type": [
                                "string",
                                "null"
                            ],
                            "enum": [
                                "7d",
                                "30d",
                                "90d",
                                "1y",
                                null
                            ]
                        }
                    },
                    {
                        "name": "start",
                        "in": "query",
                        "schema": {
                            "type": [
                                "string",
                                "null"
                            ],
                            "format": "date"
                        }
                    },
                    {
                        "name": "end",
                        "in": "query",
                        "schema": {
                            "type": [
                                "string",
                                "null"
                            ],
                            "format": "date"
                        }
                    },
                    {
                        "name": "property",
                        "in": "query",
                        "schema": {
                            "type": [
                                "string",
                                "null"
                            ],
                            "enum": [
                                "",
                                null
                            ]
                        }
                    },
                    {
                        "name": "product",
                        "in": "query",
                        "schema": {
                            "type": [
                                "string",
                                "null"
                            ]
                        }
                    },
                    {
                        "name": "include",
                        "in": "query",
                        "schema": {
                            "type": [
                                "string",
                                "null"
                            ]
                        }
                    },
                    {
                        "name": "limit",
                        "in": "query",
                        "schema": {
                            "type": [
                                "integer",
                                "null"
                            ],
                            "minimum": 1,
                            "maximum": 50
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "`AnalyticsResource`",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#/components/schemas/AnalyticsResource"
                                        },
                                        "meta": {
                                            "type": "object",
                                            "properties": {
                                                "range": {
                                                    "type": "object",
                                                    "properties": {
                                                        "key": {
                                                            "type": "string"
                                                        },
                                                        "start": {
                                                            "type": "string"
                                                        },
                                                        "end": {
                                                            "type": "string"
                                                        },
                                                        "days": {
                                                            "type": "integer"
                                                        },
                                                        "timezone": {
                                                            "type": "string"
                                                        }
                                                    },
                                                    "required": [
                                                        "key",
                                                        "start",
                                                        "end",
                                                        "days",
                                                        "timezone"
                                                    ]
                                                },
                                                "previous": {
                                                    "type": "object",
                                                    "properties": {
                                                        "start": {
                                                            "type": "string"
                                                        },
                                                        "end": {
                                                            "type": "string"
                                                        }
                                                    },
                                                    "required": [
                                                        "start",
                                                        "end"
                                                    ]
                                                },
                                                "property": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "product": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "generated_at": {
                                                    "type": "string"
                                                }
                                            },
                                            "required": [
                                                "range",
                                                "previous",
                                                "property",
                                                "product",
                                                "generated_at"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "data",
                                        "meta"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationException"
                    }
                }
            }
        },
        "/analytics/query": {
            "post": {
                "operationId": "analyticsQuery.store",
                "description": "Runs a report definition, the same shape saved reports store, and returns its totals and\nbucketed series. This is read-only; it is a POST only because the definition is a nested\nbody. The definition's preset `range` is used unless `start` and `end` are given.",
                "summary": "Run Analytics Query",
                "tags": [
                    "Analytics",
                    "AnalyticsQuery"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/AnalyticsQueryRequest"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "`AnalyticsResource`",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#/components/schemas/AnalyticsResource"
                                        },
                                        "meta": {
                                            "type": "object",
                                            "properties": {
                                                "range": {
                                                    "type": "object",
                                                    "properties": {
                                                        "key": {
                                                            "type": "string"
                                                        },
                                                        "start": {
                                                            "type": "string"
                                                        },
                                                        "end": {
                                                            "type": "string"
                                                        },
                                                        "days": {
                                                            "type": "integer"
                                                        },
                                                        "timezone": {
                                                            "type": "string"
                                                        }
                                                    },
                                                    "required": [
                                                        "key",
                                                        "start",
                                                        "end",
                                                        "days",
                                                        "timezone"
                                                    ]
                                                },
                                                "previous": {
                                                    "type": "object",
                                                    "properties": {
                                                        "start": {
                                                            "type": "string"
                                                        },
                                                        "end": {
                                                            "type": "string"
                                                        }
                                                    },
                                                    "required": [
                                                        "start",
                                                        "end"
                                                    ]
                                                },
                                                "property": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "product": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "generated_at": {
                                                    "type": "string"
                                                }
                                            },
                                            "required": [
                                                "range",
                                                "previous",
                                                "property",
                                                "product",
                                                "generated_at"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "data",
                                        "meta"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationException"
                    }
                }
            }
        },
        "/analytics/realtime": {
            "get": {
                "operationId": "analyticsRealtime.show",
                "description": "Returns the Pulse: `counts` (readers now, last-hour page views and sign-ups, and last-hour\ncounts per event type against the same hour a week ago), `minutes` (page views and sessions\nfor each of the last 60 minutes), `sources` (last-hour channels and referrers) and `spiking`\n(stories well above their typical traffic). Narrow with `include`, e.g. `include=counts,spiking`.\nThe date range filters don't apply; realtime data always covers the last hour.",
                "summary": "Get Realtime Analytics",
                "tags": [
                    "Analytics",
                    "AnalyticsRealtime"
                ],
                "parameters": [
                    {
                        "name": "range",
                        "in": "query",
                        "schema": {
                            "type": [
                                "string",
                                "null"
                            ],
                            "enum": [
                                "7d",
                                "30d",
                                "90d",
                                "1y",
                                null
                            ]
                        }
                    },
                    {
                        "name": "start",
                        "in": "query",
                        "schema": {
                            "type": [
                                "string",
                                "null"
                            ],
                            "format": "date"
                        }
                    },
                    {
                        "name": "end",
                        "in": "query",
                        "schema": {
                            "type": [
                                "string",
                                "null"
                            ],
                            "format": "date"
                        }
                    },
                    {
                        "name": "property",
                        "in": "query",
                        "schema": {
                            "type": [
                                "string",
                                "null"
                            ],
                            "enum": [
                                "",
                                null
                            ]
                        }
                    },
                    {
                        "name": "product",
                        "in": "query",
                        "schema": {
                            "type": [
                                "string",
                                "null"
                            ]
                        }
                    },
                    {
                        "name": "include",
                        "in": "query",
                        "schema": {
                            "type": [
                                "string",
                                "null"
                            ]
                        }
                    },
                    {
                        "name": "limit",
                        "in": "query",
                        "schema": {
                            "type": [
                                "integer",
                                "null"
                            ],
                            "minimum": 1,
                            "maximum": 50
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "`AnalyticsResource`",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#/components/schemas/AnalyticsResource"
                                        },
                                        "meta": {
                                            "type": "object",
                                            "properties": {
                                                "range": {
                                                    "type": "object",
                                                    "properties": {
                                                        "key": {
                                                            "type": "string"
                                                        },
                                                        "start": {
                                                            "type": "string"
                                                        },
                                                        "end": {
                                                            "type": "string"
                                                        },
                                                        "days": {
                                                            "type": "integer"
                                                        },
                                                        "timezone": {
                                                            "type": "string"
                                                        }
                                                    },
                                                    "required": [
                                                        "key",
                                                        "start",
                                                        "end",
                                                        "days",
                                                        "timezone"
                                                    ]
                                                },
                                                "previous": {
                                                    "type": "object",
                                                    "properties": {
                                                        "start": {
                                                            "type": "string"
                                                        },
                                                        "end": {
                                                            "type": "string"
                                                        }
                                                    },
                                                    "required": [
                                                        "start",
                                                        "end"
                                                    ]
                                                },
                                                "property": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "product": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "generated_at": {
                                                    "type": "string"
                                                }
                                            },
                                            "required": [
                                                "range",
                                                "previous",
                                                "property",
                                                "product",
                                                "generated_at"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "data",
                                        "meta"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationException"
                    }
                }
            }
        },
        "/analytics/traffic": {
            "get": {
                "operationId": "analyticsView.traffic",
                "description": "Returns the page views view: `overview` (headline stats against the previous period, with a\npage view and session series), `reading_hours` (a day by hour-of-day grid of the last 28\ndays), `sections` and `top_stories` (top `limit` by engaged time, default 10, max 50).",
                "summary": "Get Traffic Analytics",
                "tags": [
                    "Analytics",
                    "AnalyticsView"
                ],
                "parameters": [
                    {
                        "name": "range",
                        "in": "query",
                        "schema": {
                            "type": [
                                "string",
                                "null"
                            ],
                            "enum": [
                                "7d",
                                "30d",
                                "90d",
                                "1y",
                                null
                            ]
                        }
                    },
                    {
                        "name": "start",
                        "in": "query",
                        "schema": {
                            "type": [
                                "string",
                                "null"
                            ],
                            "format": "date"
                        }
                    },
                    {
                        "name": "end",
                        "in": "query",
                        "schema": {
                            "type": [
                                "string",
                                "null"
                            ],
                            "format": "date"
                        }
                    },
                    {
                        "name": "property",
                        "in": "query",
                        "schema": {
                            "type": [
                                "string",
                                "null"
                            ],
                            "enum": [
                                "",
                                null
                            ]
                        }
                    },
                    {
                        "name": "product",
                        "in": "query",
                        "schema": {
                            "type": [
                                "string",
                                "null"
                            ]
                        }
                    },
                    {
                        "name": "include",
                        "in": "query",
                        "schema": {
                            "type": [
                                "string",
                                "null"
                            ]
                        }
                    },
                    {
                        "name": "limit",
                        "in": "query",
                        "schema": {
                            "type": [
                                "integer",
                                "null"
                            ],
                            "minimum": 1,
                            "maximum": 50
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "`AnalyticsResource`",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#/components/schemas/AnalyticsResource"
                                        },
                                        "meta": {
                                            "type": "object",
                                            "properties": {
                                                "range": {
                                                    "type": "object",
                                                    "properties": {
                                                        "key": {
                                                            "type": "string"
                                                        },
                                                        "start": {
                                                            "type": "string"
                                                        },
                                                        "end": {
                                                            "type": "string"
                                                        },
                                                        "days": {
                                                            "type": "integer"
                                                        },
                                                        "timezone": {
                                                            "type": "string"
                                                        }
                                                    },
                                                    "required": [
                                                        "key",
                                                        "start",
                                                        "end",
                                                        "days",
                                                        "timezone"
                                                    ]
                                                },
                                                "previous": {
                                                    "type": "object",
                                                    "properties": {
                                                        "start": {
                                                            "type": "string"
                                                        },
                                                        "end": {
                                                            "type": "string"
                                                        }
                                                    },
                                                    "required": [
                                                        "start",
                                                        "end"
                                                    ]
                                                },
                                                "property": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "product": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "generated_at": {
                                                    "type": "string"
                                                }
                                            },
                                            "required": [
                                                "range",
                                                "previous",
                                                "property",
                                                "product",
                                                "generated_at"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "data",
                                        "meta"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationException"
                    }
                }
            }
        },
        "/analytics/time-on-site": {
            "get": {
                "operationId": "analyticsView.timeOnSite",
                "description": "Returns `summary` (headline stats, a daily engaged time series and the session length distribution) and\n`top_stories` (top `limit` by engaged time, default 10, max 50).",
                "summary": "Get Time on Site Analytics",
                "tags": [
                    "Analytics",
                    "AnalyticsView"
                ],
                "parameters": [
                    {
                        "name": "range",
                        "in": "query",
                        "schema": {
                            "type": [
                                "string",
                                "null"
                            ],
                            "enum": [
                                "7d",
                                "30d",
                                "90d",
                                "1y",
                                null
                            ]
                        }
                    },
                    {
                        "name": "start",
                        "in": "query",
                        "schema": {
                            "type": [
                                "string",
                                "null"
                            ],
                            "format": "date"
                        }
                    },
                    {
                        "name": "end",
                        "in": "query",
                        "schema": {
                            "type": [
                                "string",
                                "null"
                            ],
                            "format": "date"
                        }
                    },
                    {
                        "name": "property",
                        "in": "query",
                        "schema": {
                            "type": [
                                "string",
                                "null"
                            ],
                            "enum": [
                                "",
                                null
                            ]
                        }
                    },
                    {
                        "name": "product",
                        "in": "query",
                        "schema": {
                            "type": [
                                "string",
                                "null"
                            ]
                        }
                    },
                    {
                        "name": "include",
                        "in": "query",
                        "schema": {
                            "type": [
                                "string",
                                "null"
                            ]
                        }
                    },
                    {
                        "name": "limit",
                        "in": "query",
                        "schema": {
                            "type": [
                                "integer",
                                "null"
                            ],
                            "minimum": 1,
                            "maximum": 50
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "`AnalyticsResource`",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#/components/schemas/AnalyticsResource"
                                        },
                                        "meta": {
                                            "type": "object",
                                            "properties": {
                                                "range": {
                                                    "type": "object",
                                                    "properties": {
                                                        "key": {
                                                            "type": "string"
                                                        },
                                                        "start": {
                                                            "type": "string"
                                                        },
                                                        "end": {
                                                            "type": "string"
                                                        },
                                                        "days": {
                                                            "type": "integer"
                                                        },
                                                        "timezone": {
                                                            "type": "string"
                                                        }
                                                    },
                                                    "required": [
                                                        "key",
                                                        "start",
                                                        "end",
                                                        "days",
                                                        "timezone"
                                                    ]
                                                },
                                                "previous": {
                                                    "type": "object",
                                                    "properties": {
                                                        "start": {
                                                            "type": "string"
                                                        },
                                                        "end": {
                                                            "type": "string"
                                                        }
                                                    },
                                                    "required": [
                                                        "start",
                                                        "end"
                                                    ]
                                                },
                                                "property": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "product": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "generated_at": {
                                                    "type": "string"
                                                }
                                            },
                                            "required": [
                                                "range",
                                                "previous",
                                                "property",
                                                "product",
                                                "generated_at"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "data",
                                        "meta"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationException"
                    }
                }
            }
        },
        "/analytics/gates": {
            "get": {
                "operationId": "analyticsView.gates",
                "description": "Returns `summary` (headline stats, a series by gate type, and gates by type and article) and\n`latest` (the 10 most recent gate views).",
                "summary": "Get Content Gate Analytics",
                "tags": [
                    "Analytics",
                    "AnalyticsView"
                ],
                "parameters": [
                    {
                        "name": "range",
                        "in": "query",
                        "schema": {
                            "type": [
                                "string",
                                "null"
                            ],
                            "enum": [
                                "7d",
                                "30d",
                                "90d",
                                "1y",
                                null
                            ]
                        }
                    },
                    {
                        "name": "start",
                        "in": "query",
                        "schema": {
                            "type": [
                                "string",
                                "null"
                            ],
                            "format": "date"
                        }
                    },
                    {
                        "name": "end",
                        "in": "query",
                        "schema": {
                            "type": [
                                "string",
                                "null"
                            ],
                            "format": "date"
                        }
                    },
                    {
                        "name": "property",
                        "in": "query",
                        "schema": {
                            "type": [
                                "string",
                                "null"
                            ],
                            "enum": [
                                "",
                                null
                            ]
                        }
                    },
                    {
                        "name": "product",
                        "in": "query",
                        "schema": {
                            "type": [
                                "string",
                                "null"
                            ]
                        }
                    },
                    {
                        "name": "include",
                        "in": "query",
                        "schema": {
                            "type": [
                                "string",
                                "null"
                            ]
                        }
                    },
                    {
                        "name": "limit",
                        "in": "query",
                        "schema": {
                            "type": [
                                "integer",
                                "null"
                            ],
                            "minimum": 1,
                            "maximum": 50
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "`AnalyticsResource`",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#/components/schemas/AnalyticsResource"
                                        },
                                        "meta": {
                                            "type": "object",
                                            "properties": {
                                                "range": {
                                                    "type": "object",
                                                    "properties": {
                                                        "key": {
                                                            "type": "string"
                                                        },
                                                        "start": {
                                                            "type": "string"
                                                        },
                                                        "end": {
                                                            "type": "string"
                                                        },
                                                        "days": {
                                                            "type": "integer"
                                                        },
                                                        "timezone": {
                                                            "type": "string"
                                                        }
                                                    },
                                                    "required": [
                                                        "key",
                                                        "start",
                                                        "end",
                                                        "days",
                                                        "timezone"
                                                    ]
                                                },
                                                "previous": {
                                                    "type": "object",
                                                    "properties": {
                                                        "start": {
                                                            "type": "string"
                                                        },
                                                        "end": {
                                                            "type": "string"
                                                        }
                                                    },
                                                    "required": [
                                                        "start",
                                                        "end"
                                                    ]
                                                },
                                                "property": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "product": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "generated_at": {
                                                    "type": "string"
                                                }
                                            },
                                            "required": [
                                                "range",
                                                "previous",
                                                "property",
                                                "product",
                                                "generated_at"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "data",
                                        "meta"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationException"
                    }
                }
            }
        },
        "/analytics/sign-ups": {
            "get": {
                "operationId": "analyticsView.signUps",
                "description": "Returns headline stats, a sign-up series by gate type, the sign-up funnel, and sign-ups by article.",
                "summary": "Get Sign-up Analytics",
                "tags": [
                    "Analytics",
                    "AnalyticsView"
                ],
                "parameters": [
                    {
                        "name": "range",
                        "in": "query",
                        "schema": {
                            "type": [
                                "string",
                                "null"
                            ],
                            "enum": [
                                "7d",
                                "30d",
                                "90d",
                                "1y",
                                null
                            ]
                        }
                    },
                    {
                        "name": "start",
                        "in": "query",
                        "schema": {
                            "type": [
                                "string",
                                "null"
                            ],
                            "format": "date"
                        }
                    },
                    {
                        "name": "end",
                        "in": "query",
                        "schema": {
                            "type": [
                                "string",
                                "null"
                            ],
                            "format": "date"
                        }
                    },
                    {
                        "name": "property",
                        "in": "query",
                        "schema": {
                            "type": [
                                "string",
                                "null"
                            ],
                            "enum": [
                                "",
                                null
                            ]
                        }
                    },
                    {
                        "name": "product",
                        "in": "query",
                        "schema": {
                            "type": [
                                "string",
                                "null"
                            ]
                        }
                    },
                    {
                        "name": "include",
                        "in": "query",
                        "schema": {
                            "type": [
                                "string",
                                "null"
                            ]
                        }
                    },
                    {
                        "name": "limit",
                        "in": "query",
                        "schema": {
                            "type": [
                                "integer",
                                "null"
                            ],
                            "minimum": 1,
                            "maximum": 50
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "`AnalyticsResource`",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#/components/schemas/AnalyticsResource"
                                        },
                                        "meta": {
                                            "type": "object",
                                            "properties": {
                                                "range": {
                                                    "type": "object",
                                                    "properties": {
                                                        "key": {
                                                            "type": "string"
                                                        },
                                                        "start": {
                                                            "type": "string"
                                                        },
                                                        "end": {
                                                            "type": "string"
                                                        },
                                                        "days": {
                                                            "type": "integer"
                                                        },
                                                        "timezone": {
                                                            "type": "string"
                                                        }
                                                    },
                                                    "required": [
                                                        "key",
                                                        "start",
                                                        "end",
                                                        "days",
                                                        "timezone"
                                                    ]
                                                },
                                                "previous": {
                                                    "type": "object",
                                                    "properties": {
                                                        "start": {
                                                            "type": "string"
                                                        },
                                                        "end": {
                                                            "type": "string"
                                                        }
                                                    },
                                                    "required": [
                                                        "start",
                                                        "end"
                                                    ]
                                                },
                                                "property": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "product": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "generated_at": {
                                                    "type": "string"
                                                }
                                            },
                                            "required": [
                                                "range",
                                                "previous",
                                                "property",
                                                "product",
                                                "generated_at"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "data",
                                        "meta"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationException"
                    }
                }
            }
        },
        "/analytics/logins": {
            "get": {
                "operationId": "analyticsView.logins",
                "description": "Returns headline stats, a daily login series, and logins by member level, device and article.",
                "summary": "Get Login Analytics",
                "tags": [
                    "Analytics",
                    "AnalyticsView"
                ],
                "parameters": [
                    {
                        "name": "range",
                        "in": "query",
                        "schema": {
                            "type": [
                                "string",
                                "null"
                            ],
                            "enum": [
                                "7d",
                                "30d",
                                "90d",
                                "1y",
                                null
                            ]
                        }
                    },
                    {
                        "name": "start",
                        "in": "query",
                        "schema": {
                            "type": [
                                "string",
                                "null"
                            ],
                            "format": "date"
                        }
                    },
                    {
                        "name": "end",
                        "in": "query",
                        "schema": {
                            "type": [
                                "string",
                                "null"
                            ],
                            "format": "date"
                        }
                    },
                    {
                        "name": "property",
                        "in": "query",
                        "schema": {
                            "type": [
                                "string",
                                "null"
                            ],
                            "enum": [
                                "",
                                null
                            ]
                        }
                    },
                    {
                        "name": "product",
                        "in": "query",
                        "schema": {
                            "type": [
                                "string",
                                "null"
                            ]
                        }
                    },
                    {
                        "name": "include",
                        "in": "query",
                        "schema": {
                            "type": [
                                "string",
                                "null"
                            ]
                        }
                    },
                    {
                        "name": "limit",
                        "in": "query",
                        "schema": {
                            "type": [
                                "integer",
                                "null"
                            ],
                            "minimum": 1,
                            "maximum": 50
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "`AnalyticsResource`",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#/components/schemas/AnalyticsResource"
                                        },
                                        "meta": {
                                            "type": "object",
                                            "properties": {
                                                "range": {
                                                    "type": "object",
                                                    "properties": {
                                                        "key": {
                                                            "type": "string"
                                                        },
                                                        "start": {
                                                            "type": "string"
                                                        },
                                                        "end": {
                                                            "type": "string"
                                                        },
                                                        "days": {
                                                            "type": "integer"
                                                        },
                                                        "timezone": {
                                                            "type": "string"
                                                        }
                                                    },
                                                    "required": [
                                                        "key",
                                                        "start",
                                                        "end",
                                                        "days",
                                                        "timezone"
                                                    ]
                                                },
                                                "previous": {
                                                    "type": "object",
                                                    "properties": {
                                                        "start": {
                                                            "type": "string"
                                                        },
                                                        "end": {
                                                            "type": "string"
                                                        }
                                                    },
                                                    "required": [
                                                        "start",
                                                        "end"
                                                    ]
                                                },
                                                "property": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "product": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "generated_at": {
                                                    "type": "string"
                                                }
                                            },
                                            "required": [
                                                "range",
                                                "previous",
                                                "property",
                                                "product",
                                                "generated_at"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "data",
                                        "meta"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationException"
                    }
                }
            }
        },
        "/analytics/purchases": {
            "get": {
                "operationId": "analyticsView.purchases",
                "description": "Returns revenue, purchases and average order against the previous period, with purchases\nby day, status and product.",
                "summary": "Get Purchase Analytics",
                "tags": [
                    "Analytics",
                    "AnalyticsView"
                ],
                "parameters": [
                    {
                        "name": "range",
                        "in": "query",
                        "schema": {
                            "type": [
                                "string",
                                "null"
                            ],
                            "enum": [
                                "7d",
                                "30d",
                                "90d",
                                "1y",
                                null
                            ]
                        }
                    },
                    {
                        "name": "start",
                        "in": "query",
                        "schema": {
                            "type": [
                                "string",
                                "null"
                            ],
                            "format": "date"
                        }
                    },
                    {
                        "name": "end",
                        "in": "query",
                        "schema": {
                            "type": [
                                "string",
                                "null"
                            ],
                            "format": "date"
                        }
                    },
                    {
                        "name": "property",
                        "in": "query",
                        "schema": {
                            "type": [
                                "string",
                                "null"
                            ],
                            "enum": [
                                "",
                                null
                            ]
                        }
                    },
                    {
                        "name": "product",
                        "in": "query",
                        "schema": {
                            "type": [
                                "string",
                                "null"
                            ]
                        }
                    },
                    {
                        "name": "include",
                        "in": "query",
                        "schema": {
                            "type": [
                                "string",
                                "null"
                            ]
                        }
                    },
                    {
                        "name": "limit",
                        "in": "query",
                        "schema": {
                            "type": [
                                "integer",
                                "null"
                            ],
                            "minimum": 1,
                            "maximum": 50
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "`AnalyticsResource`",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#/components/schemas/AnalyticsResource"
                                        },
                                        "meta": {
                                            "type": "object",
                                            "properties": {
                                                "range": {
                                                    "type": "object",
                                                    "properties": {
                                                        "key": {
                                                            "type": "string"
                                                        },
                                                        "start": {
                                                            "type": "string"
                                                        },
                                                        "end": {
                                                            "type": "string"
                                                        },
                                                        "days": {
                                                            "type": "integer"
                                                        },
                                                        "timezone": {
                                                            "type": "string"
                                                        }
                                                    },
                                                    "required": [
                                                        "key",
                                                        "start",
                                                        "end",
                                                        "days",
                                                        "timezone"
                                                    ]
                                                },
                                                "previous": {
                                                    "type": "object",
                                                    "properties": {
                                                        "start": {
                                                            "type": "string"
                                                        },
                                                        "end": {
                                                            "type": "string"
                                                        }
                                                    },
                                                    "required": [
                                                        "start",
                                                        "end"
                                                    ]
                                                },
                                                "property": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "product": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "generated_at": {
                                                    "type": "string"
                                                }
                                            },
                                            "required": [
                                                "range",
                                                "previous",
                                                "property",
                                                "product",
                                                "generated_at"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "data",
                                        "meta"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationException"
                    }
                }
            }
        },
        "/analytics/event-counts": {
            "get": {
                "operationId": "analyticsView.eventCounts",
                "description": "Returns the event count behind each Events view over the range: the numbers on the Events tabs.",
                "summary": "Get Event Counts",
                "tags": [
                    "Analytics",
                    "AnalyticsView"
                ],
                "parameters": [
                    {
                        "name": "range",
                        "in": "query",
                        "schema": {
                            "type": [
                                "string",
                                "null"
                            ],
                            "enum": [
                                "7d",
                                "30d",
                                "90d",
                                "1y",
                                null
                            ]
                        }
                    },
                    {
                        "name": "start",
                        "in": "query",
                        "schema": {
                            "type": [
                                "string",
                                "null"
                            ],
                            "format": "date"
                        }
                    },
                    {
                        "name": "end",
                        "in": "query",
                        "schema": {
                            "type": [
                                "string",
                                "null"
                            ],
                            "format": "date"
                        }
                    },
                    {
                        "name": "property",
                        "in": "query",
                        "schema": {
                            "type": [
                                "string",
                                "null"
                            ],
                            "enum": [
                                "",
                                null
                            ]
                        }
                    },
                    {
                        "name": "product",
                        "in": "query",
                        "schema": {
                            "type": [
                                "string",
                                "null"
                            ]
                        }
                    },
                    {
                        "name": "include",
                        "in": "query",
                        "schema": {
                            "type": [
                                "string",
                                "null"
                            ]
                        }
                    },
                    {
                        "name": "limit",
                        "in": "query",
                        "schema": {
                            "type": [
                                "integer",
                                "null"
                            ],
                            "minimum": 1,
                            "maximum": 50
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "`AnalyticsResource`",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#/components/schemas/AnalyticsResource"
                                        },
                                        "meta": {
                                            "type": "object",
                                            "properties": {
                                                "range": {
                                                    "type": "object",
                                                    "properties": {
                                                        "key": {
                                                            "type": "string"
                                                        },
                                                        "start": {
                                                            "type": "string"
                                                        },
                                                        "end": {
                                                            "type": "string"
                                                        },
                                                        "days": {
                                                            "type": "integer"
                                                        },
                                                        "timezone": {
                                                            "type": "string"
                                                        }
                                                    },
                                                    "required": [
                                                        "key",
                                                        "start",
                                                        "end",
                                                        "days",
                                                        "timezone"
                                                    ]
                                                },
                                                "previous": {
                                                    "type": "object",
                                                    "properties": {
                                                        "start": {
                                                            "type": "string"
                                                        },
                                                        "end": {
                                                            "type": "string"
                                                        }
                                                    },
                                                    "required": [
                                                        "start",
                                                        "end"
                                                    ]
                                                },
                                                "property": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "product": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "generated_at": {
                                                    "type": "string"
                                                }
                                            },
                                            "required": [
                                                "range",
                                                "previous",
                                                "property",
                                                "product",
                                                "generated_at"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "data",
                                        "meta"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationException"
                    }
                }
            }
        },
        "/analytics/content": {
            "get": {
                "operationId": "analyticsContent.show",
                "description": "Returns how one story performed, by its `path` (e.g. `/news/story`), over a `window`:\n`publish` (since it was published, capped at a year; the default), `24h` or `7d`. Sections\nare `details` (catalog entry, null when the page isn't indexed yet), `performance` (against\nthe site baseline, with a series), `sources`, `time_on_page`, `next_pages` and `gates`.\nNarrow with `include`. The `range`, `start` and `end` filters don't apply; `meta.range` is\nthe range the window resolved to.",
                "summary": "Get Story Analytics",
                "tags": [
                    "Analytics",
                    "AnalyticsContent"
                ],
                "parameters": [
                    {
                        "name": "range",
                        "in": "query",
                        "schema": {
                            "type": [
                                "string",
                                "null"
                            ],
                            "enum": [
                                "7d",
                                "30d",
                                "90d",
                                "1y",
                                null
                            ]
                        }
                    },
                    {
                        "name": "start",
                        "in": "query",
                        "schema": {
                            "type": [
                                "string",
                                "null"
                            ],
                            "format": "date"
                        }
                    },
                    {
                        "name": "end",
                        "in": "query",
                        "schema": {
                            "type": [
                                "string",
                                "null"
                            ],
                            "format": "date"
                        }
                    },
                    {
                        "name": "property",
                        "in": "query",
                        "schema": {
                            "type": [
                                "string",
                                "null"
                            ],
                            "enum": [
                                "",
                                null
                            ]
                        }
                    },
                    {
                        "name": "product",
                        "in": "query",
                        "schema": {
                            "type": [
                                "string",
                                "null"
                            ]
                        }
                    },
                    {
                        "name": "include",
                        "in": "query",
                        "schema": {
                            "type": [
                                "string",
                                "null"
                            ]
                        }
                    },
                    {
                        "name": "limit",
                        "in": "query",
                        "schema": {
                            "type": [
                                "integer",
                                "null"
                            ],
                            "minimum": 1,
                            "maximum": 50
                        }
                    },
                    {
                        "name": "path",
                        "in": "query",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "window",
                        "in": "query",
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "`AnalyticsResource`",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#/components/schemas/AnalyticsResource"
                                        },
                                        "meta": {
                                            "type": "object",
                                            "properties": {
                                                "range": {
                                                    "type": "object",
                                                    "properties": {
                                                        "key": {
                                                            "type": "string"
                                                        },
                                                        "start": {
                                                            "type": "string"
                                                        },
                                                        "end": {
                                                            "type": "string"
                                                        },
                                                        "days": {
                                                            "type": "integer"
                                                        },
                                                        "timezone": {
                                                            "type": "string"
                                                        }
                                                    },
                                                    "required": [
                                                        "key",
                                                        "start",
                                                        "end",
                                                        "days",
                                                        "timezone"
                                                    ]
                                                },
                                                "previous": {
                                                    "type": "object",
                                                    "properties": {
                                                        "start": {
                                                            "type": "string"
                                                        },
                                                        "end": {
                                                            "type": "string"
                                                        }
                                                    },
                                                    "required": [
                                                        "start",
                                                        "end"
                                                    ]
                                                },
                                                "property": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "product": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "generated_at": {
                                                    "type": "string"
                                                }
                                            },
                                            "required": [
                                                "range",
                                                "previous",
                                                "property",
                                                "product",
                                                "generated_at"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "data",
                                        "meta"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationException"
                    }
                }
            }
        },
        "/analytics/readers/{id}": {
            "get": {
                "operationId": "analyticsReader.show",
                "description": "Returns one registered reader's sessions and the event timeline of the selected one, built\nfrom their latest 500 events (`timeline.truncated` is true when there are more). Pass a\n`session` UUID to select another of their sessions. The reader's `name` and `email` are\nincluded only when the key also has the `audience-members:read` scope.",
                "summary": "Get Reader Analytics",
                "tags": [
                    "Analytics",
                    "AnalyticsReader"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "range",
                        "in": "query",
                        "schema": {
                            "type": [
                                "string",
                                "null"
                            ],
                            "enum": [
                                "7d",
                                "30d",
                                "90d",
                                "1y",
                                null
                            ]
                        }
                    },
                    {
                        "name": "start",
                        "in": "query",
                        "schema": {
                            "type": [
                                "string",
                                "null"
                            ],
                            "format": "date"
                        }
                    },
                    {
                        "name": "end",
                        "in": "query",
                        "schema": {
                            "type": [
                                "string",
                                "null"
                            ],
                            "format": "date"
                        }
                    },
                    {
                        "name": "property",
                        "in": "query",
                        "schema": {
                            "type": [
                                "string",
                                "null"
                            ],
                            "enum": [
                                "",
                                null
                            ]
                        }
                    },
                    {
                        "name": "product",
                        "in": "query",
                        "schema": {
                            "type": [
                                "string",
                                "null"
                            ]
                        }
                    },
                    {
                        "name": "include",
                        "in": "query",
                        "schema": {
                            "type": [
                                "string",
                                "null"
                            ]
                        }
                    },
                    {
                        "name": "limit",
                        "in": "query",
                        "schema": {
                            "type": [
                                "integer",
                                "null"
                            ],
                            "minimum": 1,
                            "maximum": 50
                        }
                    },
                    {
                        "name": "session",
                        "in": "query",
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "`AnalyticsResource`",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#/components/schemas/AnalyticsResource"
                                        },
                                        "meta": {
                                            "type": "object",
                                            "properties": {
                                                "range": {
                                                    "type": "object",
                                                    "properties": {
                                                        "key": {
                                                            "type": "string"
                                                        },
                                                        "start": {
                                                            "type": "string"
                                                        },
                                                        "end": {
                                                            "type": "string"
                                                        },
                                                        "days": {
                                                            "type": "integer"
                                                        },
                                                        "timezone": {
                                                            "type": "string"
                                                        }
                                                    },
                                                    "required": [
                                                        "key",
                                                        "start",
                                                        "end",
                                                        "days",
                                                        "timezone"
                                                    ]
                                                },
                                                "previous": {
                                                    "type": "object",
                                                    "properties": {
                                                        "start": {
                                                            "type": "string"
                                                        },
                                                        "end": {
                                                            "type": "string"
                                                        }
                                                    },
                                                    "required": [
                                                        "start",
                                                        "end"
                                                    ]
                                                },
                                                "property": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "product": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "generated_at": {
                                                    "type": "string"
                                                }
                                            },
                                            "required": [
                                                "range",
                                                "previous",
                                                "property",
                                                "product",
                                                "generated_at"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "data",
                                        "meta"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationException"
                    }
                }
            }
        },
        "/analytics/reports": {
            "get": {
                "operationId": "analyticsReport.index",
                "description": "Lists the built-in reports, each naming the API endpoint (and `include` section) that returns\nits data, and one page of the tenant's saved reports. `search` matches names and\ndescriptions; `area` narrows the built-ins to one area. Saved reports are paginated with\n`per_page` (1-100, default 20) and `page`; `meta.saved` describes the page.",
                "summary": "List Analytics Reports",
                "tags": [
                    "Analytics",
                    "AnalyticsReport"
                ],
                "parameters": [
                    {
                        "name": "search",
                        "in": "query",
                        "schema": {
                            "type": [
                                "string",
                                "null"
                            ],
                            "maxLength": 255
                        }
                    },
                    {
                        "name": "area",
                        "in": "query",
                        "schema": {
                            "type": [
                                "string",
                                "null"
                            ],
                            "maxLength": 255
                        }
                    },
                    {
                        "name": "per_page",
                        "in": "query",
                        "schema": {
                            "type": [
                                "integer",
                                "null"
                            ],
                            "minimum": 1,
                            "maximum": 100
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "`AnalyticsResource`",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#/components/schemas/AnalyticsResource"
                                        },
                                        "meta": {
                                            "type": "object",
                                            "properties": {
                                                "saved": {
                                                    "type": "object",
                                                    "properties": {
                                                        "current_page": {
                                                            "type": "integer"
                                                        },
                                                        "last_page": {
                                                            "type": "integer"
                                                        },
                                                        "per_page": {
                                                            "type": "integer"
                                                        },
                                                        "total": {
                                                            "type": "integer"
                                                        }
                                                    },
                                                    "required": [
                                                        "current_page",
                                                        "last_page",
                                                        "per_page",
                                                        "total"
                                                    ]
                                                }
                                            },
                                            "required": [
                                                "saved"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "data",
                                        "meta"
                                    ]
                                }
                            }
                        }
                    },
                    "403": {
                        "$ref": "#/components/responses/AuthorizationException"
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationException"
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            },
            "post": {
                "operationId": "analyticsReport.store",
                "description": "Saves a report the whole team can open from Analytics \u2192 Reports: a `name`, an optional\n`description`, whether it is `pinned` to the Pulse, and a `definition` in the same shape\n`POST /analytics/query` runs. Run it afterwards with `GET /analytics/reports/{id}/results`.",
                "summary": "Create Analytics Report",
                "tags": [
                    "Analytics",
                    "AnalyticsReport"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/StoreAnalyticsReportRequest"
                            }
                        }
                    }
                },
                "responses": {
                    "201": {
                        "description": "`AnalyticsResource`",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#/components/schemas/AnalyticsResource"
                                        }
                                    },
                                    "required": [
                                        "data"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationException"
                    },
                    "403": {
                        "$ref": "#/components/responses/AuthorizationException"
                    }
                }
            }
        },
        "/analytics/reports/{id}": {
            "get": {
                "operationId": "analyticsReport.show",
                "description": "Returns one saved report: its name, description, definition (the same shape `POST\n/analytics/query` accepts) and a one-line summary.",
                "summary": "Get Analytics Report",
                "tags": [
                    "Analytics",
                    "AnalyticsReport"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "`AnalyticsResource`",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#/components/schemas/AnalyticsResource"
                                        }
                                    },
                                    "required": [
                                        "data"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/analytics/reports/{id}/results": {
            "get": {
                "operationId": "analyticsReport.results",
                "description": "Runs a saved report and returns it with its result, over its own preset range unless `range`\nor `start` and `end` are given.",
                "summary": "Run Analytics Report",
                "tags": [
                    "Analytics",
                    "AnalyticsReport"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "range",
                        "in": "query",
                        "schema": {
                            "type": [
                                "string",
                                "null"
                            ],
                            "enum": [
                                "7d",
                                "30d",
                                "90d",
                                "1y",
                                null
                            ]
                        }
                    },
                    {
                        "name": "start",
                        "in": "query",
                        "schema": {
                            "type": [
                                "string",
                                "null"
                            ],
                            "format": "date"
                        }
                    },
                    {
                        "name": "end",
                        "in": "query",
                        "schema": {
                            "type": [
                                "string",
                                "null"
                            ],
                            "format": "date"
                        }
                    },
                    {
                        "name": "property",
                        "in": "query",
                        "schema": {
                            "type": [
                                "string",
                                "null"
                            ],
                            "enum": [
                                "",
                                null
                            ]
                        }
                    },
                    {
                        "name": "product",
                        "in": "query",
                        "schema": {
                            "type": [
                                "string",
                                "null"
                            ]
                        }
                    },
                    {
                        "name": "include",
                        "in": "query",
                        "schema": {
                            "type": [
                                "string",
                                "null"
                            ]
                        }
                    },
                    {
                        "name": "limit",
                        "in": "query",
                        "schema": {
                            "type": [
                                "integer",
                                "null"
                            ],
                            "minimum": 1,
                            "maximum": 50
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "`AnalyticsResource`",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#/components/schemas/AnalyticsResource"
                                        },
                                        "meta": {
                                            "type": "object",
                                            "properties": {
                                                "range": {
                                                    "type": "object",
                                                    "properties": {
                                                        "key": {
                                                            "type": "string"
                                                        },
                                                        "start": {
                                                            "type": "string"
                                                        },
                                                        "end": {
                                                            "type": "string"
                                                        },
                                                        "days": {
                                                            "type": "integer"
                                                        },
                                                        "timezone": {
                                                            "type": "string"
                                                        }
                                                    },
                                                    "required": [
                                                        "key",
                                                        "start",
                                                        "end",
                                                        "days",
                                                        "timezone"
                                                    ]
                                                },
                                                "previous": {
                                                    "type": "object",
                                                    "properties": {
                                                        "start": {
                                                            "type": "string"
                                                        },
                                                        "end": {
                                                            "type": "string"
                                                        }
                                                    },
                                                    "required": [
                                                        "start",
                                                        "end"
                                                    ]
                                                },
                                                "property": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "product": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "generated_at": {
                                                    "type": "string"
                                                }
                                            },
                                            "required": [
                                                "range",
                                                "previous",
                                                "property",
                                                "product",
                                                "generated_at"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "data",
                                        "meta"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationException"
                    }
                }
            }
        },
        "/audience-members/{memberId}/sessions": {
            "get": {
                "operationId": "audienceDeviceSession.index",
                "description": "Retrieve all device sessions for a given audience member.",
                "summary": "List Audience Device Sessions",
                "tags": [
                    "AudienceDeviceSession"
                ],
                "parameters": [
                    {
                        "name": "memberId",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "include",
                        "in": "query",
                        "schema": {
                            "type": "array",
                            "items": {
                                "type": "string",
                                "enum": [
                                    "audienceMember"
                                ]
                            }
                        },
                        "explode": false
                    },
                    {
                        "name": "fields[audience_device_sessions]",
                        "in": "query",
                        "schema": {
                            "type": "array",
                            "items": {
                                "type": "string",
                                "enum": [
                                    "is_authenticated",
                                    "authenticated_at",
                                    "created_at",
                                    "updated_at"
                                ]
                            }
                        },
                        "explode": false
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Array of `AudienceDeviceSessionResource`",
                        "content": {
                            "application/vnd.api+json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "$ref": "#/components/schemas/AudienceDeviceSessionResource"
                                            }
                                        },
                                        "included": {
                                            "type": "array",
                                            "items": {
                                                "$ref": "#/components/schemas/JsonApiResource"
                                            }
                                        }
                                    },
                                    "required": [
                                        "data"
                                    ]
                                }
                            }
                        }
                    },
                    "403": {
                        "$ref": "#/components/responses/AuthorizationException"
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/audience-members": {
            "get": {
                "operationId": "audienceMember.index",
                "description": "Retrieve a paginated list of audience members. Supports filtering by `email`,\n`foreign_key`, `product` (the slug of a product the member holds an active\nentitlement for), and optionally including soft-deleted members via\n`include_deleted`. The page size can be controlled with `per_page` (1-1000).",
                "summary": "List Audience Members",
                "tags": [
                    "AudienceMember"
                ],
                "parameters": [
                    {
                        "name": "per_page",
                        "in": "query",
                        "schema": {
                            "type": [
                                "integer",
                                "null"
                            ],
                            "minimum": 1,
                            "maximum": 1000
                        }
                    },
                    {
                        "name": "product",
                        "in": "query",
                        "schema": {
                            "type": [
                                "string",
                                "null"
                            ]
                        }
                    },
                    {
                        "name": "email",
                        "in": "query",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "foreign_key[key]",
                        "in": "query",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "foreign_key[value]",
                        "in": "query",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "include",
                        "in": "query",
                        "schema": {
                            "type": "array",
                            "items": {
                                "type": "string",
                                "enum": [
                                    "externalProfiles",
                                    "sessions",
                                    "sessions.audienceMember"
                                ]
                            }
                        },
                        "explode": false
                    },
                    {
                        "name": "fields[audience_members]",
                        "in": "query",
                        "schema": {
                            "type": "array",
                            "items": {
                                "type": "string",
                                "enum": [
                                    "name",
                                    "email",
                                    "email_verified",
                                    "meta",
                                    "entitlements",
                                    "purchases",
                                    "properties",
                                    "created_at",
                                    "updated_at"
                                ]
                            }
                        },
                        "explode": false
                    },
                    {
                        "name": "fields[audience_device_sessions]",
                        "in": "query",
                        "schema": {
                            "type": "array",
                            "items": {
                                "type": "string",
                                "enum": [
                                    "is_authenticated",
                                    "authenticated_at",
                                    "created_at",
                                    "updated_at"
                                ]
                            }
                        },
                        "explode": false
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Paginated set of `AudienceMemberResource`",
                        "content": {
                            "application/vnd.api+json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "$ref": "#/components/schemas/AudienceMemberResource"
                                            }
                                        },
                                        "links": {
                                            "type": "object",
                                            "properties": {
                                                "first": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "last": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "prev": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "next": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                }
                                            },
                                            "required": [
                                                "first",
                                                "last",
                                                "prev",
                                                "next"
                                            ]
                                        },
                                        "meta": {
                                            "type": "object",
                                            "properties": {
                                                "current_page": {
                                                    "type": "integer",
                                                    "minimum": 1
                                                },
                                                "from": {
                                                    "type": [
                                                        "integer",
                                                        "null"
                                                    ],
                                                    "minimum": 1
                                                },
                                                "last_page": {
                                                    "type": "integer",
                                                    "minimum": 1
                                                },
                                                "links": {
                                                    "type": "array",
                                                    "description": "Generated paginator links.",
                                                    "items": {
                                                        "type": "object",
                                                        "properties": {
                                                            "url": {
                                                                "type": [
                                                                    "string",
                                                                    "null"
                                                                ]
                                                            },
                                                            "label": {
                                                                "type": "string"
                                                            },
                                                            "active": {
                                                                "type": "boolean"
                                                            }
                                                        },
                                                        "required": [
                                                            "url",
                                                            "label",
                                                            "active"
                                                        ]
                                                    }
                                                },
                                                "path": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ],
                                                    "description": "Base path for paginator generated URLs."
                                                },
                                                "per_page": {
                                                    "type": "integer",
                                                    "description": "Number of items shown per page.",
                                                    "minimum": 0
                                                },
                                                "to": {
                                                    "type": [
                                                        "integer",
                                                        "null"
                                                    ],
                                                    "description": "Number of the last item in the slice.",
                                                    "minimum": 1
                                                },
                                                "total": {
                                                    "type": "integer",
                                                    "description": "Total number of items being paginated.",
                                                    "minimum": 0
                                                }
                                            },
                                            "required": [
                                                "current_page",
                                                "from",
                                                "last_page",
                                                "links",
                                                "path",
                                                "per_page",
                                                "to",
                                                "total"
                                            ]
                                        },
                                        "included": {
                                            "type": "array",
                                            "items": {
                                                "anyOf": [
                                                    {
                                                        "$ref": "#/components/schemas/AudienceMemberExternalProfileResource"
                                                    },
                                                    {
                                                        "$ref": "#/components/schemas/AudienceDeviceSessionResource"
                                                    },
                                                    {
                                                        "$ref": "#/components/schemas/JsonApiResource"
                                                    }
                                                ]
                                            }
                                        }
                                    },
                                    "required": [
                                        "data",
                                        "links",
                                        "meta"
                                    ]
                                }
                            }
                        }
                    },
                    "403": {
                        "$ref": "#/components/responses/AuthorizationException"
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationException"
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            },
            "post": {
                "operationId": "audienceMember.store",
                "description": "Create a new audience member with the provided attributes and optional meta data.\n\nIf a deleted audience member has the same email, they are restored and updated with the provided attributes\ninstead.",
                "summary": "Create Audience Member",
                "tags": [
                    "AudienceMember"
                ],
                "parameters": [
                    {
                        "name": "include",
                        "in": "query",
                        "schema": {
                            "type": "array",
                            "items": {
                                "type": "string",
                                "enum": [
                                    "externalProfiles",
                                    "sessions",
                                    "sessions.audienceMember"
                                ]
                            }
                        },
                        "explode": false
                    },
                    {
                        "name": "fields[audience_members]",
                        "in": "query",
                        "schema": {
                            "type": "array",
                            "items": {
                                "type": "string",
                                "enum": [
                                    "name",
                                    "email",
                                    "email_verified",
                                    "meta",
                                    "entitlements",
                                    "purchases",
                                    "properties",
                                    "created_at",
                                    "updated_at"
                                ]
                            }
                        },
                        "explode": false
                    },
                    {
                        "name": "fields[audience_device_sessions]",
                        "in": "query",
                        "schema": {
                            "type": "array",
                            "items": {
                                "type": "string",
                                "enum": [
                                    "is_authenticated",
                                    "authenticated_at",
                                    "created_at",
                                    "updated_at"
                                ]
                            }
                        },
                        "explode": false
                    }
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/StoreAudienceMemberRequest"
                            }
                        }
                    }
                },
                "responses": {
                    "201": {
                        "description": "`AudienceMemberResource`",
                        "content": {
                            "application/vnd.api+json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#/components/schemas/AudienceMemberResource"
                                        },
                                        "included": {
                                            "type": "array",
                                            "items": {
                                                "anyOf": [
                                                    {
                                                        "$ref": "#/components/schemas/AudienceMemberExternalProfileResource"
                                                    },
                                                    {
                                                        "$ref": "#/components/schemas/AudienceDeviceSessionResource"
                                                    },
                                                    {
                                                        "$ref": "#/components/schemas/JsonApiResource"
                                                    }
                                                ]
                                            }
                                        }
                                    },
                                    "required": [
                                        "data"
                                    ]
                                }
                            }
                        }
                    },
                    "403": {
                        "$ref": "#/components/responses/AuthorizationException"
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationException"
                    }
                }
            }
        },
        "/audience-members/{id}": {
            "get": {
                "operationId": "audienceMember.show",
                "description": "Retrieve a single audience member by their ID.",
                "summary": "Get Audience Member",
                "tags": [
                    "AudienceMember"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "include",
                        "in": "query",
                        "schema": {
                            "type": "array",
                            "items": {
                                "type": "string",
                                "enum": [
                                    "externalProfiles",
                                    "sessions",
                                    "sessions.audienceMember"
                                ]
                            }
                        },
                        "explode": false
                    },
                    {
                        "name": "fields[audience_members]",
                        "in": "query",
                        "schema": {
                            "type": "array",
                            "items": {
                                "type": "string",
                                "enum": [
                                    "name",
                                    "email",
                                    "email_verified",
                                    "meta",
                                    "entitlements",
                                    "purchases",
                                    "properties",
                                    "created_at",
                                    "updated_at"
                                ]
                            }
                        },
                        "explode": false
                    },
                    {
                        "name": "fields[audience_device_sessions]",
                        "in": "query",
                        "schema": {
                            "type": "array",
                            "items": {
                                "type": "string",
                                "enum": [
                                    "is_authenticated",
                                    "authenticated_at",
                                    "created_at",
                                    "updated_at"
                                ]
                            }
                        },
                        "explode": false
                    }
                ],
                "responses": {
                    "200": {
                        "description": "`AudienceMemberResource`",
                        "content": {
                            "application/vnd.api+json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#/components/schemas/AudienceMemberResource"
                                        },
                                        "included": {
                                            "type": "array",
                                            "items": {
                                                "anyOf": [
                                                    {
                                                        "$ref": "#/components/schemas/AudienceMemberExternalProfileResource"
                                                    },
                                                    {
                                                        "$ref": "#/components/schemas/AudienceDeviceSessionResource"
                                                    },
                                                    {
                                                        "$ref": "#/components/schemas/JsonApiResource"
                                                    }
                                                ]
                                            }
                                        }
                                    },
                                    "required": [
                                        "data"
                                    ]
                                }
                            }
                        }
                    },
                    "403": {
                        "$ref": "#/components/responses/AuthorizationException"
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            },
            "put": {
                "operationId": "audienceMember.update",
                "description": "Fully replace an audience member's attributes and metadata.\n\nIf meta is passed, all existing meta except file attribute values will be removed and replaced with the\nprovided values. Otherwise, it will be left alone.",
                "summary": "Update Audience Member",
                "tags": [
                    "AudienceMember"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "include",
                        "in": "query",
                        "schema": {
                            "type": "array",
                            "items": {
                                "type": "string",
                                "enum": [
                                    "externalProfiles",
                                    "sessions",
                                    "sessions.audienceMember"
                                ]
                            }
                        },
                        "explode": false
                    },
                    {
                        "name": "fields[audience_members]",
                        "in": "query",
                        "schema": {
                            "type": "array",
                            "items": {
                                "type": "string",
                                "enum": [
                                    "name",
                                    "email",
                                    "email_verified",
                                    "meta",
                                    "entitlements",
                                    "purchases",
                                    "properties",
                                    "created_at",
                                    "updated_at"
                                ]
                            }
                        },
                        "explode": false
                    },
                    {
                        "name": "fields[audience_device_sessions]",
                        "in": "query",
                        "schema": {
                            "type": "array",
                            "items": {
                                "type": "string",
                                "enum": [
                                    "is_authenticated",
                                    "authenticated_at",
                                    "created_at",
                                    "updated_at"
                                ]
                            }
                        },
                        "explode": false
                    }
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/ReplaceAudienceMemberRequest"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "`AudienceMemberResource`",
                        "content": {
                            "application/vnd.api+json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#/components/schemas/AudienceMemberResource"
                                        },
                                        "included": {
                                            "type": "array",
                                            "items": {
                                                "anyOf": [
                                                    {
                                                        "$ref": "#/components/schemas/AudienceMemberExternalProfileResource"
                                                    },
                                                    {
                                                        "$ref": "#/components/schemas/AudienceDeviceSessionResource"
                                                    },
                                                    {
                                                        "$ref": "#/components/schemas/JsonApiResource"
                                                    }
                                                ]
                                            }
                                        }
                                    },
                                    "required": [
                                        "data"
                                    ]
                                }
                            }
                        }
                    },
                    "403": {
                        "$ref": "#/components/responses/AuthorizationException"
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationException"
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            },
            "patch": {
                "operationId": "audienceMember.patch",
                "description": "Partially update an audience member's attributes and meta data. Meta values\nset to `null` will be removed; all other values will be merged.",
                "summary": "Patch Audience Member",
                "tags": [
                    "AudienceMember"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "include",
                        "in": "query",
                        "schema": {
                            "type": "array",
                            "items": {
                                "type": "string",
                                "enum": [
                                    "externalProfiles",
                                    "sessions",
                                    "sessions.audienceMember"
                                ]
                            }
                        },
                        "explode": false
                    },
                    {
                        "name": "fields[audience_members]",
                        "in": "query",
                        "schema": {
                            "type": "array",
                            "items": {
                                "type": "string",
                                "enum": [
                                    "name",
                                    "email",
                                    "email_verified",
                                    "meta",
                                    "entitlements",
                                    "purchases",
                                    "properties",
                                    "created_at",
                                    "updated_at"
                                ]
                            }
                        },
                        "explode": false
                    },
                    {
                        "name": "fields[audience_device_sessions]",
                        "in": "query",
                        "schema": {
                            "type": "array",
                            "items": {
                                "type": "string",
                                "enum": [
                                    "is_authenticated",
                                    "authenticated_at",
                                    "created_at",
                                    "updated_at"
                                ]
                            }
                        },
                        "explode": false
                    }
                ],
                "requestBody": {
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/PatchAudienceMemberRequest"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "`AudienceMemberResource`",
                        "content": {
                            "application/vnd.api+json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#/components/schemas/AudienceMemberResource"
                                        },
                                        "included": {
                                            "type": "array",
                                            "items": {
                                                "anyOf": [
                                                    {
                                                        "$ref": "#/components/schemas/AudienceMemberExternalProfileResource"
                                                    },
                                                    {
                                                        "$ref": "#/components/schemas/AudienceDeviceSessionResource"
                                                    },
                                                    {
                                                        "$ref": "#/components/schemas/JsonApiResource"
                                                    }
                                                ]
                                            }
                                        }
                                    },
                                    "required": [
                                        "data"
                                    ]
                                }
                            }
                        }
                    },
                    "403": {
                        "$ref": "#/components/responses/AuthorizationException"
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationException"
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            },
            "delete": {
                "operationId": "audienceMember.destroy",
                "description": "Soft-delete an audience member by their ID.",
                "summary": "Delete Audience Member",
                "tags": [
                    "AudienceMember"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "204": {
                        "description": "No content"
                    },
                    "403": {
                        "$ref": "#/components/responses/AuthorizationException"
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/audience-members/{id}/events": {
            "get": {
                "operationId": "audienceEvent.index",
                "description": "Retrieve a paginated timeline of tracked events for an audience member,\nnewest first. Events are read from whichever store the tenant is\nconfigured to use, so the results always match the admin dashboard.\n\nThe page size can be controlled with `per_page` (1-100).\n\nNote: for tenants whose events are served by the ClickHouse analytics\nAPI, the timeline covers the 500 most recent events. `meta.total`\nreflects that window rather than the member's lifetime event count, and\npages beyond it are empty. Tenants served from the database have no\nsuch limit.",
                "summary": "List Audience Member Events",
                "tags": [
                    "AudienceMember",
                    "AudienceEvent"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "per_page",
                        "in": "query",
                        "schema": {
                            "type": [
                                "integer",
                                "null"
                            ],
                            "minimum": 1,
                            "maximum": 100
                        }
                    },
                    {
                        "name": "fields[audience_events]",
                        "in": "query",
                        "schema": {
                            "type": "array",
                            "items": {
                                "type": "string",
                                "enum": [
                                    "type",
                                    "audience_member_id",
                                    "session_id",
                                    "device_id",
                                    "property_slug",
                                    "page_hostname",
                                    "page_path",
                                    "page_title",
                                    "referer",
                                    "url_in_click",
                                    "content_type",
                                    "content_id",
                                    "object_type",
                                    "object_id",
                                    "utm_source",
                                    "utm_medium",
                                    "utm_campaign",
                                    "utm_content",
                                    "utm_term",
                                    "data",
                                    "created_at"
                                ]
                            }
                        },
                        "explode": false
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Paginated set of `AudienceEventResource`",
                        "content": {
                            "application/vnd.api+json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "$ref": "#/components/schemas/AudienceEventResource"
                                            }
                                        },
                                        "links": {
                                            "type": "object",
                                            "properties": {
                                                "first": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "last": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "prev": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "next": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                }
                                            },
                                            "required": [
                                                "first",
                                                "last",
                                                "prev",
                                                "next"
                                            ]
                                        },
                                        "meta": {
                                            "type": "object",
                                            "properties": {
                                                "current_page": {
                                                    "type": "integer",
                                                    "minimum": 1
                                                },
                                                "from": {
                                                    "type": [
                                                        "integer",
                                                        "null"
                                                    ],
                                                    "minimum": 1
                                                },
                                                "last_page": {
                                                    "type": "integer",
                                                    "minimum": 1
                                                },
                                                "links": {
                                                    "type": "array",
                                                    "description": "Generated paginator links.",
                                                    "items": {
                                                        "type": "object",
                                                        "properties": {
                                                            "url": {
                                                                "type": [
                                                                    "string",
                                                                    "null"
                                                                ]
                                                            },
                                                            "label": {
                                                                "type": "string"
                                                            },
                                                            "active": {
                                                                "type": "boolean"
                                                            }
                                                        },
                                                        "required": [
                                                            "url",
                                                            "label",
                                                            "active"
                                                        ]
                                                    }
                                                },
                                                "path": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ],
                                                    "description": "Base path for paginator generated URLs."
                                                },
                                                "per_page": {
                                                    "type": "integer",
                                                    "description": "Number of items shown per page.",
                                                    "minimum": 0
                                                },
                                                "to": {
                                                    "type": [
                                                        "integer",
                                                        "null"
                                                    ],
                                                    "description": "Number of the last item in the slice.",
                                                    "minimum": 1
                                                },
                                                "total": {
                                                    "type": "integer",
                                                    "description": "Total number of items being paginated.",
                                                    "minimum": 0
                                                }
                                            },
                                            "required": [
                                                "current_page",
                                                "from",
                                                "last_page",
                                                "links",
                                                "path",
                                                "per_page",
                                                "to",
                                                "total"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "data",
                                        "links",
                                        "meta"
                                    ]
                                }
                            }
                        }
                    },
                    "403": {
                        "$ref": "#/components/responses/AuthorizationException"
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationException"
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/audience-members/{id}/external-profiles": {
            "get": {
                "operationId": "audienceMemberExternalProfile.index",
                "description": "List all external profiles for the given audience member.",
                "summary": "List External Profiles",
                "tags": [
                    "AudienceMemberExternalProfile"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Array of `AudienceMemberExternalProfileResource`",
                        "content": {
                            "application/vnd.api+json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "$ref": "#/components/schemas/AudienceMemberExternalProfileResource"
                                            }
                                        }
                                    },
                                    "required": [
                                        "data"
                                    ]
                                }
                            }
                        }
                    },
                    "403": {
                        "$ref": "#/components/responses/AuthorizationException"
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/audience-members/{id}/external-profiles/{provider}": {
            "get": {
                "operationId": "audienceMemberExternalProfile.show",
                "description": "Get a single external profile for the given audience member by provider key.",
                "summary": "Get External Profile",
                "tags": [
                    "AudienceMemberExternalProfile"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "provider",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "`AudienceMemberExternalProfileResource`",
                        "content": {
                            "application/vnd.api+json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#/components/schemas/AudienceMemberExternalProfileResource"
                                        }
                                    },
                                    "required": [
                                        "data"
                                    ]
                                }
                            }
                        }
                    },
                    "403": {
                        "$ref": "#/components/responses/AuthorizationException"
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            },
            "put": {
                "operationId": "audienceMemberExternalProfile.upsert",
                "description": "Create or update an external profile for the given audience member and provider key.",
                "summary": "Upsert External Profile",
                "tags": [
                    "AudienceMemberExternalProfile"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "provider",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "string"
                                }
                            }
                        }
                    },
                    "403": {
                        "$ref": "#/components/responses/AuthorizationException"
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationException"
                    }
                }
            },
            "delete": {
                "operationId": "audienceMemberExternalProfile.destroy",
                "description": "Delete the external profile for the given audience member and provider key.",
                "summary": "Delete External Profile",
                "tags": [
                    "AudienceMemberExternalProfile"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "provider",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "204": {
                        "description": "No content"
                    },
                    "403": {
                        "$ref": "#/components/responses/AuthorizationException"
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/audience-members/{id}/foreign-keys": {
            "get": {
                "operationId": "audienceMemberForeignKey.index",
                "description": "Retrieve all foreign keys associated with an audience member.",
                "summary": "List Foreign Keys",
                "tags": [
                    "AudienceMemberForeignKey"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "fields[audience_member_foreign_keys]",
                        "in": "query",
                        "schema": {
                            "type": "array",
                            "items": {
                                "type": "string",
                                "enum": [
                                    "key",
                                    "value",
                                    "created_at",
                                    "updated_at"
                                ]
                            }
                        },
                        "explode": false
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Array of `AudienceMemberForeignKeyResource`",
                        "content": {
                            "application/vnd.api+json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "$ref": "#/components/schemas/AudienceMemberForeignKeyResource"
                                            }
                                        }
                                    },
                                    "required": [
                                        "data"
                                    ]
                                }
                            }
                        }
                    },
                    "403": {
                        "$ref": "#/components/responses/AuthorizationException"
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            },
            "post": {
                "operationId": "audienceMemberForeignKey.store",
                "description": "Add a new foreign key to an audience member.",
                "summary": "Create Foreign Key",
                "tags": [
                    "AudienceMemberForeignKey"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "fields[audience_member_foreign_keys]",
                        "in": "query",
                        "schema": {
                            "type": "array",
                            "items": {
                                "type": "string",
                                "enum": [
                                    "key",
                                    "value",
                                    "created_at",
                                    "updated_at"
                                ]
                            }
                        },
                        "explode": false
                    }
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/StoreAudienceMemberForeignKeyRequest"
                            }
                        }
                    }
                },
                "responses": {
                    "201": {
                        "description": "`AudienceMemberForeignKeyResource`",
                        "content": {
                            "application/vnd.api+json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#/components/schemas/AudienceMemberForeignKeyResource"
                                        }
                                    },
                                    "required": [
                                        "data"
                                    ]
                                }
                            }
                        }
                    },
                    "403": {
                        "$ref": "#/components/responses/AuthorizationException"
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationException"
                    }
                }
            }
        },
        "/audience-members/{id}/foreign-keys/{key}": {
            "delete": {
                "operationId": "audienceMemberForeignKey.destroy",
                "description": "Remove a foreign key from an audience member by its key name.",
                "summary": "Delete Foreign Key",
                "tags": [
                    "AudienceMemberForeignKey"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "key",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "204": {
                        "description": "No content"
                    },
                    "403": {
                        "$ref": "#/components/responses/AuthorizationException"
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/audience-members/{id}/user-attributes": {
            "get": {
                "operationId": "audienceMemberUserAttribute.index",
                "description": "List every user attribute defined for the tenant along with the given audience\nmember's value for it. Attributes the member has never been given a value for\nare returned with a `null` value. A public File attribute's value is the file's\nURL. Private File attributes are admin-only and are never listed.",
                "summary": "List User Attributes",
                "tags": [
                    "AudienceMemberUserAttribute"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "description": "The audience member ID.",
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Array of `UserAttributeResource`",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "$ref": "#/components/schemas/UserAttributeResource"
                                            }
                                        }
                                    },
                                    "required": [
                                        "data"
                                    ]
                                }
                            }
                        }
                    },
                    "403": {
                        "$ref": "#/components/responses/AuthorizationException"
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/audience-members/{id}/user-attributes/{slug}": {
            "put": {
                "operationId": "audienceMemberUserAttribute.set",
                "description": "Set the value of a single user attribute for the given audience member. The value\nis validated against the attribute's type: `string` accepts any string, `number`\naccepts any numeric value, `boolean` accepts a boolean, and `enum` accepts one of\nthe attribute's configured options.",
                "summary": "Set User Attribute",
                "tags": [
                    "AudienceMemberUserAttribute"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "description": "The audience member ID.",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "slug",
                        "in": "path",
                        "required": true,
                        "description": "The user attribute slug.",
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "value": {
                                        "description": "The value to store, matching the attribute type.",
                                        "anyOf": [
                                            {
                                                "type": "string"
                                            },
                                            {
                                                "type": "number"
                                            },
                                            {
                                                "type": "boolean"
                                            }
                                        ]
                                    }
                                },
                                "required": [
                                    "value"
                                ]
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "slug": {
                                            "type": "string"
                                        },
                                        "value": {
                                            "anyOf": [
                                                {
                                                    "type": "string"
                                                },
                                                {
                                                    "type": "number"
                                                },
                                                {
                                                    "type": "integer"
                                                },
                                                {
                                                    "type": "null"
                                                },
                                                {
                                                    "type": "object"
                                                }
                                            ]
                                        }
                                    },
                                    "required": [
                                        "slug",
                                        "value"
                                    ]
                                }
                            }
                        }
                    },
                    "403": {
                        "$ref": "#/components/responses/AuthorizationException"
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            },
            "delete": {
                "operationId": "audienceMemberUserAttribute.delete",
                "description": "Clear the given audience member's stored value for a user attribute. The attribute\nitself remains defined for the tenant and will continue to be returned with a\n`null` value.",
                "summary": "Delete User Attribute",
                "tags": [
                    "AudienceMemberUserAttribute"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "description": "The audience member ID.",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "slug",
                        "in": "path",
                        "required": true,
                        "description": "The user attribute slug.",
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "204": {
                        "description": "No content"
                    },
                    "403": {
                        "$ref": "#/components/responses/AuthorizationException"
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/user": {
            "get": {
                "operationId": "allegro.authenticatedIdentity",
                "description": "A first-party session or a legacy user token returns the user as before.\nOrganization- and platform-owned API keys authenticate as the Tenant or\nPlatform, so a whitelisted shape is returned instead of the raw model to\navoid leaking internal fields (e.g. the tenant's database name).",
                "summary": "Describe the authenticated identity behind the current request",
                "tags": [
                    "AuthenticatedIdentity"
                ],
                "responses": {
                    "200": {
                        "description": "`User`",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "anyOf": [
                                        {
                                            "$ref": "#/components/schemas/User"
                                        },
                                        {
                                            "type": "object",
                                            "properties": {
                                                "type": {
                                                    "type": "string",
                                                    "const": "platform"
                                                },
                                                "id": {},
                                                "name": {
                                                    "type": "string",
                                                    "const": "Platform"
                                                }
                                            },
                                            "required": [
                                                "type",
                                                "id",
                                                "name"
                                            ]
                                        },
                                        {
                                            "type": "object",
                                            "properties": {
                                                "type": {
                                                    "type": "string",
                                                    "const": "organization"
                                                },
                                                "id": {},
                                                "name": {
                                                    "type": "string"
                                                },
                                                "slug": {
                                                    "type": "string"
                                                }
                                            },
                                            "required": [
                                                "type",
                                                "id",
                                                "name",
                                                "slug"
                                            ]
                                        }
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/authentication/magic-link": {
            "post": {
                "operationId": "passwordlessAuthentication.requestMagicLink",
                "description": "Email a magic link to the member for passwordless sign-in, creating the\naudience member if they do not already exist. `return_url` must be on an\nallowed origin. `data` is passed to `MagicLinkRequested` listeners, such as\nnewsletter subscriptions. Rate limited to 3 requests per email per minute,\nshared with the browser endpoint.",
                "summary": "Request Magic Link",
                "tags": [
                    "Authentication",
                    "PasswordlessAuthentication"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "email": {
                                        "type": "string",
                                        "format": "email"
                                    },
                                    "device_id": {
                                        "type": "string",
                                        "format": "uuid"
                                    },
                                    "return_url": {
                                        "type": "string",
                                        "format": "uri"
                                    },
                                    "data": {
                                        "type": [
                                            "array",
                                            "null"
                                        ],
                                        "items": {
                                            "type": "string"
                                        }
                                    }
                                },
                                "required": [
                                    "email",
                                    "device_id",
                                    "return_url"
                                ]
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "created": {
                                            "type": "boolean"
                                        },
                                        "jwt": {
                                            "type": "string"
                                        },
                                        "status": {
                                            "type": "string",
                                            "const": "ok"
                                        }
                                    },
                                    "required": [
                                        "created",
                                        "jwt",
                                        "status"
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationException"
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/authentication/magic-link/validate": {
            "post": {
                "operationId": "passwordlessAuthentication.validateMagicLink",
                "description": "Redeem a magic link token and authenticate the `device_id` session,\nreturning the member JWT for that session. The member's email is marked as\nverified.",
                "summary": "Validate Magic Link",
                "tags": [
                    "Authentication",
                    "PasswordlessAuthentication"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "token": {
                                        "type": "string"
                                    },
                                    "device_id": {
                                        "type": "string",
                                        "format": "uuid"
                                    }
                                },
                                "required": [
                                    "token",
                                    "device_id"
                                ]
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Authentication successful."
                                        },
                                        "jwt": {
                                            "type": "string"
                                        },
                                        "return_url": {
                                            "type": "string"
                                        },
                                        "audience_member_created": {
                                            "type": "string"
                                        },
                                        "sessions_authenticated": {
                                            "type": "array",
                                            "prefixItems": [
                                                {
                                                    "type": "string"
                                                }
                                            ],
                                            "minItems": 1,
                                            "maxItems": 1,
                                            "additionalItems": false
                                        }
                                    },
                                    "required": [
                                        "message",
                                        "jwt",
                                        "return_url",
                                        "audience_member_created",
                                        "sessions_authenticated"
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationException"
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/authentication/otp": {
            "post": {
                "operationId": "passwordlessAuthentication.requestOtp",
                "description": "Email a six-digit one-time passcode to the member, creating the audience\nmember if they do not already exist. A new code replaces any prior code for\nthe device. `data` is passed to `OtpRequested` listeners. Rate limited to 3\nrequests per email per minute, shared with the browser endpoint.",
                "summary": "Request OTP",
                "tags": [
                    "Authentication",
                    "PasswordlessAuthentication"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "email": {
                                        "type": "string",
                                        "format": "email"
                                    },
                                    "device_id": {
                                        "type": "string",
                                        "format": "uuid"
                                    },
                                    "return_url": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "format": "uri"
                                    },
                                    "data": {
                                        "type": [
                                            "array",
                                            "null"
                                        ],
                                        "items": {
                                            "type": "string"
                                        }
                                    }
                                },
                                "required": [
                                    "email",
                                    "device_id"
                                ]
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "created": {
                                            "type": "boolean"
                                        },
                                        "jwt": {
                                            "type": "string"
                                        },
                                        "status": {
                                            "type": "string",
                                            "const": "ok"
                                        }
                                    },
                                    "required": [
                                        "created",
                                        "jwt",
                                        "status"
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationException"
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/authentication/otp/validate": {
            "post": {
                "operationId": "passwordlessAuthentication.validateOtp",
                "description": "Check a six-digit code against the latest code issued to `email` on the\n`device_id` session and authenticate that session, returning the member\nJWT. A code locks after 5 incorrect attempts.",
                "summary": "Validate OTP",
                "tags": [
                    "Authentication",
                    "PasswordlessAuthentication"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "email": {
                                        "type": "string",
                                        "format": "email"
                                    },
                                    "device_id": {
                                        "type": "string",
                                        "format": "uuid"
                                    },
                                    "code": {
                                        "type": "string"
                                    }
                                },
                                "required": [
                                    "email",
                                    "device_id",
                                    "code"
                                ]
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Authentication successful."
                                        },
                                        "jwt": {
                                            "type": "string"
                                        },
                                        "return_url": {
                                            "type": "string"
                                        },
                                        "audience_member_created": {
                                            "type": "string"
                                        },
                                        "sessions_authenticated": {
                                            "type": "array",
                                            "prefixItems": [
                                                {
                                                    "type": "string"
                                                }
                                            ],
                                            "minItems": 1,
                                            "maxItems": 1,
                                            "additionalItems": false
                                        }
                                    },
                                    "required": [
                                        "message",
                                        "jwt",
                                        "return_url",
                                        "audience_member_created",
                                        "sessions_authenticated"
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationException"
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/audience-members/{memberId}/entitlements": {
            "get": {
                "operationId": "entitlement.index",
                "description": "Retrieve all entitlements for a given audience member, including their associated resources.\nSupports optional ?status=active|inactive filter.",
                "summary": "List Entitlements",
                "tags": [
                    "Entitlement"
                ],
                "parameters": [
                    {
                        "name": "memberId",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "status",
                        "in": "query",
                        "schema": {
                            "type": [
                                "string",
                                "null"
                            ],
                            "enum": [
                                "active",
                                "inactive",
                                null
                            ]
                        }
                    },
                    {
                        "name": "include",
                        "in": "query",
                        "schema": {
                            "type": "array",
                            "items": {
                                "type": "string",
                                "enum": [
                                    "audienceMember",
                                    "audienceMember.externalProfiles",
                                    "audienceMember.sessions",
                                    "audienceMember.sessions.audienceMember",
                                    "product"
                                ]
                            }
                        },
                        "explode": false
                    },
                    {
                        "name": "fields[entitlements]",
                        "in": "query",
                        "schema": {
                            "type": "array",
                            "items": {
                                "type": "string",
                                "enum": [
                                    "id",
                                    "product",
                                    "started_at",
                                    "ended_at",
                                    "revoked_at",
                                    "note",
                                    "status",
                                    "is_active",
                                    "created_at",
                                    "updated_at"
                                ]
                            }
                        },
                        "explode": false
                    },
                    {
                        "name": "fields[audience_members]",
                        "in": "query",
                        "schema": {
                            "type": "array",
                            "items": {
                                "type": "string",
                                "enum": [
                                    "name",
                                    "email",
                                    "email_verified",
                                    "meta",
                                    "entitlements",
                                    "purchases",
                                    "properties",
                                    "created_at",
                                    "updated_at"
                                ]
                            }
                        },
                        "explode": false
                    },
                    {
                        "name": "fields[audience_device_sessions]",
                        "in": "query",
                        "schema": {
                            "type": "array",
                            "items": {
                                "type": "string",
                                "enum": [
                                    "is_authenticated",
                                    "authenticated_at",
                                    "created_at",
                                    "updated_at"
                                ]
                            }
                        },
                        "explode": false
                    },
                    {
                        "name": "fields[products]",
                        "in": "query",
                        "schema": {
                            "type": "array",
                            "items": {
                                "type": "string",
                                "enum": [
                                    "name",
                                    "slug",
                                    "description",
                                    "created_at",
                                    "updated_at"
                                ]
                            }
                        },
                        "explode": false
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Array of `EntitlementResource`",
                        "content": {
                            "application/vnd.api+json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "$ref": "#/components/schemas/EntitlementResource"
                                            }
                                        },
                                        "included": {
                                            "type": "array",
                                            "items": {
                                                "anyOf": [
                                                    {
                                                        "$ref": "#/components/schemas/AudienceMemberResource"
                                                    },
                                                    {
                                                        "$ref": "#/components/schemas/AudienceMemberExternalProfileResource"
                                                    },
                                                    {
                                                        "$ref": "#/components/schemas/AudienceDeviceSessionResource"
                                                    },
                                                    {
                                                        "$ref": "#/components/schemas/JsonApiResource"
                                                    },
                                                    {
                                                        "$ref": "#/components/schemas/ProductResource"
                                                    }
                                                ]
                                            }
                                        }
                                    },
                                    "required": [
                                        "data"
                                    ]
                                }
                            }
                        }
                    },
                    "403": {
                        "$ref": "#/components/responses/AuthorizationException"
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationException"
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            },
            "post": {
                "operationId": "entitlement.store",
                "description": "Grant a new entitlement to an audience member.",
                "summary": "Create Entitlement",
                "tags": [
                    "Entitlement"
                ],
                "parameters": [
                    {
                        "name": "memberId",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "include",
                        "in": "query",
                        "schema": {
                            "type": "array",
                            "items": {
                                "type": "string",
                                "enum": [
                                    "audienceMember",
                                    "audienceMember.externalProfiles",
                                    "audienceMember.sessions",
                                    "audienceMember.sessions.audienceMember",
                                    "product"
                                ]
                            }
                        },
                        "explode": false
                    },
                    {
                        "name": "fields[entitlements]",
                        "in": "query",
                        "schema": {
                            "type": "array",
                            "items": {
                                "type": "string",
                                "enum": [
                                    "id",
                                    "product",
                                    "started_at",
                                    "ended_at",
                                    "revoked_at",
                                    "note",
                                    "status",
                                    "is_active",
                                    "created_at",
                                    "updated_at"
                                ]
                            }
                        },
                        "explode": false
                    },
                    {
                        "name": "fields[audience_members]",
                        "in": "query",
                        "schema": {
                            "type": "array",
                            "items": {
                                "type": "string",
                                "enum": [
                                    "name",
                                    "email",
                                    "email_verified",
                                    "meta",
                                    "entitlements",
                                    "purchases",
                                    "properties",
                                    "created_at",
                                    "updated_at"
                                ]
                            }
                        },
                        "explode": false
                    },
                    {
                        "name": "fields[audience_device_sessions]",
                        "in": "query",
                        "schema": {
                            "type": "array",
                            "items": {
                                "type": "string",
                                "enum": [
                                    "is_authenticated",
                                    "authenticated_at",
                                    "created_at",
                                    "updated_at"
                                ]
                            }
                        },
                        "explode": false
                    },
                    {
                        "name": "fields[products]",
                        "in": "query",
                        "schema": {
                            "type": "array",
                            "items": {
                                "type": "string",
                                "enum": [
                                    "name",
                                    "slug",
                                    "description",
                                    "created_at",
                                    "updated_at"
                                ]
                            }
                        },
                        "explode": false
                    }
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/StoreEntitlementRequest"
                            }
                        }
                    }
                },
                "responses": {
                    "201": {
                        "description": "`EntitlementResource`",
                        "content": {
                            "application/vnd.api+json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#/components/schemas/EntitlementResource"
                                        },
                                        "included": {
                                            "type": "array",
                                            "items": {
                                                "anyOf": [
                                                    {
                                                        "$ref": "#/components/schemas/AudienceMemberResource"
                                                    },
                                                    {
                                                        "$ref": "#/components/schemas/AudienceMemberExternalProfileResource"
                                                    },
                                                    {
                                                        "$ref": "#/components/schemas/AudienceDeviceSessionResource"
                                                    },
                                                    {
                                                        "$ref": "#/components/schemas/JsonApiResource"
                                                    },
                                                    {
                                                        "$ref": "#/components/schemas/ProductResource"
                                                    }
                                                ]
                                            }
                                        }
                                    },
                                    "required": [
                                        "data"
                                    ]
                                }
                            }
                        }
                    },
                    "403": {
                        "$ref": "#/components/responses/AuthorizationException"
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationException"
                    }
                }
            }
        },
        "/audience-members/{memberId}/entitlements/{entitlementId}": {
            "get": {
                "operationId": "entitlement.show",
                "description": "Retrieve a specific entitlement for a given audience member.",
                "summary": "Get Entitlement",
                "tags": [
                    "Entitlement"
                ],
                "parameters": [
                    {
                        "name": "memberId",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "entitlementId",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "`EntitlementResource`",
                        "content": {
                            "application/vnd.api+json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#/components/schemas/EntitlementResource"
                                        },
                                        "included": {
                                            "type": "array",
                                            "items": {
                                                "anyOf": [
                                                    {
                                                        "$ref": "#/components/schemas/AudienceMemberResource"
                                                    },
                                                    {
                                                        "$ref": "#/components/schemas/AudienceMemberExternalProfileResource"
                                                    },
                                                    {
                                                        "$ref": "#/components/schemas/AudienceDeviceSessionResource"
                                                    },
                                                    {
                                                        "$ref": "#/components/schemas/JsonApiResource"
                                                    },
                                                    {
                                                        "$ref": "#/components/schemas/ProductResource"
                                                    }
                                                ]
                                            }
                                        }
                                    },
                                    "required": [
                                        "data"
                                    ]
                                }
                            }
                        }
                    },
                    "403": {
                        "$ref": "#/components/responses/AuthorizationException"
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            },
            "delete": {
                "operationId": "entitlement.destroy",
                "description": "Revoke a specific entitlement from an audience member.",
                "summary": "Revoke Entitlement",
                "tags": [
                    "Entitlement"
                ],
                "parameters": [
                    {
                        "name": "memberId",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "entitlementId",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "204": {
                        "description": "No content"
                    },
                    "403": {
                        "$ref": "#/components/responses/AuthorizationException"
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/platform/events": {
            "get": {
                "operationId": "eventQueue.index",
                "description": "Return up to 10,000 events from the front of the Redis list.",
                "summary": "List Queued Events",
                "tags": [
                    "EventQueue"
                ],
                "responses": {
                    "200": {
                        "description": "`EventBatchResource`",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#/components/schemas/EventBatchResource"
                                        }
                                    },
                                    "required": [
                                        "data"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            },
            "delete": {
                "operationId": "eventQueue.destroy",
                "description": "Remove exactly `count` events from the front of the Redis list. The caller\nmust pass `?count=N` where N matches the count returned by the list endpoint\nto prevent deleting events that arrived after the read.",
                "summary": "Flush Queued Events",
                "tags": [
                    "EventQueue"
                ],
                "parameters": [
                    {
                        "name": "count",
                        "in": "query",
                        "required": true,
                        "description": "The number of events to delete from the front of the queue. Must match the count returned by the list endpoint.",
                        "schema": {
                            "type": "integer",
                            "minimum": 1
                        },
                        "example": 100
                    }
                ],
                "responses": {
                    "204": {
                        "description": "No content"
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationException"
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/platform/heartbeats": {
            "get": {
                "operationId": "heartbeatQueue.index",
                "description": "Return up to 10,000 heartbeats from the front of the Redis list.",
                "summary": "List Queued Heartbeats",
                "tags": [
                    "HeartbeatQueue"
                ],
                "responses": {
                    "200": {
                        "description": "`HeartbeatBatchResource`",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#/components/schemas/HeartbeatBatchResource"
                                        }
                                    },
                                    "required": [
                                        "data"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            },
            "delete": {
                "operationId": "heartbeatQueue.destroy",
                "description": "Remove exactly `count` heartbeats from the front of the Redis list (oldest\nfirst). The caller must pass `?count=N` where N matches the count returned\nby the list endpoint to prevent deleting heartbeats that arrived after the\nread.",
                "summary": "Flush Queued Heartbeats",
                "tags": [
                    "HeartbeatQueue"
                ],
                "parameters": [
                    {
                        "name": "count",
                        "in": "query",
                        "required": true,
                        "description": "The number of heartbeats to delete from the front of the queue. Must match the count returned by the list endpoint.",
                        "schema": {
                            "type": "integer",
                            "minimum": 1
                        },
                        "example": 100
                    }
                ],
                "responses": {
                    "204": {
                        "description": "No content"
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationException"
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/interactions": {
            "get": {
                "operationId": "interactionManagement.index",
                "description": "Retrieve a paginated list of interactions, most recently updated first.\nFilter with `status` (draft, published), `trigger_mode` (manual,\nautomatic), and `search` (matches title and slug). Archived interactions\nare excluded unless `include_deleted` is set. Page size is controlled\nwith `per_page` (1-200).",
                "summary": "List Interactions",
                "tags": [
                    "Interaction",
                    "InteractionManagement"
                ],
                "parameters": [
                    {
                        "name": "status",
                        "in": "query",
                        "schema": {
                            "type": [
                                "string",
                                "null"
                            ],
                            "enum": [
                                "draft",
                                "published",
                                null
                            ]
                        }
                    },
                    {
                        "name": "trigger_mode",
                        "in": "query",
                        "schema": {
                            "type": [
                                "string",
                                "null"
                            ],
                            "enum": [
                                "manual",
                                "automatic",
                                null
                            ]
                        }
                    },
                    {
                        "name": "search",
                        "in": "query",
                        "schema": {
                            "type": [
                                "string",
                                "null"
                            ],
                            "maxLength": 255
                        }
                    },
                    {
                        "name": "include_deleted",
                        "in": "query",
                        "schema": {
                            "type": [
                                "boolean",
                                "null"
                            ]
                        }
                    },
                    {
                        "name": "per_page",
                        "in": "query",
                        "schema": {
                            "type": [
                                "integer",
                                "null"
                            ],
                            "minimum": 1,
                            "maximum": 200
                        }
                    },
                    {
                        "name": "fields[interaction_managements]",
                        "in": "query",
                        "schema": {
                            "type": "array",
                            "items": {
                                "type": "string",
                                "enum": [
                                    "title",
                                    "slug",
                                    "status",
                                    "trigger_mode",
                                    "actions",
                                    "journeys",
                                    "created_at",
                                    "updated_at",
                                    "deleted_at"
                                ]
                            }
                        },
                        "explode": false
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Paginated set of `InteractionManagementResource`",
                        "content": {
                            "application/vnd.api+json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "$ref": "#/components/schemas/InteractionManagementResource"
                                            }
                                        },
                                        "links": {
                                            "type": "object",
                                            "properties": {
                                                "first": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "last": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "prev": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "next": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                }
                                            },
                                            "required": [
                                                "first",
                                                "last",
                                                "prev",
                                                "next"
                                            ]
                                        },
                                        "meta": {
                                            "type": "object",
                                            "properties": {
                                                "current_page": {
                                                    "type": "integer",
                                                    "minimum": 1
                                                },
                                                "from": {
                                                    "type": [
                                                        "integer",
                                                        "null"
                                                    ],
                                                    "minimum": 1
                                                },
                                                "last_page": {
                                                    "type": "integer",
                                                    "minimum": 1
                                                },
                                                "links": {
                                                    "type": "array",
                                                    "description": "Generated paginator links.",
                                                    "items": {
                                                        "type": "object",
                                                        "properties": {
                                                            "url": {
                                                                "type": [
                                                                    "string",
                                                                    "null"
                                                                ]
                                                            },
                                                            "label": {
                                                                "type": "string"
                                                            },
                                                            "active": {
                                                                "type": "boolean"
                                                            }
                                                        },
                                                        "required": [
                                                            "url",
                                                            "label",
                                                            "active"
                                                        ]
                                                    }
                                                },
                                                "path": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ],
                                                    "description": "Base path for paginator generated URLs."
                                                },
                                                "per_page": {
                                                    "type": "integer",
                                                    "description": "Number of items shown per page.",
                                                    "minimum": 0
                                                },
                                                "to": {
                                                    "type": [
                                                        "integer",
                                                        "null"
                                                    ],
                                                    "description": "Number of the last item in the slice.",
                                                    "minimum": 1
                                                },
                                                "total": {
                                                    "type": "integer",
                                                    "description": "Total number of items being paginated.",
                                                    "minimum": 0
                                                }
                                            },
                                            "required": [
                                                "current_page",
                                                "from",
                                                "last_page",
                                                "links",
                                                "path",
                                                "per_page",
                                                "to",
                                                "total"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "data",
                                        "links",
                                        "meta"
                                    ]
                                }
                            }
                        }
                    },
                    "403": {
                        "$ref": "#/components/responses/AuthorizationException"
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationException"
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            },
            "post": {
                "operationId": "interactionManagement.store",
                "description": "Create an interaction. A manual interaction needs at least one action; an\nautomatic one may have none, leaving visitors who match no journey\nuntouched. Journeys are only deep-validated for automatic interactions \u2014\na manual interaction's journeys are dormant until it is switched over.",
                "summary": "Create Interaction",
                "tags": [
                    "Interaction",
                    "InteractionManagement"
                ],
                "parameters": [
                    {
                        "name": "fields[interaction_managements]",
                        "in": "query",
                        "schema": {
                            "type": "array",
                            "items": {
                                "type": "string",
                                "enum": [
                                    "title",
                                    "slug",
                                    "status",
                                    "trigger_mode",
                                    "actions",
                                    "journeys",
                                    "created_at",
                                    "updated_at",
                                    "deleted_at"
                                ]
                            }
                        },
                        "explode": false
                    }
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/StoreInteractionRequest"
                            }
                        }
                    }
                },
                "responses": {
                    "201": {
                        "description": "`InteractionManagementResource`",
                        "content": {
                            "application/vnd.api+json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#/components/schemas/InteractionManagementResource"
                                        }
                                    },
                                    "required": [
                                        "data"
                                    ]
                                }
                            }
                        }
                    },
                    "403": {
                        "$ref": "#/components/responses/AuthorizationException"
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationException"
                    }
                }
            }
        },
        "/interactions/{id}": {
            "get": {
                "operationId": "interactionManagement.show",
                "description": "Retrieve a single interaction, addressed by its ID or its slug, with its\nfull targeting configuration. Archived interactions are included and\ncarry a `deleted_at`.",
                "summary": "Get Interaction",
                "tags": [
                    "Interaction",
                    "InteractionManagement"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "fields[interaction_managements]",
                        "in": "query",
                        "schema": {
                            "type": "array",
                            "items": {
                                "type": "string",
                                "enum": [
                                    "title",
                                    "slug",
                                    "status",
                                    "trigger_mode",
                                    "actions",
                                    "journeys",
                                    "created_at",
                                    "updated_at",
                                    "deleted_at"
                                ]
                            }
                        },
                        "explode": false
                    }
                ],
                "responses": {
                    "200": {
                        "description": "`InteractionManagementResource`",
                        "content": {
                            "application/vnd.api+json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#/components/schemas/InteractionManagementResource"
                                        }
                                    },
                                    "required": [
                                        "data"
                                    ]
                                }
                            }
                        }
                    },
                    "403": {
                        "$ref": "#/components/responses/AuthorizationException"
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            },
            "put": {
                "operationId": "interactionManagement.update",
                "description": "Replace an interaction's configuration. Omitting `slug` keeps the current\none. A `revision_note` is recorded against the revision this save\ncreates.",
                "summary": "Update Interaction",
                "tags": [
                    "Interaction",
                    "InteractionManagement"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "fields[interaction_managements]",
                        "in": "query",
                        "schema": {
                            "type": "array",
                            "items": {
                                "type": "string",
                                "enum": [
                                    "title",
                                    "slug",
                                    "status",
                                    "trigger_mode",
                                    "actions",
                                    "journeys",
                                    "created_at",
                                    "updated_at",
                                    "deleted_at"
                                ]
                            }
                        },
                        "explode": false
                    }
                ],
                "responses": {
                    "200": {
                        "description": "`InteractionManagementResource`",
                        "content": {
                            "application/vnd.api+json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#/components/schemas/InteractionManagementResource"
                                        }
                                    },
                                    "required": [
                                        "data"
                                    ]
                                }
                            }
                        }
                    },
                    "403": {
                        "$ref": "#/components/responses/AuthorizationException"
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationException"
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            },
            "delete": {
                "operationId": "interactionManagement.destroy",
                "description": "Soft-delete an interaction. It stops being served and stops being\nevaluated, but can be brought back with the restore endpoint.",
                "summary": "Archive Interaction",
                "tags": [
                    "Interaction",
                    "InteractionManagement"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "204": {
                        "description": "No content"
                    },
                    "403": {
                        "$ref": "#/components/responses/AuthorizationException"
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/interactions/{id}/duplicate": {
            "post": {
                "operationId": "interactionManagement.duplicate",
                "description": "Copy an interaction \u2014 actions, journeys, and trigger mode \u2014 into a new\ndraft with a generated slug.",
                "summary": "Duplicate Interaction",
                "tags": [
                    "Interaction",
                    "InteractionManagement"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "fields[interaction_managements]",
                        "in": "query",
                        "schema": {
                            "type": "array",
                            "items": {
                                "type": "string",
                                "enum": [
                                    "title",
                                    "slug",
                                    "status",
                                    "trigger_mode",
                                    "actions",
                                    "journeys",
                                    "created_at",
                                    "updated_at",
                                    "deleted_at"
                                ]
                            }
                        },
                        "explode": false
                    }
                ],
                "responses": {
                    "201": {
                        "description": "`InteractionManagementResource`",
                        "content": {
                            "application/vnd.api+json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#/components/schemas/InteractionManagementResource"
                                        }
                                    },
                                    "required": [
                                        "data"
                                    ]
                                }
                            }
                        }
                    },
                    "403": {
                        "$ref": "#/components/responses/AuthorizationException"
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/interactions/{id}/unpublish": {
            "post": {
                "operationId": "interactionManagement.unpublish",
                "description": "Return a published interaction to draft, taking it out of the targeting\nsnapshot without archiving it.",
                "summary": "Unpublish Interaction",
                "tags": [
                    "Interaction",
                    "InteractionManagement"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "fields[interaction_managements]",
                        "in": "query",
                        "schema": {
                            "type": "array",
                            "items": {
                                "type": "string",
                                "enum": [
                                    "title",
                                    "slug",
                                    "status",
                                    "trigger_mode",
                                    "actions",
                                    "journeys",
                                    "created_at",
                                    "updated_at",
                                    "deleted_at"
                                ]
                            }
                        },
                        "explode": false
                    }
                ],
                "responses": {
                    "200": {
                        "description": "`InteractionManagementResource`",
                        "content": {
                            "application/vnd.api+json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#/components/schemas/InteractionManagementResource"
                                        }
                                    },
                                    "required": [
                                        "data"
                                    ]
                                }
                            }
                        }
                    },
                    "403": {
                        "$ref": "#/components/responses/AuthorizationException"
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationException"
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/interactions/{id}/restore": {
            "post": {
                "operationId": "interactionManagement.restore",
                "description": "Bring an archived interaction back as a draft. It stays unpublished until\nits status is set explicitly, so restoring can never resume firing it.",
                "summary": "Restore Interaction",
                "tags": [
                    "Interaction",
                    "InteractionManagement"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "fields[interaction_managements]",
                        "in": "query",
                        "schema": {
                            "type": "array",
                            "items": {
                                "type": "string",
                                "enum": [
                                    "title",
                                    "slug",
                                    "status",
                                    "trigger_mode",
                                    "actions",
                                    "journeys",
                                    "created_at",
                                    "updated_at",
                                    "deleted_at"
                                ]
                            }
                        },
                        "explode": false
                    }
                ],
                "responses": {
                    "200": {
                        "description": "`InteractionManagementResource`",
                        "content": {
                            "application/vnd.api+json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#/components/schemas/InteractionManagementResource"
                                        }
                                    },
                                    "required": [
                                        "data"
                                    ]
                                }
                            }
                        }
                    },
                    "403": {
                        "$ref": "#/components/responses/AuthorizationException"
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/interactions/{id}/force": {
            "delete": {
                "operationId": "interactionManagement.forceDestroy",
                "description": "Permanently delete an interaction and its revision history. This cannot\nbe undone.",
                "summary": "Delete Interaction",
                "tags": [
                    "Interaction",
                    "InteractionManagement"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "204": {
                        "description": "No content"
                    },
                    "403": {
                        "$ref": "#/components/responses/AuthorizationException"
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/milestones": {
            "get": {
                "operationId": "milestone.index",
                "description": "Retrieve milestones, newest date first. Milestones are dated notes shown on analytics charts, optionally\nlimited to some properties. Filter by date range, or by property to get the milestones its charts show.",
                "summary": "List Milestones",
                "tags": [
                    "Milestone"
                ],
                "parameters": [
                    {
                        "name": "from",
                        "in": "query",
                        "schema": {
                            "type": [
                                "string",
                                "null"
                            ],
                            "format": "date"
                        }
                    },
                    {
                        "name": "to",
                        "in": "query",
                        "schema": {
                            "type": [
                                "string",
                                "null"
                            ],
                            "format": "date"
                        }
                    },
                    {
                        "name": "property_id",
                        "in": "query",
                        "schema": {
                            "type": [
                                "string",
                                "null"
                            ],
                            "format": "uuid"
                        }
                    },
                    {
                        "name": "fields[milestones]",
                        "in": "query",
                        "schema": {
                            "type": "array",
                            "items": {
                                "type": "string",
                                "enum": [
                                    "date",
                                    "title",
                                    "note",
                                    "url",
                                    "property_ids",
                                    "created_at",
                                    "updated_at"
                                ]
                            }
                        },
                        "explode": false
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Array of `MilestoneResource`",
                        "content": {
                            "application/vnd.api+json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "$ref": "#/components/schemas/MilestoneResource"
                                            }
                                        }
                                    },
                                    "required": [
                                        "data"
                                    ]
                                }
                            }
                        }
                    },
                    "403": {
                        "$ref": "#/components/responses/AuthorizationException"
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationException"
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            },
            "post": {
                "operationId": "milestone.store",
                "description": "Create a milestone. Leave `property_ids` empty to show it on every property's charts.",
                "summary": "Create Milestone",
                "tags": [
                    "Milestone"
                ],
                "parameters": [
                    {
                        "name": "fields[milestones]",
                        "in": "query",
                        "schema": {
                            "type": "array",
                            "items": {
                                "type": "string",
                                "enum": [
                                    "date",
                                    "title",
                                    "note",
                                    "url",
                                    "property_ids",
                                    "created_at",
                                    "updated_at"
                                ]
                            }
                        },
                        "explode": false
                    }
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/StoreMilestoneRequest"
                            }
                        }
                    }
                },
                "responses": {
                    "201": {
                        "description": "`MilestoneResource`",
                        "content": {
                            "application/vnd.api+json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#/components/schemas/MilestoneResource"
                                        }
                                    },
                                    "required": [
                                        "data"
                                    ]
                                }
                            }
                        }
                    },
                    "403": {
                        "$ref": "#/components/responses/AuthorizationException"
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationException"
                    }
                }
            }
        },
        "/milestones/{id}": {
            "get": {
                "operationId": "milestone.show",
                "description": "Retrieve a single milestone by its ID.",
                "summary": "Get Milestone",
                "tags": [
                    "Milestone"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "fields[milestones]",
                        "in": "query",
                        "schema": {
                            "type": "array",
                            "items": {
                                "type": "string",
                                "enum": [
                                    "date",
                                    "title",
                                    "note",
                                    "url",
                                    "property_ids",
                                    "created_at",
                                    "updated_at"
                                ]
                            }
                        },
                        "explode": false
                    }
                ],
                "responses": {
                    "200": {
                        "description": "`MilestoneResource`",
                        "content": {
                            "application/vnd.api+json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#/components/schemas/MilestoneResource"
                                        }
                                    },
                                    "required": [
                                        "data"
                                    ]
                                }
                            }
                        }
                    },
                    "403": {
                        "$ref": "#/components/responses/AuthorizationException"
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            },
            "put": {
                "operationId": "milestone.update",
                "description": "Update a milestone. Omitted fields keep their values; `property_ids` replaces the whole list when given.",
                "summary": "Update Milestone",
                "tags": [
                    "Milestone"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "fields[milestones]",
                        "in": "query",
                        "schema": {
                            "type": "array",
                            "items": {
                                "type": "string",
                                "enum": [
                                    "date",
                                    "title",
                                    "note",
                                    "url",
                                    "property_ids",
                                    "created_at",
                                    "updated_at"
                                ]
                            }
                        },
                        "explode": false
                    }
                ],
                "requestBody": {
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/UpdateMilestoneRequest"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "`MilestoneResource`",
                        "content": {
                            "application/vnd.api+json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#/components/schemas/MilestoneResource"
                                        }
                                    },
                                    "required": [
                                        "data"
                                    ]
                                }
                            }
                        }
                    },
                    "403": {
                        "$ref": "#/components/responses/AuthorizationException"
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationException"
                    }
                }
            },
            "delete": {
                "operationId": "milestone.destroy",
                "description": "Permanently delete a milestone by its ID.",
                "summary": "Delete Milestone",
                "tags": [
                    "Milestone"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "204": {
                        "description": "No content"
                    },
                    "403": {
                        "$ref": "#/components/responses/AuthorizationException"
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/products": {
            "get": {
                "operationId": "product.index",
                "description": "Retrieve all products ordered by most recently created.",
                "summary": "List Products",
                "tags": [
                    "Product"
                ],
                "parameters": [
                    {
                        "name": "fields[products]",
                        "in": "query",
                        "schema": {
                            "type": "array",
                            "items": {
                                "type": "string",
                                "enum": [
                                    "name",
                                    "slug",
                                    "description",
                                    "created_at",
                                    "updated_at"
                                ]
                            }
                        },
                        "explode": false
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Array of `ProductResource`",
                        "content": {
                            "application/vnd.api+json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "$ref": "#/components/schemas/ProductResource"
                                            }
                                        }
                                    },
                                    "required": [
                                        "data"
                                    ]
                                }
                            }
                        }
                    },
                    "403": {
                        "$ref": "#/components/responses/AuthorizationException"
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            },
            "post": {
                "operationId": "product.store",
                "description": "Create a new product with the provided attributes.",
                "summary": "Create Product",
                "tags": [
                    "Product"
                ],
                "parameters": [
                    {
                        "name": "fields[products]",
                        "in": "query",
                        "schema": {
                            "type": "array",
                            "items": {
                                "type": "string",
                                "enum": [
                                    "name",
                                    "slug",
                                    "description",
                                    "created_at",
                                    "updated_at"
                                ]
                            }
                        },
                        "explode": false
                    }
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/StoreProductRequest"
                            }
                        }
                    }
                },
                "responses": {
                    "201": {
                        "description": "`ProductResource`",
                        "content": {
                            "application/vnd.api+json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#/components/schemas/ProductResource"
                                        }
                                    },
                                    "required": [
                                        "data"
                                    ]
                                }
                            }
                        }
                    },
                    "403": {
                        "$ref": "#/components/responses/AuthorizationException"
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationException"
                    }
                }
            }
        },
        "/products/{id}": {
            "get": {
                "operationId": "product.show",
                "description": "Retrieve a single product by its ID.",
                "summary": "Get Product",
                "tags": [
                    "Product"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "fields[products]",
                        "in": "query",
                        "schema": {
                            "type": "array",
                            "items": {
                                "type": "string",
                                "enum": [
                                    "name",
                                    "slug",
                                    "description",
                                    "created_at",
                                    "updated_at"
                                ]
                            }
                        },
                        "explode": false
                    }
                ],
                "responses": {
                    "200": {
                        "description": "`ProductResource`",
                        "content": {
                            "application/vnd.api+json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#/components/schemas/ProductResource"
                                        }
                                    },
                                    "required": [
                                        "data"
                                    ]
                                }
                            }
                        }
                    },
                    "403": {
                        "$ref": "#/components/responses/AuthorizationException"
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            },
            "put": {
                "operationId": "product.update",
                "description": "Update the name of an existing product.",
                "summary": "Update Product",
                "tags": [
                    "Product"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "fields[products]",
                        "in": "query",
                        "schema": {
                            "type": "array",
                            "items": {
                                "type": "string",
                                "enum": [
                                    "name",
                                    "slug",
                                    "description",
                                    "created_at",
                                    "updated_at"
                                ]
                            }
                        },
                        "explode": false
                    }
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/UpdateProductRequest"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "`ProductResource`",
                        "content": {
                            "application/vnd.api+json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#/components/schemas/ProductResource"
                                        }
                                    },
                                    "required": [
                                        "data"
                                    ]
                                }
                            }
                        }
                    },
                    "403": {
                        "$ref": "#/components/responses/AuthorizationException"
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationException"
                    }
                }
            },
            "delete": {
                "operationId": "product.destroy",
                "description": "Permanently delete a product by its ID.",
                "summary": "Delete Product",
                "tags": [
                    "Product"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "204": {
                        "description": "No content"
                    },
                    "403": {
                        "$ref": "#/components/responses/AuthorizationException"
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/templates/{id}": {
            "get": {
                "operationId": "template.show",
                "description": "Retrieve a single template by its ID.",
                "summary": "Get Template",
                "tags": [
                    "Template"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "`TemplateResource`",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#/components/schemas/TemplateResource"
                                        }
                                    },
                                    "required": [
                                        "data"
                                    ]
                                }
                            }
                        }
                    },
                    "403": {
                        "$ref": "#/components/responses/AuthorizationException"
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/health": {
            "get": {
                "operationId": "tenantHealth.show",
                "description": "Report the current tenant's Redis queue depths and the age of the oldest\nqueued item, for consumption by an external monitor. Returns a 503 when\nRedis cannot be reached so naive HTTP checks trip on a degraded state.",
                "summary": "Tenant Health Summary",
                "tags": [
                    "TenantHealth"
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "string"
                                }
                            }
                        }
                    },
                    "403": {
                        "$ref": "#/components/responses/AuthorizationException"
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/recommendations": {
            "get": {
                "operationId": "tokenRecommendation.index",
                "description": "Ranked article recommendations for a device or article, from the\ntenant's configured engine. Answers 502 when the engine is unreachable.",
                "summary": "List Recommendations",
                "tags": [
                    "TokenRecommendation"
                ],
                "parameters": [
                    {
                        "name": "device",
                        "in": "query",
                        "schema": {
                            "type": [
                                "string",
                                "null"
                            ],
                            "format": "uuid"
                        }
                    },
                    {
                        "name": "path",
                        "in": "query",
                        "schema": {
                            "type": [
                                "string",
                                "null"
                            ],
                            "maxLength": 2048
                        }
                    },
                    {
                        "name": "limit",
                        "in": "query",
                        "schema": {
                            "type": [
                                "integer",
                                "null"
                            ],
                            "minimum": 1,
                            "maximum": 24
                        }
                    },
                    {
                        "name": "max_age_days",
                        "in": "query",
                        "schema": {
                            "type": [
                                "integer",
                                "null"
                            ],
                            "minimum": 0,
                            "maximum": 3650
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "request_id": {
                                            "type": [
                                                "string",
                                                "null"
                                            ]
                                        },
                                        "took_ms": {
                                            "type": "number"
                                        },
                                        "items": {
                                            "type": "array",
                                            "items": {}
                                        }
                                    },
                                    "required": [
                                        "request_id",
                                        "took_ms",
                                        "items"
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationException"
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/recommendations/click": {
            "post": {
                "operationId": "tokenRecommendation.click",
                "description": "Reports a click on one served recommendation, keyed to the\n`request_id` the serving call returned. Answers 502 when the engine is\nunreachable.",
                "summary": "Record Recommendation Click",
                "tags": [
                    "TokenRecommendation"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "request_id": {
                                        "type": "string",
                                        "maxLength": 64
                                    },
                                    "path": {
                                        "type": "string",
                                        "maxLength": 2048
                                    },
                                    "device": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "format": "uuid"
                                    },
                                    "source_path": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "maxLength": 2048
                                    },
                                    "strategy": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "maxLength": 32
                                    },
                                    "position": {
                                        "type": [
                                            "integer",
                                            "null"
                                        ],
                                        "minimum": 0,
                                        "maximum": 100
                                    }
                                },
                                "required": [
                                    "request_id",
                                    "path"
                                ]
                            }
                        }
                    }
                },
                "responses": {
                    "204": {
                        "description": "No content"
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationException"
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/recommendations/preview": {
            "post": {
                "operationId": "tokenRecommendation.preview",
                "description": "Ranked recommendations for a hypothetical reading history, without a\nreal reader session behind it. Answers 501 when the tenant's\nconfigured engine cannot preview, and 502 when it can but is\nunreachable.",
                "summary": "Preview Recommendations",
                "tags": [
                    "TokenRecommendation"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "reads": {
                                        "type": "array",
                                        "items": {
                                            "type": "object",
                                            "properties": {
                                                "path": {
                                                    "type": "string",
                                                    "maxLength": 2048
                                                },
                                                "seconds": {
                                                    "type": "integer",
                                                    "minimum": 0
                                                }
                                            },
                                            "required": [
                                                "path",
                                                "seconds"
                                            ]
                                        },
                                        "maxItems": 50
                                    },
                                    "limit": {
                                        "type": [
                                            "integer",
                                            "null"
                                        ],
                                        "minimum": 1,
                                        "maximum": 24
                                    },
                                    "trending": {
                                        "type": [
                                            "boolean",
                                            "null"
                                        ]
                                    },
                                    "max_age_days": {
                                        "type": [
                                            "integer",
                                            "null"
                                        ],
                                        "minimum": 0,
                                        "maximum": 3650
                                    }
                                },
                                "required": [
                                    "reads"
                                ]
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "string"
                                }
                            }
                        }
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationException"
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        }
    },
    "components": {
        "securitySchemes": {
            "http": {
                "type": "http",
                "scheme": "bearer"
            }
        },
        "schemas": {
            "AnalyticsQueryRequest": {
                "type": "object",
                "description": "An ad-hoc report definition to run, with optional `start`/`end` dates replacing its preset range.",
                "properties": {
                    "range": {
                        "type": [
                            "string",
                            "null"
                        ],
                        "enum": [
                            "7d",
                            "30d",
                            "90d",
                            "1y",
                            null
                        ]
                    },
                    "start": {
                        "type": [
                            "string",
                            "null"
                        ],
                        "format": "date"
                    },
                    "end": {
                        "type": [
                            "string",
                            "null"
                        ],
                        "format": "date"
                    },
                    "property": {
                        "type": [
                            "string",
                            "null"
                        ],
                        "enum": [
                            "",
                            null
                        ]
                    },
                    "product": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "include": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "limit": {
                        "type": [
                            "integer",
                            "null"
                        ],
                        "minimum": 1,
                        "maximum": 50
                    },
                    "definition": {
                        "type": "object",
                        "properties": {
                            "version": {
                                "type": [
                                    "integer",
                                    "null"
                                ],
                                "enum": [
                                    "1",
                                    null
                                ]
                            },
                            "measure": {
                                "type": "string",
                                "enum": [
                                    "events",
                                    "sessions",
                                    "readers",
                                    "members",
                                    "engaged_seconds",
                                    "avg_engaged_seconds"
                                ]
                            },
                            "types": {
                                "type": "array",
                                "items": {
                                    "type": "string",
                                    "pattern": "^[A-Za-z0-9_.:-]{1,64}$"
                                },
                                "maxItems": 20
                            },
                            "filters": {
                                "type": "array",
                                "items": {
                                    "type": "object",
                                    "properties": {
                                        "dimension": {
                                            "type": "string",
                                            "enum": [
                                                "type",
                                                "page_path",
                                                "page_title",
                                                "section",
                                                "referrer",
                                                "utm_source",
                                                "utm_medium",
                                                "utm_campaign",
                                                "interaction_type",
                                                "gate_type",
                                                "object_type",
                                                "object_id",
                                                "content_type",
                                                "device",
                                                "browser",
                                                "os",
                                                "reader_status",
                                                "property",
                                                "hostname"
                                            ]
                                        },
                                        "operator": {
                                            "type": "string",
                                            "enum": [
                                                "eq",
                                                "neq",
                                                "contains",
                                                "not_contains"
                                            ]
                                        },
                                        "value": {
                                            "type": "string",
                                            "maxLength": 2048
                                        }
                                    },
                                    "required": [
                                        "dimension",
                                        "operator",
                                        "value"
                                    ]
                                },
                                "maxItems": 10
                            },
                            "breakdown": {
                                "type": [
                                    "string",
                                    "null"
                                ],
                                "enum": [
                                    "type",
                                    "page_path",
                                    "page_title",
                                    "section",
                                    "referrer",
                                    "utm_source",
                                    "utm_medium",
                                    "utm_campaign",
                                    "interaction_type",
                                    "gate_type",
                                    "object_type",
                                    "object_id",
                                    "content_type",
                                    "device",
                                    "browser",
                                    "os",
                                    "reader_status",
                                    "property",
                                    "hostname",
                                    null
                                ]
                            },
                            "resolution": {
                                "type": [
                                    "string",
                                    "null"
                                ],
                                "enum": [
                                    "hour",
                                    "day",
                                    "week",
                                    null
                                ]
                            },
                            "range": {
                                "type": "string",
                                "enum": [
                                    "7d",
                                    "30d",
                                    "90d",
                                    "1y"
                                ]
                            },
                            "chart": {
                                "type": "string",
                                "enum": [
                                    "bar",
                                    "area",
                                    "line",
                                    "table"
                                ]
                            }
                        },
                        "required": [
                            "measure",
                            "range",
                            "chart"
                        ]
                    }
                },
                "required": [
                    "definition"
                ],
                "title": "AnalyticsQueryRequest"
            },
            "AnalyticsResource": {
                "type": "object",
                "additionalProperties": {},
                "title": "AnalyticsResource"
            },
            "AudienceDeviceSessionResource": {
                "type": "object",
                "properties": {
                    "id": {
                        "type": "string"
                    },
                    "type": {
                        "type": "string",
                        "const": "audience_device_sessions"
                    },
                    "attributes": {
                        "type": "object",
                        "properties": {
                            "is_authenticated": {
                                "type": "string"
                            },
                            "authenticated_at": {
                                "type": "string"
                            },
                            "created_at": {
                                "type": "string"
                            },
                            "updated_at": {
                                "type": "string"
                            }
                        }
                    },
                    "relationships": {
                        "type": "object",
                        "properties": {
                            "audienceMember": {
                                "type": "object",
                                "properties": {
                                    "data": {
                                        "type": "object",
                                        "properties": {
                                            "id": {
                                                "type": "string"
                                            },
                                            "type": {
                                                "type": "string"
                                            }
                                        },
                                        "required": [
                                            "id",
                                            "type"
                                        ]
                                    }
                                },
                                "required": [
                                    "data"
                                ]
                            }
                        }
                    }
                },
                "required": [
                    "id",
                    "type"
                ],
                "title": "AudienceDeviceSessionResource"
            },
            "AudienceEventResource": {
                "type": "object",
                "properties": {
                    "id": {
                        "type": "string"
                    },
                    "type": {
                        "type": "string",
                        "const": "audience_events"
                    },
                    "attributes": {
                        "type": "object",
                        "properties": {
                            "type": {
                                "type": "string"
                            },
                            "audience_member_id": {
                                "type": "string"
                            },
                            "session_id": {
                                "type": "string"
                            },
                            "device_id": {
                                "type": "string"
                            },
                            "property_slug": {
                                "type": "string"
                            },
                            "page_hostname": {
                                "type": "string"
                            },
                            "page_path": {
                                "type": "string"
                            },
                            "page_title": {
                                "type": "string"
                            },
                            "referer": {
                                "type": "string"
                            },
                            "url_in_click": {
                                "type": "string"
                            },
                            "content_type": {
                                "type": "string"
                            },
                            "content_id": {
                                "type": "string"
                            },
                            "object_type": {
                                "type": "string"
                            },
                            "object_id": {
                                "type": "string"
                            },
                            "utm_source": {
                                "type": "string"
                            },
                            "utm_medium": {
                                "type": "string"
                            },
                            "utm_campaign": {
                                "type": "string"
                            },
                            "utm_content": {
                                "type": "string"
                            },
                            "utm_term": {
                                "type": "string"
                            },
                            "data": {
                                "type": "string"
                            },
                            "created_at": {
                                "type": "string"
                            }
                        }
                    }
                },
                "required": [
                    "id",
                    "type"
                ],
                "title": "AudienceEventResource"
            },
            "AudienceMemberExternalProfileResource": {
                "type": "object",
                "properties": {
                    "id": {
                        "type": "string"
                    },
                    "type": {
                        "type": "string",
                        "const": "audience_member_external_profiles"
                    },
                    "meta": {
                        "type": "object",
                        "properties": {
                            "created_at": {
                                "type": "string"
                            },
                            "updated_at": {
                                "type": "string"
                            }
                        },
                        "required": [
                            "created_at",
                            "updated_at"
                        ]
                    }
                },
                "required": [
                    "id",
                    "type",
                    "meta"
                ],
                "title": "AudienceMemberExternalProfileResource"
            },
            "AudienceMemberForeignKeyResource": {
                "type": "object",
                "properties": {
                    "id": {
                        "type": "string",
                        "format": "uuid"
                    },
                    "type": {
                        "type": "string",
                        "const": "audience_member_foreign_keys"
                    },
                    "attributes": {
                        "type": "object",
                        "properties": {
                            "key": {
                                "type": "string"
                            },
                            "value": {
                                "type": "string"
                            },
                            "created_at": {
                                "type": "string"
                            },
                            "updated_at": {
                                "type": "string"
                            }
                        }
                    }
                },
                "required": [
                    "id",
                    "type"
                ],
                "title": "AudienceMemberForeignKeyResource"
            },
            "AudienceMemberResource": {
                "type": "object",
                "properties": {
                    "id": {
                        "type": "string",
                        "format": "uuid"
                    },
                    "type": {
                        "type": "string",
                        "const": "audience_members"
                    },
                    "attributes": {
                        "type": "object",
                        "properties": {
                            "name": {
                                "type": "string"
                            },
                            "email": {
                                "type": "string"
                            },
                            "email_verified": {
                                "type": "boolean"
                            },
                            "meta": {
                                "type": "object",
                                "additionalProperties": {}
                            },
                            "entitlements": {
                                "type": "array",
                                "items": {
                                    "$ref": "#/components/schemas/EntitlementResource"
                                }
                            },
                            "purchases": {
                                "type": "array",
                                "items": {
                                    "$ref": "#/components/schemas/PurchaseResource"
                                }
                            },
                            "properties": {
                                "type": "array",
                                "items": {
                                    "type": "object",
                                    "properties": {
                                        "id": {
                                            "type": "string"
                                        },
                                        "slug": {
                                            "type": "string"
                                        },
                                        "name": {
                                            "type": "string"
                                        },
                                        "joined_at": {
                                            "type": "string",
                                            "format": "date-time"
                                        },
                                        "signed_up": {
                                            "type": "boolean"
                                        }
                                    },
                                    "required": [
                                        "id",
                                        "slug",
                                        "name",
                                        "joined_at",
                                        "signed_up"
                                    ]
                                }
                            },
                            "created_at": {
                                "type": "string",
                                "format": "date-time"
                            },
                            "updated_at": {
                                "type": "string",
                                "format": "date-time"
                            }
                        }
                    },
                    "relationships": {
                        "type": "object",
                        "properties": {
                            "externalProfiles": {
                                "type": "object",
                                "properties": {
                                    "data": {
                                        "type": "array",
                                        "items": {
                                            "type": "object",
                                            "properties": {
                                                "id": {
                                                    "type": "string"
                                                },
                                                "type": {
                                                    "type": "string",
                                                    "const": "audience_member_external_profiles"
                                                }
                                            },
                                            "required": [
                                                "id",
                                                "type"
                                            ]
                                        }
                                    }
                                },
                                "required": [
                                    "data"
                                ]
                            },
                            "sessions": {
                                "type": "object",
                                "properties": {
                                    "data": {
                                        "type": "array",
                                        "items": {
                                            "type": "object",
                                            "properties": {
                                                "id": {
                                                    "type": "string"
                                                },
                                                "type": {
                                                    "type": "string",
                                                    "const": "audience_device_sessions"
                                                }
                                            },
                                            "required": [
                                                "id",
                                                "type"
                                            ]
                                        }
                                    }
                                },
                                "required": [
                                    "data"
                                ]
                            }
                        }
                    }
                },
                "required": [
                    "id",
                    "type"
                ],
                "title": "AudienceMemberResource"
            },
            "EntitlementResource": {
                "type": "object",
                "properties": {
                    "id": {
                        "type": "string",
                        "format": "uuid"
                    },
                    "type": {
                        "type": "string",
                        "const": "entitlements"
                    },
                    "attributes": {
                        "type": "object",
                        "properties": {
                            "id": {
                                "type": "string"
                            },
                            "product": {
                                "$ref": "#/components/schemas/ProductResource"
                            },
                            "started_at": {
                                "type": [
                                    "string",
                                    "null"
                                ],
                                "format": "date-time"
                            },
                            "ended_at": {
                                "type": [
                                    "string",
                                    "null"
                                ],
                                "format": "date-time"
                            },
                            "revoked_at": {
                                "type": [
                                    "string",
                                    "null"
                                ],
                                "format": "date-time"
                            },
                            "note": {
                                "type": [
                                    "string",
                                    "null"
                                ]
                            },
                            "status": {
                                "$ref": "#/components/schemas/EntitlementStatus"
                            },
                            "is_active": {
                                "type": "boolean"
                            },
                            "created_at": {
                                "type": "string",
                                "format": "date-time"
                            },
                            "updated_at": {
                                "type": "string",
                                "format": "date-time"
                            }
                        }
                    },
                    "relationships": {
                        "type": "object",
                        "properties": {
                            "audienceMember": {
                                "type": "object",
                                "properties": {
                                    "data": {
                                        "type": "object",
                                        "properties": {
                                            "id": {
                                                "type": "string",
                                                "format": "uuid"
                                            },
                                            "type": {
                                                "type": "string",
                                                "const": "audience_members"
                                            }
                                        },
                                        "required": [
                                            "id",
                                            "type"
                                        ]
                                    }
                                },
                                "required": [
                                    "data"
                                ]
                            },
                            "product": {
                                "type": "object",
                                "properties": {
                                    "data": {
                                        "type": "object",
                                        "properties": {
                                            "id": {
                                                "type": "string"
                                            },
                                            "type": {
                                                "type": "string",
                                                "const": "products"
                                            }
                                        },
                                        "required": [
                                            "id",
                                            "type"
                                        ]
                                    }
                                },
                                "required": [
                                    "data"
                                ]
                            }
                        }
                    }
                },
                "required": [
                    "id",
                    "type"
                ],
                "title": "EntitlementResource"
            },
            "EntitlementStatus": {
                "type": "string",
                "description": "The lifecycle state of an entitlement, derived from its timestamps. `Revoked` is distinct from `Expired`: both deny access, but a revoked entitlement was ended deliberately by an admin, a refund, or a sync, while an expired one simply reached the end date it was granted with.\n",
                "enum": [
                    "scheduled",
                    "active",
                    "revoked",
                    "expired"
                ],
                "title": "EntitlementStatus"
            },
            "EventBatchResource": {
                "type": "object",
                "properties": {
                    "count": {
                        "type": "string"
                    },
                    "events": {
                        "type": "string"
                    }
                },
                "required": [
                    "count",
                    "events"
                ],
                "title": "EventBatchResource"
            },
            "FrequencyCapScope": {
                "type": "string",
                "enum": [
                    "visitor",
                    "global"
                ],
                "title": "FrequencyCapScope"
            },
            "FrequencyCapUnit": {
                "type": "string",
                "enum": [
                    "minutes",
                    "hours",
                    "days"
                ],
                "title": "FrequencyCapUnit"
            },
            "HeartbeatBatchResource": {
                "type": "object",
                "properties": {
                    "count": {
                        "type": "string"
                    },
                    "heartbeats": {
                        "type": "string"
                    }
                },
                "required": [
                    "count",
                    "heartbeats"
                ],
                "title": "HeartbeatBatchResource"
            },
            "InteractionActionDelayScrollUnit": {
                "type": "string",
                "enum": [
                    "px",
                    "percent"
                ],
                "title": "InteractionActionDelayScrollUnit"
            },
            "InteractionActionDelayType": {
                "type": "string",
                "enum": [
                    "scroll",
                    "time",
                    "truncation"
                ],
                "title": "InteractionActionDelayType"
            },
            "InteractionActionType": {
                "type": "string",
                "enum": [
                    "template",
                    "component",
                    "javascript",
                    "cookie",
                    "css",
                    "frequency_cap"
                ],
                "title": "InteractionActionType"
            },
            "InteractionManagementResource": {
                "type": "object",
                "properties": {
                    "id": {
                        "type": "string",
                        "format": "uuid"
                    },
                    "type": {
                        "type": "string",
                        "const": "interaction_managements"
                    },
                    "attributes": {
                        "type": "object",
                        "properties": {
                            "title": {
                                "type": "string"
                            },
                            "slug": {
                                "type": "string"
                            },
                            "status": {
                                "type": "string"
                            },
                            "trigger_mode": {
                                "type": "string"
                            },
                            "actions": {
                                "anyOf": [
                                    {
                                        "type": "string"
                                    },
                                    {
                                        "type": "array",
                                        "items": {
                                            "type": "string"
                                        },
                                        "minItems": 0,
                                        "maxItems": 0,
                                        "additionalItems": false
                                    }
                                ]
                            },
                            "journeys": {
                                "type": "array",
                                "items": {}
                            },
                            "created_at": {
                                "type": "string"
                            },
                            "updated_at": {
                                "type": "string"
                            },
                            "deleted_at": {
                                "type": "string"
                            }
                        }
                    }
                },
                "required": [
                    "id",
                    "type"
                ],
                "title": "InteractionManagementResource"
            },
            "InteractionPlacementMethod": {
                "type": "string",
                "enum": [
                    "replace",
                    "append",
                    "prepend",
                    "before",
                    "after",
                    "truncate"
                ],
                "title": "InteractionPlacementMethod"
            },
            "InteractionTriggerMode": {
                "type": "string",
                "enum": [
                    "manual",
                    "automatic"
                ],
                "title": "InteractionTriggerMode"
            },
            "JsonApiResource": {
                "type": "object",
                "properties": {
                    "id": {
                        "type": "string"
                    },
                    "type": {
                        "type": "string"
                    }
                },
                "required": [
                    "id",
                    "type"
                ],
                "title": "JsonApiResource"
            },
            "MilestoneResource": {
                "type": "object",
                "properties": {
                    "id": {
                        "type": "string",
                        "format": "uuid"
                    },
                    "type": {
                        "type": "string",
                        "const": "milestones"
                    },
                    "attributes": {
                        "type": "object",
                        "properties": {
                            "date": {
                                "type": "string"
                            },
                            "title": {
                                "type": "string"
                            },
                            "note": {
                                "type": [
                                    "string",
                                    "null"
                                ]
                            },
                            "url": {
                                "type": [
                                    "string",
                                    "null"
                                ]
                            },
                            "property_ids": {
                                "type": "array",
                                "items": {}
                            },
                            "created_at": {
                                "type": "string"
                            },
                            "updated_at": {
                                "type": "string"
                            }
                        }
                    }
                },
                "required": [
                    "id",
                    "type"
                ],
                "title": "MilestoneResource"
            },
            "PatchAudienceMemberRequest": {
                "type": "object",
                "properties": {
                    "name": {
                        "type": "string",
                        "maxLength": 255
                    },
                    "email": {
                        "type": "string",
                        "format": "email"
                    },
                    "email_verified": {
                        "type": "string"
                    },
                    "meta": {
                        "type": [
                            "array",
                            "null"
                        ],
                        "items": {
                            "type": [
                                "string",
                                "null"
                            ]
                        }
                    }
                },
                "title": "PatchAudienceMemberRequest"
            },
            "PlanResource": {
                "type": "object",
                "properties": {
                    "id": {
                        "type": "string"
                    },
                    "product_id": {
                        "type": "string"
                    },
                    "name": {
                        "type": "string"
                    },
                    "description": {
                        "type": "string"
                    },
                    "price": {
                        "type": "string"
                    },
                    "currency": {
                        "type": "string"
                    },
                    "formatted_price": {
                        "type": "string"
                    },
                    "duration_amount": {
                        "type": "string"
                    },
                    "duration_unit": {
                        "type": "string"
                    },
                    "is_unlimited": {
                        "type": "string"
                    },
                    "custom_fields": {
                        "type": "string"
                    },
                    "duration_label": {
                        "type": "string"
                    },
                    "product": {
                        "$ref": "#/components/schemas/ProductResource"
                    },
                    "created_at": {
                        "type": "string"
                    },
                    "updated_at": {
                        "type": "string"
                    }
                },
                "required": [
                    "id",
                    "product_id",
                    "name",
                    "description",
                    "price",
                    "currency",
                    "formatted_price",
                    "duration_amount",
                    "duration_unit",
                    "is_unlimited",
                    "custom_fields",
                    "duration_label",
                    "created_at",
                    "updated_at"
                ],
                "title": "PlanResource"
            },
            "ProductResource": {
                "type": "object",
                "properties": {
                    "id": {
                        "type": "string"
                    },
                    "type": {
                        "type": "string",
                        "const": "products"
                    },
                    "attributes": {
                        "type": "object",
                        "properties": {
                            "name": {
                                "type": "string"
                            },
                            "slug": {
                                "type": "string"
                            },
                            "description": {
                                "type": "string"
                            },
                            "created_at": {
                                "type": "string"
                            },
                            "updated_at": {
                                "type": "string"
                            }
                        }
                    }
                },
                "required": [
                    "id",
                    "type"
                ],
                "title": "ProductResource"
            },
            "PublishStatus": {
                "type": "string",
                "enum": [
                    "draft",
                    "published"
                ],
                "title": "PublishStatus"
            },
            "PurchaseResource": {
                "type": "object",
                "properties": {
                    "id": {
                        "type": "string"
                    },
                    "status": {
                        "$ref": "#/components/schemas/PurchaseStatus"
                    },
                    "status_label": {
                        "type": "string"
                    },
                    "amount": {
                        "type": "integer"
                    },
                    "formatted_amount": {
                        "type": "string"
                    },
                    "currency": {
                        "type": "string"
                    },
                    "provider": {
                        "type": "string"
                    },
                    "provider_session_id": {
                        "type": "string"
                    },
                    "provider_payment_id": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "provider_refund_id": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "has_active_entitlement": {
                        "type": "boolean"
                    },
                    "plan": {
                        "anyOf": [
                            {
                                "$ref": "#/components/schemas/PlanResource"
                            },
                            {
                                "type": "null"
                            }
                        ]
                    },
                    "audience_member": {
                        "type": [
                            "object",
                            "null"
                        ],
                        "properties": {
                            "id": {
                                "type": "string"
                            },
                            "email": {
                                "type": "string"
                            },
                            "name": {
                                "type": "string"
                            },
                            "display_name": {
                                "type": [
                                    "string",
                                    "null"
                                ]
                            }
                        },
                        "required": [
                            "id",
                            "email",
                            "name",
                            "display_name"
                        ]
                    },
                    "activities": {
                        "type": "array",
                        "items": {
                            "type": "object",
                            "properties": {
                                "id": {
                                    "type": "integer"
                                },
                                "event": {
                                    "type": [
                                        "string",
                                        "null"
                                    ]
                                },
                                "description": {
                                    "type": "string"
                                },
                                "causer_name": {
                                    "type": [
                                        "string",
                                        "null"
                                    ]
                                },
                                "properties": {
                                    "type": "object",
                                    "additionalProperties": {}
                                },
                                "created_at": {
                                    "type": "string",
                                    "format": "date-time"
                                }
                            },
                            "required": [
                                "id",
                                "event",
                                "description",
                                "causer_name",
                                "properties",
                                "created_at"
                            ]
                        }
                    },
                    "created_at": {
                        "type": "string",
                        "format": "date-time"
                    },
                    "updated_at": {
                        "type": "string",
                        "format": "date-time"
                    }
                },
                "required": [
                    "id",
                    "status",
                    "status_label",
                    "amount",
                    "formatted_amount",
                    "currency",
                    "provider",
                    "provider_session_id",
                    "provider_payment_id",
                    "provider_refund_id",
                    "has_active_entitlement",
                    "plan",
                    "audience_member",
                    "created_at",
                    "updated_at"
                ],
                "title": "PurchaseResource"
            },
            "PurchaseStatus": {
                "type": "string",
                "enum": [
                    "pending",
                    "completed",
                    "failed",
                    "refunded"
                ],
                "title": "PurchaseStatus"
            },
            "ReplaceAudienceMemberRequest": {
                "type": "object",
                "properties": {
                    "name": {
                        "type": "string",
                        "maxLength": 255
                    },
                    "email": {
                        "type": "string",
                        "format": "email"
                    },
                    "email_verified": {
                        "type": "string"
                    },
                    "meta": {
                        "type": [
                            "array",
                            "null"
                        ],
                        "items": {
                            "type": [
                                "string",
                                "null"
                            ]
                        }
                    }
                },
                "required": [
                    "name",
                    "email"
                ],
                "title": "ReplaceAudienceMemberRequest"
            },
            "StoreAnalyticsReportRequest": {
                "type": "object",
                "description": "A saved analytics report created through the API, validated like the report builder.",
                "properties": {
                    "name": {
                        "type": "string",
                        "maxLength": 255
                    },
                    "description": {
                        "type": [
                            "string",
                            "null"
                        ],
                        "maxLength": 1000
                    },
                    "pinned": {
                        "type": "boolean"
                    },
                    "definition": {
                        "type": "object",
                        "properties": {
                            "version": {
                                "type": [
                                    "integer",
                                    "null"
                                ],
                                "enum": [
                                    "1",
                                    null
                                ]
                            },
                            "measure": {
                                "type": "string",
                                "enum": [
                                    "events",
                                    "sessions",
                                    "readers",
                                    "members",
                                    "engaged_seconds",
                                    "avg_engaged_seconds"
                                ]
                            },
                            "types": {
                                "type": "array",
                                "items": {
                                    "type": "string",
                                    "pattern": "^[A-Za-z0-9_.:-]{1,64}$"
                                },
                                "maxItems": 20
                            },
                            "filters": {
                                "type": "array",
                                "items": {
                                    "type": "object",
                                    "properties": {
                                        "dimension": {
                                            "type": "string",
                                            "enum": [
                                                "type",
                                                "page_path",
                                                "page_title",
                                                "section",
                                                "referrer",
                                                "utm_source",
                                                "utm_medium",
                                                "utm_campaign",
                                                "interaction_type",
                                                "gate_type",
                                                "object_type",
                                                "object_id",
                                                "content_type",
                                                "device",
                                                "browser",
                                                "os",
                                                "reader_status",
                                                "property",
                                                "hostname"
                                            ]
                                        },
                                        "operator": {
                                            "type": "string",
                                            "enum": [
                                                "eq",
                                                "neq",
                                                "contains",
                                                "not_contains"
                                            ]
                                        },
                                        "value": {
                                            "type": "string",
                                            "maxLength": 2048
                                        }
                                    },
                                    "required": [
                                        "dimension",
                                        "operator",
                                        "value"
                                    ]
                                },
                                "maxItems": 10
                            },
                            "breakdown": {
                                "type": [
                                    "string",
                                    "null"
                                ],
                                "enum": [
                                    "type",
                                    "page_path",
                                    "page_title",
                                    "section",
                                    "referrer",
                                    "utm_source",
                                    "utm_medium",
                                    "utm_campaign",
                                    "interaction_type",
                                    "gate_type",
                                    "object_type",
                                    "object_id",
                                    "content_type",
                                    "device",
                                    "browser",
                                    "os",
                                    "reader_status",
                                    "property",
                                    "hostname",
                                    null
                                ]
                            },
                            "resolution": {
                                "type": [
                                    "string",
                                    "null"
                                ],
                                "enum": [
                                    "hour",
                                    "day",
                                    "week",
                                    null
                                ]
                            },
                            "range": {
                                "type": "string",
                                "enum": [
                                    "7d",
                                    "30d",
                                    "90d",
                                    "1y"
                                ]
                            },
                            "chart": {
                                "type": "string",
                                "enum": [
                                    "bar",
                                    "area",
                                    "line",
                                    "table"
                                ]
                            }
                        },
                        "required": [
                            "measure",
                            "range",
                            "chart"
                        ]
                    }
                },
                "required": [
                    "name",
                    "definition"
                ],
                "title": "StoreAnalyticsReportRequest"
            },
            "StoreAudienceMemberForeignKeyRequest": {
                "type": "object",
                "properties": {
                    "key": {
                        "type": "string",
                        "pattern": "^[a-z0-9_-]+$",
                        "maxLength": 50
                    },
                    "value": {
                        "type": "string"
                    }
                },
                "required": [
                    "key",
                    "value"
                ],
                "title": "StoreAudienceMemberForeignKeyRequest"
            },
            "StoreAudienceMemberRequest": {
                "type": "object",
                "properties": {
                    "name": {
                        "type": "string",
                        "maxLength": 255
                    },
                    "email": {
                        "type": "string",
                        "format": "email"
                    },
                    "email_verified": {
                        "type": "boolean"
                    },
                    "meta": {
                        "type": [
                            "array",
                            "null"
                        ],
                        "items": {
                            "type": [
                                "string",
                                "null"
                            ]
                        }
                    }
                },
                "required": [
                    "name",
                    "email",
                    "email_verified"
                ],
                "title": "StoreAudienceMemberRequest"
            },
            "StoreEntitlementRequest": {
                "type": "object",
                "properties": {
                    "product_id": {
                        "type": "string"
                    },
                    "started_at": {
                        "type": [
                            "string",
                            "null"
                        ],
                        "format": "date-time"
                    },
                    "ended_at": {
                        "type": [
                            "string",
                            "null"
                        ],
                        "format": "date-time"
                    },
                    "note": {
                        "type": [
                            "string",
                            "null"
                        ],
                        "maxLength": 1000
                    }
                },
                "required": [
                    "product_id"
                ],
                "title": "StoreEntitlementRequest"
            },
            "StoreInteractionRequest": {
                "type": "object",
                "description": "Validates `POST /api/v1/interactions`, reusing the authoring form's rules so\nthe two surfaces cannot drift on what a valid interaction is \u2014 in particular\nthe trigger-mode-conditional rules (`actions` required only for manual,\n`ValidJourneys` applied only for automatic).\n\nAuthorization moves to the controller's `$this->authorize()` because an API\nkey actor is a Tenant or Platform model rather than a User, and the parent's\n`auth()->user()->can()` reads as a user check.",
                "properties": {
                    "title": {
                        "type": "string",
                        "maxLength": 255
                    },
                    "slug": {
                        "type": [
                            "string",
                            "null"
                        ],
                        "pattern": "^[a-z0-9]+(-[a-z0-9]+)*$",
                        "maxLength": 50
                    },
                    "status": {
                        "$ref": "#/components/schemas/PublishStatus"
                    },
                    "trigger_mode": {
                        "$ref": "#/components/schemas/InteractionTriggerMode"
                    },
                    "actions": {
                        "type": "array",
                        "items": {
                            "type": "object",
                            "properties": {
                                "type": {
                                    "$ref": "#/components/schemas/InteractionActionType"
                                },
                                "label": {
                                    "type": [
                                        "string",
                                        "null"
                                    ],
                                    "maxLength": 80
                                },
                                "template_id": {
                                    "type": "string",
                                    "format": "uuid"
                                },
                                "offer_id": {
                                    "type": [
                                        "string",
                                        "null"
                                    ],
                                    "format": "uuid"
                                },
                                "target_selector": {
                                    "type": [
                                        "string",
                                        "null"
                                    ],
                                    "maxLength": 255
                                },
                                "target_name": {
                                    "type": [
                                        "string",
                                        "null"
                                    ],
                                    "maxLength": 100
                                },
                                "field_values": {
                                    "type": [
                                        "array",
                                        "null"
                                    ],
                                    "items": {
                                        "type": "object",
                                        "properties": {
                                            "slug": {
                                                "type": "string",
                                                "maxLength": 255
                                            },
                                            "value": {
                                                "type": [
                                                    "string",
                                                    "null"
                                                ]
                                            }
                                        },
                                        "required": [
                                            "slug"
                                        ]
                                    }
                                },
                                "placement_method": {
                                    "anyOf": [
                                        {
                                            "$ref": "#/components/schemas/InteractionPlacementMethod"
                                        },
                                        {
                                            "type": "null"
                                        }
                                    ]
                                },
                                "component": {
                                    "type": [
                                        "string",
                                        "null"
                                    ],
                                    "enum": [
                                        "allegro-bottom-drawer",
                                        "allegro-content-gate",
                                        "allegro-content-gate-inline",
                                        "allegro-email-form",
                                        "allegro-form",
                                        "allegro-login-form",
                                        "allegro-modal",
                                        "allegro-recommendations",
                                        null
                                    ]
                                },
                                "attributes": {
                                    "type": [
                                        "array",
                                        "null"
                                    ],
                                    "items": {
                                        "type": "string"
                                    }
                                },
                                "content": {
                                    "type": [
                                        "string",
                                        "null"
                                    ]
                                },
                                "truncation_unit": {
                                    "anyOf": [
                                        {
                                            "$ref": "#/components/schemas/TruncationUnit"
                                        },
                                        {
                                            "type": "null"
                                        }
                                    ]
                                },
                                "truncation_count": {
                                    "type": [
                                        "integer",
                                        "null"
                                    ],
                                    "minimum": 1
                                },
                                "truncation_style": {
                                    "anyOf": [
                                        {
                                            "$ref": "#/components/schemas/TruncationStyle"
                                        },
                                        {
                                            "type": "null"
                                        }
                                    ]
                                },
                                "delay_type": {
                                    "anyOf": [
                                        {
                                            "$ref": "#/components/schemas/InteractionActionDelayType"
                                        },
                                        {
                                            "type": "null"
                                        }
                                    ]
                                },
                                "delay_value": {
                                    "type": [
                                        "number",
                                        "null"
                                    ],
                                    "minimum": 0
                                },
                                "delay_scroll_unit": {
                                    "anyOf": [
                                        {
                                            "$ref": "#/components/schemas/InteractionActionDelayScrollUnit"
                                        },
                                        {
                                            "type": "null"
                                        }
                                    ]
                                },
                                "delay_scroll_selector": {
                                    "type": [
                                        "string",
                                        "null"
                                    ],
                                    "maxLength": 255
                                },
                                "code": {
                                    "type": "string"
                                },
                                "name": {
                                    "type": "string",
                                    "maxLength": 255
                                },
                                "readable": {
                                    "type": "boolean"
                                },
                                "value": {
                                    "type": "string"
                                },
                                "path": {
                                    "type": [
                                        "string",
                                        "null"
                                    ],
                                    "maxLength": 255
                                },
                                "domain": {
                                    "type": [
                                        "string",
                                        "null"
                                    ],
                                    "maxLength": 255
                                },
                                "expires_days": {
                                    "type": [
                                        "integer",
                                        "null"
                                    ],
                                    "minimum": 1,
                                    "maximum": 365
                                },
                                "cap_id": {
                                    "type": [
                                        "string",
                                        "null"
                                    ],
                                    "format": "uuid"
                                },
                                "limit": {
                                    "type": [
                                        "integer",
                                        "null"
                                    ],
                                    "minimum": 1,
                                    "maximum": 1000
                                },
                                "every": {
                                    "type": [
                                        "integer",
                                        "null"
                                    ],
                                    "minimum": 1
                                },
                                "unit": {
                                    "anyOf": [
                                        {
                                            "$ref": "#/components/schemas/FrequencyCapUnit"
                                        },
                                        {
                                            "type": "null"
                                        }
                                    ]
                                },
                                "scope": {
                                    "anyOf": [
                                        {
                                            "$ref": "#/components/schemas/FrequencyCapScope"
                                        },
                                        {
                                            "type": "null"
                                        }
                                    ]
                                },
                                "actions": {
                                    "type": [
                                        "array",
                                        "null"
                                    ],
                                    "items": {
                                        "type": "object",
                                        "properties": {
                                            "type": {
                                                "type": "string",
                                                "enum": [
                                                    "template",
                                                    "component",
                                                    "javascript",
                                                    "cookie",
                                                    "css"
                                                ]
                                            },
                                            "label": {
                                                "type": [
                                                    "string",
                                                    "null"
                                                ],
                                                "maxLength": 80
                                            },
                                            "template_id": {
                                                "type": "string",
                                                "format": "uuid"
                                            },
                                            "offer_id": {
                                                "type": [
                                                    "string",
                                                    "null"
                                                ],
                                                "format": "uuid"
                                            },
                                            "target_selector": {
                                                "type": [
                                                    "string",
                                                    "null"
                                                ],
                                                "maxLength": 255
                                            },
                                            "target_name": {
                                                "type": [
                                                    "string",
                                                    "null"
                                                ],
                                                "maxLength": 100
                                            },
                                            "field_values": {
                                                "type": [
                                                    "array",
                                                    "null"
                                                ],
                                                "items": {
                                                    "type": "object",
                                                    "properties": {
                                                        "slug": {
                                                            "type": "string",
                                                            "maxLength": 255
                                                        },
                                                        "value": {
                                                            "type": [
                                                                "string",
                                                                "null"
                                                            ]
                                                        }
                                                    },
                                                    "required": [
                                                        "slug"
                                                    ]
                                                }
                                            },
                                            "placement_method": {
                                                "anyOf": [
                                                    {
                                                        "$ref": "#/components/schemas/InteractionPlacementMethod"
                                                    },
                                                    {
                                                        "type": "null"
                                                    }
                                                ]
                                            },
                                            "component": {
                                                "type": [
                                                    "string",
                                                    "null"
                                                ],
                                                "enum": [
                                                    "allegro-bottom-drawer",
                                                    "allegro-content-gate",
                                                    "allegro-content-gate-inline",
                                                    "allegro-email-form",
                                                    "allegro-form",
                                                    "allegro-login-form",
                                                    "allegro-modal",
                                                    "allegro-recommendations",
                                                    null
                                                ]
                                            },
                                            "attributes": {
                                                "type": [
                                                    "array",
                                                    "null"
                                                ],
                                                "items": {
                                                    "type": "string"
                                                }
                                            },
                                            "content": {
                                                "type": [
                                                    "string",
                                                    "null"
                                                ]
                                            },
                                            "truncation_unit": {
                                                "anyOf": [
                                                    {
                                                        "$ref": "#/components/schemas/TruncationUnit"
                                                    },
                                                    {
                                                        "type": "null"
                                                    }
                                                ]
                                            },
                                            "truncation_count": {
                                                "type": [
                                                    "integer",
                                                    "null"
                                                ],
                                                "minimum": 1
                                            },
                                            "truncation_style": {
                                                "anyOf": [
                                                    {
                                                        "$ref": "#/components/schemas/TruncationStyle"
                                                    },
                                                    {
                                                        "type": "null"
                                                    }
                                                ]
                                            },
                                            "delay_type": {
                                                "anyOf": [
                                                    {
                                                        "$ref": "#/components/schemas/InteractionActionDelayType"
                                                    },
                                                    {
                                                        "type": "null"
                                                    }
                                                ]
                                            },
                                            "delay_value": {
                                                "type": [
                                                    "number",
                                                    "null"
                                                ],
                                                "minimum": 0
                                            },
                                            "delay_scroll_unit": {
                                                "anyOf": [
                                                    {
                                                        "$ref": "#/components/schemas/InteractionActionDelayScrollUnit"
                                                    },
                                                    {
                                                        "type": "null"
                                                    }
                                                ]
                                            },
                                            "delay_scroll_selector": {
                                                "type": [
                                                    "string",
                                                    "null"
                                                ],
                                                "maxLength": 255
                                            },
                                            "code": {
                                                "type": "string"
                                            },
                                            "name": {
                                                "type": "string",
                                                "maxLength": 255
                                            },
                                            "readable": {
                                                "type": "boolean"
                                            },
                                            "value": {
                                                "type": "string"
                                            },
                                            "path": {
                                                "type": [
                                                    "string",
                                                    "null"
                                                ],
                                                "maxLength": 255
                                            },
                                            "domain": {
                                                "type": [
                                                    "string",
                                                    "null"
                                                ],
                                                "maxLength": 255
                                            },
                                            "expires_days": {
                                                "type": [
                                                    "integer",
                                                    "null"
                                                ],
                                                "minimum": 1,
                                                "maximum": 365
                                            }
                                        },
                                        "required": [
                                            "type"
                                        ]
                                    },
                                    "minItems": 1,
                                    "maxItems": 10
                                }
                            },
                            "required": [
                                "type"
                            ]
                        }
                    },
                    "journeys": {
                        "type": [
                            "array",
                            "null"
                        ],
                        "items": {
                            "type": "object",
                            "properties": {
                                "id": {
                                    "type": [
                                        "string",
                                        "null"
                                    ]
                                },
                                "name": {
                                    "type": [
                                        "string",
                                        "null"
                                    ]
                                },
                                "condition_groups": {
                                    "type": [
                                        "string",
                                        "null"
                                    ]
                                },
                                "actions": {
                                    "type": [
                                        "array",
                                        "null"
                                    ],
                                    "items": {
                                        "type": "object",
                                        "properties": {
                                            "type": {
                                                "$ref": "#/components/schemas/InteractionActionType"
                                            },
                                            "label": {
                                                "type": [
                                                    "string",
                                                    "null"
                                                ],
                                                "maxLength": 80
                                            },
                                            "template_id": {
                                                "type": "string",
                                                "format": "uuid"
                                            },
                                            "offer_id": {
                                                "type": [
                                                    "string",
                                                    "null"
                                                ],
                                                "format": "uuid"
                                            },
                                            "target_selector": {
                                                "type": [
                                                    "string",
                                                    "null"
                                                ],
                                                "maxLength": 255
                                            },
                                            "target_name": {
                                                "type": [
                                                    "string",
                                                    "null"
                                                ],
                                                "maxLength": 100
                                            },
                                            "field_values": {
                                                "type": [
                                                    "array",
                                                    "null"
                                                ],
                                                "items": {
                                                    "type": "object",
                                                    "properties": {
                                                        "slug": {
                                                            "type": "string",
                                                            "maxLength": 255
                                                        },
                                                        "value": {
                                                            "type": [
                                                                "string",
                                                                "null"
                                                            ]
                                                        }
                                                    },
                                                    "required": [
                                                        "slug"
                                                    ]
                                                }
                                            },
                                            "placement_method": {
                                                "anyOf": [
                                                    {
                                                        "$ref": "#/components/schemas/InteractionPlacementMethod"
                                                    },
                                                    {
                                                        "type": "null"
                                                    }
                                                ]
                                            },
                                            "component": {
                                                "type": [
                                                    "string",
                                                    "null"
                                                ],
                                                "enum": [
                                                    "allegro-bottom-drawer",
                                                    "allegro-content-gate",
                                                    "allegro-content-gate-inline",
                                                    "allegro-email-form",
                                                    "allegro-form",
                                                    "allegro-login-form",
                                                    "allegro-modal",
                                                    "allegro-recommendations",
                                                    null
                                                ]
                                            },
                                            "attributes": {
                                                "type": [
                                                    "array",
                                                    "null"
                                                ],
                                                "items": {
                                                    "type": "string"
                                                }
                                            },
                                            "content": {
                                                "type": [
                                                    "string",
                                                    "null"
                                                ]
                                            },
                                            "truncation_unit": {
                                                "anyOf": [
                                                    {
                                                        "$ref": "#/components/schemas/TruncationUnit"
                                                    },
                                                    {
                                                        "type": "null"
                                                    }
                                                ]
                                            },
                                            "truncation_count": {
                                                "type": [
                                                    "integer",
                                                    "null"
                                                ],
                                                "minimum": 1
                                            },
                                            "truncation_style": {
                                                "anyOf": [
                                                    {
                                                        "$ref": "#/components/schemas/TruncationStyle"
                                                    },
                                                    {
                                                        "type": "null"
                                                    }
                                                ]
                                            },
                                            "delay_type": {
                                                "anyOf": [
                                                    {
                                                        "$ref": "#/components/schemas/InteractionActionDelayType"
                                                    },
                                                    {
                                                        "type": "null"
                                                    }
                                                ]
                                            },
                                            "delay_value": {
                                                "type": [
                                                    "number",
                                                    "null"
                                                ],
                                                "minimum": 0
                                            },
                                            "delay_scroll_unit": {
                                                "anyOf": [
                                                    {
                                                        "$ref": "#/components/schemas/InteractionActionDelayScrollUnit"
                                                    },
                                                    {
                                                        "type": "null"
                                                    }
                                                ]
                                            },
                                            "delay_scroll_selector": {
                                                "type": [
                                                    "string",
                                                    "null"
                                                ],
                                                "maxLength": 255
                                            },
                                            "code": {
                                                "type": "string"
                                            },
                                            "name": {
                                                "type": "string",
                                                "maxLength": 255
                                            },
                                            "readable": {
                                                "type": "boolean"
                                            },
                                            "value": {
                                                "type": "string"
                                            },
                                            "path": {
                                                "type": [
                                                    "string",
                                                    "null"
                                                ],
                                                "maxLength": 255
                                            },
                                            "domain": {
                                                "type": [
                                                    "string",
                                                    "null"
                                                ],
                                                "maxLength": 255
                                            },
                                            "expires_days": {
                                                "type": [
                                                    "integer",
                                                    "null"
                                                ],
                                                "minimum": 1,
                                                "maximum": 365
                                            },
                                            "cap_id": {
                                                "type": [
                                                    "string",
                                                    "null"
                                                ],
                                                "format": "uuid"
                                            },
                                            "limit": {
                                                "type": [
                                                    "integer",
                                                    "null"
                                                ],
                                                "minimum": 1,
                                                "maximum": 1000
                                            },
                                            "every": {
                                                "type": [
                                                    "integer",
                                                    "null"
                                                ],
                                                "minimum": 1
                                            },
                                            "unit": {
                                                "anyOf": [
                                                    {
                                                        "$ref": "#/components/schemas/FrequencyCapUnit"
                                                    },
                                                    {
                                                        "type": "null"
                                                    }
                                                ]
                                            },
                                            "scope": {
                                                "anyOf": [
                                                    {
                                                        "$ref": "#/components/schemas/FrequencyCapScope"
                                                    },
                                                    {
                                                        "type": "null"
                                                    }
                                                ]
                                            },
                                            "actions": {
                                                "type": [
                                                    "array",
                                                    "null"
                                                ],
                                                "items": {
                                                    "type": "object",
                                                    "properties": {
                                                        "type": {
                                                            "type": "string",
                                                            "enum": [
                                                                "template",
                                                                "component",
                                                                "javascript",
                                                                "cookie",
                                                                "css"
                                                            ]
                                                        },
                                                        "label": {
                                                            "type": [
                                                                "string",
                                                                "null"
                                                            ],
                                                            "maxLength": 80
                                                        },
                                                        "template_id": {
                                                            "type": "string",
                                                            "format": "uuid"
                                                        },
                                                        "offer_id": {
                                                            "type": [
                                                                "string",
                                                                "null"
                                                            ],
                                                            "format": "uuid"
                                                        },
                                                        "target_selector": {
                                                            "type": [
                                                                "string",
                                                                "null"
                                                            ],
                                                            "maxLength": 255
                                                        },
                                                        "target_name": {
                                                            "type": [
                                                                "string",
                                                                "null"
                                                            ],
                                                            "maxLength": 100
                                                        },
                                                        "field_values": {
                                                            "type": [
                                                                "array",
                                                                "null"
                                                            ],
                                                            "items": {
                                                                "type": "object",
                                                                "properties": {
                                                                    "slug": {
                                                                        "type": "string",
                                                                        "maxLength": 255
                                                                    },
                                                                    "value": {
                                                                        "type": [
                                                                            "string",
                                                                            "null"
                                                                        ]
                                                                    }
                                                                },
                                                                "required": [
                                                                    "slug"
                                                                ]
                                                            }
                                                        },
                                                        "placement_method": {
                                                            "anyOf": [
                                                                {
                                                                    "$ref": "#/components/schemas/InteractionPlacementMethod"
                                                                },
                                                                {
                                                                    "type": "null"
                                                                }
                                                            ]
                                                        },
                                                        "component": {
                                                            "type": [
                                                                "string",
                                                                "null"
                                                            ],
                                                            "enum": [
                                                                "allegro-bottom-drawer",
                                                                "allegro-content-gate",
                                                                "allegro-content-gate-inline",
                                                                "allegro-email-form",
                                                                "allegro-form",
                                                                "allegro-login-form",
                                                                "allegro-modal",
                                                                "allegro-recommendations",
                                                                null
                                                            ]
                                                        },
                                                        "attributes": {
                                                            "type": [
                                                                "array",
                                                                "null"
                                                            ],
                                                            "items": {
                                                                "type": "string"
                                                            }
                                                        },
                                                        "content": {
                                                            "type": [
                                                                "string",
                                                                "null"
                                                            ]
                                                        },
                                                        "truncation_unit": {
                                                            "anyOf": [
                                                                {
                                                                    "$ref": "#/components/schemas/TruncationUnit"
                                                                },
                                                                {
                                                                    "type": "null"
                                                                }
                                                            ]
                                                        },
                                                        "truncation_count": {
                                                            "type": [
                                                                "integer",
                                                                "null"
                                                            ],
                                                            "minimum": 1
                                                        },
                                                        "truncation_style": {
                                                            "anyOf": [
                                                                {
                                                                    "$ref": "#/components/schemas/TruncationStyle"
                                                                },
                                                                {
                                                                    "type": "null"
                                                                }
                                                            ]
                                                        },
                                                        "delay_type": {
                                                            "anyOf": [
                                                                {
                                                                    "$ref": "#/components/schemas/InteractionActionDelayType"
                                                                },
                                                                {
                                                                    "type": "null"
                                                                }
                                                            ]
                                                        },
                                                        "delay_value": {
                                                            "type": [
                                                                "number",
                                                                "null"
                                                            ],
                                                            "minimum": 0
                                                        },
                                                        "delay_scroll_unit": {
                                                            "anyOf": [
                                                                {
                                                                    "$ref": "#/components/schemas/InteractionActionDelayScrollUnit"
                                                                },
                                                                {
                                                                    "type": "null"
                                                                }
                                                            ]
                                                        },
                                                        "delay_scroll_selector": {
                                                            "type": [
                                                                "string",
                                                                "null"
                                                            ],
                                                            "maxLength": 255
                                                        },
                                                        "code": {
                                                            "type": "string"
                                                        },
                                                        "name": {
                                                            "type": "string",
                                                            "maxLength": 255
                                                        },
                                                        "readable": {
                                                            "type": "boolean"
                                                        },
                                                        "value": {
                                                            "type": "string"
                                                        },
                                                        "path": {
                                                            "type": [
                                                                "string",
                                                                "null"
                                                            ],
                                                            "maxLength": 255
                                                        },
                                                        "domain": {
                                                            "type": [
                                                                "string",
                                                                "null"
                                                            ],
                                                            "maxLength": 255
                                                        },
                                                        "expires_days": {
                                                            "type": [
                                                                "integer",
                                                                "null"
                                                            ],
                                                            "minimum": 1,
                                                            "maximum": 365
                                                        }
                                                    },
                                                    "required": [
                                                        "type"
                                                    ]
                                                },
                                                "minItems": 1,
                                                "maxItems": 10
                                            }
                                        },
                                        "required": [
                                            "type"
                                        ]
                                    }
                                }
                            }
                        },
                        "maxItems": 25
                    }
                },
                "required": [
                    "title",
                    "status",
                    "actions"
                ],
                "title": "StoreInteractionRequest"
            },
            "StoreMilestoneRequest": {
                "type": "object",
                "properties": {
                    "date": {
                        "type": "string",
                        "format": "date"
                    },
                    "title": {
                        "type": "string",
                        "maxLength": 120
                    },
                    "note": {
                        "type": [
                            "string",
                            "null"
                        ],
                        "maxLength": 1000
                    },
                    "url": {
                        "type": [
                            "string",
                            "null"
                        ],
                        "format": "uri",
                        "maxLength": 2048
                    },
                    "property_ids": {
                        "type": "array",
                        "items": {
                            "type": "string"
                        }
                    }
                },
                "required": [
                    "date",
                    "title"
                ],
                "title": "StoreMilestoneRequest"
            },
            "StoreProductRequest": {
                "type": "object",
                "properties": {
                    "name": {
                        "type": "string",
                        "maxLength": 255
                    },
                    "slug": {
                        "type": "string",
                        "maxLength": 255
                    },
                    "description": {
                        "type": [
                            "string",
                            "null"
                        ]
                    }
                },
                "required": [
                    "name",
                    "slug"
                ],
                "title": "StoreProductRequest"
            },
            "TemplateResource": {
                "type": "object",
                "properties": {
                    "id": {
                        "type": "string"
                    },
                    "title": {
                        "type": "string"
                    },
                    "slug": {
                        "type": "string"
                    },
                    "html": {
                        "type": "string"
                    },
                    "css": {
                        "type": "string"
                    },
                    "js": {
                        "type": "string"
                    },
                    "external_css_urls": {
                        "type": "string"
                    },
                    "fields": {
                        "description": "`fields` casts to null for a template row with no fields column data (e.g. a\ndegenerate/legacy row) \u2014 a single such template must not 500 the whole tenant's\nsnapshot build, since this resource feeds every automatic interaction's inlined\ntemplate payload on the hottest endpoint in the product.",
                        "anyOf": [
                            {
                                "type": "string"
                            },
                            {
                                "type": "array",
                                "items": {
                                    "type": "string"
                                },
                                "minItems": 0,
                                "maxItems": 0,
                                "additionalItems": false
                            }
                        ]
                    },
                    "supports": {
                        "anyOf": [
                            {
                                "type": "string"
                            },
                            {
                                "type": "array",
                                "items": {
                                    "type": "string"
                                },
                                "minItems": 0,
                                "maxItems": 0,
                                "additionalItems": false
                            }
                        ]
                    },
                    "template_json": {
                        "type": "string"
                    }
                },
                "required": [
                    "id",
                    "title",
                    "slug",
                    "html",
                    "css",
                    "js",
                    "external_css_urls",
                    "fields",
                    "supports"
                ],
                "title": "TemplateResource"
            },
            "TenantHealthResource": {
                "type": "object",
                "properties": {
                    "status": {
                        "type": "string"
                    },
                    "tenant": {
                        "type": "string"
                    },
                    "redis": {
                        "type": "object",
                        "properties": {
                            "reachable": {
                                "type": "string"
                            }
                        },
                        "required": [
                            "reachable"
                        ]
                    },
                    "queues": {
                        "type": "string"
                    }
                },
                "required": [
                    "status",
                    "tenant",
                    "redis",
                    "queues"
                ],
                "title": "TenantHealthResource"
            },
            "TruncationStyle": {
                "type": "string",
                "enum": [
                    "cut",
                    "blur"
                ],
                "title": "TruncationStyle"
            },
            "TruncationUnit": {
                "type": "string",
                "enum": [
                    "paragraphs",
                    "words"
                ],
                "title": "TruncationUnit"
            },
            "UpdateMilestoneRequest": {
                "type": "object",
                "properties": {
                    "date": {
                        "type": "string",
                        "format": "date"
                    },
                    "title": {
                        "type": "string",
                        "maxLength": 120
                    },
                    "note": {
                        "type": [
                            "string",
                            "null"
                        ],
                        "maxLength": 1000
                    },
                    "url": {
                        "type": [
                            "string",
                            "null"
                        ],
                        "format": "uri",
                        "maxLength": 2048
                    },
                    "property_ids": {
                        "type": "array",
                        "items": {
                            "type": "string"
                        }
                    }
                },
                "title": "UpdateMilestoneRequest"
            },
            "UpdateProductRequest": {
                "type": "object",
                "properties": {
                    "name": {
                        "type": "string",
                        "maxLength": 255
                    },
                    "slug": {
                        "type": "string",
                        "maxLength": 255
                    },
                    "description": {
                        "type": [
                            "string",
                            "null"
                        ]
                    }
                },
                "required": [
                    "name"
                ],
                "title": "UpdateProductRequest"
            },
            "User": {
                "type": "object",
                "properties": {
                    "id": {
                        "type": "integer"
                    },
                    "name": {
                        "type": "string"
                    },
                    "email": {
                        "type": "string"
                    },
                    "email_verified_at": {
                        "type": [
                            "string",
                            "null"
                        ],
                        "format": "date-time"
                    },
                    "two_factor_confirmed_at": {
                        "type": [
                            "string",
                            "null"
                        ],
                        "format": "date-time"
                    },
                    "google_id": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "appearance": {
                        "type": "string"
                    },
                    "created_at": {
                        "type": [
                            "string",
                            "null"
                        ],
                        "format": "date-time"
                    },
                    "updated_at": {
                        "type": [
                            "string",
                            "null"
                        ],
                        "format": "date-time"
                    },
                    "gravatar_url": {
                        "type": "string"
                    }
                },
                "required": [
                    "id",
                    "name",
                    "email",
                    "email_verified_at",
                    "two_factor_confirmed_at",
                    "google_id",
                    "appearance",
                    "created_at",
                    "updated_at",
                    "gravatar_url"
                ],
                "title": "User"
            },
            "UserAttributeResource": {
                "type": "object",
                "properties": {
                    "slug": {
                        "type": "string"
                    },
                    "name": {
                        "type": "string"
                    },
                    "description": {
                        "type": "string"
                    },
                    "type": {
                        "type": "string"
                    },
                    "options": {
                        "type": "string"
                    },
                    "value": {
                        "type": "string"
                    },
                    "user_editable": {
                        "type": "string"
                    },
                    "validation_rules": {
                        "type": "string"
                    },
                    "private": {
                        "type": "string"
                    }
                },
                "required": [
                    "slug",
                    "name",
                    "description",
                    "type",
                    "options",
                    "value",
                    "user_editable",
                    "validation_rules",
                    "private"
                ],
                "title": "UserAttributeResource"
            }
        },
        "responses": {
            "AuthenticationException": {
                "description": "Unauthenticated",
                "content": {
                    "application/json": {
                        "schema": {
                            "type": "object",
                            "properties": {
                                "message": {
                                    "type": "string",
                                    "description": "Error overview."
                                }
                            },
                            "required": [
                                "message"
                            ]
                        }
                    }
                }
            },
            "ValidationException": {
                "description": "Validation error",
                "content": {
                    "application/json": {
                        "schema": {
                            "type": "object",
                            "properties": {
                                "message": {
                                    "type": "string",
                                    "description": "Errors overview."
                                },
                                "errors": {
                                    "type": "object",
                                    "description": "A detailed description of each field that failed validation.",
                                    "additionalProperties": {
                                        "type": "array",
                                        "items": {
                                            "type": "string"
                                        }
                                    }
                                }
                            },
                            "required": [
                                "message",
                                "errors"
                            ]
                        }
                    }
                }
            },
            "AuthorizationException": {
                "description": "Authorization error",
                "content": {
                    "application/json": {
                        "schema": {
                            "type": "object",
                            "properties": {
                                "message": {
                                    "type": "string",
                                    "description": "Error overview."
                                }
                            },
                            "required": [
                                "message"
                            ]
                        }
                    }
                }
            }
        }
    }
}