openapi: 3.0.0
info:
  title: 'API CmonSite.fr'
  description: ''
  termsOfService: ''
  contact:
    email: support@cmonsite.fr
  version: 1.0.0
servers:
  -
    url: 'https://api.cmonsite.fr'
    description: 'Adresse CmonSite'
paths:
  /v1/blog/article:
    post:
      tags:
        - blogArticle
      summary: 'Création d''un article de blog'
      description: 'Vous avez la possibilité de créer un article de blog.'
      operationId: blogArticleCreate
      requestBody:
        description: 'Information sur l''article de blog'
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/RequestBlogArticleCreate'
      responses:
        '200':
          description: 'Création de votre article de blog'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ResponseBlogArticle'
            application/xml:
              schema:
                $ref: '#/components/schemas/ResponseBlogArticle'
        '400':
          description: "Problème dans les paramètres :\r\n    - Paramètre manquant\r\n    - Paramètre json ne peut pas être exploité\r\n    "
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              example:
                error:
                  code: 400
                  message: PARAMETER_EMPTY
                  details: ['Paramètre manquant']
            application/xml:
              schema:
                $ref: '#/components/schemas/Error'
              example:
                error:
                  code: 400
                  message: PARAMETER_EMPTY
                  details: ['Paramètre manquant']
        '401':
          description: 'La clé API est invalide'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              example:
                error:
                  code: 401
                  message: UNAUTHORIZED
                  details: []
            application/xml:
              schema:
                $ref: '#/components/schemas/Error'
              example:
                error:
                  code: 401
                  message: UNAUTHORIZED
                  details: []
        '406':
          description: 'Erreur quota de la formule'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              example:
                error:
                  code: 406
                  message: QUOTA_ERROR
                  details: ['Le quota des articles de blog a été atteint.']
            application/xml:
              schema:
                $ref: '#/components/schemas/Error'
              example:
                error:
                  code: 406
                  message: QUOTA_ERROR
                  details: ['Le quota des articles de blog a été atteint.']
        '429':
          description: 'Erreur rate limit'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              example:
                error:
                  code: 429
                  message: 'Too Many Requests'
                  details: []
            application/xml:
              schema:
                $ref: '#/components/schemas/Error'
              example:
                error:
                  code: 429
                  message: 'Too Many Requests'
                  details: []
        '503':
          description: 'Une erreur est survenue durant l''enregistrement de l''article du blog.'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              example:
                error:
                  code: 503
                  message: SERVICE_UNAVAILABLE
                  details: ['Une erreur est survenue durant l''enregistrement de l''article de blog.']
            application/xml:
              schema:
                $ref: '#/components/schemas/Error'
              example:
                error:
                  code: 503
                  message: SERVICE_UNAVAILABLE
                  details: ['Une erreur est survenue durant l''enregistrement de l''article de blog.']
      security:
        -
          api_key: []
  '/v1/blog/article/{id}':
    get:
      tags:
        - blogArticle
      summary: 'Récupérer les informations d''un article de blog'
      description: 'Vous avez la possibilité de récupérer les informations d''un article de blog.'
      operationId: blogArticleGet
      parameters:
        -
          name: id
          in: path
          description: 'Identifiant de l''article du blog'
          required: true
          schema:
            type: int
      responses:
        '200':
          description: 'Information de l''article de blog'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ResponseBlogArticle'
            application/xml:
              schema:
                $ref: '#/components/schemas/ResponseBlogArticle'
        '401':
          description: 'La clé API est invalide'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              example:
                error:
                  code: 401
                  message: UNAUTHORIZED
                  details: []
            application/xml:
              schema:
                $ref: '#/components/schemas/Error'
              example:
                error:
                  code: 401
                  message: UNAUTHORIZED
                  details: []
        '404':
          description: 'Article de blog introuvable'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              example:
                error:
                  code: 404
                  message: NOT_FOUND
                  details: ['Article de blog introuvable']
            application/xml:
              schema:
                $ref: '#/components/schemas/Error'
              example:
                error:
                  code: 404
                  message: NOT_FOUND
                  details: ['Article de blog introuvable']
        '429':
          description: 'Erreur rate limit'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              example:
                error:
                  code: 429
                  message: 'Too Many Requests'
                  details: []
            application/xml:
              schema:
                $ref: '#/components/schemas/Error'
              example:
                error:
                  code: 429
                  message: 'Too Many Requests'
                  details: []
      security:
        -
          api_key: []
    put:
      tags:
        - blogArticle
      summary: 'Modification d''un article de blog'
      description: 'Vous avez la possibilité de modifier un article de blog.'
      operationId: blogArticleUpdate
      parameters:
        -
          name: id
          in: path
          description: 'Identifiant de l''article du blog'
          required: true
          schema:
            type: int
      requestBody:
        description: 'Information sur l''article de blog'
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/RequestBlogArticleUpdate'
      responses:
        '200':
          description: 'Modification de l''article du blog'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ResponseBlogArticle'
            application/xml:
              schema:
                $ref: '#/components/schemas/ResponseBlogArticle'
        '400':
          description: "Problème dans les paramètres :\r\n    - Paramètre manquant\r\n    - Paramètre json ne peut pas être exploité\r\n    "
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              example:
                error:
                  code: 400
                  message: PARAMETER_EMPTY
                  details: ['Paramètre manquant']
            application/xml:
              schema:
                $ref: '#/components/schemas/Error'
              example:
                error:
                  code: 400
                  message: PARAMETER_EMPTY
                  details: ['Paramètre manquant']
        '401':
          description: 'La clé API est invalide'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              example:
                error:
                  code: 401
                  message: UNAUTHORIZED
                  details: []
            application/xml:
              schema:
                $ref: '#/components/schemas/Error'
              example:
                error:
                  code: 401
                  message: UNAUTHORIZED
                  details: []
        '404':
          description: 'Article de blog introuvable'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              example:
                error:
                  code: 404
                  message: NOT_FOUND
                  details: ['Article de blog introuvable']
            application/xml:
              schema:
                $ref: '#/components/schemas/Error'
              example:
                error:
                  code: 404
                  message: NOT_FOUND
                  details: ['Article de blog introuvable']
        '429':
          description: 'Erreur rate limit'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              example:
                error:
                  code: 429
                  message: 'Too Many Requests'
                  details: []
            application/xml:
              schema:
                $ref: '#/components/schemas/Error'
              example:
                error:
                  code: 429
                  message: 'Too Many Requests'
                  details: []
      security:
        -
          api_key: []
    delete:
      tags:
        - blogArticle
      summary: 'Supprimer les informations d''un article de blog'
      description: 'Vous avez la possibilité de supprimer les informations d''un article de blog.'
      operationId: blogArticleDelete
      parameters:
        -
          name: id
          in: path
          description: 'Identifiant de l''article du blog'
          required: true
          schema:
            type: int
      responses:
        '200':
          description: 'Information de l''article de blog'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Success'
            application/xml:
              schema:
                $ref: '#/components/schemas/Success'
        '401':
          description: 'La clé API est invalide'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              example:
                error:
                  code: 401
                  message: UNAUTHORIZED
                  details: []
            application/xml:
              schema:
                $ref: '#/components/schemas/Error'
              example:
                error:
                  code: 401
                  message: UNAUTHORIZED
                  details: []
        '404':
          description: 'Article de blog introuvable'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              example:
                error:
                  code: 404
                  message: NOT_FOUND
                  details: ['Article de blog introuvable']
            application/xml:
              schema:
                $ref: '#/components/schemas/Error'
              example:
                error:
                  code: 404
                  message: NOT_FOUND
                  details: ['Article de blog introuvable']
        '429':
          description: 'Erreur rate limit'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              example:
                error:
                  code: 429
                  message: 'Too Many Requests'
                  details: []
            application/xml:
              schema:
                $ref: '#/components/schemas/Error'
              example:
                error:
                  code: 429
                  message: 'Too Many Requests'
                  details: []
      security:
        -
          api_key: []
  /v1/blog/article/:
    get:
      tags:
        - blogArticle
      summary: 'Récupération d''une liste d''article de blog'
      description: 'Vous avez la possibilité de récupérer une liste d''article de blog.'
      operationId: blogArticleList
      requestBody:
        description: 'Information sur le filtre'
        required: false
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/RequestBlogArticleList'
      responses:
        '200':
          description: 'Information sur les articles'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ResponseBlogList'
            application/xml:
              schema:
                $ref: '#/components/schemas/ResponseBlogList'
        '400':
          description: "Problème dans les paramètres :\r\n    - Paramètre manquant\r\n    - Paramètre json ne peut pas être exploité\r\n    "
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              example:
                error:
                  code: 400
                  message: PARAMETER_EMPTY
                  details: ['Paramètre manquant']
            application/xml:
              schema:
                $ref: '#/components/schemas/Error'
              example:
                error:
                  code: 400
                  message: PARAMETER_EMPTY
                  details: ['Paramètre manquant']
        '401':
          description: 'La clé API est invalide'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              example:
                error:
                  code: 401
                  message: UNAUTHORIZED
                  details: []
            application/xml:
              schema:
                $ref: '#/components/schemas/Error'
              example:
                error:
                  code: 401
                  message: UNAUTHORIZED
                  details: []
        '404':
          description: 'Article de blog introuvable'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              example:
                error:
                  code: 404
                  message: NOT_FOUND
                  details: ['Article de blog introuvable']
            application/xml:
              schema:
                $ref: '#/components/schemas/Error'
              example:
                error:
                  code: 404
                  message: NOT_FOUND
                  details: ['Article de blog introuvable']
        '429':
          description: 'Erreur rate limit'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              example:
                error:
                  code: 429
                  message: 'Too Many Requests'
                  details: []
            application/xml:
              schema:
                $ref: '#/components/schemas/Error'
              example:
                error:
                  code: 429
                  message: 'Too Many Requests'
                  details: []
      security:
        -
          api_key: []
  /v1/whoami:
    get:
      tags:
        - whoAmi
      summary: 'Récupérer les informations du site'
      description: 'Vous avez la possibilité de récupérer les informations du site en fonction de la clé API.'
      operationId: whoAmiGet
      responses:
        '200':
          description: 'Information du site'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ResponseWhoAmi'
            application/xml:
              schema:
                $ref: '#/components/schemas/ResponseWhoAmi'
        '404':
          description: 'Site introuvable'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              example:
                error:
                  code: 404
                  message: NOT_FOUND
                  details: ['Compte introuvable']
            application/xml:
              schema:
                $ref: '#/components/schemas/Error'
              example:
                error:
                  code: 404
                  message: NOT_FOUND
                  details: ['Compte introuvable']
      security:
        -
          api_key: []
