swagger: "2.0"
info:
  version: "1.0"
  title: spunQ Content API
  description: API for read access to text objects.
  contact:
    name: Hannes Hofstätter
    url: http://strg.at
    email: hannes@strg.at
  license:
    name: Propietär
host: www.oeamtc.at
basePath: /api/spunq/content/1.0
schemes:
- http
produces:
- application/json
paths:
  /texts/{textId}:
    get:
      tags:
      - text
      operationId:
        getTextById
      summary: Get a Text-object by ID.
      description:
        A Text-object resembles an article on the portal. It can consist of TextSection-objects that are used to structure
        the article. It has relations to other content types like Video, Image, POI and other types.
      parameters:
      - name: textId
        in: path
        description: The id of the Text-object.
        required: true
        type: integer
        format: int32
      responses:
        '200':
          description: The data for the Text-object.
          schema:
            type: object
            required: [data]
            properties:
              data:
                $ref: '#/definitions/Text'
        '404':
          description: Text-object or Section-object could not be found.
          schema:
            $ref: '#/definitions/ErrorResponse'
        '400':
          description: The request is malformed.
          schema:
            $ref: '#/definitions/ErrorResponse'
        '301':
          description: The Text-object is deleted or removed and redirects to another Text-object.
  /texts/{textId}/sections:
    get:
      tags:
      - section
      operationId:
        findSectionsByText
      summary: Get related Section-objects for a Text-object.
      description:
        Section-objects are used for advanced structuring of an article. The Section has a template which defines the
        text-fields used in the editor. The text-fields are defined freely by the writer of the template. Most common fields
        are label, name, leadText, bodyText. Each Section has a structureLevel from 0 to 5. 1 is the highest level, 5 the
        lowest, the value 0 means the section is unstructured. Structured means it is a section that would be shown in the
        table of contents. Unstructured means that the Section is only created for special styling purposes and are
        semantically part of the structured section before it.
      parameters:
      - name: textId
        in: path
        description: The id of the Text-object.
        required: true
        type: integer
        format: int32
      responses:
        '200':
          description: The data of all Section-objects for the Text-object.
          schema:
            type: object
            required: [data]
            properties:
              data:
                type: array
                items:
                  $ref: '#/definitions/Section'
        '404':
          description: Text-object or Section-object could not be found.
          schema:
            $ref: '#/definitions/ErrorResponse'
        '400':
          description: The request is malformed.
          schema:
            $ref: '#/definitions/ErrorResponse'
        '301':
          description: The Text-object is deleted or removed and redirects to another Text-object.
  /texts/{textId}/sectionsbyname/{sectionName}:
    get:
      tags:
      - section
      operationId:
        findSectionByTextAndName
      summary: Get data of a structured section with the given name and all following unstructured sections.
      description:
        Returns all Section-objects that belong semantically to the structured Section-object with the given name.
      parameters:
      - name: textId
        in: path
        description: The id of the Text-object.
        required: true
        type: integer
        format: int32
      - name: sectionName
        in: path
        description: The name of the structured Section-object.
        required: true
        type: string
      responses:
        '200':
          description: The data of the relevant Section-objects for the Text-object.
          schema:
            type: object
            required: [data]
            properties:
              data:
                type: array
                items:
                  $ref: '#/definitions/Section'
        '404':
          description: Text-object or Section-object could not be found.
          schema:
            $ref: '#/definitions/ErrorResponse'
        '400':
          description: The request is malformed.
          schema:
            $ref: '#/definitions/ErrorResponse'
        '301':
          description: The Text-object is deleted or removed and redirects to another Text-object.
  /texts/{textId}/sections/{sectionId}:
      get:
        tags:
        - section
        operationId:
          findSectionById
        summary: Get data of a section with the given id.
        description:
          Returns sectionData.
        parameters:
        - name: textId
          in: path
          description: The id of the Text-object.
          required: true
          type: integer
          format: int32
        - name: sectionId
          in: path
          description: The name of the structured Section-object.
          required: true
          type: integer
          format: int32
        responses:
          '200':
            description: The data of the relevant SectionObject for the Text-object.
            schema:
              type: object
              required: [data]
              properties:
                data:
                  type: array
                  items:
                    $ref: '#/definitions/ExtendedSection'
          '404':
            description: Text-object or Section-object could not be found.
            schema:
              $ref: '#/definitions/ErrorResponse'
          '400':
            description: The request is malformed.
            schema:
              $ref: '#/definitions/ErrorResponse'
          '301':
            description: The Text-object is deleted or removed and redirects to another Text-object.
  /texts/{textId}/geolocations:
    get:
      tags:
      - geolocation
      operationId:
        findGeoLocationsByText
      summary: Get related GeoLocation-objects for a Text-object.
      description:
        GeoLocation-objects are used for positioning a Text-object in a given geo-political entity. The
        only entities used are GeoState-objects which respresent Countries.
      parameters:
      - name: textId
        in: path
        description: The id of the Text-object.
        required: true
        type: integer
        format: int32
      responses:
        '200':
          description: Related GeoLocation-objects for the Text-object.
          schema:
            type: object
            required: [data]
            properties:
              data:
                type: array
                items:
                  $ref: '#/definitions/GeoState'
        '404':
          description: Text-object or Section-object could not be found.
          schema:
            $ref: '#/definitions/ErrorResponse'
        '400':
          description: The request is malformed.
          schema:
            $ref: '#/definitions/ErrorResponse'
        '301':
          description: The Text-object is deleted or removed and redirects to another Text-object.
  /texts/{textId}/texts:
    get:
      tags:
      - text
      operationId:
        findTextsByText
      summary: Get related Text-objects for a Text-object.
      description:
        Related Text-objects to a Text-object are used for showing "related content" at the end of the article.
      parameters:
      - name: textId
        in: path
        description: The id of the Text-object.
        required: true
        type: integer
        format: int32
      responses:
        '200':
          description: Related Text-objects for the Text-object.
          schema:
            type: object
            required: [data]
            properties:
              data:
                type: array
                items:
                  $ref: '#/definitions/Text'
        '404':
          description: Text-object or Section-object could not be found.
          schema:
            $ref: '#/definitions/ErrorResponse'
        '400':
          description: The request is malformed.
          schema:
            $ref: '#/definitions/ErrorResponse'
        '301':
          description: The Text-object is deleted or removed and redirects to another Text-object.
  /texts/{textId}/images:
    get:
      tags:
      - image
      operationId:
        findImagesByText
      summary: Get related Image-objects for a Text-object.
      description:
        Image-objects are used as teaser image to link to the article and they are used a main image at the
        beginning of an article. The first Image-object is always used as image for teasers to the article. The second
        Image-object is sometimes used in the article itself.
      parameters:
      - name: textId
        in: path
        description: The id of the Text-object.
        required: true
        type: integer
        format: int32
      responses:
        '200':
          description: Related Image-objects for the Text-object.
          schema:
            type: object
            required: [data]
            properties:
              data:
                type: array
                items:
                  $ref: '#/definitions/Image'
        '404':
          description: Text-object or Section-object could not be found.
          schema:
            $ref: '#/definitions/ErrorResponse'
        '400':
          description: The request is malformed.
          schema:
            $ref: '#/definitions/ErrorResponse'
        '301':
          description: The Text-object is deleted or removed and redirects to another Text-object.
  /texts/{textId}/videos:
    get:
      tags:
      - video
      operationId:
        findVideosByText
      summary:  Get related Video-objects for a Text-object.
      description:
        Video-objects related to a Text-object should be shown in the article. As this is not implemented yet
        in ÖAMTC and its also not scope of the Reise-App, this method is only documented and will not be implemented.
      parameters:
      - name: textId
        in: path
        description: The id of the Text-object.
        required: true
        type: integer
        format: int32
      responses:
        '200':
          description: Related Video-objects for the Text-object.
          schema:
            type: object
            required: [data]
            properties:
              data:
                type: array
                items:
                  $ref: '#/definitions/Video'
        '404':
          description: Text-object or Section-object could not be found.
          schema:
            $ref: '#/definitions/ErrorResponse'
        '400':
          description: The request is malformed.
          schema:
            $ref: '#/definitions/ErrorResponse'
        '301':
          description: The Text-object is deleted or removed and redirects to another Text-object.
  /texts/{textId}/files:
    get:
      tags:
      - file
      operationId:
        findFilesByText
      summary: Get related File-objects for a Text-object.
      description:
        Related File-objects can be pdf-files, audio-files or other downloads. The files are linked in the
        article and can be downloaded by the user.
      parameters:
      - name: textId
        in: path
        description: The id of the Text-object.
        required: true
        type: integer
        format: int32
      responses:
        '200':
          description: Related File-objects for the Text-object.
          schema:
            type: object
            required: [data]
            properties:
              data:
                type: array
                items:
                  $ref: '#/definitions/File'
        '404':
          description: Text-object or Section-object could not be found.
          schema:
            $ref: '#/definitions/ErrorResponse'
        '400':
          description: The request is malformed.
          schema:
            $ref: '#/definitions/ErrorResponse'
        '301':
          description: The Text-object is deleted or removed and redirects to another Text-object.
  /texts/{textId}/pois:
    get:
      tags:
      - poi
      operationId:
        findPoisByText
      summary: Get related POI-objects for a Text-object.
      description:
        Related POI-objects are used to identify points of interest related to the Text-object.
        This can be an oeamtc base, because this Text-object describes the base or tourist pois
        that are shown in the article.
      parameters:
      - name: textId
        in: path
        description: The id of the Text-object.
        required: true
        type: integer
        format: int32
      responses:
        '200':
          description: Related POI-objects for the Text-object.
          schema:
            type: object
            required: [data]
            properties:
              data:
                type: array
                items:
                  $ref: '#/definitions/POI'
        '404':
          description: Text-object or Section-object could not be found.
          schema:
            $ref: '#/definitions/ErrorResponse'
        '400':
          description: The request is malformed.
          schema:
            $ref: '#/definitions/ErrorResponse'
        '301':
          description: The Text-object is deleted or removed and redirects to another Text-object.
  /texts/{textId}/tables:
    get:
      tags:
      - table
      operationId:
        findTablesByText
      summary: Get related Table-Objects for a Text-object.
      description:
        Table-objects are tables with options for advanced formatting per cell. They are shown
        in the article. Example of this are the "Fakten & Zahlen" in Länder Info Text-objects.
      parameters:
      - name: textId
        in: path
        description: The id of the Text-object.
        required: true
        type: integer
        format: int32
      responses:
        '200':
          description: Related Table-objects for the Text-object.
          schema:
            type: object
            required: [data]
            properties:
              data:
                type: array
                items:
                  $ref: '#/definitions/Table'
        '404':
          description: Text-object or Section-object could not be found.
          schema:
            $ref: '#/definitions/ErrorResponse'
        '400':
          description: The request is malformed.
          schema:
            $ref: '#/definitions/ErrorResponse'
        '301':
          description: The Text-object is deleted or removed and redirects to another Text-object.
  /texts/{textId}/sections/{sectionId}/tables:
    get:
      tags:
      - table
      operationId:
        findTablesBySection
      summary: Get related Table-Objects for a Section-object.
      description:
        Table-objects are tables with options for advanced formatting per cell. They are shown
        in the section. Example of this are the "Fakten & Zahlen" in Länder Info Text-objects.
      parameters:
      - name: textId
        in: path
        description: The id of the Text-object containing the Section.
        required: true
        type: integer
        format: int32
      - name: sectionId
        in: path
        description: The id of the Section-object.
        required: true
        type: integer
        format: int32
      responses:
        '200':
          description: Related Table-objects for the Section-object.
          schema:
            type: object
            required: [data]
            properties:
              data:
                type: array
                items:
                  $ref: '#/definitions/Table'
        '404':
          description: Text-object or Section-object could not be found.
          schema:
            $ref: '#/definitions/ErrorResponse'
        '400':
          description: The request is malformed.
          schema:
            $ref: '#/definitions/ErrorResponse'
        '301':
          description: The Text-object is deleted or removed and redirects to another Text-object.
  /texts/{textId}/sections/{sectionId}/pois:
    get:
      tags:
      - poi
      operationId:
        findPoisBySection
      summary: Get related POI-objects for a Section-object.
      description:
        Related POI-objects are used to identify points of interest related to the Section-object.
        This can be an oeamtc base, because this Section-object describes the base or tourist pois
        that are shown in the article.
      parameters:
      - name: textId
        in: path
        description: The id of the Text-object containing the Section.
        required: true
        type: integer
        format: int32
      - name: sectionId
        in: path
        description: The id of the Section-object.
        required: true
        type: integer
        format: int32
      responses:
        '200':
          description: Related POI-objects for the Section-object.
          schema:
            type: object
            required: [data]
            properties:
              data:
                type: array
                items:
                  $ref: '#/definitions/POI'
        '404':
          description: Text-object or Section-object could not be found.
          schema:
            $ref: '#/definitions/ErrorResponse'
        '400':
          description: The request is malformed.
          schema:
            $ref: '#/definitions/ErrorResponse'
        '301':
          description: The Text-object is deleted or removed and redirects to another Text-object.
  /texts/{textId}/sections/{sectionId}/texts:
    get:
      tags:
      - text
      operationId:
        findTextsBySection
      summary: Get related Text-objects for a Section-object.
      description:
        Related Text-objects to this Section-object are used for showing links to articles.
      parameters:
      - name: textId
        in: path
        description: The id of the Text-object containing the Section.
        required: true
        type: integer
        format: int32
      - name: sectionId
        in: path
        description: The id of the Section-object.
        required: true
        type: integer
        format: int32
      responses:
        '200':
          description: Related Text-objects for the Section-object.
          schema:
            type: object
            required: [data]
            properties:
              data:
                type: array
                items:
                  $ref: '#/definitions/Text'
        '404':
          description: Text-object or Section-object could not be found.
          schema:
            $ref: '#/definitions/ErrorResponse'
        '400':
          description: The request is malformed.
          schema:
            $ref: '#/definitions/ErrorResponse'
        '301':
          description: The Text-object is deleted or removed and redirects to another Text-object.
  /texts/{textId}/sections/{sectionId}/images:
    get:
      tags:
      - image
      operationId:
        findImagesBySection
      summary: Get related Image-objects for a Section-object.
      description:
        Image-objects in Section-objects are shown in the text-part related to the Section-object.
      parameters:
      - name: textId
        in: path
        description: The id of the Text-object containing the Section.
        required: true
        type: integer
        format: int32
      - name: sectionId
        in: path
        description: The id of the Section-object.
        required: true
        type: integer
        format: int32
      responses:
        '200':
          description: Related Image-objects for the Section-object.
          schema:
            type: object
            required: [data]
            properties:
              data:
                type: array
                items:
                  $ref: '#/definitions/Image'
        '404':
          description: Text-object or Section-object could not be found.
          schema:
            $ref: '#/definitions/ErrorResponse'
        '400':
          description: The request is malformed.
          schema:
            $ref: '#/definitions/ErrorResponse'
        '301':
          description: The Text-object is deleted or removed and redirects to another Text-object.
  /texts/{textId}/sections/{sectionId}/videos:
    get:
      tags:
      - video
      operationId:
        findVideosBySection
      summary:  Get related Video-objects for a Text-object.
      description:
        Video-objects related to a Text-object should be shown in the article. As this is not implemented yet
        in ÖAMTC and its also not scope of the Reise-App, this method is only documented and will not be implemented.
      parameters:
      - name: textId
        in: path
        description: The id of the Text-object containing the Section.
        required: true
        type: integer
        format: int32
      - name: sectionId
        in: path
        description: The id of the Section-object.
        required: true
        type: integer
        format: int32
      responses:
        '200':
          description: Related Video-objects for the Section-object.
          schema:
            type: object
            required: [data]
            properties:
              data:
                type: array
                items:
                  $ref: '#/definitions/Video'
        '404':
          description: Text-object or Section-object could not be found.
          schema:
            $ref: '#/definitions/ErrorResponse'
        '400':
          description: The request is malformed.
          schema:
            $ref: '#/definitions/ErrorResponse'
        '301':
          description: The Text-object is deleted or removed and redirects to another Text-object.
  /texts/{textId}/sections/{sectionId}/files:
    get:
      tags:
      - file
      operationId:
        findFilesBySection
      summary: Get related File-objects for a Section-object.
      description:
        Related File-objects can be pdf-files, audio-files or other downloads. The files are linked in the
        text of the Section and can be downloaded by the user.
      parameters:
      - name: textId
        in: path
        description: The id of the Text-object containing the Section.
        required: true
        type: integer
        format: int32
      - name: sectionId
        in: path
        description: The id of the Section-object.
        required: true
        type: integer
        format: int32
      responses:
        '200':
          description: Related File-objects for the Section-object.
          schema:
            type: object
            required: [data]
            properties:
              data:
                type: array
                items:
                  $ref: '#/definitions/File'
        '404':
          description: Text-object or Section-object could not be found.
          schema:
            $ref: '#/definitions/ErrorResponse'
        '400':
          description: The request is malformed.
          schema:
            $ref: '#/definitions/ErrorResponse'
        '301':
          description: The Text-object is deleted or removed and redirects to another Text-object.
  /laenderinfo/list:
    get:
      tags:
      - text
      - laenderinfo
      summary: Returns all Länder-Info Text-objects.
      description:
        A Text-object in Länder-Info resembles one country. Like other Text-objects it consists of TextSection-object to
        structure the article. It has relations to other content types like Video, Image, POI and other types.
        This call returns a minimalistic set of information about the Text-objects only containing the id, type, title and
        the ALPHA2 (ISO 3166-2) country code of the associated GeoState-object.
      responses:
        '200':
          description: A list of Text-Objects in Länder-Info.
          schema:
            type: object
            required: [data]
            properties:
              data:
                type: array
                items:
                  $ref: '#/definitions/TextMapping'
        '404':
          description: Text-object or Section-object could not be found.
          schema:
            $ref: '#/definitions/ErrorResponse'
        '400':
          description: The request is malformed.
          schema:
            $ref: '#/definitions/ErrorResponse'
        '301':
          description: The Text-object is deleted or removed and redirects to another Text-object.
  /cityguide/list:
    get:
      tags:
      - text
      - cityguide
      summary: Returns all City Guide Text-objects.
      description:
        A Text-object in Länder-Info resembles one city. Like other Text-objects it consists of TextSection-object to
        structure the article. It has relations to other content types like Video, Image, POI and other types.
        This call returns a minimalistic set of information about the Text-objects only containing the id, type and title.
      responses:
        '200':
          description: A list of Text-Objects in City Guide.
          schema:
            type: object
            required: [data]
            properties:
              data:
                type: array
                items:
                  $ref: '#/definitions/TextMapping'
        '404':
          description: Text-object or Section-object could not be found.
          schema:
            $ref: '#/definitions/ErrorResponse'
        '400':
          description: The request is malformed.
          schema:
            $ref: '#/definitions/ErrorResponse'
        '301':
          description: The Text-object is deleted or removed and redirects to another Text-object.
  /channels:
    get:
      tags:
      - channel
      summary: Returns all Channel-objects.
      description:
        A Channel-Object is a container for Text-Objects.
      parameters:
      - name: offset
        in: query
        description: The amount of Channel-Objects to skip.
        required: false
        type: integer
        format: int32
      - name: limit
        in: query
        description: The amount of Channel-Objects to return.
        required: false
        type: integer
        format: int32
      responses:
        '200':
          description: A list of Channel-Objects.
          schema:
            type: object
            required: [data]
            properties:
              data:
                type: array
                items:
                  $ref: '#/definitions/Channel'
        '404':
          description: Channel-object could not be found.
          schema:
            $ref: '#/definitions/ErrorResponse'
        '400':
          description: The request is malformed.
          schema:
            $ref: '#/definitions/ErrorResponse'
  /channels/{channelId}/channels:
    get:
      tags:
      - channel
      summary: Returns sub Channel-Objects of the given Channel.
      description:
        A Channel-Object is a container for Text-Objects.
      parameters:
      - name: channelId
        description: The Id of the parent channel-Object.
        in: path
        type: integer
        required: true
      - name: offset
        in: query
        description: The amount of Channel-Objects to skip.
        required: false
        type: integer
        format: int32
      - name: limit
        in: query
        description: The amount of Channel-Objects to return.
        required: false
        type: integer
        format: int32
      responses:
        '200':
          description: A list of Channel-Objects.
          schema:
            type: object
            required: [data]
            properties:
              data:
                type: array
                items:
                  $ref: '#/definitions/Channel'
        '404':
          description: Channel-object could not be found.
          schema:
            $ref: '#/definitions/ErrorResponse'
        '400':
          description: The request is malformed.
          schema:
            $ref: '#/definitions/ErrorResponse'
  /channels/tree:
    get:
      tags:
      - channel
      summary: Returns The Channel-Objects tree.
      description:
        A Channel-Object is a container for Text-Objects.
      parameters:
      - name: level
        in: query
        description: The amount of levels returned from the tree.
        required: false
        type: integer
        format: int32
      responses:
        '200':
          description: A list of Channel-Objects.
          schema:
            type: object
            required: [data]
            properties:
              data:
                type: array
                items:
                   $ref: '#/definitions/Channel'
        '404':
          description: Channel-object could not be found.
          schema:
            $ref: '#/definitions/ErrorResponse'
        '400':
          description: The request is malformed.
          schema:
            $ref: '#/definitions/ErrorResponse'
  /channels/{channelId}/channels/tree:
      get:
        tags:
        - channel
        summary: Returns The Channel-Objects tree starting from a given Channel.
        description:
          A Channel-Object is a container for Text-Objects.
        parameters:
        - name: channelId
          in: path
          type: integer
          required: true
          description: The Id of the parent channel-Object.
        - name: level
          in: query
          description: The amount of levels returned from the tree.
          required: false
          type: integer
          format: int32
        responses:
          '200':
            description: A list of Channel-Objects including the channel given as parameter.
            schema:
              type: object
              required: [data]
              properties:
                data:
                  type: array
                  items:
                     $ref: '#/definitions/Channel'
          '404':
            description: Channel-object could not be found.
            schema:
              $ref: '#/definitions/ErrorResponse'
          '400':
            description: The request is malformed.
            schema:
              $ref: '#/definitions/ErrorResponse'
  /channels/{channelId}/texts:
    get:
      tags:
      - channel
      summary: Return text-Objects contained a given channel.
      description:
        Return Content of a channel.
      parameters:
      - name: channelId
        in: path
        description: The id of the Channel-Object.
        required: true
        type: integer
        format: int32
      - name: offset
        in: query
        description: The amount of Channel-Objects to skip.
        type: integer
        format: int32
      - name: limit
        in: query
        description: The amount of Channel-Objects to return.
        type: integer
        format: int32
      - name: order
        in: query
        description: The sort order.
        type: string
        enum:  [publishDate, -publishDate, frontendDate, -frontendDate, id, -id, title, -title]
      - name: includeSubChannels
        in: query
        description: Include Text-Objects from subChannels.
        type: integer
        format: int32
      responses:
        '200':
          description: The list of Content is correctly returned.
          schema:
            type: object
            required: [data]
            properties:
              data:
                type: array
                items:
                  $ref: '#/definitions/Text'
        '404':
          description: Text-object or Section-object could not be found.
          schema:
            $ref: '#/definitions/ErrorResponse'
        '400':
          description: The request is malformed.
          schema:
            $ref: '#/definitions/ErrorResponse'
