openapi: 3.1.0
info:
  version: 3.0.0
  title: TickeTing REST API v3 Reference
  license:
    name: Apache 2.0
    url: https://www.apache.org/licenses/LICENSE-2.0.html
  description: >
    # Introduction

    The TickeTing REST API v3 allows developers to integrate with the TickeTing 

    platform, from creating hosts and events to buying and transferring tickets.

    This reference document will walk you through authenticating against the API

    and the full list of available endpoints, their permissions and
    functionality.


    # Authentication

    The TickeTing API uses API keys to authenticate requests. You must provide
    a 

    valid API Key in the X-API-Key header of each request you make. There are
    two

    ways to get a valid API Key:


    1. Start a session with a valid TickeTing username and password (this gives

    access based on the user's permissions).


    2. Secure an integration key from a system administrator. Integration keys
    grant an

    access level determined by the administrator on creation.


    Session Authentication and Integration Keys are covered in the

    [Authentication](#tag/Session-Management "Authentication") section of this
    reference.


    ### Example Request Header


    ~~~

    X-API-Key: a9427bf35dd3d3011a1277c9c344ae07

    ~~~


    ### Authentication Errors


    Omitting the X-API-Key Header from your request or specifying an empty
    value, will result in

    the following 401 error response.


    ~~~

    {
      "message": "Your request could not be authenticated."
    }

    ~~~


    If an invalid X-API-Key value is provided, or the provided key is valid, but
    does not have

    permission to access the requested resource, the following 403 error
    response is sent.


    ~~~

    {
      "message": "You are restricted from accessing this resource."
    }

    ~~~


    # Client Version

    All requests to the API must advertise the version of the API they wish to
    integrate with.

    This ensures compatability with the server. This is done by including the
    X-Client-Version

    header in every request along with the expected API version. In this way the
    server can

    indicate when a client must upgrade to avoid breaking changes.


    ### Example Request Header


    ~~~

    X-Client-Version: 3.0.0

    ~~~


    ### Client Version Errors


    If the X-Client-Version header is omitted from your request, or the provided
    version does

    not meet the minimum required by the API, the following 412 error response

    is sent.


    ~~~

    {
        "error": "Please upgrade your client to complete this request"
    }

    ~~~


    # Error Responses


    ### 404 Errors


    Requests to the API can result in a 404 error for two reasons:


    1.  The endpoint you are trying to access does not exist, in which case you
    will see the
        following response:
      
        ~~~
        {
            "message": "The requested endpoint /invalid/endpoint does not exist on this server."
        }
        ~~~

    2.  The endpoint you are requesting exists, but a resource cannot be located
    using the
        given URI. For example, trying to access an event resource with a non-existant ID such
        as /events/0000000 will result in the following response:
      
        ~~~
        {
            "error": "There is presently no resource with the given URI."
        }
        ~~~

    ### Server Errors


    This version of the API is still under development and there may be bugs and
    runtime errors

    encountered while processing your request. In these cases, a 500 error
    response will be sent

    with the message below. If such a message is received, please contact a

    [system administrator](mailto:dev@ticketingevents.com "Administrator
    Contact") with the details

    of your request (endpoint, method, headers and payload), so they may
    reproduce and resolve the

    issue.


    ~~~

    {
      "message": "There was a server error while excuting this request. Please see system logs for details."
    }

    ~~~


    ### Other Errors


    Additional error responses may be received when incorrectly accessing valid
    API endpoints. The

    errors received, and their resolution, are specific to the requested URI and
    HTTP Method and details

    are provided with each endpoint's reference where applicable.
  contact:
    name: TickeTing Inc.
    email: dev@ticketingevents.com
servers:
  - url: https://qa.ticketingevents.com/v3
    description: QA Server
  - url: https://api.ticketingevents.com/v3
    description: Production Server
components:
  securitySchemes:
    SessionKey:
      type: apiKey
      in: header
      name: X-API-Key
  schemas:
    credentials:
      type: object
      required:
        - identification
        - password
      properties:
        identification:
          type: string
          description: The username or email address of the account starting the session
        password:
          type: string
          format: password
          description: The password of the account starting the session
    response:
      type: object
      properties:
        self:
          type: string
          format: uri
          description: URI of the session resource
        id:
          type: integer
          description: Unique ID number of the session resource
        open:
          type: boolean
          description: True if the session is currently active, false otherwise
        started:
          type: string
          format: date-time
          description: Time at which the session was created
        key:
          type: string
          description: >
            The key associated to this session resource. Include this token in
            the

            'X-API-Key' Header to authenticate requests as the associated user
            account
        account:
          type: object
          description: User account for which the session was opened
          properties:
            self:
              type: string
              format: uri
              description: URI of the account resource
            number:
              type: string
              pattern: ^[A-Z]{2}-[A-Z0-9]{8}$
              description: Immutable identifier attached to the account
            username:
              type: string
              description: Unique username attached to the account
            email:
              type: string
              format: email
              description: Unique email address attached to the account
            role:
              type: string
              enum:
                - customer
                - support
                - host
                - administrator
              description: User role assigned to the account
            verified:
              type: boolean
              description: >-
                True if the account email address has been verified, false
                otherwise
            activated:
              type: boolean
              description: True if the account is active, false if it has been deactivated
            firstName:
              type: string
              description: The account holder's forename
            lastName:
              type: string
              description: The account holder's surname
            title:
              type: string
              enum:
                - Mr
                - Mrs
                - Ms
                - Mx
              description: The account holder's formal title
            dateOfBirth:
              type: string
              format: date
              description: The account holder's date of birth
            phone:
              type: string
              format: phone
              description: The account holder's primary contact number
            country:
              type: string
              description: >-
                The country associated with the account (used for
                regionalisation)
            firstAddressLine:
              type: string
              description: The first line of the account holder's address
            secondAddressLine:
              type: string
              description: The second line of the account holder's address
            city:
              type: string
              description: The city portion of the account holder's address
            state:
              type: string
              description: >-
                The state, parish or district portion of the account holder's
                address
            preferences:
              type: string
              description: URI of the account's user preferences resource
          unevaluatedProperties: true
    message:
      type: object
      properties:
        message:
          type: string
          description: Reason for the given response.
    token:
      type: object
      properties:
        key:
          type: string
          description: The API access key associated with this token
        event:
          type: string
          format: uri
          description: URI of the event resource the token belongs to
        sections:
          type: array
          description: List of sections this token can redeem tickets for.
          items:
            type: string
            format: uri
            description: URI of the event section resource
    request:
      type: object
      required:
        - name
        - access
      properties:
        name:
          type: string
          description: Unique name of the API Integration Token
        access:
          type: string
          enum:
            - public
            - customer
            - support
            - host
            - administrator
          description: The required access level for this token
    response-2:
      type: object
      properties:
        name:
          type: string
          description: Unique name of the API Integration Token
        access:
          type: string
          enum:
            - public
            - customer
            - support
            - host
            - administrator
          description: The required access level for this token
        key:
          type: string
          description: |
            The unique API Key attached to this integration. Can be used
            to authenticate API requests with the specified access level.
    results:
      type: object
      properties:
        total:
          type: integer
          description: The total number of results available
        page:
          type: integer
          description: The number of the results page returned
        records:
          type: integer
          description: The maximum number of results returned per page
    response-3:
      type: object
      properties:
        self:
          type: string
          format: uri
          description: URI of the account resource
        number:
          type: string
          pattern: ^[A-Z]{2}-[A-Z0-9]{8}$
          description: Immutable identifier attached to the account
        username:
          type: string
          description: Unique username attached to the account
        email:
          type: string
          format: email
          description: Unique email address attached to the account
        role:
          type: string
          enum:
            - customer
            - support
            - host
            - administrator
          description: User role assigned to the account
        verified:
          type: boolean
          description: True if the account email address has been verified, false otherwise
        activated:
          type: boolean
          description: True if the account is active, false if it has been deactivated
        firstName:
          type: string
          description: The account holder's forename
        lastName:
          type: string
          description: The account holder's surname
        title:
          type: string
          enum:
            - Mr
            - Mrs
            - Ms
            - Mx
          description: The account holder's formal title
        dateOfBirth:
          type: string
          format: date
          description: The account holder's date of birth
        phone:
          type: string
          format: phone
          description: The account holder's primary contact number
        country:
          type: string
          description: The country associated with the account (used for regionalisation)
        firstAddressLine:
          type: string
          description: The first line of the account holder's address
        secondAddressLine:
          type: string
          description: The second line of the account holder's address
        city:
          type: string
          description: The city portion of the account holder's address
        state:
          type: string
          description: >-
            The state, parish or district portion of the account holder's
            address
        preferences:
          type: string
          description: URI of the account's user preferences resource
    list:
      type: object
      properties:
        entries:
          type: array
          items:
            $ref: '#/components/schemas/response-3'
    request-2:
      type: object
      required:
        - username
        - password
        - email
      properties:
        username:
          type: string
          description: Unique username attached to the account
        password:
          type: string
          format: password
          description: The password of the account starting the session
        email:
          type: string
          format: email
          description: Unique email address attached to the account
        firstName:
          type: string
          description: The account holder's forename
        lastName:
          type: string
          description: The account holder's surname
        title:
          type: string
          enum:
            - Mr
            - Mrs
            - Ms
            - Mx
          description: The account holder's formal title
        dateOfBirth:
          type: string
          format: date
          description: The account holder's date of birth
        phone:
          type: string
          format: phone
          description: The account holder's primary contact number
        country:
          type: string
          description: The country associated with the account (used for regionalisation)
        firstAddressLine:
          type: string
          description: The first line of the account holder's address
        secondAddressLine:
          type: string
          description: The second line of the account holder's address
        city:
          type: string
          description: The city portion of the account holder's address
        state:
          type: string
          description: >-
            The state, parish or district portion of the account holder's
            address
    update:
      type: object
      properties:
        firstName:
          type: string
          description: The account holder's forename
        lastName:
          type: string
          description: The account holder's surname
        title:
          type: string
          enum:
            - Mr
            - Mrs
            - Ms
            - Mx
          description: The account holder's formal title
        dateOfBirth:
          type: string
          format: date
          description: The account holder's date of birth
        phone:
          type: string
          format: phone
          description: The account holder's primary contact number
        country:
          type: string
          description: The country associated with the account (used for regionalisation)
        firstAddressLine:
          type: string
          description: The first line of the account holder's address
        secondAddressLine:
          type: string
          description: The second line of the account holder's address
        city:
          type: string
          description: The city portion of the account holder's address
        state:
          type: string
          description: >-
            The state, parish or district portion of the account holder's
            address
    preferences:
      type: object
      required:
        - region
      properties:
        region:
          type: string
          description: |
            The user's preferred region. Events and advertisements from the
            selected region will be shown by default.
    response-4:
      type: object
      properties:
        self:
          type: string
          format: uri
          description: URI of the host resource
        name:
          type: string
          description: Unique name of the event host
        contact:
          type: string
          description: First and last name of the event host's primary contact person
        email:
          type: string
          format: email
          description: Primary contact email address of the event host
        description:
          type: string
          description: Brief description of the nature of the events put on by the host
        phone:
          type: string
          format: phone
          description: Primary contact number of the event host
        website:
          type: string
          format: uri
          description: URL of the event host's website, if one exists
        country:
          type: string
          description: The country in which the host's events will be primarily staged
        firstAddressLine:
          type: string
          description: The first line of the event host's mailing address
        secondAddressLine:
          type: string
          description: The second line of the event host's mailing address
        city:
          type: string
          description: The city portion of the event host's mailing address
        state:
          type: string
          description: >-
            The state, parish or district portion of the event host's mailing
            address
        businessNo:
          type: string
          description: >-
            The event host's unique registration number, if it maintains a
            registered business entity
        administrators:
          type: string
          format: uri
          description: URI of the host's administrative user collection
        events:
          type: string
          format: uri
          description: URI of the collection of events being staged by this host
    list-2:
      type: object
      properties:
        entries:
          type: array
          items:
            $ref: '#/components/schemas/response-4'
    lookup:
      type: object
      required:
        - identification
      properties:
        identification:
          type: string
          description: The username or email address of the account being looked up
        role:
          type: string
          description: >
            The role that an account must be assigned for a successful lookup.

            If left blank, the lookup will match an account regardles of its
            role.
    result:
      type: object
      properties:
        identification:
          type: string
          description: The username or email address provided for the account lookup
        role:
          type: string
          description: The role provided for the account lookup.
        found:
          type: boolean
          description: >-
            Whether or not an account matching the provided identification and
            role was found.
    verification_request:
      type: object
      properties:
        email:
          type: string
          description: Email address to which a verification request code will be sent.
    verification_response:
      type: object
      properties:
        self:
          type: string
          format: uri
          description: URI of the verification request resource
        email:
          type: string
          description: Email addresss to which the account verification code was sent.
        status:
          type: string
          enum:
            - Pending
            - Completed
            - Expired
          description: Current status of the account verification request.
    account_verification:
      type: object
      required:
        - code
      properties:
        code:
          type: number
          description: The verification code sent to the account email address.
    reset_request:
      type: object
      properties:
        email:
          type: string
          description: Email address to which a password reset code will be sent.
    reset_response:
      type: object
      properties:
        self:
          type: string
          format: uri
          description: URI of the reset request resource
        email:
          type: string
          description: Email addresss to which the password reset code was sent.
        status:
          type: string
          enum:
            - Pending
            - Completed
            - Expired
          description: Current status of the password reset request.
    password_reset:
      type: object
      required:
        - password
        - code
      properties:
        password:
          type: string
          description: The value the password should be reset to.
        code:
          type: number
          description: The reset code sent to the account email address.
    toggle:
      type: object
      required:
        - reason
      properties:
        reason:
          type: string
          description: Reason for activating/deactivating the account.
    deletion:
      type: object
      required:
        - reason
      properties:
        reason:
          type: string
          description: Reason for requesting account deletion.
    digest:
      type: object
      properties:
        open:
          type: boolean
          description: True if the session is currently active, false otherwise
        ip:
          type: string
          description: IP Address from which the session was opened
        agent:
          type: string
          description: >-
            User Agent (UA) string of the agent from which the session was
            opened
        started:
          type: string
          format: date-time
          description: Time at which the session was opened
        ended:
          type: string
          format: date-time
          description: Time at which the session was ended, if it is no longer open
    list-3:
      type: object
      properties:
        entries:
          type: array
          items:
            $ref: '#/components/schemas/digest'
    digest-2:
      type: object
      properties:
        self:
          type: string
          format: uri
          description: URI of the order resource
        number:
          type: string
          description: Unique identifier of the order
        status:
          type: string
          description: Current status of the order
        placed:
          type: string
          format: date-time
          description: The date and time at which the order was placed
        subtotal:
          type: number
          format: float
          description: Total cost of the ordered items, before convenience fees are applied
        fees:
          type: number
          format: float
          description: Total applicable convenience fees for this order
        total:
          type: number
          format: float
          description: >-
            Total to be paid for this order inclusive of item costs (subtotal)
            and fees
        items:
          type: array
          description: |
            List of items that were ordered
          items:
            type: object
            properties:
              number:
                type: string
                description: Unique identifier of the ordered item
              name:
                type: string
                description: Short name of the ordered item
              description:
                type: string
                description: Detailed description of the ordered item
              price:
                type: number
                format: float
                description: Unit price of the ordered item
              quantity:
                type: number
                description: Number of instances of this item that were ordered
    history:
      type: object
      properties:
        entries:
          type: array
          description: List of orders matching the given criteria
          items:
            $ref: '#/components/schemas/digest-2'
    response-5:
      type: object
      properties:
        self:
          type: string
          format: uri
          description: URI of the event category resource
        name:
          type: string
          description: Unique name of the event category
        subcategories:
          type: array
          description: List of subtypes associated with this category
          items:
            type: string
    response-6:
      type: object
      description: The location at which the event is taking place
      properties:
        self:
          type: string
          format: uri
          description: URI of the venue resource
        name:
          type: string
          description: Name of the event venue
        region:
          type: string
          description: URI of the region resource related to this venue
        latitude:
          type: number
          format: float
          description: Global latitude of the event venue's location
        longitude:
          type: number
          format: float
          description: Global longitude of the event venue's location
        address:
          type: string
          description: Text representation of the event venue's address
        map:
          type: string
          format: uri
          description: URI to a static Google Maps image of the event venue's location
    digest-3:
      type: object
      properties:
        self:
          type: string
          format: uri
          description: URI of the event section resource
        name:
          type: string
          description: Name of the event section
        description:
          type: string
          description: >-
            Details of the unique experience customers can expect when
            purchasing tickets to this event section
        basePrice:
          type: number
          format: float
          description: >-
            Cost of tickets to this event section before the application of any
            price modifiers
        salesStart:
          type: string
          format: date-time
          description: The date and time at which tickets for this event section go on sale
        salesEnd:
          type: string
          format: date-time
          description: The date and time at which ticket sales for this event section close
        active:
          type: boolean
          description: Whether or not tickets for this event section are currently on sale
        capacity:
          type: integer
          description: >-
            The maximum number of tickets that can be issued for this event
            section
        sold:
          type: integer
          description: The number of tickets sold for this event section
        remaining:
          type: integer
          description: The number of event section tickets available for sale
        reserved:
          type: integer
          description: The number of event section tickets held by ongoing orders
    response-7:
      type: object
      properties:
        self:
          type: string
          format: uri
          description: URI of the event resource
        published:
          type: string
          format: date-time
          description: The date and time at which the event was published
        title:
          type: string
          description: Unique name of the event
        description:
          type: string
          description: >
            Long form text detailing what the event is about, including
            performing acts,

            amenities and additional information important to potential
            attendees
        status:
          type: string
          description: Current status of the event
        type:
          type: string
          description: >-
            Nature of the event. Determines what information is collected on
            ticket purchase.
        public:
          type: boolean
          description: Whether or not the event is open to the general public
        category:
          $ref: '#/components/schemas/response-5'
        subcategory:
          type: string
          description: Subcategory under which the event is classified
        start:
          type: string
          format: date-time
          description: The date and time at which the event is scheduled to begin
        end:
          type: string
          format: date-time
          description: The date and time at which the event is scheduled to finish
        venue:
          $ref: '#/components/schemas/response-6'
        host:
          $ref: '#/components/schemas/response-4'
        disclaimer:
          type: string
          description: Subcategory under which the event is classified
        tags:
          type: array
          items:
            type: string
          description: List of short phrases that can be used to search and share the event
        banner:
          type: string
          format: uri
          description: URI of the event's banner image
        thumbnail:
          type: string
          format: uri
          description: URI of the event's thumbnail image
        popularity:
          type: integer
          description: Score indicating how much activity the event is generating.
        sections:
          type: array
          description: >
            A list of the event's subdivisions, each of which offer a unique
            experience to

            ticket holders (E.g. General, VIP, Backstage, etc.)
          items:
            $ref: '#/components/schemas/digest-3'
    list-4:
      type: object
      properties:
        entries:
          type: array
          items:
            $ref: '#/components/schemas/response-7'
    wallet:
      type: object
      properties:
        entries:
          type: array
          description: List of tickets matching the given criteria
          items:
            type: object
            properties:
              serial:
                type: string
                description: Serial number that uniquely identifies the ticket
              status:
                type: string
                description: The ticket's current status
              section:
                type: object
                description: The event section to which this ticket grants access
                properties:
                  self:
                    type: string
                    format: uri
                    description: URI of the event section resource
                  name:
                    type: string
                    description: Name of the event section
                  description:
                    type: string
                    description: >-
                      Details of the experience customers can expect when
                      purchasing tickets to this event section
              issued:
                type: string
                format: date-time
                description: The date and time at which the ticket was issued
              redeemed:
                type: string
                format: date-time
                description: >-
                  The date and time at which the ticket was redeemed (or N/A if
                  it has not been)
    account:
      type: object
      properties:
        self:
          type: string
          format: uri
          description: URI of the account resource
        number:
          type: string
          pattern: ^[A-Z]{2}-[A-Z0-9]{8}$
          description: Immutable identifier attached to the account
        username:
          type: string
          description: Unique username attached to the account
        email:
          type: string
          format: email
          description: Unique email address attached to the account
        firstName:
          type: string
          description: The account holder's forename
        lastName:
          type: string
          description: The account holder's surname
    response-8:
      type: object
      properties:
        self:
          type: string
          format: uri
          description: URI of the transfer resource
        status:
          type: string
          description: Current status of the transfer
        initiated:
          type: string
          format: date-time
          description: The date and time at which the transfer was initiated
        sender:
          $ref: '#/components/schemas/account'
        recipient:
          $ref: '#/components/schemas/account'
        tickets:
          type: array
          description: |
            List of tickets involved in the transfer
          items:
            type: object
            properties:
              name:
                type: string
                description: The event section of the ticket being transferred
              description:
                type: string
                description: Detailed description of the transferred ticket
              quantity:
                type: number
                description: Number of tickets for this section being transferred
        claims:
          type: string
          format: uri
          description: URI for the claims collection used to complete the transfer
    list-5:
      type: object
      properties:
        entries:
          type: array
          description: List of transfers matching the given criteria
          items:
            $ref: '#/components/schemas/response-8'
    request-3:
      type: object
      required:
        - name
        - contact
        - email
      properties:
        name:
          type: string
          description: Unique name of the event host
        contact:
          type: string
          description: First and last name of the event host's primary contact person
        email:
          type: string
          format: email
          description: Primary contact email address of the event host
        description:
          type: string
          description: Brief description of the nature of the events put on by the host
        phone:
          type: string
          format: phone
          description: Primary contact number of the event host
        website:
          type: string
          format: uri
          description: URL of the event host's website, if one exists
        country:
          type: string
          description: The country in which the host's events will be primarily staged
        firstAddressLine:
          type: string
          description: The first line of the event host's mailing address
        secondAddressLine:
          type: string
          description: The second line of the event host's mailing address
        city:
          type: string
          description: The city portion of the event host's mailing address
        state:
          type: string
          description: >-
            The state, parish or district portion of the event host's mailing
            address
        businessNo:
          type: string
          description: >-
            The event host's unique registration number, if it maintains a
            registered business entity
    administrators:
      type: object
      properties:
        entries:
          type: array
          items:
            type: object
            properties:
              self:
                type: string
                format: uri
                description: URI of the account resource
              number:
                type: string
                pattern: ^[A-Z]{2}-[A-Z0-9]{8}$
                description: Immutable identifier attached to the account
              username:
                type: string
                description: Unique username attached to the account
              email:
                type: string
                format: email
                description: Unique email address attached to the account
              firstName:
                type: string
                description: The account holder's forename
              lastName:
                type: string
                description: The account holder's surname
    account-2:
      type: object
      required:
        - account
      properties:
        account:
          type: string
          pattern: ^[A-Z]{2}-[A-Z0-9]{8}$
          description: Identifier of the account to which to grant administrative access
    response-9:
      type: object
      properties:
        self:
          type: string
          format: uri
          description: URI of the advertising zone resource
        name:
          type: string
          description: Unique name of the advertising zone
        description:
          type: string
          description: |
            Text detailing where this zone appears (Events App, Website, etc.)
            and the type of advertising it will display
        number:
          type: string
          pattern: ^[A-Z]{2}[0-9]{4}$
          description: >-
            System generated alphanumeric string that uniquely identifies the
            advertising zone
        width:
          type: number
          format: float
          description: >-
            The width (in pixels) that advertisements assigned to this zone must
            adhere to
        height:
          type: number
          format: float
          description: >-
            The height (in pixels) that advertisements assigned to this zone
            must adhere to
        advertisements:
          type: string
          format: uri
          description: URI of the collection of advertisements assigned to this zone
    response-10:
      type: object
      properties:
        self:
          type: string
          format: uri
          description: URI of the advertisement resource
        name:
          type: string
          description: Unique name of the advertisement
        description:
          type: string
          description: >
            Long form text detailing the aims and objectives of the
            advertisement

            and any other relevant information
        status:
          type: string
          description: Current status of the advertisement
        artwork:
          type: string
          format: uri
          description: URI of the advertisement's artwork
        zones:
          type: array
          description: List of zones the advertisement is assigned to
          items:
            $ref: '#/components/schemas/response-9'
        schedule:
          type: array
          description: |
            List of time slots at which to display the advertisement in its
            allocated zones
          items:
            type: object
            properties:
              start:
                type: string
                format: date-time
                description: >-
                  The date and time from which the advertisement is scheduled to
                  be displayed
              end:
                type: string
                format: date-time
                description: >-
                  The date and time until which the advertisement is scheduled
                  to be displayed
        event:
          type: object
          description: The event that this advertisement is promoting
          properties:
            self:
              type: string
              format: uri
              description: URI of the event resource
            published:
              type: string
              format: date-time
              description: The date and time at which the event was published
            title:
              type: string
              description: Unique name of the event
            description:
              type: string
              description: >
                Long form text detailing what the event is about, including
                performing acts,

                amenities and additional information important to potential
                attendees
            status:
              type: string
              description: Current status of the event
            type:
              type: string
              description: >-
                Nature of the event. Determines what information is collected on
                ticket purchase.
            public:
              type: boolean
              description: Whether or not the event is open to the general public
            category:
              $ref: '#/components/schemas/response-5'
            subcategory:
              type: string
              description: Subcategory under which the event is classified
            start:
              type: string
              format: date-time
              description: The date and time at which the event is scheduled to begin
            end:
              type: string
              format: date-time
              description: The date and time at which the event is scheduled to finish
            venue:
              $ref: '#/components/schemas/response-6'
            host:
              $ref: '#/components/schemas/response-4'
            disclaimer:
              type: string
              description: Subcategory under which the event is classified
            tags:
              type: array
              items:
                type: string
              description: >-
                List of short phrases that can be used to search and share the
                event
            banner:
              type: string
              format: uri
              description: URI of the event's banner image
            thumbnail:
              type: string
              format: uri
              description: URI of the event's thumbnail image
            popularity:
              type: integer
              description: Score indicating how much activity the event is generating.
            sections:
              type: array
              description: >
                A list of the event's subdivisions, each of which offer a unique
                experience to

                ticket holders (E.g. General, VIP, Backstage, etc.)
              items:
                $ref: '#/components/schemas/digest-3'
          unevaluatedProperties: true
    list-6:
      type: object
      properties:
        entries:
          type: array
          description: List of advertisements matching the given criteria
          items:
            $ref: '#/components/schemas/response-10'
    post:
      type: object
      required:
        - host
        - type
        - title
        - description
        - category
        - subcategory
        - venue
        - public
      properties:
        host:
          type: string
          pattern: ^\d{14}$
          description: Unique identifier of the host staging this event
        title:
          type: string
          description: Unique name of the event
        description:
          type: string
          description: >
            Long form text detailing what the event is about, including
            performing acts,

            amenities and additional information important to potential
            attendees
        type:
          type: string
          enum:
            - Standard
            - Registration
          description: >-
            Nature of the event. Determines what information is collected on
            ticket purchase.
        public:
          type: boolean
          description: Whether or not the event is open to the general public
        category:
          type: string
          format: uri
          description: URI of the category under which the event is classified
        subcategory:
          type: string
          description: Subcategory under which the event is classified
        start:
          type: string
          format: date-time
          description: The date and time at which the event is scheduled to begin
        end:
          type: string
          format: date-time
          description: The date and time at which the event is scheduled to finish
        venue:
          type: string
          format: uri
          description: URI of the venue at which the event is taking place
        disclaimer:
          type: string
          description: Subcategory under which the event is classified
        tags:
          type: array
          items:
            type: string
          description: List of short phrases that can be used to search and share the event
        banner:
          type: string
          format: base64
          description: Base64 representation of the event's banner image data
        thumbnail:
          type: string
          format: base64
          description: Base64 representation of the event's thumbnail image data
    put:
      type: object
      required:
        - type
        - title
        - description
        - category
        - subcategory
        - venue
        - public
      properties:
        title:
          type: string
          description: Unique name of the event
        description:
          type: string
          description: >
            Long form text detailing what the event is about, including
            performing acts,

            amenities and additional information important to potential
            attendees
        type:
          type: string
          enum:
            - Standard
            - Registration
          description: >-
            Nature of the event. Determines what information is collected on
            ticket purchase.
        public:
          type: boolean
          description: Whether or not the event is open to the general public
        category:
          type: string
          format: uri
          description: URI of the category under which the event is classified
        subcategory:
          type: string
          description: Subcategory under which the event is classified
        start:
          type: string
          format: date-time
          description: The date and time at which the event is scheduled to begin
        end:
          type: string
          format: date-time
          description: The date and time at which the event is scheduled to finish
        venue:
          type: string
          format: uri
          description: URI of the venue at which the event is taking place
        disclaimer:
          type: string
          description: Subcategory under which the event is classified
        tags:
          type: array
          items:
            type: string
          description: List of short phrases that can be used to search and share the event
        banner:
          type: string
          format: base64
          description: Base64 representation of the event's banner image data
        thumbnail:
          type: string
          format: base64
          description: Base64 representation of the event's thumbnail image data
    request-4:
      type: object
      required:
        - name
        - basePrice
        - capacity
      properties:
        name:
          type: string
          description: Name of the event section
        description:
          type: string
          description: >-
            Details of the unique experience customers can expect when
            purchasing tickets to this event section
        basePrice:
          type: number
          format: float
          description: >-
            Cost of tickets to this event section before the application of any
            price modifiers
        salesStart:
          type: string
          format: date-time
          description: The date and time at which tickets for this event section go on sale
        salesEnd:
          type: string
          format: date-time
          description: The date and time at which ticket sales for this event section close
        capacity:
          type: integer
          description: >-
            The maximum number of tickets that can be issued for this event
            section
    response-11:
      type: object
      properties:
        self:
          type: string
          format: uri
          description: URI of the price modifier resource
        name:
          type: string
          description: Name of the price modifier
        priceDelta:
          type: number
          format: float
          description: >-
            The change made to the event section's base price when this modifier
            is applied
        availableFrom:
          type: string
          format: date-time
          description: The date and time after which this price modifier will be applied
        availableTo:
          type: string
          format: date-time
          description: The date and time before which this price modifier will be applied
        active:
          type: boolean
          description: >-
            Whether or not the price modifier is currently active based on its
            availability dates
        minOrder:
          type: integer
          description: >-
            The minimum order size for which this modifier will be applied (for
            group rates).
        maxOrder:
          type: integer
          description: >-
            The maximum order size for which this modifier will be applied (for
            group rates).
    response-12:
      type: object
      properties:
        self:
          type: string
          format: uri
          description: URI of the event section resource
        name:
          type: string
          description: Name of the event section
        description:
          type: string
          description: >-
            Details of the unique experience customers can expect when
            purchasing tickets to this event section
        basePrice:
          type: number
          format: float
          description: >-
            Cost of tickets to this event section before the application of any
            price modifiers
        salesStart:
          type: string
          format: date-time
          description: The date and time at which tickets for this event section go on sale
        salesEnd:
          type: string
          format: date-time
          description: The date and time at which ticket sales for this event section close
        active:
          type: boolean
          description: Whether or not tickets for this event section are currently on sale
        capacity:
          type: integer
          description: >-
            The maximum number of tickets that can be issued for this event
            section
        sold:
          type: integer
          description: The number of tickets sold for this event section
        remaining:
          type: integer
          description: The number of event section tickets available for sale
        reserved:
          type: integer
          description: The number of event section tickets held by ongoing orders
        modifiers:
          type: array
          description: >
            A list of the section's price modifiers. Price modifiers implement
            special ticket rates

            including early bird specials, flash sales and group discounts.
          items:
            $ref: '#/components/schemas/response-11'
    request-5:
      type: object
      required:
        - name
        - priceDelta
        - availableFrom
        - availableTo
        - minOrder
        - maxOrder
      properties:
        name:
          type: string
          description: Name of the price modifier
        priceDelta:
          type: number
          format: float
          description: >-
            The change made to the event section's base price when this modifier
            is applied
        availableFrom:
          type: string
          format: date-time
          description: The date and time after which this price modifier will be applied
        availableTo:
          type: string
          format: date-time
          description: The date and time before which this price modifier will be applied
        minOrder:
          type: integer
          description: >-
            The minimum order size for which this modifier will be applied (for
            group rates).
        maxOrder:
          type: integer
          description: >-
            The maximum order size for which this modifier will be applied (for
            group rates).
    response-13:
      type: object
      properties:
        self:
          type: string
          format: uri
          description: URI of the token resource
        code:
          type: string
          description: The code used to uniquely identify this token in the system
        global:
          type: boolean
          description: Whether or not this is a global event token
        sections:
          type: array
          description: List of sections this token can redeem tickets for.
          items:
            type: string
            format: uri
            description: URI of the event section resource
    list-7:
      type: object
      properties:
        entries:
          type: array
          items:
            $ref: '#/components/schemas/response-13'
    request-6:
      type: object
      required:
        - sections
      properties:
        sections:
          type: array
          description: List of sections this token can redeem tickets for.
          items:
            type: string
            format: uri
            description: URI of the event section resource
    response-14:
      type: object
      properties:
        serial:
          type: string
          description: Serial number that uniquely identifies the ticket
        status:
          type: string
          description: The ticket's current status
        section:
          type: object
          description: The event section to which this ticket grants access
          properties:
            self:
              type: string
              format: uri
              description: URI of the event section resource
            name:
              type: string
              description: Name of the event section
            description:
              type: string
              description: >-
                Details of the experience customers can expect when purchasing
                tickets to this event section
        owner:
          type: object
          description: Details of the user account that holds the ticket
          properties:
            self:
              type: string
              format: uri
              description: URI of the account resource
            number:
              type: string
              pattern: ^[A-Z]{2}-[A-Z0-9]{8}$
              description: Immutable identifier attached to the account
            username:
              type: string
              description: Unique username attached to the account
            email:
              type: string
              format: email
              description: Unique email address attached to the account
            firstName:
              type: string
              description: The account holder's forename
            lastName:
              type: string
              description: The account holder's surname
        issued:
          type: string
          format: date-time
          description: The date and time at which the ticket was issued
        redeemed:
          type: string
          format: date-time
          description: >-
            The date and time at which the ticket was redeemed (or N/A if it has
            not been)
    list-8:
      type: object
      properties:
        entries:
          type: array
          description: List of tickets matching the given criteria
          items:
            $ref: '#/components/schemas/response-14'
    response-15:
      type: object
      properties:
        redeemer:
          type: string
          description: Human-readable name of the person who redeemed the ticket
        device:
          type: string
          description: Unique identifier of the device from which the ticket was redeemed
        ticket:
          type: string
          description: Serial number of the ticket that granted admission
        patron:
          type: object
          description: Full name and username of the TickeTing user admitted on this ticket
          properties:
            username:
              type: string
              description: Unique username attached to the account
            email:
              type: string
              format: email
              description: Unique email address attached to the account
            firstName:
              type: string
              description: The account holder's forename
            lastName:
              type: string
              description: The account holder's surname
        section:
          type: object
          description: Name of the event section the patron was admitted to
          properties:
            self:
              type: string
              format: uri
              description: URI of the event section resource
            name:
              type: string
              description: Name of the event section
            description:
              type: string
              description: >-
                Details of the experience customers can expect when purchasing
                tickets to this event section
        admitted:
          type: string
          format: date-time
          description: The date and time at which the patron was admitted
    list-9:
      type: object
      properties:
        entries:
          type: array
          items:
            $ref: '#/components/schemas/response-15'
    request-7:
      type: object
      required:
        - redeemer
        - device
        - serials
      properties:
        redeemer:
          type: string
          description: Human-readable name of the person redeeming the listed tickets
        device:
          type: string
          description: Unique identifier of the device the tickets are being redeemed from
        serials:
          type: array
          description: List of ticket serials to redeem for admission to this event
          items:
            type: string
    collection:
      type: array
      description: List of admissions granted by the provided serial numbers
      items:
        $ref: '#/components/schemas/response-15'
    statistics:
      type: object
      properties:
        self:
          type: string
          format: uri
          description: URI of the host statistics resource
        events:
          type: number
          description: Total number of events staged by the host.
        orders:
          type: number
          description: Number of successful ticket orders for events staged by the host.
        revenue:
          type: number
          description: Total ticket sale revenue for events staged by the host.
        tickets:
          type: number
          format: email
          description: Number of tickets sold to events staged by the host.
    statistics-2:
      type: object
      properties:
        self:
          type: string
          format: uri
          description: URI of the event statistics resource
        capacity:
          type: number
          description: Total ticket capacity for the event.
        orders:
          type: number
          description: Number of successful ticket orders for the event.
        revenue:
          type: number
          description: Total revenue from tickets sold to the event.
        tickets:
          type: number
          format: email
          description: Total tickets sold to the event.
    sales:
      type: object
      properties:
        units:
          type: number
          description: >-
            The total number of ticket sales for this event, section or modifier
            that match the given criteria
        sales:
          type: number
          format: float
          description: >-
            The total income from matching ticket sales for this event, section
            or modifier
        fees:
          type: number
          format: float
          description: >-
            The total fees charged on matching ticket sales for this event,
            section or modifier
    modifiers:
      type: object
      properties:
        breakdown:
          type: object
          description: >-
            Breakdown of overall units sold, income from sales and fees charged
            by modifier.
          additionalProperties:
            description: Modifier sales breakdown
            type: object
            allOf:
              - $ref: '#/components/schemas/sales'
    sections:
      type: object
      properties:
        breakdown:
          type: object
          description: >-
            Breakdown of overall units sold, income from sales and fees charged
            by section.
          additionalProperties:
            description: Section sales breakdown
            type: object
            allOf:
              - $ref: '#/components/schemas/sales'
              - $ref: '#/components/schemas/modifiers'
    report:
      type: object
      allOf:
        - $ref: '#/components/schemas/sales'
        - $ref: '#/components/schemas/sections'
    list-10:
      type: object
      properties:
        entries:
          type: array
          items:
            $ref: '#/components/schemas/response-9'
    request-8:
      type: object
      properties:
        name:
          type: string
          description: Unique name of the advertising zone
        description:
          type: string
          description: |
            Text detailing where this zone appears (Events App, Website, etc.)
            and the type of advertising it will display
        width:
          type: number
          format: float
          description: >-
            The width (in pixels) that advertisements assigned to this zone must
            adhere to
        height:
          type: number
          format: float
          description: >-
            The height (in pixels) that advertisements assigned to this zone
            must adhere to
    request-9:
      type: object
      properties:
        name:
          type: string
          description: Unique name of the advertisement
        description:
          type: string
          description: >
            Long form text detailing the aims and objectives of the
            advertisement

            and any other relevant information
        event:
          type: string
          pattern: ^\d{14}$
          description: Unique identifier of the event that this advertisement is promoting
        artwork:
          type: string
          format: base64
          description: Base64 representation of the advertisement's artwork image data
        zones:
          type: array
          description: List of zones the advertisement is assigned to display in
          items:
            type: string
            pattern: ^[A-Z]{2}[0-9]{4}$
            description: Unique number of the zone that this advertisement should target
        schedule:
          type: array
          description: |
            List of time slots at which to display the advertisement in its
            allocated zones
          items:
            type: object
            properties:
              start:
                type: string
                format: date-time
                description: >-
                  The date and time from which the advertisement is scheduled to
                  be displayed
              end:
                type: string
                format: date-time
                description: >-
                  The date and time until which the advertisement is scheduled
                  to be displayed
    response-16:
      type: object
      properties:
        self:
          type: string
          format: uri
          description: URI of the order resource
        number:
          type: string
          description: Unique identifier of the order
        status:
          type: string
          description: Current status of the order
        placed:
          type: string
          format: date-time
          description: The date and time at which the order was placed
        subtotal:
          type: number
          format: float
          description: Total cost of the ordered items, before convenience fees are applied
        fees:
          type: number
          format: float
          description: Total applicable convenience fees for this order
        total:
          type: number
          format: float
          description: >-
            Total to be paid for this order inclusive of item costs (subtotal)
            and fees
        items:
          type: array
          description: |
            List of items that were ordered
          items:
            type: object
            properties:
              number:
                type: string
                description: Unique identifier of the ordered item
              name:
                type: string
                description: Short name of the ordered item
              description:
                type: string
                description: Detailed description of the ordered item
              price:
                type: number
                format: float
                description: Unit price of the ordered item
              quantity:
                type: number
                description: Number of instances of this item that were ordered
        customer:
          type: object
          description: Details of the user account that placed the order
          properties:
            self:
              type: string
              format: uri
              description: URI of the account resource
            number:
              type: string
              pattern: ^[A-Z]{2}-[A-Z0-9]{8}$
              description: Immutable identifier attached to the account
            username:
              type: string
              description: Unique username attached to the account
            email:
              type: string
              format: email
              description: Unique email address attached to the account
            role:
              type: string
              enum:
                - customer
                - support
                - host
                - administrator
              description: User role assigned to the account
            verified:
              type: boolean
              description: >-
                True if the account email address has been verified, false
                otherwise
            activated:
              type: boolean
              description: True if the account is active, false if it has been deactivated
            firstName:
              type: string
              description: The account holder's forename
            lastName:
              type: string
              description: The account holder's surname
            title:
              type: string
              enum:
                - Mr
                - Mrs
                - Ms
                - Mx
              description: The account holder's formal title
            dateOfBirth:
              type: string
              format: date
              description: The account holder's date of birth
            phone:
              type: string
              format: phone
              description: The account holder's primary contact number
            country:
              type: string
              description: >-
                The country associated with the account (used for
                regionalisation)
            firstAddressLine:
              type: string
              description: The first line of the account holder's address
            secondAddressLine:
              type: string
              description: The second line of the account holder's address
            city:
              type: string
              description: The city portion of the account holder's address
            state:
              type: string
              description: >-
                The state, parish or district portion of the account holder's
                address
            preferences:
              type: string
              description: URI of the account's user preferences resource
          unevaluatedProperties: true
        payments:
          type: string
          format: uri
          description: URI of the collection of payments that settle this order
    list-11:
      type: object
      properties:
        entries:
          type: array
          description: List of orders matching the given criteria
          items:
            $ref: '#/components/schemas/response-16'
    request-10:
      type: object
      properties:
        customer:
          type: string
          pattern: ^[A-Z]{2}-[A-Z0-9]{8}$
          description: Unique identifier of the account placing this order
        items:
          description: >-
            Sections for which to order tickets. The object's keys are the URI
            of the event section for which tickets are being ordered, while its
            values are the number of tickets to order for the section.
          type: object
          additionalProperties:
            description: Number of tickets to order for the specified section
            type: number
            format: integer
    request-11:
      type: object
      required:
        - number
        - cvv
        - expiryDate
        - name
        - email
        - phone
        - address1
        - city
        - district
        - country
      properties:
        number:
          type: string
          pattern: ^\d{16}$
          description: 16-Digit Primary Account Number (PAN) of the payment
        cvv:
          type: number
          format: integer
          description: 3-Digit Card Verification Value (CVV) of the payment card
        expiryDate:
          type: string
          pattern: ^\d{2}/\d{2}$
          description: Expiry date of the payment card in the format MM/YY
        name:
          type: string
          description: Name of the payment card holder as printed on the front of the card
        email:
          type: string
          format: email
          description: Email address of the payment card holder
        phone:
          type: string
          format: phone
          description: Phone number of the payment card holder
        address1:
          type: string
          description: First line of the payment card holder's billing address
        address2:
          type: string
          description: Second line of the payment card holder's billing address
        city:
          type: string
          description: City of the payment card holder's billing address
        district:
          type: string
          description: Parish/State/Province of the payment card holder's billing address
        country:
          type: string
          description: Country of the payment card holder's billing address
    response-17:
      type: object
      properties:
        date:
          type: string
          format: date-time
          description: The date/time at which the payment was attempted
        amount:
          type: number
          format: float
          description: The attempted payment amount
        status:
          type: string
          enum:
            - Authorised
            - Declined
          description: The end result of the payment attempt
    request-12:
      type: object
      required:
        - reason
      properties:
        reason:
          type: string
          description: The reason for issuing this refund.
    response-18:
      type: object
      properties:
        date:
          type: string
          format: date-time
          description: The date/time at which the refund was attempted
        amount:
          type: number
          format: float
          description: The attempted refund amount
        status:
          type: string
          enum:
            - Authorised
            - Declined
          description: The end result of the refund attempt
    request-13:
      type: object
      properties:
        sender:
          type: string
          pattern: ^[A-Z]{2}-[A-Z0-9]{8}$
          description: Unique identifier of the account initiating this transfer
        recipient:
          type: string
          pattern: ^[A-Z]{2}-[A-Z0-9]{8}$
          description: Account identifier of the transfer recipient
        tickets:
          type: object
          description: >-
            Sections for which to transfer tickets. The object's keys are the
            URI of the event section of the tickets being transferred, while its
            values are the number of tickets to transfer for that section.
          additionalProperties:
            description: Number of tickets to transfer for the specified section
            type: number
            format: integer
    response-19:
      type: object
      properties:
        date:
          type: string
          format: date-time
          description: The date/time at which the transfer was claimed
        claimant:
          type: string
          description: >-
            Full name and username of the TickeTing user that claimed the
            transfer
        success:
          type: boolean
          description: True if the transfer was successfully claimed, false otherwise
    response-20:
      type: object
      description: A geographical region in which events can be staged
      properties:
        self:
          type: string
          format: uri
          description: URI of the region resource
        name:
          type: string
          description: Unique name of the region
        country:
          type: string
          description: Country in which the region is located
        district:
          type: string
          description: Parish, state, province, county, etc. in which the region is located
        city:
          type: string
          description: City, town or village in which the region is located
        icon:
          type: string
          format: uri
          description: URI of an icon that represents the region (e.g. flag)
    list-12:
      type: object
      properties:
        entries:
          type: array
          items:
            $ref: '#/components/schemas/response-20'
    request-14:
      type: object
      required:
        - name
        - country
      properties:
        name:
          type: string
          description: Unique name of the region
        country:
          type: string
          description: Country in which the region is located
        district:
          type: string
          description: Parish, state, province, county, etc. in which the region is located
        city:
          type: string
          description: City, town or village in which the region is located
    list-13:
      type: object
      properties:
        entries:
          type: array
          items:
            $ref: '#/components/schemas/response-6'
    request-15:
      type: object
      required:
        - name
        - region
        - latitude
        - longitude
        - address
      properties:
        name:
          type: string
          description: Name of the event venue
        region:
          type: string
          pattern: ^\d{14}$
          description: Unique identifier of the region in which this venue is located
        latitude:
          type: number
          format: float
          description: Global latitude of the event venue's location
        longitude:
          type: number
          format: float
          description: Global longitude of the event venue's location
        address:
          type: string
          description: Text representation of the event venue's address
    list-14:
      type: object
      properties:
        entries:
          type: array
          items:
            $ref: '#/components/schemas/response-5'
    request-16:
      type: object
      required:
        - name
      properties:
        name:
          type: string
          description: Unique name of the event category
        subcategories:
          type: array
          description: List of subtypes associated with this category
          items:
            type: string
    response-21:
      type: object
      properties:
        self:
          type: string
          format: uri
          description: URI of the content submission resource
        type:
          type: string
          enum:
            - advertisement
            - event
          description: The type of content that has been submitted for review
        content:
          description: |
            Details of the content that has been submitted for review
    list-15:
      type: object
      properties:
        entries:
          type: array
          items:
            $ref: '#/components/schemas/response-21'
    response-22:
      type: object
      properties:
        description:
          type: string
          description: >
            Long form text detailing what the transaction was for. This can
            include event ticket information

            for sales or services rendered for charges.
        type:
          type: string
          description: >-
            The nature of the transaction, whether a sale, charge, refund or
            credit
        category:
          type: string
          description: >-
            The category into which this transaction falls (Ticket Sales,
            Advertisement or Event Management)
        status:
          type: string
          description: Current status of the transaction
        amount:
          type: number
          description: The total monetary value of the transaction
        quantity:
          type: number
          description: >-
            The number of items involved in this transaction (E.g number of
            tickets being paid for)
        event:
          type: string
          description: >-
            Name of the event to which this transaction is associated, if
            applicable
        section:
          type: string
          description: >-
            Name of the event section to which this transaction is associated,
            if applicable
        modifier:
          type: string
          description: >-
            Name of the event section modifier applied to this transaction, if
            applicable
        created:
          type: string
          format: date-time
          description: The date and time at which the transaction was transacted
    list-16:
      type: object
      properties:
        entries:
          type: array
          items:
            $ref: '#/components/schemas/response-22'
    countries:
      type: object
      properties:
        self:
          type: string
          format: uri
          description: URI of the country list resource
        countries:
          type: array
          description: List of country names
          items:
            type: string
  responses:
    '400':
      description: >-
        One or more required arguments are missing or some arguments are
        invalid.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/message'
          example:
            error: The following arguments are required, but have not been supplied.
    '404':
      description: The requested resource could not be located
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/message'
          example:
            message: The requested resource could not be located.
    not_found:
      description: No account was found matching the provided identification string
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/message'
          example:
            message: The requested account could not be located.
    no_session:
      description: >-
        No session was found for the specified key, or the session has been
        ended.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/message'
          example:
            message: You are restricted from accessing this resource.
    no_token:
      description: No admission token identified by the given code exists
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/message'
          example:
            message: The requested resource could not be located.
    integration_exists:
      description: The named API integration token already exists
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/message'
          example:
            message: >-
              The following arguments conflict with those of another token:
              name.
    not_found-2:
      description: >-
        The requested results page does not exist for the number of records
        specified.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/message'
          example:
            error: The specified page does not exist for the given records per page.
    exists:
      description: >-
        The specified username or email address is already associated with an
        existing account
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/message'
          example:
            message: >-
              The following arguments conflict with those of another user:
              username.
    unauthorised:
      description: >-
        The authenticating user is not authorised to access or modify this
        account.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/message'
          example:
            message: You are not authorised to access or modify this account.
    indelible:
      description: >-
        The account cannot be deleted until all active tickets have been
        transferred.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/message'
          example:
            message: An account cannot be deleted if it holds active tickets.
    missing_verification_email:
      description: No email address was provided with the account verification request.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/message'
          example:
            message: >-
              You must provide an email address to which to send the
              verification code.
    not_found-3:
      description: No account was found matching the provided username or email address
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/message'
          example:
            message: The requested account could not be located
    invalid_verification_code:
      description: |
        The supplied account verification code was incorrect.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/message'
          example:
            message: The provided account verification code is incorrect.
    cannot_verify:
      description: >-
        The account has already been verified, or the verification request has
        expired.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/message'
          example:
            message: >-
              The account verification request has already been completed or
              expired.
    missing_reset_email:
      description: No email address was provided with the password reset request.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/message'
          example:
            message: You must provide an email address to which to send the reset code.
    invalid_reset_code:
      description: |
        The supplied password reset code was incorrect.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/message'
          example:
            message: The provided password reset code is incorrect.
    cannot_reset:
      description: >-
        The account password has already been reset, or the reset request has
        expired.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/message'
          example:
            message: The password reset request has already been completed or expired.
    bad_toggle:
      description: The reason for toggling the account was omitted or invalid.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/message'
          example:
            message: 'The following arguments have invalid values: reason.'
    criteria:
      description: One or more of the specified query parameters was invalid
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/message'
          example:
            message: 'The following query parameters have invalid values: sort.'
    criteria-2:
      description: One or more of the specified query parameters was invalid
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/message'
          example:
            message: >-
              The following query parameters have invalid values: status,
              serial.
    no_role:
      description: >-
        The request did not specify whether the account holder was a sender or
        recipient of the transfer.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/message'
          example:
            message: >-
              Your request must specify whether to list transfers sent or
              received
    exists-2:
      description: An event host with the specified name already exists in the system
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/message'
          example:
            message: 'The following arguments conflict with those of another host: name.'
    unauthorised-2:
      description: The authenticating user is not authorised to administer the event host.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/message'
          example:
            message: This account is not an administrator for the relevant event host.
    account_not_found:
      description: The specified account number does not belong to a TickeTing account
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/message'
          example:
            message: The requested account could not be located
    administrator_exists:
      description: The specified account already has administrative access
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/message'
          example:
            message: The specified account is already a host administrator.
    administrator_not_found:
      description: >-
        The specified account does not have administrative access to the event
        host
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/message'
          example:
            message: >-
              The specified account cannot be removed as it is not a host
              administrator.
    unauthorised-3:
      description: >-
        The authenticating user is not authorised to manage events on behalf of
        this host.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/message'
          example:
            message: This account is not an administrator for the relevant event host.
    exists-3:
      description: An event with the specified title already exists in the system
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/message'
          example:
            message: >-
              The following arguments conflict with those of another host:
              title.
    unlisted:
      description: >-
        The authenticating user is not authorised to access unlisted events from
        this host.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/message'
          example:
            message: You are not authorised to access this unlisted event.
    has_sections:
      description: >-
        One or more sections have been added to the event, preventing it from
        being deleted.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/message'
          example:
            message: You must delete an event's sections before deleting an event.
    not_draft:
      description: The submitted content was not in a 'Draft' status.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/message'
          example:
            message: Only a 'Draft' can be submitted for review.
    bad_dates:
      description: >-
        Section sales dates are incompatible with one another, or the dates of
        the event.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/message'
          example:
            message: Sales must start before they end.
    exists-4:
      description: The specified event already has a section with the given name.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/message'
          example:
            message: This event already has a <name> section.
    has_sales:
      description: A section with reserved or purchased tickets cannot be deleted.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/message'
          example:
            message: You cannot delete a section with reserved or sold tickets
    bad_data:
      description: >-
        The modifier's data is internally inconsistent or incompatible with the
        event section.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/message'
          example:
            message: >-
              The price delta cannot reduce the base price of the section below
              0.
    exists-5:
      description: >-
        The specified event section already has a price modifier with the given
        name.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/message'
          example:
            message: This section already has a <name> modifier.
    bad_sections:
      description: One or more of the specified sections does not belong to this event
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/message'
          example:
            message: >-
              One or more of the specified sections does not belong to this
              event.
    is_global:
      description: The global admission token cannot be modified or deleted.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/message'
          example:
            message: The global admission token cannot be modified or invalidated.
    unauthorised-4:
      description: >-
        The authenticating user is not authorised to redeem tickets for any
        section of this event.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/message'
          example:
            message: The admission token is not valid for this event.
    failed:
      description: >
        None of the tickets identified grants access to an event section that
        the redeemer

        is allowed to admit patrons to. This is either because no ticket could
        be found,

        the tickets grant access to different event sections or the tickets have
        already

        been redeemed or expired.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/message'
          example:
            message: None of the provided ticket serials grants admission to this event
    bad_query:
      description: One or more of the specified query parameters was invalid
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/message'
          example:
            message: 'The following query parameters have invalid values: status, group.'
    exists-6:
      description: An advertising zone with the specified name already exists in the system
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/message'
          example:
            message: 'The following arguments conflict with those of another zone: name.'
    in_use:
      description: One or more advertisements are currently assigned to this zone
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/message'
          example:
            message: >-
              The zone is being used by one or more advertisements and cannot be
              deleted.
    bad_request:
      description: >-
        The specified zones do not exist or have different dimensions or the
        given schedule contains inconsistencies.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/message'
          example:
            message: All selected zones must have the same dimensions.
    unauthorised-5:
      description: >-
        The authenticating user is not authorised to manage ads on behalf of
        this host.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/message'
          example:
            message: This account is not an administrator for the relevant event host.
    missing_event:
      description: No event could be found with the specified ID
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/message'
          example:
            message: There is presently no event with the given ID.
    exists-7:
      description: An advertisement with the specified name already exists in the system
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/message'
          example:
            message: 'The following arguments conflict with those of another host: name.'
    unlisted-2:
      description: >-
        The authenticating user is not authorised to access unlisted ads from
        this host.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/message'
          example:
            message: You are not authorised to access this unlisted advertisement.
    bad_request-2:
      description: >-
        One or more of the specified sections do not exist or has insufficient
        availability to satisty the order.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/message'
          example:
            message: The specified section does not have sufficient capacity remaining
    unauthorised-6:
      description: >-
        The authenticating user is not authorised to manage orders on behalf of
        the ordering customer.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/message'
          example:
            message: >-
              This account is not permitted to manage orders on behalf of the
              ordering customer.
    uncancellable:
      description: >-
        The order has already been settled or timed out and so can't be
        cancelled.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/message'
          example:
            message: A timed out order cannot be cancelled.
    bad_request-3:
      description: >-
        Required payment information was missing or provided details were
        invalid
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/message'
          example:
            message: >-
              The following arguments are required, but have not been supplied:
              cvv, expiryDate
    unauthorised-7:
      description: >-
        The authenticating user is not authorised to make payment on behalf of
        the ordering customer.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/message'
          example:
            message: >-
              This account is not permitted to make payment on behalf of the
              ordering customer.
    invalid_state:
      description: >-
        Payment was attempted on a fulfilled, timed out, refunded or cancelled
        order
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/message'
          example:
            message: You cannot pay for a Fulfilled order.
    bad_request-4:
      description: Required refund information was missing or provided details were invalid
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/message'
          example:
            message: >-
              The following arguments are required, but have not been supplied:
              reason.
    invalid_state-2:
      description: The order was not successfully fulfilled or has already been refunded.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/message'
          example:
            message: You cannot refund a cancelled order.
    bad_request-5:
      description: >-
        One or more of the specified sections do not exist or the sender does
        not own sufficient tickets to complete the transfer.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/message'
          example:
            message: >-
              The sender does not hold sufficient itckets in their wallet to
              complete this transfer.
    unauthorised-8:
      description: >-
        The authenticating user is not permitted to initiate transfers on behalf
        of the sender.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/message'
          example:
            message: >-
              This account is not permitted to initiate transfers on behalf of
              the sender.
    unknown_recipient:
      description: The specified sender or recipient does not exist in the system.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/message'
          example:
            message: The requested account could not be located
    send_to_self:
      description: The sender attempted to transfer tickets to themselves.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/message'
          example:
            message: A sender cannot transfer tickets to themselves.
    uncancellable-2:
      description: The transfer has already been claimed or cancelled.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/message'
          example:
            message: A Cancelled transfer cannot be cancelled.
    unauthorised-9:
      description: The authenticating user is not the recipient of this transfer.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/message'
          example:
            message: Only a transfer's recipient can claim a transfer.
    invalid_state-3:
      description: An attempt was made to claim a cancelled or previously claimed transfer
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/message'
          example:
            message: This transfer can no longer be claimed.
    exists-8:
      description: The provided name is already in use by another region
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/message'
          example:
            error: >-
              The following arguments conflict with those of another region:
              name.
    in_use-2:
      description: The region currently has one or more venues attached.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/message'
          example:
            error: A region cannot be deleted if it has venues attached
    exists-9:
      description: The provided name is already in use by another venue in this region
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/message'
          example:
            error: >-
              The following arguments conflict with those of another venue:
              name.
    in_use-3:
      description: The venue is currently hosting, or has staged, one or more event.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/message'
          example:
            message: A venue cannot be deleted if it is staging an event
    exists-10:
      description: An event category with the specified name already exists in the system
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/message'
          example:
            message: >-
              The following arguments conflict with those of another category:
              name.
    in_use-4:
      description: One or more events are currently listed under this category
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/message'
          example:
            message: You cannot delete in-use event categories.
    no_decision:
      description: The approved parameter was omitted from the query.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/message'
          example:
            message: You must indicate whether or not to approve the submission
  parameters:
    code:
      in: path
      name: code
      schema:
        type: integer
      required: true
      description: 8-character code that uniquely identifies an admission token
    records:
      in: query
      name: records
      schema:
        type: integer
        default: 25
      required: false
      description: The number of records per page that should be returned
    page:
      in: query
      name: page
      schema:
        type: integer
        default: 1
      required: false
      description: The number of the results page to return
    account:
      in: query
      name: number
      schema:
        type: string
      required: false
      description: If set, only returns the account with the specified number
    email:
      in: query
      name: email
      schema:
        type: string
      required: false
      description: If set, only returns the account with the specified email address
    username:
      in: query
      name: username
      schema:
        type: string
      required: false
      description: If set, only returns the account with the specified username
    number:
      in: path
      name: number
      schema:
        type: string
      required: true
      description: Alphanumeric identifier of the user account
    verification:
      in: path
      name: verification
      schema:
        type: string
      required: true
      description: Unique identifier of the account verification request.
    reset:
      in: path
      name: reset
      schema:
        type: number
      required: true
      description: Unique identifier of the reset request.
    status:
      in: query
      name: status
      schema:
        type: string
        enum:
          - Placed
          - Cancelled
          - Timed Out
          - Fulfilled
          - Voided
          - Returned
      required: false
      description: If set, only returns orders with the specified status
    active:
      in: query
      name: active
      schema:
        type: boolean
      required: false
      description: >-
        Only returns future events if set to true, or past events if set to
        false
    sort:
      in: query
      name: sort
      schema:
        type: string
        enum:
          - alphabetical
          - published
          - popularity
          - start
      required: false
      description: If set, determines how the returned events list is sorted
    order:
      in: query
      name: order
      schema:
        type: string
        enum:
          - asc
          - desc
        default: asc
      required: false
      description: >-
        If set along with the 'sort' parameter, determines whether the results
        will be sorted in ascending or descending order.
    event:
      in: query
      name: event
      schema:
        type: string
        pattern: ^\d{14}$
      required: false
      description: Only return tickets that grant access to the specified event
    section:
      in: query
      name: section
      schema:
        type: string
        pattern: ^\d{14}$
      required: false
      description: Only return tickets that grant access to the specified section
    serial:
      in: query
      name: serial
      schema:
        type: string
      required: false
      description: Only return tickets with serial numbers matching the pattern
    status-2:
      in: query
      name: status
      schema:
        type: array
        items:
          type: string
          enum:
            - Issued
            - Pending
            - Held
            - Redeemed
            - Expired
      required: false
      description: Only return tickets that are in one of the specified statuses
    role:
      in: query
      name: role
      schema:
        type: string
        enum:
          - sender
          - recipient
      required: true
      description: >-
        Determines whether to return transfers for which the account holder is
        the sender or the recipient
    status-3:
      in: query
      name: status
      schema:
        type: string
        enum:
          - Pending
          - Claimed
          - Cancelled
      required: false
      description: If set, only returns transfers currently in the specified status
    name:
      in: query
      name: name
      schema:
        type: string
      required: false
      description: >-
        If set, only returns hosts whose name matches the specified regular
        expression
    country:
      in: query
      name: country
      schema:
        type: string
      required: false
      description: If set, only returns hosts based in the specified country
    sort-2:
      in: query
      name: sort
      schema:
        type: string
        enum:
          - alphabetical
      required: false
      description: If set, determines how the returned hosts list is sorted
    id:
      in: path
      name: host
      schema:
        type: integer
      required: true
      description: Unique identifier of the requested host
    administrator:
      in: query
      name: account
      schema:
        type: string
      required: true
      description: >-
        The identifier of the account from which administrative access should be
        revoked
    region:
      in: query
      name: region
      schema:
        type: string
        pattern: ^\d{14}$
      required: false
      description: If set, only returns events being hosted in the specified region
    title:
      in: query
      name: title
      schema:
        type: string
      required: false
      description: >-
        If set, only returns events whose title matches the specified regular
        expression
    status-4:
      in: query
      name: status
      schema:
        type: string
        enum:
          - Draft
          - Under Review
          - Scheduled
          - Listed
          - Cancelled
          - Staged
      required: false
      description: If set, only returns events with the specified status
    public:
      in: query
      name: public
      schema:
        type: boolean
      required: false
      description: >-
        Only returns public events if set to true, or private events if set to
        false.
    host:
      in: query
      name: host
      schema:
        type: string
        pattern: ^\d{14}$
      required: false
      description: >-
        If set, only returns advertising campaigns being run by the specified
        host
    event-2:
      in: query
      name: event
      schema:
        type: string
        pattern: ^\d{14}$
      required: false
      description: If set, only returns campaigns advertising the specified event
    status-5:
      in: query
      name: status
      schema:
        type: string
        enum:
          - Draft
          - Under Review
          - Listed
          - Cancelled
      required: false
      description: If set, only returns ad campaigns with the specified status
    active-2:
      in: query
      name: active
      schema:
        type: boolean
      required: false
      description: >-
        Only returns currently running ad campaigns if set to true, or past and
        future campaigns if set to false
    host-2:
      in: query
      name: host
      schema:
        type: string
        pattern: ^\d{14}$
      required: false
      description: If set, only returns events being staged by the specified host
    category:
      in: query
      name: category
      schema:
        type: string
      required: false
      description: If set, only returns events belonging to the specified category
    subcategory:
      in: query
      name: subcategory
      schema:
        type: string
      required: false
      description: If set, only returns events belonging to the specified subcategory
    after:
      in: query
      name: after
      schema:
        type: string
        format: date-time
      required: false
      description: If set, only returns events that start after the specified date.
    before:
      in: query
      name: before
      schema:
        type: string
        format: date-time
      required: false
      description: If set, only returns events that start before the specified date.
    section-2:
      in: query
      name: section
      schema:
        type: string
      required: false
      description: If set, only returns the event containing the specified section
    id-2:
      in: path
      name: event
      schema:
        type: integer
      required: true
      description: Unique identifier of the requested event
    id-3:
      in: path
      name: section
      schema:
        type: integer
      required: true
      description: Unique identifier of the requested event section
    id-4:
      in: path
      name: modifier
      schema:
        type: integer
      required: true
      description: Unique identifier of the requested price modifier
    global:
      in: query
      name: global
      schema:
        type: boolean
      required: false
      description: Only returns the global token if true, all additional tokens if false.
    id-5:
      in: path
      name: token
      schema:
        type: integer
      required: true
      description: Unique identifier of the requested admission token
    modified_since:
      in: query
      name: modified_since
      schema:
        type: string
        format: date-time
      required: false
      description: >-
        Only return tickets that have had a status change after the provided
        date
    redeemer:
      in: query
      name: redeemer
      schema:
        type: string
      required: false
      description: >-
        Only return admissions granted on tickets redeemed by the specified
        name.
    device:
      in: query
      name: device
      schema:
        type: string
      required: false
      description: >-
        Only return admissions granted on tickets redeemed by the specified
        device.
    ticket:
      in: query
      name: ticket
      schema:
        type: string
        pattern: ^\w{6}-\w{4}\d{8}$
      required: false
      description: Only return details of the admission granted by the specified ticket
    patron:
      in: query
      name: patron
      schema:
        type: string
        pattern: ^[A-Z]{2}-[A-Z0-9]{8}$
      required: false
      description: Only return admissions of the specified patron to the event
    section-3:
      in: query
      name: section
      schema:
        type: string
        pattern: ^\d{14}$
      required: false
      description: Only return admissions to the specified section of this event
    from:
      in: query
      name: from
      schema:
        type: string
        format: date-time
      required: false
      description: >-
        Only summarise event sales transacted on or after the specified date and
        time
    to:
      in: query
      name: to
      schema:
        type: string
        format: date-time
      required: false
      description: >-
        Only summarise event sales transacted on or before the specified date
        and time
    section-4:
      in: query
      name: section
      schema:
        type: string
        pattern: ^\d{14}$
      required: false
      description: Only summarise sales for the identified event section
    modifier:
      in: query
      name: modifier
      schema:
        type: string
        pattern: ^\d{14}$
      required: false
      description: Only summarise sales for the identified event section modifier
    id-6:
      in: path
      name: zone
      schema:
        type: integer
      required: true
      description: Unique identifier of the requested advertising zone
    id-7:
      in: path
      name: advertisement
      schema:
        type: integer
      required: true
      description: Unique identifier of the requested advertisement
    number-2:
      in: query
      name: number
      schema:
        type: string
      required: false
      description: >-
        If set, only returns orders whose number matches the specified regular
        expression
    customer:
      in: query
      name: customer
      schema:
        type: string
        pattern: ^[A-Z]{2}-[A-Z0-9]{8}$
      required: false
      description: >-
        If set, only returns orders placed by the customer identified by the
        specified account number
    sort-3:
      in: query
      name: sort
      schema:
        type: string
        enum:
          - date
      required: false
      description: If set, determines how the returned orders are sorted
    id-8:
      in: path
      name: order
      schema:
        type: string
        pattern: ^\d{14}$
      required: false
      description: Unique identifier of the order
    id-9:
      in: path
      name: transfer
      schema:
        type: string
        pattern: ^\d{14}$
      required: false
      description: Unique identifier of the transfer
    active-3:
      in: query
      name: active
      schema:
        type: boolean
      required: false
      description: >-
        Returns regions with one or more upcoming events, if true, or regions
        without upcoming events if false.
    id-10:
      in: path
      name: region
      schema:
        type: integer
      required: true
      description: Unique identifier of the requested region
    region-2:
      in: query
      name: region
      schema:
        type: string
        pattern: ^\d{14}$
      required: false
      description: If set, only returns venues located in the specified region
    name-2:
      in: query
      name: name
      schema:
        type: string
      required: false
      description: >-
        If set, only returns venues whose name matches the specified regular
        expression
    id-11:
      in: path
      name: venue
      schema:
        type: integer
      required: true
      description: Unique identifier of the requested event venue
    id-12:
      in: path
      name: category
      schema:
        type: integer
      required: true
      description: Unique identifier of the requested event category
    type:
      in: query
      name: type
      schema:
        type: string
      required: false
      description: If set, only returns submissions of the specified content type
    id-13:
      in: path
      name: submission
      schema:
        type: string
      required: true
      description: Unique identifier of the requested content submission resource
    approved:
      in: query
      name: approved
      schema:
        type: boolean
      required: true
      description: >
        If set to true, the submitted content will be published, making it
        visible

        to the public. Otherwise it will be returned to draft.
    type-2:
      in: query
      name: type
      schema:
        type: string
        enum:
          - Sale
          - Refund
          - Payout
          - Charge
          - Credit
      required: false
      description: Only return transactions of the specified type
    category-2:
      in: query
      name: category
      schema:
        type: string
        enum:
          - Ticketing
          - Advertisement
          - Management
      required: false
      description: Only return transactions of the specified category
    status-6:
      in: query
      name: status
      schema:
        type: string
        enum:
          - Submitted
          - Pending
          - Approved
          - Rejected
      required: false
      description: Only return transactions with the specified status
    from-2:
      in: query
      name: from
      schema:
        type: string
        format: date-time
      required: false
      description: >-
        Only return transactions transacted on or after the specified date and
        time
    to-2:
      in: query
      name: to
      schema:
        type: string
        format: date-time
      required: false
      description: >-
        Only return transactions transacted on or before the specified date and
        time
    event-3:
      in: query
      name: event
      schema:
        type: string
        pattern: ^\d{14}$
      required: false
      description: Only return transactions related to the identified event
    section-5:
      in: query
      name: section
      schema:
        type: string
        pattern: ^\d{14}$
      required: false
      description: Only return transactions related to the identified event section
    modifier-2:
      in: query
      name: modifier
      schema:
        type: string
        pattern: ^\d{14}$
      required: false
      description: >-
        Only return transactions related to the identified event section
        modifier
    group:
      in: query
      name: group
      schema:
        type: string
        enum:
          - event
          - section
          - modifier
      required: false
      description: |
        Return grouped transactions totalling the amount and quantity fields
        by event, section or modifier
security:
  - SessionKey:
      - public
      - customer
      - host
      - support
      - administrator
x-tagGroups:
  - name: Authentication
    tags:
      - Session Authentication
      - Token Authentication
      - API Integrations
  - name: User Accounts
    tags:
      - Account Management
      - Account Verification
      - Password Reset
      - Account Activation
      - Account Activity
  - name: Events
    tags:
      - Managing Host Accounts
      - Working with Events
      - Event Admissions
      - Event Reporting
  - name: Advertising
    tags:
      - Ad Zone Management
      - Advertising an Event
  - name: Purchasing Tickets
    tags:
      - Placing an Order
      - Order Settlement
  - name: Managing Tickets
    tags:
      - Ticket Transfers
  - name: System Administration
    tags:
      - Region Management
      - Venue Management
      - Category Management
      - Reviewing Content
      - Transaction Reports
      - Default Values
paths:
  /sessions:
    post:
      tags:
        - Session Authentication
      summary: Start a new API session
      security:
        - SessionKey:
            - public
            - customer
            - host
            - support
            - administrator
      description: >
        When provided with a valid username/email address and password, starts a
        new

        API session, returning the associated key.
      operationId: start_session
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/credentials'
            example:
              identification: mothers.milk
              password: Dxath2$up3$
      responses:
        '201':
          description: Indicates that the session was started successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/response'
              example:
                self: /sessions/7c69fb3eeb3c910f049d9d72bec05e0d
                id: 16881177390522
                open: true
                started: '2023-06-30 10:35:39'
                key: 7c69fb3eeb3c910f049d9d72bec05e0d
                account:
                  self: /accounts/MO-6A39EE8D
                  number: MO-6A39EE8D
                  username: mothers.milk
                  email: marvin.milk@usmc.gov
                  role: customer
                  verified: false
                  activated: true
                  firstName: Marvin
                  lastName: Milk
                  title: Mr.
                  dateOfBirth: 14-09-1974
                  phone: +1 (268) 555 0123
                  country: Antigua and Barbuda
                  firstAddressLine: Jennings New Extension
                  secondAddressLine: ''
                  city: Jennings
                  state: Saint Mary's
        '404':
          $ref: '#/components/responses/not_found'
  /sessions/active:
    get:
      tags:
        - Session Authentication
      summary: Retrieve an active API session
      security:
        - SessionKey:
            - customer
            - host
            - support
            - administrator
      description: >
        Returns details of the user's active API session. The session returned
        is

        based on the key used to authenticate the request.
      operationId: continue_session
      responses:
        '200':
          description: |
            The user has an active session, the details of which are in the
            response body
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/response'
              example:
                self: /sessions/7c69fb3eeb3c910f049d9d72bec05e0d
                id: 16881177390522
                open: true
                started: '2023-06-30 10:35:39'
                key: 7c69fb3eeb3c910f049d9d72bec05e0d
                account:
                  self: /accounts/MO-6A39EE8D
                  number: MO-6A39EE8D
                  username: mothers.milk
                  email: marvin.milk@usmc.gov
                  role: customer
                  verified: false
                  activated: true
                  firstName: Marvin
                  lastName: Milk
                  title: Mr.
                  dateOfBirth: 14-09-1974
                  phone: +1 (268) 555 0123
                  country: Antigua and Barbuda
                  firstAddressLine: Jennings New Extension
                  secondAddressLine: ''
                  city: Jennings
                  state: Saint Mary's
        '403':
          $ref: '#/components/responses/no_session'
    delete:
      tags:
        - Session Authentication
      summary: End an active API session
      security:
        - SessionKey:
            - customer
            - host
            - support
            - administrator
      description: >
        Ends the user's active API session based on the key used to authenticate
        the request.
      operationId: end_session
      responses:
        '200':
          description: The user's active session was ended successfully.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/message'
              example:
                message: The active session was ended successfully.
        '403':
          $ref: '#/components/responses/no_session'
  /tokens/{code}:
    parameters:
      - $ref: '#/components/parameters/code'
    get:
      tags:
        - Token Authentication
      summary: Retrieve token key
      security:
        - SessionKey:
            - public
            - customer
            - host
            - support
            - administrator
      description: >
        Returns authentication key and netadata for an event admissions

        token. Authenticating requests with the returned key will grant access
        to

        endpoints needed for ticket redemption.
      operationId: retrieve_token_auth
      responses:
        '200':
          description: |
            Returns authentication and metadata for an admissions token
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/token'
              example:
                key: 11a6f64c842142235g8668c5ff77024c
                event: /events/16993717817996
                sections:
                  - /events/16993717817996/sections/16993964783416
                  - /events/16993717817996/sections/16993964783417
        '404':
          $ref: '#/components/responses/no_token'
  /integrations:
    post:
      tags:
        - API Integrations
      summary: Create new integration token
      security:
        - SessionKey:
            - administrator
      description: >
        Create an API integration token that can be used to authenticate
        requests

        instead of a session key. Integrations should be used where user
        interaction

        is not desirable/possible or for server to server applications.
      operationId: create_integration
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/request'
            example:
              name: TickeTing Live Events Calendar
              access: public
      responses:
        '201':
          description: Indicates that the API integration token was successfully created
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/response-2'
              example:
                name: TickeTing Live Events Calendar
                access: public
                key: dcbb49fdd05a58ea59cb6c024b76fb68
        '400':
          $ref: '#/components/responses/400'
        '409':
          $ref: '#/components/responses/integration_exists'
  /accounts:
    get:
      tags:
        - Account Management
      parameters:
        - $ref: '#/components/parameters/records'
        - $ref: '#/components/parameters/page'
        - $ref: '#/components/parameters/account'
        - $ref: '#/components/parameters/email'
        - $ref: '#/components/parameters/username'
      summary: List user accounts
      security:
        - SessionKey:
            - administrator
      description: |
        Retrieve a list of TickeTing user accounts.
      operationId: list_accounts
      responses:
        '200':
          description: The list of user accounts was successfully retrieved.
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/results'
                  - $ref: '#/components/schemas/list'
              example:
                page: 1
                records: 25
                entries:
                  - self: /accounts/MO-6A39EE8D
                    number: MO-6A39EE8D
                    username: mothers.milk
                    email: marvin.milk@usmc.gov
                    role: customer
                    verified: false
                    activated: true
                    firstName: Marvin
                    lastName: Milk
                    title: Mr
                    dateOfBirth: '1974-09-14'
                    phone: +1 (268) 555 0123
                    country: Antigua and Barbuda
                    firstAddressLine: Jennings New Extension
                    secondAddressLine: ''
                    city: Jennings
                    state: Saint Mary's
                    preferences: /accounts/MO-6A39EE8D/preferences
        '404':
          $ref: '#/components/responses/not_found-2'
    post:
      tags:
        - Account Management
      summary: Create a new account
      security:
        - SessionKey:
            - public
            - customer
            - host
            - support
            - administrator
      description: |
        Create a new TickeTing user account. Most user data is optional for
        account creation, so there is flexibility in the stage of the
        onboarding process at which data is captured.
      operationId: create_account
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/request-2'
            example:
              username: mothers.milk
              password: WuT4NGcl4n
              email: marvin.milk@usmc.gov
              firstName: Marvin
              lastName: Milk
              title: Mr
              dateOfBirth: '1974-09-14'
              phone: +1 (268) 555 0123
              country: Antigua and Barbuda
              firstAddressLine: Jennings New Extension
              secondAddressLine: ''
              city: Jennings
              state: Saint Mary's
      responses:
        '201':
          description: The new account was successfully created.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/response-3'
              example:
                self: /accounts/MO-6A39EE8D
                number: MO-6A39EE8D
                username: mothers.milk
                email: marvin.milk@usmc.gov
                role: customer
                verified: false
                activated: true
                firstName: Marvin
                lastName: Milk
                title: Mr
                dateOfBirth: '1974-09-14'
                phone: +1 (268) 555 0123
                country: Antigua and Barbuda
                firstAddressLine: Jennings New Extension
                secondAddressLine: ''
                city: Jennings
                state: Saint Mary's
                preferences: /accounts/MO-6A39EE8D/preferences
        '400':
          $ref: '#/components/responses/400'
        '409':
          $ref: '#/components/responses/exists'
  /accounts/{number}:
    parameters:
      - $ref: '#/components/parameters/number'
    get:
      tags:
        - Account Management
      summary: Retrieve account details
      security:
        - SessionKey:
            - customer
            - host
            - support
            - administrator
      description: |
        Returns details of the specified user account.
      operationId: retrieve_account
      responses:
        '200':
          description: Details of the specified user account were returned successfully.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/response-3'
              example:
                self: /accounts/MO-6A39EE8D
                number: MO-6A39EE8D
                username: mothers.milk
                email: marvin.milk@usmc.gov
                role: customer
                verified: false
                activated: true
                firstName: Marvin
                lastName: Milk
                title: Mr
                dateOfBirth: '1974-09-14'
                phone: +1 (268) 555 0123
                country: Antigua and Barbuda
                firstAddressLine: Jennings New Extension
                secondAddressLine: ''
                city: Jennings
                state: Saint Mary's
                preferences: /accounts/MO-6A39EE8D/preferences
        '403':
          $ref: '#/components/responses/unauthorised'
    put:
      tags:
        - Account Management
      summary: Modify account details
      security:
        - SessionKey:
            - customer
            - host
            - support
            - administrator
      description: |
        Update the details of the specified user account
      operationId: update_account
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/update'
            example:
              firstName: Marvin
              lastName: Milk
              title: Mr
              dateOfBirth: '1974-09-14'
              phone: +1 (268) 555 0123
              country: Antigua and Barbuda
              firstAddressLine: New Safe House
              secondAddressLine: ''
              city: Undisclosed
              state: Undisclosed
      responses:
        '200':
          description: |
            The user account details were successfully updated.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/response-3'
              example:
                self: /accounts/MO-6A39EE8D
                number: MO-6A39EE8D
                username: mothers.milk
                email: marvin.milk@usmc.gov
                role: customer
                verified: false
                activated: true
                firstName: Marvin
                lastName: Milk
                title: Mr
                dateOfBirth: '1974-09-14'
                phone: +1 (268) 555 0123
                country: Antigua and Barbuda
                firstAddressLine: Jennings New Extension
                secondAddressLine: ''
                city: Jennings
                state: Saint Mary's
                preferences: /accounts/MO-6A39EE8D/preferences
        '400':
          $ref: '#/components/responses/400'
        '403':
          $ref: '#/components/responses/unauthorised'
    delete:
      tags:
        - Account Management
      summary: Remove an account
      security:
        - SessionKey:
            - administrator
      description: >
        Completely remove an account from the system. An account can only be
        deleted

        if it does not currently hold tickets to upcoming events.
      operationId: delete_account
      responses:
        '200':
          description: |
            The user account was successfully removed from the system.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/message'
              example:
                message: /account/MO-6A39EE8D, has been deleted.
        '409':
          $ref: '#/components/responses/indelible'
  /accounts/{number}/preferences:
    parameters:
      - $ref: '#/components/parameters/number'
    get:
      tags:
        - Account Management
      summary: Retrieve account preferences
      security:
        - SessionKey:
            - customer
            - host
            - support
            - administrator
      description: |
        Returns the user preferences for the account.
      operationId: retrieve_account_preferences
      responses:
        '200':
          description: List of the user's account preferences.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/preferences'
              example:
                region: /regions/19290238432215
        '403':
          $ref: '#/components/responses/unauthorised'
    put:
      tags:
        - Account Management
      summary: Update account preferences
      security:
        - SessionKey:
            - customer
            - host
            - support
            - administrator
      description: |
        Make changes to the account's user preferences
      operationId: update_account_preferences
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/preferences'
            example:
              region: /regions/19290238432215
      responses:
        '200':
          description: |
            The user accpunt preferences were successfully updated.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/preferences'
              example:
                region: /regions/19290238432215
        '400':
          $ref: '#/components/responses/400'
        '403':
          $ref: '#/components/responses/unauthorised'
  /accounts/{number}/hosts:
    parameters:
      - $ref: '#/components/parameters/number'
    get:
      tags:
        - Account Management
      parameters:
        - $ref: '#/components/parameters/records'
        - $ref: '#/components/parameters/page'
      summary: List managed hosts
      security:
        - SessionKey:
            - customer
            - host
            - support
            - administrator
      description: >
        Retrieve a list of registered event hosts for which this user has
        administrative permissions.
      operationId: list_account_hosts
      responses:
        '200':
          description: >-
            The list of event hosts this account has administrative permissions
            for was successfully retrieved.
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/results'
                  - $ref: '#/components/schemas/list-2'
              example:
                page: 1
                records: 5
                entries:
                  - self: /hosts/16951985851389
                    name: The Boys Entertainment
                    contact: Billy Butcher
                    email: billy.butcher@fbsa.gov
                    description: Premier events for supes of all ages
                    phone: +1 (268) 555 8075
                    website: https://theboys.net
                    country: Antigua and Barbuda
                    firstAddressLine: Wireless Road
                    secondAddressLine: Clare Hall
                    city: St. John's
                    state: Saint John
                    businessNo: A5585291
                    administrators: /hosts/16951985851389/administrators
                    events: /hosts/16951985851389/events
        '404':
          $ref: '#/components/responses/not_found-2'
  /lookups:
    post:
      tags:
        - Account Management
      summary: Lookup an account
      security:
        - SessionKey:
            - public
            - customer
            - host
            - support
            - administrator
      description: >
        Test the existenc of an account using its username or email address. A
        user role

        can optionally be provided to test for the existence of accounts of a
        certain type.
      operationId: lookup_account
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/lookup'
            example:
              identification: marvin.milk@usmc.gov
              role: host
      responses:
        '200':
          description: An account with the specified username or email address was found.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/result'
              example:
                identification: mothers.milk
                role: host
                found: false
        '400':
          $ref: '#/components/responses/400'
  /verifications:
    post:
      tags:
        - Account Verification
      summary: Request verification code
      security:
        - SessionKey:
            - customer
            - host
            - support
            - administrator
      description: >

        Request that an account verification code be sent to the provided email
        address, if it belongs to a registered user.
      operationId: request_verification_code
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/verification_request'
            example:
              email: marvin.milk@usmc.gov
      responses:
        '201':
          description: >
            An account verification code was generated and sent to the provided
            email address, if it belongs to a registered user.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/verification_response'
              example:
                self: /verifications/16485226592997
                email: marvin.milk@usmc.gov
                status: Pending
        '400':
          $ref: '#/components/responses/missing_verification_email'
        '404':
          $ref: '#/components/responses/not_found-3'
  /verifications/{verification}:
    parameters:
      - $ref: '#/components/parameters/verification'
    patch:
      tags:
        - Account Verification
      summary: Verify account
      security:
        - SessionKey:
            - customer
            - host
            - support
            - administrator
      description: >
        Verify the account if the verification code matches that sent to the
        account's email address.
      operationId: verify_account
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/account_verification'
            example:
              code: 914828
      responses:
        '200':
          description: |
            The account was successfully verified.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/message'
              example:
                message: The account has been successfully verified.
        '400':
          $ref: '#/components/responses/invalid_verification_code'
        '409':
          $ref: '#/components/responses/cannot_verify'
  /resets:
    post:
      tags:
        - Password Reset
      summary: Request password reset
      security:
        - SessionKey:
            - public
      description: >
        Request that a password reset code be sent to the provided email
        address, if it belongs to a registered user.
      operationId: request_reset
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/reset_request'
            example:
              email: marvin.milk@usmc.gov
      responses:
        '201':
          description: >
            A password reset code was generated and sent to the provided email
            address, if it belongs to a registered user.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/reset_response'
              example:
                self: /resets/16947291161016
                email: marvin.milk@usmc.gov
                status: Pending
        '400':
          $ref: '#/components/responses/missing_reset_email'
        '404':
          $ref: '#/components/responses/not_found-3'
  /resets/{reset}:
    parameters:
      - $ref: '#/components/parameters/reset'
    patch:
      tags:
        - Password Reset
      summary: Reset password
      security:
        - SessionKey:
            - public
      description: >
        Change the password to the value provided if the reset code matches that
        sent to the account's email address.
      operationId: reset_password
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/password_reset'
            example:
              password: Th380Y$4L1F3
              code: 842164
      responses:
        '200':
          description: |
            The account password was successfully reset
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/message'
              example:
                message: The account password has been reset.
        '400':
          $ref: '#/components/responses/invalid_reset_code'
        '409':
          $ref: '#/components/responses/cannot_reset'
  /accounts/{number}/toggles:
    parameters:
      - $ref: '#/components/parameters/number'
    post:
      tags:
        - Account Activation
      summary: Toggle account activation
      security:
        - SessionKey:
            - administrator
      description: |
        Deactivates the specified account if it is active, and activates
        it otherwise.
      operationId: toggle_account
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/toggle'
            example:
              reason: Account suspected of fraud.
      responses:
        '201':
          description: The account's activation status was successfully toggled.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/message'
              example:
                message: The account was deactivated successfully.
        '400':
          $ref: '#/components/responses/bad_toggle'
        '403':
          $ref: '#/components/responses/unauthorised'
  /accounts/{number}/deletions:
    parameters:
      - $ref: '#/components/parameters/number'
    post:
      tags:
        - Account Activation
      summary: Request account deletion
      security:
        - SessionKey:
            - customer
            - host
            - support
            - administrator
      description: >
        Notifies system administrators that the user would like to delete their
        account.

        When a deletion request is submitted, the account is immediately
        deactivated,

        and can no longer authenticate requests, pending review.
      operationId: request_deletion
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/deletion'
            example:
              reason: I have moved and no longer wish to use this app.
      responses:
        '200':
          description: Account deletion was successfully requested.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/message'
              example:
                message: The account will be deleted pending review.
        '403':
          $ref: '#/components/responses/unauthorised'
  /accounts/{number}/sessions:
    parameters:
      - $ref: '#/components/parameters/number'
    get:
      tags:
        - Account Activity
      parameters:
        - $ref: '#/components/parameters/records'
        - $ref: '#/components/parameters/page'
      summary: List API sessions
      security:
        - SessionKey:
            - customer
            - host
            - support
            - administrator
      description: |
        Retrieve a list of API sessions opened by this user.
      operationId: list_api_session
      responses:
        '200':
          description: The list of matching account sessions was successfully retrieved.
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/results'
                  - $ref: '#/components/schemas/list-3'
              example:
                page: 1
                records: 5
                entries:
                  - open: true
                    ip: 90.220.241.159
                    agent: >-
                      Mozilla/5.0 (platform; rv:geckoversion) Gecko/geckotrail
                      Firefox/firefoxversion
                    started: '2023-06-30 10:35:39'
                    ended: ''
                  - open: false
                    ip: 90.220.241.159
                    agent: >-
                      Mozilla/5.0 (platform; rv:geckoversion) Gecko/geckotrail
                      Firefox/firefoxversion
                    started: '2023-01-04 11:23:00'
                    ended: '2023-03-30 09:22:01'
        '404':
          $ref: '#/components/responses/not_found-2'
  /accounts/{number}/orders:
    parameters:
      - $ref: '#/components/parameters/number'
    get:
      tags:
        - Account Activity
      parameters:
        - $ref: '#/components/parameters/records'
        - $ref: '#/components/parameters/page'
        - $ref: '#/components/parameters/status'
      summary: View order history
      security:
        - SessionKey:
            - customer
            - host
            - support
            - administrator
      description: |
        Retrieve the order history of the specified account.
      operationId: view_order_history
      responses:
        '200':
          description: The list of matching orders was successfully retrieved.
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/results'
                  - $ref: '#/components/schemas/history'
              example:
                page: 1
                records: 10
                entries:
                  - self: /orders/E8D946240203
                    number: E8D946240203
                    status: Placed
                    placed: '2024-02-03T23:22:31+00:00'
                    subtotal: 140
                    fees: 3.96
                    total: 143.96
                    items:
                      - name: 'Dawn of the Seven Premier: General Admission'
                        number: 1c568663aca938b066524a3b3464807d
                        description: >-
                          General Admission to the premier screening of the
                          movie of the year.
                        quantity: 2
                        price: 20
                      - name: 'Dawn of the Seven Premier: Backstage'
                        number: 542efc724c884510b7a40a62aea5429a
                        description: Includes meet and greet with the film's stars.
                        quantity: 2
                        price: 50
                    payments: /orders/E8D946240203/payments
        '404':
          $ref: '#/components/responses/not_found-2'
  /accounts/{number}/events:
    parameters:
      - $ref: '#/components/parameters/number'
    get:
      tags:
        - Account Activity
      parameters:
        - $ref: '#/components/parameters/records'
        - $ref: '#/components/parameters/page'
        - $ref: '#/components/parameters/active'
        - $ref: '#/components/parameters/sort'
        - $ref: '#/components/parameters/order'
      summary: Retrieve event itinerary
      security:
        - SessionKey:
            - customer
            - host
            - support
            - administrator
      description: >
        Retrieve a list of events, past and future, that the account has tickets
        for.
      operationId: view_event_itinerary
      responses:
        '200':
          description: The event itinerary was successfully retrieved.
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/results'
                  - $ref: '#/components/schemas/list-4'
              example:
                page: 1
                records: 25
                entries:
                  - self: /events/16993717817996
                    published: 2024-05-03T17:30
                    title: Dawn of the Seven Premier
                    description: |
                      World Premier of the long anticipated movie event of the
                      year: Dawn of the Seven
                    status: Listed
                    type: Standard
                    public: true
                    category:
                      self: /categories/16878141745207
                      name: Cinema
                      subcategories:
                        - Premier
                        - Screening
                    subcategory: Premier
                    start: 2024-06-07T20:00
                    end: 2024-06-07T23:00
                    venue:
                      self: /venues/16878146473429
                      name: Vought Tower
                      region: /regions/19290238432215
                      longitude: -73.99214
                      latitude: 40.75518
                      address: 7th Ave, Manhattan, New York
                      map: >-
                        https://maps.googleapis.com/maps/api/staticmap?center=40.75518,-73.99214&zoom=15&size=600x300&maptype=roadmap&markers=color:red%7C40.75518,-73.99214&key=AIzaSyCyLy8bOLUTLbQLVQFwf1eVO2UIVO8_4kQ&signature=IowClV__Bha7DFVe7TIG-osgyDE=
                    disclaimer: ''
                    tags:
                      - homelander
                      - queen maeve
                      - the deep
                      - A-Train
                    banner: http://localhost/media/16993717817996-banner.jpeg
                    thumbnail: http://localhost/media/16993717817996-thumbnail.jpeg
                    popularity: 40
                    sections:
                      - self: /events/16993717817996/sections/16993964783416
                        name: VIP Admission
                        description: Includes meet and greet with the film's stars.
                        active: true
                        basePrice: 50
                        salesStart: 2024-01-01T00:00
                        salesEnd: 2024-06-01T00:00
                        capacity: 100
                        sold: 23
                        remaining: 74
                        reserved: 3
        '400':
          $ref: '#/components/responses/criteria'
        '404':
          $ref: '#/components/responses/not_found-2'
  /accounts/{number}/tickets:
    parameters:
      - $ref: '#/components/parameters/number'
    get:
      tags:
        - Account Activity
      parameters:
        - $ref: '#/components/parameters/records'
        - $ref: '#/components/parameters/page'
        - $ref: '#/components/parameters/event'
        - $ref: '#/components/parameters/section'
        - $ref: '#/components/parameters/serial'
        - $ref: '#/components/parameters/status-2'
      summary: Retrieve ticket wallet
      security:
        - SessionKey:
            - customer
            - host
            - support
            - administrator
      description: |
        Retrieve a list of tickets belonging to the specified account.
      operationId: list_ticket_wallet
      responses:
        '200':
          description: The list of matching tickets was successfully retrieved.
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/results'
                  - $ref: '#/components/schemas/wallet'
              example:
                page: 1
                records: 15
                entries:
                  - serial: DAWIER-BACK75580348
                    status: Issued
                    issued: '2024-02-21T14:59:18+00:00'
                    redeemed: N/A
                    section:
                      self: /events/16993717817996/sections/16993964783416
                      name: Backstage
                      description: Includes meet and greet with the film's stars.
                  - serial: DAWIER-VIPV75580348
                    status: Redeemed
                    issued: '2024-02-21T14:59:18+00:00'
                    redeemed: '2024-06-07T19:50:31+00:00'
                    section:
                      self: /events/16993717817996/sections/16993964783416
                      name: Backstage
                      description: Includes meet and greet with the film's stars.
        '400':
          $ref: '#/components/responses/criteria-2'
        '404':
          $ref: '#/components/responses/not_found-2'
  /accounts/{number}/transfers:
    parameters:
      - $ref: '#/components/parameters/number'
    get:
      tags:
        - Account Activity
      parameters:
        - $ref: '#/components/parameters/records'
        - $ref: '#/components/parameters/page'
        - $ref: '#/components/parameters/role'
        - $ref: '#/components/parameters/status-3'
      summary: View transfer history
      security:
        - SessionKey:
            - customer
            - host
            - support
            - administrator
      description: |
        Retrieve the transfer history of the specified account.
      operationId: view_transfer_history
      responses:
        '200':
          description: The list of matching transfers was successfully retrieved.
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/results'
                  - $ref: '#/components/schemas/list-5'
              example:
                page: 2
                records: 8
                entries:
                  - self: /transfers/17096551195817
                    status: Pending
                    items:
                      - name: 'Dawn of the Seven Premier: Backstage'
                        description: Includes meet and greet with the film's stars.
                        quantity: 2
                    sender:
                      self: /accounts/MO-6A39EE8D
                      number: MO-6A39EE8D
                      username: mothers.milk
                      email: marvin.milk@usmc.gov
                      firstName: Marvin
                      lastName: Milk
                    recipient:
                      self: /accounts/BI-5A939D5D
                      number: BI-5A939D5D
                      username: the_butcher
                      email: elcapitaine@yahoo.com
                      firstName: Billy
                      lastName: Butcher
        '400':
          $ref: '#/components/responses/no_role'
        '404':
          $ref: '#/components/responses/not_found-2'
  /hosts:
    get:
      tags:
        - Managing Host Accounts
      parameters:
        - $ref: '#/components/parameters/records'
        - $ref: '#/components/parameters/page'
        - $ref: '#/components/parameters/name'
        - $ref: '#/components/parameters/country'
        - $ref: '#/components/parameters/sort-2'
        - $ref: '#/components/parameters/order'
      summary: List event hosts
      security:
        - SessionKey:
            - public
            - customer
            - host
            - support
            - administrator
      description: |
        Retrieve a list of registered event hosts that match the given criteria.
      operationId: list_hosts
      responses:
        '200':
          description: The list of matching event hosts was successfully retrieved.
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/results'
                  - $ref: '#/components/schemas/list-2'
              example:
                page: 1
                records: 5
                entries:
                  - self: /hosts/16951985851389
                    name: The Boys Entertainment
                    contact: Billy Butcher
                    email: billy.butcher@fbsa.gov
                    description: Premier events for supes of all ages
                    phone: +1 (268) 555 8075
                    website: https://theboys.net
                    country: Antigua and Barbuda
                    firstAddressLine: Wireless Road
                    secondAddressLine: Clare Hall
                    city: St. John's
                    state: Saint John
                    businessNo: A5585291
                    administrators: /hosts/16951985851389/administrators
                    events: /hosts/16951985851389/events
        '404':
          $ref: '#/components/responses/not_found-2'
    post:
      tags:
        - Managing Host Accounts
      summary: Create an event host
      security:
        - SessionKey:
            - customer
            - host
            - support
            - administrator
      description: >
        Create a new host which can list events, sell tickets, book advertising,

        or request add-on services through TickeTing. The authorising user
        account is

        automatically added to the event host's list of administrators upon
        creation.
      operationId: create_host
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/request-3'
            example:
              name: The Boys Entertainment
              contact: Billy Butcher
              email: billy.butcher@fbsa.gov
              description: Premier events for supes of all ages
              phone: +1 (268) 555 8075
              website: https://theboys.net
              country: Antigua and Barbuda
              firstAddressLine: Wireless Road
              secondAddressLine: Clare Hall
              city: St. John's
              state: Saint John
              businessNo: A5585291
      responses:
        '201':
          description: The new host was successfully created.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/response-4'
              example:
                self: /hosts/16951985851389
                name: The Boys Entertainment
                contact: Billy Butcher
                email: billy.butcher@fbsa.gov
                description: Premier events for supes of all ages
                phone: +1 (268) 555 8075
                website: https://theboys.net
                country: Antigua and Barbuda
                firstAddressLine: Wireless Road
                secondAddressLine: Clare Hall
                city: St. John's
                state: Saint John
                businessNo: A5585291
                administrators: /hosts/16951985851389/administrators
                events: /hosts/16951985851389/events
        '400':
          $ref: '#/components/responses/400'
        '409':
          $ref: '#/components/responses/exists-2'
  /hosts/{host}:
    parameters:
      - $ref: '#/components/parameters/id'
    get:
      tags:
        - Managing Host Accounts
      summary: Retrieve host details
      security:
        - SessionKey:
            - customer
            - host
            - support
            - administrator
      description: |
        Retrieve the registration details of the specified host.
      operationId: retrieve_host
      responses:
        '200':
          description: Details of the requested event host were successfully retrieved.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/response-4'
              example:
                self: /hosts/16951985851389
                name: The Boys Entertainment
                contact: Billy Butcher
                email: billy.butcher@fbsa.gov
                description: Premier events for supes of all ages
                phone: +1 (268) 555 8075
                website: https://theboys.net
                country: Antigua and Barbuda
                firstAddressLine: Wireless Road
                secondAddressLine: Clare Hall
                city: St. John's
                state: Saint John
                businessNo: A5585291
                administrators: /hosts/16951985851389/administrators
                events: /hosts/16951985851389/events
        '404':
          $ref: '#/components/responses/404'
    put:
      tags:
        - Managing Host Accounts
      summary: Update host details
      security:
        - SessionKey:
            - host
            - administrator
      description: |
        Change the registered details of the specified event host
      operationId: update_host
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/request-3'
            example:
              name: The Boys Entertainment
              contact: Billy Butcher
              email: billy.butcher@fbsa.gov
              description: Premier events for supes of all ages
              phone: +1 (268) 555 8075
              website: https://theboys.net
              country: Antigua and Barbuda
              firstAddressLine: Wireless Road
              secondAddressLine: Clare Hall
              city: St. John's
              state: Saint John
              businessNo: A5585291
      responses:
        '200':
          description: |
            The host details were successfully updated.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/response-4'
              example:
                self: /hosts/16951985851389
                name: The Boys Entertainment
                contact: Billy Butcher
                email: billy.butcher@fbsa.gov
                description: Premier events for supes of all ages
                phone: +1 (268) 555 8075
                website: https://theboys.net
                country: Antigua and Barbuda
                firstAddressLine: Wireless Road
                secondAddressLine: Clare Hall
                city: St. John's
                state: Saint John
                businessNo: A5585291
                administrators: /hosts/16951985851389/administrators
                events: /hosts/16951985851389/events
        '400':
          $ref: '#/components/responses/400'
        '403':
          $ref: '#/components/responses/unauthorised-2'
        '409':
          $ref: '#/components/responses/exists-2'
    delete:
      tags:
        - Managing Host Accounts
      summary: Remove an event host
      security:
        - SessionKey:
            - host
            - administrator
      description: >
        Completely remove a registered event host from the system. The host

        will no longer be able to list events, sell tickets, book advertising,

        or request add-on services through TickeTing. Any existing events listed

        under the removed host account will still be active in the system, and
        any

        tickets sold will remain valid.
      operationId: delete_host
      responses:
        '200':
          description: |
            The event host was successfully removed from the system.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/message'
              example:
                message: 'Host: /hosts/16951985851389, has been deleted.'
        '403':
          $ref: '#/components/responses/unauthorised-2'
  /hosts/{host}/administrators:
    parameters:
      - $ref: '#/components/parameters/id'
    get:
      tags:
        - Managing Host Accounts
      parameters:
        - $ref: '#/components/parameters/records'
        - $ref: '#/components/parameters/page'
      summary: List host administrators
      security:
        - SessionKey:
            - host
            - administrator
      description: >
        Retrieve a list of user accounts that have been granted administrative
        access to the specified event host
      operationId: list_host_administrators
      responses:
        '200':
          description: The list of administrative user accounts was successfully retrieved.
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/results'
                  - $ref: '#/components/schemas/administrators'
              example:
                page: 1
                records: 5
                entries:
                  - self: /accounts/MO-6A39EE8D
                    number: MO-6A39EE8D
                    username: mothers.milk
                    email: marvin.milk@usmc.gov
                    firstName: Marvin
                    lastName: Milk
        '404':
          $ref: '#/components/responses/not_found-2'
    post:
      tags:
        - Managing Host Accounts
      summary: Grant administrative access
      security:
        - SessionKey:
            - host
            - administrator
      description: >
        Grant the specified user account administrative access to the requested
        event host.

        Administrative access can only be granted by a user that has already
        been made

        a host administrator.
      operationId: add_host_administrator
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/account-2'
            example:
              account: MO-6A39EE8D
      responses:
        '201':
          description: >-
            The specified user was successfully granted administrative access to
            the event host.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/message'
              example:
                message: Account MO-6A39EE8D can now administer this host.
        '400':
          $ref: '#/components/responses/400'
        '404':
          $ref: '#/components/responses/account_not_found'
        '409':
          $ref: '#/components/responses/administrator_exists'
    delete:
      tags:
        - Managing Host Accounts
      parameters:
        - $ref: '#/components/parameters/administrator'
      summary: Revoke administrative access
      security:
        - SessionKey:
            - host
            - administrator
      description: >
        Revoke administrative access to the requested event host from the
        specified user account.

        Administrative access can only be revoked by a user that has already
        been made

        a host administrator.
      operationId: remove_host_administrator
      responses:
        '200':
          description: >-
            Administrative access was successfully revoked from the specified
            user.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/message'
              example:
                message: Account MO-6A39EE8D can no longer administer this host.
        '404':
          $ref: '#/components/responses/account_not_found'
        '409':
          $ref: '#/components/responses/administrator_not_found'
  /hosts/{host}/events:
    parameters:
      - $ref: '#/components/parameters/id'
    get:
      tags:
        - Managing Host Accounts
      parameters:
        - $ref: '#/components/parameters/records'
        - $ref: '#/components/parameters/page'
        - $ref: '#/components/parameters/region'
        - $ref: '#/components/parameters/title'
        - $ref: '#/components/parameters/status-4'
        - $ref: '#/components/parameters/active'
        - $ref: '#/components/parameters/public'
        - $ref: '#/components/parameters/sort'
        - $ref: '#/components/parameters/order'
      summary: List hosted events
      security:
        - SessionKey:
            - host
            - administrator
      description: |
        Retrieve a list of all events registered by this event host.
      operationId: list_host_events
      responses:
        '200':
          description: The list of registered events was successfully retrieved.
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/results'
                  - $ref: '#/components/schemas/list-4'
              example:
                page: 1
                records: 25
                entries:
                  - self: /events/16993717817996
                    published: 2024-05-03T17:30
                    title: Dawn of the Seven Premier
                    description: |
                      World Premier of the long anticipated movie event of the
                      year: Dawn of the Seven
                    status: Listed
                    type: Standard
                    public: true
                    category:
                      self: /categories/16878141745207
                      name: Cinema
                      subcategories:
                        - Premier
                        - Screening
                    subcategory: Premier
                    start: 2024-06-07T20:00
                    end: 2024-06-07T23:00
                    venue:
                      self: /venues/16878146473429
                      name: Vought Tower
                      region: /regions/19290238432215
                      longitude: -73.99214
                      latitude: 40.75518
                      address: 7th Ave, Manhattan, New York
                      map: >-
                        https://maps.googleapis.com/maps/api/staticmap?center=40.75518,-73.99214&zoom=15&size=600x300&maptype=roadmap&markers=color:red%7C40.75518,-73.99214&key=AIzaSyCyLy8bOLUTLbQLVQFwf1eVO2UIVO8_4kQ&signature=IowClV__Bha7DFVe7TIG-osgyDE=
                    disclaimer: ''
                    tags:
                      - homelander
                      - queen maeve
                      - the deep
                      - A-Train
                    banner: http://localhost/media/16993717817996-banner.jpeg
                    thumbnail: http://localhost/media/16993717817996-thumbnail.jpeg
                    popularity: 40
                    sections:
                      - self: /events/16993717817996/sections/16993964783416
                        name: VIP Admission
                        description: Includes meet and greet with the film's stars.
                        active: true
                        basePrice: 50
                        salesStart: 2024-01-01T00:00
                        salesEnd: 2024-06-01T00:00
                        capacity: 100
                        sold: 23
                        remaining: 74
                        reserved: 3
        '404':
          $ref: '#/components/responses/not_found-2'
  /hosts/{host}/advertisements:
    parameters:
      - $ref: '#/components/parameters/id'
    get:
      tags:
        - Managing Host Accounts
      parameters:
        - $ref: '#/components/parameters/records'
        - $ref: '#/components/parameters/page'
        - $ref: '#/components/parameters/host'
        - $ref: '#/components/parameters/event-2'
        - $ref: '#/components/parameters/status-5'
        - $ref: '#/components/parameters/active-2'
      summary: List host advertisements
      security:
        - SessionKey:
            - host
            - administrator
      description: |
        Retrieve a list of all advertisements created by this event host.
      operationId: list_host_advertisements
      responses:
        '200':
          description: The list of advertisements was successfully retrieved.
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/results'
                  - $ref: '#/components/schemas/list-6'
              example:
                page: 1
                records: 25
                entries:
                  - self: /advertisements/17006103852315
                    name: Justice is served on 24.06.07
                    description: Launch ad for the Dawn of the Seven World Premier
                    status: Draft
                    artwork: http://localhost/media/17006103852315-artwork.jpeg
                    zones:
                      - self: /zones/17006034766602
                        name: Events App Banner
                        description: >
                          Zone appears at above the fold on the home screen of
                          the TickeTing

                          Events App
                        number: TE6199
                        width": 1400
                        height: 800
                        advertisements: /zones/17006034766602/advertisements
                    schedule:
                      - start: 2023-11-21T00:00
                        end": 2025-11-31T00:00
                    event:
                      self: /events/16993717817996
                      title: Dawn of the Seven Premier
                      description: |
                        World Premier of the long anticipated movie event of the
                        year: Dawn of the Seven
                      status: Listed
                      type: Standard
                      public: true
                      category: Live Events
                      subcategory: Premier
                      start: 2024-06-07T20:00
                      end: 2024-06-07T23:00
                      venue:
                        self: /venues/16878146473429
                        name: Vought Tower
                        longitude: -73.99214
                        latitude: 40.75518
                        address: 7th Ave, Manhattan, New York
                        map: >-
                          https://maps.googleapis.com/maps/api/staticmap?center=40.75518,-73.99214&zoom=15&size=600x300&maptype=roadmap&markers=color:red%7C40.75518,-73.99214&key=AIzaSyCyLy8bOLUTLbQLVQFwf1eVO2UIVO8_4kQ&signature=IowClV__Bha7DFVe7TIG-osgyDE=
                      disclaimer: ''
                      tags:
                        - homelander
                        - queen maeve
                        - the deep
                        - A-Train
                      banner: http://localhost/media/16993717817996-banner.jpeg
                      thumbnail: http://localhost/media/16993717817996-thumbnail.jpeg
                      popularity: 40
                      sections:
                        - self: /events/16993717817996/sections/16993964783416
                          name: VIP Admission
                          description: Includes meet and greet with the film's stars.
                          active: true
                          basePrice: 50
                          salesStart: 2024-01-01T00:00
                          salesEnd: 2024-06-01T00:00
                          capacity: 100
                          sold: 23
                          remaining: 74
                          reserved: 3
        '404':
          $ref: '#/components/responses/not_found-2'
  /published-events:
    get:
      tags:
        - Working with Events
      parameters:
        - $ref: '#/components/parameters/records'
        - $ref: '#/components/parameters/page'
        - $ref: '#/components/parameters/region'
        - $ref: '#/components/parameters/host-2'
        - $ref: '#/components/parameters/title'
        - $ref: '#/components/parameters/active'
        - $ref: '#/components/parameters/category'
        - $ref: '#/components/parameters/subcategory'
        - $ref: '#/components/parameters/after'
        - $ref: '#/components/parameters/before'
        - $ref: '#/components/parameters/sort'
        - $ref: '#/components/parameters/order'
      summary: List all published events
      security:
        - SessionKey:
            - public
            - customer
            - host
            - support
            - administrator
      description: >
        Retrieve a list of published events open to the public that match the
        given criteria.
      operationId: list_published_events
      responses:
        '200':
          description: The list of published events was successfully retrieved.
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/results'
                  - $ref: '#/components/schemas/list-4'
              example:
                page: 1
                records: 25
                entries:
                  - self: /events/16993717817996
                    published: 2024-05-03T17:30
                    title: Dawn of the Seven Premier
                    description: |
                      World Premier of the long anticipated movie event of the
                      year: Dawn of the Seven
                    status: Listed
                    type: Standard
                    public: true
                    category:
                      self: /categories/16878141745207
                      name: Cinema
                      subcategories:
                        - Premier
                        - Screening
                    subcategory: Premier
                    start: 2024-06-07T20:00
                    end: 2024-06-07T23:00
                    venue:
                      self: /venues/16878146473429
                      name: Vought Tower
                      region: /regions/19290238432215
                      longitude: -73.99214
                      latitude: 40.75518
                      address: 7th Ave, Manhattan, New York
                      map: >-
                        https://maps.googleapis.com/maps/api/staticmap?center=40.75518,-73.99214&zoom=15&size=600x300&maptype=roadmap&markers=color:red%7C40.75518,-73.99214&key=AIzaSyCyLy8bOLUTLbQLVQFwf1eVO2UIVO8_4kQ&signature=IowClV__Bha7DFVe7TIG-osgyDE=
                    disclaimer: ''
                    tags:
                      - homelander
                      - queen maeve
                      - the deep
                      - A-Train
                    banner: http://localhost/media/16993717817996-banner.jpeg
                    thumbnail: http://localhost/media/16993717817996-thumbnail.jpeg
                    popularity: 40
                    sections:
                      - self: /events/16993717817996/sections/16993964783416
                        name: VIP Admission
                        description: Includes meet and greet with the film's stars.
                        active: true
                        basePrice: 50
                        salesStart: 2024-01-01T00:00
                        salesEnd: 2024-06-01T00:00
                        capacity: 100
                        sold: 23
                        remaining: 74
                        reserved: 3
        '404':
          $ref: '#/components/responses/not_found-2'
  /events:
    get:
      tags:
        - Working with Events
      parameters:
        - $ref: '#/components/parameters/records'
        - $ref: '#/components/parameters/page'
        - $ref: '#/components/parameters/region'
        - $ref: '#/components/parameters/host-2'
        - $ref: '#/components/parameters/title'
        - $ref: '#/components/parameters/status-4'
        - $ref: '#/components/parameters/active'
        - $ref: '#/components/parameters/public'
        - $ref: '#/components/parameters/section-2'
        - $ref: '#/components/parameters/sort'
        - $ref: '#/components/parameters/order'
      summary: List all events
      security:
        - SessionKey:
            - administrator
      description: |
        Retrieve a list of events matching the given criteria.
      operationId: list_events
      responses:
        '200':
          description: The list of matching events was successfully retrieved.
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/results'
                  - $ref: '#/components/schemas/list-4'
              example:
                page: 1
                records: 25
                entries:
                  - self: /events/16993717817996
                    published: 2024-05-03T17:30
                    title: Dawn of the Seven Premier
                    description: |
                      World Premier of the long anticipated movie event of the
                      year: Dawn of the Seven
                    status: Listed
                    type: Standard
                    public: true
                    category:
                      self: /categories/16878141745207
                      name: Cinema
                      subcategories:
                        - Premier
                        - Screening
                    subcategory: Premier
                    start: 2024-06-07T20:00
                    end: 2024-06-07T23:00
                    venue:
                      self: /venues/16878146473429
                      name: Vought Tower
                      region: /regions/19290238432215
                      longitude: -73.99214
                      latitude: 40.75518
                      address: 7th Ave, Manhattan, New York
                      map: >-
                        https://maps.googleapis.com/maps/api/staticmap?center=40.75518,-73.99214&zoom=15&size=600x300&maptype=roadmap&markers=color:red%7C40.75518,-73.99214&key=AIzaSyCyLy8bOLUTLbQLVQFwf1eVO2UIVO8_4kQ&signature=IowClV__Bha7DFVe7TIG-osgyDE=
                    disclaimer: ''
                    tags:
                      - homelander
                      - queen maeve
                      - the deep
                      - A-Train
                    banner: http://localhost/media/16993717817996-banner.jpeg
                    thumbnail: http://localhost/media/16993717817996-thumbnail.jpeg
                    popularity: 40
                    sections:
                      - self: /events/16993717817996/sections/16993964783416
                        name: VIP Admission
                        description: Includes meet and greet with the film's stars.
                        active: true
                        basePrice: 50
                        salesStart: 2024-01-01T00:00
                        salesEnd: 2024-06-01T00:00
                        capacity: 100
                        sold: 23
                        remaining: 74
                        reserved: 3
        '404':
          $ref: '#/components/responses/not_found-2'
    post:
      tags:
        - Working with Events
      summary: Register an event
      security:
        - SessionKey:
            - host
            - administrator
      description: >
        Register a new event in the TickeTing system. Once submitted for review
        and

        approved by an administrator, the host can begin to sell tickets to the
        event.
      operationId: register_event
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/post'
            example:
              host: '16951985851389'
              title: Dawn of the Seven Premier
              description: |
                World Premier of the long anticipated movie event of the
                year: Dawn of the Seven
              type: Standard
              public: true
              category: /categories/16878141745207
              subcategory: Premier
              start: 2024-06-07T20:00
              end: 2024-06-07T23:00
              venue: /venues/16878146473429
              disclaimer: Attend at your own risk
              tags:
                - homelander
                - queen maeve
                - the deep
                - A-Train
              banner: >-
                data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAzoAAASRCAYAAAD/zekXAA...
              thumbnail: >-
                data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAB4AAAAQ4CAYAAADo08FDAAAAB...
      responses:
        '201':
          description: The new event was successfully registered.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/response-7'
              example:
                self: /events/16993717817996
                published: 2024-05-03T17:30
                title: Dawn of the Seven Premier
                description: |
                  World Premier of the long anticipated movie event of the
                  year: Dawn of the Seven
                status: Listed
                type: Standard
                public: true
                category:
                  self: /categories/16878141745207
                  name: Cinema
                  subcategories:
                    - Premier
                    - Screening
                subcategory: Premier
                start: 2024-06-07T20:00
                end: 2024-06-07T23:00
                venue:
                  self: /venues/16878146473429
                  name: Vought Tower
                  region: /regions/19290238432215
                  longitude: -73.99214
                  latitude: 40.75518
                  address: 7th Ave, Manhattan, New York
                  map: >-
                    https://maps.googleapis.com/maps/api/staticmap?center=40.75518,-73.99214&zoom=15&size=600x300&maptype=roadmap&markers=color:red%7C40.75518,-73.99214&key=AIzaSyCyLy8bOLUTLbQLVQFwf1eVO2UIVO8_4kQ&signature=IowClV__Bha7DFVe7TIG-osgyDE=
                disclaimer: ''
                tags:
                  - homelander
                  - queen maeve
                  - the deep
                  - A-Train
                banner: http://localhost/media/16993717817996-banner.jpeg
                thumbnail: http://localhost/media/16993717817996-thumbnail.jpeg
                popularity: 40
                sections:
                  - self: /events/16993717817996/sections/16993964783416
                    name: VIP Admission
                    description: Includes meet and greet with the film's stars.
                    active: true
                    basePrice: 50
                    salesStart: 2024-01-01T00:00
                    salesEnd: 2024-06-01T00:00
                    capacity: 100
                    sold: 23
                    remaining: 74
                    reserved: 3
        '400':
          $ref: '#/components/responses/400'
        '403':
          $ref: '#/components/responses/unauthorised-3'
        '409':
          $ref: '#/components/responses/exists-3'
  /events/{event}:
    parameters:
      - $ref: '#/components/parameters/id-2'
    get:
      tags:
        - Working with Events
      summary: Retrieve event details
      security:
        - SessionKey:
            - public
            - customer
            - host
            - support
            - administrator
      description: |
        Retrieve the registration details of the requested event
      operationId: retrieve_event
      responses:
        '200':
          description: Details of the requested event were successfully retrieved.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/response-7'
              example:
                self: /events/16993717817996
                published: 2024-05-03T17:30
                title: Dawn of the Seven Premier
                description: |
                  World Premier of the long anticipated movie event of the
                  year: Dawn of the Seven
                status: Listed
                type: Standard
                public: true
                category:
                  self: /categories/16878141745207
                  name: Cinema
                  subcategories:
                    - Premier
                    - Screening
                subcategory: Premier
                start: 2024-06-07T20:00
                end: 2024-06-07T23:00
                venue:
                  self: /venues/16878146473429
                  name: Vought Tower
                  region: /regions/19290238432215
                  longitude: -73.99214
                  latitude: 40.75518
                  address: 7th Ave, Manhattan, New York
                  map: >-
                    https://maps.googleapis.com/maps/api/staticmap?center=40.75518,-73.99214&zoom=15&size=600x300&maptype=roadmap&markers=color:red%7C40.75518,-73.99214&key=AIzaSyCyLy8bOLUTLbQLVQFwf1eVO2UIVO8_4kQ&signature=IowClV__Bha7DFVe7TIG-osgyDE=
                disclaimer: ''
                tags:
                  - homelander
                  - queen maeve
                  - the deep
                  - A-Train
                banner: http://localhost/media/16993717817996-banner.jpeg
                thumbnail: http://localhost/media/16993717817996-thumbnail.jpeg
                popularity: 40
                sections:
                  - self: /events/16993717817996/sections/16993964783416
                    name: VIP Admission
                    description: Includes meet and greet with the film's stars.
                    active: true
                    basePrice: 50
                    salesStart: 2024-01-01T00:00
                    salesEnd: 2024-06-01T00:00
                    capacity: 100
                    sold: 23
                    remaining: 74
                    reserved: 3
        '403':
          $ref: '#/components/responses/unlisted'
    put:
      tags:
        - Working with Events
      summary: Update event details
      security:
        - SessionKey:
            - host
            - administrator
      description: |
        Change the details of the requested event
      operationId: update_event
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/put'
            example:
              title: Dawn of the Seven Premier
              description: |
                World Premier of the long anticipated movie event of the
                year: Dawn of the Seven
              type: Standard
              public: true
              category: /categories/16878141745207
              subcategory: Premier
              start: 2024-06-07T20:00
              end: 2024-06-07T23:00
              venue: /venues/16878146473429
              disclaimer: Attend at your own risk
              tags:
                - homelander
                - queen maeve
                - the deep
                - A-Train
              banner: >-
                data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAzoAAASRCAYAAAD/zekXAA...
              thumbnail: >-
                data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAB4AAAAQ4CAYAAADo08FDAAAAB...
      responses:
        '200':
          description: |
            The event details were successfully updated.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/response-7'
              example:
                self: /events/16993717817996
                published: 2024-05-03T17:30
                title: Dawn of the Seven Premier
                description: |
                  World Premier of the long anticipated movie event of the
                  year: Dawn of the Seven
                status: Listed
                type: Standard
                public: true
                category:
                  self: /categories/16878141745207
                  name: Cinema
                  subcategories:
                    - Premier
                    - Screening
                subcategory: Premier
                start: 2024-06-07T20:00
                end: 2024-06-07T23:00
                venue:
                  self: /venues/16878146473429
                  name: Vought Tower
                  region: /regions/19290238432215
                  longitude: -73.99214
                  latitude: 40.75518
                  address: 7th Ave, Manhattan, New York
                  map: >-
                    https://maps.googleapis.com/maps/api/staticmap?center=40.75518,-73.99214&zoom=15&size=600x300&maptype=roadmap&markers=color:red%7C40.75518,-73.99214&key=AIzaSyCyLy8bOLUTLbQLVQFwf1eVO2UIVO8_4kQ&signature=IowClV__Bha7DFVe7TIG-osgyDE=
                disclaimer: ''
                tags:
                  - homelander
                  - queen maeve
                  - the deep
                  - A-Train
                banner: http://localhost/media/16993717817996-banner.jpeg
                thumbnail: http://localhost/media/16993717817996-thumbnail.jpeg
                popularity: 40
                sections:
                  - self: /events/16993717817996/sections/16993964783416
                    name: VIP Admission
                    description: Includes meet and greet with the film's stars.
                    active: true
                    basePrice: 50
                    salesStart: 2024-01-01T00:00
                    salesEnd: 2024-06-01T00:00
                    capacity: 100
                    sold: 23
                    remaining: 74
                    reserved: 3
        '400':
          $ref: '#/components/responses/400'
        '403':
          $ref: '#/components/responses/unauthorised-3'
        '409':
          $ref: '#/components/responses/exists-3'
    delete:
      tags:
        - Working with Events
      summary: Remove an event
      security:
        - SessionKey:
            - host
            - administrator
      description: >
        Completely remove a registered event from the system. Only events that
        have not sold

        any tickets can be deleted. If tickets have been sold, but further sales
        should be

        prevented, an event can be unpublished or cancelled as necessary.
      operationId: delete_event
      responses:
        '200':
          description: |
            The event was successfully removed from the system.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/message'
              example:
                message: 'Event: /events/17001492554375, has been deleted.'
        '403':
          $ref: '#/components/responses/unauthorised-3'
        '409':
          $ref: '#/components/responses/has_sections'
  /events/{event}/submissions:
    parameters:
      - $ref: '#/components/parameters/id-2'
    post:
      tags:
        - Working with Events
      summary: Submit event for review
      security:
        - SessionKey:
            - host
            - administrator
      description: >
        When an event is created it is initially just a draft, visible only to
        host administrators.

        When an event is ready to go live, it must first be submitted for review
        by a member of the

        TickeTing team. If the event is approved, it will be published and made
        visible to users

        across the TickeTing ecosystem. If rejected, the event will be returned
        to a draft status.
      operationId: submit_event
      requestBody:
        content:
          application/json: {}
      responses:
        '201':
          description: The event was successfully submitted for review.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/message'
              example:
                message: >-
                  Your event was submitted for review. You will be notified once
                  a decision is reached.
        '403':
          $ref: '#/components/responses/unauthorised-3'
        '409':
          $ref: '#/components/responses/not_draft'
  /events/{event}/sections:
    parameters:
      - $ref: '#/components/parameters/id-2'
    post:
      tags:
        - Working with Events
      summary: Add an event section
      security:
        - SessionKey:
            - host
            - administrator
      description: |
        Add a new section to the specified event. Sections are subdivisions
        of an event, each of which offer a unique experience to ticket holders.
        Examples include General Admission, All-Inclusive, VIP and Backstage.
      operationId: add_event_section
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/request-4'
            example:
              name: Backstage
              description: Includes meet and greet with the film's stars.
              basePrice: 50
              salesStart: 2024-01-01T00:00
              salesEnd: 2024-06-01T00:00
              capacity: 100
      responses:
        '201':
          description: The new section was successfully added to the event.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/response-12'
              example:
                self: /events/16993717817996/sections/16993964783416
                name: Backstage
                description: Includes meet and greet with the film's stars.
                active: true
                basePrice: 50
                salesStart: 2024-01-01T00:00
                salesEnd: 2024-06-01T00:00
                capacity: 100
                sold: 23
                remaining: 74
                reserved: 3
                modifiers:
                  - self: >-
                      /events/16993717817996/sections/16993964783416/modifiers/16994014111951
                    name: Supe Special
                    active: true
                    priceDelta: -10
                    availableFrom: 2024-01-01T00:00
                    availableTo: 2024-03-31T00:00
                    minOrder: 0
                    maxOrder: 10
        '400':
          $ref: '#/components/responses/bad_dates'
        '403':
          $ref: '#/components/responses/unauthorised-3'
        '409':
          $ref: '#/components/responses/exists-4'
  /events/{event}/sections/{section}:
    parameters:
      - $ref: '#/components/parameters/id-2'
      - $ref: '#/components/parameters/id-3'
    get:
      tags:
        - Working with Events
      summary: Retrieve section details
      security:
        - SessionKey:
            - public
            - customer
            - host
            - support
            - administrator
      description: |
        Retrieve the details of the requested event section
      operationId: retrieve_event_section
      responses:
        '200':
          description: Details of the requested event section were successfully retrieved.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/response-12'
              example:
                self: /events/16993717817996/sections/16993964783416
                name: Backstage
                description: Includes meet and greet with the film's stars.
                active: true
                basePrice: 50
                salesStart: 2024-01-01T00:00
                salesEnd: 2024-06-01T00:00
                capacity: 100
                sold: 23
                remaining: 74
                reserved: 3
                modifiers:
                  - self: >-
                      /events/16993717817996/sections/16993964783416/modifiers/16994014111951
                    name: Supe Special
                    active: true
                    priceDelta: -10
                    availableFrom: 2024-01-01T00:00
                    availableTo: 2024-03-31T00:00
                    minOrder: 0
                    maxOrder: 10
        '403':
          $ref: '#/components/responses/unlisted'
    put:
      tags:
        - Working with Events
      summary: Update section details
      security:
        - SessionKey:
            - host
            - administrator
      description: |
        Change the details of the requested event section
      operationId: update_event_section
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/request-4'
            example:
              name: Backstage
              description: Includes meet and greet with the film's stars.
              basePrice: 50
              salesStart: 2024-01-01T00:00
              salesEnd: 2024-06-01T00:00
              capacity: 100
      responses:
        '200':
          description: |
            The event section details were successfully updated.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/response-12'
              example:
                self: /events/16993717817996/sections/16993964783416
                name: Backstage
                description: Includes meet and greet with the film's stars.
                active: true
                basePrice: 50
                salesStart: 2024-01-01T00:00
                salesEnd: 2024-06-01T00:00
                capacity: 100
                sold: 23
                remaining: 74
                reserved: 3
                modifiers:
                  - self: >-
                      /events/16993717817996/sections/16993964783416/modifiers/16994014111951
                    name: Supe Special
                    active: true
                    priceDelta: -10
                    availableFrom: 2024-01-01T00:00
                    availableTo: 2024-03-31T00:00
                    minOrder: 0
                    maxOrder: 10
        '400':
          $ref: '#/components/responses/bad_dates'
        '403':
          $ref: '#/components/responses/unauthorised-3'
        '409':
          $ref: '#/components/responses/exists-4'
    delete:
      tags:
        - Working with Events
      summary: Remove an event section
      security:
        - SessionKey:
            - host
            - administrator
      description: >
        Remove a section from an event. Only sections for which there are no
        ticket

        sales or active reservations can be deleted. If tickets have been sold,
        the

        section can no longer be deleted, but its associated event can be
        cancelled

        or unpublished as necessary.
      operationId: delete_event_section
      responses:
        '200':
          description: |
            The section was successfully removed from the event.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/message'
              example:
                message: >-
                  Section: /events/16878174883191/sections/16993992757170, has
                  been deleted.
        '403':
          $ref: '#/components/responses/unauthorised-3'
        '409':
          $ref: '#/components/responses/has_sales'
  /events/{event}/sections/{section}/modifiers:
    parameters:
      - $ref: '#/components/parameters/id-2'
      - $ref: '#/components/parameters/id-3'
    post:
      tags:
        - Working with Events
      summary: Create a price modifier
      security:
        - SessionKey:
            - host
            - administrator
      description: >
        Create a new price modifier for an event section. Price modifiers can be
        used to increase or

        decrease a section's base price based on the time of purchase or the
        number of tickets ordered.

        Price modifiers can be used to implement sales (Early Bird, Flash Sale),
        group rates or gate

        prices.
      operationId: add_price_modifier
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/request-5'
            example:
              name: Supe Special
              priceDelta: -10
              availableFrom: 2024-01-01T00:00
              availableTo: 2024-03-31T00:00
              minOrder: 0
              maxOrder: 10
      responses:
        '201':
          description: The new price modifier was successfully added to the section.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/response-11'
              example:
                self: >-
                  /events/16993717817996/sections/16993964783416/modifiers/16994014111951
                name: Supe Special
                active: true
                priceDelta: -10
                availableFrom: 2024-01-01T00:00
                availableTo: 2024-03-31T00:00
                minOrder: 0
                maxOrder: 10
        '400':
          $ref: '#/components/responses/bad_data'
        '403':
          $ref: '#/components/responses/unauthorised-3'
        '409':
          $ref: '#/components/responses/exists-5'
  /events/{event}/sections/{section}/modifiers/{modifier}:
    parameters:
      - $ref: '#/components/parameters/id-2'
      - $ref: '#/components/parameters/id-3'
      - $ref: '#/components/parameters/id-4'
    get:
      tags:
        - Working with Events
      summary: Retrieve price modifier details
      security:
        - SessionKey:
            - host
            - administrator
      description: |
        Retrieve the details of the requested price modifier
      operationId: retrieve_price_modifier
      responses:
        '200':
          description: Details of the requested price modifier were successfully retrieved.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/response-11'
              example:
                self: >-
                  /events/16993717817996/sections/16993964783416/modifiers/16994014111951
                name: Supe Special
                active: true
                priceDelta: -10
                availableFrom: 2024-01-01T00:00
                availableTo: 2024-03-31T00:00
                minOrder: 0
                maxOrder: 10
        '403':
          $ref: '#/components/responses/unauthorised-3'
    put:
      tags:
        - Working with Events
      summary: Update price modifier details
      security:
        - SessionKey:
            - host
            - administrator
      description: |
        Change the details of the requested price modifier
      operationId: update_price_modifier
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/request-5'
            example:
              name: Supe Special
              priceDelta: -10
              availableFrom: 2024-01-01T00:00
              availableTo: 2024-03-31T00:00
              minOrder: 0
              maxOrder: 10
      responses:
        '200':
          description: |
            The price modifier details were successfully updated.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/response-11'
              example:
                self: >-
                  /events/16993717817996/sections/16993964783416/modifiers/16994014111951
                name: Supe Special
                active: true
                priceDelta: -10
                availableFrom: 2024-01-01T00:00
                availableTo: 2024-03-31T00:00
                minOrder: 0
                maxOrder: 10
        '400':
          $ref: '#/components/responses/bad_data'
        '403':
          $ref: '#/components/responses/unauthorised-3'
        '409':
          $ref: '#/components/responses/exists-5'
    delete:
      tags:
        - Working with Events
      summary: Remove a price modifier
      security:
        - SessionKey:
            - host
            - administrator
      description: >
        Remove a price modifier from an event section. Future ticket purchases
        for this

        section will no longer have the modifier applied.
      operationId: delete_price_modifier
      responses:
        '200':
          description: |
            The price modifier was successfully removed from the event section.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/message'
              example:
                message: >-
                  Modifier:
                  /events/16878174883191/sections/17001722163356/modifiers/17001749089001,
                  has been deleted.
        '403':
          $ref: '#/components/responses/unauthorised-3'
  /events/{event}/tokens:
    parameters:
      - $ref: '#/components/parameters/id-2'
    post:
      tags:
        - Event Admissions
      summary: Issue admission tokens
      security:
        - SessionKey:
            - host
            - administrator
      description: >
        Create tokens that authorise event staff to grant admission to the
        event. Tokens allow event staff to redeem tickets

        and admit patrons to one or more event sections. Each event has a global
        token that allows redemption of tickets for

        all sections. Additional tokens can be created, as needed, and should be
        issued to event staff on a one-to-one basis.
      operationId: manage_admission_tokens
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/request-6'
            example:
              sections:
                - /events/16993717817996/sections/16993964783416
                - /events/16993717817996/sections/16993964783417
      responses:
        '201':
          description: |
            The admission token was successfully added to the event
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/response-13'
              example:
                self: /events/16993717817996/tokens/17370490770235
                code: A0F9GG8D
                global: true
                sections:
                  - /events/16993717817996/sections/16993964783416
                  - /events/16993717817996/sections/16993964783417
        '400':
          $ref: '#/components/responses/bad_sections'
        '403':
          $ref: '#/components/responses/unauthorised-3'
    get:
      tags:
        - Event Admissions
      parameters:
        - $ref: '#/components/parameters/records'
        - $ref: '#/components/parameters/page'
        - $ref: '#/components/parameters/global'
      summary: List admission tokens
      security:
        - SessionKey:
            - host
            - administrator
      description: >
        Retrieve a list of tokens permitted to redeem tickets issued for this
        event.
      operationId: list_event_tokens
      responses:
        '200':
          description: >-
            The list of event tokens matching the given criteria was
            successfully retrieved.
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/results'
                  - $ref: '#/components/schemas/list-7'
              example:
                total: 2
                page: 1
                records: 25
                entries:
                  - self: /events/16993717817996/tokens/17370490770235
                    code: A0F9GG8D
                    global: true
                    sections:
                      - /events/16993717817996/sections/16993964783416
                      - /events/16993717817996/sections/16993964783417
                  - self: /events/16993717817996/tokens/17370490774288
                    code: 91JKC83A
                    global: false
                    sections:
                      - /events/16993717817996/sections/16993964783416
        '403':
          $ref: '#/components/responses/unauthorised-3'
        '404':
          $ref: '#/components/responses/not_found-2'
  /events/{event}/tokens/{token}:
    parameters:
      - $ref: '#/components/parameters/id-2'
      - $ref: '#/components/parameters/id-5'
    get:
      tags:
        - Event Admissions
      summary: Retrieve admission token details
      security:
        - SessionKey:
            - host
            - administrator
      description: |
        Retrieve the details of the specified admission token.
      operationId: retrieve_admission_token
      responses:
        '200':
          description: >-
            Details of the requested adnussion token were successfully
            retrieved.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/response-13'
              example:
                self: /events/16993717817996/tokens/17370490770235
                code: A0F9GG8D
                global: true
                sections:
                  - /events/16993717817996/sections/16993964783416
                  - /events/16993717817996/sections/16993964783417
        '403':
          $ref: '#/components/responses/unauthorised-3'
        '404':
          $ref: '#/components/responses/404'
    put:
      tags:
        - Event Admissions
      summary: Modify admission token sections
      security:
        - SessionKey:
            - host
            - administrator
      description: >
        Update the event sections that the admission token can be used to grant
        entry to
      operationId: update_admission_token
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/request-6'
            example:
              sections:
                - /events/16993717817996/sections/16993964783416
                - /events/16993717817996/sections/16993964783417
      responses:
        '200':
          description: |
            The admission tokens associated sections were successfully updated.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/response-13'
              example:
                self: /events/16993717817996/tokens/17370490770235
                code: A0F9GG8D
                global: true
                sections:
                  - /events/16993717817996/sections/16993964783416
                  - /events/16993717817996/sections/16993964783417
        '400':
          $ref: '#/components/responses/bad_sections'
        '403':
          $ref: '#/components/responses/unauthorised-3'
        '409':
          $ref: '#/components/responses/is_global'
    delete:
      tags:
        - Event Admissions
      summary: Invalidate an admission token
      security:
        - SessionKey:
            - host
            - administrator
      description: >
        Invalidate an admission token and remove it from the event. Invalidated
        tokens can no longer be used

        by event staff to redeem tickets and grant admission.
      operationId: invalidate_admission_token
      responses:
        '200':
          description: >
            The admission token was successfully invalidated and removed from
            the system.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/message'
              example:
                message: >-
                  Token: /events/16993717817996/tokens/17370490770235 has been
                  deleted.
        '403':
          $ref: '#/components/responses/unauthorised-3'
        '409':
          $ref: '#/components/responses/is_global'
  /events/{event}/tickets:
    parameters:
      - $ref: '#/components/parameters/id-2'
    get:
      tags:
        - Event Admissions
      parameters:
        - $ref: '#/components/parameters/records'
        - $ref: '#/components/parameters/page'
        - $ref: '#/components/parameters/modified_since'
      summary: Retrieve valid event tickets
      security:
        - SessionKey:
            - redeemer
      description: >
        Retrieve a detailed list of valid event tickets issued for sections that
        the authenticated redeemer

        is authorised to admit patrons to.
      operationId: list_event_tickets
      responses:
        '200':
          description: >-
            The list of matching tickets the authenticated redeemer has access
            to was successfully retrieved.
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/results'
                  - $ref: '#/components/schemas/list-8'
              example:
                page: 17
                records: 914
                entries:
                  - serial: DAWIER-BACK75580348
                    status: Issued
                    section:
                      self: /events/16993717817996/sections/16993964783416
                      name: Backstage
                      description: Includes meet and greet with the film's stars.
                    owner:
                      self: /accounts/MO-6A39EE8D
                      number: MO-6A39EE8D
                      username: mothers.milk
                      email: marvin.milk@usmc.gov
                      firstName: Marvin
                      lastName: Milk
                    issued: '2024-02-21T14:59:18+00:00'
                    redeemed: N/A
        '403':
          $ref: '#/components/responses/unauthorised-4'
        '404':
          $ref: '#/components/responses/not_found-2'
  /events/{event}/admissions:
    parameters:
      - $ref: '#/components/parameters/id-2'
    post:
      tags:
        - Event Admissions
      summary: Admit event patrons
      security:
        - SessionKey:
            - redeemer
      description: >
        Attempt to admit one or more patrons to an event based on their ticket
        serial numbers.

        The endpoint accepts a list containing the serials of tickets to be
        redeemed. The system

        will admit any serials that are currently valid for the event sections
        that the redeemer is

        authorised to admit to, and return a list of those that were
        successfully redeemed.
      operationId: admit_event_patrons
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/request-7'
            example:
              redeemer: Butcher
              device: Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36...
              serials:
                - DAWIER-BACK75580348
                - DAWIER-VIPV37536946
                - DAWIER-BACK75580348
      responses:
        '201':
          description: >
            One or more of the tickets identified by the provided serials grants
            admission to an 

            authorised event section and have been successfully redeemed.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/collection'
              example:
                - redeemer: Butcher
                  device: Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36...
                  ticket: DAWIER-BACK75580348
                  patron:
                    username: mothers.milk
                    email: marvin.milk@usmc.gov
                    firstName: Marvin
                    lastName: Milk
                  section:
                    self: /events/16993717817996/sections/16993964783416
                    name: Backstage
                    description: Includes meet and greet with the film's stars.
                  admitted: '2024-03-01T10:59:56+00:00'
                - redeemer: Butcher
                  device: Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36...
                  ticket: DAWIER-VIPV37536946
                  patron:
                    username: the_butcher
                    email: billy.butcher@theboys.com
                    firstName: Billy
                    lastName: Butched
                  section:
                    self: /events/16993717817996/sections/4829429647013942
                    name: VIP
                    description: All-inclusive food and drinks.
                  admitted: '2024-03-01T10:59:56+00:00'
        '400':
          $ref: '#/components/responses/failed'
        '403':
          $ref: '#/components/responses/unauthorised-4'
    get:
      tags:
        - Event Admissions
      parameters:
        - $ref: '#/components/parameters/records'
        - $ref: '#/components/parameters/page'
        - $ref: '#/components/parameters/redeemer'
        - $ref: '#/components/parameters/device'
        - $ref: '#/components/parameters/ticket'
        - $ref: '#/components/parameters/patron'
        - $ref: '#/components/parameters/section-3'
      summary: List event admissions
      security:
        - SessionKey:
            - host
            - administrator
      description: >
        Retrieve a list of admissions to the event sections that the
        authenticated redeemer has access to.
      operationId: list_event_admissions
      responses:
        '200':
          description: >-
            The list of event admissions matching the given criteria was
            successfully retrieved.
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/results'
                  - $ref: '#/components/schemas/list-9'
              example:
                page: 3
                records: 2
                entries:
                  - redeemer: Butcher
                    device: Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36...
                    ticket: DAWIER-BACK75580348
                    patron:
                      username: mothers.milk
                      email: marvin.milk@usmc.gov
                      firstName: Marvin
                      lastName: Milk
                    section:
                      self: /events/16993717817996/sections/16993964783416
                      name: Backstage
                      description: Includes meet and greet with the film's stars.
                    admitted: '2024-03-01T10:59:56+00:00'
                  - redeemer: Butcher
                    device: Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36...
                    ticket: DAWIER-VIPV37536946
                    patron:
                      username: the_butcher
                      email: billy.butcher@theboys.com
                      firstName: Billy
                      lastName: Butched
                    section:
                      self: /events/16993717817996/sections/4829429647013942
                      name: VIP
                      description: All-inclusive food and drinks.
                    admitted: '2024-03-01T10:59:56+00:00'
        '403':
          $ref: '#/components/responses/unauthorised-4'
        '404':
          $ref: '#/components/responses/not_found-2'
  /hosts/{host}/statistics:
    parameters:
      - $ref: '#/components/parameters/id'
    get:
      tags:
        - Event Reporting
      summary: View host statistics
      security:
        - SessionKey:
            - host
            - administrator
      description: >
        View high-level statistics for a host including total revenues, tickets
        sold,

        events listed and unique customers.
      operationId: view_host_statistics
      responses:
        '200':
          description: The host statistics resource was successfully retrieved.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/statistics'
              example:
                self: /hosts/16951985851389/statistics
                events: 6
                orders: 489
                revenue: 51934.67
                tickets: 972
        '404':
          $ref: '#/components/responses/404'
  /events/{event}/statistics:
    parameters:
      - $ref: '#/components/parameters/id-2'
    get:
      tags:
        - Event Reporting
      summary: View event statistics
      security:
        - SessionKey:
            - host
            - administrator
      description: >
        View high-level statistics for an event including revenues, tickets
        sold,

        ticket capacity and total orders.
      operationId: view_event_statistics
      responses:
        '200':
          description: The event statistics resource was successfully retrieved.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/statistics-2'
              example:
                self: /hosts/16951985851389/statistics
                capacity: 500
                orders: 213
                revenue: 23120.12
                tickets: 374
        '404':
          $ref: '#/components/responses/404'
  /events/{event}/sales:
    parameters:
      - $ref: '#/components/parameters/id-2'
    get:
      tags:
        - Event Reporting
      parameters:
        - $ref: '#/components/parameters/from'
        - $ref: '#/components/parameters/to'
        - $ref: '#/components/parameters/section-4'
        - $ref: '#/components/parameters/modifier'
      summary: Report event sales
      security:
        - SessionKey:
            - host
            - administrator
      description: >
        Generate a summary report of ticket sales for this event using the given
        criteria
      operationId: report_event_sales
      responses:
        '200':
          description: >-
            The summary of ticket sales fitting the specified criteria was
            successfully generated..
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/report'
              example:
                units: 31
                sales: 960
                fees: 48
                breakdown:
                  Backstage:
                    units: 11
                    sales: 460
                    fees: 23
                    breakdown:
                      Base Price:
                        units: 2
                        sales: 100
                        fees: 5
                      Supe Special:
                        units: 9
                        sales: 360
                        fees: 18
                  VIP:
                    units: 20
                    sales: 500
                    fees: 25
                    breakdown:
                      Base Price:
                        units: 20
                        sales: 500
                        fees: 25
        '400':
          $ref: '#/components/responses/bad_query'
  /zones:
    get:
      tags:
        - Ad Zone Management
      parameters:
        - $ref: '#/components/parameters/records'
        - $ref: '#/components/parameters/page'
      summary: List advertising zones
      security:
        - SessionKey:
            - host
            - administrator
      description: >
        Retrieve a list of zones in which advertisements can appear across the
        TickeTing ecosystem.
      operationId: list_zones
      responses:
        '200':
          description: The list of advertising zones was successfully retrieved.
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/results'
                  - $ref: '#/components/schemas/list-10'
              example:
                page: 1
                records: 25
                entries:
                  - self: /zones/17006034766602
                    name: Events App Banner
                    description: >
                      Zone appears at above the fold on the home screen of the
                      TickeTing

                      Events App
                    number: TE6199
                    width": 1400
                    height: 800
                    advertisements: /zones/17006034766602/advertisements
        '404':
          $ref: '#/components/responses/not_found-2'
    post:
      tags:
        - Ad Zone Management
      summary: Create an advertising zone
      security:
        - SessionKey:
            - administrator
      description: >
        Create a new advertising zone. New zones do not automatically begin the
        display of

        advertisements. Instead zones must be assigned manually to the platform
        they are meant to

        appear on (Events App, Website, etc.) using their unique number. The API
        only ensures that

        advertisements assigned to a zone adhere to its specified dimensions.
      operationId: create_zone
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/request-8'
            example:
              name: Events App Banner
              description: >
                Zone appears at above the fold on the home screen of the
                TickeTing

                Events App
              width": 1400
              height: 800
      responses:
        '201':
          description: The new zone was successfully created.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/response-9'
              example:
                self: /zones/17006034766602
                name: Events App Banner
                description: >
                  Zone appears at above the fold on the home screen of the
                  TickeTing

                  Events App
                number: TE6199
                width": 1400
                height: 800
                advertisements: /zones/17006034766602/advertisements
        '400':
          $ref: '#/components/responses/400'
        '409':
          $ref: '#/components/responses/exists-6'
  /zones/{zone}:
    parameters:
      - $ref: '#/components/parameters/id-6'
    get:
      tags:
        - Ad Zone Management
      summary: Retrieve ad zone details
      security:
        - SessionKey:
            - public
            - customer
            - host
            - support
            - administrator
      description: |
        Retrieve the details of the specified advertising zone.
      operationId: retrieve_zone
      responses:
        '200':
          description: >-
            Details of the requested advertising zone were successfully
            retrieved.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/response-9'
              example:
                self: /zones/17006034766602
                name: Events App Banner
                description: >
                  Zone appears at above the fold on the home screen of the
                  TickeTing

                  Events App
                number: TE6199
                width": 1400
                height: 800
                advertisements: /zones/17006034766602/advertisements
        '404':
          $ref: '#/components/responses/404'
    put:
      tags:
        - Ad Zone Management
      summary: Modify ad zone details
      security:
        - SessionKey:
            - administrator
      description: |
        Update the details of the specified advertising zone
      operationId: update_zone
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/request-8'
            example:
              name: Events App Banner
              description: >
                Zone appears at above the fold on the home screen of the
                TickeTing

                Events App
              width": 1400
              height: 800
      responses:
        '200':
          description: |
            The advertising zone's details were successfully updated.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/response-9'
              example:
                self: /zones/17006034766602
                name: Events App Banner
                description: >
                  Zone appears at above the fold on the home screen of the
                  TickeTing

                  Events App
                number: TE6199
                width": 1400
                height: 800
                advertisements: /zones/17006034766602/advertisements
        '400':
          $ref: '#/components/responses/400'
        '409':
          $ref: '#/components/responses/exists-6'
    delete:
      tags:
        - Ad Zone Management
      summary: Remove an ad zone
      security:
        - SessionKey:
            - administrator
      description: |
        Remove an advertising zone from the system. A zone can only be deleted
        if it has no advertisements assigned to it.
      operationId: delete_zone
      responses:
        '200':
          description: |
            The advertising zone was successfully removed from the system.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/message'
              example:
                message: 'Zone: /zones/17011841347712, has been deleted.'
        '409':
          $ref: '#/components/responses/in_use'
  /zones/{zone}/advertisements:
    parameters:
      - $ref: '#/components/parameters/id-6'
    get:
      tags:
        - Ad Zone Management
      parameters:
        - $ref: '#/components/parameters/records'
        - $ref: '#/components/parameters/page'
      summary: List assigned advertisements
      security:
        - SessionKey:
            - public
            - customer
            - host
            - support
            - administrator
      description: >
        Retrieve the list of approved, currently active advertisements assigned
        to this zone.
      operationId: list_zone_advertisements
      responses:
        '200':
          description: >-
            The list of advertisements assigned to the zone was successfully
            retrieved.
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/results'
                  - $ref: '#/components/schemas/list-6'
              example:
                page: 1
                records: 25
                entries:
                  - self: /advertisements/17006103852315
                    name: Justice is served on 24.06.07
                    description: Launch ad for the Dawn of the Seven World Premier
                    status: Draft
                    artwork: http://localhost/media/17006103852315-artwork.jpeg
                    zones:
                      - self: /zones/17006034766602
                        name: Events App Banner
                        description: >
                          Zone appears at above the fold on the home screen of
                          the TickeTing

                          Events App
                        number: TE6199
                        width": 1400
                        height: 800
                        advertisements: /zones/17006034766602/advertisements
                    schedule:
                      - start: 2023-11-21T00:00
                        end": 2025-11-31T00:00
                    event:
                      self: /events/16993717817996
                      title: Dawn of the Seven Premier
                      description: |
                        World Premier of the long anticipated movie event of the
                        year: Dawn of the Seven
                      status: Listed
                      type: Standard
                      public: true
                      category: Live Events
                      subcategory: Premier
                      start: 2024-06-07T20:00
                      end: 2024-06-07T23:00
                      venue:
                        self: /venues/16878146473429
                        name: Vought Tower
                        longitude: -73.99214
                        latitude: 40.75518
                        address: 7th Ave, Manhattan, New York
                        map: >-
                          https://maps.googleapis.com/maps/api/staticmap?center=40.75518,-73.99214&zoom=15&size=600x300&maptype=roadmap&markers=color:red%7C40.75518,-73.99214&key=AIzaSyCyLy8bOLUTLbQLVQFwf1eVO2UIVO8_4kQ&signature=IowClV__Bha7DFVe7TIG-osgyDE=
                      disclaimer: ''
                      tags:
                        - homelander
                        - queen maeve
                        - the deep
                        - A-Train
                      banner: http://localhost/media/16993717817996-banner.jpeg
                      thumbnail: http://localhost/media/16993717817996-thumbnail.jpeg
                      popularity: 40
                      sections:
                        - self: /events/16993717817996/sections/16993964783416
                          name: VIP Admission
                          description: Includes meet and greet with the film's stars.
                          active: true
                          basePrice: 50
                          salesStart: 2024-01-01T00:00
                          salesEnd: 2024-06-01T00:00
                          capacity: 100
                          sold: 23
                          remaining: 74
                          reserved: 3
        '404':
          $ref: '#/components/responses/not_found-2'
  /advertisements:
    get:
      tags:
        - Advertising an Event
      parameters:
        - $ref: '#/components/parameters/records'
        - $ref: '#/components/parameters/page'
        - $ref: '#/components/parameters/host'
        - $ref: '#/components/parameters/event-2'
        - $ref: '#/components/parameters/status-5'
        - $ref: '#/components/parameters/active-2'
      summary: List advertisements
      security:
        - SessionKey:
            - administrator
      description: |
        Retrieve a list of advertisements matching the given criteria.
      operationId: list_advertisements
      responses:
        '200':
          description: The list of matching advertisements was successfully retrieved.
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/results'
                  - $ref: '#/components/schemas/list-6'
              example:
                page: 1
                records: 25
                entries:
                  - self: /advertisements/17006103852315
                    name: Justice is served on 24.06.07
                    description: Launch ad for the Dawn of the Seven World Premier
                    status: Draft
                    artwork: http://localhost/media/17006103852315-artwork.jpeg
                    zones:
                      - self: /zones/17006034766602
                        name: Events App Banner
                        description: >
                          Zone appears at above the fold on the home screen of
                          the TickeTing

                          Events App
                        number: TE6199
                        width": 1400
                        height: 800
                        advertisements: /zones/17006034766602/advertisements
                    schedule:
                      - start: 2023-11-21T00:00
                        end": 2025-11-31T00:00
                    event:
                      self: /events/16993717817996
                      title: Dawn of the Seven Premier
                      description: |
                        World Premier of the long anticipated movie event of the
                        year: Dawn of the Seven
                      status: Listed
                      type: Standard
                      public: true
                      category: Live Events
                      subcategory: Premier
                      start: 2024-06-07T20:00
                      end: 2024-06-07T23:00
                      venue:
                        self: /venues/16878146473429
                        name: Vought Tower
                        longitude: -73.99214
                        latitude: 40.75518
                        address: 7th Ave, Manhattan, New York
                        map: >-
                          https://maps.googleapis.com/maps/api/staticmap?center=40.75518,-73.99214&zoom=15&size=600x300&maptype=roadmap&markers=color:red%7C40.75518,-73.99214&key=AIzaSyCyLy8bOLUTLbQLVQFwf1eVO2UIVO8_4kQ&signature=IowClV__Bha7DFVe7TIG-osgyDE=
                      disclaimer: ''
                      tags:
                        - homelander
                        - queen maeve
                        - the deep
                        - A-Train
                      banner: http://localhost/media/16993717817996-banner.jpeg
                      thumbnail: http://localhost/media/16993717817996-thumbnail.jpeg
                      popularity: 40
                      sections:
                        - self: /events/16993717817996/sections/16993964783416
                          name: VIP Admission
                          description: Includes meet and greet with the film's stars.
                          active: true
                          basePrice: 50
                          salesStart: 2024-01-01T00:00
                          salesEnd: 2024-06-01T00:00
                          capacity: 100
                          sold: 23
                          remaining: 74
                          reserved: 3
        '404':
          $ref: '#/components/responses/not_found-2'
    post:
      tags:
        - Advertising an Event
      summary: Create an advertisement
      security:
        - SessionKey:
            - host
            - administrator
      description: >
        Create a new advertisement in the TickeTing system. Once submitted for
        review

        and approved by an administrator, the ad will be displayed in its
        assigned zones

        according to the given schedule.
      operationId: create_advertisement
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/request-9'
            example:
              name: Justice is served on 24.06.07
              description: Launch ad for the Dawn of the Seven World Premier
              artwork: >-
                data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAzoAAASRCAYAAAD/zekXAA...
              zones:
                - TE6199
                - DA5842
              schedule:
                - start: 2023-11-21 00:00
                  end: 2025-11-31 00:00
              event: '16993717817996'
      responses:
        '201':
          description: The new advertisement was successfully created.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/response-10'
              example:
                self: /advertisements/17006103852315
                name: Justice is served on 24.06.07
                description: Launch ad for the Dawn of the Seven World Premier
                status: Draft
                artwork: http://localhost/media/17006103852315-artwork.jpeg
                zones:
                  - self: /zones/17006034766602
                    name: Events App Banner
                    description: >
                      Zone appears at above the fold on the home screen of the
                      TickeTing

                      Events App
                    number: TE6199
                    width": 1400
                    height: 800
                    advertisements: /zones/17006034766602/advertisements
                schedule:
                  - start: 2023-11-21T00:00
                    end": 2025-11-31T00:00
                event:
                  self: /events/16993717817996
                  title: Dawn of the Seven Premier
                  description: |
                    World Premier of the long anticipated movie event of the
                    year: Dawn of the Seven
                  status: Listed
                  type: Standard
                  public: true
                  category: Live Events
                  subcategory: Premier
                  start: 2024-06-07T20:00
                  end: 2024-06-07T23:00
                  venue:
                    self: /venues/16878146473429
                    name: Vought Tower
                    longitude: -73.99214
                    latitude: 40.75518
                    address: 7th Ave, Manhattan, New York
                    map: >-
                      https://maps.googleapis.com/maps/api/staticmap?center=40.75518,-73.99214&zoom=15&size=600x300&maptype=roadmap&markers=color:red%7C40.75518,-73.99214&key=AIzaSyCyLy8bOLUTLbQLVQFwf1eVO2UIVO8_4kQ&signature=IowClV__Bha7DFVe7TIG-osgyDE=
                  disclaimer: ''
                  tags:
                    - homelander
                    - queen maeve
                    - the deep
                    - A-Train
                  banner: http://localhost/media/16993717817996-banner.jpeg
                  thumbnail: http://localhost/media/16993717817996-thumbnail.jpeg
                  popularity: 40
                  sections:
                    - self: /events/16993717817996/sections/16993964783416
                      name: VIP Admission
                      description: Includes meet and greet with the film's stars.
                      active: true
                      basePrice: 50
                      salesStart: 2024-01-01T00:00
                      salesEnd: 2024-06-01T00:00
                      capacity: 100
                      sold: 23
                      remaining: 74
                      reserved: 3
        '400':
          $ref: '#/components/responses/bad_request'
        '403':
          $ref: '#/components/responses/unauthorised-5'
        '404':
          $ref: '#/components/responses/missing_event'
        '409':
          $ref: '#/components/responses/exists-7'
  /advertisements/{advertisement}:
    parameters:
      - $ref: '#/components/parameters/id-7'
    get:
      tags:
        - Advertising an Event
      summary: Retrieve ad details
      security:
        - SessionKey:
            - public
            - customer
            - host
            - support
            - administrator
      description: |
        Retrieve the details of the requested advertisement
      operationId: retrieve_advertisement
      responses:
        '200':
          description: Details of the requested advertisement were successfully retrieved.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/response-10'
              example:
                self: /advertisements/17006103852315
                name: Justice is served on 24.06.07
                description: Launch ad for the Dawn of the Seven World Premier
                status: Draft
                artwork: http://localhost/media/17006103852315-artwork.jpeg
                zones:
                  - self: /zones/17006034766602
                    name: Events App Banner
                    description: >
                      Zone appears at above the fold on the home screen of the
                      TickeTing

                      Events App
                    number: TE6199
                    width": 1400
                    height: 800
                    advertisements: /zones/17006034766602/advertisements
                schedule:
                  - start: 2023-11-21T00:00
                    end": 2025-11-31T00:00
                event:
                  self: /events/16993717817996
                  title: Dawn of the Seven Premier
                  description: |
                    World Premier of the long anticipated movie event of the
                    year: Dawn of the Seven
                  status: Listed
                  type: Standard
                  public: true
                  category: Live Events
                  subcategory: Premier
                  start: 2024-06-07T20:00
                  end: 2024-06-07T23:00
                  venue:
                    self: /venues/16878146473429
                    name: Vought Tower
                    longitude: -73.99214
                    latitude: 40.75518
                    address: 7th Ave, Manhattan, New York
                    map: >-
                      https://maps.googleapis.com/maps/api/staticmap?center=40.75518,-73.99214&zoom=15&size=600x300&maptype=roadmap&markers=color:red%7C40.75518,-73.99214&key=AIzaSyCyLy8bOLUTLbQLVQFwf1eVO2UIVO8_4kQ&signature=IowClV__Bha7DFVe7TIG-osgyDE=
                  disclaimer: ''
                  tags:
                    - homelander
                    - queen maeve
                    - the deep
                    - A-Train
                  banner: http://localhost/media/16993717817996-banner.jpeg
                  thumbnail: http://localhost/media/16993717817996-thumbnail.jpeg
                  popularity: 40
                  sections:
                    - self: /events/16993717817996/sections/16993964783416
                      name: VIP Admission
                      description: Includes meet and greet with the film's stars.
                      active: true
                      basePrice: 50
                      salesStart: 2024-01-01T00:00
                      salesEnd: 2024-06-01T00:00
                      capacity: 100
                      sold: 23
                      remaining: 74
                      reserved: 3
        '403':
          $ref: '#/components/responses/unlisted-2'
    put:
      tags:
        - Advertising an Event
      summary: Update ad details
      security:
        - SessionKey:
            - host
            - administrator
      description: |
        Change the details of the requested advertisement
      operationId: update_advertisement
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/request-9'
            example:
              name: Justice is served on 24.06.07
              description: Launch ad for the Dawn of the Seven World Premier
              artwork: >-
                data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAzoAAASRCAYAAAD/zekXAA...
              zones:
                - TE6199
                - DA5842
              schedule:
                - start: 2023-11-21 00:00
                  end: 2025-11-31 00:00
              event: '16993717817996'
      responses:
        '200':
          description: |
            The advertisement details were successfully updated.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/response-10'
              example:
                self: /advertisements/17006103852315
                name: Justice is served on 24.06.07
                description: Launch ad for the Dawn of the Seven World Premier
                status: Draft
                artwork: http://localhost/media/17006103852315-artwork.jpeg
                zones:
                  - self: /zones/17006034766602
                    name: Events App Banner
                    description: >
                      Zone appears at above the fold on the home screen of the
                      TickeTing

                      Events App
                    number: TE6199
                    width": 1400
                    height: 800
                    advertisements: /zones/17006034766602/advertisements
                schedule:
                  - start: 2023-11-21T00:00
                    end": 2025-11-31T00:00
                event:
                  self: /events/16993717817996
                  title: Dawn of the Seven Premier
                  description: |
                    World Premier of the long anticipated movie event of the
                    year: Dawn of the Seven
                  status: Listed
                  type: Standard
                  public: true
                  category: Live Events
                  subcategory: Premier
                  start: 2024-06-07T20:00
                  end: 2024-06-07T23:00
                  venue:
                    self: /venues/16878146473429
                    name: Vought Tower
                    longitude: -73.99214
                    latitude: 40.75518
                    address: 7th Ave, Manhattan, New York
                    map: >-
                      https://maps.googleapis.com/maps/api/staticmap?center=40.75518,-73.99214&zoom=15&size=600x300&maptype=roadmap&markers=color:red%7C40.75518,-73.99214&key=AIzaSyCyLy8bOLUTLbQLVQFwf1eVO2UIVO8_4kQ&signature=IowClV__Bha7DFVe7TIG-osgyDE=
                  disclaimer: ''
                  tags:
                    - homelander
                    - queen maeve
                    - the deep
                    - A-Train
                  banner: http://localhost/media/16993717817996-banner.jpeg
                  thumbnail: http://localhost/media/16993717817996-thumbnail.jpeg
                  popularity: 40
                  sections:
                    - self: /events/16993717817996/sections/16993964783416
                      name: VIP Admission
                      description: Includes meet and greet with the film's stars.
                      active: true
                      basePrice: 50
                      salesStart: 2024-01-01T00:00
                      salesEnd: 2024-06-01T00:00
                      capacity: 100
                      sold: 23
                      remaining: 74
                      reserved: 3
        '400':
          $ref: '#/components/responses/bad_request'
        '403':
          $ref: '#/components/responses/unauthorised-5'
        '409':
          $ref: '#/components/responses/exists-7'
    delete:
      tags:
        - Advertising an Event
      summary: Remove an advertisement
      security:
        - SessionKey:
            - host
            - administrator
      description: >
        Completely remove an advertisement from the system. An advertisement
        will be

        removed whether or not its is currently active/running. Deleting an
        advertisement

        immediately stops it being displayed in its assigned zones across the
        TickeTing ecosystem.
      operationId: delete_advertisement
      responses:
        '200':
          description: |
            The advertisement was successfully removed from the system.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/message'
              example:
                message: >-
                  Advertisement: /advertisements/17013793534908, has been
                  deleted.
        '403':
          $ref: '#/components/responses/unauthorised-5'
  /advertisements/{advertisement}/submissions:
    parameters:
      - $ref: '#/components/parameters/id-7'
    post:
      tags:
        - Advertising an Event
      summary: Submit ad for review
      security:
        - SessionKey:
            - host
            - administrator
      description: >
        When an advertisement is created it is initially just a draft, visible
        only to administrators

        of the advertising event host. When an advertisement is ready to go
        live, it must first be

        submitted for review by a member of the TickeTing team. If the
        advertisement is approved,

        it will be published and made visible to users across the TickeTing
        ecosystem. If rejected,

        the advertisement will be returned to a draft status.
      operationId: submit_advertisement
      requestBody:
        content:
          application/json: {}
      responses:
        '201':
          description: The advertisement was successfully submitted for review.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/message'
              example:
                message: >-
                  Your advertisement was submitted for review. You will be
                  notified once a decision is reached.
        '403':
          $ref: '#/components/responses/unauthorised-5'
        '409':
          $ref: '#/components/responses/not_draft'
  /orders:
    get:
      tags:
        - Placing an Order
      parameters:
        - $ref: '#/components/parameters/records'
        - $ref: '#/components/parameters/page'
        - $ref: '#/components/parameters/number-2'
        - $ref: '#/components/parameters/customer'
        - $ref: '#/components/parameters/status'
        - $ref: '#/components/parameters/sort-3'
        - $ref: '#/components/parameters/order'
      summary: List orders
      security:
        - SessionKey:
            - administrator
      description: |
        Retrieve a list of orders matching the given criteria.
      operationId: list_orders
      responses:
        '200':
          description: The list of matching orders was successfully retrieved.
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/results'
                  - $ref: '#/components/schemas/list-11'
              example:
                page: 1
                records: 10
                entries:
                  - self: /orders/E8D946240203
                    number: E8D946240203
                    status: Placed
                    placed: '2024-02-03T23:22:31+00:00'
                    subtotal: 140
                    fees: 3.96
                    total: 143.96
                    items:
                      - name: 'Dawn of the Seven Premier: General Admission'
                        number: 1c568663aca938b066524a3b3464807d
                        description: >-
                          General Admission to the premier screening of the
                          movie of the year.
                        quantity: 2
                        price: 20
                      - name: 'Dawn of the Seven Premier: Backstage'
                        number: 542efc724c884510b7a40a62aea5429a
                        description: Includes meet and greet with the film's stars.
                        quantity: 2
                        price: 50
                    account:
                      self: /accounts/MO-6A39EE8D
                      number: MO-6A39EE8D
                      username: mothers.milk
                      email: marvin.milk@usmc.gov
                      role: customer
                      verified: false
                      activated: true
                      firstName: Marvin
                      lastName: Milk
                      title: Mr
                      dateOfBirth: '1974-09-14'
                      phone: +1 (268) 555 0123
                      country: Antigua and Barbuda
                      firstAddressLine: Jennings New Extension
                      secondAddressLine: ''
                      city: Jennings
                      state: Saint Mary's
                    payments: /orders/E8D946240203/payments
        '404':
          $ref: '#/components/responses/not_found-2'
    post:
      tags:
        - Placing an Order
      summary: Place a new order
      security:
        - SessionKey:
            - customer
            - host
            - support
            - administrator
      description: >
        Place a new order for one or more tickets. A single order can include
        multiple

        ticket types of a single event, or from multiple events. When a new
        order is created

        tickets are reserved for a fixed period of time until the order is
        settled, cancelled

        or times out.


        If the tickets being ordered are free (i.e. the order total is $0.00),
        the order is

        fuliflled immediately and tickets delivered to the customer's account.
      operationId: place_order
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/request-10'
            example:
              customer: MO-6A39EE8D
              items:
                /events/16993717817996/sections/16993964783416: 2
                /events/16993717817996/sections/16971671292759: 2
      responses:
        '201':
          description: The order was successfully placed.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/response-16'
              example:
                self: /orders/E8D946240203
                number: E8D946240203
                status: Placed
                placed: '2024-02-03T23:22:31+00:00'
                subtotal: 140
                fees: 3.96
                total: 143.96
                items:
                  - name: 'Dawn of the Seven Premier: General Admission'
                    number: 1c568663aca938b066524a3b3464807d
                    description: >-
                      General Admission to the premier screening of the movie of
                      the year.
                    quantity: 2
                    price: 20
                  - name: 'Dawn of the Seven Premier: Backstage'
                    number: 542efc724c884510b7a40a62aea5429a
                    description: Includes meet and greet with the film's stars.
                    quantity: 2
                    price: 50
                customer:
                  self: /accounts/MO-6A39EE8D
                  number: MO-6A39EE8D
                  username: mothers.milk
                  email: marvin.milk@usmc.gov
                  role: customer
                  verified: false
                  activated: true
                  firstName: Marvin
                  lastName: Milk
                  title: Mr
                  dateOfBirth: '1974-09-14'
                  phone: +1 (268) 555 0123
                  country: Antigua and Barbuda
                  firstAddressLine: Jennings New Extension
                  secondAddressLine: ''
                  city: Jennings
                  state: Saint Mary's
                payments: /orders/E8D946240203/payments
        '400':
          $ref: '#/components/responses/bad_request-2'
        '403':
          $ref: '#/components/responses/unauthorised-6'
  /orders/{order}:
    parameters:
      - $ref: '#/components/parameters/id-8'
    get:
      tags:
        - Placing an Order
      summary: Retrieve order details
      security:
        - SessionKey:
            - customer
            - host
            - support
            - administrator
      description: |
        Retrieve the details of the requested order
      operationId: retrieve_order
      responses:
        '200':
          description: Details of the requested order were successfully retrieved.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/response-16'
              example:
                self: /orders/E8D946240203
                number: E8D946240203
                status: Placed
                placed: '2024-02-03T23:22:31+00:00'
                subtotal: 140
                fees: 3.96
                total: 143.96
                items:
                  - name: 'Dawn of the Seven Premier: General Admission'
                    number: 1c568663aca938b066524a3b3464807d
                    description: >-
                      General Admission to the premier screening of the movie of
                      the year.
                    quantity: 2
                    price: 20
                  - name: 'Dawn of the Seven Premier: Backstage'
                    number: 542efc724c884510b7a40a62aea5429a
                    description: Includes meet and greet with the film's stars.
                    quantity: 2
                    price: 50
                customer:
                  self: /accounts/MO-6A39EE8D
                  number: MO-6A39EE8D
                  username: mothers.milk
                  email: marvin.milk@usmc.gov
                  role: customer
                  verified: false
                  activated: true
                  firstName: Marvin
                  lastName: Milk
                  title: Mr
                  dateOfBirth: '1974-09-14'
                  phone: +1 (268) 555 0123
                  country: Antigua and Barbuda
                  firstAddressLine: Jennings New Extension
                  secondAddressLine: ''
                  city: Jennings
                  state: Saint Mary's
                payments: /orders/E8D946240203/payments
        '403':
          $ref: '#/components/responses/unauthorised-6'
    delete:
      tags:
        - Placing an Order
      summary: Cancel an order
      security:
        - SessionKey:
            - customer
            - host
            - support
            - administrator
      description: >
        Cancel an existing order. Any reserved tickets are immediately released.
        An order

        can only be cancelled if it has not already been settled or timed out.
      operationId: cancel_order
      responses:
        '200':
          description: |
            The order was successfully cancelled.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/message'
              example:
                message: 'Order: /orders/E8D946240203, has been cancelled successfully.'
        '403':
          $ref: '#/components/responses/unauthorised-6'
        '409':
          $ref: '#/components/responses/uncancellable'
  /orders/{order}/payments:
    parameters:
      - $ref: '#/components/parameters/id-8'
    post:
      tags:
        - Order Settlement
      summary: Attempt payment
      security:
        - SessionKey:
            - customer
            - host
            - support
            - administrator
      description: >
        Attempt to settle a pending order by credit card payment. Payment can
        only be attempted

        once an order has been placed, but before it has timed out. Payment can
        no longer be

        attempted once an order has been fulfilled, refunded or cancelled.


        If the tickets being ordered are free (i.e. the order total is $0.00),
        the order does

        not require settlement, and will be fulfilled immediately without
        payment.
      operationId: settle_order
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/request-11'
            example:
              number: '5555555555555555'
              cvv: 123
              expiryDate: 12/30
              name: Marvin M. Milk
              email: marvin.milk@usmc.gov
              phone: +1 (268) 555 0123
              address1: Hermitage Rd.
              address2: Jennings New Extension
              city: Jennings
              district: Saint Mary's
              country: Antigua and Barbuda
      responses:
        '201':
          description: Payment was accepted in settlement of the order.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/response-17'
              example:
                date: '2024-02-19T17:30:08'
                amount: 101.99
                status: Authorised
        '400':
          $ref: '#/components/responses/bad_request-3'
        '403':
          $ref: '#/components/responses/unauthorised-7'
        '409':
          $ref: '#/components/responses/invalid_state'
  /orders/{order}/refunds:
    parameters:
      - $ref: '#/components/parameters/id-8'
    post:
      tags:
        - Order Settlement
      summary: Refund order
      security:
        - SessionKey:
            - administrator
      description: >
        Attempt to refund an order, reversing the attached credit card payment.
        Only fulfilled orders can be 

        refunded and each order can only be sucessfully refunded once. Orders
        for free tickets or ones that

        have not been fulfilled, cannot be refunded.
      operationId: refund_order
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/request-12'
            example:
              reason: Host requested a refund of this order.
      responses:
        '201':
          description: The order was successfully refunded and the issued tickets revoked.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/response-18'
              example:
                date: '2025-10-08T17:34:08'
                amount: 101.99
                status: Authorised
        '400':
          $ref: '#/components/responses/bad_request-4'
        '409':
          $ref: '#/components/responses/invalid_state-2'
  /transfers:
    post:
      tags:
        - Ticket Transfers
      summary: Initiating a transfer
      security:
        - SessionKey:
            - customer
            - host
            - support
            - administrator
      description: >
        Initiate a transfer of one or more tickets from the requesting user

        to another TickeTing user. Initiating a transfer, does not automatically

        move tickets between accounts, but instead sends a transfer request.
        This request

        must first be claimed at which time the tickets themselves are
        transferred.

        If the transfer request is cancelled or rejected, no tickets change
        hands.


        One or more tickets, for one or multiple events, can be sent in a single
        transfer. 

        Tickets that are part of an open transfer (not yet claimed, canclled or
        rejected)

        enter into a pending state in which they cannot be redeemed, only
        becoming usable

        again once a decision is taken on the transfer.
      operationId: initiate_transfer
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/request-13'
            example:
              sender: MO-6A39EE8D
              recipient: BI-5A939D5D
              tickets:
                /events/16993717817996/sections/16993964783416: 2
      responses:
        '201':
          description: The transfer was successfully initiated.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/response-8'
              example:
                self: /transfers/17096551195817
                status: Pending
                tickets:
                  - name: 'Dawn of the Seven Premier: Backstage'
                    description: Includes meet and greet with the film's stars.
                    quantity: 2
                initiated: '2025-11-13T12:16:57+00:00'
                sender:
                  self: /accounts/MO-6A39EE8D
                  number: MO-6A39EE8D
                  username: mothers.milk
                  email: marvin.milk@usmc.gov
                  firstName: Marvin
                  lastName: Milk
                recipient:
                  self: /accounts/BI-5A939D5D
                  number: BI-5A939D5D
                  username: the_butcher
                  email: elcapitaine@yahoo.com
                  firstName: Billy
                  lastName: Butcher
                claims: /transfers/17096551195817/claims
        '400':
          $ref: '#/components/responses/bad_request-5'
        '403':
          $ref: '#/components/responses/unauthorised-8'
        '404':
          $ref: '#/components/responses/unknown_recipient'
        '409':
          $ref: '#/components/responses/send_to_self'
  /transfers/{transfer}:
    parameters:
      - $ref: '#/components/parameters/id-9'
    get:
      tags:
        - Ticket Transfers
      summary: Retrieve transfer details
      security:
        - SessionKey:
            - customer
            - host
            - support
            - administrator
      description: |
        Retrieve the details of the requested transfer
      operationId: retrieve_transfer
      responses:
        '200':
          description: Details of the requested transfer were successfully retrieved.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/response-8'
              example:
                self: /transfers/17096551195817
                status: Pending
                tickets:
                  - name: 'Dawn of the Seven Premier: Backstage'
                    description: Includes meet and greet with the film's stars.
                    quantity: 2
                initiated: '2025-11-13T12:16:57+00:00'
                sender:
                  self: /accounts/MO-6A39EE8D
                  number: MO-6A39EE8D
                  username: mothers.milk
                  email: marvin.milk@usmc.gov
                  firstName: Marvin
                  lastName: Milk
                recipient:
                  self: /accounts/BI-5A939D5D
                  number: BI-5A939D5D
                  username: the_butcher
                  email: elcapitaine@yahoo.com
                  firstName: Billy
                  lastName: Butcher
                claims: /transfers/17096551195817/claims
        '403':
          $ref: '#/components/responses/unauthorised-8'
    delete:
      tags:
        - Ticket Transfers
      summary: Cancel a transfer
      security:
        - SessionKey:
            - customer
            - host
            - support
            - administrator
      description: >
        Cancel a pending transfer. A transfer can be cancelled by either its
        sender or

        its recipient before it is claimed. Any pending tickets attached to the
        transfer

        are immediately released. A transfer can only be cancelled if it has not
        yet

        been claimed, or previously cancelled.
      operationId: cancel_transfer
      responses:
        '200':
          description: |
            The transfer was successfully cancelled.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/message'
              example:
                message: >-
                  Transfer: /transfers/17096551195817, has been cancelled
                  successfully.
        '403':
          $ref: '#/components/responses/unauthorised-8'
        '409':
          $ref: '#/components/responses/uncancellable-2'
  /transfers/{transfer}/claims:
    parameters:
      - $ref: '#/components/parameters/id-9'
    post:
      tags:
        - Ticket Transfers
      summary: Claim a transfer
      security:
        - SessionKey:
            - customer
            - host
            - support
            - administrator
      description: >
        Claim a pending transfer. Once claimed, any tickets attached to the
        transfer are moved

        from the sender's account to the recipient's and returned to a usable
        state. Only a

        transfer's recipient can claim a transfer, and a transfer can no longer
        be claimed once

        it has been cancelled or claimed previously.
      operationId: claim_transfer
      responses:
        '201':
          description: >-
            The transferred tickets were successfully delivered to the
            recipient's account.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/response-19'
              example:
                date: '2024-03-05 21:56:09'
                claimant: Billy Butcher (the_butcher)
                success: true
        '403':
          $ref: '#/components/responses/unauthorised-9'
        '409':
          $ref: '#/components/responses/invalid_state-3'
  /regions:
    get:
      tags:
        - Region Management
      parameters:
        - $ref: '#/components/parameters/records'
        - $ref: '#/components/parameters/page'
        - $ref: '#/components/parameters/active-3'
      summary: List supported regions
      security:
        - SessionKey:
            - customer
            - host
            - support
            - administrator
      description: |
        Retrieve a list of supported regions where events can be staged.
      operationId: list_regions
      responses:
        '200':
          description: The list of supported regions was successfully retrieved.
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/results'
                  - $ref: '#/components/schemas/list-12'
              example:
                page: 1
                records: 25
                entries:
                  - self: /regions/19290238432215
                    name: Antigua and Barbuda
                    country: Antigua and Barbuda
                    district: ''
                    city: ''
                    icon: >-
                      https://restfulcountries.com/assets/images/flags/Antigua-And-Barbuda.png
                  - self: /regions/159428147942752
                    name: Manhattan
                    country: United States of America
                    district: New York
                    city: Manhattan
                    icon: >-
                      https://restfulcountries.com/assets/images/flags/United-States-of-America.png
        '404':
          $ref: '#/components/responses/not_found-2'
    post:
      tags:
        - Region Management
      summary: Add a supported region
      security:
        - SessionKey:
            - administrator
      description: >
        Add a supported region to the TickeTing system. Any venue created needs
        to reference the region

        in which it is located. Events staged at this venue will be grouped
        within the related region,

        and are displayed to users based on their regional preference.
      operationId: add_region
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/request-14'
            example:
              name: Antigua and Barbuda
              country: Antigua and Barbuda
              district: ''
              city: ''
      responses:
        '201':
          description: The supported region was successfully added.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/response-20'
              example:
                self: /regions/19290238432215
                name: Antigua and Barbuda
                country: Antigua and Barbuda
                district: ''
                city: ''
                icon: >-
                  https://restfulcountries.com/assets/images/flags/Antigua-And-Barbuda.png
        '400':
          $ref: '#/components/responses/400'
        '409':
          $ref: '#/components/responses/exists-8'
  /regions/{region}:
    parameters:
      - $ref: '#/components/parameters/id-10'
    get:
      tags:
        - Region Management
      summary: Retrieve region details
      security:
        - SessionKey:
            - customer
            - host
            - support
            - administrator
      description: |
        Retrieve the details of the specified region.
      operationId: retrieve_region
      responses:
        '200':
          description: Details of the requested region were successfully retrieved.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/response-20'
              example:
                self: /regions/19290238432215
                name: Antigua and Barbuda
                country: Antigua and Barbuda
                district: ''
                city: ''
                icon: >-
                  https://restfulcountries.com/assets/images/flags/Antigua-And-Barbuda.png
        '404':
          $ref: '#/components/responses/404'
    put:
      tags:
        - Region Management
      summary: Modify region details
      security:
        - SessionKey:
            - administrator
      description: |
        Update the details of the specified region
      operationId: update_region
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/request-14'
            example:
              name: Antigua and Barbuda
              country: Antigua and Barbuda
              district: ''
              city: ''
      responses:
        '200':
          description: |
            The region's details were successfully updated.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/response-20'
              example:
                self: /regions/19290238432215
                name: Antigua and Barbuda
                country: Antigua and Barbuda
                district: ''
                city: ''
                icon: >-
                  https://restfulcountries.com/assets/images/flags/Antigua-And-Barbuda.png
        '400':
          $ref: '#/components/responses/400'
        '409':
          $ref: '#/components/responses/exists-8'
    delete:
      tags:
        - Region Management
      summary: Remove a supported region
      security:
        - SessionKey:
            - administrator
      description: >
        Completely remove a supported region from the system. A region can only
        be deleted

        if it has no venues associated to it.
      operationId: remove_region
      responses:
        '200':
          description: |
            The suported region was successfully removed from the system.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/message'
              example:
                message: 'Region: /regions/159428147942752, has been deleted.'
        '409':
          $ref: '#/components/responses/in_use-2'
  /venues:
    get:
      tags:
        - Venue Management
      parameters:
        - $ref: '#/components/parameters/records'
        - $ref: '#/components/parameters/page'
        - $ref: '#/components/parameters/region-2'
        - $ref: '#/components/parameters/name-2'
      summary: List event venues
      security:
        - SessionKey:
            - customer
            - host
            - support
            - administrator
      description: |
        Retrieve a list of approved venues at which events can be hosted.
      operationId: list_venues
      responses:
        '200':
          description: The list of event venues was successfully retrieved.
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/results'
                  - $ref: '#/components/schemas/list-13'
              example:
                page: 1
                records: 25
                entries:
                  - self: /venues/16878146473429
                    name: Vought Tower
                    region: /regions/19290238432215
                    longitude: -73.99214
                    latitude: 40.75518
                    address: 7th Ave, Manhattan, New York
                    map: >-
                      https://maps.googleapis.com/maps/api/staticmap?center=40.75518,-73.99214&zoom=15&size=600x300&maptype=roadmap&markers=color:red%7C40.75518,-73.99214&key=AIzaSyCyLy8bOLUTLbQLVQFwf1eVO2UIVO8_4kQ&signature=IowClV__Bha7DFVe7TIG-osgyDE=
        '404':
          $ref: '#/components/responses/not_found-2'
    post:
      tags:
        - Venue Management
      summary: Create an event venue
      security:
        - SessionKey:
            - administrator
      description: >
        Create an approved venue that can stage events. Once created, the venue
        can be

        selected as hosting new events added to the system.
      operationId: create_venue
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/request-15'
            example:
              name: Vought Tower
              region: '19290238432215'
              longitude: -73.99214
              latitude: 40.75518
              address: 7th Ave, Manhattan, New York
      responses:
        '201':
          description: The new venue was successfully created.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/response-6'
              example:
                self: /venues/16878146473429
                name: Vought Tower
                region: /regions/19290238432215
                longitude: -73.99214
                latitude: 40.75518
                address: 7th Ave, Manhattan, New York
                map: >-
                  https://maps.googleapis.com/maps/api/staticmap?center=40.75518,-73.99214&zoom=15&size=600x300&maptype=roadmap&markers=color:red%7C40.75518,-73.99214&key=AIzaSyCyLy8bOLUTLbQLVQFwf1eVO2UIVO8_4kQ&signature=IowClV__Bha7DFVe7TIG-osgyDE=
        '400':
          $ref: '#/components/responses/400'
        '409':
          $ref: '#/components/responses/exists-9'
  /venues/{venue}:
    parameters:
      - $ref: '#/components/parameters/id-11'
    get:
      tags:
        - Venue Management
      summary: Retrieve event venue details
      security:
        - SessionKey:
            - customer
            - host
            - support
            - administrator
      description: |
        Retrieve the details of the specified event venue.
      operationId: retrieve_venue
      responses:
        '200':
          description: Details of the requested event venue were successfully retrieved.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/response-6'
              example:
                self: /venues/16878146473429
                name: Vought Tower
                region: /regions/19290238432215
                longitude: -73.99214
                latitude: 40.75518
                address: 7th Ave, Manhattan, New York
                map: >-
                  https://maps.googleapis.com/maps/api/staticmap?center=40.75518,-73.99214&zoom=15&size=600x300&maptype=roadmap&markers=color:red%7C40.75518,-73.99214&key=AIzaSyCyLy8bOLUTLbQLVQFwf1eVO2UIVO8_4kQ&signature=IowClV__Bha7DFVe7TIG-osgyDE=
        '404':
          $ref: '#/components/responses/404'
    put:
      tags:
        - Venue Management
      summary: Modify event venue details
      security:
        - SessionKey:
            - administrator
      description: |
        Update the details of the specified event venue
      operationId: update_venue
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/request-15'
            example:
              name: Vought Tower
              region: '19290238432215'
              longitude: -73.99214
              latitude: 40.75518
              address: 7th Ave, Manhattan, New York
      responses:
        '200':
          description: |
            The event venue's details were successfully updated.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/response-6'
              example:
                self: /venues/16878146473429
                name: Vought Tower
                region: /regions/19290238432215
                longitude: -73.99214
                latitude: 40.75518
                address: 7th Ave, Manhattan, New York
                map: >-
                  https://maps.googleapis.com/maps/api/staticmap?center=40.75518,-73.99214&zoom=15&size=600x300&maptype=roadmap&markers=color:red%7C40.75518,-73.99214&key=AIzaSyCyLy8bOLUTLbQLVQFwf1eVO2UIVO8_4kQ&signature=IowClV__Bha7DFVe7TIG-osgyDE=
        '400':
          $ref: '#/components/responses/400'
        '409':
          $ref: '#/components/responses/exists-9'
    delete:
      tags:
        - Venue Management
      summary: Remove an event venue
      security:
        - SessionKey:
            - administrator
      description: >
        Completely remove an event venue from the system. A venue can only be
        deleted

        if no events are or have been staged there.
      operationId: delete_venue
      responses:
        '200':
          description: |
            The event venue was successfully removed from the system.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/message'
              example:
                message: /venues/16989249829149, has been deleted.
        '409':
          $ref: '#/components/responses/in_use-3'
  /categories:
    get:
      tags:
        - Category Management
      parameters:
        - $ref: '#/components/parameters/records'
        - $ref: '#/components/parameters/page'
      summary: List event categories
      security:
        - SessionKey:
            - customer
            - host
            - support
            - administrator
      description: >
        Retrieve a list of event categories under which events can be
        classified.
      operationId: list_categories
      responses:
        '200':
          description: The list of event categories was successfully retrieved.
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/results'
                  - $ref: '#/components/schemas/list-14'
              example:
                page: 1
                records: 25
                entries:
                  - self: /categories/16878141745207
                    name: Party
                    subcategories:
                      - Boat Cruise
                      - House Party
                      - Wedding
                  - self: /categories/16972381860264
                    name: Sports
                    subcategories:
                      - Cricket
                      - Basketball
        '404':
          $ref: '#/components/responses/not_found-2'
    post:
      tags:
        - Category Management
      summary: Create an event category
      security:
        - SessionKey:
            - administrator
      description: >
        Create an event category (and its associated subcategories). Once
        created, the category 

        (and one of its subcategories) can be used to classify events.
      operationId: create_category
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/request-16'
            example:
              name: Party
              subcategories:
                - Boat Cruise
                - House Party
                - Wedding
      responses:
        '201':
          description: The new category was successfully created.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/response-5'
              example:
                self: /categories/16878141745207
                name: Party
                subcategories:
                  - Boat Cruise
                  - House Party
                  - Wedding
        '400':
          $ref: '#/components/responses/400'
        '409':
          $ref: '#/components/responses/exists-10'
  /categories/{category}:
    parameters:
      - $ref: '#/components/parameters/id-12'
    get:
      tags:
        - Category Management
      summary: Retrieve category details
      security:
        - SessionKey:
            - customer
            - host
            - support
            - administrator
      description: |
        Retrieve the details of the specified event category.
      operationId: retrieve_category
      responses:
        '200':
          description: Details of the requested event category were successfully retrieved.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/response-5'
              example:
                self: /categories/16878141745207
                name: Party
                subcategories:
                  - Boat Cruise
                  - House Party
                  - Wedding
        '404':
          $ref: '#/components/responses/404'
    put:
      tags:
        - Category Management
      summary: Modify category details
      security:
        - SessionKey:
            - administrator
      description: |
        Update the details of the specified event category
      operationId: update_category
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/request-16'
            example:
              name: Party
              subcategories:
                - Boat Cruise
                - House Party
                - Wedding
      responses:
        '200':
          description: |
            The event category's details were successfully updated.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/response-5'
              example:
                self: /categories/16878141745207
                name: Party
                subcategories:
                  - Boat Cruise
                  - House Party
                  - Wedding
        '400':
          $ref: '#/components/responses/400'
        '409':
          $ref: '#/components/responses/exists-10'
    delete:
      tags:
        - Category Management
      summary: Remove a category
      security:
        - SessionKey:
            - administrator
      description: >
        Completely remove an event category from the system. A category can only
        be deleted

        if it is not associated with any events.
      operationId: delete_category
      responses:
        '200':
          description: |
            The event category was successfully removed from the system.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/message'
              example:
                message: 'Category: /categories/16972381860264, has been deleted.'
        '409':
          $ref: '#/components/responses/in_use-4'
  /submissions:
    get:
      tags:
        - Reviewing Content
      parameters:
        - $ref: '#/components/parameters/records'
        - $ref: '#/components/parameters/page'
        - $ref: '#/components/parameters/type'
      summary: List submissions
      security:
        - SessionKey:
            - administrator
      description: >
        Retrieve a list of content submitted by hosts for review, optionally
        filtered by type.
      operationId: list_submissions
      responses:
        '200':
          description: The list of content submissions was successfully retrieved.
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/results'
                  - $ref: '#/components/schemas/list-15'
              example:
                page: 1
                records: 10
                entries:
                  self: /submissions/L2FkdmVydGlzZW1lbnRzLzE3MDEyMTM0MDI0MTc5
                  type: event
                  content:
                    self: /events/16993717817996
                    title: Dawn of the Seven Premier
                    description: |
                      World Premier of the long anticipated movie event of the
                      year: Dawn of the Seven
                    status: Listed
                    type: Standard
                    public: true
                    category: Live Events
                    subcategory: Premier
                    start: 2024-06-07T20:00
                    end: 2024-06-07T23:00
                    venue:
                      self: /venues/16878146473429
                      name: Vought Tower
                      longitude: -73.99214
                      latitude: 40.75518
                      address: 7th Ave, Manhattan, New York
                      map: >-
                        https://maps.googleapis.com/maps/api/staticmap?center=40.75518,-73.99214&zoom=15&size=600x300&maptype=roadmap&markers=color:red%7C40.75518,-73.99214&key=AIzaSyCyLy8bOLUTLbQLVQFwf1eVO2UIVO8_4kQ&signature=IowClV__Bha7DFVe7TIG-osgyDE=
                    disclaimer: ''
                    tags:
                      - homelander
                      - queen maeve
                      - the deep
                      - A-Train
                    banner: http://localhost/media/16993717817996-banner.jpeg
                    thumbnail: http://localhost/media/16993717817996-thumbnail.jpeg
                    popularity: 40
                    sections:
                      - self: /events/16993717817996/sections/16993964783416
                        name: VIP Admission
                        description: Includes meet and greet with the film's stars.
                        active: true
                        basePrice: 50
                        salesStart: 2024-01-01T00:00
                        salesEnd: 2024-06-01T00:00
                        capacity: 100
                        sold: 23
                        remaining: 74
                        reserved: 3
        '404':
          $ref: '#/components/responses/not_found-2'
  /submissions/{submission}:
    parameters:
      - $ref: '#/components/parameters/id-13'
    get:
      tags:
        - Reviewing Content
      summary: Retrieve submission details
      security:
        - SessionKey:
            - administrator
      description: |
        Retrieve the details of the specified content submission
      operationId: retrieve_submission
      responses:
        '200':
          description: >-
            Details of the requested content submission were successfully
            retrieved.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/response-21'
              example:
                self: /submissions/L2V2ZW50cy8xNjk5MzcxNzgxNzk5Ng==
                type: advertisement
                content:
                  self: /advertisements/17006103852315
                  name: Justice is served on 24.06.07
                  description: Launch ad for the Dawn of the Seven World Premier
                  status: Draft
                  artwork: http://localhost/media/17006103852315-artwork.jpeg
                  zones:
                    - self: /zones/17006034766602
                      name: Events App Banner
                      description: >
                        Zone appears at above the fold on the home screen of the
                        TickeTing

                        Events App
                      number: TE6199
                      width": 1400
                      height: 800
                      advertisements: /zones/17006034766602/advertisements
                  schedule:
                    - start: 2023-11-21T00:00
                      end": 2025-11-31T00:00
                  event:
                    self: /events/16993717817996
                    title: Dawn of the Seven Premier
                    description: |
                      World Premier of the long anticipated movie event of the
                      year: Dawn of the Seven
                    status: Listed
                    type: Standard
                    public: true
                    category: Live Events
                    subcategory: Premier
                    start: 2024-06-07T20:00
                    end: 2024-06-07T23:00
                    venue:
                      self: /venues/16878146473429
                      name: Vought Tower
                      longitude: -73.99214
                      latitude: 40.75518
                      address: 7th Ave, Manhattan, New York
                      map: >-
                        https://maps.googleapis.com/maps/api/staticmap?center=40.75518,-73.99214&zoom=15&size=600x300&maptype=roadmap&markers=color:red%7C40.75518,-73.99214&key=AIzaSyCyLy8bOLUTLbQLVQFwf1eVO2UIVO8_4kQ&signature=IowClV__Bha7DFVe7TIG-osgyDE=
                    disclaimer: ''
                    tags:
                      - homelander
                      - queen maeve
                      - the deep
                      - A-Train
                    banner: http://localhost/media/16993717817996-banner.jpeg
                    thumbnail: http://localhost/media/16993717817996-thumbnail.jpeg
                    popularity: 40
                    sections:
                      - self: /events/16993717817996/sections/16993964783416
                        name: VIP Admission
                        description: Includes meet and greet with the film's stars.
                        active: true
                        basePrice: 50
                        salesStart: 2024-01-01T00:00
                        salesEnd: 2024-06-01T00:00
                        capacity: 100
                        sold: 23
                        remaining: 74
                        reserved: 3
        '404':
          $ref: '#/components/responses/404'
    delete:
      tags:
        - Reviewing Content
      parameters:
        - $ref: '#/components/parameters/approved'
      summary: Decide on a submission
      security:
        - SessionKey:
            - administrator
      description: >
        Decide whether to approve or reject the submitted content. If approved,
        the content will be

        made visible to the public, across all TickeTing platforms. If rejected,
        the content will revert to a draft

        and only be visible to administrators of the host who submitted it.
      operationId: decide_on_submission
      responses:
        '200':
          description: |
            The submission review decision was successfully actioned.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/message'
              example:
                message: >-
                  Submission: /submissions/L2V2ZW50cy8xNjk5MzcxNzgxNzk5Ng==, has
                  been rejected.
        '400':
          $ref: '#/components/responses/no_decision'
  /transactions:
    get:
      tags:
        - Transaction Reports
      parameters:
        - $ref: '#/components/parameters/records'
        - $ref: '#/components/parameters/page'
        - $ref: '#/components/parameters/type-2'
        - $ref: '#/components/parameters/category-2'
        - $ref: '#/components/parameters/status-6'
        - $ref: '#/components/parameters/from-2'
        - $ref: '#/components/parameters/to-2'
        - $ref: '#/components/parameters/event-3'
        - $ref: '#/components/parameters/section-5'
        - $ref: '#/components/parameters/modifier-2'
        - $ref: '#/components/parameters/group'
      summary: Generate transaction report
      security:
        - SessionKey:
            - administrator
      description: |
        Retrieve a list of transactions matching the given criteria.
      operationId: transaction_report
      responses:
        '200':
          description: The list of matching transactions was successfully retrieved.
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/results'
                  - $ref: '#/components/schemas/list-16'
              example:
                page: 2
                records: 2
                entries:
                  - description": '2x Dawn of the Seven Premier: VIP Admission'
                    type": Sale
                    category": Ticketing
                    status": Approved
                    amount": 50
                    quantity": 2
                    event: Dawn of the Seven Premier
                    section: VIP Admission
                    modifier": Supe Special
                    created": '2024-01-25T23:47:42+00:00'
                  - description": Push Notification Ad
                    type": Charge
                    category": Advertising
                    status": Approved
                    amount": 149.99
                    quantity": 1
                    event: Dawn of the Seven Premier
                    section: ''
                    modifier": ''
                    created": '2024-02-12T01:23:28+00:00'
        '400':
          $ref: '#/components/responses/bad_query'
        '404':
          $ref: '#/components/responses/not_found-2'
  /countries:
    get:
      tags:
        - Default Values
      summary: Retrieve a list of countries
      security:
        - SessionKey:
            - public
            - customer
            - host
            - support
            - administrator
      description: |
        Retrieve a list of country names to be used in association with
        user accounts, events, hosts, etc.
      operationId: retrieve_countries
      responses:
        '200':
          description: The list of country names was successfully retrieved.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/countries'
              example:
                self: /countries
                countries:
                  - Afghanistan
                  - Albania
                  - Algeria
                  - Andorra
                  - Angola
                  - Antigua And Barbuda
                  - Argentina
                  - Armenia
                  - Australia
                  - Austria
                  - Azerbaijan
                  - Bahamas
                  - ...
        '404':
          $ref: '#/components/responses/404'
