{
  "openapi": "3.1.0",
  "info": {
    "title": "Redocly Museum API",
    "description": "Imaginary, but delightful Museum API for interacting with museum services and information. Built with love by Redocly.",
    "version": "1.1.1",
    "termsOfService": "https://redocly.com/subscription-agreement/",
    "contact": {
      "email": "team@redocly.com",
      "url": "https://redocly.com/docs/cli/"
    },
    "license": {
      "name": "MIT",
      "url": "https://opensource.org/license/mit/"
    }
  },
  "servers": [
    {
      "url": "https://api.fake-museum-example.com/v1.1"
    }
  ],
  "paths": {
    "/museum-hours": {
      "get": {
        "summary": "Get museum hours",
        "description": "Get upcoming museum operating hours.",
        "operationId": "getMuseumHours",
        "tags": [
          "Operations"
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/StartDate"
          },
          {
            "$ref": "#/components/parameters/PaginationPage"
          },
          {
            "$ref": "#/components/parameters/PaginationLimit"
          }
        ],
        "responses": {
          "200": {
            "description": "Success.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GetMuseumHoursResponse"
                },
                "examples": {
                  "default_example": {
                    "$ref": "#/components/examples/GetMuseumHoursResponseExample"
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          }
        }
      }
    },
    "/special-events": {
      "post": {
        "summary": "Create special events",
        "description": "Creates a new special event for the museum.",
        "operationId": "createSpecialEvent",
        "tags": [
          "Events"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateSpecialEventRequest"
              },
              "examples": {
                "default_example": {
                  "$ref": "#/components/examples/CreateSpecialEventRequestExample"
                }
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Created.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SpecialEventResponse"
                },
                "examples": {
                  "default_example": {
                    "$ref": "#/components/examples/CreateSpecialEventResponseExample"
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          }
        }
      },
      "get": {
        "summary": "List special events",
        "description": "Return a list of upcoming special events at the museum.",
        "operationId": "listSpecialEvents",
        "tags": [
          "Events"
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/StartDate"
          },
          {
            "$ref": "#/components/parameters/EndDate"
          },
          {
            "$ref": "#/components/parameters/PaginationPage"
          },
          {
            "$ref": "#/components/parameters/PaginationLimit"
          }
        ],
        "responses": {
          "200": {
            "description": "Success.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ListSpecialEventsResponse"
                },
                "examples": {
                  "default_example": {
                    "$ref": "#/components/examples/ListSpecialEventsResponseExample"
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          }
        }
      }
    },
    "/special-events/{eventId}": {
      "get": {
        "summary": "Get special event",
        "description": "Get details about a special event.",
        "operationId": "getSpecialEvent",
        "tags": [
          "Events"
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/EventId"
          }
        ],
        "responses": {
          "200": {
            "description": "Success.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SpecialEventResponse"
                },
                "examples": {
                  "default_example": {
                    "$ref": "#/components/examples/GetSpecialEventResponseExample"
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          }
        }
      },
      "patch": {
        "summary": "Update special event",
        "description": "Update the details of a special event.",
        "operationId": "updateSpecialEvent",
        "tags": [
          "Events"
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/EventId"
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateSpecialEventRequest"
              },
              "examples": {
                "default_example": {
                  "$ref": "#/components/examples/UpdateSpecialEventRequestExample"
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Success.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SpecialEventResponse"
                },
                "examples": {
                  "default_example": {
                    "$ref": "#/components/examples/UpdateSpecialEventResponseExample"
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          }
        }
      },
      "delete": {
        "summary": "Delete special event",
        "description": "Delete a special event from the collection. Allows museum to cancel planned events.",
        "operationId": "deleteSpecialEvent",
        "tags": [
          "Events"
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/EventId"
          }
        ],
        "responses": {
          "204": {
            "description": "Success - no content."
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          }
        }
      }
    },
    "/tickets": {
      "post": {
        "summary": "Buy museum tickets",
        "description": "Purchase museum tickets for general entry or special events.",
        "operationId": "buyMuseumTickets",
        "tags": [
          "Tickets"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/BuyMuseumTicketsRequest"
              },
              "examples": {
                "general_entry": {
                  "$ref": "#/components/examples/BuyGeneralTicketsRequestExample"
                },
                "event_entry": {
                  "$ref": "#/components/examples/BuyEventTicketsRequestExample"
                }
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Created.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BuyMuseumTicketsResponse"
                },
                "examples": {
                  "general_entry": {
                    "$ref": "#/components/examples/BuyGeneralTicketsResponseExample"
                  },
                  "event_entry": {
                    "$ref": "#/components/examples/BuyEventTicketsResponseExample"
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          }
        }
      }
    },
    "/tickets/{ticketId}/qr": {
      "get": {
        "summary": "Get ticket QR code",
        "description": "Return an image of your ticket with scannable QR code. Used for event entry.",
        "operationId": "getTicketCode",
        "tags": [
          "Tickets"
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/TicketId"
          }
        ],
        "responses": {
          "200": {
            "description": "Scannable event ticket in image format.",
            "content": {
              "image/png": {
                "schema": {
                  "$ref": "#/components/schemas/GetTicketCodeResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          }
        }
      }
    }
  },
  "components": {
    "schemas": {
      "TicketType": {
        "description": "Type of ticket being purchased. Use `general` for regular museum entry and `event` for tickets to special events.",
        "type": "string",
        "enum": [
          "event",
          "general"
        ],
        "example": "event"
      },
      "Date": {
        "type": "string",
        "format": "date",
        "example": "2023-10-29"
      },
      "Email": {
        "description": "Email address for ticket purchaser.",
        "type": "string",
        "format": "email",
        "example": "museum-lover@example.com"
      },
      "Phone": {
        "description": "Phone number for the ticket purchaser (optional).",
        "type": "string",
        "example": "+1(234)-567-8910"
      },
      "BuyMuseumTicketsRequest": {
        "description": "Request payload used for purchasing museum tickets.",
        "type": "object",
        "properties": {
          "ticketType": {
            "$ref": "#/components/schemas/TicketType"
          },
          "eventId": {
            "description": "Unique identifier for a special event. Required if purchasing tickets for the museum's special events.",
            "$ref": "#/components/schemas/EventId"
          },
          "ticketDate": {
            "description": "Date that the ticket is valid for.",
            "$ref": "#/components/schemas/Date"
          },
          "email": {
            "$ref": "#/components/schemas/Email"
          },
          "phone": {
            "$ref": "#/components/schemas/Phone"
          }
        },
        "required": [
          "ticketType",
          "ticketDate",
          "email"
        ]
      },
      "TicketMessage": {
        "description": "Confirmation message after a ticket purchase.",
        "type": "string",
        "example": "Museum general entry ticket purchased"
      },
      "TicketId": {
        "description": "Unique identifier for museum ticket. Generated when purchased.",
        "type": "string",
        "format": "uuid",
        "example": "a54a57ca-36f8-421b-a6b4-2e8f26858a4c"
      },
      "TicketConfirmation": {
        "description": "Unique confirmation code used to verify ticket purchase.",
        "type": "string",
        "example": "ticket-event-a98c8f-7eb12"
      },
      "BuyMuseumTicketsResponse": {
        "description": "Details for a museum ticket after a successful purchase.",
        "type": "object",
        "properties": {
          "message": {
            "$ref": "#/components/schemas/TicketMessage"
          },
          "eventName": {
            "$ref": "#/components/schemas/EventName"
          },
          "ticketId": {
            "$ref": "#/components/schemas/TicketId"
          },
          "ticketType": {
            "$ref": "#/components/schemas/TicketType"
          },
          "ticketDate": {
            "description": "Date the ticket is valid for.",
            "$ref": "#/components/schemas/Date"
          },
          "confirmationCode": {
            "$ref": "#/components/schemas/TicketConfirmation"
          }
        },
        "required": [
          "message",
          "ticketId",
          "ticketType",
          "ticketDate",
          "confirmationCode"
        ]
      },
      "GetTicketCodeResponse": {
        "description": "Image of a ticket with a QR code used for museum or event entry.",
        "type": "string",
        "format": "binary"
      },
      "GetMuseumHoursResponse": {
        "description": "List of museum operating hours for consecutive days.",
        "type": "array",
        "items": {
          "$ref": "#/components/schemas/MuseumDailyHours"
        }
      },
      "MuseumDailyHours": {
        "description": "Daily operating hours for the museum.",
        "type": "object",
        "properties": {
          "date": {
            "description": "Date the operating hours apply to.",
            "$ref": "#/components/schemas/Date",
            "example": "2024-12-31"
          },
          "timeOpen": {
            "type": "string",
            "pattern": "^([01]\\d|2[0-3]):?([0-5]\\d)$",
            "description": "Time the museum opens on a specific date. Uses 24 hour time format (`HH:mm`).",
            "example": "09:00"
          },
          "timeClose": {
            "description": "Time the museum closes on a specific date. Uses 24 hour time format (`HH:mm`).",
            "type": "string",
            "pattern": "^([01]\\d|2[0-3]):?([0-5]\\d)$",
            "example": "18:00"
          }
        },
        "required": [
          "date",
          "timeOpen",
          "timeClose"
        ]
      },
      "EventId": {
        "description": "Identifier for a special event.",
        "type": "string",
        "format": "uuid",
        "example": "3be6453c-03eb-4357-ae5a-984a0e574a54"
      },
      "EventName": {
        "type": "string",
        "description": "Name of the special event.",
        "example": "Pirate Coding Workshop"
      },
      "EventLocation": {
        "type": "string",
        "description": "Location where the special event is held.",
        "example": "Computer Room"
      },
      "EventDescription": {
        "type": "string",
        "description": "Description of the special event.",
        "example": "Captain Blackbeard shares his love of the C...language. And possibly Arrrrr (R lang)."
      },
      "EventDates": {
        "type": "array",
        "items": {
          "$ref": "#/components/schemas/Date"
        },
        "description": "List of planned dates for the special event."
      },
      "EventPrice": {
        "description": "Price of a ticket for the special event.",
        "type": "number",
        "format": "float",
        "example": 25
      },
      "CreateSpecialEventRequest": {
        "description": "Request payload for creating new special events at the museum.",
        "type": "object",
        "properties": {
          "name": {
            "$ref": "#/components/schemas/EventName"
          },
          "location": {
            "$ref": "#/components/schemas/EventLocation"
          },
          "eventDescription": {
            "$ref": "#/components/schemas/EventDescription"
          },
          "dates": {
            "$ref": "#/components/schemas/EventDates"
          },
          "price": {
            "$ref": "#/components/schemas/EventPrice"
          }
        },
        "required": [
          "name",
          "location",
          "eventDescription",
          "dates",
          "price"
        ]
      },
      "UpdateSpecialEventRequest": {
        "description": "Request payload for updating an existing special event. Only included fields are updated in the event.",
        "type": "object",
        "properties": {
          "name": {
            "$ref": "#/components/schemas/EventName"
          },
          "location": {
            "$ref": "#/components/schemas/EventLocation"
          },
          "eventDescription": {
            "$ref": "#/components/schemas/EventDescription"
          },
          "dates": {
            "$ref": "#/components/schemas/EventDates"
          },
          "price": {
            "$ref": "#/components/schemas/EventPrice"
          }
        }
      },
      "ListSpecialEventsResponse": {
        "description": "List of upcoming special events.",
        "type": "array",
        "items": {
          "$ref": "#/components/schemas/SpecialEventResponse"
        }
      },
      "SpecialEventResponse": {
        "description": "Information about a special event.",
        "type": "object",
        "properties": {
          "eventId": {
            "$ref": "#/components/schemas/EventId"
          },
          "name": {
            "$ref": "#/components/schemas/EventName"
          },
          "location": {
            "$ref": "#/components/schemas/EventLocation"
          },
          "eventDescription": {
            "$ref": "#/components/schemas/EventDescription"
          },
          "dates": {
            "$ref": "#/components/schemas/EventDates"
          },
          "price": {
            "$ref": "#/components/schemas/EventPrice"
          }
        },
        "required": [
          "eventId",
          "name",
          "location",
          "eventDescription",
          "dates",
          "price"
        ]
      },
      "Error": {
        "type": "object",
        "properties": {
          "type": {
            "type": "string",
            "example": "object"
          },
          "title": {
            "type": "string",
            "example": "Validation failed"
          }
        }
      }
    },
    "securitySchemes": {
      "MuseumPlaceholderAuth": {
        "type": "http",
        "scheme": "basic"
      }
    },
    "examples": {
      "BuyGeneralTicketsRequestExample": {
        "summary": "General entry ticket",
        "value": {
          "ticketType": "general",
          "ticketDate": "2023-09-07",
          "email": "todd@example.com"
        }
      },
      "BuyEventTicketsRequestExample": {
        "summary": "Special event ticket",
        "value": {
          "ticketType": "general",
          "eventId": "dad4bce8-f5cb-4078-a211-995864315e39",
          "ticketDate": "2023-09-05",
          "email": "todd@example.com"
        }
      },
      "BuyGeneralTicketsResponseExample": {
        "summary": "General entry ticket",
        "value": {
          "message": "Museum general entry ticket purchased",
          "ticketId": "382c0820-0530-4f4b-99af-13811ad0f17a",
          "ticketType": "general",
          "ticketDate": "2023-09-07",
          "confirmationCode": "ticket-general-e5e5c6-dce78"
        }
      },
      "BuyEventTicketsResponseExample": {
        "summary": "Special event ticket",
        "value": {
          "message": "Museum special event ticket purchased",
          "ticketId": "b811f723-17b2-44f7-8952-24b03e43d8a9",
          "eventName": "Mermaid Treasure Identification and Analysis",
          "ticketType": "event",
          "ticketDate": "2023-09-05",
          "confirmationCode": "ticket-event-9c55eg-8v82a"
        }
      },
      "CreateSpecialEventRequestExample": {
        "summary": "Create special event",
        "value": {
          "name": "Mermaid Treasure Identification and Analysis",
          "location": "Under the seaaa 🦀 🎶 🌊.",
          "eventDescription": "Join us as we review and classify a rare collection of 20 thingamabobs, gadgets, gizmos, whoosits, and whatsits, kindly donated by Ariel.",
          "dates": [
            "2023-09-05",
            "2023-09-08"
          ],
          "price": 0
        }
      },
      "CreateSpecialEventResponseExample": {
        "summary": "Special event created",
        "value": {
          "eventId": "dad4bce8-f5cb-4078-a211-995864315e39",
          "name": "Mermaid Treasure Identification and Analysis",
          "location": "Under the seaaa 🦀 🎶 🌊.",
          "eventDescription": "Join us as we review and classify a rare collection of 20 thingamabobs, gadgets, gizmos, whoosits, and whatsits, kindly donated by Ariel.",
          "dates": [
            "2023-09-05",
            "2023-09-08"
          ],
          "price": 30
        }
      },
      "GetSpecialEventResponseExample": {
        "summary": "Get special event",
        "value": {
          "eventId": "6744a0da-4121-49cd-8479-f8cc20526495",
          "name": "Time Traveler Tea Party",
          "location": "Temporal Tearoom",
          "eventDescription": "Sip tea with important historical figures.",
          "dates": [
            "2023-11-18",
            "2023-11-25",
            "2023-12-02"
          ],
          "price": 60
        }
      },
      "ListSpecialEventsResponseExample": {
        "summary": "List of special events",
        "value": [
          {
            "eventId": "f3e0e76e-e4a8-466e-ab9c-ae36c15b8e97",
            "name": "Sasquatch Ballet",
            "location": "Seattle... probably",
            "eventDescription": "They're big, they're hairy, but they're also graceful. Come learn how the biggest feet can have the lightest touch.",
            "dates": [
              "2023-12-15",
              "2023-12-22"
            ],
            "price": 40
          },
          {
            "eventId": "2f14374a-9c65-4ee5-94b7-fba66d893483",
            "name": "Solar Telescope Demonstration",
            "location": "Far from the sun.",
            "eventDescription": "Look at the sun without going blind!",
            "dates": [
              "2023-09-07",
              "2023-09-14"
            ],
            "price": 50
          },
          {
            "eventId": "6aaa61ba-b2aa-4868-b803-603dbbf7bfdb",
            "name": "Cook like a Caveman",
            "location": "Fire Pit on East side",
            "eventDescription": "Learn to cook on an open flame.",
            "dates": [
              "2023-11-10",
              "2023-11-17",
              "2023-11-24"
            ],
            "price": 5
          },
          {
            "eventId": "602b75e1-5696-4ab8-8c7a-f9e13580f910",
            "name": "Underwater Basket Weaving",
            "location": "Rec Center Pool next door.",
            "eventDescription": "Learn to weave baskets underwater.",
            "dates": [
              "2023-09-12",
              "2023-09-15"
            ],
            "price": 15
          },
          {
            "eventId": "dad4bce8-f5cb-4078-a211-995864315e39",
            "name": "Mermaid Treasure Identification and Analysis",
            "location": "Room Sea-12",
            "eventDescription": "Join us as we review and classify a rare collection of 20 thingamabobs, gadgets, gizmos, whoosits, and whatsits — kindly donated by Ariel.",
            "dates": [
              "2023-09-05",
              "2023-09-08"
            ],
            "price": 30
          },
          {
            "eventId": "6744a0da-4121-49cd-8479-f8cc20526495",
            "name": "Time Traveler Tea Party",
            "location": "Temporal Tearoom",
            "eventDescription": "Sip tea with important historical figures.",
            "dates": [
              "2023-11-18",
              "2023-11-25",
              "2023-12-02"
            ],
            "price": 60
          },
          {
            "eventId": "3be6453c-03eb-4357-ae5a-984a0e574a54",
            "name": "Pirate Coding Workshop",
            "location": "Computer Room",
            "eventDescription": "Captain Blackbeard shares his love of the C...language. And possibly Arrrrr (R lang).",
            "dates": [
              "2023-10-29",
              "2023-10-30",
              "2023-10-31"
            ],
            "price": 45
          },
          {
            "eventId": "9d90d29a-2af5-4206-97d9-9ea9ceadcb78",
            "name": "Llama Street Art Through the Ages",
            "location": "Auditorium",
            "eventDescription": "Llama street art?! Alpaca my bags -- let's go!",
            "dates": [
              "2023-10-29",
              "2023-10-30",
              "2023-10-31"
            ],
            "price": 45
          },
          {
            "eventId": "a3c7b2c4-b5fb-4ef7-9322-00a919864957",
            "name": "The Great Parrot Debate",
            "location": "Outdoor Amphitheatre",
            "eventDescription": "See leading parrot minds discuss important geopolitical issues.",
            "dates": [
              "2023-11-03",
              "2023-11-10"
            ],
            "price": 35
          },
          {
            "eventId": "b92d46b7-4c5d-422b-87a5-287767e26f29",
            "name": "Eat a Bunch of Corn",
            "location": "Cafeteria",
            "eventDescription": "We accidentally bought too much corn. Please come eat it.",
            "dates": [
              "2023-11-10",
              "2023-11-17",
              "2023-11-24"
            ],
            "price": 5
          }
        ]
      },
      "UpdateSpecialEventRequestExample": {
        "summary": "Update special event request",
        "value": {
          "location": "On the beach.",
          "price": 15
        }
      },
      "UpdateSpecialEventResponseExample": {
        "summary": "Update special event",
        "value": {
          "eventId": "dad4bce8-f5cb-4078-a211-995864315e39",
          "name": "Mermaid Treasure Identification and Analysis",
          "location": "On the beach.",
          "eventDescription": "Join us as we review and classify a rare collection of 20 thingamabobs, gadgets, gizmos, whoosits, and whatsits, kindly donated by Ariel.",
          "dates": [
            "2023-09-05",
            "2023-09-08"
          ],
          "price": 15
        }
      },
      "GetMuseumHoursResponseExample": {
        "summary": "Get hours response",
        "value": [
          {
            "date": "2023-09-11",
            "timeOpen": "09:00",
            "timeClose": "18:00"
          },
          {
            "date": "2023-09-12",
            "timeOpen": "09:00",
            "timeClose": "18:00"
          },
          {
            "date": "2023-09-13",
            "timeOpen": "09:00",
            "timeClose": "18:00"
          },
          {
            "date": "2023-09-14",
            "timeOpen": "09:00",
            "timeClose": "18:00"
          },
          {
            "date": "2023-09-15",
            "timeOpen": "10:00",
            "timeClose": "16:00"
          },
          {
            "date": "2023-09-18",
            "timeOpen": "09:00",
            "timeClose": "18:00"
          },
          {
            "date": "2023-09-19",
            "timeOpen": "09:00",
            "timeClose": "18:00"
          },
          {
            "date": "2023-09-20",
            "timeOpen": "09:00",
            "timeClose": "18:00"
          },
          {
            "date": "2023-09-21",
            "timeOpen": "09:00",
            "timeClose": "18:00"
          },
          {
            "date": "2023-09-22",
            "timeOpen": "10:00",
            "timeClose": "16:00"
          }
        ]
      }
    },
    "parameters": {
      "PaginationPage": {
        "name": "page",
        "in": "query",
        "description": "Page number to retrieve.",
        "schema": {
          "type": "integer",
          "default": 1,
          "example": 2
        }
      },
      "PaginationLimit": {
        "name": "limit",
        "in": "query",
        "description": "Number of days per page.",
        "schema": {
          "type": "integer",
          "default": 10,
          "maximum": 30,
          "example": 15
        }
      },
      "EventId": {
        "name": "eventId",
        "in": "path",
        "description": "Identifier for a special event.",
        "required": true,
        "schema": {
          "type": "string",
          "format": "uuid",
          "example": "dad4bce8-f5cb-4078-a211-995864315e39"
        }
      },
      "StartDate": {
        "name": "startDate",
        "in": "query",
        "description": "Starting date to retrieve future operating hours from. Defaults to today's date.",
        "schema": {
          "type": "string",
          "format": "date",
          "example": "2023-02-23"
        }
      },
      "EndDate": {
        "name": "endDate",
        "in": "query",
        "description": "End of a date range to retrieve special events for. Defaults to 7 days after `startDate`.",
        "schema": {
          "type": "string",
          "format": "date",
          "example": "2023-04-18"
        }
      },
      "TicketId": {
        "name": "ticketId",
        "in": "path",
        "description": "Identifier for a ticket to a museum event. Used to generate ticket image.",
        "required": true,
        "schema": {
          "type": "string",
          "format": "uuid",
          "example": "a54a57ca-36f8-421b-a6b4-2e8f26858a4c"
        }
      }
    },
    "responses": {
      "BadRequest": {
        "description": "Bad request.",
        "content": {
          "application/problem+json": {
            "schema": {
              "$ref": "#/components/schemas/Error"
            }
          }
        }
      },
      "NotFound": {
        "description": "Not found.",
        "content": {
          "application/problem+json": {
            "schema": {
              "$ref": "#/components/schemas/Error"
            }
          }
        }
      },
      "Unauthorized": {
        "description": "Unauthorized.",
        "content": {
          "application/problem+json": {
            "schema": {
              "$ref": "#/components/schemas/Error"
            }
          }
        }
      }
    }
  },
  "tags": [
    {
      "name": "Operations",
      "description": "Operational information about the museum."
    },
    {
      "name": "Events",
      "description": "Special events hosted by the museum."
    },
    {
      "name": "Tickets",
      "description": "Museum tickets for general entrance or special events."
    }
  ],
  "security": [
    {
      "MuseumPlaceholderAuth": []
    }
  ]
}