{
  "openapi": "3.0.0",
  "info": {
    "title": "project-akeneo",
    "version": "1.1.1",
    "description": "project-akeneo: Akeneo APIS",
    "contact": {
      "name": "Contributors",
      "email": "contributor@example.com",
      "url": "https://example.com"
    }
  },
  "paths": {
    "/coupon": {
      "get": {
        "x-controller-name": "CouponController",
        "x-operation-name": "find",
        "tags": [
          "CouponController"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "description": "Array of Coupon model instances"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "filter",
            "in": "query",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Coupon.Filter"
                }
              }
            }
          }
        ],
        "operationId": "CouponController.find"
      }
    },
    "/instances/{id}/user": {
      "get": {
        "x-controller-name": "InstanceUserController",
        "x-operation-name": "getUser",
        "tags": [
          "InstanceUserController"
        ],
        "responses": {
          "200": {
            "description": "User belonging to Instance",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/User"
                  }
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "number"
            },
            "required": true
          }
        ],
        "operationId": "InstanceUserController.getUser"
      }
    },
    "/pim-servers/count": {
      "get": {
        "x-controller-name": "PimController",
        "x-operation-name": "count",
        "tags": [
          "PimController"
        ],
        "responses": {
          "200": {
            "description": "PimServer model count",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/loopback.Count"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "where",
            "in": "query",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "title": "PimServer.WhereFilter",
                  "additionalProperties": true,
                  "x-typescript-type": "@loopback/repository#Where<PimServer>"
                }
              }
            }
          }
        ],
        "operationId": "PimController.count"
      }
    },
    "/ping": {
      "get": {
        "x-controller-name": "PingController",
        "x-operation-name": "ping",
        "tags": [
          "PingController"
        ],
        "responses": {
          "200": {
            "description": "Ping Response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "greeting": {
                      "type": "string"
                    },
                    "date": {
                      "type": "string"
                    },
                    "url": {
                      "type": "string"
                    },
                    "headers": {
                      "type": "object",
                      "properties": {
                        "Content-Type": {
                          "type": "string"
                        }
                      },
                      "additionalProperties": false
                    }
                  }
                }
              }
            }
          }
        },
        "operationId": "PingController.ping"
      }
    },
    "/plans/count": {
      "get": {
        "x-controller-name": "PlanController",
        "x-operation-name": "count",
        "tags": [
          "PlanController"
        ],
        "responses": {
          "200": {
            "description": "Plan model count",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/loopback.Count"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "where",
            "in": "query",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "title": "Plan.WhereFilter",
                  "additionalProperties": true,
                  "x-typescript-type": "@loopback/repository#Where<Plan>"
                }
              }
            }
          }
        ],
        "operationId": "PlanController.count"
      }
    },
    "/plans/{id}": {
      "get": {
        "x-controller-name": "PlanController",
        "x-operation-name": "findById",
        "tags": [
          "PlanController"
        ],
        "responses": {
          "200": {
            "description": "Plan model instance",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PlanWithRelations"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "number"
            },
            "required": true
          },
          {
            "name": "filter",
            "in": "query",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Plan.Filter"
                }
              }
            }
          }
        ],
        "operationId": "PlanController.findById"
      }
    },
    "/plans": {
      "post": {
        "x-controller-name": "PlanController",
        "x-operation-name": "create",
        "tags": [
          "PlanController"
        ],
        "responses": {
          "200": {
            "description": "Plan model instance",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Plan"
                }
              }
            }
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/NewPlan"
              }
            }
          }
        },
        "operationId": "PlanController.create"
      },
      "get": {
        "x-controller-name": "PlanController",
        "x-operation-name": "find",
        "tags": [
          "PlanController"
        ],
        "responses": {
          "200": {
            "description": "Array of Plan model instances",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/PlanWithRelations"
                  }
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "filter",
            "in": "query",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Plan.Filter1"
                }
              }
            }
          }
        ],
        "operationId": "PlanController.find"
      }
    },
    "/processes": {
      "get": {
        "x-controller-name": "ProcessController",
        "x-operation-name": "find",
        "tags": [
          "ProcessController"
        ],
        "responses": {
          "200": {
            "description": "Array of Process model instances",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ProcessWithRelations"
                  }
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "filter",
            "in": "query",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Process.Filter"
                }
              }
            }
          }
        ],
        "operationId": "ProcessController.find"
      }
    },
    "/transactions": {
      "post": {
        "x-controller-name": "TransactionController",
        "x-operation-name": "create",
        "tags": [
          "TransactionController"
        ],
        "responses": {
          "200": {
            "description": "Return value of TransactionController.create"
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object"
              }
            }
          }
        },
        "operationId": "TransactionController.create"
      }
    },
    "/users/forgot-password": {
      "put": {
        "x-controller-name": "UserManagementController",
        "x-operation-name": "forgotPassword",
        "tags": [
          "UserManagementController"
        ],
        "security": [
          {
            "jwt": []
          }
        ],
        "responses": {
          "200": {
            "description": "The updated user profile",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "id"
                  ],
                  "properties": {
                    "id": {
                      "type": "string"
                    },
                    "email": {
                      "type": "string"
                    },
                    "name": {
                      "type": "string"
                    }
                  }
                }
              }
            }
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "email",
                  "password"
                ],
                "properties": {
                  "email": {
                    "type": "string",
                    "format": "email"
                  },
                  "password": {
                    "type": "string",
                    "minLength": 8
                  }
                }
              }
            }
          },
          "description": "The input of password reset function",
          "required": true
        },
        "operationId": "UserManagementController.forgotPassword"
      }
    },
    "/users/login": {
      "post": {
        "x-controller-name": "UserManagementController",
        "x-operation-name": "login",
        "tags": [
          "UserManagementController"
        ],
        "responses": {
          "200": {
            "description": "Token",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "token": {
                      "type": "string"
                    }
                  }
                }
              }
            }
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "email",
                  "password"
                ],
                "properties": {
                  "email": {
                    "type": "string",
                    "format": "email"
                  },
                  "password": {
                    "type": "string",
                    "minLength": 8
                  }
                }
              }
            }
          },
          "description": "The input of login function",
          "required": true
        },
        "operationId": "UserManagementController.login"
      }
    },
    "/users/me": {
      "get": {
        "x-controller-name": "UserManagementController",
        "x-operation-name": "printCurrentUser",
        "tags": [
          "UserManagementController"
        ],
        "security": [
          {
            "jwt": []
          }
        ],
        "responses": {
          "200": {
            "description": "The current user profile",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "id"
                  ],
                  "properties": {
                    "id": {
                      "type": "string"
                    },
                    "email": {
                      "type": "string"
                    },
                    "name": {
                      "type": "string"
                    }
                  }
                }
              }
            }
          }
        },
        "operationId": "UserManagementController.printCurrentUser"
      }
    },
    "/users/reset-password/finish": {
      "put": {
        "x-controller-name": "UserManagementController",
        "x-operation-name": "resetPasswordFinish",
        "tags": [
          "UserManagementController"
        ],
        "responses": {
          "200": {
            "description": "A successful password reset response"
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/KeyAndPassword"
              }
            }
          }
        },
        "operationId": "UserManagementController.resetPasswordFinish"
      }
    },
    "/users/reset-password/init": {
      "post": {
        "x-controller-name": "UserManagementController",
        "x-operation-name": "resetPasswordInit",
        "tags": [
          "UserManagementController"
        ],
        "responses": {
          "200": {
            "description": "Confirmation that reset password email has been sent"
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ResetPasswordInit"
              }
            }
          }
        },
        "operationId": "UserManagementController.resetPasswordInit"
      }
    },
    "/users/verify/{verificationKey}": {
      "get": {
        "x-controller-name": "UserManagementController",
        "x-operation-name": "verify",
        "tags": [
          "UserManagementController"
        ],
        "responses": {
          "200": {
            "description": "Return value of UserManagementController.verify"
          }
        },
        "parameters": [
          {
            "name": "verificationKey",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "operationId": "UserManagementController.verify"
      }
    },
    "/users/{id}/backups": {
      "post": {
        "x-controller-name": "UserBackupController",
        "x-operation-name": "backup",
        "tags": [
          "UserBackupController"
        ],
        "responses": {
          "200": {
            "description": "Return value of UserBackupController.backup"
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "operationId": "UserBackupController.backup"
      },
      "get": {
        "x-controller-name": "UserBackupController",
        "x-operation-name": "get",
        "tags": [
          "UserBackupController"
        ],
        "responses": {
          "200": {
            "description": "Return value of UserBackupController.get"
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "operationId": "UserBackupController.get"
      }
    },
    "/users/{id}/billing": {
      "patch": {
        "x-controller-name": "UserBillingController",
        "x-operation-name": "patch",
        "tags": [
          "UserBillingController"
        ],
        "security": [
          {
            "jwt": []
          }
        ],
        "responses": {
          "200": {
            "description": "User.Billing PATCH success count",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/loopback.Count"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          },
          {
            "name": "where",
            "in": "query",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "title": "Billing.WhereFilter",
                  "additionalProperties": true,
                  "x-typescript-type": "@loopback/repository#Where<Billing>"
                }
              }
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/BillingPartial"
              }
            }
          },
          "x-parameter-index": 1
        },
        "operationId": "UserBillingController.patch"
      },
      "get": {
        "x-controller-name": "UserBillingController",
        "x-operation-name": "get",
        "tags": [
          "UserBillingController"
        ],
        "security": [
          {
            "jwt": []
          }
        ],
        "responses": {
          "200": {
            "description": "User has one Billing",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Billing"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          },
          {
            "name": "filter",
            "in": "query",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true
                }
              }
            }
          }
        ],
        "operationId": "UserBillingController.get"
      }
    },
    "/users/{id}/instance": {
      "patch": {
        "x-controller-name": "UserInstanceController",
        "x-operation-name": "patch",
        "tags": [
          "UserInstanceController"
        ],
        "security": [
          {
            "jwt": []
          }
        ],
        "responses": {
          "200": {
            "description": "User.Instance PATCH success count",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/loopback.Count"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          },
          {
            "name": "where",
            "in": "query",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "title": "Instance.WhereFilter",
                  "additionalProperties": true,
                  "x-typescript-type": "@loopback/repository#Where<Instance>"
                }
              }
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/InstancePartial"
              }
            }
          },
          "x-parameter-index": 1
        },
        "operationId": "UserInstanceController.patch"
      },
      "get": {
        "x-controller-name": "UserInstanceController",
        "x-operation-name": "get",
        "tags": [
          "UserInstanceController"
        ],
        "responses": {
          "200": {
            "description": "User has one Instance",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Instance"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          },
          {
            "name": "filter",
            "in": "query",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true
                }
              }
            }
          }
        ],
        "operationId": "UserInstanceController.get"
      }
    },
    "/users/{id}/payment-intent": {
      "get": {
        "x-controller-name": "UserSubscriptionController",
        "x-operation-name": "paymentIntent",
        "tags": [
          "UserSubscriptionController"
        ],
        "security": [
          {
            "jwt": []
          }
        ],
        "responses": {
          "200": {
            "description": "User has one Subscription",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Subscription"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "operationId": "UserSubscriptionController.paymentIntent"
      }
    },
    "/users/{id}/payment-method": {
      "delete": {
        "x-controller-name": "UserSubscriptionController",
        "x-operation-name": "deletePaymentMethod",
        "tags": [
          "UserSubscriptionController"
        ],
        "security": [
          {
            "jwt": []
          }
        ],
        "responses": {
          "200": {
            "description": "User.Subscription DELETE success count",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/loopback.Count"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "operationId": "UserSubscriptionController.deletePaymentMethod"
      }
    },
    "/users/{id}/reset-data": {
      "post": {
        "x-controller-name": "UserBackupController",
        "x-operation-name": "resetData",
        "tags": [
          "UserBackupController"
        ],
        "responses": {
          "200": {
            "description": "Return value of UserBackupController.resetData"
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "operationId": "UserBackupController.resetData"
      }
    },
    "/users/{id}/restore": {
      "post": {
        "x-controller-name": "UserBackupController",
        "x-operation-name": "restore",
        "tags": [
          "UserBackupController"
        ],
        "responses": {
          "200": {
            "description": "Return value of UserBackupController.restore"
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object"
              }
            }
          },
          "x-parameter-index": 1
        },
        "operationId": "UserBackupController.restore"
      }
    },
    "/users/{id}/subscription": {
      "patch": {
        "x-controller-name": "UserSubscriptionController",
        "x-operation-name": "patch",
        "tags": [
          "UserSubscriptionController"
        ],
        "security": [
          {
            "jwt": []
          }
        ],
        "responses": {
          "200": {
            "description": "User.Subscription PATCH success count",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/loopback.Count"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          },
          {
            "name": "where",
            "in": "query",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "title": "Subscription.WhereFilter",
                  "additionalProperties": true,
                  "x-typescript-type": "@loopback/repository#Where<Subscription>"
                }
              }
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object"
              }
            }
          },
          "x-parameter-index": 1
        },
        "operationId": "UserSubscriptionController.patch"
      },
      "get": {
        "x-controller-name": "UserSubscriptionController",
        "x-operation-name": "get",
        "tags": [
          "UserSubscriptionController"
        ],
        "security": [
          {
            "jwt": []
          }
        ],
        "responses": {
          "200": {
            "description": "User has one Subscription",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Subscription"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          },
          {
            "name": "filter",
            "in": "query",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true
                }
              }
            }
          }
        ],
        "operationId": "UserSubscriptionController.get"
      }
    },
    "/users/{id}/transactions": {
      "post": {
        "x-controller-name": "UserTransactionController",
        "x-operation-name": "create",
        "tags": [
          "UserTransactionController"
        ],
        "security": [
          {
            "jwt": []
          }
        ],
        "responses": {
          "200": {
            "description": "User model instance",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Transaction"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/NewTransactionInUser"
              }
            }
          },
          "x-parameter-index": 1
        },
        "operationId": "UserTransactionController.create"
      },
      "patch": {
        "x-controller-name": "UserTransactionController",
        "x-operation-name": "patch",
        "tags": [
          "UserTransactionController"
        ],
        "security": [
          {
            "jwt": []
          }
        ],
        "responses": {
          "200": {
            "description": "User.Transaction PATCH success count",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/loopback.Count"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          },
          {
            "name": "where",
            "in": "query",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "title": "Transaction.WhereFilter",
                  "additionalProperties": true,
                  "x-typescript-type": "@loopback/repository#Where<Transaction>"
                }
              }
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/TransactionPartial"
              }
            }
          },
          "x-parameter-index": 1
        },
        "operationId": "UserTransactionController.patch"
      },
      "get": {
        "x-controller-name": "UserTransactionController",
        "x-operation-name": "find",
        "tags": [
          "UserTransactionController"
        ],
        "security": [
          {
            "jwt": []
          }
        ],
        "responses": {
          "200": {
            "description": "Array of User has many Transaction",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Transaction"
                  }
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          },
          {
            "name": "filter",
            "in": "query",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true
                }
              }
            }
          }
        ],
        "operationId": "UserTransactionController.find"
      },
      "delete": {
        "x-controller-name": "UserTransactionController",
        "x-operation-name": "delete",
        "tags": [
          "UserTransactionController"
        ],
        "security": [
          {
            "jwt": []
          }
        ],
        "responses": {
          "200": {
            "description": "User.Transaction DELETE success count",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/loopback.Count"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          },
          {
            "name": "where",
            "in": "query",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "title": "Transaction.WhereFilter",
                  "additionalProperties": true,
                  "x-typescript-type": "@loopback/repository#Where<Transaction>"
                }
              }
            }
          }
        ],
        "operationId": "UserTransactionController.delete"
      }
    },
    "/users/{userId}": {
      "get": {
        "x-controller-name": "UserManagementController",
        "x-operation-name": "findById",
        "tags": [
          "UserManagementController"
        ],
        "security": [
          {
            "jwt": []
          }
        ],
        "responses": {
          "200": {
            "description": "User",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/User"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "userId",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "operationId": "UserManagementController.findById"
      },
      "delete": {
        "x-controller-name": "UserManagementController",
        "x-operation-name": "deleteById",
        "tags": [
          "UserManagementController"
        ],
        "security": [
          {
            "jwt": []
          }
        ],
        "responses": {
          "200": {
            "description": "User",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/User"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "userId",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "operationId": "UserManagementController.deleteById"
      }
    },
    "/users": {
      "post": {
        "x-controller-name": "UserManagementController",
        "x-operation-name": "create",
        "tags": [
          "UserManagementController"
        ],
        "responses": {
          "200": {
            "description": "User",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/User"
                }
              }
            }
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/NewUserRequest"
              }
            }
          }
        },
        "operationId": "UserManagementController.create"
      },
      "get": {
        "x-controller-name": "UserManagementController",
        "x-operation-name": "listUsers",
        "tags": [
          "UserManagementController"
        ],
        "responses": {
          "200": {
            "description": "Return value of UserManagementController.listUsers"
          }
        },
        "operationId": "UserManagementController.listUsers"
      }
    }
  },
  "servers": [
    {
      "url": "/"
    }
  ],
  "components": {
    "schemas": {
      "Transaction": {
        "title": "Transaction",
        "type": "object",
        "properties": {
          "id": {
            "type": "number"
          },
          "timestamp": {
            "type": "string",
            "format": "date-time"
          },
          "payment_intent_id": {
            "type": "string"
          },
          "amount": {
            "type": "number"
          },
          "currency": {
            "type": "string"
          },
          "method": {
            "type": "string"
          },
          "status": {
            "type": "string"
          },
          "planId": {
            "type": "number"
          },
          "userId": {
            "type": "string"
          }
        },
        "additionalProperties": false
      },
      "NewTransactionInUser": {
        "title": "NewTransactionInUser",
        "type": "object",
        "description": "(tsType: @loopback/repository-json-schema#Optional<Omit<Transaction, 'id'>, 'userId'>, schemaOptions: { title: 'NewTransactionInUser', exclude: [ 'id' ], optional: [ 'userId' ] })",
        "properties": {
          "timestamp": {
            "type": "string",
            "format": "date-time"
          },
          "payment_intent_id": {
            "type": "string"
          },
          "amount": {
            "type": "number"
          },
          "currency": {
            "type": "string"
          },
          "method": {
            "type": "string"
          },
          "status": {
            "type": "string"
          },
          "planId": {
            "type": "number"
          },
          "userId": {
            "type": "string"
          }
        },
        "additionalProperties": false,
        "x-typescript-type": "@loopback/repository-json-schema#Optional<Omit<Transaction, 'id'>, 'userId'>"
      },
      "TransactionPartial": {
        "title": "TransactionPartial",
        "type": "object",
        "description": "(tsType: Partial<Transaction>, schemaOptions: { partial: true })",
        "properties": {
          "id": {
            "type": "number"
          },
          "timestamp": {
            "type": "string",
            "format": "date-time"
          },
          "payment_intent_id": {
            "type": "string"
          },
          "amount": {
            "type": "number"
          },
          "currency": {
            "type": "string"
          },
          "method": {
            "type": "string"
          },
          "status": {
            "type": "string"
          },
          "planId": {
            "type": "number"
          },
          "userId": {
            "type": "string"
          }
        },
        "additionalProperties": false,
        "x-typescript-type": "Partial<Transaction>"
      },
      "Subscription": {
        "title": "Subscription",
        "type": "object",
        "properties": {
          "id": {
            "type": "number"
          },
          "stripe_customer_id": {
            "type": "string"
          },
          "subscription_start_date": {
            "type": "string",
            "format": "date-time"
          },
          "subscription_end_date": {
            "type": "string",
            "format": "date-time"
          },
          "planId": {
            "type": "object"
          },
          "userId": {
            "type": "string"
          },
          "couponId": {
            "type": "object"
          },
          "recommendedPlanId": {
            "type": "number"
          }
        },
        "additionalProperties": false
      },
      "User": {
        "title": "User",
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "email": {
            "type": "string"
          },
          "username": {
            "type": "string"
          },
          "company": {
            "type": "string"
          },
          "phone": {
            "type": "string"
          },
          "firstName": {
            "type": "string"
          },
          "lastName": {
            "type": "string"
          },
          "roles": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "registeredAt": {
            "type": "string",
            "format": "date-time"
          },
          "resetKey": {
            "type": "string"
          },
          "verificationKey": {
            "type": "string"
          },
          "verified": {
            "type": "boolean"
          },
          "resetCount": {
            "type": "number"
          },
          "resetTimestamp": {
            "type": "string"
          },
          "resetKeyTimestamp": {
            "type": "string"
          }
        },
        "required": [
          "email",
          "username",
          "company",
          "phone"
        ],
        "additionalProperties": false
      },
      "NewUserRequest": {
        "title": "NewUserRequest",
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "email": {
            "type": "string"
          },
          "username": {
            "type": "string"
          },
          "company": {
            "type": "string"
          },
          "phone": {
            "type": "string"
          },
          "firstName": {
            "type": "string"
          },
          "lastName": {
            "type": "string"
          },
          "roles": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "registeredAt": {
            "type": "string",
            "format": "date-time"
          },
          "resetKey": {
            "type": "string"
          },
          "verificationKey": {
            "type": "string"
          },
          "verified": {
            "type": "boolean"
          },
          "resetCount": {
            "type": "number"
          },
          "resetTimestamp": {
            "type": "string"
          },
          "resetKeyTimestamp": {
            "type": "string"
          },
          "password": {
            "type": "string"
          },
          "token": {
            "type": "string"
          }
        },
        "required": [
          "email",
          "username",
          "company",
          "phone",
          "password"
        ],
        "additionalProperties": false
      },
      "ResetPasswordInit": {
        "title": "ResetPasswordInit",
        "type": "object",
        "properties": {
          "email": {
            "type": "string"
          }
        },
        "required": [
          "email"
        ],
        "additionalProperties": false
      },
      "KeyAndPassword": {
        "title": "KeyAndPassword",
        "type": "object",
        "properties": {
          "resetKey": {
            "type": "string"
          },
          "password": {
            "type": "string"
          },
          "confirmPassword": {
            "type": "string"
          }
        },
        "additionalProperties": false
      },
      "Instance": {
        "title": "Instance",
        "type": "object",
        "properties": {
          "id": {
            "type": "number"
          },
          "domain": {
            "type": "string"
          },
          "mysql_server": {
            "type": "string"
          },
          "elastic_server": {
            "type": "string"
          },
          "pim_server": {
            "type": "string"
          },
          "status": {
            "type": "string"
          },
          "userId": {
            "type": "string"
          }
        },
        "additionalProperties": false
      },
      "InstancePartial": {
        "title": "InstancePartial",
        "type": "object",
        "description": "(tsType: Partial<Instance>, schemaOptions: { partial: true })",
        "properties": {
          "id": {
            "type": "number"
          },
          "domain": {
            "type": "string"
          },
          "mysql_server": {
            "type": "string"
          },
          "elastic_server": {
            "type": "string"
          },
          "pim_server": {
            "type": "string"
          },
          "status": {
            "type": "string"
          },
          "userId": {
            "type": "string"
          }
        },
        "additionalProperties": false,
        "x-typescript-type": "Partial<Instance>"
      },
      "Billing": {
        "title": "Billing",
        "type": "object",
        "properties": {
          "id": {
            "type": "number"
          },
          "line1": {
            "type": "string"
          },
          "line2": {
            "type": "string"
          },
          "country": {
            "type": "string"
          },
          "state": {
            "type": "string"
          },
          "city": {
            "type": "string"
          },
          "postal_code": {
            "type": "string"
          },
          "userId": {
            "type": "string"
          }
        },
        "additionalProperties": false
      },
      "BillingPartial": {
        "title": "BillingPartial",
        "type": "object",
        "description": "(tsType: Partial<Billing>, schemaOptions: { partial: true })",
        "properties": {
          "id": {
            "type": "number"
          },
          "line1": {
            "type": "string"
          },
          "line2": {
            "type": "string"
          },
          "country": {
            "type": "string"
          },
          "state": {
            "type": "string"
          },
          "city": {
            "type": "string"
          },
          "postal_code": {
            "type": "string"
          },
          "userId": {
            "type": "string"
          }
        },
        "additionalProperties": false,
        "x-typescript-type": "Partial<Billing>"
      },
      "ProcessWithRelations": {
        "title": "ProcessWithRelations",
        "type": "object",
        "description": "(tsType: ProcessWithRelations, schemaOptions: { includeRelations: true })",
        "properties": {
          "id": {
            "type": "number"
          },
          "type": {
            "type": "string"
          },
          "status": {
            "type": "boolean"
          },
          "description": {
            "type": "string"
          }
        },
        "additionalProperties": false,
        "x-typescript-type": "ProcessWithRelations"
      },
      "Plan": {
        "title": "Plan",
        "type": "object",
        "properties": {
          "id": {
            "type": "number"
          },
          "price_id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "price": {
            "type": "number"
          },
          "skus": {
            "type": "number"
          },
          "users": {
            "type": "number"
          },
          "languages": {
            "type": "number"
          },
          "public": {
            "type": "boolean"
          }
        },
        "additionalProperties": false
      },
      "NewPlan": {
        "title": "NewPlan",
        "type": "object",
        "description": "(tsType: Omit<Plan, 'id'>, schemaOptions: { title: 'NewPlan', exclude: [ 'id' ] })",
        "properties": {
          "price_id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "price": {
            "type": "number"
          },
          "skus": {
            "type": "number"
          },
          "users": {
            "type": "number"
          },
          "languages": {
            "type": "number"
          },
          "public": {
            "type": "boolean"
          }
        },
        "additionalProperties": false,
        "x-typescript-type": "Omit<Plan, 'id'>"
      },
      "PlanWithRelations": {
        "title": "PlanWithRelations",
        "type": "object",
        "description": "(tsType: PlanWithRelations, schemaOptions: { includeRelations: true })",
        "properties": {
          "id": {
            "type": "number"
          },
          "price_id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "price": {
            "type": "number"
          },
          "skus": {
            "type": "number"
          },
          "users": {
            "type": "number"
          },
          "languages": {
            "type": "number"
          },
          "public": {
            "type": "boolean"
          }
        },
        "additionalProperties": false,
        "x-typescript-type": "PlanWithRelations"
      },
      "Coupon.Filter": {
        "type": "object",
        "title": "Coupon.Filter",
        "properties": {
          "offset": {
            "type": "integer",
            "minimum": 0
          },
          "limit": {
            "type": "integer",
            "minimum": 1,
            "example": 100
          },
          "skip": {
            "type": "integer",
            "minimum": 0
          },
          "order": {
            "oneOf": [
              {
                "type": "string"
              },
              {
                "type": "array",
                "items": {
                  "type": "string"
                }
              }
            ]
          },
          "where": {
            "title": "Coupon.WhereFilter",
            "type": "object",
            "additionalProperties": true
          },
          "fields": {
            "oneOf": [
              {
                "type": "object",
                "properties": {
                  "id": {
                    "type": "boolean"
                  },
                  "coupon_id": {
                    "type": "boolean"
                  },
                  "status": {
                    "type": "boolean"
                  },
                  "coupon_name": {
                    "type": "boolean"
                  },
                  "amount": {
                    "type": "boolean"
                  },
                  "duration": {
                    "type": "boolean"
                  }
                },
                "additionalProperties": false
              },
              {
                "type": "array",
                "items": {
                  "type": "string",
                  "enum": [
                    "id",
                    "coupon_id",
                    "status",
                    "coupon_name",
                    "amount",
                    "duration"
                  ],
                  "example": "id"
                },
                "uniqueItems": true
              }
            ],
            "title": "Coupon.Fields"
          }
        },
        "additionalProperties": false,
        "x-typescript-type": "@loopback/repository#Filter<Coupon>"
      },
      "loopback.Count": {
        "type": "object",
        "title": "loopback.Count",
        "x-typescript-type": "@loopback/repository#Count",
        "properties": {
          "count": {
            "type": "number"
          }
        }
      },
      "Plan.Filter": {
        "type": "object",
        "title": "Plan.Filter",
        "properties": {
          "offset": {
            "type": "integer",
            "minimum": 0
          },
          "limit": {
            "type": "integer",
            "minimum": 1,
            "example": 100
          },
          "skip": {
            "type": "integer",
            "minimum": 0
          },
          "order": {
            "oneOf": [
              {
                "type": "string"
              },
              {
                "type": "array",
                "items": {
                  "type": "string"
                }
              }
            ]
          },
          "fields": {
            "oneOf": [
              {
                "type": "object",
                "properties": {
                  "id": {
                    "type": "boolean"
                  },
                  "price_id": {
                    "type": "boolean"
                  },
                  "name": {
                    "type": "boolean"
                  },
                  "price": {
                    "type": "boolean"
                  },
                  "skus": {
                    "type": "boolean"
                  },
                  "users": {
                    "type": "boolean"
                  },
                  "languages": {
                    "type": "boolean"
                  },
                  "public": {
                    "type": "boolean"
                  }
                },
                "additionalProperties": false
              },
              {
                "type": "array",
                "items": {
                  "type": "string",
                  "enum": [
                    "id",
                    "price_id",
                    "name",
                    "price",
                    "skus",
                    "users",
                    "languages",
                    "public"
                  ],
                  "example": "id"
                },
                "uniqueItems": true
              }
            ],
            "title": "Plan.Fields"
          }
        },
        "additionalProperties": false,
        "x-typescript-type": "@loopback/repository#Filter<Plan>"
      },
      "Plan.Filter1": {
        "type": "object",
        "title": "Plan.Filter",
        "properties": {
          "offset": {
            "type": "integer",
            "minimum": 0
          },
          "limit": {
            "type": "integer",
            "minimum": 1,
            "example": 100
          },
          "skip": {
            "type": "integer",
            "minimum": 0
          },
          "order": {
            "oneOf": [
              {
                "type": "string"
              },
              {
                "type": "array",
                "items": {
                  "type": "string"
                }
              }
            ]
          },
          "where": {
            "title": "Plan.WhereFilter",
            "type": "object",
            "additionalProperties": true
          },
          "fields": {
            "oneOf": [
              {
                "type": "object",
                "properties": {
                  "id": {
                    "type": "boolean"
                  },
                  "price_id": {
                    "type": "boolean"
                  },
                  "name": {
                    "type": "boolean"
                  },
                  "price": {
                    "type": "boolean"
                  },
                  "skus": {
                    "type": "boolean"
                  },
                  "users": {
                    "type": "boolean"
                  },
                  "languages": {
                    "type": "boolean"
                  },
                  "public": {
                    "type": "boolean"
                  }
                },
                "additionalProperties": false
              },
              {
                "type": "array",
                "items": {
                  "type": "string",
                  "enum": [
                    "id",
                    "price_id",
                    "name",
                    "price",
                    "skus",
                    "users",
                    "languages",
                    "public"
                  ],
                  "example": "id"
                },
                "uniqueItems": true
              }
            ],
            "title": "Plan.Fields"
          }
        },
        "additionalProperties": false,
        "x-typescript-type": "@loopback/repository#Filter<Plan>"
      },
      "Process.Filter": {
        "type": "object",
        "title": "Process.Filter",
        "properties": {
          "offset": {
            "type": "integer",
            "minimum": 0
          },
          "limit": {
            "type": "integer",
            "minimum": 1,
            "example": 100
          },
          "skip": {
            "type": "integer",
            "minimum": 0
          },
          "order": {
            "oneOf": [
              {
                "type": "string"
              },
              {
                "type": "array",
                "items": {
                  "type": "string"
                }
              }
            ]
          },
          "where": {
            "title": "Process.WhereFilter",
            "type": "object",
            "additionalProperties": true
          },
          "fields": {
            "oneOf": [
              {
                "type": "object",
                "properties": {
                  "id": {
                    "type": "boolean"
                  },
                  "type": {
                    "type": "boolean"
                  },
                  "status": {
                    "type": "boolean"
                  },
                  "description": {
                    "type": "boolean"
                  }
                },
                "additionalProperties": false
              },
              {
                "type": "array",
                "items": {
                  "type": "string",
                  "enum": [
                    "id",
                    "type",
                    "status",
                    "description"
                  ],
                  "example": "id"
                },
                "uniqueItems": true
              }
            ],
            "title": "Process.Fields"
          }
        },
        "additionalProperties": false,
        "x-typescript-type": "@loopback/repository#Filter<Process>"
      }
    },
    "securitySchemes": {
      "jwt": {
        "type": "http",
        "scheme": "bearer",
        "bearerFormat": "JWT"
      }
    }
  },
  "security": []
}