definitions:
  ErrorResponse:
    type: object
    required: [errors]
    properties:
      errors:
        type: array
        items:
          type: object
          required: [status, title]
          properties:
            status:
              type: string
            title:
              type: string
            detail:
              type: string
  Channel:
      type: object
      required: [id, type, attributes]
      description:
        Channel-Objects are Text-Objects containers.
      properties:
        id:
          type: integer
          format: int32
        type:
          type: string
        attributes:
          type: object
          required: [name, pageTitle, parentChannel]
          properties:
            name:
              type: string
              description: The name of the channel.
            pageTitle:
              type: string
              description: The channel's name displayed in the frontend.
            parentChannel:
              type: integer
              description: Identifier of the parent channel if it exists.
            description:
              type: string
              description: The channel's name displayed in the frontend.
            oewaTag:
              type: string
              description: OEWATag
            tags:
              type: array
              items:
                type: string
            childrens:
              type: array
              items:
                $ref: '#/definitions/Channel'
  Table:
    type: object
    required: [id, type, attributes]
    description:
      "Table-objects are structured data with advanced formatting on a cell level. The display in the frontend also depend on the selected template (field: templateAlias)."
    properties:
      id:
        type: integer
        format: int32
      type:
        type: string
        enum:
        - Table
      attributes:
        type: object
        required: [title, description, templateAlias, htmlData, data]
        properties:
          title:
            type: string
            description:
              The title of the Table-object. Contains no HTML-tags.
          description:
            type: string
            description:
              Contains a short intro text for the Table-object. Contains no HTML-tags.
          templateAlias:
            type: string
            description:
              The template used for showing the Table-object in the frontend. This decides the formatting of the Table-object.
          templateParameter:
            type: object
            description:
              Additional parameters for this Table-object. Depending on the template, different parameters are needed to show
              it in the frontend.
          htmlData:
            type: string
            description:
              The rendered html representation of the Table-object. Contains HTML-tags.
          data:
            type: array
            description: The data of the Table-object.
            items:
              type: object
              required: [column, row, alignment, value]
              properties:
                column:
                  type: integer
                  format: int32
                row:
                  type: integer
                  format: int32
                alignment:
                  type: string
                  enum:
                  - left
                  - right
                  - center
                  - justify
                value:
                  type: string
  POI:
    type: object
    required: [id, type, attributes]
    description:
      POI-objects are used for referencing POI-objects from the GIS rest api. They actual data of the object
      can only be found in the GIS rest api.
    properties:
      id:
        type: integer
        format: int32
      type:
        type: string
        enum:
        - TouristPOI
        - OEAMTCBase
      attributes:
        type: object
        required: [name, gisApiReference, gisApiLink]
        properties:
          name:
            type: string
            description: The name of the POI-object.
          gisApiReference:
            type: string
            description: The id of the POI-object used in GIS API.
          gisApiLink:
            type: string
            description: Link to the representation of the POI-object in GIS API.
  GeoState:
    type: object
    required: [id, type, attributes]
    description:
      GeoState-objects represent a country. They are used to link articles to a country (e.g. the Länder-Info Text-object
      about Italy references the GeoState-object for Italy).
    properties:
      id:
        type: integer
        format: int32
      type:
        type: string
        enum:
        - GeoState
      attributes:
        type: object
        required: [name, alpha2, alpha3]
        properties:
          name:
            type: string
          alpha2:
            type: string
          alpha3:
            type: string
          displayedName:
            type: string
          capital:
            type: string
          aliases:
            type: array
            items:
              type: string
  File:
    type: object
    required: [id, type, attributes]
    description:
      File-objects are references to pdf-files, audio-files or other downloads. The files are linked in the Text- or Section-object
      referencing them.
    properties:
      id:
        type: integer
        format: int32
      type:
        type: string
        enum:
          - File
      attributes:
        type: object
        required: [createDateTime, updateDateTime, url, title, inline]
        properties:
          inline:
            type: boolean
            default: false
          createDateTime:
            type: string
            format: date-time
          updateDateTime:
            type: string
            format: date-time
          url:
            type: string
          title:
            type: string
            description: The title of the File-object, contains no HTML-tags.
          mimeType:
            type: string
          encoding:
            type: string
          size:
            type: string
          fileName:
            type: string
  Image:
    type: object
    required: [id, type, attributes]
    description:
      Image-objects contain metadata for actual images. The member transformations contain the link to
      the actual transformed images.
    properties:
      id:
        type: integer
        format: int32
      type:
        type: string
        enum:
        - Image
      attributes:
        type: object
        required: [inline, createDateTime, updateDateTime, publishDate, title, frontendSource]
        properties:
          inline:
            type: boolean
            default: false
          createDateTime:
            type: string
            format: date-time
          updateDateTime:
            type: string
            format: date-time
          publishDate:
            type: string
            format: date-time
            description:
              Date-time since the Image-object is public available.
          retirementDate:
            type: string
            format: date-time
            description:
              Date-time until the Image-object is public available.
          tags:
            type: array
            items:
              type: string
          title:
            type: string
            description:
              The title of the Image-object, does not contain HTML-tags.
          description:
            type: string
            description:
              The description of the Image-object, used as caption in the frontend.
              Can contain HTML-tags.
          frontendSource:
            type: string
          copyright:
            type: string
          copyrightUri:
            type: string
          transformations:
            type: array
            description:
              Information about rendered image sizes of the Image-object.
            items:
              type: object
              required: [name, url]
              properties:
                name:
                  type: string
                url:
                  type: string
                width:
                  type: integer
                height:
                  type: integer
  Video:
    type: object
    required: [id, type, attributes]
    description:
      Video-objects are metadata for actual videos. The member still contains a link to the still-image (teaser-image) of a video.
      The member renditions contains links to the differend encoded video-files.
    properties:
      id:
        type: integer
        format: int32
      type:
        type: string
        enum:
        - Video
      attributes:
        type: object
        required: [inline, createDateTime, updateDateTime, publishDate, title, frontendSource]
        properties:
          inline:
            type: boolean
            default: false
          createDateTime:
            type: string
            format: date-time
          updateDateTime:
            type: string
            format: date-time
          publishDate:
            type: string
            format: date-time
            description:
              Date-time since the Video-object is public available.
          retirementDate:
            type: string
            format: date-time
            description:
              Date-time until the Video-object is public available.
          lastConvertDate:
            type: string
            format: date-time
          tags:
            type: array
            items:
              type: string
          title:
            type: string
            description:
              The title of the Video-object, does not contain HTML-tags.
          description:
            type: string
            description:
              The description of the Video-object, used as caption in the frontend.
              Can contain HTML-tags.
          frontendSource:
            type: string
          copyright:
            type: string
          copyrightUri:
            type: string
          length:
            type: integer
          still:
            type: array
            description:
              The still image is used as thumbnail for the Video-object.
            items:
              type: object
              required: [name, url]
              properties:
                name:
                  type: string
                url:
                  type: string
                width:
                  type: integer
                height:
                  type: integer
          renditions:
            type: array
            description:
              Information about the different rendered videostreams.
            items:
              type: object
              required: [name, url]
              properties:
                name:
                  type: string
                url:
                  type: string
                container:
                  type: string
                width:
                  type: integer
                height:
                  type: integer
  Section:
    type: object
    required: [id, type, attributes]
    description:
        Section-objects are used for advanced structuring of an article. The Section has a template which defines the
        text-fields used in the editor. The text-fields are defined freely by the writer of the template. Most common fields
        are label, name, leadText, bodyText. Each Section has a structureLevel from 0 to 5. 1 is the highest level, 5 the
        lowest, the value 0 means the section is unstructured. Structured means it is a section that would be shown in the
        table of contents. Unstructured means that the Section is only created for special styling purposes and are
        semantically part of the structured section before it.
    properties:
      id:
        type: integer
        format: int32
      type:
        type: string
        enum:
          - TextSection
      attributes:
        type: object
        properties:
          tags:
            type: array
            items:
              type: string
          structureLevel:
            type: integer
          template:
            type: string
          values:
            type: object
      relationships:
        type: object
        properties:
          texts:
            type: object
            required: [links, data]
            properties:
              links:
                type: object
                required: [related]
                properties:
                  related:
                    type: string
              data:
                type: array
                items:
                  type: object
                  required: [type, id]
                  properties:
                    id:
                      type: integer
                      format: int32
                    type:
                      type: string
                      enum:
                      - Text
                      - Theme
                      - Product
          images:
            type: object
            required: [links, data]
            properties:
              links:
                type: object
                required: [related]
                properties:
                  related:
                    type: string
              data:
                type: array
                items:
                  type: object
                  required: [type, id]
                  properties:
                    id:
                      type: integer
                      format: int32
                    type:
                      type: string
                      enum:
                      - Image
          videos:
            type: object
            required: [links, data]
            properties:
              links:
                type: object
                required: [related]
                properties:
                  related:
                    type: string
              data:
                type: array
                items:
                  type: object
                  required: [type, id]
                  properties:
                    id:
                      type: integer
                      format: int32
                    type:
                      type: string
                      enum:
                      - Video
          tables:
            type: object
            required: [links, data]
            properties:
              links:
                type: object
                required: [related]
                properties:
                  related:
                    type: string
              data:
                type: array
                items:
                  type: object
                  required: [type, id]
                  properties:
                    id:
                      type: integer
                      format: int32
                    type:
                      type: string
                      enum:
                      - Table
          files:
            type: object
            required: [links, data]
            properties:
              links:
                type: object
                required: [related]
                properties:
                  related:
                    type: string
              data:
                type: array
                items:
                  type: object
                  required: [type, id]
                  properties:
                    id:
                      type: integer
                      format: int32
                    type:
                      type: string
                      enum:
                      - File
          pois:
            type: object
            required: [links, data]
            properties:
              links:
                type: object
                required: [related]
                properties:
                  related:
                    type: string
              data:
                type: array
                items:
                  type: object
                  required: [type, id]
                  properties:
                    id:
                      type: integer
                      format: int32
                    type:
                      type: string
                      enum:
                      - TouristPOI
  Text:
    type: object
    required: [id, type, attributes]
    description:
      A Text-object resembles an article on the portal. It can consist of Section-objects that are used to structure
      the article. It has relations to other content types like Video, Image, POI and other types.
    properties:
      id:
        type: integer
        format: int32
      type:
        type: string
        enum:
        - Text
        - Theme
        - Product
      attributes:
        type: object
        required: [createDateTime, updateDateTime, frontendDate, publishDate, channels, title, leadText, frontendSource]
        properties:
          inline:
            type: boolean
            default: false
          createDateTime:
            type: string
            format: date-time
          updateDateTime:
            type: string
            format: date-time
          frontendDate:
            type: string
            format: date-time
            description:
              The date shown in frontend to indicate the creation/update of the Text-object.
          publishDate:
            type: string
            format: date-time
            description:
              The date since the Text-object is publically available.
          retirementDate:
            type: string
            format: date-time
            description:
              The date until the Text-object is publically available.
          tags:
            type: array
            items:
              type: string
          channels:
            type: array
            items:
              type: string
            description:
              The primary channels of the Text-object. There can be only one channel per portal (Autotouring, Fahrtechnik, ÖAMTC9.
              This channel is used to determine the url of the Text-object.
          secondaryChannels:
            type: array
            items:
              type: string
            description:
              The secondary channels of the Text-object. These are only used to determine that a teaser of the Text-object can be
              shown in this channel.
          title:
            type: string
            description:
              The title of the Text-object. Can not contain HTML-tags.
          preTitle:
            type: string
            description:
              The pre-title of the Text-object. Will be shown before the title in the frontend. Can not contain HTML-tags.
          leadText:
            type: string
            description:
              The lead text of the Text-object. Will be shown before the body text or used as teaser text. Can contain HTML-tags.
          bodyText:
            type: string
            description:
              The body text of the Text-object. Can contain HTML-tags. Can also contain custom spunQ-tags.
          frontendSource:
            type: string
      relationships:
        type: object
        properties:
          inlineObjects:
            type: object
            required: [links, data]
            description:
              Inline objects are related objects used as spunQ-tag in the body text of the Text-object.
            properties:
              links:
                type: object
                required: [related]
                properties:
                  related:
                    type: string
              data:
                type: array
                items:
                  type: object
                  required: [type, id]
                  properties:
                    id:
                      type: integer
                      format: int32
                    type:
                      type: string
                      enum:
                      - Image
                      - Text
                      - Theme
                      - Product
                      - Video
                      - File
          files:
            type: object
            required: [links, data]
            properties:
              links:
                type: object
                required: [related]
                properties:
                  related:
                    type: string
              data:
                type: array
                items:
                  type: object
                  required: [type, id]
                  properties:
                    id:
                      type: integer
                      format: int32
                    type:
                      type: string
                      enum:
                      - File
          geolocations:
            type: object
            required: [links, data]
            properties:
              links:
                type: object
                required: [related]
                properties:
                  related:
                    type: string
              data:
                type: array
                items:
                  type: object
                  required: [type, id]
                  properties:
                    id:
                      type: integer
                      format: int32
                    type:
                      type: string
                      enum:
                      - GeoState
          texts:
            type: object
            required: [links, data]
            properties:
              links:
                type: object
                required: [related]
                properties:
                  related:
                    type: string
              data:
                type: array
                items:
                  type: object
                  required: [type, id]
                  properties:
                    id:
                      type: integer
                      format: int32
                    type:
                      type: string
                      enum:
                      - Text
                      - Theme
                      - Product
          images:
            type: object
            required: [links, data]
            properties:
              links:
                type: object
                required: [related]
                properties:
                  related:
                    type: string
              data:
                type: array
                items:
                  type: object
                  required: [type, id]
                  properties:
                    id:
                      type: integer
                      format: int32
                    type:
                      type: string
                      enum:
                      - Image
          videos:
            type: object
            required: [links, data]
            properties:
              links:
                type: object
                required: [related]
                properties:
                  related:
                    type: string
              data:
                type: array
                items:
                  type: object
                  required: [type, id]
                  properties:
                    id:
                      type: integer
                      format: int32
                    type:
                      type: string
                      enum:
                      - Video
          sections:
            type: object
            required: [links, data]
            properties:
              links:
                type: object
                required: [related]
                properties:
                  related:
                    type: string
              data:
                type: array
                items:
                  type: object
                  required: [type, id]
                  properties:
                    id:
                      type: integer
                      format: int32
                    type:
                      type: string
                      enum:
                      - TextSection
          tables:
            type: object
            required: [links, data]
            properties:
              links:
                type: object
                required: [related]
                properties:
                  related:
                    type: string
              data:
                type: array
                items:
                  type: object
                  required: [type, id]
                  properties:
                    id:
                      type: integer
                      format: int32
                    type:
                      type: string
                      enum:
                      - Table
          pois:
            type: object
            required: [links, data]
            properties:
              links:
                type: object
                required: [related]
                properties:
                  related:
                    type: string
              data:
                type: array
                items:
                  type: object
                  required: [type, id]
                  properties:
                    id:
                      type: integer
                      format: int32
                    type:
                      type: string
                      enum:
                      - TouristPOI
  TextMapping:
    type: object
    required: [id, type, attributes]
    description:
      A Text-object resembles an article on the portal. It can consist of Section-objects that are used to structure
      the article. It has relations to other content types like Video, Image, POI and other types.
    properties:
      id:
        type: integer
        format: int32
      type:
        type: string
        enum:
        - Text
      attributes:
        type: object
        required: [title]
        properties:
          title:
            type: string
            description:
              The title of the Text-object. Contains no HTML-tags.
          alpha2:
            type: string
          tags:
            type: array
            items:
              type: string
  ExtendedSection:
    type: object
    required: [id, type, attributes]
    description:
        Section-objects are used for advanced structuring of an article. The Section has a template which defines the
        text-fields used in the editor. The text-fields are defined freely by the writer of the template. Most common fields
        are label, name, leadText, bodyText. Each Section has a structureLevel from 0 to 5. 1 is the highest level, 5 the
        lowest, the value 0 means the section is unstructured. Structured means it is a section that would be shown in the
        table of contents. Unstructured means that the Section is only created for special styling purposes and are
        semantically part of the structured section before it.
    properties:
      id:
        type: integer
        format: int32
      type:
        type: string
        enum:
          - TextSection
      attributes:
        type: object
        properties:
          tags:
            type: array
            items:
              type: string
          structureLevel:
            type: integer
          template:
            type: string
          values:
            type: object
      relationships:
        type: object
        properties:
          texts:
            type: object
            required: [links, data]
            properties:
              links:
                type: object
                required: [related]
                properties:
                  related:
                    type: string
              data:
                type: array
                items:
                  $ref: '#/definitions/Text'
          images:
            type: object
            required: [links, data]
            properties:
              links:
                type: object
                required: [related]
                properties:
                  related:
                    type: string
              data:
                type: array
                items:
                  $ref: '#/definitions/Image'
          videos:
            type: object
            required: [links, data]
            properties:
              links:
                type: object
                required: [related]
                properties:
                  related:
                    type: string
              data:
                type: array
                items:
                  $ref: '#/definitions/Video'
          tables:
            type: object
            required: [links, data]
            properties:
              links:
                type: object
                required: [related]
                properties:
                  related:
                    type: string
              data:
                type: array
                items:
                  $ref: '#/definitions/Table'
          files:
            type: object
            required: [links, data]
            properties:
              links:
                type: object
                required: [related]
                properties:
                  related:
                    type: string
              data:
                type: array
                items:
                  $ref: '#/definitions/File'
          pois:
            type: object
            required: [links, data]
            properties:
              links:
                type: object
                required: [related]
                properties:
                  related:
                    type: string
              data:
                type: array
                items:
                  $ref: '#/definitions/POI'