components:
  schemas:
    RequestBlogArticleCreate:
      properties:
        title:
          title: Titre
          description: 'Titre de votre article de blog'
          type: string
          default: null
          maxLength: 100
          example: 'Mon article de blog'
          nullable: true
        shortDescription:
          title: 'Description courte'
          description: 'Description courte de votre article de blog'
          type: string
          default: null
          maxLength: 255
          example: 'Voici le résumé de mon article de blog'
          nullable: true
        description:
          title: Description
          description: 'Contenu texte de votre article de blog'
          type: string
          default: null
          example: '<p>Voici le contenu de mon article de blog</p><p>Vous pouvez retrouver toutes les informations sur mon site</p>'
          nullable: true
        image:
          title: Image
          description: 'Image de votre article de blog. Url ou contenu de l''image en base64 encode'
          type: string
          default: null
          example: 'https://www.url-du-site-de-l-image.fr/mon-image.png'
          nullable: true
        metaTitle:
          title: 'Meta title'
          description: 'Meta title de votre article de blog'
          type: string
          default: null
          maxLength: 255
          example: 'Mon article de blog'
          nullable: true
        metaKeywords:
          title: 'Meta keywords'
          description: 'Meta keywords de votre article de blog'
          type: string
          default: null
          maxLength: 255
          example: 'mon article, ma ville, ...'
          nullable: true
        metaDescription:
          title: 'Meta description'
          description: 'Meta description de votre article de blog'
          type: string
          default: null
          maxLength: 255
          example: 'Vous pouvez retrouver toutes les informations dans mon article de blog'
          nullable: true
        metaAvailableIndexation:
          title: 'Permettre le référencement de la page. Afin de pouvoir configurer ce paramètre, il vous faut le Module SEO Pro'
          description: "\r\n - 1 : La page est référencée par les moteurs de recherche.\r\n - 2 : Ne pas référencer la page et ne pas suivre les liens de la page\r\n - 3 : Ne pas référencer la page\r\n - 4 : Ne pas suivre les liens de la page"
          type: integer
          default: 1
          enum:
            - 1
            - 2
            - 3
            - 4
          example: '1'
        linkRewrite:
          title: 'URL personnalisée'
          description: 'URL personnalisée de votre article de blog'
          type: string
          default: null
          maxLength: 255
          example: mon-article-de-blog
          nullable: true
        status:
          title: 'Activer l''article'
          description: "\r\n    - 1 : L'article de blog est visible sur votre site\r\n    - 0 : L'article de blog n'est pas visible sur votre site"
          type: integer
          default: 1
          enum:
            - 1
            - 0
          example: '1'
        activateComment:
          title: 'Activer les commentaires'
          description: "\r\n    - null : Utiliser la configuration par défaut du blog\r\n    - 1 : Forcer l'activation des commentaires\r\n    - 0 : Forcer la désactivation des commentaires"
          type: integer
          default: null
          enum:
            - 1
            - 0
          example: '1'
          nullable: true
        publishedAt:
          title: 'Date de publication'
          description: 'Date de publication (Date au format ISO 8601)'
          type: string
          default: null
          example: '2024-12-01T09:00:00+00:00'
          nullable: true
        idCategories:
          title: 'Liste des identifiants des catégories'
          description: 'Définir la liste des identifiants des catégories de votre blog'
          type: array
          items:
            type: integer
          nullable: true
        labelCategories:
          title: 'Liste des libellés des catégories'
          description: 'Définir la liste des libellés des catégories de votre blog, si nous ne trouvons pas le libellé, une nouvelle catégorie sera créée'
          type: array
          items:
            type: string
          nullable: true
        idTags:
          title: 'Liste des identifiants des tags'
          description: 'Définir la liste des identifiants des tags de votre blog'
          type: array
          items:
            type: integer
          nullable: true
        labelTags:
          title: 'Liste des libellés des tags'
          description: 'Définir la liste des libellés des tags de votre blog, si nous ne trouvons pas le libellé, un nouveau tag sera créée'
          type: array
          items:
            type: string
          nullable: true
      type: object
    RequestBlogArticleList:
      properties:
        page:
          title: 'Page que vous souhaitez consulter'
          description: ''
          type: integer
          default: '1'
          example: '1'
          nullable: true
        orderBy:
          title: 'Ordonner le résultat en fonction du champ'
          description: 'Ordonner en fonction de la date de publication des articles de blogs'
          type: enum
          default: published_at
          enum:
            - published_at
            - id
          example: published_at
        orderDirection:
          title: 'Direction de la liste'
          description: 'Orderner la la liste de façon croissante ou décroissante'
          type: enum
          default: asc
          enum:
            - asc
            - desc
          example: asc
        status:
          title: 'Activer l''article'
          description: "\r\n    - null : Visible et non visible sur votre site\r\n    - 1 : L'article de blog est visible sur votre site\r\n    - 0 : L'article de blog n'est pas visible sur votre site"
          type: integer
          default: 1
          enum:
            - 1
            - 0
          example: '1'
          nullable: true
        filterPublishedAtGte:
          title: 'Date de publication de l''article du blog après votre date'
          description: 'Indiquez la date format ISO 8601'
          type: string
          format: date-time
          default: null
          example: '2024-09-30T00:00:00+00:00'
          nullable: true
        filterPublishedAtLte:
          title: 'Date de publication de l''article du blog avant votre date'
          description: 'Indiquez la date format ISO 8601'
          type: string
          format: date-time
          default: null
          example: '2024-09-30T00:00:00+00:00'
          nullable: true
      type: object
    RequestBlogArticleUpdate:
      properties:
        title:
          title: Titre
          description: 'Titre de votre article de blog'
          type: string
          default: null
          maxLength: 100
          example: 'Mon article de blog'
          nullable: true
        shortDescription:
          title: 'Description courte'
          description: 'Description courte de votre article de blog'
          type: string
          default: null
          maxLength: 255
          example: 'Voici le résumé de mon article de blog'
          nullable: true
        description:
          title: Description
          description: 'Contenu texte de votre article de blog'
          type: string
          default: null
          example: '<p>Voici le contenu de mon article de blog</p><p>Vous pouvez retrouver toutes les informations sur mon site</p>'
          nullable: true
        image:
          title: Image
          description: 'Image de votre article de blog. Url ou contenu de l''image en base64 encode'
          type: string
          default: null
          example: 'https://www.url-du-site-de-l-image.fr/mon-image.png'
          nullable: true
        metaTitle:
          title: 'Meta title'
          description: 'Meta title de votre article de blog'
          type: string
          default: null
          maxLength: 255
          example: 'Mon article de blog'
          nullable: true
        metaKeywords:
          title: 'Meta keywords'
          description: 'Meta keywords de votre article de blog'
          type: string
          default: null
          maxLength: 255
          example: 'mon article, ma ville, ...'
          nullable: true
        metaDescription:
          title: 'Meta description'
          description: 'Meta description de votre article de blog'
          type: string
          default: null
          maxLength: 255
          example: 'Vous pouvez retrouver toutes les informations dans mon article de blog'
          nullable: true
        metaAvailableIndexation:
          title: 'Permettre le référencement de la page. Afin de pouvoir configurer ce paramètre, il vous faut le Module SEO Pro'
          description: "\r\n - 1 : La page est référencée par les moteurs de recherche.\r\n - 2 : Ne pas référencer la page et ne pas suivre les liens de la page\r\n - 3 : Ne pas référencer la page\r\n - 4 : Ne pas suivre les liens de la page"
          type: integer
          default: 1
          enum:
            - 1
            - 2
            - 3
            - 4
          example: '1'
        linkRewrite:
          title: 'URL personnalisée'
          description: 'URL personnalisée de votre article de blog'
          type: string
          default: null
          maxLength: 255
          example: mon-article-de-blog
          nullable: true
        status:
          title: 'Activer l''article'
          description: "\r\n    - 1 : L'article de blog est visible sur votre site\r\n    - 0 : L'article de blog n'est pas visible sur votre site"
          type: integer
          default: 1
          enum:
            - 1
            - 0
          example: '1'
        activateComment:
          title: 'Activer les commentaires'
          description: "\r\n    - null : Utiliser la configuration par défaut du blog\r\n    - 1 : Forcer l'activation des commentaires\r\n    - 0 : Forcer la désactivation des commentaires"
          type: integer
          default: null
          enum:
            - 1
            - 0
          example: '1'
          nullable: true
        publishedAt:
          title: 'Date de publication'
          description: 'Date de publication (Date au format ISO 8601)'
          type: string
          default: null
          example: '2024-12-01T09:00:00+00:00'
          nullable: true
        idCategories:
          title: 'Liste des identifiants des catégories'
          description: 'Définir la liste des identifiants des catégories de votre blog'
          type: array
          items:
            type: integer
          nullable: true
        labelCategories:
          title: 'Liste des libellés des catégories'
          description: 'Définir la liste des libellés des catégories de votre blog, si nous ne trouvons pas le libellé, une nouvelle catégorie sera créée'
          type: array
          items:
            type: string
          nullable: true
        idTags:
          title: 'Liste des identifiants des tags'
          description: 'Définir la liste des identifiants des tags de votre blog'
          type: array
          items:
            type: integer
          nullable: true
        labelTags:
          title: 'Liste des libellés des tags'
          description: 'Définir la liste des libellés des tags de votre blog, si nous ne trouvons pas le libellé, un nouveau tag sera créée'
          type: array
          items:
            type: string
          nullable: true
      type: object
    ResponseBlogArticle:
      properties:
        title:
          title: Titre
          description: 'Titre de votre article de blog'
          type: string
          default: null
          maxLength: 100
          example: 'Mon article de blog'
          nullable: true
        shortDescription:
          title: 'Description courte'
          description: 'Description courte de votre article de blog'
          type: string
          default: null
          maxLength: 255
          example: 'Voici le résumé de mon article de blog'
          nullable: true
        description:
          title: Description
          description: 'Contenu texte de votre article de blog'
          type: string
          default: null
          example: '<p>Voici le contenu de mon article de blog</p><p>Vous pouvez retrouver toutes les informations sur mon site</p>'
          nullable: true
        image:
          title: Image
          description: 'Image de votre article de blog. Url ou contenu de l''image en base64 encode'
          type: string
          default: null
          example: 'https://www.url-du-site-de-l-image.fr/mon-image.png'
          nullable: true
        metaTitle:
          title: 'Meta title'
          description: 'Meta title de votre article de blog'
          type: string
          default: null
          maxLength: 255
          example: 'Mon article de blog'
          nullable: true
        metaKeywords:
          title: 'Meta keywords'
          description: 'Meta keywords de votre article de blog'
          type: string
          default: null
          maxLength: 255
          example: 'mon article, ma ville, ...'
          nullable: true
        metaDescription:
          title: 'Meta description'
          description: 'Meta description de votre article de blog'
          type: string
          default: null
          maxLength: 255
          example: 'Vous pouvez retrouver toutes les informations dans mon article de blog'
          nullable: true
        metaAvailableIndexation:
          title: 'Permettre le référencement de la page. Afin de pouvoir configurer ce paramètre, il vous faut le Module SEO Pro'
          description: "\r\n - 1 : La page est référencée par les moteurs de recherche.\r\n - 2 : Ne pas référencer la page et ne pas suivre les liens de la page\r\n - 3 : Ne pas référencer la page\r\n - 4 : Ne pas suivre les liens de la page"
          type: integer
          default: 1
          enum:
            - 1
            - 2
            - 3
            - 4
          example: '1'
        linkRewrite:
          title: 'URL personnalisée'
          description: 'URL personnalisée de votre article de blog'
          type: string
          default: null
          maxLength: 255
          example: mon-article-de-blog
          nullable: true
        status:
          title: 'Activer l''article'
          description: "\r\n    - 1 : L'article de blog est visible sur votre site\r\n    - 0 : L'article de blog n'est pas visible sur votre site"
          type: integer
          default: 1
          enum:
            - 1
            - 0
          example: '1'
        activateComment:
          title: 'Activer les commentaires'
          description: "\r\n    - null : Utiliser la configuration par défaut du blog\r\n    - 1 : Forcer l'activation des commentaires\r\n    - 0 : Forcer la désactivation des commentaires"
          type: integer
          default: null
          enum:
            - 1
            - 0
          example: '1'
          nullable: true
        publishedAt:
          title: 'Date de publication'
          description: 'Date de publication (Date au format ISO 8601)'
          type: string
          default: null
          example: '2024-12-01T09:00:00+00:00'
          nullable: true
        id:
          title: 'Identifiant de l''article de blog'
          type: integer
          example: '1'
        url:
          title: 'URL de l''article de blog'
          type: string
          example: 'https://www.example.fr/blog/**************-n********.html'
        categories:
          title: 'Liste des catégories de l''article'
          description: 'Information contenant les catégories'
          type: array
          items:
            $ref: '#/components/schemas/ResponseBlogCategory'
        tags:
          title: 'Liste des tags de l''article'
          description: 'Information contenant les tags'
          type: array
          items:
            $ref: '#/components/schemas/ResponseBlogTag'
      type: object
    ResponseBlogList:
      properties:
        paginator:
          $ref: '#/components/schemas/Paginator'
        items:
          title: 'Liste contenant les articles du blog'
          description: ''
          type: array
          items:
            $ref: '#/components/schemas/ResponseBlogArticle'
      type: object
    ResponseBlogCategory:
      properties:
        title:
          title: Titre
          description: 'Titre de votre catégorie de blog'
          type: string
          default: null
          maxLength: 30
          example: 'Ma catégorie'
          nullable: true
        sectionTitle:
          title: 'Titre de la page'
          description: 'Titre de la page de votre catégorie de blog'
          type: string
          default: null
          maxLength: 100
          example: 'Voici le titre de ma page'
          nullable: true
        headerContent:
          title: 'Contenu de haut de page'
          description: 'Contenu en haut de la page de votre catégorie de blog'
          type: string
          default: null
          example: '<p>Contenu de haut de page</p>'
          nullable: true
        footerContent:
          title: 'Contenu de bas de page'
          description: 'Contenu en bas de la page de votre catégorie de blog'
          type: string
          default: null
          example: '<p>Contenu de bas de page</p>'
          nullable: true
        metaTitle:
          title: 'Meta title'
          description: 'Meta title de votre catégorie de blog'
          type: string
          default: null
          maxLength: 255
          example: 'ma catégorie de blog'
          nullable: true
        metaKeywords:
          title: 'Meta keywords'
          description: 'Meta keywords de votre catégorie de blog'
          type: string
          default: null
          maxLength: 255
          example: 'ma catégorie, ma ville, ...'
          nullable: true
        metaDescription:
          title: 'Meta description'
          description: 'Meta description de votre catégorie de blog'
          type: string
          default: null
          maxLength: 255
          example: 'Vous pouvez retrouver toutes les informations dans ma catégorie de blog'
          nullable: true
        metaAvailableIndexation:
          title: 'Permettre le référencement de la page. Afin de pouvoir configurer ce paramètre, il vous faut le Module SEO Pro'
          description: "\r\n    - 1 : La page est référencée par les moteurs de recherche.\r\n    - 2 : Ne pas référencer la page et ne pas suivre les liens de la page\r\n    - 3 : Ne pas référencer la page\r\n    - 4 : Ne pas suivre les liens de la page"
          type: integer
          default: 1
          enum:
            - 1
            - 2
            - 3
            - 4
          example: '1'
        linkRewrite:
          title: 'URL personnalisée'
          description: 'URL personnalisée de votre catégorie de blog'
          type: string
          default: null
          maxLength: 255
          example: ma-categorie-de-blog
          nullable: true
        status:
          title: 'Activer la catégorie'
          description: "\r\n    - 1 : La catégorie de blog est visible sur votre site\r\n    - 0 : La catégorie de blog n'est pas visible sur votre site"
          type: integer
          default: 1
          enum:
            - 1
            - 0
          example: '1'
        id:
          title: 'Identifiant de la categorie de blog'
          type: integer
          example: '1'
      type: object
    ResponseBlogTag:
      properties:
        label:
          title: Libellé
          description: 'Libellé de votre tag de blog'
          type: string
          default: null
          example: 'Mon tag'
          nullable: true
        id:
          title: 'Identifiant du tag de blog'
          type: integer
          example: '1'
      type: object
    Error:
      properties:
        error:
          $ref: '#/components/schemas/ErrorData'
      type: object
    ErrorData:
      properties:
        code:
          title: 'Code HTTP d''erreur'
          type: integer
        message:
          title: 'Type d''erreur'
          description: 'Vous aurez le code de l''erreur.'
          type: string
        details:
          title: 'Description de l''erreur'
          description: 'Vous aurez une information détaillée sur le type d''erreur.'
          type: array
          items:
            type: string
      type: object
    Paginator:
      properties:
        currentPage:
          title: 'Page courante du résultat'
          description: 'Information sur la page courante de votre liste'
          type: integer
          example: '1'
        itemsPerPage:
          title: 'Nombre d''éléments par page'
          description: 'Information sur le nombre d''éléments affiché sur chaque page'
          type: integer
          example: '50'
        totalItemsCount:
          title: 'Nombre total d''éléments'
          description: 'Information sur le nombre total d''éléments qui correspond à votre demande'
          type: integer
          example: '50'
      type: object
    Success:
      properties:
        success:
          title: 'Message de success'
          description: ''
          type: string
      type: object
    ResponseWhoAmi:
      properties:
        url:
          title: Site
          description: 'Url du site'
          type: string
          example: 'https://www.example.fr'
      type: object
  securitySchemes:
    api_key:
      type: apiKey
      name: X-API-KEY
      in: header
tags:
  -
    name: blogArticle
    description: 'Article de blog'
    x-displayName: 'Article de blog'
  -
    name: blogCategory
    description: 'Categorie de blog'
    x-displayName: 'Categorie de blog'
  -
    name: blogTag
    description: 'Tag de blog'
    x-displayName: 'Tag de blog'
  -
    name: whoAmi
    description: 'Information sur le site'
    x-displayName: 'Information sur le site'
