openapi: 3.0.3 info: title: DRF-Template version: 1.0.0 description: A Template Project by Keannu Bernasol paths: /api/v1/accounts/jwt/create/: post: operationId: accounts_jwt_create_create description: |- Takes a set of user credentials and returns an access and refresh JSON web token pair to prove the authentication of those credentials. tags: - accounts requestBody: content: application/json: schema: $ref: '#/components/schemas/TokenObtainPair' application/x-www-form-urlencoded: schema: $ref: '#/components/schemas/TokenObtainPair' multipart/form-data: schema: $ref: '#/components/schemas/TokenObtainPair' required: true responses: '200': content: application/json: schema: $ref: '#/components/schemas/TokenObtainPair' description: '' /api/v1/accounts/jwt/refresh/: post: operationId: accounts_jwt_refresh_create description: |- Takes a refresh type JSON web token and returns an access type JSON web token if the refresh token is valid. tags: - accounts requestBody: content: application/json: schema: $ref: '#/components/schemas/TokenRefresh' application/x-www-form-urlencoded: schema: $ref: '#/components/schemas/TokenRefresh' multipart/form-data: schema: $ref: '#/components/schemas/TokenRefresh' required: true responses: '200': content: application/json: schema: $ref: '#/components/schemas/TokenRefresh' description: '' /api/v1/accounts/jwt/verify/: post: operationId: accounts_jwt_verify_create description: |- Takes a token and indicates if it is valid. This view provides no information about a token's fitness for a particular use. tags: - accounts requestBody: content: application/json: schema: $ref: '#/components/schemas/TokenVerify' application/x-www-form-urlencoded: schema: $ref: '#/components/schemas/TokenVerify' multipart/form-data: schema: $ref: '#/components/schemas/TokenVerify' required: true responses: '200': content: application/json: schema: $ref: '#/components/schemas/TokenVerify' description: '' /api/v1/accounts/users/: get: operationId: accounts_users_list tags: - accounts security: - jwtAuth: [] responses: '200': content: application/json: schema: type: array items: $ref: '#/components/schemas/CustomUser' description: '' post: operationId: accounts_users_create tags: - accounts requestBody: content: application/json: schema: $ref: '#/components/schemas/UserRegistration' application/x-www-form-urlencoded: schema: $ref: '#/components/schemas/UserRegistration' multipart/form-data: schema: $ref: '#/components/schemas/UserRegistration' required: true security: - jwtAuth: [] - {} responses: '201': content: application/json: schema: $ref: '#/components/schemas/UserRegistration' description: '' /api/v1/accounts/users/{id}/: get: operationId: accounts_users_retrieve parameters: - in: path name: id schema: type: integer description: A unique integer value identifying this user. required: true tags: - accounts security: - jwtAuth: [] - {} responses: '200': content: application/json: schema: $ref: '#/components/schemas/CustomUser' description: '' put: operationId: accounts_users_update parameters: - in: path name: id schema: type: integer description: A unique integer value identifying this user. required: true tags: - accounts requestBody: content: application/json: schema: $ref: '#/components/schemas/CustomUser' application/x-www-form-urlencoded: schema: $ref: '#/components/schemas/CustomUser' multipart/form-data: schema: $ref: '#/components/schemas/CustomUser' required: true security: - jwtAuth: [] - {} responses: '200': content: application/json: schema: $ref: '#/components/schemas/CustomUser' description: '' patch: operationId: accounts_users_partial_update parameters: - in: path name: id schema: type: integer description: A unique integer value identifying this user. required: true tags: - accounts requestBody: content: application/json: schema: $ref: '#/components/schemas/PatchedCustomUser' application/x-www-form-urlencoded: schema: $ref: '#/components/schemas/PatchedCustomUser' multipart/form-data: schema: $ref: '#/components/schemas/PatchedCustomUser' security: - jwtAuth: [] - {} responses: '200': content: application/json: schema: $ref: '#/components/schemas/CustomUser' description: '' delete: operationId: accounts_users_destroy parameters: - in: path name: id schema: type: integer description: A unique integer value identifying this user. required: true tags: - accounts security: - jwtAuth: [] responses: '204': description: No response body /api/v1/accounts/users/activation/: post: operationId: accounts_users_activation_create tags: - accounts requestBody: content: application/json: schema: $ref: '#/components/schemas/Activation' application/x-www-form-urlencoded: schema: $ref: '#/components/schemas/Activation' multipart/form-data: schema: $ref: '#/components/schemas/Activation' required: true security: - jwtAuth: [] - {} responses: '200': content: application/json: schema: $ref: '#/components/schemas/Activation' description: '' /api/v1/accounts/users/me/: get: operationId: accounts_users_me_retrieve tags: - accounts security: - jwtAuth: [] - {} responses: '200': content: application/json: schema: $ref: '#/components/schemas/CustomUser' description: '' put: operationId: accounts_users_me_update tags: - accounts requestBody: content: application/json: schema: $ref: '#/components/schemas/CustomUser' application/x-www-form-urlencoded: schema: $ref: '#/components/schemas/CustomUser' multipart/form-data: schema: $ref: '#/components/schemas/CustomUser' required: true security: - jwtAuth: [] - {} responses: '200': content: application/json: schema: $ref: '#/components/schemas/CustomUser' description: '' patch: operationId: accounts_users_me_partial_update tags: - accounts requestBody: content: application/json: schema: $ref: '#/components/schemas/PatchedCustomUser' application/x-www-form-urlencoded: schema: $ref: '#/components/schemas/PatchedCustomUser' multipart/form-data: schema: $ref: '#/components/schemas/PatchedCustomUser' security: - jwtAuth: [] - {} responses: '200': content: application/json: schema: $ref: '#/components/schemas/CustomUser' description: '' delete: operationId: accounts_users_me_destroy tags: - accounts security: - jwtAuth: [] responses: '204': description: No response body /api/v1/accounts/users/resend_activation/: post: operationId: accounts_users_resend_activation_create tags: - accounts requestBody: content: application/json: schema: $ref: '#/components/schemas/SendEmailReset' application/x-www-form-urlencoded: schema: $ref: '#/components/schemas/SendEmailReset' multipart/form-data: schema: $ref: '#/components/schemas/SendEmailReset' required: true security: - jwtAuth: [] - {} responses: '200': content: application/json: schema: $ref: '#/components/schemas/SendEmailReset' description: '' /api/v1/accounts/users/reset_password/: post: operationId: accounts_users_reset_password_create tags: - accounts requestBody: content: application/json: schema: $ref: '#/components/schemas/SendEmailReset' application/x-www-form-urlencoded: schema: $ref: '#/components/schemas/SendEmailReset' multipart/form-data: schema: $ref: '#/components/schemas/SendEmailReset' required: true security: - jwtAuth: [] - {} responses: '200': content: application/json: schema: $ref: '#/components/schemas/SendEmailReset' description: '' /api/v1/accounts/users/reset_password_confirm/: post: operationId: accounts_users_reset_password_confirm_create tags: - accounts requestBody: content: application/json: schema: $ref: '#/components/schemas/PasswordResetConfirm' application/x-www-form-urlencoded: schema: $ref: '#/components/schemas/PasswordResetConfirm' multipart/form-data: schema: $ref: '#/components/schemas/PasswordResetConfirm' required: true security: - jwtAuth: [] - {} responses: '200': content: application/json: schema: $ref: '#/components/schemas/PasswordResetConfirm' description: '' /api/v1/accounts/users/reset_username/: post: operationId: accounts_users_reset_username_create tags: - accounts requestBody: content: application/json: schema: $ref: '#/components/schemas/SendEmailReset' application/x-www-form-urlencoded: schema: $ref: '#/components/schemas/SendEmailReset' multipart/form-data: schema: $ref: '#/components/schemas/SendEmailReset' required: true security: - jwtAuth: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/SendEmailReset' description: '' /api/v1/accounts/users/reset_username_confirm/: post: operationId: accounts_users_reset_username_confirm_create tags: - accounts requestBody: content: application/json: schema: $ref: '#/components/schemas/UsernameResetConfirm' application/x-www-form-urlencoded: schema: $ref: '#/components/schemas/UsernameResetConfirm' multipart/form-data: schema: $ref: '#/components/schemas/UsernameResetConfirm' required: true security: - jwtAuth: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/UsernameResetConfirm' description: '' /api/v1/accounts/users/set_password/: post: operationId: accounts_users_set_password_create tags: - accounts requestBody: content: application/json: schema: $ref: '#/components/schemas/SetPassword' application/x-www-form-urlencoded: schema: $ref: '#/components/schemas/SetPassword' multipart/form-data: schema: $ref: '#/components/schemas/SetPassword' required: true security: - jwtAuth: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/SetPassword' description: '' /api/v1/accounts/users/set_username/: post: operationId: accounts_users_set_username_create tags: - accounts requestBody: content: application/json: schema: $ref: '#/components/schemas/SetUsername' application/x-www-form-urlencoded: schema: $ref: '#/components/schemas/SetUsername' multipart/form-data: schema: $ref: '#/components/schemas/SetUsername' required: true security: - jwtAuth: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/SetUsername' description: '' /api/v1/billing/: get: operationId: billing_retrieve tags: - billing security: - jwtAuth: [] responses: '200': description: No response body /api/v1/notifications/: get: operationId: notifications_list tags: - notifications security: - jwtAuth: [] - {} responses: '200': content: application/json: schema: type: array items: $ref: '#/components/schemas/Notification' description: '' /api/v1/notifications/{id}/: get: operationId: notifications_retrieve parameters: - in: path name: id schema: type: integer description: A unique integer value identifying this notification. required: true tags: - notifications security: - jwtAuth: [] - {} responses: '200': content: application/json: schema: $ref: '#/components/schemas/Notification' description: '' patch: operationId: notifications_partial_update parameters: - in: path name: id schema: type: integer description: A unique integer value identifying this notification. required: true tags: - notifications requestBody: content: application/json: schema: $ref: '#/components/schemas/PatchedNotification' application/x-www-form-urlencoded: schema: $ref: '#/components/schemas/PatchedNotification' multipart/form-data: schema: $ref: '#/components/schemas/PatchedNotification' security: - jwtAuth: [] - {} responses: '200': content: application/json: schema: $ref: '#/components/schemas/Notification' description: '' delete: operationId: notifications_destroy parameters: - in: path name: id schema: type: integer description: A unique integer value identifying this notification. required: true tags: - notifications security: - jwtAuth: [] - {} responses: '204': description: No response body /api/v1/stripe/checkout_session/: post: operationId: stripe_checkout_session_create tags: - stripe requestBody: content: application/json: schema: $ref: '#/components/schemas/Checkout' application/x-www-form-urlencoded: schema: $ref: '#/components/schemas/Checkout' multipart/form-data: schema: $ref: '#/components/schemas/Checkout' required: true security: - jwtAuth: [] responses: '200': description: No response body /api/v1/stripe/webhook/: post: operationId: stripe_webhook_create tags: - stripe security: - jwtAuth: [] - {} responses: '200': description: No response body /api/v1/subscriptions/plans/: get: operationId: subscriptions_plans_list tags: - subscriptions security: - jwtAuth: [] - {} responses: '200': content: application/json: schema: type: array items: $ref: '#/components/schemas/SubscriptionPlan' description: '' /api/v1/subscriptions/plans/{id}/: get: operationId: subscriptions_plans_retrieve parameters: - in: path name: id schema: type: integer description: A unique integer value identifying this subscription plan. required: true tags: - subscriptions security: - jwtAuth: [] - {} responses: '200': content: application/json: schema: $ref: '#/components/schemas/SubscriptionPlan' description: '' /api/v1/subscriptions/self/: get: operationId: subscriptions_self_list tags: - subscriptions security: - jwtAuth: [] responses: '200': content: application/json: schema: type: array items: $ref: '#/components/schemas/UserSubscription' description: '' /api/v1/subscriptions/self/{id}/: get: operationId: subscriptions_self_retrieve parameters: - in: path name: id schema: type: integer description: A unique integer value identifying this user subscription. required: true tags: - subscriptions security: - jwtAuth: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/UserSubscription' description: '' /api/v1/subscriptions/user_group/: get: operationId: subscriptions_user_group_list tags: - subscriptions security: - jwtAuth: [] responses: '200': content: application/json: schema: type: array items: $ref: '#/components/schemas/UserSubscription' description: '' /api/v1/subscriptions/user_group/{id}/: get: operationId: subscriptions_user_group_retrieve parameters: - in: path name: id schema: type: integer description: A unique integer value identifying this user subscription. required: true tags: - subscriptions security: - jwtAuth: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/UserSubscription' description: '' components: schemas: Activation: type: object properties: uid: type: string token: type: string required: - token - uid Checkout: type: object properties: subscription_id: type: integer annual: type: boolean required: - annual - subscription_id CustomUser: type: object properties: id: type: integer readOnly: true username: type: string readOnly: true description: Required. 150 characters or fewer. Letters, digits and @/./+/-/_ only. email: type: string format: email readOnly: true title: Email address avatar: type: string format: uri first_name: type: string maxLength: 150 is_new: type: string readOnly: true last_name: type: string maxLength: 150 user_group: type: integer readOnly: true nullable: true group_member: type: string readOnly: true group_owner: type: string readOnly: true required: - avatar - email - group_member - group_owner - id - is_new - user_group - username Notification: type: object properties: id: type: integer readOnly: true timestamp: type: string format: date-time readOnly: true content: type: string readOnly: true nullable: true dismissed: type: boolean recipient: type: integer readOnly: true required: - content - id - recipient - timestamp PasswordResetConfirm: type: object properties: uid: type: string token: type: string new_password: type: string required: - new_password - token - uid PatchedCustomUser: type: object properties: id: type: integer readOnly: true username: type: string readOnly: true description: Required. 150 characters or fewer. Letters, digits and @/./+/-/_ only. email: type: string format: email readOnly: true title: Email address avatar: type: string format: uri first_name: type: string maxLength: 150 is_new: type: string readOnly: true last_name: type: string maxLength: 150 user_group: type: integer readOnly: true nullable: true group_member: type: string readOnly: true group_owner: type: string readOnly: true PatchedNotification: type: object properties: id: type: integer readOnly: true timestamp: type: string format: date-time readOnly: true content: type: string readOnly: true nullable: true dismissed: type: boolean recipient: type: integer readOnly: true SendEmailReset: type: object properties: email: type: string format: email required: - email SetPassword: type: object properties: new_password: type: string current_password: type: string required: - current_password - new_password SetUsername: type: object properties: current_password: type: string new_username: type: string title: Username description: Required. 150 characters or fewer. Letters, digits and @/./+/-/_ only. pattern: ^[\w.@+-]+$ maxLength: 150 required: - current_password - new_username SubscriptionPlan: type: object properties: id: type: integer readOnly: true name: type: string maxLength: 100 description: type: string nullable: true maxLength: 1024 annual_price: type: integer nullable: true monthly_price: type: integer nullable: true group_exclusive: type: boolean required: - id - name TokenObtainPair: type: object properties: username: type: string writeOnly: true password: type: string writeOnly: true access: type: string readOnly: true refresh: type: string readOnly: true required: - access - password - refresh - username TokenRefresh: type: object properties: access: type: string readOnly: true refresh: type: string writeOnly: true required: - access - refresh TokenVerify: type: object properties: token: type: string writeOnly: true required: - token UserRegistration: type: object properties: email: type: string format: email username: type: string password: type: string writeOnly: true first_name: type: string last_name: type: string required: - email - first_name - last_name - password - username UserSubscription: type: object properties: id: type: integer readOnly: true user: type: integer nullable: true user_group: type: integer nullable: true subscription: type: integer nullable: true date: type: string format: date-time readOnly: true valid: type: boolean annual: type: boolean required: - annual - date - id - valid UsernameResetConfirm: type: object properties: new_username: type: string title: Username description: Required. 150 characters or fewer. Letters, digits and @/./+/-/_ only. pattern: ^[\w.@+-]+$ maxLength: 150 required: - new_username securitySchemes: jwtAuth: type: http scheme: bearer bearerFormat: JWT