openapi: 3.0.3
info:
    title: 'Curaytor Themes API Documentation'
    description: 'Themes-API Documentation'
    version: 1.0.0
servers:
    -
        url: 'http://127.0.0.1:8000/api'
paths:
    /api/ping:
        get:
            summary: "Ping\nReturns a \"pong\" response from the server with the version"
            description: ''
            parameters:
                -
                    in: header
                    name: Content-Type
                    description: ''
                    example: application/json
                    schema:
                        type: string
                -
                    in: header
                    name: Accept
                    description: ''
                    example: application/json
                    schema:
                        type: string
            responses: {  }
            tags:
                - 'Common endpoints'
    /api/tags:
        get:
            summary: "Get Tags\nReturn a list af tags"
            description: ''
            parameters:
                -
                    in: query
                    name: page
                    description: 'Pagination parameter.'
                    example: 1
                    required: false
                    schema:
                        type: integer
                        description: 'Pagination parameter.'
                        example: 1
                -
                    in: query
                    name: per_page
                    description: 'Pagination parameter.'
                    example: 100
                    required: false
                    schema:
                        type: integer
                        description: 'Pagination parameter.'
                        example: 100
                -
                    in: header
                    name: Content-Type
                    description: ''
                    example: application/json
                    schema:
                        type: string
                -
                    in: header
                    name: Accept
                    description: ''
                    example: application/json
                    schema:
                        type: string
            responses:
                200:
                    description: ''
                    content:
                        application/json:
                            schema:
                                type: object
                                example:
                                    data: [{ id: 56747737, name: dolores, created_at: '1970-08-22T17:40:56.000000Z', updated_at: '2018-04-08T11:04:49.000000Z' }, { id: 5017849, name: et, created_at: '2000-02-04T07:25:28.000000Z', updated_at: '2008-12-26T05:18:07.000000Z' }]
                                properties:
                                    data: { type: array, example: [{ id: 56747737, name: dolores, created_at: '1970-08-22T17:40:56.000000Z', updated_at: '2018-04-08T11:04:49.000000Z' }, { id: 5017849, name: et, created_at: '2000-02-04T07:25:28.000000Z', updated_at: '2008-12-26T05:18:07.000000Z' }], items: { type: object } }
            tags:
                - 'Tag endpoints'
        post:
            summary: "Create Tag\nReturns a newly created tag object"
            description: ''
            parameters:
                -
                    in: header
                    name: Content-Type
                    description: ''
                    example: application/json
                    schema:
                        type: string
                -
                    in: header
                    name: Accept
                    description: ''
                    example: application/json
                    schema:
                        type: string
            responses:
                200:
                    description: ''
                    content:
                        application/json:
                            schema:
                                type: object
                                example:
                                    id: 41899
                                    name: rerum
                                    created_at: '2005-12-08T10:04:36.000000Z'
                                    updated_at: '2019-03-01T18:33:30.000000Z'
                                properties:
                                    id: { type: integer, example: 41899 }
                                    name: { type: string, example: rerum }
                                    created_at: { type: string, example: '2005-12-08T10:04:36.000000Z' }
                                    updated_at: { type: string, example: '2019-03-01T18:33:30.000000Z' }
            tags:
                - 'Tag endpoints'
            requestBody:
                required: true
                content:
                    application/json:
                        schema:
                            type: object
                            properties:
                                name:
                                    type: string
                                    description: 'Tag name.'
                                    example: '"Nemanja"'
                            required:
                                - name
    /api/templates:
        get:
            summary: "List templates\nReturns a list of templates"
            description: ''
            parameters:
                -
                    in: header
                    name: Content-Type
                    description: ''
                    example: application/json
                    schema:
                        type: string
                -
                    in: header
                    name: Accept
                    description: ''
                    example: application/json
                    schema:
                        type: string
            responses: {  }
            tags:
                - 'Template endpoints'
            security: []
        post:
            summary: "Create template\nReturns a newly created template"
            description: ''
            parameters:
                -
                    in: header
                    name: Content-Type
                    description: ''
                    example: application/json
                    schema:
                        type: string
                -
                    in: header
                    name: Accept
                    description: ''
                    example: application/json
                    schema:
                        type: string
            responses: {  }
            tags:
                - 'Template endpoints'
            requestBody:
                required: true
                content:
                    application/json:
                        schema:
                            type: object
                            properties:
                                title:
                                    type: string
                                    description: ''
                                    example: eaque
                                thumbnail:
                                    type: string
                                    description: 'The value must be a valid URL.'
                                    example: 'https://www.hane.org/nulla-quo-aut-tempora-perferendis'
                                content:
                                    type: string
                                    description: ''
                                    example: iste
                                category:
                                    type: array
                                    description: ''
                                    example: [odio]
                                    items: { type: string }
                                marketer:
                                    type: boolean
                                    description: ''
                                    example: false
                            required:
                                - title
                                - thumbnail
                                - content
                                - category
            security: []
    '/api/templates/{template}':
        get:
            summary: "Get Template\nReturns a single template"
            description: ''
            parameters:
                -
                    in: header
                    name: Content-Type
                    description: ''
                    example: application/json
                    schema:
                        type: string
                -
                    in: header
                    name: Accept
                    description: ''
                    example: application/json
                    schema:
                        type: string
            responses: {  }
            tags:
                - 'Template endpoints'
            security: []
        put:
            summary: "Update Template\nReturns and updated template"
            description: ''
            parameters:
                -
                    in: header
                    name: Content-Type
                    description: ''
                    example: application/json
                    schema:
                        type: string
                -
                    in: header
                    name: Accept
                    description: ''
                    example: application/json
                    schema:
                        type: string
            responses: {  }
            tags:
                - 'Template endpoints'
            requestBody:
                required: false
                content:
                    application/json:
                        schema:
                            type: object
                            properties:
                                thumbnail:
                                    type: string
                                    description: 'The value must be a valid URL.'
                                    example: 'http://www.zulauf.org/ut-aspernatur-dolore-sunt-et'
                                content:
                                    type: string
                                    description: ''
                                    example: {  }
                                category:
                                    type: array
                                    description: ''
                                    example: [ipsa]
                                    items: { type: string }
                                marketer:
                                    type: boolean
                                    description: ''
                                    example: false
            security: []
        delete:
            summary: 'Delete template'
            description: ''
            parameters:
                -
                    in: header
                    name: Content-Type
                    description: ''
                    example: application/json
                    schema:
                        type: string
                -
                    in: header
                    name: Accept
                    description: ''
                    example: application/json
                    schema:
                        type: string
            responses: {  }
            tags:
                - 'Template endpoints'
            security: []
        parameters:
            -
                in: path
                name: template
                description: ''
                example: in
                required: true
                schema:
                    type: string
    /api/themes:
        get:
            summary: "List Themes\nReturns a list of themes"
            description: ''
            parameters:
                -
                    in: header
                    name: Content-Type
                    description: ''
                    example: application/json
                    schema:
                        type: string
                -
                    in: header
                    name: Accept
                    description: ''
                    example: application/json
                    schema:
                        type: string
            responses: {  }
            tags:
                - 'Theme endpoints'
            security: []
        post:
            summary: "Create Theme\nReturns a newly created theme"
            description: ''
            parameters:
                -
                    in: header
                    name: Content-Type
                    description: ''
                    example: application/json
                    schema:
                        type: string
                -
                    in: header
                    name: Accept
                    description: ''
                    example: application/json
                    schema:
                        type: string
            responses: {  }
            tags:
                - 'Theme endpoints'
            requestBody:
                required: true
                content:
                    application/json:
                        schema:
                            type: object
                            properties:
                                title:
                                    type: string
                                    description: ''
                                    example: veritatis
                                thumbnail:
                                    type: string
                                    description: 'The value must be a valid URL.'
                                    example: 'http://muller.info/molestias-sit-minima-id-esse-quia-nostrum.html'
                                settings:
                                    type: array
                                    description: ''
                                    example: [cumque]
                                    items: { type: string }
                                category:
                                    type: array
                                    description: ''
                                    example: [velit]
                                    items: { type: string }
                                layouts:
                                    type: array
                                    description: ''
                                    example: [ut]
                                    items: { type: string }
                                blocks:
                                    type: array
                                    description: ''
                                    example: [rem]
                                    items: { type: string }
                                marketer:
                                    type: boolean
                                    description: ''
                                    example: false
                            required:
                                - title
                                - thumbnail
                                - settings
                                - category
            security: []
    '/api/themes/{theme}':
        get:
            summary: "Get Theme\nReturns a single theme"
            description: ''
            parameters:
                -
                    in: header
                    name: Content-Type
                    description: ''
                    example: application/json
                    schema:
                        type: string
                -
                    in: header
                    name: Accept
                    description: ''
                    example: application/json
                    schema:
                        type: string
            responses: {  }
            tags:
                - 'Theme endpoints'
            security: []
        put:
            summary: "Update Theme\nReturns an updated theme"
            description: ''
            parameters:
                -
                    in: header
                    name: Content-Type
                    description: ''
                    example: application/json
                    schema:
                        type: string
                -
                    in: header
                    name: Accept
                    description: ''
                    example: application/json
                    schema:
                        type: string
            responses: {  }
            tags:
                - 'Theme endpoints'
            requestBody:
                required: false
                content:
                    application/json:
                        schema:
                            type: object
                            properties:
                                thumbnail:
                                    type: string
                                    description: 'The value must be a valid URL.'
                                    example: 'http://homenick.org/'
                                settings:
                                    type: array
                                    description: ''
                                    example: [animi]
                                    items: { type: string }
                                category:
                                    type: array
                                    description: ''
                                    example: [veritatis]
                                    items: { type: string }
                                layouts:
                                    type: array
                                    description: ''
                                    example: [sed]
                                    items: { type: string }
                                blocks:
                                    type: array
                                    description: ''
                                    example: [aspernatur]
                                    items: { type: string }
                                marketer:
                                    type: boolean
                                    description: ''
                                    example: false
            security: []
        delete:
            summary: 'Delete Theme'
            description: ''
            parameters:
                -
                    in: header
                    name: Content-Type
                    description: ''
                    example: application/json
                    schema:
                        type: string
                -
                    in: header
                    name: Accept
                    description: ''
                    example: application/json
                    schema:
                        type: string
            responses: {  }
            tags:
                - 'Theme endpoints'
            security: []
        parameters:
            -
                in: path
                name: theme
                description: ''
                example: cum
                required: true
                schema:
                    type: string
