openapi: 3.0.0
servers:
  - url: //paps-api.papslogistics.com
    description: Default server
  - url: //paps-api.papslogistics.com
    description: Sandbox server
info:
  description: |
    You can find out more about Swagger at
    [paps-swagger](https://paps-api.papslogistics.com/docs/).
    For this sample, you can use the api key `special-key` to test the authorization filters.

    # Introduction
    Paps offers an API that allows developers to extend the built-in functionality of these warehousing, delivery, shipping services.
    The Paps API allows you to create tasks (delivery and shipping).

    Before you can integrate a [PAPS](https://papslogistics.com/) product or solution, you must configure your development environment to obtain a `key`,
    which authorizes your REST API calls.
     To test your web and mobile applications, you can use [swagger]. You must have a developer account, personal or professional.

    # Create sandbox accounts
    To test your web and mobile apps with mock shipping, create a personal account to represent a buyer and a business account to represent a merchant.
      - fill in the token generated.
          ``
          Note: If you do not have an key, click [Create].
          ``
      - Under Sandbox, click Accounts, and then click [Create Account](https://papslogistics.com/contact).

    # PAPS security guidelines and best practices
    This document provides important security related guidelines and best practices for both
    development projects and system integrations. The following two main topics are covered:

    - [Security best practices for PAPS integrations](###)
    - [Information security guidelines for developers](###)

    # Authentication

    PAPS offers two forms of authentication:
      - API Key
      - OAuth2

    OAuth2 - an open protocol to allow secure authorization in a simple
    and standard method from web, mobile and desktop applications.

    # Request URL
    `https://paps-api.papslogistics.com/<path>?apiKey=<apiKey>`

    Conduct tests [here](#)

    # Reply and error codes
    All unsuccessful queries will return a code other than `200`

    The list of codes explaining only the errors of the services and not the errors from the Developer application :
      - `200` Successful: The request was successful.
      - `400` Bad request : The request cannot continue because it is missing a mandatory parameter. Check that you have set all parameters to execute the request.
      - `401` Unauthorised: The authentication of the request did not go well. You did not include the security key that allows us to authenticate you.
      - `402` Unknown key: The security key in the request is incorrect. Please check that the key is the one that was sent to you by email.
      - `502` Bad gateway: The request cannot be fulfilled at this time. Please try again later

    # Following these tasks
    The API restores, from the shipment number, the history of the known follow-up statuses for the following services:
      -  creation of users
      - creation of clients
      - add products
      - upload a catalog
      - creation of delivery and shipping tasks.

    It allows a simple integration and a harmonized follow-up of the statuses of these various products.
    The "event" object gathers the events linked to the flashings of a sending by our services during its routing.
    These events, which can be redundant, carry codes useful to your information systems.


    <SecurityDefinitions />

  version: 1.0.0
  title: PAPS API
  contact:
    name: API Support
    email: developers@paps-app.com
  x-logo:
    url: './icon-128x128.png'
    altText: Paps logo
  license:
    name: Apache 2.0
    url: 'http://www.apache.org/licenses/LICENSE-2.0.html'
externalDocs:
  description: Find out how to create Github repo for your OpenAPI spec.
  url: ''
tags:
  - name: clients
  - name: users
  - name: catalogues
  - name: products
  - name: Task
  - name: activities
  - name: shippingRate
    x-displayName: Shipping Rate
    description: |
      <SchemaDefinition schemaRef="#/components/schemas/Pet" />
  - name: fulfillment_model
    x-displayName: Shipping Tour
    description: |
      <SchemaDefinition schemaRef="#/components/schemas/ShippingTour" />
x-tagGroups:
  - name: General
    tags:
      - clients
      - users
      - catalogues
      - products
      - Task
      - activities
  - name: App e-commerce
    tags:
      - Create Shipping Tour
  - name: Models
    tags:
      - shippingRate
      - fulfillment_model
paths:
  /clients/receivers:
    parameters:
      - name: firstname
        in: header
        description: " customer's FirstName"
        example: kiamet
        required: true
        schema:
          type: string
      - name: lastname
        in: header
        description: " customer's LastName "
        example: MAV
        required: true
        schema:
          type: string
      - name: phoneNumber
        in: header
        description: "customer's phone"
        example: +221 72 700 60 30
        required: true
        schema:
          type: number
      - name: address
        in: header
        description: "Customer's shipping address"
        example: 75 cite keur gorgui, Dakar,Sénégal
        required: true
        schema:
          type: string
      - name: email
        in: header
        description: "Customer's email"
        example: xxxxxx@gmail.com
        required: true
        schema:
          type: string
      - name: company
        in: header
        description: "Customer's company"
        example: PAPS
        required: false
        schema:
          type: string
      - name: specificationAddress
        in: header
        description: "specific address of the customer"
        example: PAPS
        required: false
        schema:
          type: string
      - name: cookieParam
        in: cookie
        description: Some cookie
        required: false
        schema:
          type: integer
          format: int64
    post:
      tags:
        - clients
      summary: Add a new client 👻
      description: "This request is used to add a customer to your top customer list.
      This is to facilitate and execute an order as fast as possible;
      it is convenient for an express delivery."
      operationId: addClient
      responses:
        '200':
          description: success operation
          content:
            application/json:
              schema:
                type: object
                properties:
                  firstname:
                    type: string
                    example: trinhchin
                  lastname:
                    type: string
                    example: innos
                  phoneNumber:
                    type: string
                    example: 00221770500123
                  email:
                    type: string
                    example: trinhchin.innos@gmail.com
                  entreprise:
                    type: string
                    example: hinno
                  address:
                    type: string
                    example: Dakar-Plateau, Dakar, Sénégal
                  specificationAddress:
                    type: string
                    example: côté boulangerie
      security:
        - api_key: []
      x-codeSamples:
        - lang: 'Shell'
          source: |
              curl -X POST \
                https://api.papslogistics.com/v1/clients/receivers?apiKey=special_key \
                -H 'Content-Type: application.json' \
                -H 'X-Paps-Access-Token: {access_token}' \
                -d '
                {
                  "firstname":
                  "lastname":
                  "phoneNumber":
                  "address":
                  "email":
                  "company":
                  "specificationAddress":
                }
              '
      requestBody:
        $ref: '#/components/requestBodies/clients/receivers'

    get:
      tags:
        - clients
      summary: retrieve all clients
      description: retrieve....
      operationId: fetch clients
      responses:
        '200':
          description: success operation
          content:
            application/json:
              schema:
                type: object
                properties:
                  receiver_UID:
                    type: string
                    example: 600aba46c6082a3bca550f15
                  receiver_firstname:
                    type: string
                    example: daback
                  receiver_lastname:
                    type: string
                    example: YAPO
                  receiver_phone_number:
                    type: string
                    example: 00221770001122
                  receiver_email:
                    type: string
                    example: dabackYapo@gmail.com
                  receiver_entreprise:
                    type: string
                    example: wetchou
                  receiver_address:
                      type: object
                      properties:
                        country:
                          type: string
                          example: Senegal
                        city":
                          type: string
                          example: Sicap-Liberté
                        region":
                          type: string
                          example: Dakar Region
                        address":
                          type: string
                          example: Dakar Sacré Coeur, Dakar Region, Senegal
                        place_id":
                          type: string
                          example: ChIJJdWNz7tywQ4Rxth1EgBU1p0
                        additional_address:
                          schema:
                        location:
                          type: object
                          properties:
                            latitude:
                              type: string
                              example: 14.7133509
                            longitude:
                              type: string
                              example: -17.4621269
                  receiver_specification_address:
                    type: string
                    example: côté boulangerie
                  receiver_client_UID:
                    type: string
                    example: 600aba46c6082a3bca550f15
                  receiver_created_at:
                    type: string
                    example: 2021-01-21T15:50:32.155Z
                  receiver_last_edited_at:
                    type: string
                    example: 2021-01-22T15:50:32.155Z
      security:
        - api_key: []
  /clients/users:
    parameters:
      - name: firstname
        in: header
        description: " User FirstName"
        example: kiamet
        required: true
        schema:
          type: string
      - name: lastname
        in: header
        description: " User LastName "
        example: MAV
        required: true
        schema:
          type: string
      - name: phoneNumber
        in: header
        description: "User phone"
        example: +221 72 700 60 30
        required: true
        schema:
          type: number
      - name: job
        in: header
        description: "The name job of the User"
        example: responsible for shipments
        required: true
        schema:
          type: string
      - name: email
        in: header
        description: "User email"
        example: xxxxxx@gmail.com
        required: true
        schema:
          type: string
      - name: profile
        in: header
        description: "Select a profile to assign : ADMIN , SIMPLE"
        required: true
        schema:
          type: string
          default: SIMPLE
      - name: pictureURL
        in: header
        description: "The avatar of the User"
        example: http://localhost.com/picture/3141321424
        required: false
        schema:
          type: string
      - name: cookieParam
        in: cookie
        description: Some cookie
        required: false
        schema:
          type: integer
          format: int64
    post:
      tags:
        - users
      summary: Create one User 👻
      description: 'This request is used to add a user. This is to delegate tasks within your team.'
      operationId: placeUser
      responses:
        '200':
          description: success operation
          content:
            application/json:
              schema:
                type: object
                properties:
                  firstname:
                    type: string
                    example: trinhchin
                  lastname:
                    type: string
                    example: innos
                  phoneNumber:
                    type: string
                    example: 00221770500123
                  email:
                    type: string
                    example: trinhchin.innos@gmail.com
                  job:
                    type: string
                    example: hinno
                  profil:
                    type: string
                    example: ADMIN
                  pictureURL:
                    type: string
                    example: http://localhost.com/picture/3141321424
      security:
        - api_key: []
      x-codeSamples:
        - lang: 'Shell'
          source: |
           curl -X POST \
                https://api.papslogistics.com/v1/clients/users?apiKey=special_key \
                -H 'Content-Type: application.json' \
                -H 'X-Paps-Access-Token: {access_token}' \
                -d '
                {
                    "firstname": "trinhchin",
                    "lastname": "innos",
                    "phoneNumber": "+221770000000",
                    "email": "trinhchin.innos@gmail.com",
                    "job": "hinno",
                    "profile": "ADMIN",
                    "pictureURL": "http://localhost.com/picture/3141321424"
                }
              '
      requestBody:
        $ref: '#/components/requestBodies/clients/users'
  /catalogues:
    parameters:
      - name: picture
        in: header
        description: "specific address of the customer"
        example: PAPS
        required: true
        schema:
          type: array
          maxItems: 20
          xml:
            name: photoUrl
            wrapped: true
          items:
            type: string
            format: url
      - name: name
        in: header
        description: " Name of product"
        example: basket
        required: true
        schema:
          type: string
      - name: reference
        in: header
        description: " product reference"
        example: i280
        required: true
        schema:
          type: string
      - name: description
        in: header
        description: " description product"
        example: bla bla bla
        required: true
        schema:
          type: string
      - name: category
        in: header
        description: " category of product"
        example: play
        required: true
        schema:
          type: string
      - name: value
        in: header
        description: " price of product"
        example: 1599
        required: true
        schema:
          type: number
      - name: volume
        in: header
        description: " volume  product"
        example: 9
        required: false
        schema:
          type: number
      - name: packageSize
        in: header
        description: "total package size (S, M, L, XL, XXL) items"
        default: S
        required: true
        schema:
          type: string
      - name: cookieParam
        in: cookie
        description: Some cookie
        required: true
        schema:
          type: integer
          format: int64
    post:
      tags:
        - catalogues
      summary: Add Catalogue ✨
      description: "This request is used to add and or store these items.
      It consists of creating virtual products to store at PAPS to facilitate delivery;
      useful for saving money!"
      operationId: uploadProduct
      responses:
        '200':
          description: success operation
          content:
            application/json:
              schema:
                type: object
                properties:
                  code:
                    type: integer
                    format: int32
                    example: 200
                  message:
                    type: string
                    example: successfully
                  data:
                    type: object
                    example: Object<T>
      security:
        - api_key: []
      x-codeSamples:
        - lang: 'Shell'
          source: |
            curl -X POST \
                https://api.papslogistics.com/v1/catalogues?apiKey=special_key \
                -H 'Content-Type: application.json' \
                -H 'X-Paps-Access-Token: {access_token}' \
                -d '
                {
                    "picture": "http://localhost.com/picture/3141321424",
                    "name": "iPhone 12",
                    "reference": "£3205",
                    "description": "apple iphone gold",
                    "category": "Phones & Tablets",
                    "value": "800998",
                    "volume": "12",
                    "packageSize": "S"
                }
              '
      requestBody:
        $ref: '#/components/requestBodies/catalogues'
  /products:
    parameters:
      - name: picture
        in: header
        description: "specific address of the customer"
        example: PAPS
        required: true
        schema:
          type: array
          maxItems: 1
          xml:
            name: photoUrl
            wrapped: true
          items:
            type: string
            format: url
      - name: name
        in: header
        description: " Name of product"
        example: basket
        required: true
        schema:
          type: string
      - name: reference
        in: header
        description: " product reference"
        example: i280
        required: true
        schema:
          type: string
      - name: description
        in: header
        description: " description product"
        example: bla bla bla
        required: true
        schema:
          type: string
      - name: category
        in: header
        description: " category of product"
        example: play
        required: true
        schema:
          type: string
      - name: value
        in: header
        description: " price of product"
        example: 1599
        required: true
        schema:
          type: number
      - name: volume
        in: header
        description: " volume  product"
        example: 9
        required: false
        schema:
          type: number
      - name: packageSize
        in: header
        description: "total package size (S, M, L, XL, XXL) items"
        default: S
        required: true
        schema:
          type: string
      - name: cookieParam
        in: cookie
        description: Some cookie
        required: false
        schema:
          type: integer
          format: int64
    post:
      tags:
        - products
      summary: Add New Product ⚓
      description: "This request is used to add and or store these items.
      It consists of creating virtual products to store at PAPS to facilitate delivery;
      useful for saving money!"
      operationId: addProduct
      responses:
        '200':
          description: success operation
          content:
            application/json:
              schema:
                type: object
                properties:
                  code:
                    type: integer
                    format: int32
                    example: 200
                  message:
                    type: string
                    example: successfully
                  data:
                    type: object
                    example: Object<T>
      security:
        - api_key: []
      x-codeSamples:
        - lang: 'Shell'
          source: |
            curl -X POST \
                https://api.papslogistics.com/v1/products?apiKey=special_key \
                -H 'Content-Type: application.json' \
                -H 'X-Paps-Access-Token: {access_token}' \
                -d '
                {
                    "picture": "http://localhost.com/picture/3141321424",
                    "name": "iPhone 12",
                    "reference": "£3205",
                    "description": "apple iphone gold",
                    "category": "Phones & Tablets",
                    "value": "800998",
                    "volume": "12",
                    "packageSize": "S"
                }
              '
      requestBody:
        $ref: '#/components/requestBodies/products'
  /createTask:
    parameters:
      - name: datePickup
        in: header
        description: " date of pick items"
        example: "2021-12-01T08:37:08.432Z"
        required: true
        schema:
          type: string
          format: date
      - name: timePickup
        in: header
        description: " time of pick items"
        example: "11:00"
        required: true
        schema:
          type: string
      - name: vehicleType
        in: header
        description: " vehicle type : VAN, MINIVAN, SCOOTER"
        default: "MINIVAN"
        required: true
        schema:
          type: string
          format: time
      - name: address
        in: header
        description: "Customer's shipping address"
        example: 75 cite keur gorgui, Dakar,Sénégal
        required: true
        schema:
          type: array
      - name: receiver
        in: header
        description: customer's name
        default: customers_auth
        example: customers_auth
        required: true
        schema:
          type: object
          properties:
              firstName:
                type: string
                example: trinhchin
              lastName:
                type: string
                example: innos
              phoneNumber:
                type: string
                example: 00221770000000
              address":
                type: string
                example: Dakar Sacré Coeur, Dakar Region, Senegal
              email:
                type: string
                example: xxx@example.com
              entreprise:
                type: string
                example: PAPS
              specificationAddress:
                type: string
                example: coté rond point cité keur Gorgui
      - name: parcels
        in: header
        description: products to pick
        example: parcels_auth
        required: true
        schema:
          type: object
          properties:
              packageSize:
                type: string
                example: S
                description: The packageSize of the Parcel [S, M, L, XL, XXL]
              price:
                type: number
                example: 10000
                description: The price of the Parcel
              amountCollect:
                type: number
                example: 10000
                description: The amountCollect of the Parcel
      - name: cookieParam
        in: cookie
        description: Some cookie
        required: false
        schema:
          type: integer
          format: int64
    post:
      tags:
        - Task
      summary: Create Task 🚘
      description: This request is used to create a pickup task. A pickup task refers to an errand where the package is to be picked up and delivered.
      operationId: addCarrier
      responses:
        '200':
          description: success operation
          content:
            application/json:
              schema:
                type: object
                properties:
                  job_type:
                    type: string
                    example: PICKUP
                  job_address:
                      type: object
                      properties:
                        country:
                          type: string
                          example: Senegal
                        countryCode:
                          type: string
                          example: SN
                        city:
                          type: string
                          example: Dakar-Plateau
                        region:
                          type: string
                          example: Dakar Region
                        address:
                          type: string
                          example: Dakar-Plateau, Dakar Region, Senegal
                        additional_address:
                         type: string
                        location:
                          type: object
                          properties:
                            latitude:
                              type: number
                              example: 14.6629438
                            longitude:
                              type: number
                              example: -17.4374803
                        place_id:
                          type: string
                          example: ChIJXRv0vE5ywQ4RpvG-1YKthC0
                  job_date:
                    type: string
                    example: 2020-01-01
                  job_slot_start:
                    type: string
                    example: 11:00
                  job_slot_end:
                    type: number
                    example: 13:00
                  job_time:
                    type: number
                    example: 11:00
                  job_vehicle_type:
                    type: string
                    example: SCOOTER
      security:
        - api_key: []
      x-codeSamples:
        - lang: 'Shell'
          source: |
                  curl -X 'POST' \
                  'http://localhost:14300/tasks' \
                  -H 'accept: application/json' \
                  -H 'Content-Type: application/json' \
                  -d '{
                  "type": "PICKUP",
                  "datePickup": "2022-01-31T15:05:20.492Z",
                  "timePickup": "11:00",
                  "vehicleType": "SCOOTER",
                  "address": "Dakar-Plateau, Dakar, Sénégal",
                  "receiver": {
                    "firstname": "trinhchin",
                    "lastname": "innos",
                    "phoneNumber": "+221770000000",
                    "email": "trinhchin.innos@gmail.com",
                    "entreprise": "hinno",
                    "address": "Dakar-Plateau, Dakar, Sénégal",
                    "specificationAddress": "côté brioche"
                  },
                  "parcels": [
                    {
                      "packageSize": "S",
                      "description": "trinhchin",
                      "price": 10000,
                      "amountCollect": 10000
                    }
                  ]}

      requestBody:
        $ref: '#/components/requestBodies/createTask'
  /activities:
    get:
      tags:
        - activities
      summary: retrieve all activities
      description: You can view the tasks that have been created using this method.
      operationId: fetchActivities
      responses:
        '400':
          description: error operation
          content:
            application/json:
              schema:
                type: object
                properties:
                  code:
                    type: integer
                    format: int32
                    example: 40x
                  message:
                    type: string
                    example: error
                  error:
                    type: string
                    example: xxxxxxx
      security:
        - api_key: []
components:
  schemas:
    ApiResponse:
      type: object
      properties:
        code:
          type: integer
          format: int32
        type:
          type: string
        message:
          type: string
    Receiver:
      description: receiver infos
      allOf:
        - $ref: '#/paths/createTask'
        - type: object
          properties:
            firstName:
              type: string
              description: firstname of customer's
              example: malick
            required:
              - firstName
    GetRates:
      description: get the shipping rate
      allOf:
        - $ref: '#/components/schemas/Pet'
        - type: object
          properties:
            apiKey:
              type: string
              description: Your special key generated
              example: ibes7i7gmpsv326bkz38qkdjfdskjfndn72l1v28mzpb0p7aqq
          required:
            - apiKey
    Origin:
      type: object
      properties:
        country:
          description: Senegal
          type: string
          minLength: 1
        city:
          description: Dakar
          type: string
        address1:
          description: 75, cite keur gorgui
          type: string
      xml:
        name: Origin
    Destination:
      type: object
      properties:
        country:
          description: Senegal
          type: string
          minLength: 1
        city:
          description: Dakar
          type: string
        address1:
          description: 75, parcel unite 26
          type: string
      xml:
        name: Destination
    Items:
      type: object
      properties:
        name:
          description: my product
          type: string
        quantity:
          description: 1
          type: number
        grams:
          description: 2000
          type: number
        price:
          description: 3999
          type: number
      xml:
        name: Items
    Fulfillment:
      description: order fulfillment service (send job to paps and track delivery status)
      allOf:
        - $ref: '#/components/schemas/Pet'
        - type: object
          properties:
            shipment:
              type: string
              description: The size of the pack the items, parcel description, amount delivery, currency
              enum:
                - originAddress
                - receiverAddress
                - receiverName
                - receiverPhone
                - parcelSize
                - parcelDescription
                - amountDelivery
                - currency
          required:
            - shipment
    CancelTask:
      description: cancellation of shipment
      allOf:
        - $ref: '#/components/schemas/Pet'
        - type: object
          properties:
            idFulfillment:
              type: string
              description: proceed with the cancellation of the delivery
              default: pickJobId
              enum:
                - pickJobId
                - pickOrder
          required:
            - idFulfillment
    EveryDay:
      description: Every day of the week (Monday to Friday)
      allOf:
        - $ref: '#/components/schemas/ShippingTour'
        - type: object
          properties:
            datePeriod:
              description: How long does your shipment need to be in place?
              type: string
              format: date-time
          required:
            - datePeriod
    Custom:
      description: Personalized recurrence
      allOf:
        - $ref: '#/components/schemas/ShippingTour'
        - type: object
          properties:
            each:
              description: how often
              type: number
              example: 1
            moment:
              description: Chose your frequency
              default: days
              enum:
                - days
                - weeks
                - months
                - years
          required:
            - each
            - moment
    ShippingTour:
      type: object
      required:
       - pickupLocation
       - destinationAddress
       - name
       - category
       - additionalInfo
       - packageSize
       - vehicle
       - shipDate
      repeat:
          propertyName: shipType
          mapping:
           every: '#/components/schemas/EveryDay'
           custom: '#/components/schemas/Custom'
      properties:
        pickupLocation:
          description: pickup address
          type: string
          example: Dakar, plateau
        name:
          description: product name
          type: string
        category:
          description: select category
          default: otherCategories
          enum:
            - otherCategories
            - sportingGoods
            - videoGamesConsoles
            - babyProducts
            - fashion
            - homeOffice
            - householdAppliances
            - computers
            - electronics
            - phonesTablets
            - food
            - healthBeauty
        additionalInfo:
          description: add description product
          type: string
        packageSize:
          description: select package size
          default: S
          enum:
            - S
            - M
            - L
            - XL
            - XXL
        destinationAddress:
          description: destination address (please submit specific address)
          type: string
          example: Dakar, plateau
        vehicle:
          description: chose vehicle type
          default: MiniVan
          enum:
            - MiniVan
            - Truck
            - Van
        shipDate:
          description: Estimated ship date
          type: string
          format: date-time
        shipType:
          description: Type of shipping tour
          type: string
      xml:
        name: ShippingTour
    Pet:
      type: object
      required:
        - name
      discriminator:
        propertyName: petType
        mapping:
          getRates: '#/components/schemas/GetRates'
          fulfillment: '#/components/schemas/Fulfillment'
          cancelFulfillment: '#/components/schemas/CancelTask'
      properties:
        origin:
          description: origin address
          allOf:
            - $ref: '#/components/schemas/Origin'
        destination:
          description: destination address
          allOf:
            - $ref: '#/components/schemas/Destination'
        items:
          description: cart item
          allOf:
            - $ref: '#/components/schemas/Items'
  securitySchemes:
    Terms definition:
      description: |
        Definitions of key terms
      type: oauth2
      flows:
        terms:
          authorizationUrl: 'https://paps-api.papslogistics.com/oauth/dialog'
          scopes:
            'S:Small': max 5Kg
            'M:Medium': more than 5 and 30 Kg
            'L:Large': more than 30 and 60Kg
            'XL:A litle wider': more than 60 and 100Kg
            'XXL:Very large': more than 100Kg

            'customers_auth': firstName,lastName,phoneNumber,address
            'parcels_auth': packageSize,description,price,amountCollect'
    api_key:
      description: >
        For this sample, you can use the api key `special-key` to test the
        authorization filters.
      type: apiKey
      name: api_key
      in: header
  examples:
    ShippingTour:
      value:
        quantity: 1
        shipDate: '2021-11-30T15:42:46Z'
x-webhooks:
  newPet:
    post:
      summary: New pet
      description: Information about a new pet in the systems
      operationId: newPet
      tags:
        - pet
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/Pet"
      responses:
        "200":
          description: Return a 200 status to indicate that the data was received successfully
