openapi: 3.0.3
info:
  title: questlog api
  version: 0.0.1-dev
  description: Adventure planing tool.
servers:
- url: https://api.questlog.io
paths:
  /adventures:
    get:
      parameters:
      - name: guid
        in: query
        required: false
        schema:
          type: string
          format: uuid
      - name: name
        in: query
        required: false
        schema:
          type: string
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/SolutionsPooleQuestlogApiV0ModelsAdventure'
    post:
      requestBody:
        content:
          application/x-www-form-urlencoded:
            schema:
              type: object
              required:
              - adventure
              properties:
                adventure:
                  $ref: '#/components/schemas/SolutionsPooleQuestlogApiV0ModelsAdventure'
        required: true
      responses:
        '201':
          description: Created
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SolutionsPooleQuestlogApiV0ModelsAdventure'
        '409':
          description: Conflict
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/SolutionsPooleQuestlogApiV0ModelsError'
  /adventures/{guid}:
    get:
      parameters:
      - name: guid
        in: path
        required: true
        schema:
          type: string
          format: uuid
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SolutionsPooleQuestlogApiV0ModelsAdventure'
components:
  schemas:
    SolutionsPooleQuestlogApiV0ModelsError:
      description: Represents a validation error from the application.
      type: object
      required:
      - code
      - message
      properties:
        code:
          type: string
        message:
          type: string
    SolutionsPooleQuestlogApiV0ModelsItem:
      type: object
      required:
      - name
      properties:
        name:
          type: string
        size:
          type: number
          format: double
        description:
          type: string
        type:
          $ref: '#/components/schemas/SolutionsPooleQuestlogApiV0EnumsItemType'
    SolutionsPooleQuestlogApiV0ModelsParticipant:
      description: Represents a adventure participant and what items they will bring.
      type: object
      required:
      - person
      properties:
        person:
          $ref: '#/components/schemas/SolutionsPooleQuestlogApiV0UnionsPerson'
        items:
          type: array
          items:
            $ref: '#/components/schemas/SolutionsPooleQuestlogApiV0ModelsItem'
    SolutionsPooleQuestlogApiV0ModelsAdventure:
      description: Represents an adventure.
      type: object
      required:
      - guid
      - name
      properties:
        guid:
          type: string
          format: uuid
        name:
          type: string
        description:
          type: string
        location:
          type: string
        participants:
          type: array
          items:
            $ref: '#/components/schemas/SolutionsPooleQuestlogApiV0ModelsParticipant'
        pack_lists:
          type: array
          items:
            $ref: '#/components/schemas/SolutionsPooleQuestlogApiV0ModelsItem'
    SolutionsPooleQuestlogApiV0ModelsGuest:
      type: object
      properties:
        email:
          type: string
        name:
          type: string
    SolutionsPooleQuestlogApiV0ModelsUser:
      type: object
      required:
      - guid
      properties:
        guid:
          type: string
          format: uuid
        email:
          type: string
        name:
          type: string
    SolutionsPooleQuestlogApiV0EnumsItemType:
      type: string
      enum:
      - Food
      - Clothes
      - Camp
      - Utensils
      - Gear
    SolutionsPooleQuestlogApiV0UnionsPerson:
      oneOf:
      - $ref: '#/components/schemas/SolutionsPooleQuestlogApiV0ModelsGuest'
      - $ref: '#/components/schemas/SolutionsPooleQuestlogApiV0ModelsUser'
