openapi: 3.0.3
info:
  title: ChurchPad API
  version: 1.0.0
servers:
  - url: https://prosper-api-test.churchpad.com
    description: Staging Server
paths:
  /api/auth/check-reset-token:
    get:
      operationId: auth_check_reset_token_retrieve
      tags:
      - auth
      security:
      - jwtAuth: []
      - {}
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Authentication'
          description: ''
  /api/auth/forgot-password:
    post:
      operationId: auth_forgot_password_create
      tags:
      - auth
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                church:
                  type: string
                  description: Church ID
                email:
                  type: string
                  description: User email
              required:
              - church
              - email
      security:
      - jwtAuth: []
      - {}
      responses:
        '200':
          content:
            application/json:
              schema:
                type: object
                properties:
                  message:
                    type: string
          description: ''
  /api/auth/reset-password:
    post:
      operationId: auth_reset_password_create
      parameters:
      - in: query
        name: reset_token
        schema:
          type: string
        required: true
      tags:
      - auth
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                password:
                  type: string
                  description: New password
              required:
              - password
      security:
      - jwtAuth: []
      - {}
      responses:
        '200':
          content:
            application/json:
              schema:
                type: object
                properties:
                  message:
                    type: string
          description: ''
  /api/auth/reset-password-with-otp:
    post:
      operationId: auth_reset_password_with_otp_create
      tags:
      - auth
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                code:
                  type: string
                  description: OTP code
                password:
                  type: string
                  description: New password
              required:
              - code
              - password
      security:
      - jwtAuth: []
      - {}
      responses:
        '200':
          content:
            application/json:
              schema:
                type: object
                properties:
                  message:
                    type: string
          description: ''
  /api/auth/sign-in:
    post:
      operationId: auth_sign_in_create
      tags:
      - auth
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                user_id:
                  type: string
                  description: User email or phone
                password:
                  type: string
                  description: User password
                church:
                  type: string
                  description: Church ID
                device_id:
                  type: string
                  description: Device ID
              required:
              - user_id
              - password
              - church
      security:
      - jwtAuth: []
      - {}
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/User'
          description: ''
  /api/auth/sign-up:
    post:
      operationId: auth_sign_up_create
      tags:
      - auth
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Authentication'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/Authentication'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/Authentication'
        required: true
      security:
      - jwtAuth: []
      - {}
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Authentication'
          description: ''
  /api/auth/verify-2fa:
    post:
      operationId: auth_verify_2fa_create
      tags:
      - auth
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                user_id:
                  type: string
                  description: User email or phone
                church:
                  type: string
                  description: Church ID
                code:
                  type: string
                  description: 2FA code
                device_id:
                  type: string
                  description: Device ID
              required:
              - user_id
              - church
              - code
      security:
      - jwtAuth: []
      - {}
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/User'
          description: ''
  /api/bundles:
    get:
      operationId: bundles_list
      tags:
      - bundles
      security:
      - jwtAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/Bundle'
          description: ''
    post:
      operationId: bundles_create
      tags:
      - bundles
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Bundle'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/Bundle'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/Bundle'
        required: true
      security:
      - jwtAuth: []
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Bundle'
          description: ''
  /api/bundles/{id}:
    get:
      operationId: bundles_retrieve
      parameters:
      - in: path
        name: id
        schema:
          type: string
          format: uuid
        description: A UUID string identifying this bundle.
        required: true
      tags:
      - bundles
      security:
      - jwtAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Bundle'
          description: ''
    put:
      operationId: bundles_update
      parameters:
      - in: path
        name: id
        schema:
          type: string
          format: uuid
        description: A UUID string identifying this bundle.
        required: true
      tags:
      - bundles
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Bundle'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/Bundle'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/Bundle'
        required: true
      security:
      - jwtAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Bundle'
          description: ''
    patch:
      operationId: bundles_partial_update
      parameters:
      - in: path
        name: id
        schema:
          type: string
          format: uuid
        description: A UUID string identifying this bundle.
        required: true
      tags:
      - bundles
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchedBundle'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/PatchedBundle'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/PatchedBundle'
      security:
      - jwtAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Bundle'
          description: ''
    delete:
      operationId: bundles_destroy
      parameters:
      - in: path
        name: id
        schema:
          type: string
          format: uuid
        description: A UUID string identifying this bundle.
        required: true
      tags:
      - bundles
      security:
      - jwtAuth: []
      responses:
        '204':
          description: No response body
  /api/bundles/{id}/purchase:
    get:
      operationId: bundles_purchase_retrieve
      parameters:
      - in: path
        name: id
        schema:
          type: string
          format: uuid
        description: A UUID string identifying this bundle.
        required: true
      tags:
      - bundles
      security:
      - jwtAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Bundle'
          description: ''
  /api/bundles/payment-confirmation:
    post:
      operationId: bundles_payment_confirmation_create
      tags:
      - bundles
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Bundle'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/Bundle'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/Bundle'
        required: true
      security:
      - jwtAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Bundle'
          description: ''
  /api/bundles/purchase-history:
    get:
      operationId: bundles_purchase_history_retrieve
      tags:
      - bundles
      security:
      - jwtAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Bundle'
          description: ''
  /api/child-categories:
    get:
      operationId: child_categories_list
      tags:
      - child-categories
      security:
      - jwtAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/ChildCategory'
          description: ''
    post:
      operationId: child_categories_create
      tags:
      - child-categories
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ChildCategory'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/ChildCategory'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/ChildCategory'
        required: true
      security:
      - jwtAuth: []
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ChildCategory'
          description: ''
  /api/child-categories/{id}:
    get:
      operationId: child_categories_retrieve
      parameters:
      - in: path
        name: id
        schema:
          type: string
          format: uuid
        description: A UUID string identifying this child category.
        required: true
      tags:
      - child-categories
      security:
      - jwtAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ChildCategory'
          description: ''
    put:
      operationId: child_categories_update
      parameters:
      - in: path
        name: id
        schema:
          type: string
          format: uuid
        description: A UUID string identifying this child category.
        required: true
      tags:
      - child-categories
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ChildCategory'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/ChildCategory'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/ChildCategory'
        required: true
      security:
      - jwtAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ChildCategory'
          description: ''
    patch:
      operationId: child_categories_partial_update
      parameters:
      - in: path
        name: id
        schema:
          type: string
          format: uuid
        description: A UUID string identifying this child category.
        required: true
      tags:
      - child-categories
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchedChildCategory'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/PatchedChildCategory'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/PatchedChildCategory'
      security:
      - jwtAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ChildCategory'
          description: ''
    delete:
      operationId: child_categories_destroy
      parameters:
      - in: path
        name: id
        schema:
          type: string
          format: uuid
        description: A UUID string identifying this child category.
        required: true
      tags:
      - child-categories
      security:
      - jwtAuth: []
      responses:
        '204':
          description: No response body
  /api/child-check-in:
    get:
      operationId: child_check_in_list
      parameters:
      - name: page
        required: false
        in: query
        description: A page number within the paginated result set.
        schema:
          type: integer
      - name: page_size
        required: false
        in: query
        description: Number of results to return per page.
        schema:
          type: integer
      tags:
      - child-check-in
      security:
      - jwtAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedChildCheckInList'
          description: ''
    post:
      operationId: child_check_in_create
      tags:
      - child-check-in
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ChildCheckIn'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/ChildCheckIn'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/ChildCheckIn'
      security:
      - jwtAuth: []
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ChildCheckIn'
          description: ''
  /api/child-check-in/{id}:
    get:
      operationId: child_check_in_retrieve
      parameters:
      - in: path
        name: id
        schema:
          type: string
          format: uuid
        description: A UUID string identifying this child check in.
        required: true
      tags:
      - child-check-in
      security:
      - jwtAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ChildCheckIn'
          description: ''
    put:
      operationId: child_check_in_update
      parameters:
      - in: path
        name: id
        schema:
          type: string
          format: uuid
        description: A UUID string identifying this child check in.
        required: true
      tags:
      - child-check-in
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ChildCheckIn'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/ChildCheckIn'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/ChildCheckIn'
      security:
      - jwtAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ChildCheckIn'
          description: ''
    patch:
      operationId: child_check_in_partial_update
      parameters:
      - in: path
        name: id
        schema:
          type: string
          format: uuid
        description: A UUID string identifying this child check in.
        required: true
      tags:
      - child-check-in
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchedChildCheckIn'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/PatchedChildCheckIn'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/PatchedChildCheckIn'
      security:
      - jwtAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ChildCheckIn'
          description: ''
    delete:
      operationId: child_check_in_destroy
      parameters:
      - in: path
        name: id
        schema:
          type: string
          format: uuid
        description: A UUID string identifying this child check in.
        required: true
      tags:
      - child-check-in
      security:
      - jwtAuth: []
      responses:
        '204':
          description: No response body
  /api/child-check-in/reports:
    get:
      operationId: child_check_in_reports_retrieve
      tags:
      - child-check-in
      security:
      - jwtAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ChildCheckIn'
          description: ''
  /api/children:
    get:
      operationId: children_list
      parameters:
      - name: page
        required: false
        in: query
        description: A page number within the paginated result set.
        schema:
          type: integer
      - name: page_size
        required: false
        in: query
        description: Number of results to return per page.
        schema:
          type: integer
      tags:
      - children
      security:
      - jwtAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedChildList'
          description: ''
    post:
      operationId: children_create
      tags:
      - children
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Child'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/Child'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/Child'
        required: true
      security:
      - jwtAuth: []
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Child'
          description: ''
  /api/children/{id}:
    get:
      operationId: children_retrieve
      parameters:
      - in: path
        name: id
        schema:
          type: string
          format: uuid
        description: A UUID string identifying this child.
        required: true
      tags:
      - children
      security:
      - jwtAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Child'
          description: ''
    put:
      operationId: children_update
      parameters:
      - in: path
        name: id
        schema:
          type: string
          format: uuid
        description: A UUID string identifying this child.
        required: true
      tags:
      - children
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Child'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/Child'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/Child'
        required: true
      security:
      - jwtAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Child'
          description: ''
    patch:
      operationId: children_partial_update
      parameters:
      - in: path
        name: id
        schema:
          type: string
          format: uuid
        description: A UUID string identifying this child.
        required: true
      tags:
      - children
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchedChild'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/PatchedChild'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/PatchedChild'
      security:
      - jwtAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Child'
          description: ''
    delete:
      operationId: children_destroy
      parameters:
      - in: path
        name: id
        schema:
          type: string
          format: uuid
        description: A UUID string identifying this child.
        required: true
      tags:
      - children
      security:
      - jwtAuth: []
      responses:
        '204':
          description: No response body
  /api/children/{id}/notes:
    get:
      operationId: children_notes_retrieve
      parameters:
      - in: path
        name: id
        schema:
          type: string
          format: uuid
        description: A UUID string identifying this child.
        required: true
      tags:
      - children
      security:
      - jwtAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Child'
          description: ''
    post:
      operationId: children_notes_create
      parameters:
      - in: path
        name: id
        schema:
          type: string
          format: uuid
        description: A UUID string identifying this child.
        required: true
      tags:
      - children
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Child'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/Child'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/Child'
        required: true
      security:
      - jwtAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Child'
          description: ''
  /api/children/{id}/notes/{note_id}:
    get:
      operationId: children_notes_retrieve_2
      parameters:
      - in: path
        name: id
        schema:
          type: string
          format: uuid
        description: A UUID string identifying this child.
        required: true
      - in: path
        name: note_id
        schema:
          type: string
        required: true
      tags:
      - children
      security:
      - jwtAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Child'
          description: ''
    delete:
      operationId: children_notes_destroy
      parameters:
      - in: path
        name: id
        schema:
          type: string
          format: uuid
        description: A UUID string identifying this child.
        required: true
      - in: path
        name: note_id
        schema:
          type: string
        required: true
      tags:
      - children
      security:
      - jwtAuth: []
      responses:
        '204':
          description: No response body
  /api/children/allergies:
    get:
      operationId: children_allergies_retrieve
      tags:
      - children
      security:
      - jwtAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Child'
          description: ''
    post:
      operationId: children_allergies_create
      tags:
      - children
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Child'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/Child'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/Child'
        required: true
      security:
      - jwtAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Child'
          description: ''
    patch:
      operationId: children_allergies_partial_update
      tags:
      - children
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchedChild'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/PatchedChild'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/PatchedChild'
      security:
      - jwtAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Child'
          description: ''
    delete:
      operationId: children_allergies_destroy
      tags:
      - children
      security:
      - jwtAuth: []
      responses:
        '204':
          description: No response body
  /api/children/check-in:
    get:
      operationId: children_check_in_retrieve
      tags:
      - children
      security:
      - jwtAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Child'
          description: ''
  /api/children/delete:
    delete:
      operationId: children_delete_destroy
      tags:
      - children
      security:
      - jwtAuth: []
      responses:
        '204':
          description: No response body
  /api/children/overview:
    get:
      operationId: children_overview_retrieve
      tags:
      - children
      security:
      - jwtAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Child'
          description: ''
  /api/children/overview/{route_action}:
    get:
      operationId: children_overview_retrieve_2
      parameters:
      - in: path
        name: route_action
        schema:
          type: string
          pattern: ^(genders|colors|age-groups|birthdays|allergies)$
        required: true
      tags:
      - children
      security:
      - jwtAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Child'
          description: ''
  /api/children/teachers:
    get:
      operationId: children_teachers_retrieve
      tags:
      - children
      security:
      - jwtAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Child'
          description: ''
    post:
      operationId: children_teachers_create
      tags:
      - children
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Child'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/Child'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/Child'
        required: true
      security:
      - jwtAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Child'
          description: ''
    delete:
      operationId: children_teachers_destroy
      tags:
      - children
      security:
      - jwtAuth: []
      responses:
        '204':
          description: No response body
  /api/church/{church_id}/celebration-wall:
    get:
      operationId: church_celebration_wall_retrieve
      parameters:
      - in: path
        name: church_id
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - church
      security:
      - jwtAuth: []
      responses:
        '200':
          description: No response body
  /api/church/{church_id}/events:
    get:
      operationId: church_events_retrieve
      parameters:
      - in: path
        name: church_id
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - church
      security:
      - jwtAuth: []
      responses:
        '200':
          description: No response body
  /api/church/{church_id}/events/{event_id}:
    get:
      operationId: church_events_retrieve_2
      parameters:
      - in: path
        name: church_id
        schema:
          type: string
          format: uuid
        required: true
      - in: path
        name: event_id
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - church
      security:
      - jwtAuth: []
      responses:
        '200':
          description: No response body
  /api/church/{church_id}/guests:
    post:
      operationId: church_guests_create
      parameters:
      - in: path
        name: church_id
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - church
      security:
      - jwtAuth: []
      - {}
      responses:
        '200':
          description: No response body
  /api/church/{church_id}/information:
    get:
      operationId: church_information_retrieve
      parameters:
      - in: path
        name: church_id
        schema:
          type: string
        required: true
      tags:
      - church
      security:
      - jwtAuth: []
      responses:
        '200':
          description: No response body
  /api/church/{church_id}/notifications/{notification_id}:
    get:
      operationId: church_notifications_retrieve
      parameters:
      - in: path
        name: church_id
        schema:
          type: string
          format: uuid
        required: true
      - in: path
        name: notification_id
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - church
      security:
      - jwtAuth: []
      responses:
        '200':
          description: No response body
  /api/church/{church_id}/options:
    get:
      operationId: church_options_retrieve
      parameters:
      - in: path
        name: church_id
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - church
      security:
      - jwtAuth: []
      responses:
        '200':
          description: No response body
  /api/church/{id}:
    get:
      operationId: church_retrieve
      parameters:
      - in: path
        name: id
        schema:
          type: string
          format: uuid
        description: A UUID string identifying this church.
        required: true
      tags:
      - church
      security:
      - jwtAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Church'
          description: ''
    patch:
      operationId: church_partial_update
      parameters:
      - in: path
        name: id
        schema:
          type: string
          format: uuid
        description: A UUID string identifying this church.
        required: true
      tags:
      - church
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchedChurch'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/PatchedChurch'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/PatchedChurch'
      security:
      - jwtAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Church'
          description: ''
    delete:
      operationId: church_destroy
      parameters:
      - in: path
        name: id
        schema:
          type: string
          format: uuid
        description: A UUID string identifying this church.
        required: true
      tags:
      - church
      security:
      - jwtAuth: []
      responses:
        '204':
          description: No response body
  /api/church/{route_action}:
    get:
      operationId: church_retrieve_2
      parameters:
      - in: path
        name: route_action
        schema:
          type: string
          pattern: ^(positions|salutations)$
        required: true
      tags:
      - church
      security:
      - jwtAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Church'
          description: ''
    post:
      operationId: church_create
      parameters:
      - in: path
        name: route_action
        schema:
          type: string
          pattern: ^(positions|salutations)$
        required: true
      tags:
      - church
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Church'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/Church'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/Church'
        required: true
      security:
      - jwtAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Church'
          description: ''
    patch:
      operationId: church_partial_update_2
      parameters:
      - in: path
        name: route_action
        schema:
          type: string
          pattern: ^(positions|salutations)$
        required: true
      tags:
      - church
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchedChurch'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/PatchedChurch'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/PatchedChurch'
      security:
      - jwtAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Church'
          description: ''
    delete:
      operationId: church_destroy_2
      parameters:
      - in: path
        name: route_action
        schema:
          type: string
          pattern: ^(positions|salutations)$
        required: true
      tags:
      - church
      security:
      - jwtAuth: []
      responses:
        '204':
          description: No response body
  /api/church/audit-logs:
    get:
      operationId: church_audit_logs_retrieve
      tags:
      - church
      security:
      - jwtAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Church'
          description: ''
    post:
      operationId: church_audit_logs_create
      tags:
      - church
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Church'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/Church'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/Church'
        required: true
      security:
      - jwtAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Church'
          description: ''
  /api/church/dashboard:
    get:
      operationId: church_dashboard_retrieve
      tags:
      - church
      security:
      - jwtAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Church'
          description: ''
  /api/church/dropdown:
    get:
      operationId: church_dropdown_retrieve
      tags:
      - church
      security:
      - jwtAuth: []
      - {}
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Church'
          description: ''
  /api/church/get-code-availability:
    get:
      operationId: church_get_code_availability_retrieve
      tags:
      - church
      security:
      - jwtAuth: []
      - {}
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Church'
          description: ''
  /api/church/give-methods:
    get:
      operationId: church_give_methods_list
      parameters:
      - name: limit
        required: false
        in: query
        description: Number of results to return per page.
        schema:
          type: integer
      - name: offset
        required: false
        in: query
        description: The initial index from which to return the results.
        schema:
          type: integer
      tags:
      - church
      security:
      - jwtAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedGiveMethodList'
          description: ''
    post:
      operationId: church_give_methods_create
      tags:
      - church
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/GiveMethod'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/GiveMethod'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/GiveMethod'
        required: true
      security:
      - jwtAuth: []
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GiveMethod'
          description: ''
  /api/church/give-methods/{id}:
    get:
      operationId: church_give_methods_retrieve
      parameters:
      - in: path
        name: id
        schema:
          type: string
          format: uuid
        description: A UUID string identifying this give method.
        required: true
      tags:
      - church
      security:
      - jwtAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GiveMethod'
          description: ''
    put:
      operationId: church_give_methods_update
      parameters:
      - in: path
        name: id
        schema:
          type: string
          format: uuid
        description: A UUID string identifying this give method.
        required: true
      tags:
      - church
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/GiveMethod'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/GiveMethod'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/GiveMethod'
        required: true
      security:
      - jwtAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GiveMethod'
          description: ''
    patch:
      operationId: church_give_methods_partial_update
      parameters:
      - in: path
        name: id
        schema:
          type: string
          format: uuid
        description: A UUID string identifying this give method.
        required: true
      tags:
      - church
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchedGiveMethod'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/PatchedGiveMethod'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/PatchedGiveMethod'
      security:
      - jwtAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GiveMethod'
          description: ''
    delete:
      operationId: church_give_methods_destroy
      parameters:
      - in: path
        name: id
        schema:
          type: string
          format: uuid
        description: A UUID string identifying this give method.
        required: true
      tags:
      - church
      security:
      - jwtAuth: []
      responses:
        '204':
          description: No response body
  /api/church/invoices:
    get:
      operationId: church_invoices_list
      parameters:
      - name: limit
        required: false
        in: query
        description: Number of results to return per page.
        schema:
          type: integer
      - name: offset
        required: false
        in: query
        description: The initial index from which to return the results.
        schema:
          type: integer
      tags:
      - church
      security:
      - jwtAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedInvoiceList'
          description: ''
    post:
      operationId: church_invoices_create
      tags:
      - church
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Invoice'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/Invoice'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/Invoice'
        required: true
      security:
      - jwtAuth: []
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Invoice'
          description: ''
  /api/church/invoices/{id}:
    get:
      operationId: church_invoices_retrieve
      parameters:
      - in: path
        name: id
        schema:
          type: string
          format: uuid
        description: A UUID string identifying this invoice.
        required: true
      tags:
      - church
      security:
      - jwtAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Invoice'
          description: ''
    put:
      operationId: church_invoices_update
      parameters:
      - in: path
        name: id
        schema:
          type: string
          format: uuid
        description: A UUID string identifying this invoice.
        required: true
      tags:
      - church
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Invoice'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/Invoice'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/Invoice'
        required: true
      security:
      - jwtAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Invoice'
          description: ''
    patch:
      operationId: church_invoices_partial_update
      parameters:
      - in: path
        name: id
        schema:
          type: string
          format: uuid
        description: A UUID string identifying this invoice.
        required: true
      tags:
      - church
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchedInvoice'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/PatchedInvoice'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/PatchedInvoice'
      security:
      - jwtAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Invoice'
          description: ''
    delete:
      operationId: church_invoices_destroy
      parameters:
      - in: path
        name: id
        schema:
          type: string
          format: uuid
        description: A UUID string identifying this invoice.
        required: true
      tags:
      - church
      security:
      - jwtAuth: []
      responses:
        '204':
          description: No response body
  /api/church/invoices/{id}/pay:
    post:
      operationId: church_invoices_pay_create
      parameters:
      - in: path
        name: id
        schema:
          type: string
          format: uuid
        description: A UUID string identifying this invoice.
        required: true
      tags:
      - church
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Invoice'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/Invoice'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/Invoice'
        required: true
      security:
      - jwtAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Invoice'
          description: ''
  /api/church/invoices/cancel:
    post:
      operationId: church_invoices_cancel_create
      tags:
      - church
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Invoice'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/Invoice'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/Invoice'
        required: true
      security:
      - jwtAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Invoice'
          description: ''
  /api/church/invoices/change:
    post:
      operationId: church_invoices_change_create
      tags:
      - church
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Invoice'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/Invoice'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/Invoice'
        required: true
      security:
      - jwtAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Invoice'
          description: ''
  /api/church/invoices/payment-confirmation:
    post:
      operationId: church_invoices_payment_confirmation_create
      tags:
      - church
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Invoice'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/Invoice'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/Invoice'
        required: true
      security:
      - jwtAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Invoice'
          description: ''
  /api/church/locations:
    get:
      operationId: church_locations_list
      parameters:
      - name: limit
        required: false
        in: query
        description: Number of results to return per page.
        schema:
          type: integer
      - name: offset
        required: false
        in: query
        description: The initial index from which to return the results.
        schema:
          type: integer
      tags:
      - church
      security:
      - jwtAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedLocationList'
          description: ''
    post:
      operationId: church_locations_create
      tags:
      - church
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Location'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/Location'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/Location'
        required: true
      security:
      - jwtAuth: []
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Location'
          description: ''
  /api/church/locations/{id}:
    get:
      operationId: church_locations_retrieve
      parameters:
      - in: path
        name: id
        schema:
          type: string
          format: uuid
        description: A UUID string identifying this location.
        required: true
      tags:
      - church
      security:
      - jwtAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Location'
          description: ''
    put:
      operationId: church_locations_update
      parameters:
      - in: path
        name: id
        schema:
          type: string
          format: uuid
        description: A UUID string identifying this location.
        required: true
      tags:
      - church
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Location'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/Location'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/Location'
        required: true
      security:
      - jwtAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Location'
          description: ''
    patch:
      operationId: church_locations_partial_update
      parameters:
      - in: path
        name: id
        schema:
          type: string
          format: uuid
        description: A UUID string identifying this location.
        required: true
      tags:
      - church
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchedLocation'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/PatchedLocation'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/PatchedLocation'
      security:
      - jwtAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Location'
          description: ''
    delete:
      operationId: church_locations_destroy
      parameters:
      - in: path
        name: id
        schema:
          type: string
          format: uuid
        description: A UUID string identifying this location.
        required: true
      tags:
      - church
      security:
      - jwtAuth: []
      responses:
        '204':
          description: No response body
  /api/church/onboarding:
    get:
      operationId: church_onboarding_retrieve
      tags:
      - church
      security:
      - jwtAuth: []
      - {}
      responses:
        '200':
          description: No response body
    post:
      operationId: church_onboarding_create
      tags:
      - church
      security:
      - jwtAuth: []
      - {}
      responses:
        '200':
          description: No response body
  /api/church/payment-methods:
    get:
      operationId: church_payment_methods_list
      tags:
      - church
      security:
      - jwtAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/PaymentMethod'
          description: ''
    post:
      operationId: church_payment_methods_create
      tags:
      - church
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PaymentMethod'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/PaymentMethod'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/PaymentMethod'
      security:
      - jwtAuth: []
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaymentMethod'
          description: ''
  /api/church/payment-methods/{id}:
    get:
      operationId: church_payment_methods_retrieve
      parameters:
      - in: path
        name: id
        schema:
          type: string
          format: uuid
        description: A UUID string identifying this payment method.
        required: true
      tags:
      - church
      security:
      - jwtAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaymentMethod'
          description: ''
    put:
      operationId: church_payment_methods_update
      parameters:
      - in: path
        name: id
        schema:
          type: string
          format: uuid
        description: A UUID string identifying this payment method.
        required: true
      tags:
      - church
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PaymentMethod'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/PaymentMethod'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/PaymentMethod'
      security:
      - jwtAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaymentMethod'
          description: ''
    patch:
      operationId: church_payment_methods_partial_update
      parameters:
      - in: path
        name: id
        schema:
          type: string
          format: uuid
        description: A UUID string identifying this payment method.
        required: true
      tags:
      - church
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchedPaymentMethod'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/PatchedPaymentMethod'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/PatchedPaymentMethod'
      security:
      - jwtAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaymentMethod'
          description: ''
    delete:
      operationId: church_payment_methods_destroy
      parameters:
      - in: path
        name: id
        schema:
          type: string
          format: uuid
        description: A UUID string identifying this payment method.
        required: true
      tags:
      - church
      security:
      - jwtAuth: []
      responses:
        '204':
          description: No response body
  /api/church/plans:
    get:
      operationId: church_plans_list
      tags:
      - church
      security:
      - jwtAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/Plan'
          description: ''
    post:
      operationId: church_plans_create
      tags:
      - church
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Plan'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/Plan'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/Plan'
        required: true
      security:
      - jwtAuth: []
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Plan'
          description: ''
  /api/church/plans/{id}:
    get:
      operationId: church_plans_retrieve
      parameters:
      - in: path
        name: id
        schema:
          type: string
          format: uuid
        description: A UUID string identifying this plan.
        required: true
      tags:
      - church
      security:
      - jwtAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Plan'
          description: ''
    put:
      operationId: church_plans_update
      parameters:
      - in: path
        name: id
        schema:
          type: string
          format: uuid
        description: A UUID string identifying this plan.
        required: true
      tags:
      - church
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Plan'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/Plan'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/Plan'
        required: true
      security:
      - jwtAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Plan'
          description: ''
    patch:
      operationId: church_plans_partial_update
      parameters:
      - in: path
        name: id
        schema:
          type: string
          format: uuid
        description: A UUID string identifying this plan.
        required: true
      tags:
      - church
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchedPlan'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/PatchedPlan'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/PatchedPlan'
      security:
      - jwtAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Plan'
          description: ''
    delete:
      operationId: church_plans_destroy
      parameters:
      - in: path
        name: id
        schema:
          type: string
          format: uuid
        description: A UUID string identifying this plan.
        required: true
      tags:
      - church
      security:
      - jwtAuth: []
      responses:
        '204':
          description: No response body
  /api/church/qr-codes:
    get:
      operationId: church_qr_codes_retrieve
      tags:
      - church
      security:
      - jwtAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Church'
          description: ''
    post:
      operationId: church_qr_codes_create
      tags:
      - church
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Church'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/Church'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/Church'
        required: true
      security:
      - jwtAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Church'
          description: ''
    patch:
      operationId: church_qr_codes_partial_update
      tags:
      - church
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchedChurch'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/PatchedChurch'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/PatchedChurch'
      security:
      - jwtAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Church'
          description: ''
    delete:
      operationId: church_qr_codes_destroy
      tags:
      - church
      security:
      - jwtAuth: []
      responses:
        '204':
          description: No response body
  /api/church/raise-the-money:
    post:
      operationId: church_raise_the_money_create
      tags:
      - church
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Church'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/Church'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/Church'
        required: true
      security:
      - jwtAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Church'
          description: ''
  /api/church/templates:
    get:
      operationId: church_templates_list
      parameters:
      - name: limit
        required: false
        in: query
        description: Number of results to return per page.
        schema:
          type: integer
      - name: offset
        required: false
        in: query
        description: The initial index from which to return the results.
        schema:
          type: integer
      tags:
      - church
      security:
      - jwtAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedTemplateList'
          description: ''
    post:
      operationId: church_templates_create
      tags:
      - church
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Template'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/Template'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/Template'
        required: true
      security:
      - jwtAuth: []
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Template'
          description: ''
  /api/church/templates/{id}:
    get:
      operationId: church_templates_retrieve
      parameters:
      - in: path
        name: id
        schema:
          type: string
          format: uuid
        description: A UUID string identifying this template.
        required: true
      tags:
      - church
      security:
      - jwtAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Template'
          description: ''
    put:
      operationId: church_templates_update
      parameters:
      - in: path
        name: id
        schema:
          type: string
          format: uuid
        description: A UUID string identifying this template.
        required: true
      tags:
      - church
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Template'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/Template'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/Template'
        required: true
      security:
      - jwtAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Template'
          description: ''
    patch:
      operationId: church_templates_partial_update
      parameters:
      - in: path
        name: id
        schema:
          type: string
          format: uuid
        description: A UUID string identifying this template.
        required: true
      tags:
      - church
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchedTemplate'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/PatchedTemplate'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/PatchedTemplate'
      security:
      - jwtAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Template'
          description: ''
    delete:
      operationId: church_templates_destroy
      parameters:
      - in: path
        name: id
        schema:
          type: string
          format: uuid
        description: A UUID string identifying this template.
        required: true
      tags:
      - church
      security:
      - jwtAuth: []
      responses:
        '204':
          description: No response body
  /api/church/templates/{id}/test:
    post:
      operationId: church_templates_test_create
      parameters:
      - in: path
        name: id
        schema:
          type: string
          format: uuid
        description: A UUID string identifying this template.
        required: true
      tags:
      - church
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Template'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/Template'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/Template'
        required: true
      security:
      - jwtAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Template'
          description: ''
  /api/church/website:
    get:
      operationId: church_website_retrieve
      tags:
      - church
      security:
      - jwtAuth: []
      - {}
      responses:
        '200':
          description: No response body
  /api/cobalt/auth/check-reset-token:
    get:
      operationId: cobalt_auth_check_reset_token_retrieve
      tags:
      - cobalt
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CobaltAuthentication'
          description: ''
  /api/cobalt/auth/forgot-password:
    post:
      operationId: cobalt_auth_forgot_password_create
      tags:
      - cobalt
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CobaltAuthentication'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/CobaltAuthentication'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/CobaltAuthentication'
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CobaltAuthentication'
          description: ''
  /api/cobalt/auth/reset-password:
    post:
      operationId: cobalt_auth_reset_password_create
      tags:
      - cobalt
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CobaltAuthentication'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/CobaltAuthentication'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/CobaltAuthentication'
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CobaltAuthentication'
          description: ''
  /api/cobalt/auth/sign-in:
    post:
      operationId: cobalt_auth_sign_in_create
      tags:
      - cobalt
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CobaltAuthentication'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/CobaltAuthentication'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/CobaltAuthentication'
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CobaltAuthentication'
          description: ''
  /api/cobalt/auth/sign-up:
    post:
      operationId: cobalt_auth_sign_up_create
      tags:
      - cobalt
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CobaltAuthentication'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/CobaltAuthentication'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/CobaltAuthentication'
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CobaltAuthentication'
          description: ''
  /api/cobalt/auth/verify-2fa:
    post:
      operationId: cobalt_auth_verify_2fa_create
      tags:
      - cobalt
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CobaltAuthentication'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/CobaltAuthentication'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/CobaltAuthentication'
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CobaltAuthentication'
          description: ''
  /api/cobalt/billing:
    get:
      operationId: cobalt_billing_list
      parameters:
      - name: limit
        required: false
        in: query
        description: Number of results to return per page.
        schema:
          type: integer
      - name: offset
        required: false
        in: query
        description: The initial index from which to return the results.
        schema:
          type: integer
      tags:
      - cobalt
      security:
      - {}
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedCobaltInvoiceList'
          description: ''
    post:
      operationId: cobalt_billing_create
      tags:
      - cobalt
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CobaltInvoice'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/CobaltInvoice'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/CobaltInvoice'
        required: true
      security:
      - {}
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CobaltInvoice'
          description: ''
  /api/cobalt/billing/{id}:
    get:
      operationId: cobalt_billing_retrieve
      parameters:
      - in: path
        name: id
        schema:
          type: string
          format: uuid
        description: A UUID string identifying this invoice.
        required: true
      tags:
      - cobalt
      security:
      - {}
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CobaltInvoice'
          description: ''
    put:
      operationId: cobalt_billing_update
      parameters:
      - in: path
        name: id
        schema:
          type: string
          format: uuid
        description: A UUID string identifying this invoice.
        required: true
      tags:
      - cobalt
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CobaltInvoice'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/CobaltInvoice'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/CobaltInvoice'
        required: true
      security:
      - {}
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CobaltInvoice'
          description: ''
    patch:
      operationId: cobalt_billing_partial_update
      parameters:
      - in: path
        name: id
        schema:
          type: string
          format: uuid
        description: A UUID string identifying this invoice.
        required: true
      tags:
      - cobalt
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchedCobaltInvoice'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/PatchedCobaltInvoice'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/PatchedCobaltInvoice'
      security:
      - {}
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CobaltInvoice'
          description: ''
    delete:
      operationId: cobalt_billing_destroy
      parameters:
      - in: path
        name: id
        schema:
          type: string
          format: uuid
        description: A UUID string identifying this invoice.
        required: true
      tags:
      - cobalt
      security:
      - {}
      responses:
        '204':
          description: No response body
  /api/cobalt/billing/{id}/pay:
    post:
      operationId: cobalt_billing_pay_create
      parameters:
      - in: path
        name: id
        schema:
          type: string
          format: uuid
        description: A UUID string identifying this invoice.
        required: true
      tags:
      - cobalt
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CobaltInvoice'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/CobaltInvoice'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/CobaltInvoice'
        required: true
      security:
      - {}
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CobaltInvoice'
          description: ''
  /api/cobalt/billing/{id}/waive:
    post:
      operationId: cobalt_billing_waive_create
      parameters:
      - in: path
        name: id
        schema:
          type: string
          format: uuid
        description: A UUID string identifying this invoice.
        required: true
      tags:
      - cobalt
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CobaltInvoice'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/CobaltInvoice'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/CobaltInvoice'
        required: true
      security:
      - {}
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CobaltInvoice'
          description: ''
  /api/cobalt/billing/payment-confirmation:
    post:
      operationId: cobalt_billing_payment_confirmation_create
      tags:
      - cobalt
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CobaltInvoice'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/CobaltInvoice'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/CobaltInvoice'
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CobaltInvoice'
          description: ''
  /api/cobalt/billing/reports:
    get:
      operationId: cobalt_billing_reports_retrieve
      tags:
      - cobalt
      security:
      - {}
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CobaltInvoice'
          description: ''
  /api/cobalt/churches:
    get:
      operationId: cobalt_churches_list
      parameters:
      - name: page
        required: false
        in: query
        description: A page number within the paginated result set.
        schema:
          type: integer
      - name: page_size
        required: false
        in: query
        description: Number of results to return per page.
        schema:
          type: integer
      tags:
      - cobalt
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedChurchList'
          description: ''
    post:
      operationId: cobalt_churches_create
      tags:
      - cobalt
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Church'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/Church'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/Church'
        required: true
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Church'
          description: ''
  /api/cobalt/churches/{id}:
    get:
      operationId: cobalt_churches_retrieve
      parameters:
      - in: path
        name: id
        schema:
          type: string
          format: uuid
        description: A UUID string identifying this church.
        required: true
      tags:
      - cobalt
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Church'
          description: ''
    put:
      operationId: cobalt_churches_update
      parameters:
      - in: path
        name: id
        schema:
          type: string
          format: uuid
        description: A UUID string identifying this church.
        required: true
      tags:
      - cobalt
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Church'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/Church'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/Church'
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Church'
          description: ''
    patch:
      operationId: cobalt_churches_partial_update
      parameters:
      - in: path
        name: id
        schema:
          type: string
          format: uuid
        description: A UUID string identifying this church.
        required: true
      tags:
      - cobalt
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchedChurch'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/PatchedChurch'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/PatchedChurch'
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Church'
          description: ''
    delete:
      operationId: cobalt_churches_destroy
      parameters:
      - in: path
        name: id
        schema:
          type: string
          format: uuid
        description: A UUID string identifying this church.
        required: true
      tags:
      - cobalt
      responses:
        '204':
          description: No response body
  /api/cobalt/churches/{id}/administrators:
    get:
      operationId: cobalt_churches_administrators_retrieve
      parameters:
      - in: path
        name: id
        schema:
          type: string
          format: uuid
        description: A UUID string identifying this church.
        required: true
      tags:
      - cobalt
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Church'
          description: ''
  /api/cobalt/churches/{id}/administrators/{administrator_id}:
    get:
      operationId: cobalt_churches_administrators_retrieve_2
      parameters:
      - in: path
        name: administrator_id
        schema:
          type: string
        required: true
      - in: path
        name: id
        schema:
          type: string
          format: uuid
        description: A UUID string identifying this church.
        required: true
      tags:
      - cobalt
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Church'
          description: ''
    post:
      operationId: cobalt_churches_administrators_create
      parameters:
      - in: path
        name: administrator_id
        schema:
          type: string
        required: true
      - in: path
        name: id
        schema:
          type: string
          format: uuid
        description: A UUID string identifying this church.
        required: true
      tags:
      - cobalt
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Church'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/Church'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/Church'
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Church'
          description: ''
  /api/cobalt/churches/{id}/financial-reports:
    get:
      operationId: cobalt_churches_financial_reports_retrieve
      parameters:
      - in: path
        name: id
        schema:
          type: string
          format: uuid
        description: A UUID string identifying this church.
        required: true
      tags:
      - cobalt
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Church'
          description: ''
  /api/cobalt/churches/{id}/processor-keys:
    get:
      operationId: cobalt_churches_processor_keys_retrieve
      parameters:
      - in: path
        name: id
        schema:
          type: string
          format: uuid
        description: A UUID string identifying this church.
        required: true
      tags:
      - cobalt
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Church'
          description: ''
  /api/cobalt/churches/reports:
    get:
      operationId: cobalt_churches_reports_retrieve
      tags:
      - cobalt
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Church'
          description: ''
  /api/cobalt/config:
    get:
      operationId: cobalt_config_retrieve
      tags:
      - cobalt
      security:
      - {}
      responses:
        '200':
          description: No response body
  /api/cobalt/credits:
    get:
      operationId: cobalt_credits_list
      parameters:
      - name: limit
        required: false
        in: query
        description: Number of results to return per page.
        schema:
          type: integer
      - name: offset
        required: false
        in: query
        description: The initial index from which to return the results.
        schema:
          type: integer
      tags:
      - cobalt
      security:
      - {}
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedCobaltCreditList'
          description: ''
    post:
      operationId: cobalt_credits_create
      tags:
      - cobalt
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CobaltCredit'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/CobaltCredit'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/CobaltCredit'
        required: true
      security:
      - {}
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CobaltCredit'
          description: ''
  /api/cobalt/credits/{id}:
    get:
      operationId: cobalt_credits_retrieve
      parameters:
      - in: path
        name: id
        schema:
          type: string
          format: uuid
        description: A UUID string identifying this cobalt credit.
        required: true
      tags:
      - cobalt
      security:
      - {}
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CobaltCredit'
          description: ''
    put:
      operationId: cobalt_credits_update
      parameters:
      - in: path
        name: id
        schema:
          type: string
          format: uuid
        description: A UUID string identifying this cobalt credit.
        required: true
      tags:
      - cobalt
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CobaltCredit'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/CobaltCredit'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/CobaltCredit'
        required: true
      security:
      - {}
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CobaltCredit'
          description: ''
    patch:
      operationId: cobalt_credits_partial_update
      parameters:
      - in: path
        name: id
        schema:
          type: string
          format: uuid
        description: A UUID string identifying this cobalt credit.
        required: true
      tags:
      - cobalt
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchedCobaltCredit'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/PatchedCobaltCredit'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/PatchedCobaltCredit'
      security:
      - {}
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CobaltCredit'
          description: ''
    delete:
      operationId: cobalt_credits_destroy
      parameters:
      - in: path
        name: id
        schema:
          type: string
          format: uuid
        description: A UUID string identifying this cobalt credit.
        required: true
      tags:
      - cobalt
      security:
      - {}
      responses:
        '204':
          description: No response body
  /api/cobalt/messages:
    get:
      operationId: cobalt_messages_list
      parameters:
      - name: limit
        required: false
        in: query
        description: Number of results to return per page.
        schema:
          type: integer
      - name: offset
        required: false
        in: query
        description: The initial index from which to return the results.
        schema:
          type: integer
      tags:
      - cobalt
      security:
      - {}
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedCobaltMessageList'
          description: ''
    post:
      operationId: cobalt_messages_create
      tags:
      - cobalt
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CobaltMessage'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/CobaltMessage'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/CobaltMessage'
      security:
      - {}
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CobaltMessage'
          description: ''
  /api/cobalt/messages/{id}:
    get:
      operationId: cobalt_messages_retrieve
      parameters:
      - in: path
        name: id
        schema:
          type: string
          format: uuid
        description: A UUID string identifying this cobalt message.
        required: true
      tags:
      - cobalt
      security:
      - {}
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CobaltMessage'
          description: ''
    put:
      operationId: cobalt_messages_update
      parameters:
      - in: path
        name: id
        schema:
          type: string
          format: uuid
        description: A UUID string identifying this cobalt message.
        required: true
      tags:
      - cobalt
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CobaltMessage'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/CobaltMessage'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/CobaltMessage'
      security:
      - {}
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CobaltMessage'
          description: ''
    patch:
      operationId: cobalt_messages_partial_update
      parameters:
      - in: path
        name: id
        schema:
          type: string
          format: uuid
        description: A UUID string identifying this cobalt message.
        required: true
      tags:
      - cobalt
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchedCobaltMessage'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/PatchedCobaltMessage'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/PatchedCobaltMessage'
      security:
      - {}
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CobaltMessage'
          description: ''
    delete:
      operationId: cobalt_messages_destroy
      parameters:
      - in: path
        name: id
        schema:
          type: string
          format: uuid
        description: A UUID string identifying this cobalt message.
        required: true
      tags:
      - cobalt
      security:
      - {}
      responses:
        '204':
          description: No response body
  /api/cobalt/messages/{id}/read:
    get:
      operationId: cobalt_messages_read_retrieve
      parameters:
      - in: path
        name: id
        schema:
          type: string
          format: uuid
        description: A UUID string identifying this cobalt message.
        required: true
      tags:
      - cobalt
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CobaltMessage'
          description: ''
  /api/cobalt/messages/{id}/read-receipts:
    get:
      operationId: cobalt_messages_read_receipts_retrieve
      parameters:
      - in: path
        name: id
        schema:
          type: string
          format: uuid
        description: A UUID string identifying this cobalt message.
        required: true
      tags:
      - cobalt
      security:
      - {}
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CobaltMessage'
          description: ''
  /api/cobalt/messaging-numbers:
    get:
      operationId: cobalt_messaging_numbers_list
      parameters:
      - name: limit
        required: false
        in: query
        description: Number of results to return per page.
        schema:
          type: integer
      - name: offset
        required: false
        in: query
        description: The initial index from which to return the results.
        schema:
          type: integer
      tags:
      - cobalt
      security:
      - {}
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedCobaltMessagingNumberList'
          description: ''
    post:
      operationId: cobalt_messaging_numbers_create
      tags:
      - cobalt
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CobaltMessagingNumber'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/CobaltMessagingNumber'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/CobaltMessagingNumber'
        required: true
      security:
      - {}
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CobaltMessagingNumber'
          description: ''
  /api/cobalt/messaging-numbers/{id}:
    get:
      operationId: cobalt_messaging_numbers_retrieve
      parameters:
      - in: path
        name: id
        schema:
          type: string
          format: uuid
        description: A UUID string identifying this messaging number.
        required: true
      tags:
      - cobalt
      security:
      - {}
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CobaltMessagingNumber'
          description: ''
    put:
      operationId: cobalt_messaging_numbers_update
      parameters:
      - in: path
        name: id
        schema:
          type: string
          format: uuid
        description: A UUID string identifying this messaging number.
        required: true
      tags:
      - cobalt
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CobaltMessagingNumber'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/CobaltMessagingNumber'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/CobaltMessagingNumber'
        required: true
      security:
      - {}
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CobaltMessagingNumber'
          description: ''
    patch:
      operationId: cobalt_messaging_numbers_partial_update
      parameters:
      - in: path
        name: id
        schema:
          type: string
          format: uuid
        description: A UUID string identifying this messaging number.
        required: true
      tags:
      - cobalt
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchedCobaltMessagingNumber'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/PatchedCobaltMessagingNumber'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/PatchedCobaltMessagingNumber'
      security:
      - {}
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CobaltMessagingNumber'
          description: ''
    delete:
      operationId: cobalt_messaging_numbers_destroy
      parameters:
      - in: path
        name: id
        schema:
          type: string
          format: uuid
        description: A UUID string identifying this messaging number.
        required: true
      tags:
      - cobalt
      security:
      - {}
      responses:
        '204':
          description: No response body
  /api/cobalt/messaging-numbers/{id}/{route_action}:
    post:
      operationId: cobalt_messaging_numbers_create_2
      parameters:
      - in: path
        name: id
        schema:
          type: string
          format: uuid
        description: A UUID string identifying this messaging number.
        required: true
      - in: path
        name: route_action
        schema:
          type: string
          pattern: ^(release|restore)$
        required: true
      tags:
      - cobalt
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CobaltMessagingNumber'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/CobaltMessagingNumber'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/CobaltMessagingNumber'
        required: true
      security:
      - {}
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CobaltMessagingNumber'
          description: ''
  /api/cobalt/messaging-numbers/fetch:
    get:
      operationId: cobalt_messaging_numbers_fetch_retrieve
      tags:
      - cobalt
      security:
      - {}
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CobaltMessagingNumber'
          description: ''
  /api/cobalt/templates:
    get:
      operationId: cobalt_templates_list
      parameters:
      - name: limit
        required: false
        in: query
        description: Number of results to return per page.
        schema:
          type: integer
      - name: offset
        required: false
        in: query
        description: The initial index from which to return the results.
        schema:
          type: integer
      tags:
      - cobalt
      security:
      - {}
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedCobaltTemplateList'
          description: ''
    post:
      operationId: cobalt_templates_create
      tags:
      - cobalt
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CobaltTemplate'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/CobaltTemplate'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/CobaltTemplate'
        required: true
      security:
      - {}
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CobaltTemplate'
          description: ''
  /api/cobalt/templates/{id}:
    get:
      operationId: cobalt_templates_retrieve
      parameters:
      - in: path
        name: id
        schema:
          type: string
          format: uuid
        description: A UUID string identifying this cobalt template.
        required: true
      tags:
      - cobalt
      security:
      - {}
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CobaltTemplate'
          description: ''
    put:
      operationId: cobalt_templates_update
      parameters:
      - in: path
        name: id
        schema:
          type: string
          format: uuid
        description: A UUID string identifying this cobalt template.
        required: true
      tags:
      - cobalt
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CobaltTemplate'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/CobaltTemplate'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/CobaltTemplate'
        required: true
      security:
      - {}
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CobaltTemplate'
          description: ''
    patch:
      operationId: cobalt_templates_partial_update
      parameters:
      - in: path
        name: id
        schema:
          type: string
          format: uuid
        description: A UUID string identifying this cobalt template.
        required: true
      tags:
      - cobalt
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchedCobaltTemplate'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/PatchedCobaltTemplate'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/PatchedCobaltTemplate'
      security:
      - {}
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CobaltTemplate'
          description: ''
    delete:
      operationId: cobalt_templates_destroy
      parameters:
      - in: path
        name: id
        schema:
          type: string
          format: uuid
        description: A UUID string identifying this cobalt template.
        required: true
      tags:
      - cobalt
      security:
      - {}
      responses:
        '204':
          description: No response body
  /api/cobalt/tickets:
    get:
      operationId: cobalt_tickets_list
      parameters:
      - name: limit
        required: false
        in: query
        description: Number of results to return per page.
        schema:
          type: integer
      - name: offset
        required: false
        in: query
        description: The initial index from which to return the results.
        schema:
          type: integer
      tags:
      - cobalt
      security:
      - {}
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedCobaltTicketList'
          description: ''
    post:
      operationId: cobalt_tickets_create
      tags:
      - cobalt
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CobaltTicket'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/CobaltTicket'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/CobaltTicket'
        required: true
      security:
      - {}
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CobaltTicket'
          description: ''
  /api/cobalt/tickets/{id}:
    get:
      operationId: cobalt_tickets_retrieve
      parameters:
      - in: path
        name: id
        schema:
          type: string
          format: uuid
        description: A UUID string identifying this ticket.
        required: true
      tags:
      - cobalt
      security:
      - {}
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CobaltTicket'
          description: ''
    put:
      operationId: cobalt_tickets_update
      parameters:
      - in: path
        name: id
        schema:
          type: string
          format: uuid
        description: A UUID string identifying this ticket.
        required: true
      tags:
      - cobalt
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CobaltTicket'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/CobaltTicket'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/CobaltTicket'
        required: true
      security:
      - {}
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CobaltTicket'
          description: ''
    patch:
      operationId: cobalt_tickets_partial_update
      parameters:
      - in: path
        name: id
        schema:
          type: string
          format: uuid
        description: A UUID string identifying this ticket.
        required: true
      tags:
      - cobalt
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchedCobaltTicket'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/PatchedCobaltTicket'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/PatchedCobaltTicket'
      security:
      - {}
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CobaltTicket'
          description: ''
    delete:
      operationId: cobalt_tickets_destroy
      parameters:
      - in: path
        name: id
        schema:
          type: string
          format: uuid
        description: A UUID string identifying this ticket.
        required: true
      tags:
      - cobalt
      security:
      - {}
      responses:
        '204':
          description: No response body
  /api/cobalt/tickets/{id}/close:
    post:
      operationId: cobalt_tickets_close_create
      parameters:
      - in: path
        name: id
        schema:
          type: string
          format: uuid
        description: A UUID string identifying this ticket.
        required: true
      tags:
      - cobalt
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CobaltTicket'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/CobaltTicket'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/CobaltTicket'
        required: true
      security:
      - {}
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CobaltTicket'
          description: ''
  /api/cobalt/users:
    get:
      operationId: cobalt_users_list
      parameters:
      - name: limit
        required: false
        in: query
        description: Number of results to return per page.
        schema:
          type: integer
      - name: offset
        required: false
        in: query
        description: The initial index from which to return the results.
        schema:
          type: integer
      tags:
      - cobalt
      security:
      - {}
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedCobaltUserList'
          description: ''
    post:
      operationId: cobalt_users_create
      tags:
      - cobalt
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CobaltUser'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/CobaltUser'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/CobaltUser'
        required: true
      security:
      - {}
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CobaltUser'
          description: ''
  /api/cobalt/users/{id}:
    get:
      operationId: cobalt_users_retrieve
      parameters:
      - in: path
        name: id
        schema:
          type: string
          format: uuid
        description: A UUID string identifying this cobalt user.
        required: true
      tags:
      - cobalt
      security:
      - {}
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CobaltUser'
          description: ''
    put:
      operationId: cobalt_users_update
      parameters:
      - in: path
        name: id
        schema:
          type: string
          format: uuid
        description: A UUID string identifying this cobalt user.
        required: true
      tags:
      - cobalt
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CobaltUser'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/CobaltUser'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/CobaltUser'
        required: true
      security:
      - {}
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CobaltUser'
          description: ''
    patch:
      operationId: cobalt_users_partial_update
      parameters:
      - in: path
        name: id
        schema:
          type: string
          format: uuid
        description: A UUID string identifying this cobalt user.
        required: true
      tags:
      - cobalt
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchedCobaltUser'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/PatchedCobaltUser'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/PatchedCobaltUser'
      security:
      - {}
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CobaltUser'
          description: ''
    delete:
      operationId: cobalt_users_destroy
      parameters:
      - in: path
        name: id
        schema:
          type: string
          format: uuid
        description: A UUID string identifying this cobalt user.
        required: true
      tags:
      - cobalt
      security:
      - {}
      responses:
        '204':
          description: No response body
  /api/cobalt/users/{id}/permissions:
    get:
      operationId: cobalt_users_permissions_retrieve
      parameters:
      - in: path
        name: id
        schema:
          type: string
          format: uuid
        description: A UUID string identifying this cobalt user.
        required: true
      tags:
      - cobalt
      security:
      - {}
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CobaltUser'
          description: ''
    post:
      operationId: cobalt_users_permissions_create
      parameters:
      - in: path
        name: id
        schema:
          type: string
          format: uuid
        description: A UUID string identifying this cobalt user.
        required: true
      tags:
      - cobalt
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CobaltUser'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/CobaltUser'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/CobaltUser'
        required: true
      security:
      - {}
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CobaltUser'
          description: ''
  /api/cobalt/users/profile:
    get:
      operationId: cobalt_users_profile_retrieve
      tags:
      - cobalt
      security:
      - {}
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CobaltUser'
          description: ''
  /api/departments:
    get:
      operationId: departments_list
      parameters:
      - name: limit
        required: false
        in: query
        description: Number of results to return per page.
        schema:
          type: integer
      - name: offset
        required: false
        in: query
        description: The initial index from which to return the results.
        schema:
          type: integer
      tags:
      - departments
      security:
      - jwtAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedGroupList'
          description: ''
    post:
      operationId: departments_create
      tags:
      - departments
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Group'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/Group'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/Group'
        required: true
      security:
      - jwtAuth: []
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Group'
          description: ''
  /api/departments/{department_id}/membership:
    post:
      operationId: departments_membership_create
      parameters:
      - in: path
        name: department_id
        schema:
          type: string
        required: true
      tags:
      - departments
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Group'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/Group'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/Group'
        required: true
      security:
      - jwtAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Group'
          description: ''
    delete:
      operationId: departments_membership_destroy
      parameters:
      - in: path
        name: department_id
        schema:
          type: string
        required: true
      tags:
      - departments
      security:
      - jwtAuth: []
      responses:
        '204':
          description: No response body
  /api/departments/{department_id}/requests:
    get:
      operationId: departments_requests_retrieve
      parameters:
      - in: path
        name: department_id
        schema:
          type: string
        required: true
      tags:
      - departments
      security:
      - jwtAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Group'
          description: ''
    post:
      operationId: departments_requests_create
      parameters:
      - in: path
        name: department_id
        schema:
          type: string
        required: true
      tags:
      - departments
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Group'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/Group'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/Group'
        required: true
      security:
      - jwtAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Group'
          description: ''
  /api/departments/{department_id}/requests/{request_id}:
    post:
      operationId: departments_requests_create_2
      parameters:
      - in: path
        name: department_id
        schema:
          type: string
        required: true
      - in: path
        name: request_id
        schema:
          type: string
        required: true
      tags:
      - departments
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Group'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/Group'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/Group'
        required: true
      security:
      - jwtAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Group'
          description: ''
    delete:
      operationId: departments_requests_destroy
      parameters:
      - in: path
        name: department_id
        schema:
          type: string
        required: true
      - in: path
        name: request_id
        schema:
          type: string
        required: true
      tags:
      - departments
      security:
      - jwtAuth: []
      responses:
        '204':
          description: No response body
  /api/departments/{id}:
    get:
      operationId: departments_retrieve
      parameters:
      - in: path
        name: id
        schema:
          type: string
          format: uuid
        description: A UUID string identifying this group.
        required: true
      tags:
      - departments
      security:
      - jwtAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Group'
          description: ''
    put:
      operationId: departments_update
      parameters:
      - in: path
        name: id
        schema:
          type: string
          format: uuid
        description: A UUID string identifying this group.
        required: true
      tags:
      - departments
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Group'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/Group'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/Group'
        required: true
      security:
      - jwtAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Group'
          description: ''
    patch:
      operationId: departments_partial_update
      parameters:
      - in: path
        name: id
        schema:
          type: string
          format: uuid
        description: A UUID string identifying this group.
        required: true
      tags:
      - departments
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchedGroup'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/PatchedGroup'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/PatchedGroup'
      security:
      - jwtAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Group'
          description: ''
    delete:
      operationId: departments_destroy
      parameters:
      - in: path
        name: id
        schema:
          type: string
          format: uuid
        description: A UUID string identifying this group.
        required: true
      tags:
      - departments
      security:
      - jwtAuth: []
      responses:
        '204':
          description: No response body
  /api/events:
    get:
      operationId: events_list
      tags:
      - events
      security:
      - jwtAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/Event'
          description: ''
    post:
      operationId: events_create
      tags:
      - events
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Event'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/Event'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/Event'
        required: true
      security:
      - jwtAuth: []
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Event'
          description: ''
  /api/events/{event_id}/registrations:
    post:
      operationId: events_registrations_create
      parameters:
      - in: path
        name: event_id
        schema:
          type: string
        required: true
      tags:
      - events
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Event'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/Event'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/Event'
        required: true
      security:
      - jwtAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Event'
          description: ''
    put:
      operationId: events_registrations_update
      parameters:
      - in: path
        name: event_id
        schema:
          type: string
        required: true
      tags:
      - events
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Event'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/Event'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/Event'
        required: true
      security:
      - jwtAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Event'
          description: ''
    delete:
      operationId: events_registrations_destroy
      parameters:
      - in: path
        name: event_id
        schema:
          type: string
        required: true
      tags:
      - events
      security:
      - jwtAuth: []
      responses:
        '204':
          description: No response body
  /api/events/{id}:
    get:
      operationId: events_retrieve
      parameters:
      - in: path
        name: id
        schema:
          type: string
          format: uuid
        description: A UUID string identifying this event.
        required: true
      tags:
      - events
      security:
      - jwtAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Event'
          description: ''
    put:
      operationId: events_update
      parameters:
      - in: path
        name: id
        schema:
          type: string
          format: uuid
        description: A UUID string identifying this event.
        required: true
      tags:
      - events
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Event'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/Event'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/Event'
        required: true
      security:
      - jwtAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Event'
          description: ''
    patch:
      operationId: events_partial_update
      parameters:
      - in: path
        name: id
        schema:
          type: string
          format: uuid
        description: A UUID string identifying this event.
        required: true
      tags:
      - events
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchedEvent'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/PatchedEvent'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/PatchedEvent'
      security:
      - jwtAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Event'
          description: ''
    delete:
      operationId: events_destroy
      parameters:
      - in: path
        name: id
        schema:
          type: string
          format: uuid
        description: A UUID string identifying this event.
        required: true
      tags:
      - events
      security:
      - jwtAuth: []
      responses:
        '204':
          description: No response body
  /api/events/events:
    get:
      operationId: events_events_list
      tags:
      - events
      security:
      - jwtAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/Event'
          description: ''
    post:
      operationId: events_events_create
      tags:
      - events
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Event'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/Event'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/Event'
        required: true
      security:
      - jwtAuth: []
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Event'
          description: ''
  /api/events/events/{event_id}/registrations:
    post:
      operationId: events_events_registrations_create
      parameters:
      - in: path
        name: event_id
        schema:
          type: string
        required: true
      tags:
      - events
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Event'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/Event'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/Event'
        required: true
      security:
      - jwtAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Event'
          description: ''
    put:
      operationId: events_events_registrations_update
      parameters:
      - in: path
        name: event_id
        schema:
          type: string
        required: true
      tags:
      - events
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Event'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/Event'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/Event'
        required: true
      security:
      - jwtAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Event'
          description: ''
    delete:
      operationId: events_events_registrations_destroy
      parameters:
      - in: path
        name: event_id
        schema:
          type: string
        required: true
      tags:
      - events
      security:
      - jwtAuth: []
      responses:
        '204':
          description: No response body
  /api/events/events/{id}:
    get:
      operationId: events_events_retrieve
      parameters:
      - in: path
        name: id
        schema:
          type: string
          format: uuid
        description: A UUID string identifying this event.
        required: true
      tags:
      - events
      security:
      - jwtAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Event'
          description: ''
    put:
      operationId: events_events_update
      parameters:
      - in: path
        name: id
        schema:
          type: string
          format: uuid
        description: A UUID string identifying this event.
        required: true
      tags:
      - events
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Event'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/Event'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/Event'
        required: true
      security:
      - jwtAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Event'
          description: ''
    patch:
      operationId: events_events_partial_update
      parameters:
      - in: path
        name: id
        schema:
          type: string
          format: uuid
        description: A UUID string identifying this event.
        required: true
      tags:
      - events
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchedEvent'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/PatchedEvent'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/PatchedEvent'
      security:
      - jwtAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Event'
          description: ''
    delete:
      operationId: events_events_destroy
      parameters:
      - in: path
        name: id
        schema:
          type: string
          format: uuid
        description: A UUID string identifying this event.
        required: true
      tags:
      - events
      security:
      - jwtAuth: []
      responses:
        '204':
          description: No response body
  /api/forms:
    get:
      operationId: forms_list
      parameters:
      - name: page
        required: false
        in: query
        description: A page number within the paginated result set.
        schema:
          type: integer
      - name: page_size
        required: false
        in: query
        description: Number of results to return per page.
        schema:
          type: integer
      tags:
      - forms
      security:
      - jwtAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedFormList'
          description: ''
    post:
      operationId: forms_create
      tags:
      - forms
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Form'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/Form'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/Form'
        required: true
      security:
      - jwtAuth: []
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Form'
          description: ''
  /api/forms/{id}:
    get:
      operationId: forms_retrieve
      parameters:
      - in: path
        name: id
        schema:
          type: string
          format: uuid
        description: A UUID string identifying this form.
        required: true
      tags:
      - forms
      security:
      - jwtAuth: []
      - {}
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Form'
          description: ''
    put:
      operationId: forms_update
      parameters:
      - in: path
        name: id
        schema:
          type: string
          format: uuid
        description: A UUID string identifying this form.
        required: true
      tags:
      - forms
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Form'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/Form'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/Form'
        required: true
      security:
      - jwtAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Form'
          description: ''
    patch:
      operationId: forms_partial_update
      parameters:
      - in: path
        name: id
        schema:
          type: string
          format: uuid
        description: A UUID string identifying this form.
        required: true
      tags:
      - forms
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchedForm'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/PatchedForm'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/PatchedForm'
      security:
      - jwtAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Form'
          description: ''
    delete:
      operationId: forms_destroy
      parameters:
      - in: path
        name: id
        schema:
          type: string
          format: uuid
        description: A UUID string identifying this form.
        required: true
      tags:
      - forms
      security:
      - jwtAuth: []
      - {}
      responses:
        '204':
          description: No response body
  /api/forms/{id}/analysis:
    get:
      operationId: forms_analysis_retrieve
      parameters:
      - in: path
        name: id
        schema:
          type: string
          format: uuid
        description: A UUID string identifying this form.
        required: true
      tags:
      - forms
      security:
      - jwtAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Form'
          description: ''
  /api/give/card-confirmation/confirm_payment_method:
    post:
      operationId: give_card_confirmation_confirm_payment_method_create
      description: Confirm and store a payment method manually based on the provided
        token.
      tags:
      - give
      security:
      - jwtAuth: []
      - {}
      responses:
        '200':
          description: No response body
  /api/give/cards:
    get:
      operationId: give_cards_list
      parameters:
      - name: limit
        required: false
        in: query
        description: Number of results to return per page.
        schema:
          type: integer
      - name: offset
        required: false
        in: query
        description: The initial index from which to return the results.
        schema:
          type: integer
      tags:
      - give
      security:
      - jwtAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedPaymentOptionsList'
          description: ''
    post:
      operationId: give_cards_create
      tags:
      - give
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PaymentOptions'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/PaymentOptions'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/PaymentOptions'
      security:
      - jwtAuth: []
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaymentOptions'
          description: ''
  /api/give/cards/{id}:
    get:
      operationId: give_cards_retrieve
      parameters:
      - in: path
        name: id
        schema:
          type: string
          format: uuid
        description: A UUID string identifying this card.
        required: true
      tags:
      - give
      security:
      - jwtAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaymentOptions'
          description: ''
    put:
      operationId: give_cards_update
      parameters:
      - in: path
        name: id
        schema:
          type: string
          format: uuid
        description: A UUID string identifying this card.
        required: true
      tags:
      - give
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PaymentOptions'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/PaymentOptions'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/PaymentOptions'
      security:
      - jwtAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaymentOptions'
          description: ''
    patch:
      operationId: give_cards_partial_update
      parameters:
      - in: path
        name: id
        schema:
          type: string
          format: uuid
        description: A UUID string identifying this card.
        required: true
      tags:
      - give
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchedPaymentOptions'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/PatchedPaymentOptions'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/PatchedPaymentOptions'
      security:
      - jwtAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaymentOptions'
          description: ''
    delete:
      operationId: give_cards_destroy
      parameters:
      - in: path
        name: id
        schema:
          type: string
          format: uuid
        description: A UUID string identifying this card.
        required: true
      tags:
      - give
      security:
      - jwtAuth: []
      responses:
        '204':
          description: No response body
  /api/give/cash-app-info:
    get:
      operationId: give_cash_app_info_list
      parameters:
      - name: limit
        required: false
        in: query
        description: Number of results to return per page.
        schema:
          type: integer
      - name: offset
        required: false
        in: query
        description: The initial index from which to return the results.
        schema:
          type: integer
      tags:
      - give
      security:
      - jwtAuth: []
      - {}
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedCashAppInfoList'
          description: ''
    post:
      operationId: give_cash_app_info_create
      tags:
      - give
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CashAppInfo'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/CashAppInfo'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/CashAppInfo'
        required: true
      security:
      - jwtAuth: []
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CashAppInfo'
          description: ''
  /api/give/cash-app-info/{id}:
    get:
      operationId: give_cash_app_info_retrieve
      parameters:
      - in: path
        name: id
        schema:
          type: string
          format: uuid
        description: A UUID string identifying this cash app info.
        required: true
      tags:
      - give
      security:
      - jwtAuth: []
      - {}
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CashAppInfo'
          description: ''
    put:
      operationId: give_cash_app_info_update
      parameters:
      - in: path
        name: id
        schema:
          type: string
          format: uuid
        description: A UUID string identifying this cash app info.
        required: true
      tags:
      - give
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CashAppInfo'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/CashAppInfo'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/CashAppInfo'
        required: true
      security:
      - jwtAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CashAppInfo'
          description: ''
    patch:
      operationId: give_cash_app_info_partial_update
      parameters:
      - in: path
        name: id
        schema:
          type: string
          format: uuid
        description: A UUID string identifying this cash app info.
        required: true
      tags:
      - give
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchedCashAppInfo'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/PatchedCashAppInfo'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/PatchedCashAppInfo'
      security:
      - jwtAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CashAppInfo'
          description: ''
    delete:
      operationId: give_cash_app_info_destroy
      parameters:
      - in: path
        name: id
        schema:
          type: string
          format: uuid
        description: A UUID string identifying this cash app info.
        required: true
      tags:
      - give
      security:
      - jwtAuth: []
      responses:
        '204':
          description: No response body
  /api/give/church-processors:
    get:
      operationId: give_church_processors_retrieve
      description: |-
        Retrieve the list of processors and their credentials for the church.

        **GET /church-processors/**

        Returns a formatted list of processors with keys, human-readable names, connection status, descriptions, images, and credentials.
      tags:
      - give
      security:
      - jwtAuth: []
      responses:
        '200':
          description: No response body
    post:
      operationId: give_church_processors_create
      description: Create or update a payment processor for a church.
      tags:
      - give
      security:
      - jwtAuth: []
      responses:
        '201':
          description: No response body
  /api/give/contribution-types:
    get:
      operationId: give_contribution_types_list
      tags:
      - give
      security:
      - jwtAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/ContributionType'
          description: ''
    post:
      operationId: give_contribution_types_create
      tags:
      - give
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ContributionType'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/ContributionType'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/ContributionType'
        required: true
      security:
      - jwtAuth: []
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ContributionType'
          description: ''
  /api/give/contribution-types/{id}:
    get:
      operationId: give_contribution_types_retrieve
      parameters:
      - in: path
        name: id
        schema:
          type: string
          format: uuid
        description: A UUID string identifying this contribution type.
        required: true
      tags:
      - give
      security:
      - jwtAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ContributionType'
          description: ''
    put:
      operationId: give_contribution_types_update
      parameters:
      - in: path
        name: id
        schema:
          type: string
          format: uuid
        description: A UUID string identifying this contribution type.
        required: true
      tags:
      - give
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ContributionType'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/ContributionType'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/ContributionType'
        required: true
      security:
      - jwtAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ContributionType'
          description: ''
    patch:
      operationId: give_contribution_types_partial_update
      parameters:
      - in: path
        name: id
        schema:
          type: string
          format: uuid
        description: A UUID string identifying this contribution type.
        required: true
      tags:
      - give
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchedContributionType'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/PatchedContributionType'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/PatchedContributionType'
      security:
      - jwtAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ContributionType'
          description: ''
    delete:
      operationId: give_contribution_types_destroy
      parameters:
      - in: path
        name: id
        schema:
          type: string
          format: uuid
        description: A UUID string identifying this contribution type.
        required: true
      tags:
      - give
      security:
      - jwtAuth: []
      responses:
        '204':
          description: No response body
  /api/give/contributions:
    get:
      operationId: give_contributions_list
      description: |-
        List and filter contributions and their transactions for a user.

        This function retrieves a list of contributions and related transactions based on several
        filtering criteria such as recurring contributions, contribution type, date range, amount range,
        card, source, and search parameters. It also calculates and returns monthly analytics for the
        transactions.

        Filtering options:
            - `filter_by_user`: Admin users can filter contributions by a specific user.
            - `recurring`: Filters contributions based on whether they are recurring.
            - `type`: Filters contributions by contribution type.
            - `date_from` and `date_to`: Filters contributions based on the creation date range.
            - `amount_min` and `amount_max`: Filters contributions by amount.
            - `card_id`: Filters contributions by the card used in transactions.
            - `source`: Filters contributions by the source of the transaction.
            - `search`: Searches contributions by the source name, type name, or memo field.

        The function paginates the results and appends monthly analytics data to the response.

        :param request: The HTTP request object containing query parameters for filtering.
        :return: A paginated response with the filtered transactions and monthly analytics.
      parameters:
      - name: page
        required: false
        in: query
        description: A page number within the paginated result set.
        schema:
          type: integer
      - name: page_size
        required: false
        in: query
        description: Number of results to return per page.
        schema:
          type: integer
      tags:
      - give
      security:
      - jwtAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedMultiContributionList'
          description: ''
    post:
      operationId: give_contributions_create
      tags:
      - give
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/MultiContribution'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/MultiContribution'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/MultiContribution'
        required: true
      security:
      - jwtAuth: []
      - {}
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MultiContribution'
          description: ''
  /api/give/contributions/{payment_id}/:
    put:
      operationId: give_contributions_update_2
      parameters:
      - in: path
        name: payment_id
        schema:
          type: string
        required: true
      tags:
      - give
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/MultiContribution'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/MultiContribution'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/MultiContribution'
        required: true
      security:
      - jwtAuth: []
      - {}
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MultiContribution'
          description: ''
  /api/give/contributions/{id}:
    get:
      operationId: give_contributions_retrieve
      parameters:
      - in: path
        name: id
        schema:
          type: string
          format: uuid
        description: A UUID string identifying this contribution.
        required: true
      tags:
      - give
      security:
      - jwtAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MultiContribution'
          description: ''
    put:
      operationId: give_contributions_update
      parameters:
      - in: path
        name: id
        schema:
          type: string
          format: uuid
        description: A UUID string identifying this contribution.
        required: true
      tags:
      - give
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/MultiContribution'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/MultiContribution'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/MultiContribution'
        required: true
      security:
      - jwtAuth: []
      - {}
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MultiContribution'
          description: ''
    patch:
      operationId: give_contributions_partial_update
      parameters:
      - in: path
        name: id
        schema:
          type: string
          format: uuid
        description: A UUID string identifying this contribution.
        required: true
      tags:
      - give
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchedMultiContribution'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/PatchedMultiContribution'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/PatchedMultiContribution'
      security:
      - jwtAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MultiContribution'
          description: ''
    delete:
      operationId: give_contributions_destroy
      parameters:
      - in: path
        name: id
        schema:
          type: string
          format: uuid
        description: A UUID string identifying this contribution.
        required: true
      tags:
      - give
      security:
      - jwtAuth: []
      responses:
        '204':
          description: No response body
  /api/give/contributions/analytics:
    get:
      operationId: give_contributions_analytics_retrieve
      tags:
      - give
      security:
      - jwtAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MultiContribution'
          description: ''
  /api/give/contributions/import:
    post:
      operationId: give_contributions_import_create
      description: |-
        Handle bulk import of contributions for a church.

        :param request: The HTTP POST request containing contribution data.
        :return: JSON response indicating success or failure.
      tags:
      - give
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/MultiContribution'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/MultiContribution'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/MultiContribution'
        required: true
      security:
      - jwtAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MultiContribution'
          description: ''
  /api/give/contributions/overview:
    get:
      operationId: give_contributions_overview_retrieve
      description: |-
        Calculate and return various metrics for a church's contributions.

        This function computes key metrics related to contributions for a specific church, including:
            - Total completed contributions.
            - Total and percentage change for recurring monthly contributions.
            - Total and percentage change for recurring weekly contributions.
            - Average contribution amount.

        The metrics are calculated by filtering and aggregating data from the church's contributions and related
        transactions.

        :param request: The HTTP request object containing user and church information.
        :return: JSON response with the calculated metrics.
      tags:
      - give
      security:
      - jwtAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MultiContribution'
          description: ''
  /api/give/contributions/overview/{route_action}:
    get:
      operationId: give_contributions_overview_retrieve_2
      description: |-
        Generate detailed contribution reports based on the specified action.

        Actions include:
            - category-types: Contribution percentage per type for a given year.
            - sources: Contribution percentage per source for a given year.
            - last-year: Monthly contribution breakdown by type for the past 12 months.
            - past-years: Contribution breakdown by year and month for the church's existence.

        :param request: The HTTP request object containing user and church information.
        :param route_action: The specific report action to generate.
        :return: JSON response with the report data.
      parameters:
      - in: path
        name: route_action
        schema:
          type: string
          pattern: ^(category-types|sources|last-year|past-years)$
        required: true
      tags:
      - give
      security:
      - jwtAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MultiContribution'
          description: ''
  /api/give/contributions/payment-confirmation/{church_id}:
    post:
      operationId: give_contributions_payment_confirmation_create
      description: |-
        Handle Stripe payment confirmation webhooks.

        This function listens for various Stripe webhook events related to payment processing, such as
        payment intents, invoices, and subscriptions. It retrieves the relevant payment or subscription details,
        processes the data (including creating or updating contributions, transactions, and cards/bank accounts),
        and updates the local database accordingly.

        Webhook events handled include:
            - payment_intent.created
            - payment_intent.succeeded
            - invoice.created
            - invoice.paid
            - invoice.updated
            - invoice.payment_failed
            - setup_intent.succeeded
            - financial_connections.account.created
            - subscription_schedule.created
            - subscription_schedule.canceled
            - refund.created
            - refund.failed
            - charge.refunded

        :param church_id: The Church ID
        :param request: The HTTP request object containing the Stripe webhook event.
        :param church_id: The ID of the church associated with the payment.
        :return: A success response if the payment or subscription is successfully processed, or an error response
        otherwise.
        :raises ValueError: If there is an error with the webhook payload.
        :raises stripe.error.SignatureVerificationError: If the Stripe signature verification fails.
      parameters:
      - in: path
        name: church_id
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - give
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/MultiContribution'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/MultiContribution'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/MultiContribution'
        required: true
      security:
      - jwtAuth: []
      - {}
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MultiContribution'
          description: ''
  /api/give/contributions/reporting/{route_action}:
    get:
      operationId: give_contributions_reporting_retrieve
      parameters:
      - in: path
        name: route_action
        schema:
          type: string
          pattern: ^(numbers|donors)$
        required: true
      tags:
      - give
      security:
      - jwtAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MultiContribution'
          description: ''
  /api/give/contributions/statements:
    post:
      operationId: give_contributions_statements_create
      tags:
      - give
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/MultiContribution'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/MultiContribution'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/MultiContribution'
        required: true
      security:
      - jwtAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MultiContribution'
          description: ''
  /api/give/contributions/transaction-fee:
    post:
      operationId: give_contributions_transaction_fee_create
      description: |-
        Calculate the transaction fee for a given set of contributions.

        This action takes in the contribution data, calculates the Stripe transaction fee based on
        the total contribution amount, and returns the transaction fee and the new total amount.

        The Stripe fee is calculated as 2.9% of the total amount plus a fixed fee of $0.30.

        :param request: The HTTP request object containing the contribution data in the request body.
        :return: A success response with the calculated transaction fee and updated total amount.
      tags:
      - give
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/MultiContribution'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/MultiContribution'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/MultiContribution'
        required: true
      security:
      - jwtAuth: []
      - {}
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MultiContribution'
          description: ''
  /api/give/payment-confirmation/confirm_payment:
    post:
      operationId: give_payment_confirmation_confirm_payment_create
      description: Confirm and process a payment manually based on the provided payment
        ID.
      tags:
      - give
      security:
      - jwtAuth: []
      - {}
      responses:
        '200':
          description: No response body
  /api/give/transactions/{id}:
    get:
      operationId: give_transactions_retrieve
      parameters:
      - in: path
        name: id
        schema:
          type: string
          format: uuid
        description: A UUID string identifying this transaction.
        required: true
      tags:
      - give
      security:
      - jwtAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Transaction'
          description: ''
  /api/give/transactions/{id}/void:
    post:
      operationId: give_transactions_void_create
      parameters:
      - in: path
        name: id
        schema:
          type: string
          format: uuid
        description: A UUID string identifying this transaction.
        required: true
      tags:
      - give
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Transaction'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/Transaction'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/Transaction'
        required: true
      security:
      - jwtAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Transaction'
          description: ''
  /api/groups:
    get:
      operationId: groups_list
      parameters:
      - name: limit
        required: false
        in: query
        description: Number of results to return per page.
        schema:
          type: integer
      - name: offset
        required: false
        in: query
        description: The initial index from which to return the results.
        schema:
          type: integer
      tags:
      - groups
      security:
      - jwtAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedGroupList'
          description: ''
    post:
      operationId: groups_create
      tags:
      - groups
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Group'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/Group'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/Group'
        required: true
      security:
      - jwtAuth: []
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Group'
          description: ''
  /api/groups/{group_id}/membership:
    post:
      operationId: groups_membership_create
      parameters:
      - in: path
        name: group_id
        schema:
          type: string
        required: true
      tags:
      - groups
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Group'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/Group'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/Group'
        required: true
      security:
      - jwtAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Group'
          description: ''
    delete:
      operationId: groups_membership_destroy
      parameters:
      - in: path
        name: group_id
        schema:
          type: string
        required: true
      tags:
      - groups
      security:
      - jwtAuth: []
      responses:
        '204':
          description: No response body
  /api/groups/{group_id}/requests:
    get:
      operationId: groups_requests_retrieve
      parameters:
      - in: path
        name: group_id
        schema:
          type: string
        required: true
      tags:
      - groups
      security:
      - jwtAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Group'
          description: ''
    post:
      operationId: groups_requests_create
      parameters:
      - in: path
        name: group_id
        schema:
          type: string
        required: true
      tags:
      - groups
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Group'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/Group'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/Group'
        required: true
      security:
      - jwtAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Group'
          description: ''
  /api/groups/{group_id}/requests/{request_id}:
    post:
      operationId: groups_requests_create_2
      parameters:
      - in: path
        name: group_id
        schema:
          type: string
        required: true
      - in: path
        name: request_id
        schema:
          type: string
        required: true
      tags:
      - groups
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Group'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/Group'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/Group'
        required: true
      security:
      - jwtAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Group'
          description: ''
    delete:
      operationId: groups_requests_destroy
      parameters:
      - in: path
        name: group_id
        schema:
          type: string
        required: true
      - in: path
        name: request_id
        schema:
          type: string
        required: true
      tags:
      - groups
      security:
      - jwtAuth: []
      responses:
        '204':
          description: No response body
  /api/groups/{id}:
    get:
      operationId: groups_retrieve
      parameters:
      - in: path
        name: id
        schema:
          type: string
          format: uuid
        description: A UUID string identifying this group.
        required: true
      tags:
      - groups
      security:
      - jwtAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Group'
          description: ''
    put:
      operationId: groups_update
      parameters:
      - in: path
        name: id
        schema:
          type: string
          format: uuid
        description: A UUID string identifying this group.
        required: true
      tags:
      - groups
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Group'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/Group'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/Group'
        required: true
      security:
      - jwtAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Group'
          description: ''
    patch:
      operationId: groups_partial_update
      parameters:
      - in: path
        name: id
        schema:
          type: string
          format: uuid
        description: A UUID string identifying this group.
        required: true
      tags:
      - groups
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchedGroup'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/PatchedGroup'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/PatchedGroup'
      security:
      - jwtAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Group'
          description: ''
    delete:
      operationId: groups_destroy
      parameters:
      - in: path
        name: id
        schema:
          type: string
          format: uuid
        description: A UUID string identifying this group.
        required: true
      tags:
      - groups
      security:
      - jwtAuth: []
      responses:
        '204':
          description: No response body
  /api/media/albums:
    get:
      operationId: media_albums_list
      parameters:
      - name: page
        required: false
        in: query
        description: A page number within the paginated result set.
        schema:
          type: integer
      - name: page_size
        required: false
        in: query
        description: Number of results to return per page.
        schema:
          type: integer
      tags:
      - media
      security:
      - jwtAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedAlbumList'
          description: ''
    post:
      operationId: media_albums_create
      tags:
      - media
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Album'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/Album'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/Album'
        required: true
      security:
      - jwtAuth: []
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Album'
          description: ''
  /api/media/albums/{id}:
    get:
      operationId: media_albums_retrieve
      parameters:
      - in: path
        name: id
        schema:
          type: string
          format: uuid
        description: A UUID string identifying this album.
        required: true
      tags:
      - media
      security:
      - jwtAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Album'
          description: ''
    put:
      operationId: media_albums_update
      parameters:
      - in: path
        name: id
        schema:
          type: string
          format: uuid
        description: A UUID string identifying this album.
        required: true
      tags:
      - media
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Album'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/Album'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/Album'
        required: true
      security:
      - jwtAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Album'
          description: ''
    patch:
      operationId: media_albums_partial_update
      parameters:
      - in: path
        name: id
        schema:
          type: string
          format: uuid
        description: A UUID string identifying this album.
        required: true
      tags:
      - media
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchedAlbum'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/PatchedAlbum'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/PatchedAlbum'
      security:
      - jwtAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Album'
          description: ''
    delete:
      operationId: media_albums_destroy
      parameters:
      - in: path
        name: id
        schema:
          type: string
          format: uuid
        description: A UUID string identifying this album.
        required: true
      tags:
      - media
      security:
      - jwtAuth: []
      responses:
        '204':
          description: No response body
  /api/media/albums/delete:
    delete:
      operationId: media_albums_delete_destroy
      tags:
      - media
      security:
      - jwtAuth: []
      responses:
        '204':
          description: No response body
  /api/media/livestreams:
    get:
      operationId: media_livestreams_retrieve
      tags:
      - media
      security:
      - jwtAuth: []
      responses:
        '200':
          description: No response body
  /api/media/playlists:
    get:
      operationId: media_playlists_list
      parameters:
      - name: page
        required: false
        in: query
        description: A page number within the paginated result set.
        schema:
          type: integer
      - name: page_size
        required: false
        in: query
        description: Number of results to return per page.
        schema:
          type: integer
      tags:
      - media
      security:
      - jwtAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedPlaylistList'
          description: ''
    post:
      operationId: media_playlists_create
      tags:
      - media
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Playlist'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/Playlist'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/Playlist'
        required: true
      security:
      - jwtAuth: []
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Playlist'
          description: ''
  /api/media/playlists/{id}:
    get:
      operationId: media_playlists_retrieve
      parameters:
      - in: path
        name: id
        schema:
          type: string
          format: uuid
        description: A UUID string identifying this playlist.
        required: true
      tags:
      - media
      security:
      - jwtAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Playlist'
          description: ''
    put:
      operationId: media_playlists_update
      parameters:
      - in: path
        name: id
        schema:
          type: string
          format: uuid
        description: A UUID string identifying this playlist.
        required: true
      tags:
      - media
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Playlist'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/Playlist'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/Playlist'
        required: true
      security:
      - jwtAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Playlist'
          description: ''
    patch:
      operationId: media_playlists_partial_update
      parameters:
      - in: path
        name: id
        schema:
          type: string
          format: uuid
        description: A UUID string identifying this playlist.
        required: true
      tags:
      - media
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchedPlaylist'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/PatchedPlaylist'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/PatchedPlaylist'
      security:
      - jwtAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Playlist'
          description: ''
    delete:
      operationId: media_playlists_destroy
      parameters:
      - in: path
        name: id
        schema:
          type: string
          format: uuid
        description: A UUID string identifying this playlist.
        required: true
      tags:
      - media
      security:
      - jwtAuth: []
      responses:
        '204':
          description: No response body
  /api/media/playlists/{id}/items/{item_id}:
    delete:
      operationId: media_playlists_items_destroy
      parameters:
      - in: path
        name: id
        schema:
          type: string
          format: uuid
        description: A UUID string identifying this playlist.
        required: true
      - in: path
        name: item_id
        schema:
          type: string
        required: true
      tags:
      - media
      security:
      - jwtAuth: []
      responses:
        '204':
          description: No response body
  /api/media/playlists/delete:
    delete:
      operationId: media_playlists_delete_destroy
      tags:
      - media
      security:
      - jwtAuth: []
      responses:
        '204':
          description: No response body
  /api/media/podcast-categories:
    get:
      operationId: media_podcast_categories_list
      tags:
      - media
      security:
      - jwtAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/PodcastCategory'
          description: ''
    post:
      operationId: media_podcast_categories_create
      tags:
      - media
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PodcastCategory'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/PodcastCategory'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/PodcastCategory'
        required: true
      security:
      - jwtAuth: []
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PodcastCategory'
          description: ''
  /api/media/podcast-categories/{id}:
    get:
      operationId: media_podcast_categories_retrieve
      parameters:
      - in: path
        name: id
        schema:
          type: string
          format: uuid
        description: A UUID string identifying this podcast category.
        required: true
      tags:
      - media
      security:
      - jwtAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PodcastCategory'
          description: ''
    put:
      operationId: media_podcast_categories_update
      parameters:
      - in: path
        name: id
        schema:
          type: string
          format: uuid
        description: A UUID string identifying this podcast category.
        required: true
      tags:
      - media
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PodcastCategory'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/PodcastCategory'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/PodcastCategory'
        required: true
      security:
      - jwtAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PodcastCategory'
          description: ''
    patch:
      operationId: media_podcast_categories_partial_update
      parameters:
      - in: path
        name: id
        schema:
          type: string
          format: uuid
        description: A UUID string identifying this podcast category.
        required: true
      tags:
      - media
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchedPodcastCategory'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/PatchedPodcastCategory'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/PatchedPodcastCategory'
      security:
      - jwtAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PodcastCategory'
          description: ''
    delete:
      operationId: media_podcast_categories_destroy
      parameters:
      - in: path
        name: id
        schema:
          type: string
          format: uuid
        description: A UUID string identifying this podcast category.
        required: true
      tags:
      - media
      security:
      - jwtAuth: []
      responses:
        '204':
          description: No response body
  /api/media/podcast-categories/delete:
    delete:
      operationId: media_podcast_categories_delete_destroy
      tags:
      - media
      security:
      - jwtAuth: []
      responses:
        '204':
          description: No response body
  /api/media/podcasts:
    get:
      operationId: media_podcasts_list
      parameters:
      - name: page
        required: false
        in: query
        description: A page number within the paginated result set.
        schema:
          type: integer
      - name: page_size
        required: false
        in: query
        description: Number of results to return per page.
        schema:
          type: integer
      tags:
      - media
      security:
      - jwtAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedPodcastList'
          description: ''
    post:
      operationId: media_podcasts_create
      tags:
      - media
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Podcast'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/Podcast'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/Podcast'
        required: true
      security:
      - jwtAuth: []
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Podcast'
          description: ''
  /api/media/podcasts/{id}:
    get:
      operationId: media_podcasts_retrieve
      parameters:
      - in: path
        name: id
        schema:
          type: string
          format: uuid
        description: A UUID string identifying this podcast.
        required: true
      tags:
      - media
      security:
      - jwtAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Podcast'
          description: ''
    put:
      operationId: media_podcasts_update
      parameters:
      - in: path
        name: id
        schema:
          type: string
          format: uuid
        description: A UUID string identifying this podcast.
        required: true
      tags:
      - media
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Podcast'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/Podcast'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/Podcast'
        required: true
      security:
      - jwtAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Podcast'
          description: ''
    patch:
      operationId: media_podcasts_partial_update
      parameters:
      - in: path
        name: id
        schema:
          type: string
          format: uuid
        description: A UUID string identifying this podcast.
        required: true
      tags:
      - media
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchedPodcast'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/PatchedPodcast'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/PatchedPodcast'
      security:
      - jwtAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Podcast'
          description: ''
    delete:
      operationId: media_podcasts_destroy
      parameters:
      - in: path
        name: id
        schema:
          type: string
          format: uuid
        description: A UUID string identifying this podcast.
        required: true
      tags:
      - media
      security:
      - jwtAuth: []
      responses:
        '204':
          description: No response body
  /api/media/podcasts/delete:
    delete:
      operationId: media_podcasts_delete_destroy
      tags:
      - media
      security:
      - jwtAuth: []
      responses:
        '204':
          description: No response body
  /api/media/sermons:
    get:
      operationId: media_sermons_list
      parameters:
      - name: page
        required: false
        in: query
        description: A page number within the paginated result set.
        schema:
          type: integer
      - name: page_size
        required: false
        in: query
        description: Number of results to return per page.
        schema:
          type: integer
      tags:
      - media
      security:
      - jwtAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedSermonList'
          description: ''
    post:
      operationId: media_sermons_create
      tags:
      - media
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Sermon'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/Sermon'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/Sermon'
        required: true
      security:
      - jwtAuth: []
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Sermon'
          description: ''
  /api/media/sermons/{id}:
    get:
      operationId: media_sermons_retrieve
      parameters:
      - in: path
        name: id
        schema:
          type: string
          format: uuid
        description: A UUID string identifying this sermon.
        required: true
      tags:
      - media
      security:
      - jwtAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Sermon'
          description: ''
    put:
      operationId: media_sermons_update
      parameters:
      - in: path
        name: id
        schema:
          type: string
          format: uuid
        description: A UUID string identifying this sermon.
        required: true
      tags:
      - media
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Sermon'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/Sermon'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/Sermon'
        required: true
      security:
      - jwtAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Sermon'
          description: ''
    patch:
      operationId: media_sermons_partial_update
      parameters:
      - in: path
        name: id
        schema:
          type: string
          format: uuid
        description: A UUID string identifying this sermon.
        required: true
      tags:
      - media
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchedSermon'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/PatchedSermon'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/PatchedSermon'
      security:
      - jwtAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Sermon'
          description: ''
    delete:
      operationId: media_sermons_destroy
      parameters:
      - in: path
        name: id
        schema:
          type: string
          format: uuid
        description: A UUID string identifying this sermon.
        required: true
      tags:
      - media
      security:
      - jwtAuth: []
      responses:
        '204':
          description: No response body
  /api/media/sermons/{id}/notes:
    post:
      operationId: media_sermons_notes_create
      parameters:
      - in: path
        name: id
        schema:
          type: string
          format: uuid
        description: A UUID string identifying this sermon.
        required: true
      tags:
      - media
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Sermon'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/Sermon'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/Sermon'
        required: true
      security:
      - jwtAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Sermon'
          description: ''
  /api/media/sermons/delete:
    delete:
      operationId: media_sermons_delete_destroy
      tags:
      - media
      security:
      - jwtAuth: []
      responses:
        '204':
          description: No response body
  /api/media/settings:
    post:
      operationId: media_settings_create
      tags:
      - media
      security:
      - jwtAuth: []
      responses:
        '201':
          description: No response body
  /api/newsletter:
    get:
      operationId: newsletter_list
      parameters:
      - name: limit
        required: false
        in: query
        description: Number of results to return per page.
        schema:
          type: integer
      - name: offset
        required: false
        in: query
        description: The initial index from which to return the results.
        schema:
          type: integer
      tags:
      - newsletter
      security:
      - jwtAuth: []
      - {}
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedNewsletterList'
          description: ''
    post:
      operationId: newsletter_create
      tags:
      - newsletter
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Newsletter'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/Newsletter'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/Newsletter'
        required: true
      security:
      - jwtAuth: []
      - {}
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Newsletter'
          description: ''
  /api/newsletter/{id}:
    get:
      operationId: newsletter_retrieve
      parameters:
      - in: path
        name: id
        schema:
          type: string
          format: uuid
        description: A UUID string identifying this newsletter.
        required: true
      tags:
      - newsletter
      security:
      - jwtAuth: []
      - {}
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Newsletter'
          description: ''
    put:
      operationId: newsletter_update
      parameters:
      - in: path
        name: id
        schema:
          type: string
          format: uuid
        description: A UUID string identifying this newsletter.
        required: true
      tags:
      - newsletter
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Newsletter'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/Newsletter'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/Newsletter'
        required: true
      security:
      - jwtAuth: []
      - {}
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Newsletter'
          description: ''
    patch:
      operationId: newsletter_partial_update
      parameters:
      - in: path
        name: id
        schema:
          type: string
          format: uuid
        description: A UUID string identifying this newsletter.
        required: true
      tags:
      - newsletter
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchedNewsletter'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/PatchedNewsletter'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/PatchedNewsletter'
      security:
      - jwtAuth: []
      - {}
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Newsletter'
          description: ''
    delete:
      operationId: newsletter_destroy
      parameters:
      - in: path
        name: id
        schema:
          type: string
          format: uuid
        description: A UUID string identifying this newsletter.
        required: true
      tags:
      - newsletter
      security:
      - jwtAuth: []
      - {}
      responses:
        '204':
          description: No response body
  /api/prayer-request-categories:
    get:
      operationId: prayer_request_categories_list
      tags:
      - prayer-request-categories
      security:
      - jwtAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/PrayerRequestCategory'
          description: ''
    post:
      operationId: prayer_request_categories_create
      tags:
      - prayer-request-categories
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PrayerRequestCategory'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/PrayerRequestCategory'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/PrayerRequestCategory'
        required: true
      security:
      - jwtAuth: []
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PrayerRequestCategory'
          description: ''
  /api/prayer-request-categories/{id}:
    get:
      operationId: prayer_request_categories_retrieve
      parameters:
      - in: path
        name: id
        schema:
          type: string
          format: uuid
        description: A UUID string identifying this prayer request category.
        required: true
      tags:
      - prayer-request-categories
      security:
      - jwtAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PrayerRequestCategory'
          description: ''
    put:
      operationId: prayer_request_categories_update
      parameters:
      - in: path
        name: id
        schema:
          type: string
          format: uuid
        description: A UUID string identifying this prayer request category.
        required: true
      tags:
      - prayer-request-categories
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PrayerRequestCategory'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/PrayerRequestCategory'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/PrayerRequestCategory'
        required: true
      security:
      - jwtAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PrayerRequestCategory'
          description: ''
    patch:
      operationId: prayer_request_categories_partial_update
      parameters:
      - in: path
        name: id
        schema:
          type: string
          format: uuid
        description: A UUID string identifying this prayer request category.
        required: true
      tags:
      - prayer-request-categories
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchedPrayerRequestCategory'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/PatchedPrayerRequestCategory'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/PatchedPrayerRequestCategory'
      security:
      - jwtAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PrayerRequestCategory'
          description: ''
    delete:
      operationId: prayer_request_categories_destroy
      parameters:
      - in: path
        name: id
        schema:
          type: string
          format: uuid
        description: A UUID string identifying this prayer request category.
        required: true
      tags:
      - prayer-request-categories
      security:
      - jwtAuth: []
      responses:
        '204':
          description: No response body
  /api/prayer-requests:
    get:
      operationId: prayer_requests_list
      parameters:
      - name: page
        required: false
        in: query
        description: A page number within the paginated result set.
        schema:
          type: integer
      - name: page_size
        required: false
        in: query
        description: Number of results to return per page.
        schema:
          type: integer
      tags:
      - prayer-requests
      security:
      - jwtAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedPrayerRequestList'
          description: ''
    post:
      operationId: prayer_requests_create
      tags:
      - prayer-requests
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PrayerRequest'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/PrayerRequest'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/PrayerRequest'
        required: true
      security:
      - jwtAuth: []
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PrayerRequest'
          description: ''
  /api/prayer-requests/{id}:
    get:
      operationId: prayer_requests_retrieve
      parameters:
      - in: path
        name: id
        schema:
          type: string
          format: uuid
        description: A UUID string identifying this prayer request.
        required: true
      tags:
      - prayer-requests
      security:
      - jwtAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PrayerRequest'
          description: ''
    put:
      operationId: prayer_requests_update
      parameters:
      - in: path
        name: id
        schema:
          type: string
          format: uuid
        description: A UUID string identifying this prayer request.
        required: true
      tags:
      - prayer-requests
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PrayerRequest'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/PrayerRequest'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/PrayerRequest'
        required: true
      security:
      - jwtAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PrayerRequest'
          description: ''
    patch:
      operationId: prayer_requests_partial_update
      parameters:
      - in: path
        name: id
        schema:
          type: string
          format: uuid
        description: A UUID string identifying this prayer request.
        required: true
      tags:
      - prayer-requests
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchedPrayerRequest'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/PatchedPrayerRequest'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/PatchedPrayerRequest'
      security:
      - jwtAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PrayerRequest'
          description: ''
    delete:
      operationId: prayer_requests_destroy
      parameters:
      - in: path
        name: id
        schema:
          type: string
          format: uuid
        description: A UUID string identifying this prayer request.
        required: true
      tags:
      - prayer-requests
      security:
      - jwtAuth: []
      responses:
        '204':
          description: No response body
  /api/prayer-requests/{id}/approval:
    post:
      operationId: prayer_requests_approval_create
      parameters:
      - in: path
        name: id
        schema:
          type: string
          format: uuid
        description: A UUID string identifying this prayer request.
        required: true
      tags:
      - prayer-requests
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PrayerRequest'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/PrayerRequest'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/PrayerRequest'
        required: true
      security:
      - jwtAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PrayerRequest'
          description: ''
  /api/prayer-requests/overview:
    get:
      operationId: prayer_requests_overview_retrieve
      tags:
      - prayer-requests
      security:
      - jwtAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PrayerRequest'
          description: ''
  /api/prayer-requests/settings:
    post:
      operationId: prayer_requests_settings_create
      tags:
      - prayer-requests
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PrayerRequest'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/PrayerRequest'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/PrayerRequest'
        required: true
      security:
      - jwtAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PrayerRequest'
          description: ''
  /api/stories:
    get:
      operationId: stories_list
      tags:
      - stories
      security:
      - jwtAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/Story'
          description: ''
    post:
      operationId: stories_create
      tags:
      - stories
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Story'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/Story'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/Story'
      security:
      - jwtAuth: []
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Story'
          description: ''
  /api/stories/{id}:
    get:
      operationId: stories_retrieve
      parameters:
      - in: path
        name: id
        schema:
          type: string
          format: uuid
        description: A UUID string identifying this story.
        required: true
      tags:
      - stories
      security:
      - jwtAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Story'
          description: ''
    patch:
      operationId: stories_partial_update
      parameters:
      - in: path
        name: id
        schema:
          type: string
          format: uuid
        description: A UUID string identifying this story.
        required: true
      tags:
      - stories
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchedStory'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/PatchedStory'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/PatchedStory'
      security:
      - jwtAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Story'
          description: ''
    delete:
      operationId: stories_destroy
      parameters:
      - in: path
        name: id
        schema:
          type: string
          format: uuid
        description: A UUID string identifying this story.
        required: true
      tags:
      - stories
      security:
      - jwtAuth: []
      responses:
        '204':
          description: No response body
  /api/stories/{id}/approval:
    post:
      operationId: stories_approval_create
      parameters:
      - in: path
        name: id
        schema:
          type: string
          format: uuid
        description: A UUID string identifying this story.
        required: true
      tags:
      - stories
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Story'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/Story'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/Story'
      security:
      - jwtAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Story'
          description: ''
  /api/stories/{id}/reports:
    post:
      operationId: stories_reports_create
      parameters:
      - in: path
        name: id
        schema:
          type: string
          format: uuid
        description: A UUID string identifying this story.
        required: true
      tags:
      - stories
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Story'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/Story'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/Story'
      security:
      - jwtAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Story'
          description: ''
  /api/submissions:
    get:
      operationId: submissions_list
      parameters:
      - name: page
        required: false
        in: query
        description: A page number within the paginated result set.
        schema:
          type: integer
      - name: page_size
        required: false
        in: query
        description: Number of results to return per page.
        schema:
          type: integer
      tags:
      - submissions
      security:
      - jwtAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedSubmissionList'
          description: ''
    post:
      operationId: submissions_create
      tags:
      - submissions
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Submission'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/Submission'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/Submission'
        required: true
      security:
      - jwtAuth: []
      - {}
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Submission'
          description: ''
  /api/submissions/{id}:
    get:
      operationId: submissions_retrieve
      parameters:
      - in: path
        name: id
        schema:
          type: string
          format: uuid
        description: A UUID string identifying this submission.
        required: true
      tags:
      - submissions
      security:
      - jwtAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Submission'
          description: ''
    put:
      operationId: submissions_update
      parameters:
      - in: path
        name: id
        schema:
          type: string
          format: uuid
        description: A UUID string identifying this submission.
        required: true
      tags:
      - submissions
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Submission'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/Submission'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/Submission'
        required: true
      security:
      - jwtAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Submission'
          description: ''
    patch:
      operationId: submissions_partial_update
      parameters:
      - in: path
        name: id
        schema:
          type: string
          format: uuid
        description: A UUID string identifying this submission.
        required: true
      tags:
      - submissions
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchedSubmission'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/PatchedSubmission'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/PatchedSubmission'
      security:
      - jwtAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Submission'
          description: ''
    delete:
      operationId: submissions_destroy
      parameters:
      - in: path
        name: id
        schema:
          type: string
          format: uuid
        description: A UUID string identifying this submission.
        required: true
      tags:
      - submissions
      security:
      - jwtAuth: []
      responses:
        '204':
          description: No response body
  /api/testimonies:
    get:
      operationId: testimonies_list
      parameters:
      - name: page
        required: false
        in: query
        description: A page number within the paginated result set.
        schema:
          type: integer
      - name: page_size
        required: false
        in: query
        description: Number of results to return per page.
        schema:
          type: integer
      tags:
      - testimonies
      security:
      - jwtAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedTestimonyList'
          description: ''
    post:
      operationId: testimonies_create
      tags:
      - testimonies
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Testimony'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/Testimony'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/Testimony'
        required: true
      security:
      - jwtAuth: []
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Testimony'
          description: ''
  /api/testimonies/{id}:
    get:
      operationId: testimonies_retrieve
      parameters:
      - in: path
        name: id
        schema:
          type: string
          format: uuid
        description: A UUID string identifying this testimony.
        required: true
      tags:
      - testimonies
      security:
      - jwtAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Testimony'
          description: ''
    put:
      operationId: testimonies_update
      parameters:
      - in: path
        name: id
        schema:
          type: string
          format: uuid
        description: A UUID string identifying this testimony.
        required: true
      tags:
      - testimonies
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Testimony'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/Testimony'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/Testimony'
        required: true
      security:
      - jwtAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Testimony'
          description: ''
    patch:
      operationId: testimonies_partial_update
      parameters:
      - in: path
        name: id
        schema:
          type: string
          format: uuid
        description: A UUID string identifying this testimony.
        required: true
      tags:
      - testimonies
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchedTestimony'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/PatchedTestimony'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/PatchedTestimony'
      security:
      - jwtAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Testimony'
          description: ''
    delete:
      operationId: testimonies_destroy
      parameters:
      - in: path
        name: id
        schema:
          type: string
          format: uuid
        description: A UUID string identifying this testimony.
        required: true
      tags:
      - testimonies
      security:
      - jwtAuth: []
      responses:
        '204':
          description: No response body
  /api/testimonies/{id}/approval:
    post:
      operationId: testimonies_approval_create
      parameters:
      - in: path
        name: id
        schema:
          type: string
          format: uuid
        description: A UUID string identifying this testimony.
        required: true
      tags:
      - testimonies
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Testimony'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/Testimony'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/Testimony'
        required: true
      security:
      - jwtAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Testimony'
          description: ''
  /api/testimonies/{id}/reports:
    post:
      operationId: testimonies_reports_create
      parameters:
      - in: path
        name: id
        schema:
          type: string
          format: uuid
        description: A UUID string identifying this testimony.
        required: true
      tags:
      - testimonies
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Testimony'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/Testimony'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/Testimony'
        required: true
      security:
      - jwtAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Testimony'
          description: ''
  /api/testimonies/overview:
    get:
      operationId: testimonies_overview_retrieve
      tags:
      - testimonies
      security:
      - jwtAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Testimony'
          description: ''
  /api/testimonies/settings:
    post:
      operationId: testimonies_settings_create
      tags:
      - testimonies
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Testimony'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/Testimony'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/Testimony'
        required: true
      security:
      - jwtAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Testimony'
          description: ''
  /api/testimony-categories:
    get:
      operationId: testimony_categories_list
      tags:
      - testimony-categories
      security:
      - jwtAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/TestimonyCategory'
          description: ''
    post:
      operationId: testimony_categories_create
      tags:
      - testimony-categories
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/TestimonyCategory'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/TestimonyCategory'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/TestimonyCategory'
        required: true
      security:
      - jwtAuth: []
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TestimonyCategory'
          description: ''
  /api/testimony-categories/{id}:
    get:
      operationId: testimony_categories_retrieve
      parameters:
      - in: path
        name: id
        schema:
          type: string
          format: uuid
        description: A UUID string identifying this testimony category.
        required: true
      tags:
      - testimony-categories
      security:
      - jwtAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TestimonyCategory'
          description: ''
    put:
      operationId: testimony_categories_update
      parameters:
      - in: path
        name: id
        schema:
          type: string
          format: uuid
        description: A UUID string identifying this testimony category.
        required: true
      tags:
      - testimony-categories
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/TestimonyCategory'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/TestimonyCategory'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/TestimonyCategory'
        required: true
      security:
      - jwtAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TestimonyCategory'
          description: ''
    patch:
      operationId: testimony_categories_partial_update
      parameters:
      - in: path
        name: id
        schema:
          type: string
          format: uuid
        description: A UUID string identifying this testimony category.
        required: true
      tags:
      - testimony-categories
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchedTestimonyCategory'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/PatchedTestimonyCategory'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/PatchedTestimonyCategory'
      security:
      - jwtAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TestimonyCategory'
          description: ''
    delete:
      operationId: testimony_categories_destroy
      parameters:
      - in: path
        name: id
        schema:
          type: string
          format: uuid
        description: A UUID string identifying this testimony category.
        required: true
      tags:
      - testimony-categories
      security:
      - jwtAuth: []
      responses:
        '204':
          description: No response body
  /api/tickets:
    get:
      operationId: tickets_list
      parameters:
      - name: page
        required: false
        in: query
        description: A page number within the paginated result set.
        schema:
          type: integer
      - name: page_size
        required: false
        in: query
        description: Number of results to return per page.
        schema:
          type: integer
      tags:
      - tickets
      security:
      - jwtAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedTicketList'
          description: ''
    post:
      operationId: tickets_create
      tags:
      - tickets
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Ticket'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/Ticket'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/Ticket'
        required: true
      security:
      - jwtAuth: []
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Ticket'
          description: ''
  /api/tickets/{id}:
    get:
      operationId: tickets_retrieve
      parameters:
      - in: path
        name: id
        schema:
          type: string
          format: uuid
        description: A UUID string identifying this ticket.
        required: true
      tags:
      - tickets
      security:
      - jwtAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Ticket'
          description: ''
    put:
      operationId: tickets_update
      parameters:
      - in: path
        name: id
        schema:
          type: string
          format: uuid
        description: A UUID string identifying this ticket.
        required: true
      tags:
      - tickets
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Ticket'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/Ticket'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/Ticket'
        required: true
      security:
      - jwtAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Ticket'
          description: ''
    patch:
      operationId: tickets_partial_update
      parameters:
      - in: path
        name: id
        schema:
          type: string
          format: uuid
        description: A UUID string identifying this ticket.
        required: true
      tags:
      - tickets
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchedTicket'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/PatchedTicket'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/PatchedTicket'
      security:
      - jwtAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Ticket'
          description: ''
    delete:
      operationId: tickets_destroy
      parameters:
      - in: path
        name: id
        schema:
          type: string
          format: uuid
        description: A UUID string identifying this ticket.
        required: true
      tags:
      - tickets
      security:
      - jwtAuth: []
      responses:
        '204':
          description: No response body
  /api/tickets/{id}/close:
    post:
      operationId: tickets_close_create
      parameters:
      - in: path
        name: id
        schema:
          type: string
          format: uuid
        description: A UUID string identifying this ticket.
        required: true
      tags:
      - tickets
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Ticket'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/Ticket'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/Ticket'
        required: true
      security:
      - jwtAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Ticket'
          description: ''
  /api/tickets/delete:
    delete:
      operationId: tickets_delete_destroy
      tags:
      - tickets
      security:
      - jwtAuth: []
      responses:
        '204':
          description: No response body
  /api/unified-communications/contact-groups:
    get:
      operationId: unified_communications_contact_groups_list
      parameters:
      - name: page
        required: false
        in: query
        description: A page number within the paginated result set.
        schema:
          type: integer
      - name: page_size
        required: false
        in: query
        description: Number of results to return per page.
        schema:
          type: integer
      tags:
      - unified-communications
      security:
      - jwtAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedContactGroupList'
          description: ''
    post:
      operationId: unified_communications_contact_groups_create
      tags:
      - unified-communications
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ContactGroup'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/ContactGroup'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/ContactGroup'
        required: true
      security:
      - jwtAuth: []
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ContactGroup'
          description: ''
  /api/unified-communications/contact-groups/{id}:
    get:
      operationId: unified_communications_contact_groups_retrieve
      parameters:
      - in: path
        name: id
        schema:
          type: string
          format: uuid
        description: A UUID string identifying this contact group.
        required: true
      tags:
      - unified-communications
      security:
      - jwtAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ContactGroup'
          description: ''
    put:
      operationId: unified_communications_contact_groups_update
      parameters:
      - in: path
        name: id
        schema:
          type: string
          format: uuid
        description: A UUID string identifying this contact group.
        required: true
      tags:
      - unified-communications
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ContactGroup'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/ContactGroup'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/ContactGroup'
        required: true
      security:
      - jwtAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ContactGroup'
          description: ''
    patch:
      operationId: unified_communications_contact_groups_partial_update
      parameters:
      - in: path
        name: id
        schema:
          type: string
          format: uuid
        description: A UUID string identifying this contact group.
        required: true
      tags:
      - unified-communications
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchedContactGroup'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/PatchedContactGroup'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/PatchedContactGroup'
      security:
      - jwtAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ContactGroup'
          description: ''
    delete:
      operationId: unified_communications_contact_groups_destroy
      parameters:
      - in: path
        name: id
        schema:
          type: string
          format: uuid
        description: A UUID string identifying this contact group.
        required: true
      tags:
      - unified-communications
      security:
      - jwtAuth: []
      responses:
        '204':
          description: No response body
  /api/unified-communications/contact-preferences:
    get:
      operationId: unified_communications_contact_preferences_list
      parameters:
      - name: page
        required: false
        in: query
        description: A page number within the paginated result set.
        schema:
          type: integer
      - name: page_size
        required: false
        in: query
        description: Number of results to return per page.
        schema:
          type: integer
      tags:
      - unified-communications
      security:
      - jwtAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedContactPreferenceList'
          description: ''
    post:
      operationId: unified_communications_contact_preferences_create
      tags:
      - unified-communications
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ContactPreference'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/ContactPreference'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/ContactPreference'
        required: true
      security:
      - jwtAuth: []
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ContactPreference'
          description: ''
  /api/unified-communications/contact-preferences/{id}:
    get:
      operationId: unified_communications_contact_preferences_retrieve
      parameters:
      - in: path
        name: id
        schema:
          type: string
          format: uuid
        description: A UUID string identifying this contact preference.
        required: true
      tags:
      - unified-communications
      security:
      - jwtAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ContactPreference'
          description: ''
    put:
      operationId: unified_communications_contact_preferences_update
      parameters:
      - in: path
        name: id
        schema:
          type: string
          format: uuid
        description: A UUID string identifying this contact preference.
        required: true
      tags:
      - unified-communications
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ContactPreference'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/ContactPreference'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/ContactPreference'
        required: true
      security:
      - jwtAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ContactPreference'
          description: ''
    patch:
      operationId: unified_communications_contact_preferences_partial_update
      parameters:
      - in: path
        name: id
        schema:
          type: string
          format: uuid
        description: A UUID string identifying this contact preference.
        required: true
      tags:
      - unified-communications
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchedContactPreference'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/PatchedContactPreference'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/PatchedContactPreference'
      security:
      - jwtAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ContactPreference'
          description: ''
    delete:
      operationId: unified_communications_contact_preferences_destroy
      parameters:
      - in: path
        name: id
        schema:
          type: string
          format: uuid
        description: A UUID string identifying this contact preference.
        required: true
      tags:
      - unified-communications
      security:
      - jwtAuth: []
      responses:
        '204':
          description: No response body
  /api/unified-communications/contact-preferences/do-not-call:
    get:
      operationId: unified_communications_contact_preferences_do_not_call_retrieve
      description: Get all contacts marked as 'Do Not Call'.
      tags:
      - unified-communications
      security:
      - jwtAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ContactPreference'
          description: ''
  /api/unified-communications/contact-preferences/do-not-email:
    get:
      operationId: unified_communications_contact_preferences_do_not_email_retrieve
      description: Get all contacts marked as 'Do Not Email'.
      tags:
      - unified-communications
      security:
      - jwtAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ContactPreference'
          description: ''
  /api/unified-communications/contact-preferences/do-not-text:
    get:
      operationId: unified_communications_contact_preferences_do_not_text_retrieve
      description: Get all contacts marked as 'Do Not Text'.
      tags:
      - unified-communications
      security:
      - jwtAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ContactPreference'
          description: ''
  /api/unified-communications/contacts:
    get:
      operationId: unified_communications_contacts_list
      parameters:
      - name: limit
        required: false
        in: query
        description: Number of results to return per page.
        schema:
          type: integer
      - name: offset
        required: false
        in: query
        description: The initial index from which to return the results.
        schema:
          type: integer
      tags:
      - unified-communications
      security:
      - jwtAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedContactList'
          description: ''
    post:
      operationId: unified_communications_contacts_create
      tags:
      - unified-communications
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Contact'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/Contact'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/Contact'
        required: true
      security:
      - jwtAuth: []
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Contact'
          description: ''
  /api/unified-communications/contacts/{id}:
    get:
      operationId: unified_communications_contacts_retrieve
      parameters:
      - in: path
        name: id
        schema:
          type: string
          format: uuid
        description: A UUID string identifying this contact.
        required: true
      tags:
      - unified-communications
      security:
      - jwtAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Contact'
          description: ''
    put:
      operationId: unified_communications_contacts_update
      parameters:
      - in: path
        name: id
        schema:
          type: string
          format: uuid
        description: A UUID string identifying this contact.
        required: true
      tags:
      - unified-communications
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Contact'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/Contact'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/Contact'
        required: true
      security:
      - jwtAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Contact'
          description: ''
    patch:
      operationId: unified_communications_contacts_partial_update
      parameters:
      - in: path
        name: id
        schema:
          type: string
          format: uuid
        description: A UUID string identifying this contact.
        required: true
      tags:
      - unified-communications
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchedContact'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/PatchedContact'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/PatchedContact'
      security:
      - jwtAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Contact'
          description: ''
    delete:
      operationId: unified_communications_contacts_destroy
      parameters:
      - in: path
        name: id
        schema:
          type: string
          format: uuid
        description: A UUID string identifying this contact.
        required: true
      tags:
      - unified-communications
      security:
      - jwtAuth: []
      responses:
        '204':
          description: No response body
  /api/unified-communications/message-transactions:
    get:
      operationId: unified_communications_message_transactions_list
      parameters:
      - name: page
        required: false
        in: query
        description: A page number within the paginated result set.
        schema:
          type: integer
      - name: page_size
        required: false
        in: query
        description: Number of results to return per page.
        schema:
          type: integer
      tags:
      - unified-communications
      security:
      - jwtAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedMessageTransactionList'
          description: ''
    post:
      operationId: unified_communications_message_transactions_create
      tags:
      - unified-communications
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/MessageTransaction'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/MessageTransaction'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/MessageTransaction'
        required: true
      security:
      - jwtAuth: []
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MessageTransaction'
          description: ''
  /api/unified-communications/message-transactions/{id}:
    get:
      operationId: unified_communications_message_transactions_retrieve
      parameters:
      - in: path
        name: id
        schema:
          type: string
          format: uuid
        description: A UUID string identifying this message transaction.
        required: true
      tags:
      - unified-communications
      security:
      - jwtAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MessageTransaction'
          description: ''
    put:
      operationId: unified_communications_message_transactions_update
      parameters:
      - in: path
        name: id
        schema:
          type: string
          format: uuid
        description: A UUID string identifying this message transaction.
        required: true
      tags:
      - unified-communications
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/MessageTransaction'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/MessageTransaction'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/MessageTransaction'
        required: true
      security:
      - jwtAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MessageTransaction'
          description: ''
    patch:
      operationId: unified_communications_message_transactions_partial_update
      parameters:
      - in: path
        name: id
        schema:
          type: string
          format: uuid
        description: A UUID string identifying this message transaction.
        required: true
      tags:
      - unified-communications
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchedMessageTransaction'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/PatchedMessageTransaction'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/PatchedMessageTransaction'
      security:
      - jwtAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MessageTransaction'
          description: ''
    delete:
      operationId: unified_communications_message_transactions_destroy
      parameters:
      - in: path
        name: id
        schema:
          type: string
          format: uuid
        description: A UUID string identifying this message transaction.
        required: true
      tags:
      - unified-communications
      security:
      - jwtAuth: []
      responses:
        '204':
          description: No response body
  /api/unified-communications/message-transactions/webhook:
    post:
      operationId: unified_communications_message_transactions_webhook_create
      description: Handle message status updates from Twilio.
      tags:
      - unified-communications
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/MessageTransaction'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/MessageTransaction'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/MessageTransaction'
        required: true
      security:
      - jwtAuth: []
      - {}
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MessageTransaction'
          description: ''
  /api/unified-communications/smart-keyword:
    get:
      operationId: unified_communications_smart_keyword_list
      parameters:
      - name: page
        required: false
        in: query
        description: A page number within the paginated result set.
        schema:
          type: integer
      - name: page_size
        required: false
        in: query
        description: Number of results to return per page.
        schema:
          type: integer
      - name: search
        required: false
        in: query
        description: A search term.
        schema:
          type: string
      tags:
      - unified-communications
      security:
      - jwtAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedSmartKeywordList'
          description: ''
    post:
      operationId: unified_communications_smart_keyword_create
      tags:
      - unified-communications
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SmartKeyword'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/SmartKeyword'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/SmartKeyword'
        required: true
      security:
      - jwtAuth: []
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SmartKeyword'
          description: ''
  /api/unified-communications/smart-keyword-hit:
    get:
      operationId: unified_communications_smart_keyword_hit_list
      parameters:
      - name: page
        required: false
        in: query
        description: A page number within the paginated result set.
        schema:
          type: integer
      - name: page_size
        required: false
        in: query
        description: Number of results to return per page.
        schema:
          type: integer
      tags:
      - unified-communications
      security:
      - jwtAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedSmartKeywordHitList'
          description: ''
    post:
      operationId: unified_communications_smart_keyword_hit_create
      tags:
      - unified-communications
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SmartKeywordHit'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/SmartKeywordHit'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/SmartKeywordHit'
        required: true
      security:
      - jwtAuth: []
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SmartKeywordHit'
          description: ''
  /api/unified-communications/smart-keyword-hit/{id}:
    get:
      operationId: unified_communications_smart_keyword_hit_retrieve
      parameters:
      - in: path
        name: id
        schema:
          type: string
          format: uuid
        description: A UUID string identifying this smart keyword hit.
        required: true
      tags:
      - unified-communications
      security:
      - jwtAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SmartKeywordHit'
          description: ''
    put:
      operationId: unified_communications_smart_keyword_hit_update
      parameters:
      - in: path
        name: id
        schema:
          type: string
          format: uuid
        description: A UUID string identifying this smart keyword hit.
        required: true
      tags:
      - unified-communications
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SmartKeywordHit'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/SmartKeywordHit'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/SmartKeywordHit'
        required: true
      security:
      - jwtAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SmartKeywordHit'
          description: ''
    patch:
      operationId: unified_communications_smart_keyword_hit_partial_update
      parameters:
      - in: path
        name: id
        schema:
          type: string
          format: uuid
        description: A UUID string identifying this smart keyword hit.
        required: true
      tags:
      - unified-communications
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchedSmartKeywordHit'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/PatchedSmartKeywordHit'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/PatchedSmartKeywordHit'
      security:
      - jwtAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SmartKeywordHit'
          description: ''
    delete:
      operationId: unified_communications_smart_keyword_hit_destroy
      parameters:
      - in: path
        name: id
        schema:
          type: string
          format: uuid
        description: A UUID string identifying this smart keyword hit.
        required: true
      tags:
      - unified-communications
      security:
      - jwtAuth: []
      responses:
        '204':
          description: No response body
  /api/unified-communications/smart-keyword/{id}:
    get:
      operationId: unified_communications_smart_keyword_retrieve
      parameters:
      - in: path
        name: id
        schema:
          type: string
          format: uuid
        description: A UUID string identifying this smart keyword.
        required: true
      tags:
      - unified-communications
      security:
      - jwtAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SmartKeyword'
          description: ''
    put:
      operationId: unified_communications_smart_keyword_update
      parameters:
      - in: path
        name: id
        schema:
          type: string
          format: uuid
        description: A UUID string identifying this smart keyword.
        required: true
      tags:
      - unified-communications
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SmartKeyword'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/SmartKeyword'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/SmartKeyword'
        required: true
      security:
      - jwtAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SmartKeyword'
          description: ''
    patch:
      operationId: unified_communications_smart_keyword_partial_update
      parameters:
      - in: path
        name: id
        schema:
          type: string
          format: uuid
        description: A UUID string identifying this smart keyword.
        required: true
      tags:
      - unified-communications
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchedSmartKeyword'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/PatchedSmartKeyword'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/PatchedSmartKeyword'
      security:
      - jwtAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SmartKeyword'
          description: ''
    delete:
      operationId: unified_communications_smart_keyword_destroy
      parameters:
      - in: path
        name: id
        schema:
          type: string
          format: uuid
        description: A UUID string identifying this smart keyword.
        required: true
      tags:
      - unified-communications
      security:
      - jwtAuth: []
      responses:
        '204':
          description: No response body
  /api/unified-communications/smart-keyword/webhook:
    post:
      operationId: unified_communications_smart_keyword_webhook_create
      description: |-
        Webhook to process incoming messages from Twilio.

        This function receives incoming messages from Twilio, processes the message body to check for certain keywords
        or commands (like "unsubscribe", "subscribe", or smart keywords), and responds accordingly.

        It also manages the deduction of credits for triggering a smart keyword and handles the notification of users
        when a smart keyword is matched.

        Workflow:
        1. Extracts the 'From', 'To', and 'Body' from the incoming request data.
        2. Verifies that the required fields ('From', 'To', 'Body') are present.
        3. Checks if the 'To' number is associated with a valid messaging number.
        4. Handles "unsubscribe" and "subscribe" commands, sending appropriate responses.
        5. Searches for a matching smart keyword and processes the hit, including credit deduction and user
        notifications.
        6. If no matches are found, sends an auto-response message.

        :param request: The HTTP request containing the incoming message from Twilio, including 'From', 'To', and
        'Body'.

        :return: A Response object containing either an error message or a successful reply.
            - 400 (Bad Request) if required fields are missing, or if the messaging number or church is not found.
            - 404 (Not Found) if no church is associated with the given 'To' number.
            - 200 (OK) with the appropriate response message if processing is successful.

        Example:
            When a user sends a text message to a Twilio number, the webhook processes the message and replies
            with the corresponding response or action (e.g., a keyword match or auto-response).

        Notes:
            - If a user sends "unsubscribe" or "stop", the system unsubscribes them and responds accordingly.
            - If a user sends a valid keyword, credits are deducted from the church's balance, and the system responds
              with the keyword's description.
      tags:
      - unified-communications
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SmartKeyword'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/SmartKeyword'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/SmartKeyword'
        required: true
      security:
      - jwtAuth: []
      - {}
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SmartKeyword'
          description: ''
  /api/unified-communications/vault:
    get:
      operationId: unified_communications_vault_list
      parameters:
      - name: page
        required: false
        in: query
        description: A page number within the paginated result set.
        schema:
          type: integer
      - name: page_size
        required: false
        in: query
        description: Number of results to return per page.
        schema:
          type: integer
      tags:
      - unified-communications
      security:
      - jwtAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedChurchMediaList'
          description: ''
    post:
      operationId: unified_communications_vault_create
      tags:
      - unified-communications
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ChurchMedia'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/ChurchMedia'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/ChurchMedia'
        required: true
      security:
      - jwtAuth: []
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ChurchMedia'
          description: ''
  /api/unified-communications/vault/{id}:
    get:
      operationId: unified_communications_vault_retrieve
      parameters:
      - in: path
        name: id
        schema:
          type: string
          format: uuid
        description: A UUID string identifying this church media.
        required: true
      tags:
      - unified-communications
      security:
      - jwtAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ChurchMedia'
          description: ''
    put:
      operationId: unified_communications_vault_update
      parameters:
      - in: path
        name: id
        schema:
          type: string
          format: uuid
        description: A UUID string identifying this church media.
        required: true
      tags:
      - unified-communications
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ChurchMedia'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/ChurchMedia'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/ChurchMedia'
        required: true
      security:
      - jwtAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ChurchMedia'
          description: ''
    patch:
      operationId: unified_communications_vault_partial_update
      parameters:
      - in: path
        name: id
        schema:
          type: string
          format: uuid
        description: A UUID string identifying this church media.
        required: true
      tags:
      - unified-communications
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchedChurchMedia'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/PatchedChurchMedia'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/PatchedChurchMedia'
      security:
      - jwtAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ChurchMedia'
          description: ''
    delete:
      operationId: unified_communications_vault_destroy
      parameters:
      - in: path
        name: id
        schema:
          type: string
          format: uuid
        description: A UUID string identifying this church media.
        required: true
      tags:
      - unified-communications
      security:
      - jwtAuth: []
      responses:
        '204':
          description: No response body
  /api/unified-communications/vault/delete:
    delete:
      operationId: unified_communications_vault_delete_destroy
      tags:
      - unified-communications
      security:
      - jwtAuth: []
      responses:
        '204':
          description: No response body
  /api/users:
    get:
      operationId: users_list
      parameters:
      - name: page
        required: false
        in: query
        description: A page number within the paginated result set.
        schema:
          type: integer
      - name: page_size
        required: false
        in: query
        description: Number of results to return per page.
        schema:
          type: integer
      tags:
      - users
      security:
      - jwtAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedUserList'
          description: ''
    post:
      operationId: users_create
      tags:
      - users
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/User'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/User'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/User'
        required: true
      security:
      - jwtAuth: []
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/User'
          description: ''
  /api/users{id}:
    get:
      operationId: users_retrieve
      parameters:
      - in: path
        name: id
        schema:
          type: string
          format: uuid
        description: A UUID string identifying this user.
        required: true
      tags:
      - users
      security:
      - jwtAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/User'
          description: ''
    put:
      operationId: users_update
      parameters:
      - in: path
        name: id
        schema:
          type: string
          format: uuid
        description: A UUID string identifying this user.
        required: true
      tags:
      - users
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/User'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/User'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/User'
        required: true
      security:
      - jwtAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/User'
          description: ''
    patch:
      operationId: users_partial_update
      parameters:
      - in: path
        name: id
        schema:
          type: string
          format: uuid
        description: A UUID string identifying this user.
        required: true
      tags:
      - users
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchedUser'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/PatchedUser'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/PatchedUser'
      security:
      - jwtAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/User'
          description: ''
    delete:
      operationId: users_destroy
      parameters:
      - in: path
        name: id
        schema:
          type: string
          format: uuid
        description: A UUID string identifying this user.
        required: true
      tags:
      - users
      security:
      - jwtAuth: []
      responses:
        '204':
          description: No response body
  /api/users/administrators:
    get:
      operationId: users_administrators_list
      tags:
      - users
      security:
      - jwtAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/User'
          description: ''
    post:
      operationId: users_administrators_create
      tags:
      - users
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/User'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/User'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/User'
        required: true
      security:
      - jwtAuth: []
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/User'
          description: ''
  /api/users/administrators/{id}:
    get:
      operationId: users_administrators_retrieve
      parameters:
      - in: path
        name: id
        schema:
          type: string
          format: uuid
        description: A UUID string identifying this user.
        required: true
      tags:
      - users
      security:
      - jwtAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/User'
          description: ''
    delete:
      operationId: users_administrators_destroy
      parameters:
      - in: path
        name: id
        schema:
          type: string
          format: uuid
        description: A UUID string identifying this user.
        required: true
      tags:
      - users
      security:
      - jwtAuth: []
      responses:
        '204':
          description: No response body
  /api/users/administrators/{id}/permissions:
    patch:
      operationId: users_administrators_permissions_partial_update
      parameters:
      - in: path
        name: id
        schema:
          type: string
          format: uuid
        description: A UUID string identifying this user.
        required: true
      tags:
      - users
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchedUser'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/PatchedUser'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/PatchedUser'
      security:
      - jwtAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/User'
          description: ''
  /api/users/appointments:
    get:
      operationId: users_appointments_list
      parameters:
      - name: limit
        required: false
        in: query
        description: Number of results to return per page.
        schema:
          type: integer
      - name: offset
        required: false
        in: query
        description: The initial index from which to return the results.
        schema:
          type: integer
      tags:
      - users
      security:
      - jwtAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedAppointmentList'
          description: ''
    post:
      operationId: users_appointments_create
      tags:
      - users
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Appointment'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/Appointment'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/Appointment'
        required: true
      security:
      - jwtAuth: []
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Appointment'
          description: ''
  /api/users/appointments/{id}:
    get:
      operationId: users_appointments_retrieve
      parameters:
      - in: path
        name: id
        schema:
          type: string
          format: uuid
        description: A UUID string identifying this appointment.
        required: true
      tags:
      - users
      security:
      - jwtAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Appointment'
          description: ''
    put:
      operationId: users_appointments_update
      parameters:
      - in: path
        name: id
        schema:
          type: string
          format: uuid
        description: A UUID string identifying this appointment.
        required: true
      tags:
      - users
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Appointment'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/Appointment'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/Appointment'
        required: true
      security:
      - jwtAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Appointment'
          description: ''
    patch:
      operationId: users_appointments_partial_update
      parameters:
      - in: path
        name: id
        schema:
          type: string
          format: uuid
        description: A UUID string identifying this appointment.
        required: true
      tags:
      - users
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchedAppointment'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/PatchedAppointment'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/PatchedAppointment'
      security:
      - jwtAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Appointment'
          description: ''
    delete:
      operationId: users_appointments_destroy
      parameters:
      - in: path
        name: id
        schema:
          type: string
          format: uuid
        description: A UUID string identifying this appointment.
        required: true
      tags:
      - users
      security:
      - jwtAuth: []
      responses:
        '204':
          description: No response body
  /api/users/bank-accounts:
    get:
      operationId: users_bank_accounts_list
      description: A simple ViewSet for listing bank accounts of the authenticated
        user.
      tags:
      - users
      security:
      - jwtAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/BankAccount'
          description: ''
  /api/users/bank-accounts/{id}:
    delete:
      operationId: users_bank_accounts_destroy
      description: A simple ViewSet for listing bank accounts of the authenticated
        user.
      parameters:
      - in: path
        name: id
        schema:
          type: string
          format: uuid
        description: A UUID string identifying this bank account.
        required: true
      tags:
      - users
      security:
      - jwtAuth: []
      responses:
        '204':
          description: No response body
  /api/users/calendar:
    get:
      operationId: users_calendar_retrieve
      tags:
      - users
      security:
      - jwtAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/User'
          description: ''
  /api/users/cards:
    get:
      operationId: users_cards_list
      tags:
      - users
      security:
      - jwtAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/Card'
          description: ''
    post:
      operationId: users_cards_create
      tags:
      - users
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Card'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/Card'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/Card'
        required: true
      security:
      - jwtAuth: []
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Card'
          description: ''
  /api/users/cards/{id}:
    get:
      operationId: users_cards_retrieve
      parameters:
      - in: path
        name: id
        schema:
          type: string
        required: true
      tags:
      - users
      security:
      - jwtAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Card'
          description: ''
    put:
      operationId: users_cards_update
      parameters:
      - in: path
        name: id
        schema:
          type: string
        required: true
      tags:
      - users
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Card'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/Card'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/Card'
        required: true
      security:
      - jwtAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Card'
          description: ''
    patch:
      operationId: users_cards_partial_update
      parameters:
      - in: path
        name: id
        schema:
          type: string
        required: true
      tags:
      - users
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchedCard'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/PatchedCard'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/PatchedCard'
      security:
      - jwtAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Card'
          description: ''
    delete:
      operationId: users_cards_destroy
      parameters:
      - in: path
        name: id
        schema:
          type: string
        required: true
      tags:
      - users
      security:
      - jwtAuth: []
      responses:
        '204':
          description: No response body
  /api/users/comments:
    get:
      operationId: users_comments_list
      parameters:
      - name: limit
        required: false
        in: query
        description: Number of results to return per page.
        schema:
          type: integer
      - name: offset
        required: false
        in: query
        description: The initial index from which to return the results.
        schema:
          type: integer
      tags:
      - users
      security:
      - jwtAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedCommentList'
          description: ''
    post:
      operationId: users_comments_create
      tags:
      - users
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Comment'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/Comment'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/Comment'
        required: true
      security:
      - jwtAuth: []
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Comment'
          description: ''
  /api/users/comments/{id}:
    get:
      operationId: users_comments_retrieve
      parameters:
      - in: path
        name: id
        schema:
          type: string
          format: uuid
        description: A UUID string identifying this comment.
        required: true
      tags:
      - users
      security:
      - jwtAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Comment'
          description: ''
    put:
      operationId: users_comments_update
      parameters:
      - in: path
        name: id
        schema:
          type: string
          format: uuid
        description: A UUID string identifying this comment.
        required: true
      tags:
      - users
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Comment'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/Comment'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/Comment'
        required: true
      security:
      - jwtAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Comment'
          description: ''
    patch:
      operationId: users_comments_partial_update
      parameters:
      - in: path
        name: id
        schema:
          type: string
          format: uuid
        description: A UUID string identifying this comment.
        required: true
      tags:
      - users
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchedComment'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/PatchedComment'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/PatchedComment'
      security:
      - jwtAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Comment'
          description: ''
    delete:
      operationId: users_comments_destroy
      parameters:
      - in: path
        name: id
        schema:
          type: string
          format: uuid
        description: A UUID string identifying this comment.
        required: true
      tags:
      - users
      security:
      - jwtAuth: []
      responses:
        '204':
          description: No response body
  /api/users/delete-speakers:
    delete:
      operationId: users_delete_speakers_destroy
      tags:
      - users
      security:
      - jwtAuth: []
      responses:
        '204':
          description: No response body
  /api/users/devices:
    get:
      operationId: users_devices_list
      description: ViewSet for managing user devices.
      parameters:
      - name: limit
        required: false
        in: query
        description: Number of results to return per page.
        schema:
          type: integer
      - name: offset
        required: false
        in: query
        description: The initial index from which to return the results.
        schema:
          type: integer
      tags:
      - users
      security:
      - jwtAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedUserDeviceList'
          description: ''
    post:
      operationId: users_devices_create
      description: ViewSet for managing user devices.
      tags:
      - users
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UserDevice'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/UserDevice'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/UserDevice'
        required: true
      security:
      - jwtAuth: []
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UserDevice'
          description: ''
  /api/users/devices/{id}:
    get:
      operationId: users_devices_retrieve
      description: ViewSet for managing user devices.
      parameters:
      - in: path
        name: id
        schema:
          type: string
          format: uuid
        description: A UUID string identifying this user device.
        required: true
      tags:
      - users
      security:
      - jwtAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UserDevice'
          description: ''
    put:
      operationId: users_devices_update
      description: ViewSet for managing user devices.
      parameters:
      - in: path
        name: id
        schema:
          type: string
          format: uuid
        description: A UUID string identifying this user device.
        required: true
      tags:
      - users
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UserDevice'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/UserDevice'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/UserDevice'
        required: true
      security:
      - jwtAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UserDevice'
          description: ''
    patch:
      operationId: users_devices_partial_update
      description: ViewSet for managing user devices.
      parameters:
      - in: path
        name: id
        schema:
          type: string
          format: uuid
        description: A UUID string identifying this user device.
        required: true
      tags:
      - users
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchedUserDevice'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/PatchedUserDevice'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/PatchedUserDevice'
      security:
      - jwtAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UserDevice'
          description: ''
    delete:
      operationId: users_devices_destroy
      description: ViewSet for managing user devices.
      parameters:
      - in: path
        name: id
        schema:
          type: string
          format: uuid
        description: A UUID string identifying this user device.
        required: true
      tags:
      - users
      security:
      - jwtAuth: []
      responses:
        '204':
          description: No response body
  /api/users/email-test:
    get:
      operationId: users_email_test_retrieve
      tags:
      - users
      security:
      - jwtAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/User'
          description: ''
  /api/users/emergency-contacts:
    get:
      operationId: users_emergency_contacts_list
      tags:
      - users
      security:
      - jwtAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/EmergencyContact'
          description: ''
    post:
      operationId: users_emergency_contacts_create
      tags:
      - users
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/EmergencyContact'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/EmergencyContact'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/EmergencyContact'
        required: true
      security:
      - jwtAuth: []
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EmergencyContact'
          description: ''
  /api/users/emergency-contacts/{id}:
    get:
      operationId: users_emergency_contacts_retrieve
      parameters:
      - in: path
        name: id
        schema:
          type: string
        required: true
      tags:
      - users
      security:
      - jwtAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EmergencyContact'
          description: ''
    put:
      operationId: users_emergency_contacts_update
      parameters:
      - in: path
        name: id
        schema:
          type: string
        required: true
      tags:
      - users
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/EmergencyContact'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/EmergencyContact'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/EmergencyContact'
        required: true
      security:
      - jwtAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EmergencyContact'
          description: ''
    patch:
      operationId: users_emergency_contacts_partial_update
      parameters:
      - in: path
        name: id
        schema:
          type: string
        required: true
      tags:
      - users
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchedEmergencyContact'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/PatchedEmergencyContact'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/PatchedEmergencyContact'
      security:
      - jwtAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EmergencyContact'
          description: ''
    delete:
      operationId: users_emergency_contacts_destroy
      parameters:
      - in: path
        name: id
        schema:
          type: string
        required: true
      tags:
      - users
      security:
      - jwtAuth: []
      responses:
        '204':
          description: No response body
  /api/users/follow-up:
    get:
      operationId: users_follow_up_list
      parameters:
      - name: page
        required: false
        in: query
        description: A page number within the paginated result set.
        schema:
          type: integer
      - name: page_size
        required: false
        in: query
        description: Number of results to return per page.
        schema:
          type: integer
      tags:
      - users
      security:
      - jwtAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedGuestList'
          description: ''
    post:
      operationId: users_follow_up_create
      tags:
      - users
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Guest'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/Guest'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/Guest'
        required: true
      security:
      - jwtAuth: []
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Guest'
          description: ''
  /api/users/follow-up/{id}:
    get:
      operationId: users_follow_up_retrieve
      parameters:
      - in: path
        name: id
        schema:
          type: string
          format: uuid
        description: A UUID string identifying this guest.
        required: true
      tags:
      - users
      security:
      - jwtAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Guest'
          description: ''
    put:
      operationId: users_follow_up_update
      parameters:
      - in: path
        name: id
        schema:
          type: string
          format: uuid
        description: A UUID string identifying this guest.
        required: true
      tags:
      - users
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Guest'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/Guest'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/Guest'
        required: true
      security:
      - jwtAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Guest'
          description: ''
    patch:
      operationId: users_follow_up_partial_update
      parameters:
      - in: path
        name: id
        schema:
          type: string
          format: uuid
        description: A UUID string identifying this guest.
        required: true
      tags:
      - users
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchedGuest'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/PatchedGuest'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/PatchedGuest'
      security:
      - jwtAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Guest'
          description: ''
    delete:
      operationId: users_follow_up_destroy
      parameters:
      - in: path
        name: id
        schema:
          type: string
          format: uuid
        description: A UUID string identifying this guest.
        required: true
      tags:
      - users
      security:
      - jwtAuth: []
      responses:
        '204':
          description: No response body
  /api/users/follow-up/{id}/activity-log:
    post:
      operationId: users_follow_up_activity_log_create
      parameters:
      - in: path
        name: id
        schema:
          type: string
          format: uuid
        description: A UUID string identifying this guest.
        required: true
      tags:
      - users
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Guest'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/Guest'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/Guest'
        required: true
      security:
      - jwtAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Guest'
          description: ''
  /api/users/follow-up/{id}/make-member:
    post:
      operationId: users_follow_up_make_member_create
      parameters:
      - in: path
        name: id
        schema:
          type: string
          format: uuid
        description: A UUID string identifying this guest.
        required: true
      tags:
      - users
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Guest'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/Guest'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/Guest'
        required: true
      security:
      - jwtAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Guest'
          description: ''
  /api/users/follow-up/assignment:
    post:
      operationId: users_follow_up_assignment_create
      tags:
      - users
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Guest'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/Guest'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/Guest'
        required: true
      security:
      - jwtAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Guest'
          description: ''
  /api/users/follow-up/delete:
    delete:
      operationId: users_follow_up_delete_destroy
      tags:
      - users
      security:
      - jwtAuth: []
      responses:
        '204':
          description: No response body
  /api/users/follow-up/overview:
    get:
      operationId: users_follow_up_overview_retrieve
      tags:
      - users
      security:
      - jwtAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Guest'
          description: ''
  /api/users/follow-up/overview/{route_action}:
    get:
      operationId: users_follow_up_overview_retrieve_2
      parameters:
      - in: path
        name: route_action
        schema:
          type: string
          pattern: ^(genders|age-groups|years)$
        required: true
      tags:
      - users
      security:
      - jwtAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Guest'
          description: ''
  /api/users/follow-up/reporting:
    get:
      operationId: users_follow_up_reporting_retrieve
      tags:
      - users
      security:
      - jwtAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Guest'
          description: ''
  /api/users/guests:
    get:
      operationId: users_guests_retrieve
      tags:
      - users
      security:
      - jwtAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/User'
          description: ''
  /api/users/likes:
    post:
      operationId: users_likes_create
      tags:
      - users
      security:
      - jwtAuth: []
      responses:
        '201':
          description: No response body
  /api/users/membership-types:
    get:
      operationId: users_membership_types_list
      tags:
      - users
      security:
      - jwtAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/MembershipType'
          description: ''
    post:
      operationId: users_membership_types_create
      tags:
      - users
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/MembershipType'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/MembershipType'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/MembershipType'
        required: true
      security:
      - jwtAuth: []
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MembershipType'
          description: ''
  /api/users/membership-types/{id}:
    get:
      operationId: users_membership_types_retrieve
      parameters:
      - in: path
        name: id
        schema:
          type: string
          format: uuid
        description: A UUID string identifying this membership type.
        required: true
      tags:
      - users
      security:
      - jwtAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MembershipType'
          description: ''
    put:
      operationId: users_membership_types_update
      parameters:
      - in: path
        name: id
        schema:
          type: string
          format: uuid
        description: A UUID string identifying this membership type.
        required: true
      tags:
      - users
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/MembershipType'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/MembershipType'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/MembershipType'
        required: true
      security:
      - jwtAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MembershipType'
          description: ''
    patch:
      operationId: users_membership_types_partial_update
      parameters:
      - in: path
        name: id
        schema:
          type: string
          format: uuid
        description: A UUID string identifying this membership type.
        required: true
      tags:
      - users
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchedMembershipType'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/PatchedMembershipType'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/PatchedMembershipType'
      security:
      - jwtAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MembershipType'
          description: ''
    delete:
      operationId: users_membership_types_destroy
      parameters:
      - in: path
        name: id
        schema:
          type: string
          format: uuid
        description: A UUID string identifying this membership type.
        required: true
      tags:
      - users
      security:
      - jwtAuth: []
      responses:
        '204':
          description: No response body
  /api/users/notes:
    get:
      operationId: users_notes_list
      parameters:
      - name: limit
        required: false
        in: query
        description: Number of results to return per page.
        schema:
          type: integer
      - name: offset
        required: false
        in: query
        description: The initial index from which to return the results.
        schema:
          type: integer
      tags:
      - users
      security:
      - jwtAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedNoteList'
          description: ''
    post:
      operationId: users_notes_create
      tags:
      - users
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Note'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/Note'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/Note'
        required: true
      security:
      - jwtAuth: []
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Note'
          description: ''
  /api/users/notes/{id}:
    get:
      operationId: users_notes_retrieve
      parameters:
      - in: path
        name: id
        schema:
          type: string
          format: uuid
        description: A UUID string identifying this note.
        required: true
      tags:
      - users
      security:
      - jwtAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Note'
          description: ''
    put:
      operationId: users_notes_update
      parameters:
      - in: path
        name: id
        schema:
          type: string
          format: uuid
        description: A UUID string identifying this note.
        required: true
      tags:
      - users
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Note'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/Note'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/Note'
        required: true
      security:
      - jwtAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Note'
          description: ''
    patch:
      operationId: users_notes_partial_update
      parameters:
      - in: path
        name: id
        schema:
          type: string
          format: uuid
        description: A UUID string identifying this note.
        required: true
      tags:
      - users
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchedNote'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/PatchedNote'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/PatchedNote'
      security:
      - jwtAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Note'
          description: ''
    delete:
      operationId: users_notes_destroy
      parameters:
      - in: path
        name: id
        schema:
          type: string
          format: uuid
        description: A UUID string identifying this note.
        required: true
      tags:
      - users
      security:
      - jwtAuth: []
      responses:
        '204':
          description: No response body
  /api/users/notifications:
    get:
      operationId: users_notifications_list
      tags:
      - users
      security:
      - jwtAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/Notification'
          description: ''
  /api/users/notifications/{id}:
    get:
      operationId: users_notifications_retrieve
      parameters:
      - in: path
        name: id
        schema:
          type: string
          format: uuid
        description: A UUID string identifying this notification.
        required: true
      tags:
      - users
      security:
      - jwtAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Notification'
          description: ''
  /api/users/notifications/delete:
    delete:
      operationId: users_notifications_delete_destroy
      tags:
      - users
      security:
      - jwtAuth: []
      responses:
        '204':
          description: No response body
  /api/users/overview:
    get:
      operationId: users_overview_retrieve
      tags:
      - users
      security:
      - jwtAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/User'
          description: ''
  /api/users/overview/{route_action}:
    get:
      operationId: users_overview_retrieve_2
      parameters:
      - in: path
        name: route_action
        schema:
          type: string
          pattern: ^(genders|marital-statuses|membership-types|age-groups|birthdays|anniversaries|children)$
        required: true
      tags:
      - users
      security:
      - jwtAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/User'
          description: ''
  /api/users/plays:
    post:
      operationId: users_plays_create
      tags:
      - users
      security:
      - jwtAuth: []
      responses:
        '201':
          description: No response body
  /api/users/profile:
    get:
      operationId: users_profile_list
      tags:
      - users
      security:
      - jwtAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/Profile'
          description: ''
    post:
      operationId: users_profile_create
      tags:
      - users
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Profile'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/Profile'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/Profile'
        required: true
      security:
      - jwtAuth: []
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Profile'
          description: ''
  /api/users/profile/{user}:
    put:
      operationId: users_profile_update
      parameters:
      - in: path
        name: user
        schema:
          type: string
          format: uuid
        description: A unique value identifying this profile.
        required: true
      tags:
      - users
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Profile'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/Profile'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/Profile'
        required: true
      security:
      - jwtAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Profile'
          description: ''
    patch:
      operationId: users_profile_partial_update
      parameters:
      - in: path
        name: user
        schema:
          type: string
          format: uuid
        description: A unique value identifying this profile.
        required: true
      tags:
      - users
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchedProfile'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/PatchedProfile'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/PatchedProfile'
      security:
      - jwtAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Profile'
          description: ''
  /api/users/retrieve/{user_id}:
    get:
      operationId: users_retrieve_retrieve
      parameters:
      - in: path
        name: user_id
        schema:
          type: string
        required: true
      tags:
      - users
      security:
      - jwtAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/User'
          description: ''
  /api/users/security/{route_action}:
    post:
      operationId: users_security_create
      parameters:
      - in: path
        name: route_action
        schema:
          type: string
          pattern: ^(password|2fa|delete)$
        required: true
      tags:
      - users
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/User'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/User'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/User'
        required: true
      security:
      - jwtAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/User'
          description: ''
  /api/users/spouse:
    get:
      operationId: users_spouse_retrieve
      tags:
      - users
      security:
      - jwtAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/User'
          description: ''
    post:
      operationId: users_spouse_create
      tags:
      - users
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/User'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/User'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/User'
        required: true
      security:
      - jwtAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/User'
          description: ''
    delete:
      operationId: users_spouse_destroy
      tags:
      - users
      security:
      - jwtAuth: []
      responses:
        '204':
          description: No response body
components:
  schemas:
    AboutUser:
      type: object
      properties:
        first_name:
          type: string
          maxLength: 50
        last_name:
          type: string
          maxLength: 50
        email:
          type: string
          format: email
        phone_number:
          type: string
      required:
      - email
      - first_name
      - last_name
      - phone_number
    Album:
      type: object
      properties:
        id:
          type: string
          format: uuid
          readOnly: true
        podcasts:
          type: array
          items:
            type: string
            format: uuid
        speakers:
          type: array
          items:
            type: string
            format: uuid
        podcast_count:
          type: string
          readOnly: true
        legacy_id:
          type: string
          nullable: true
        nextgen_legacy_id:
          type: string
          nullable: true
        created_at:
          type: string
          format: date-time
          nullable: true
        updated_at:
          type: string
          format: date-time
          readOnly: true
        name:
          type: string
          maxLength: 255
        description:
          type: string
          nullable: true
        banner:
          type: string
          nullable: true
        frequency:
          type: string
          nullable: true
          maxLength: 255
      required:
      - id
      - name
      - podcast_count
      - podcasts
      - speakers
      - updated_at
    Answer:
      type: object
      properties:
        id:
          type: string
          format: uuid
          readOnly: true
        question:
          type: string
          format: uuid
        submission:
          type: string
          format: uuid
          readOnly: true
        legacy_id:
          type: string
          nullable: true
        nextgen_legacy_id:
          type: string
          nullable: true
        created_at:
          type: string
          format: date-time
          nullable: true
        updated_at:
          type: string
          format: date-time
          readOnly: true
        content:
          type: string
          nullable: true
        selected_options:
          nullable: true
      required:
      - id
      - question
      - submission
      - updated_at
    Appointment:
      type: object
      properties:
        id:
          type: string
          format: uuid
          readOnly: true
        user:
          allOf:
          - $ref: '#/components/schemas/SemiUser'
          readOnly: true
        leader:
          allOf:
          - $ref: '#/components/schemas/SemiUser'
          readOnly: true
        legacy_id:
          type: string
          nullable: true
        nextgen_legacy_id:
          type: string
          nullable: true
        created_at:
          type: string
          format: date-time
          nullable: true
        updated_at:
          type: string
          format: date-time
          readOnly: true
        date:
          type: string
          format: date
        time:
          type: string
          format: time
        type:
          type: string
        status:
          $ref: '#/components/schemas/AppointmentStatusEnum'
        church:
          type: string
          format: uuid
      required:
      - church
      - date
      - id
      - leader
      - time
      - type
      - updated_at
      - user
    AppointmentStatusEnum:
      enum:
      - pending
      - accepted
      - rejected
      - rescheduled
      type: string
      description: |-
        * `pending` - Pending
        * `accepted` - Accepted
        * `rejected` - Rejected
        * `rescheduled` - Rescheduled
    Authentication:
      type: object
      properties:
        first_name:
          type: string
        last_name:
          type: string
        email:
          type: string
          format: email
        phone:
          type: string
        is_on_broadcast_list:
          type: boolean
        password:
          type: string
        envelope_id:
          type: string
          nullable: true
        gender:
          $ref: '#/components/schemas/AuthenticationGenderEnum'
        birth_date:
          type: string
        avatar:
          type: string
          format: uri
        church:
          type: string
          format: uuid
      required:
      - email
      - first_name
      - last_name
      - password
      - phone
    AuthenticationGenderEnum:
      enum:
      - male
      - female
      type: string
      description: |-
        * `male` - male
        * `female` - female
    BankAccount:
      type: object
      properties:
        id:
          type: string
          format: uuid
          readOnly: true
        legacy_id:
          type: string
          nullable: true
        nextgen_legacy_id:
          type: string
          nullable: true
        updated_at:
          type: string
          format: date-time
          readOnly: true
        bank_name:
          type: string
          maxLength: 255
        last4:
          type: string
          maxLength: 4
        account_number:
          type: string
          writeOnly: true
          nullable: true
          maxLength: 30
        routing_number:
          type: string
          maxLength: 9
        account_holder_name:
          type: string
          maxLength: 255
        account_holder_type:
          type: string
          maxLength: 20
        token:
          type: string
          maxLength: 255
        is_default:
          type: boolean
        created_at:
          type: string
          format: date-time
          readOnly: true
        processor:
          type: string
          nullable: true
          maxLength: 50
        user:
          type: string
          format: uuid
          nullable: true
        guest:
          type: string
          format: uuid
          nullable: true
      required:
      - account_holder_name
      - account_holder_type
      - bank_name
      - created_at
      - id
      - last4
      - routing_number
      - token
      - updated_at
    BankDetails:
      type: object
      properties:
        account_number:
          type: string
          maxLength: 12
          minLength: 10
        routing_number:
          type: string
          maxLength: 9
          minLength: 9
      required:
      - account_number
      - routing_number
    BlankEnum:
      enum:
      - ''
    Bundle:
      type: object
      properties:
        id:
          type: string
          format: uuid
          readOnly: true
        legacy_id:
          type: string
          nullable: true
        nextgen_legacy_id:
          type: string
          nullable: true
        created_at:
          type: string
          format: date-time
          nullable: true
        updated_at:
          type: string
          format: date-time
          readOnly: true
        name:
          type: string
          maxLength: 255
        credit_amount:
          type: integer
          maximum: 2147483647
          minimum: -2147483648
        free_credit_percentage:
          type: integer
          maximum: 2147483647
          minimum: -2147483648
        price:
          type: integer
          maximum: 2147483647
          minimum: -2147483648
        stripe_product_id:
          type: string
          nullable: true
          maxLength: 255
        stripe_price_id:
          type: string
          nullable: true
          maxLength: 255
      required:
      - credit_amount
      - id
      - name
      - price
      - updated_at
    CallTimeEnum:
      enum:
      - morning
      - evening
      - afternoon
      - others
      type: string
      description: |-
        * `morning` - Morning (9AM-12PM)
        * `evening` - Evening (5PM-8PM)
        * `afternoon` - Afternoon (1PM-4PM)
        * `others` - Other (Anytime between 9AM-8PM)
    Card:
      type: object
      properties:
        id:
          type: string
          format: uuid
          readOnly: true
        user:
          type: string
          format: uuid
          writeOnly: true
        last4:
          type: string
          readOnly: true
        legacy_id:
          type: string
          nullable: true
        nextgen_legacy_id:
          type: string
          nullable: true
        created_at:
          type: string
          format: date-time
          nullable: true
        updated_at:
          type: string
          format: date-time
          readOnly: true
        number:
          type: string
          maxLength: 30
        cvv:
          type: string
          nullable: true
          maxLength: 4
        expiration_month:
          type: string
          maxLength: 2
        expiration_year:
          type: string
          maxLength: 4
        holder_name:
          type: string
          maxLength: 100
        is_default:
          type: boolean
        token:
          type: string
          nullable: true
          maxLength: 50
        brand:
          type: string
          nullable: true
          maxLength: 50
        type:
          $ref: '#/components/schemas/CardTypeEnum'
        is_hidden:
          type: boolean
        processor:
          type: string
          nullable: true
          maxLength: 50
        guest:
          type: string
          format: uuid
          nullable: true
      required:
      - expiration_month
      - expiration_year
      - holder_name
      - id
      - last4
      - number
      - updated_at
      - user
    CardDetails:
      type: object
      properties:
        cc_number:
          type: string
          maxLength: 16
          minLength: 13
        cc_expiration:
          type: string
          maxLength: 5
          minLength: 5
        cvv:
          type: string
          maxLength: 4
          minLength: 3
      required:
      - cc_expiration
      - cc_number
      - cvv
    CardTypeEnum:
      enum:
      - token
      - card
      - payment_profile
      type: string
      description: |-
        * `token` - Token
        * `card` - Card
        * `payment_profile` - Payment Profile
    CashAppInfo:
      type: object
      properties:
        id:
          type: string
          format: uuid
          readOnly: true
        legacy_id:
          type: string
          nullable: true
        nextgen_legacy_id:
          type: string
          nullable: true
        created_at:
          type: string
          format: date-time
          nullable: true
        updated_at:
          type: string
          format: date-time
          readOnly: true
        cash_app_id:
          type: string
          maxLength: 255
        name:
          type: string
          maxLength: 255
        email:
          type: string
          maxLength: 255
        telephone:
          type: string
          maxLength: 255
        church:
          type: string
          format: uuid
      required:
      - cash_app_id
      - church
      - email
      - id
      - name
      - telephone
      - updated_at
    Child:
      type: object
      properties:
        id:
          type: string
          format: uuid
          readOnly: true
        allergies:
          type: array
          items: {}
        age:
          type: string
          readOnly: true
        parents:
          type: string
          readOnly: true
        category:
          allOf:
          - $ref: '#/components/schemas/ChildCategory'
          readOnly: true
        legacy_id:
          type: string
          nullable: true
        nextgen_legacy_id:
          type: string
          nullable: true
        created_at:
          type: string
          format: date-time
          nullable: true
        updated_at:
          type: string
          format: date-time
          readOnly: true
        first_name:
          type: string
          maxLength: 50
        middle_name:
          type: string
          nullable: true
          maxLength: 50
        last_name:
          type: string
          maxLength: 50
        full_name:
          type: string
          readOnly: true
          nullable: true
        avatar:
          type: string
          nullable: true
          maxLength: 255
        cover:
          type: string
          nullable: true
          maxLength: 255
        birth_date:
          type: string
          format: date
          nullable: true
        favorite_color:
          type: string
          nullable: true
          maxLength: 50
        gender:
          nullable: true
          oneOf:
          - $ref: '#/components/schemas/GenderDc1Enum'
          - $ref: '#/components/schemas/BlankEnum'
          - $ref: '#/components/schemas/NullEnum'
        school:
          type: string
          nullable: true
          maxLength: 255
        is_checked_in:
          type: boolean
        check_in_code:
          type: string
          nullable: true
        church:
          type: string
          format: uuid
          nullable: true
      required:
      - age
      - category
      - first_name
      - full_name
      - id
      - last_name
      - parents
      - updated_at
    ChildCategory:
      type: object
      properties:
        id:
          type: string
          format: uuid
          readOnly: true
        teachers:
          type: array
          items:
            type: string
            format: uuid
          readOnly: true
        age_range:
          type: string
          readOnly: true
        legacy_id:
          type: string
          nullable: true
        nextgen_legacy_id:
          type: string
          nullable: true
        created_at:
          type: string
          format: date-time
          nullable: true
        updated_at:
          type: string
          format: date-time
          readOnly: true
        name:
          type: string
        start_year:
          type: integer
          maximum: 2147483647
          minimum: -2147483648
        end_year:
          type: integer
          maximum: 2147483647
          minimum: -2147483648
        start_month:
          type: integer
          maximum: 2147483647
          minimum: -2147483648
        end_month:
          type: integer
          maximum: 2147483647
          minimum: -2147483648
        module:
          $ref: '#/components/schemas/Module14eEnum'
        church:
          type: string
          format: uuid
      required:
      - age_range
      - church
      - id
      - name
      - teachers
      - updated_at
    ChildCheckIn:
      type: object
      properties:
        id:
          type: string
          format: uuid
          readOnly: true
        child:
          allOf:
          - $ref: '#/components/schemas/Child'
          readOnly: true
        category:
          allOf:
          - $ref: '#/components/schemas/ChildCategory'
          readOnly: true
        checked_in_by:
          allOf:
          - $ref: '#/components/schemas/SemiUser'
          readOnly: true
        checked_out_by:
          allOf:
          - $ref: '#/components/schemas/SemiUser'
          readOnly: true
        legacy_id:
          type: string
          nullable: true
        nextgen_legacy_id:
          type: string
          nullable: true
        created_at:
          type: string
          format: date-time
          nullable: true
        updated_at:
          type: string
          format: date-time
          readOnly: true
        checked_out_at:
          type: string
          format: date-time
          nullable: true
        check_in_source:
          type: string
          nullable: true
          maxLength: 255
        check_out_source:
          type: string
          nullable: true
          maxLength: 255
        module:
          $ref: '#/components/schemas/Module14eEnum'
        child_received:
          type: boolean
        church:
          type: string
          format: uuid
          nullable: true
      required:
      - category
      - checked_in_by
      - checked_out_by
      - child
      - id
      - updated_at
    Church:
      type: object
      properties:
        id:
          type: string
          format: uuid
          readOnly: true
        plan:
          allOf:
          - $ref: '#/components/schemas/Plan'
          readOnly: true
        prayer_request_reviewers:
          type: string
          readOnly: true
        testimony_reviewers:
          type: string
          readOnly: true
        locations:
          type: array
          items:
            $ref: '#/components/schemas/Location'
        follow_up_managers:
          type: string
          readOnly: true
        follow_up_department:
          type: string
          readOnly: true
        give_methods:
          type: array
          items:
            $ref: '#/components/schemas/GiveMethod'
        messaging_numbers:
          type: array
          items:
            $ref: '#/components/schemas/MessagingNumber'
        fee:
          type: string
          readOnly: true
        stripe_public_key:
          type: string
          readOnly: true
        failed_invoice_payment:
          type: string
          readOnly: true
        template_variables:
          type: string
          readOnly: true
        user_count:
          type: string
          readOnly: true
        free_trial_days_left:
          type: string
          readOnly: true
        legacy_id:
          type: string
          nullable: true
        nextgen_legacy_id:
          type: string
          nullable: true
        created_at:
          type: string
          format: date-time
          nullable: true
        updated_at:
          type: string
          format: date-time
          readOnly: true
        name:
          type: string
          maxLength: 100
        email:
          type: string
          format: email
          maxLength: 254
        phone:
          type: string
        short_code:
          type: string
          nullable: true
        website:
          type: string
          format: uri
          nullable: true
          maxLength: 200
        timezone:
          type: string
          nullable: true
          maxLength: 3
        currency:
          type: string
          maxLength: 3
        url:
          type: string
          format: uri
          maxLength: 200
        address_1:
          type: string
          nullable: true
        address_2:
          type: string
          nullable: true
        city:
          type: string
          nullable: true
        state:
          type: string
          nullable: true
        zip:
          type: string
          nullable: true
        country:
          type: string
          nullable: true
        country_code:
          type: string
          nullable: true
        socials:
          nullable: true
        celebration_types:
          nullable: true
        package:
          $ref: '#/components/schemas/PackageEnum'
        default_processor:
          nullable: true
          oneOf:
          - $ref: '#/components/schemas/DefaultProcessorEnum'
          - $ref: '#/components/schemas/BlankEnum'
          - $ref: '#/components/schemas/NullEnum'
        processors: {}
        processor_status: {}
        prayer_request_restriction:
          type: boolean
        prayer_request_push_notifications:
          type: boolean
        prayer_request_push_notification_subject:
          type: string
        prayer_request_push_notification_body:
          type: string
        testimony_restriction:
          type: boolean
        testimony_push_notifications:
          type: boolean
        testimony_push_notification_subject:
          type: string
        testimony_push_notification_body:
          type: string
        child_maximum_age:
          type: integer
          maximum: 2147483647
          minimum: -2147483648
        teenager_maximum_age:
          type: integer
          maximum: 2147483647
          minimum: -2147483648
        portal_logo:
          type: string
          nullable: true
        mobile_logo:
          type: string
          nullable: true
        landing_logo:
          type: string
          nullable: true
        statement_logo:
          type: string
          nullable: true
        primary_color:
          type: string
          nullable: true
          maxLength: 100
        secondary_color:
          type: string
          nullable: true
          maxLength: 100
        dark_mode_color:
          type: string
          nullable: true
          maxLength: 100
        youtube_channel_id:
          type: string
          nullable: true
        testimony_story_lifetime:
          type: integer
          maximum: 2147483647
          minimum: -2147483648
        enable_give_module_on_landing_page:
          type: boolean
        enable_check_in_module_on_landing_page:
          type: boolean
        enable_rsvp_module_on_landing_page:
          type: boolean
        rsvp_label:
          type: string
          nullable: true
          maxLength: 100
        enable_livestream_module_on_landing_page:
          type: boolean
        user_portal_default_theme_is_dark:
          type: boolean
        admin_portal_default_theme_is_dark:
          type: boolean
        mobile_portal_default_theme_is_dark:
          type: boolean
        allow_users_switch_theme:
          type: boolean
        allow_users_change_session_duration:
          type: boolean
        allow_geo_based_check_in:
          type: boolean
        pastor_name:
          type: string
          nullable: true
          maxLength: 100
        pastor_title:
          type: string
          nullable: true
          maxLength: 100
        pastor_hub_app_code:
          type: string
          nullable: true
          maxLength: 100
        pastor_phone:
          type: string
          nullable: true
          maxLength: 100
        allow_users_set_spouse:
          type: boolean
        allow_users_unset_spouse:
          type: boolean
        allow_users_with_same_envelope_id:
          type: boolean
        maximum_number_users_with_same_envelope_id:
          type: integer
          maximum: 2147483647
          minimum: -2147483648
        house_fellowship_name_label:
          type: string
          nullable: true
          maxLength: 100
        house_fellowship_zone_label:
          type: string
          nullable: true
          maxLength: 100
        house_fellowship_district_label:
          type: string
          nullable: true
          maxLength: 100
        auto_response_text_message:
          type: string
          nullable: true
        auto_response_text_message_updated_at:
          type: string
          format: date-time
          nullable: true
        subscribe_text_message:
          type: string
          nullable: true
        subscribe_text_message_updated_at:
          type: string
          format: date-time
          nullable: true
        unsubscribe_text_message:
          type: string
          nullable: true
        unsubscribe_text_message_updated_at:
          type: string
          format: date-time
          nullable: true
        credit_total:
          type: integer
          maximum: 2147483647
          minimum: -2147483648
        child_badge_printing:
          type: boolean
        child_sms_check_in_notifications:
          type: boolean
        child_email_check_in_notifications:
          type: boolean
        child_push_notification_check_in_notifications:
          type: boolean
        child_receive_feature:
          type: boolean
        child_mobile_app_check_in:
          type: boolean
        child_drop_off_time:
          type: integer
          maximum: 2147483647
          minimum: -2147483648
        child_cancel_check_in:
          type: integer
          maximum: 2147483647
          minimum: -2147483648
        child_kids_app_code:
          type: string
          nullable: true
          maxLength: 100
        teenager_badge_printing:
          type: boolean
        teenager_sms_check_in_notifications:
          type: boolean
        teenager_email_check_in_notifications:
          type: boolean
        teenager_push_notification_check_in_notifications:
          type: boolean
        teenager_receive_feature:
          type: boolean
        teenager_mobile_app_check_in:
          type: boolean
        teenager_drop_off_time:
          type: integer
          maximum: 2147483647
          minimum: -2147483648
        teenager_cancel_check_in:
          type: integer
          maximum: 2147483647
          minimum: -2147483648
        teenager_kids_app_code:
          type: string
          nullable: true
          maxLength: 100
        follow_up_reminder_time:
          type: integer
          maximum: 2147483647
          minimum: -2147483648
        allow_testimony_sharing:
          type: boolean
        allow_testimony_sharing_to_others:
          type: boolean
        contribution_statement_duration:
          type: integer
          maximum: 2147483647
          minimum: -2147483648
        contribution_update_window:
          type: integer
          maximum: 2147483647
          minimum: -2147483648
        allow_contribution_type_change:
          type: boolean
        contribution_notification_users: {}
        contribution_minimum_amount:
          type: integer
          maximum: 2147483647
          minimum: -2147483648
        contribution_maximum_amount:
          type: integer
          maximum: 2147483647
          minimum: -2147483648
        cycle:
          $ref: '#/components/schemas/CycleEnum'
        android_app_url:
          type: string
          nullable: true
          maxLength: 255
        ios_app_url:
          type: string
          nullable: true
          maxLength: 255
        app_onboarding_screens: {}
        app_name:
          type: string
          nullable: true
          maxLength: 100
        has_app:
          type: boolean
        auto_deduct:
          type: boolean
        stripe_customer_id:
          type: string
          nullable: true
          maxLength: 100
        quick_actions:
          nullable: true
        explore_modules:
          nullable: true
        external_links:
          nullable: true
        status:
          $ref: '#/components/schemas/ChurchStatusEnum'
        enable_give_module:
          type: boolean
        enable_unified_communications_module:
          type: boolean
      required:
      - email
      - failed_invoice_payment
      - fee
      - follow_up_department
      - follow_up_managers
      - free_trial_days_left
      - give_methods
      - id
      - locations
      - messaging_numbers
      - name
      - phone
      - plan
      - prayer_request_reviewers
      - stripe_public_key
      - template_variables
      - testimony_reviewers
      - updated_at
      - url
      - user_count
    ChurchMedia:
      type: object
      properties:
        id:
          type: string
          format: uuid
          readOnly: true
        legacy_id:
          type: string
          nullable: true
        nextgen_legacy_id:
          type: string
          nullable: true
        created_at:
          type: string
          format: date-time
          readOnly: true
          nullable: true
        updated_at:
          type: string
          format: date-time
          readOnly: true
        name:
          type: string
          maxLength: 100
        thumbnail:
          type: string
          format: uri
          nullable: true
          maxLength: 100
        url:
          type: string
          format: uri
          maxLength: 200
        size:
          type: integer
          maximum: 9223372036854775807
          minimum: -9223372036854775808
          format: int64
        duration:
          type: string
          format: decimal
          pattern: ^-?\d{0,6}(?:\.\d{0,2})?$
        type:
          $ref: '#/components/schemas/ChurchMediaTypeEnum'
        church:
          type: string
          format: uuid
          readOnly: true
      required:
      - church
      - created_at
      - id
      - name
      - type
      - updated_at
      - url
    ChurchMediaTypeEnum:
      enum:
      - audio
      - image
      - video
      type: string
      description: |-
        * `audio` - Audio
        * `image` - Image
        * `video` - Video
    ChurchStatusEnum:
      enum:
      - active
      - inactive
      - suspended
      type: string
      description: |-
        * `active` - active
        * `inactive` - inactive
        * `suspended` - suspended
    CobaltAuthentication:
      type: object
      properties:
        first_name:
          type: string
        last_name:
          type: string
        email:
          type: string
          format: email
        phone:
          type: string
        password:
          type: string
        avatar:
          type: string
          format: uri
      required:
      - email
      - first_name
      - last_name
      - password
      - phone
    CobaltCredit:
      type: object
      properties:
        id:
          type: string
          format: uuid
          readOnly: true
        church_id:
          type: string
          format: uuid
          writeOnly: true
        church:
          allOf:
          - $ref: '#/components/schemas/CobaltSemiChurch'
          readOnly: true
        added_by:
          allOf:
          - $ref: '#/components/schemas/CobaltSemiUser'
          readOnly: true
        legacy_id:
          type: string
          nullable: true
        nextgen_legacy_id:
          type: string
          nullable: true
        created_at:
          type: string
          format: date-time
          nullable: true
        updated_at:
          type: string
          format: date-time
          readOnly: true
        amount:
          type: string
          format: decimal
          pattern: ^-?\d{0,8}(?:\.\d{0,2})?$
        comment:
          type: string
          nullable: true
        current_credits:
          type: integer
          maximum: 2147483647
          minimum: -2147483648
        total_credits:
          type: integer
          maximum: 2147483647
          minimum: -2147483648
      required:
      - added_by
      - amount
      - church
      - church_id
      - id
      - updated_at
    CobaltInvoice:
      type: object
      properties:
        id:
          type: string
          format: uuid
          readOnly: true
        plan:
          allOf:
          - $ref: '#/components/schemas/Plan'
          readOnly: true
        church:
          allOf:
          - $ref: '#/components/schemas/CobaltSemiChurch'
          readOnly: true
        waiver:
          type: string
          readOnly: true
        church_id:
          type: string
          format: uuid
          writeOnly: true
        legacy_id:
          type: string
          nullable: true
        nextgen_legacy_id:
          type: string
          nullable: true
        created_at:
          type: string
          format: date-time
          nullable: true
        updated_at:
          type: string
          format: date-time
          readOnly: true
        invoice_id:
          type: string
          maxLength: 20
        status:
          $ref: '#/components/schemas/StatusE40Enum'
        amount:
          type: string
          format: decimal
          pattern: ^-?\d{0,8}(?:\.\d{0,2})?$
        payment_method:
          type: string
          nullable: true
          maxLength: 100
        billing_date:
          type: string
          format: date
          nullable: true
        stripe_payment_intent_id:
          type: string
          nullable: true
        metadata: {}
        paid_at:
          type: string
          format: date-time
          nullable: true
        is_custom:
          type: boolean
        title:
          type: string
          nullable: true
          maxLength: 255
        description:
          type: string
          nullable: true
        stripe_price_id:
          type: string
          nullable: true
        due_date:
          type: string
          format: date
          nullable: true
        service_date:
          type: string
          format: date
          nullable: true
        waive_reason:
          type: string
          nullable: true
          maxLength: 255
        payment_term:
          oneOf:
          - $ref: '#/components/schemas/PaymentTermEnum'
          - $ref: '#/components/schemas/BlankEnum'
        number_of_payments:
          type: integer
          maximum: 2147483647
          minimum: -2147483648
          nullable: true
        number_of_installments:
          type: integer
          maximum: 2147483647
          minimum: -2147483648
          nullable: true
        frequency:
          type: string
          nullable: true
        waived_at:
          type: string
          format: date-time
          nullable: true
      required:
      - amount
      - church
      - church_id
      - id
      - invoice_id
      - plan
      - updated_at
      - waiver
    CobaltMessage:
      type: object
      properties:
        id:
          type: string
          format: uuid
          readOnly: true
        cobalt_user:
          allOf:
          - $ref: '#/components/schemas/CobaltSemiUser'
          readOnly: true
        is_read:
          type: string
          readOnly: true
        legacy_id:
          type: string
          nullable: true
        nextgen_legacy_id:
          type: string
          nullable: true
        created_at:
          type: string
          format: date-time
          nullable: true
        updated_at:
          type: string
          format: date-time
          readOnly: true
        sender_email:
          type: string
          format: email
          nullable: true
          maxLength: 254
        sender_name:
          type: string
          nullable: true
        reply_email:
          type: string
          format: email
          nullable: true
          maxLength: 254
        reply_name:
          type: string
          format: email
          nullable: true
          maxLength: 254
        mail_subject:
          type: string
          nullable: true
          maxLength: 255
        subject:
          type: string
          nullable: true
          maxLength: 255
        body:
          type: string
          nullable: true
        target: {}
        type:
          $ref: '#/components/schemas/TypeDd0Enum'
        cobalt_template:
          type: string
          format: uuid
          nullable: true
      required:
      - cobalt_user
      - id
      - is_read
      - updated_at
    CobaltMessagingNumber:
      type: object
      properties:
        id:
          type: string
          format: uuid
          readOnly: true
        church:
          allOf:
          - $ref: '#/components/schemas/CobaltSemiChurch'
          readOnly: true
        releaser:
          allOf:
          - $ref: '#/components/schemas/CobaltSemiUser'
          readOnly: true
        restorer:
          allOf:
          - $ref: '#/components/schemas/CobaltSemiUser'
          readOnly: true
        purchaser:
          type: string
          readOnly: true
        days_left:
          type: string
          readOnly: true
        legacy_id:
          type: string
          nullable: true
        nextgen_legacy_id:
          type: string
          nullable: true
        created_at:
          type: string
          format: date-time
          nullable: true
        updated_at:
          type: string
          format: date-time
          readOnly: true
        number:
          type: string
          maxLength: 20
        friendly_name:
          type: string
          maxLength: 50
        sid:
          type: string
          maxLength: 100
        released_at:
          type: string
          format: date-time
          nullable: true
        restored_at:
          type: string
          format: date-time
          nullable: true
      required:
      - church
      - days_left
      - friendly_name
      - id
      - number
      - purchaser
      - releaser
      - restorer
      - sid
      - updated_at
    CobaltSemiChurch:
      type: object
      properties:
        id:
          type: string
          format: uuid
          readOnly: true
        name:
          type: string
          maxLength: 100
        email:
          type: string
          format: email
          maxLength: 254
        phone:
          type: string
        short_code:
          type: string
          nullable: true
        address_1:
          type: string
          nullable: true
        country:
          type: string
          nullable: true
        user_count:
          type: string
          readOnly: true
      required:
      - email
      - id
      - name
      - phone
      - user_count
    CobaltSemiUser:
      type: object
      properties:
        id:
          type: string
          format: uuid
          readOnly: true
        first_name:
          type: string
          maxLength: 255
        last_name:
          type: string
          maxLength: 255
        full_name:
          type: string
          readOnly: true
          nullable: true
        avatar:
          type: string
          nullable: true
          maxLength: 255
        email:
          type: string
          format: email
          maxLength: 254
        phone:
          type: string
          nullable: true
          maxLength: 255
      required:
      - email
      - first_name
      - full_name
      - id
      - last_name
    CobaltTemplate:
      type: object
      properties:
        id:
          type: string
          format: uuid
          readOnly: true
        cobalt_user:
          allOf:
          - $ref: '#/components/schemas/CobaltSemiUser'
          readOnly: true
        legacy_id:
          type: string
          nullable: true
        nextgen_legacy_id:
          type: string
          nullable: true
        created_at:
          type: string
          format: date-time
          nullable: true
        updated_at:
          type: string
          format: date-time
          readOnly: true
        name:
          type: string
          maxLength: 255
        mail_subject:
          type: string
          nullable: true
          maxLength: 255
        subject:
          type: string
          nullable: true
          maxLength: 255
        body:
          type: string
          nullable: true
        description:
          type: string
          nullable: true
      required:
      - cobalt_user
      - id
      - name
      - updated_at
    CobaltTicket:
      type: object
      properties:
        id:
          type: string
          format: uuid
          readOnly: true
        user:
          allOf:
          - $ref: '#/components/schemas/SemiUser'
          readOnly: true
        cobalt_user:
          allOf:
          - $ref: '#/components/schemas/CobaltSemiUser'
          readOnly: true
        assignee:
          allOf:
          - $ref: '#/components/schemas/CobaltSemiUser'
          readOnly: true
        church:
          allOf:
          - $ref: '#/components/schemas/CobaltSemiChurch'
          readOnly: true
        legacy_id:
          type: string
          nullable: true
        nextgen_legacy_id:
          type: string
          nullable: true
        created_at:
          type: string
          format: date-time
          nullable: true
        updated_at:
          type: string
          format: date-time
          readOnly: true
        ticket_id:
          type: integer
          maximum: 2147483647
          minimum: -2147483648
          nullable: true
        type:
          type: string
          maxLength: 100
        priority:
          type: string
          maxLength: 100
        description:
          type: string
        status:
          $ref: '#/components/schemas/Status846Enum'
        change_log: {}
        closed_at:
          type: string
          format: date-time
          nullable: true
        deleted_at:
          type: string
          format: date-time
          nullable: true
        media: {}
      required:
      - assignee
      - church
      - cobalt_user
      - description
      - id
      - priority
      - type
      - updated_at
      - user
    CobaltUser:
      type: object
      properties:
        id:
          type: string
          format: uuid
          readOnly: true
        latest_activities:
          type: string
          readOnly: true
        last_login:
          type: string
          format: date-time
          nullable: true
        is_active:
          type: boolean
          title: Active
          description: Designates whether this user should be treated as active. Unselect
            this instead of deleting accounts.
        first_name:
          type: string
          maxLength: 255
        middle_name:
          type: string
          nullable: true
          maxLength: 255
        last_name:
          type: string
          maxLength: 255
        full_name:
          type: string
          readOnly: true
          nullable: true
        avatar:
          type: string
          nullable: true
          maxLength: 255
        email:
          type: string
          format: email
          maxLength: 254
        phone:
          type: string
          nullable: true
          maxLength: 255
        created_at:
          type: string
          format: date-time
          readOnly: true
        updated_at:
          type: string
          format: date-time
          readOnly: true
        gender:
          type: string
          nullable: true
          maxLength: 255
      required:
      - created_at
      - email
      - first_name
      - full_name
      - id
      - last_name
      - latest_activities
      - updated_at
    Comment:
      type: object
      properties:
        id:
          type: string
          format: uuid
          readOnly: true
        user:
          allOf:
          - $ref: '#/components/schemas/SemiUser'
          readOnly: true
        legacy_id:
          type: string
          nullable: true
        nextgen_legacy_id:
          type: string
          nullable: true
        created_at:
          type: string
          format: date-time
          nullable: true
        updated_at:
          type: string
          format: date-time
          readOnly: true
        content:
          type: string
          maxLength: 500
        media: {}
        prayer_request:
          type: string
          format: uuid
          nullable: true
        testimony:
          type: string
          format: uuid
          nullable: true
        note:
          type: string
          format: uuid
          nullable: true
      required:
      - content
      - id
      - updated_at
      - user
    Contact:
      type: object
      properties:
        id:
          type: string
          format: uuid
          readOnly: true
        legacy_id:
          type: string
          nullable: true
        nextgen_legacy_id:
          type: string
          nullable: true
        created_at:
          type: string
          format: date-time
          readOnly: true
          nullable: true
        updated_at:
          type: string
          format: date-time
          readOnly: true
        first_name:
          type: string
          maxLength: 50
        middle_name:
          type: string
          nullable: true
          maxLength: 50
        last_name:
          type: string
          maxLength: 50
        phone:
          type: string
          maxLength: 15
        email:
          type: string
          format: email
          maxLength: 254
        avatar:
          type: string
          format: uri
          nullable: true
          maxLength: 200
        is_manual:
          type: boolean
      required:
      - created_at
      - email
      - first_name
      - id
      - last_name
      - phone
      - updated_at
    ContactGroup:
      type: object
      properties:
        id:
          type: string
          format: uuid
          readOnly: true
        user_ids:
          type: array
          items:
            type: string
            format: uuid
        manual_contacts:
          type: array
          items:
            $ref: '#/components/schemas/ManualContact'
        contacts:
          type: array
          items:
            $ref: '#/components/schemas/Contact'
          readOnly: true
        legacy_id:
          type: string
          nullable: true
        nextgen_legacy_id:
          type: string
          nullable: true
        created_at:
          type: string
          format: date-time
          nullable: true
        updated_at:
          type: string
          format: date-time
          readOnly: true
        name:
          type: string
          maxLength: 100
        thumbnail:
          type: string
          format: uri
          nullable: true
          maxLength: 200
        church:
          type: string
          format: uuid
      required:
      - church
      - contacts
      - id
      - name
      - updated_at
    ContactPreference:
      type: object
      properties:
        id:
          type: string
          format: uuid
          readOnly: true
        user:
          allOf:
          - $ref: '#/components/schemas/SemiUser'
          readOnly: true
        legacy_id:
          type: string
          nullable: true
        nextgen_legacy_id:
          type: string
          nullable: true
        created_at:
          type: string
          format: date-time
          nullable: true
        updated_at:
          type: string
          format: date-time
          readOnly: true
        contact:
          type: string
          maxLength: 255
        reason:
          type: string
          nullable: true
          description: Reason for the restriction.
        country:
          type: string
          nullable: true
          maxLength: 255
        do_not_text:
          type: boolean
        do_not_call:
          type: boolean
        do_not_email:
          type: boolean
      required:
      - contact
      - id
      - updated_at
      - user
    Contribution:
      type: object
      properties:
        id:
          type: string
          format: uuid
          readOnly: true
        recurring:
          type: boolean
          writeOnly: true
          default: false
        description:
          type: string
        interval_length:
          type: integer
        interval_unit:
          type: string
        total_occurrences:
          type: integer
        frequency:
          type: string
        start_date:
          type: string
          format: date
        amount:
          type: string
          format: decimal
          pattern: ^-?\d{0,8}(?:\.\d{0,2})?$
        legacy_id:
          type: string
          nullable: true
        nextgen_legacy_id:
          type: string
          nullable: true
        created_at:
          type: string
          format: date-time
          nullable: true
        updated_at:
          type: string
          format: date-time
          readOnly: true
        processor:
          nullable: true
          oneOf:
          - $ref: '#/components/schemas/ProcessorEnum'
          - $ref: '#/components/schemas/BlankEnum'
          - $ref: '#/components/schemas/NullEnum'
        payment_id:
          type: string
          readOnly: true
        status:
          allOf:
          - $ref: '#/components/schemas/Status147Enum'
          readOnly: true
        memo:
          type: string
          nullable: true
          maxLength: 255
        date:
          type: string
          format: date-time
          nullable: true
        user:
          type: string
          format: uuid
          readOnly: true
          nullable: true
        type:
          type: string
          format: uuid
          nullable: true
        church:
          type: string
          format: uuid
          readOnly: true
        guest:
          type: string
          format: uuid
          nullable: true
      required:
      - amount
      - church
      - id
      - payment_id
      - status
      - updated_at
      - user
    ContributionType:
      type: object
      properties:
        id:
          type: string
          format: uuid
          readOnly: true
        contribution_count:
          type: string
          readOnly: true
        user:
          allOf:
          - $ref: '#/components/schemas/SemiUser'
          readOnly: true
        legacy_id:
          type: string
          nullable: true
        nextgen_legacy_id:
          type: string
          nullable: true
        created_at:
          type: string
          format: date-time
          nullable: true
        updated_at:
          type: string
          format: date-time
          readOnly: true
        name:
          type: string
          maxLength: 255
        description:
          type: string
          nullable: true
        code:
          type: string
          nullable: true
          maxLength: 255
        church:
          type: string
          format: uuid
      required:
      - church
      - contribution_count
      - id
      - name
      - updated_at
      - user
    CustomerAcceptance:
      type: object
      properties:
        ip_address:
          type: string
          maxLength: 50
        user_agent:
          type: string
          maxLength: 255
      required:
      - ip_address
      - user_agent
    CycleEnum:
      enum:
      - yearly
      - monthly
      type: string
      description: |-
        * `yearly` - yearly
        * `monthly` - monthly
    DayEnum:
      enum:
      - Monday
      - Tuesday
      - Wednesday
      - Thursday
      - Friday
      - Saturday
      - Sunday
      - monday
      - tuesday
      - wednesday
      - thursday
      - friday
      - saturday
      - sunday
      type: string
      description: |-
        * `Monday` - Monday
        * `Tuesday` - Tuesday
        * `Wednesday` - Wednesday
        * `Thursday` - Thursday
        * `Friday` - Friday
        * `Saturday` - Saturday
        * `Sunday` - Sunday
        * `monday` - monday
        * `tuesday` - tuesday
        * `wednesday` - wednesday
        * `thursday` - thursday
        * `friday` - friday
        * `saturday` - saturday
        * `sunday` - sunday
    DefaultProcessorEnum:
      enum:
      - stripe
      - raise_the_money
      - authorize.net
      type: string
      description: |-
        * `stripe` - Stripe
        * `raise_the_money` - Raise The Money
        * `authorize.net` - Authorize.net
    EmergencyContact:
      type: object
      properties:
        id:
          type: string
          format: uuid
          readOnly: true
        legacy_id:
          type: string
          nullable: true
        nextgen_legacy_id:
          type: string
          nullable: true
        created_at:
          type: string
          format: date-time
          nullable: true
        updated_at:
          type: string
          format: date-time
          readOnly: true
        first_name:
          type: string
          maxLength: 50
        middle_name:
          type: string
          nullable: true
          maxLength: 50
        last_name:
          type: string
          maxLength: 50
        phone:
          type: string
        email:
          type: string
          format: email
          maxLength: 254
        relationship:
          type: string
          maxLength: 50
      required:
      - email
      - first_name
      - id
      - last_name
      - phone
      - relationship
      - updated_at
    Event:
      type: object
      properties:
        id:
          type: string
          format: uuid
          readOnly: true
        location:
          allOf:
          - $ref: '#/components/schemas/Location'
          readOnly: true
        rsvps:
          type: array
          items:
            $ref: '#/components/schemas/SemiUser'
          readOnly: true
        registered:
          type: string
          readOnly: true
        checked_in:
          type: string
          readOnly: true
        registrations:
          type: string
          readOnly: true
        registration_count:
          type: string
          readOnly: true
        legacy_id:
          type: string
          nullable: true
        nextgen_legacy_id:
          type: string
          nullable: true
        created_at:
          type: string
          format: date-time
          nullable: true
        updated_at:
          type: string
          format: date-time
          readOnly: true
        public_id:
          type: string
          maxLength: 7
        name:
          type: string
          maxLength: 255
        description:
          type: string
        start_time:
          type: string
          format: date-time
        end_time:
          type: string
          format: date-time
        banner:
          type: string
          nullable: true
          maxLength: 255
        link:
          type: string
          format: uri
          nullable: true
          maxLength: 200
        requires_check_in:
          type: boolean
        requires_registration:
          type: boolean
        is_recurring:
          type: boolean
        is_livestream:
          type: boolean
        recurrence:
          nullable: true
          oneOf:
          - $ref: '#/components/schemas/RecurrenceEnum'
          - $ref: '#/components/schemas/BlankEnum'
          - $ref: '#/components/schemas/NullEnum'
        recurrence_days:
          nullable: true
        recurrence_custom_pattern:
          type: string
          nullable: true
          maxLength: 50
        recurrence_end_date:
          type: string
          format: date
          nullable: true
        images: {}
        location_type:
          type: string
          nullable: true
          maxLength: 50
      required:
      - checked_in
      - description
      - end_time
      - id
      - location
      - name
      - registered
      - registration_count
      - registrations
      - rsvps
      - start_time
      - updated_at
    Form:
      type: object
      properties:
        id:
          type: string
          format: uuid
          readOnly: true
        questions:
          type: array
          items:
            $ref: '#/components/schemas/Question'
        user:
          allOf:
          - $ref: '#/components/schemas/SemiUser'
          readOnly: true
        submission_count:
          type: string
          readOnly: true
        legacy_id:
          type: string
          nullable: true
        nextgen_legacy_id:
          type: string
          nullable: true
        created_at:
          type: string
          format: date-time
          nullable: true
        updated_at:
          type: string
          format: date-time
          readOnly: true
        name:
          type: string
          maxLength: 255
        description:
          type: string
          nullable: true
        banner:
          type: string
          format: uri
          nullable: true
          maxLength: 200
        status:
          $ref: '#/components/schemas/FormStatusEnum'
        type:
          $ref: '#/components/schemas/Type6e5Enum'
        start_date:
          type: string
          format: date
          nullable: true
        end_date:
          type: string
          format: date
          nullable: true
        is_new_here_form:
          type: boolean
        is_plan_a_visit_form:
          type: boolean
        church:
          type: string
          format: uuid
        notify_users:
          type: array
          items:
            type: string
            format: uuid
      required:
      - church
      - id
      - name
      - notify_users
      - submission_count
      - updated_at
      - user
    FormStatusEnum:
      enum:
      - waiting
      - active
      - expired
      - disabled
      type: string
      description: |-
        * `waiting` - Waiting
        * `active` - Active
        * `expired` - Expired
        * `disabled` - Disabled
    GenderDc1Enum:
      enum:
      - male
      - female
      type: string
      description: |-
        * `male` - Male
        * `female` - Female
    GiveMethod:
      type: object
      properties:
        id:
          type: string
          format: uuid
          readOnly: true
        user:
          allOf:
          - $ref: '#/components/schemas/SemiUser'
          readOnly: true
        legacy_id:
          type: string
          nullable: true
        nextgen_legacy_id:
          type: string
          nullable: true
        created_at:
          type: string
          format: date-time
          nullable: true
        updated_at:
          type: string
          format: date-time
          readOnly: true
        name:
          type: string
          maxLength: 100
        details: {}
        church:
          type: string
          format: uuid
      required:
      - church
      - id
      - name
      - updated_at
      - user
    Group:
      type: object
      properties:
        id:
          type: string
          format: uuid
          readOnly: true
        meeting_times:
          type: array
          items:
            $ref: '#/components/schemas/MeetingTime'
        is_member:
          type: string
          readOnly: true
        is_leader:
          type: string
          readOnly: true
        has_pending_request:
          type: string
          readOnly: true
        member_count:
          type: string
          readOnly: true
        leaders:
          type: string
          readOnly: true
        members:
          type: string
          readOnly: true
        pending_request_count:
          type: string
          readOnly: true
        legacy_id:
          type: string
          nullable: true
        nextgen_legacy_id:
          type: string
          nullable: true
        created_at:
          type: string
          format: date-time
          nullable: true
        updated_at:
          type: string
          format: date-time
          readOnly: true
        name:
          type: string
          maxLength: 255
        description:
          type: string
        banner:
          type: string
          format: uri
          nullable: true
          maxLength: 200
        is_follow_up_department:
          type: boolean
      required:
      - description
      - has_pending_request
      - id
      - is_leader
      - is_member
      - leaders
      - meeting_times
      - member_count
      - members
      - name
      - pending_request_count
      - updated_at
    Guest:
      type: object
      properties:
        id:
          type: string
          format: uuid
          readOnly: true
        assigned_user:
          type: string
          format: uuid
          writeOnly: true
        legacy_id:
          type: string
          nullable: true
        nextgen_legacy_id:
          type: string
          nullable: true
        created_at:
          type: string
          format: date-time
          nullable: true
        updated_at:
          type: string
          format: date-time
          readOnly: true
        salutation:
          type: string
          nullable: true
          maxLength: 50
        first_name:
          type: string
          maxLength: 100
        last_name:
          type: string
          maxLength: 100
        full_name:
          type: string
          readOnly: true
          nullable: true
        email:
          type: string
          format: email
          nullable: true
          maxLength: 254
        phone:
          type: string
          nullable: true
        call_time:
          nullable: true
          oneOf:
          - $ref: '#/components/schemas/CallTimeEnum'
          - $ref: '#/components/schemas/BlankEnum'
          - $ref: '#/components/schemas/NullEnum'
        gender:
          nullable: true
          oneOf:
          - $ref: '#/components/schemas/GenderDc1Enum'
          - $ref: '#/components/schemas/BlankEnum'
          - $ref: '#/components/schemas/NullEnum'
        address_1:
          type: string
          nullable: true
        address_2:
          type: string
          nullable: true
        city:
          type: string
          nullable: true
        state:
          type: string
          nullable: true
        zip:
          type: string
          nullable: true
          maxLength: 6
        request:
          type: string
          nullable: true
        invite_type:
          type: string
          nullable: true
        birth_date:
          type: string
          format: date
          nullable: true
        age_group:
          type: string
          nullable: true
        status:
          type: string
          nullable: true
        activity_log:
          nullable: true
        church:
          type: string
          format: uuid
        inviter:
          type: string
          format: uuid
          nullable: true
        user:
          type: string
          format: uuid
          nullable: true
      required:
      - church
      - first_name
      - full_name
      - id
      - last_name
      - updated_at
    Invoice:
      type: object
      properties:
        id:
          type: string
          format: uuid
          readOnly: true
        plan:
          allOf:
          - $ref: '#/components/schemas/Plan'
          readOnly: true
        legacy_id:
          type: string
          nullable: true
        nextgen_legacy_id:
          type: string
          nullable: true
        created_at:
          type: string
          format: date-time
          nullable: true
        updated_at:
          type: string
          format: date-time
          readOnly: true
        invoice_id:
          type: string
          maxLength: 20
        status:
          $ref: '#/components/schemas/StatusE40Enum'
        amount:
          type: string
          format: decimal
          pattern: ^-?\d{0,8}(?:\.\d{0,2})?$
        payment_method:
          type: string
          nullable: true
          maxLength: 100
        billing_date:
          type: string
          format: date
          nullable: true
        paid_at:
          type: string
          format: date-time
          nullable: true
        is_custom:
          type: boolean
        title:
          type: string
          nullable: true
          maxLength: 255
        description:
          type: string
          nullable: true
        stripe_price_id:
          type: string
          nullable: true
        due_date:
          type: string
          format: date
          nullable: true
        service_date:
          type: string
          format: date
          nullable: true
        waive_reason:
          type: string
          nullable: true
          maxLength: 255
        payment_term:
          oneOf:
          - $ref: '#/components/schemas/PaymentTermEnum'
          - $ref: '#/components/schemas/BlankEnum'
        number_of_payments:
          type: integer
          maximum: 2147483647
          minimum: -2147483648
          nullable: true
        number_of_installments:
          type: integer
          maximum: 2147483647
          minimum: -2147483648
          nullable: true
        frequency:
          type: string
          nullable: true
        waived_at:
          type: string
          format: date-time
          nullable: true
      required:
      - amount
      - id
      - invoice_id
      - plan
      - updated_at
    Location:
      type: object
      properties:
        id:
          type: string
          format: uuid
          readOnly: true
        legacy_id:
          type: string
          nullable: true
        nextgen_legacy_id:
          type: string
          nullable: true
        created_at:
          type: string
          format: date-time
          nullable: true
        updated_at:
          type: string
          format: date-time
          readOnly: true
        name:
          type: string
          maxLength: 100
        address_1:
          type: string
        address_2:
          type: string
          nullable: true
        city:
          type: string
        state:
          type: string
        zip:
          type: string
        country:
          type: string
          nullable: true
        is_default:
          type: boolean
        is_main:
          type: boolean
        church:
          type: string
          format: uuid
      required:
      - address_1
      - church
      - city
      - id
      - name
      - state
      - updated_at
      - zip
    ManualContact:
      type: object
      properties:
        first_name:
          type: string
        middle_name:
          type: string
        last_name:
          type: string
        phone:
          type: string
        email:
          type: string
          format: email
      required:
      - email
      - first_name
      - last_name
      - phone
    MaritalStatusEnum:
      enum:
      - married
      - divorced
      - single
      - widowed
      - other
      type: string
      description: |-
        * `married` - Married
        * `divorced` - Divorced
        * `single` - Single
        * `widowed` - Widowed
        * `other` - Other
    MeetingTime:
      type: object
      properties:
        type:
          $ref: '#/components/schemas/MeetingTimeTypeEnum'
        day:
          $ref: '#/components/schemas/DayEnum'
        start_time:
          type: string
          format: time
        end_time:
          type: string
          format: time
      required:
      - day
      - end_time
      - start_time
    MeetingTimeTypeEnum:
      enum:
      - virtual
      - in-person
      type: string
      description: |-
        * `virtual` - virtual
        * `in-person` - in-person
    MembershipType:
      type: object
      properties:
        id:
          type: string
          format: uuid
          readOnly: true
        user_count:
          type: string
          readOnly: true
        legacy_id:
          type: string
          nullable: true
        nextgen_legacy_id:
          type: string
          nullable: true
        created_at:
          type: string
          format: date-time
          nullable: true
        updated_at:
          type: string
          format: date-time
          readOnly: true
        name:
          type: string
        position:
          type: integer
          maximum: 2147483647
          minimum: -2147483648
        church:
          type: string
          format: uuid
      required:
      - church
      - id
      - name
      - updated_at
      - user_count
    MessageTransaction:
      type: object
      properties:
        id:
          type: string
          format: uuid
          readOnly: true
        user:
          allOf:
          - $ref: '#/components/schemas/SemiUser'
          readOnly: true
        recipients:
          type: string
          readOnly: true
        legacy_id:
          type: string
          nullable: true
        nextgen_legacy_id:
          type: string
          nullable: true
        created_at:
          type: string
          format: date-time
          nullable: true
        updated_at:
          type: string
          format: date-time
          readOnly: true
        transaction_id:
          type: integer
          readOnly: true
        credits:
          type: integer
          maximum: 2147483647
          minimum: -2147483648
        valid_recipients_count:
          type: integer
          maximum: 2147483647
          minimum: 0
        invalid_recipients_count:
          type: integer
          maximum: 2147483647
          minimum: 0
        message_content:
          type: string
          nullable: true
        media_urls:
          nullable: true
        voice_url:
          type: string
          format: uri
          nullable: true
          maxLength: 200
        send_at:
          type: string
          format: date-time
          nullable: true
        sender_phone:
          type: string
          nullable: true
          maxLength: 16
        sender_email:
          type: string
          format: email
          nullable: true
          maxLength: 254
        sender_name:
          type: string
          format: email
          nullable: true
          maxLength: 254
        type:
          $ref: '#/components/schemas/TypeDd0Enum'
        status:
          $ref: '#/components/schemas/MessageTransactionStatusEnum'
        message_type:
          $ref: '#/components/schemas/MessageTransactionMessageTypeEnum'
        celery_task_id:
          type: string
          nullable: true
          maxLength: 255
        subject:
          type: string
          nullable: true
          maxLength: 255
        target_page:
          type: string
          nullable: true
          maxLength: 255
        church:
          type: string
          format: uuid
      required:
      - church
      - credits
      - id
      - message_type
      - recipients
      - transaction_id
      - updated_at
      - user
    MessageTransactionMessageTypeEnum:
      enum:
      - personalize_message
      - general_message
      type: string
      description: |-
        * `personalize_message` - Personalize Message
        * `general_message` - General Message
    MessageTransactionStatusEnum:
      enum:
      - scheduled
      - sent
      - failed
      type: string
      description: |-
        * `scheduled` - Scheduled
        * `sent` - Sent
        * `failed` - Failed
    MessagingNumber:
      type: object
      properties:
        id:
          type: string
          format: uuid
          readOnly: true
        legacy_id:
          type: string
          nullable: true
        nextgen_legacy_id:
          type: string
          nullable: true
        created_at:
          type: string
          format: date-time
          nullable: true
        updated_at:
          type: string
          format: date-time
          readOnly: true
        number:
          type: string
          maxLength: 20
        friendly_name:
          type: string
          maxLength: 50
        released_at:
          type: string
          format: date-time
          nullable: true
        restored_at:
          type: string
          format: date-time
          nullable: true
        purchaser:
          type: string
          format: uuid
          nullable: true
        releaser:
          type: string
          format: uuid
          nullable: true
        restorer:
          type: string
          format: uuid
          nullable: true
      required:
      - friendly_name
      - id
      - number
      - updated_at
    Module14eEnum:
      enum:
      - children
      - teenagers
      type: string
      description: |-
        * `children` - Children
        * `teenagers` - Teenagers
    MultiContribution:
      type: object
      properties:
        user_id:
          type: string
          format: uuid
        contributions:
          type: array
          items:
            $ref: '#/components/schemas/Contribution'
        card:
          allOf:
          - $ref: '#/components/schemas/Card'
          writeOnly: true
        church_id:
          type: string
          format: uuid
        about_user:
          $ref: '#/components/schemas/AboutUser'
        cover_transaction_fees:
          type: boolean
          writeOnly: true
          default: false
        start_date:
          type: string
          format: date
        payment_method:
          type: string
        card_token:
          type: string
        cvv:
          type: string
        customer_acceptance:
          $ref: '#/components/schemas/CustomerAcceptance'
        card_details:
          $ref: '#/components/schemas/CardDetails'
        bank_details:
          $ref: '#/components/schemas/BankDetails'
        processor_id:
          type: string
      required:
      - contributions
    Newsletter:
      type: object
      properties:
        id:
          type: string
          format: uuid
          readOnly: true
        legacy_id:
          type: string
          nullable: true
        nextgen_legacy_id:
          type: string
          nullable: true
        created_at:
          type: string
          format: date-time
          nullable: true
        updated_at:
          type: string
          format: date-time
          readOnly: true
        email:
          type: string
          format: email
          maxLength: 254
      required:
      - email
      - id
      - updated_at
    Note:
      type: object
      properties:
        id:
          type: string
          format: uuid
          readOnly: true
        user:
          allOf:
          - $ref: '#/components/schemas/SemiUser'
          readOnly: true
        comments:
          type: string
          readOnly: true
        legacy_id:
          type: string
          nullable: true
        nextgen_legacy_id:
          type: string
          nullable: true
        created_at:
          type: string
          format: date-time
          nullable: true
        updated_at:
          type: string
          format: date-time
          readOnly: true
        title:
          type: string
          maxLength: 250
        body:
          type: string
        color:
          type: string
          nullable: true
          maxLength: 50
        media: {}
        sermon:
          type: string
          format: uuid
          nullable: true
        child:
          type: string
          format: uuid
          nullable: true
      required:
      - body
      - comments
      - id
      - updated_at
      - user
    Notification:
      type: object
      properties:
        id:
          type: string
          format: uuid
          readOnly: true
        legacy_id:
          type: string
          nullable: true
        nextgen_legacy_id:
          type: string
          nullable: true
        created_at:
          type: string
          format: date-time
          nullable: true
        updated_at:
          type: string
          format: date-time
          readOnly: true
        subject:
          type: string
          maxLength: 250
        summary:
          type: string
        body:
          type: string
        banner:
          type: string
          nullable: true
        is_read:
          type: boolean
        user:
          type: string
          format: uuid
          nullable: true
        church:
          type: string
          format: uuid
          nullable: true
      required:
      - body
      - id
      - subject
      - summary
      - updated_at
    NullEnum:
      enum:
      - null
    PackageEnum:
      enum:
      - 1-100
      - 101-300
      - 301-500
      - 501-1000
      - 1001-2500
      - 2501-5000
      - 5001-10000
      - 10000+
      type: string
      description: |-
        * `1-100` - 1-100
        * `101-300` - 101-300
        * `301-500` - 301-500
        * `501-1000` - 501-1000
        * `1001-2500` - 1001-2500
        * `2501-5000` - 2501-5000
        * `5001-10000` - 5001-10000
        * `10000+` - 10000+
    PaginatedAlbumList:
      type: object
      required:
      - count
      - results
      properties:
        count:
          type: integer
          example: 123
        next:
          type: string
          nullable: true
          format: uri
          example: http://api.example.org/accounts/?page=4
        previous:
          type: string
          nullable: true
          format: uri
          example: http://api.example.org/accounts/?page=2
        results:
          type: array
          items:
            $ref: '#/components/schemas/Album'
    PaginatedAppointmentList:
      type: object
      required:
      - count
      - results
      properties:
        count:
          type: integer
          example: 123
        next:
          type: string
          nullable: true
          format: uri
          example: http://api.example.org/accounts/?offset=400&limit=100
        previous:
          type: string
          nullable: true
          format: uri
          example: http://api.example.org/accounts/?offset=200&limit=100
        results:
          type: array
          items:
            $ref: '#/components/schemas/Appointment'
    PaginatedCashAppInfoList:
      type: object
      required:
      - count
      - results
      properties:
        count:
          type: integer
          example: 123
        next:
          type: string
          nullable: true
          format: uri
          example: http://api.example.org/accounts/?offset=400&limit=100
        previous:
          type: string
          nullable: true
          format: uri
          example: http://api.example.org/accounts/?offset=200&limit=100
        results:
          type: array
          items:
            $ref: '#/components/schemas/CashAppInfo'
    PaginatedChildCheckInList:
      type: object
      required:
      - count
      - results
      properties:
        count:
          type: integer
          example: 123
        next:
          type: string
          nullable: true
          format: uri
          example: http://api.example.org/accounts/?page=4
        previous:
          type: string
          nullable: true
          format: uri
          example: http://api.example.org/accounts/?page=2
        results:
          type: array
          items:
            $ref: '#/components/schemas/ChildCheckIn'
    PaginatedChildList:
      type: object
      required:
      - count
      - results
      properties:
        count:
          type: integer
          example: 123
        next:
          type: string
          nullable: true
          format: uri
          example: http://api.example.org/accounts/?page=4
        previous:
          type: string
          nullable: true
          format: uri
          example: http://api.example.org/accounts/?page=2
        results:
          type: array
          items:
            $ref: '#/components/schemas/Child'
    PaginatedChurchList:
      type: object
      required:
      - count
      - results
      properties:
        count:
          type: integer
          example: 123
        next:
          type: string
          nullable: true
          format: uri
          example: http://api.example.org/accounts/?page=4
        previous:
          type: string
          nullable: true
          format: uri
          example: http://api.example.org/accounts/?page=2
        results:
          type: array
          items:
            $ref: '#/components/schemas/Church'
    PaginatedChurchMediaList:
      type: object
      required:
      - count
      - results
      properties:
        count:
          type: integer
          example: 123
        next:
          type: string
          nullable: true
          format: uri
          example: http://api.example.org/accounts/?page=4
        previous:
          type: string
          nullable: true
          format: uri
          example: http://api.example.org/accounts/?page=2
        results:
          type: array
          items:
            $ref: '#/components/schemas/ChurchMedia'
    PaginatedCobaltCreditList:
      type: object
      required:
      - count
      - results
      properties:
        count:
          type: integer
          example: 123
        next:
          type: string
          nullable: true
          format: uri
          example: http://api.example.org/accounts/?offset=400&limit=100
        previous:
          type: string
          nullable: true
          format: uri
          example: http://api.example.org/accounts/?offset=200&limit=100
        results:
          type: array
          items:
            $ref: '#/components/schemas/CobaltCredit'
    PaginatedCobaltInvoiceList:
      type: object
      required:
      - count
      - results
      properties:
        count:
          type: integer
          example: 123
        next:
          type: string
          nullable: true
          format: uri
          example: http://api.example.org/accounts/?offset=400&limit=100
        previous:
          type: string
          nullable: true
          format: uri
          example: http://api.example.org/accounts/?offset=200&limit=100
        results:
          type: array
          items:
            $ref: '#/components/schemas/CobaltInvoice'
    PaginatedCobaltMessageList:
      type: object
      required:
      - count
      - results
      properties:
        count:
          type: integer
          example: 123
        next:
          type: string
          nullable: true
          format: uri
          example: http://api.example.org/accounts/?offset=400&limit=100
        previous:
          type: string
          nullable: true
          format: uri
          example: http://api.example.org/accounts/?offset=200&limit=100
        results:
          type: array
          items:
            $ref: '#/components/schemas/CobaltMessage'
    PaginatedCobaltMessagingNumberList:
      type: object
      required:
      - count
      - results
      properties:
        count:
          type: integer
          example: 123
        next:
          type: string
          nullable: true
          format: uri
          example: http://api.example.org/accounts/?offset=400&limit=100
        previous:
          type: string
          nullable: true
          format: uri
          example: http://api.example.org/accounts/?offset=200&limit=100
        results:
          type: array
          items:
            $ref: '#/components/schemas/CobaltMessagingNumber'
    PaginatedCobaltTemplateList:
      type: object
      required:
      - count
      - results
      properties:
        count:
          type: integer
          example: 123
        next:
          type: string
          nullable: true
          format: uri
          example: http://api.example.org/accounts/?offset=400&limit=100
        previous:
          type: string
          nullable: true
          format: uri
          example: http://api.example.org/accounts/?offset=200&limit=100
        results:
          type: array
          items:
            $ref: '#/components/schemas/CobaltTemplate'
    PaginatedCobaltTicketList:
      type: object
      required:
      - count
      - results
      properties:
        count:
          type: integer
          example: 123
        next:
          type: string
          nullable: true
          format: uri
          example: http://api.example.org/accounts/?offset=400&limit=100
        previous:
          type: string
          nullable: true
          format: uri
          example: http://api.example.org/accounts/?offset=200&limit=100
        results:
          type: array
          items:
            $ref: '#/components/schemas/CobaltTicket'
    PaginatedCobaltUserList:
      type: object
      required:
      - count
      - results
      properties:
        count:
          type: integer
          example: 123
        next:
          type: string
          nullable: true
          format: uri
          example: http://api.example.org/accounts/?offset=400&limit=100
        previous:
          type: string
          nullable: true
          format: uri
          example: http://api.example.org/accounts/?offset=200&limit=100
        results:
          type: array
          items:
            $ref: '#/components/schemas/CobaltUser'
    PaginatedCommentList:
      type: object
      required:
      - count
      - results
      properties:
        count:
          type: integer
          example: 123
        next:
          type: string
          nullable: true
          format: uri
          example: http://api.example.org/accounts/?offset=400&limit=100
        previous:
          type: string
          nullable: true
          format: uri
          example: http://api.example.org/accounts/?offset=200&limit=100
        results:
          type: array
          items:
            $ref: '#/components/schemas/Comment'
    PaginatedContactGroupList:
      type: object
      required:
      - count
      - results
      properties:
        count:
          type: integer
          example: 123
        next:
          type: string
          nullable: true
          format: uri
          example: http://api.example.org/accounts/?page=4
        previous:
          type: string
          nullable: true
          format: uri
          example: http://api.example.org/accounts/?page=2
        results:
          type: array
          items:
            $ref: '#/components/schemas/ContactGroup'
    PaginatedContactList:
      type: object
      required:
      - count
      - results
      properties:
        count:
          type: integer
          example: 123
        next:
          type: string
          nullable: true
          format: uri
          example: http://api.example.org/accounts/?offset=400&limit=100
        previous:
          type: string
          nullable: true
          format: uri
          example: http://api.example.org/accounts/?offset=200&limit=100
        results:
          type: array
          items:
            $ref: '#/components/schemas/Contact'
    PaginatedContactPreferenceList:
      type: object
      required:
      - count
      - results
      properties:
        count:
          type: integer
          example: 123
        next:
          type: string
          nullable: true
          format: uri
          example: http://api.example.org/accounts/?page=4
        previous:
          type: string
          nullable: true
          format: uri
          example: http://api.example.org/accounts/?page=2
        results:
          type: array
          items:
            $ref: '#/components/schemas/ContactPreference'
    PaginatedFormList:
      type: object
      required:
      - count
      - results
      properties:
        count:
          type: integer
          example: 123
        next:
          type: string
          nullable: true
          format: uri
          example: http://api.example.org/accounts/?page=4
        previous:
          type: string
          nullable: true
          format: uri
          example: http://api.example.org/accounts/?page=2
        results:
          type: array
          items:
            $ref: '#/components/schemas/Form'
    PaginatedGiveMethodList:
      type: object
      required:
      - count
      - results
      properties:
        count:
          type: integer
          example: 123
        next:
          type: string
          nullable: true
          format: uri
          example: http://api.example.org/accounts/?offset=400&limit=100
        previous:
          type: string
          nullable: true
          format: uri
          example: http://api.example.org/accounts/?offset=200&limit=100
        results:
          type: array
          items:
            $ref: '#/components/schemas/GiveMethod'
    PaginatedGroupList:
      type: object
      required:
      - count
      - results
      properties:
        count:
          type: integer
          example: 123
        next:
          type: string
          nullable: true
          format: uri
          example: http://api.example.org/accounts/?offset=400&limit=100
        previous:
          type: string
          nullable: true
          format: uri
          example: http://api.example.org/accounts/?offset=200&limit=100
        results:
          type: array
          items:
            $ref: '#/components/schemas/Group'
    PaginatedGuestList:
      type: object
      required:
      - count
      - results
      properties:
        count:
          type: integer
          example: 123
        next:
          type: string
          nullable: true
          format: uri
          example: http://api.example.org/accounts/?page=4
        previous:
          type: string
          nullable: true
          format: uri
          example: http://api.example.org/accounts/?page=2
        results:
          type: array
          items:
            $ref: '#/components/schemas/Guest'
    PaginatedInvoiceList:
      type: object
      required:
      - count
      - results
      properties:
        count:
          type: integer
          example: 123
        next:
          type: string
          nullable: true
          format: uri
          example: http://api.example.org/accounts/?offset=400&limit=100
        previous:
          type: string
          nullable: true
          format: uri
          example: http://api.example.org/accounts/?offset=200&limit=100
        results:
          type: array
          items:
            $ref: '#/components/schemas/Invoice'
    PaginatedLocationList:
      type: object
      required:
      - count
      - results
      properties:
        count:
          type: integer
          example: 123
        next:
          type: string
          nullable: true
          format: uri
          example: http://api.example.org/accounts/?offset=400&limit=100
        previous:
          type: string
          nullable: true
          format: uri
          example: http://api.example.org/accounts/?offset=200&limit=100
        results:
          type: array
          items:
            $ref: '#/components/schemas/Location'
    PaginatedMessageTransactionList:
      type: object
      required:
      - count
      - results
      properties:
        count:
          type: integer
          example: 123
        next:
          type: string
          nullable: true
          format: uri
          example: http://api.example.org/accounts/?page=4
        previous:
          type: string
          nullable: true
          format: uri
          example: http://api.example.org/accounts/?page=2
        results:
          type: array
          items:
            $ref: '#/components/schemas/MessageTransaction'
    PaginatedMultiContributionList:
      type: object
      required:
      - count
      - results
      properties:
        count:
          type: integer
          example: 123
        next:
          type: string
          nullable: true
          format: uri
          example: http://api.example.org/accounts/?page=4
        previous:
          type: string
          nullable: true
          format: uri
          example: http://api.example.org/accounts/?page=2
        results:
          type: array
          items:
            $ref: '#/components/schemas/MultiContribution'
    PaginatedNewsletterList:
      type: object
      required:
      - count
      - results
      properties:
        count:
          type: integer
          example: 123
        next:
          type: string
          nullable: true
          format: uri
          example: http://api.example.org/accounts/?offset=400&limit=100
        previous:
          type: string
          nullable: true
          format: uri
          example: http://api.example.org/accounts/?offset=200&limit=100
        results:
          type: array
          items:
            $ref: '#/components/schemas/Newsletter'
    PaginatedNoteList:
      type: object
      required:
      - count
      - results
      properties:
        count:
          type: integer
          example: 123
        next:
          type: string
          nullable: true
          format: uri
          example: http://api.example.org/accounts/?offset=400&limit=100
        previous:
          type: string
          nullable: true
          format: uri
          example: http://api.example.org/accounts/?offset=200&limit=100
        results:
          type: array
          items:
            $ref: '#/components/schemas/Note'
    PaginatedPaymentOptionsList:
      type: object
      required:
      - count
      - results
      properties:
        count:
          type: integer
          example: 123
        next:
          type: string
          nullable: true
          format: uri
          example: http://api.example.org/accounts/?offset=400&limit=100
        previous:
          type: string
          nullable: true
          format: uri
          example: http://api.example.org/accounts/?offset=200&limit=100
        results:
          type: array
          items:
            $ref: '#/components/schemas/PaymentOptions'
    PaginatedPlaylistList:
      type: object
      required:
      - count
      - results
      properties:
        count:
          type: integer
          example: 123
        next:
          type: string
          nullable: true
          format: uri
          example: http://api.example.org/accounts/?page=4
        previous:
          type: string
          nullable: true
          format: uri
          example: http://api.example.org/accounts/?page=2
        results:
          type: array
          items:
            $ref: '#/components/schemas/Playlist'
    PaginatedPodcastList:
      type: object
      required:
      - count
      - results
      properties:
        count:
          type: integer
          example: 123
        next:
          type: string
          nullable: true
          format: uri
          example: http://api.example.org/accounts/?page=4
        previous:
          type: string
          nullable: true
          format: uri
          example: http://api.example.org/accounts/?page=2
        results:
          type: array
          items:
            $ref: '#/components/schemas/Podcast'
    PaginatedPrayerRequestList:
      type: object
      required:
      - count
      - results
      properties:
        count:
          type: integer
          example: 123
        next:
          type: string
          nullable: true
          format: uri
          example: http://api.example.org/accounts/?page=4
        previous:
          type: string
          nullable: true
          format: uri
          example: http://api.example.org/accounts/?page=2
        results:
          type: array
          items:
            $ref: '#/components/schemas/PrayerRequest'
    PaginatedSermonList:
      type: object
      required:
      - count
      - results
      properties:
        count:
          type: integer
          example: 123
        next:
          type: string
          nullable: true
          format: uri
          example: http://api.example.org/accounts/?page=4
        previous:
          type: string
          nullable: true
          format: uri
          example: http://api.example.org/accounts/?page=2
        results:
          type: array
          items:
            $ref: '#/components/schemas/Sermon'
    PaginatedSmartKeywordHitList:
      type: object
      required:
      - count
      - results
      properties:
        count:
          type: integer
          example: 123
        next:
          type: string
          nullable: true
          format: uri
          example: http://api.example.org/accounts/?page=4
        previous:
          type: string
          nullable: true
          format: uri
          example: http://api.example.org/accounts/?page=2
        results:
          type: array
          items:
            $ref: '#/components/schemas/SmartKeywordHit'
    PaginatedSmartKeywordList:
      type: object
      required:
      - count
      - results
      properties:
        count:
          type: integer
          example: 123
        next:
          type: string
          nullable: true
          format: uri
          example: http://api.example.org/accounts/?page=4
        previous:
          type: string
          nullable: true
          format: uri
          example: http://api.example.org/accounts/?page=2
        results:
          type: array
          items:
            $ref: '#/components/schemas/SmartKeyword'
    PaginatedSubmissionList:
      type: object
      required:
      - count
      - results
      properties:
        count:
          type: integer
          example: 123
        next:
          type: string
          nullable: true
          format: uri
          example: http://api.example.org/accounts/?page=4
        previous:
          type: string
          nullable: true
          format: uri
          example: http://api.example.org/accounts/?page=2
        results:
          type: array
          items:
            $ref: '#/components/schemas/Submission'
    PaginatedTemplateList:
      type: object
      required:
      - count
      - results
      properties:
        count:
          type: integer
          example: 123
        next:
          type: string
          nullable: true
          format: uri
          example: http://api.example.org/accounts/?offset=400&limit=100
        previous:
          type: string
          nullable: true
          format: uri
          example: http://api.example.org/accounts/?offset=200&limit=100
        results:
          type: array
          items:
            $ref: '#/components/schemas/Template'
    PaginatedTestimonyList:
      type: object
      required:
      - count
      - results
      properties:
        count:
          type: integer
          example: 123
        next:
          type: string
          nullable: true
          format: uri
          example: http://api.example.org/accounts/?page=4
        previous:
          type: string
          nullable: true
          format: uri
          example: http://api.example.org/accounts/?page=2
        results:
          type: array
          items:
            $ref: '#/components/schemas/Testimony'
    PaginatedTicketList:
      type: object
      required:
      - count
      - results
      properties:
        count:
          type: integer
          example: 123
        next:
          type: string
          nullable: true
          format: uri
          example: http://api.example.org/accounts/?page=4
        previous:
          type: string
          nullable: true
          format: uri
          example: http://api.example.org/accounts/?page=2
        results:
          type: array
          items:
            $ref: '#/components/schemas/Ticket'
    PaginatedUserDeviceList:
      type: object
      required:
      - count
      - results
      properties:
        count:
          type: integer
          example: 123
        next:
          type: string
          nullable: true
          format: uri
          example: http://api.example.org/accounts/?offset=400&limit=100
        previous:
          type: string
          nullable: true
          format: uri
          example: http://api.example.org/accounts/?offset=200&limit=100
        results:
          type: array
          items:
            $ref: '#/components/schemas/UserDevice'
    PaginatedUserList:
      type: object
      required:
      - count
      - results
      properties:
        count:
          type: integer
          example: 123
        next:
          type: string
          nullable: true
          format: uri
          example: http://api.example.org/accounts/?page=4
        previous:
          type: string
          nullable: true
          format: uri
          example: http://api.example.org/accounts/?page=2
        results:
          type: array
          items:
            $ref: '#/components/schemas/User'
    PatchedAlbum:
      type: object
      properties:
        id:
          type: string
          format: uuid
          readOnly: true
        podcasts:
          type: array
          items:
            type: string
            format: uuid
        speakers:
          type: array
          items:
            type: string
            format: uuid
        podcast_count:
          type: string
          readOnly: true
        legacy_id:
          type: string
          nullable: true
        nextgen_legacy_id:
          type: string
          nullable: true
        created_at:
          type: string
          format: date-time
          nullable: true
        updated_at:
          type: string
          format: date-time
          readOnly: true
        name:
          type: string
          maxLength: 255
        description:
          type: string
          nullable: true
        banner:
          type: string
          nullable: true
        frequency:
          type: string
          nullable: true
          maxLength: 255
    PatchedAppointment:
      type: object
      properties:
        id:
          type: string
          format: uuid
          readOnly: true
        user:
          allOf:
          - $ref: '#/components/schemas/SemiUser'
          readOnly: true
        leader:
          allOf:
          - $ref: '#/components/schemas/SemiUser'
          readOnly: true
        legacy_id:
          type: string
          nullable: true
        nextgen_legacy_id:
          type: string
          nullable: true
        created_at:
          type: string
          format: date-time
          nullable: true
        updated_at:
          type: string
          format: date-time
          readOnly: true
        date:
          type: string
          format: date
        time:
          type: string
          format: time
        type:
          type: string
        status:
          $ref: '#/components/schemas/AppointmentStatusEnum'
        church:
          type: string
          format: uuid
    PatchedBundle:
      type: object
      properties:
        id:
          type: string
          format: uuid
          readOnly: true
        legacy_id:
          type: string
          nullable: true
        nextgen_legacy_id:
          type: string
          nullable: true
        created_at:
          type: string
          format: date-time
          nullable: true
        updated_at:
          type: string
          format: date-time
          readOnly: true
        name:
          type: string
          maxLength: 255
        credit_amount:
          type: integer
          maximum: 2147483647
          minimum: -2147483648
        free_credit_percentage:
          type: integer
          maximum: 2147483647
          minimum: -2147483648
        price:
          type: integer
          maximum: 2147483647
          minimum: -2147483648
        stripe_product_id:
          type: string
          nullable: true
          maxLength: 255
        stripe_price_id:
          type: string
          nullable: true
          maxLength: 255
    PatchedCard:
      type: object
      properties:
        id:
          type: string
          format: uuid
          readOnly: true
        user:
          type: string
          format: uuid
          writeOnly: true
        last4:
          type: string
          readOnly: true
        legacy_id:
          type: string
          nullable: true
        nextgen_legacy_id:
          type: string
          nullable: true
        created_at:
          type: string
          format: date-time
          nullable: true
        updated_at:
          type: string
          format: date-time
          readOnly: true
        number:
          type: string
          maxLength: 30
        cvv:
          type: string
          nullable: true
          maxLength: 4
        expiration_month:
          type: string
          maxLength: 2
        expiration_year:
          type: string
          maxLength: 4
        holder_name:
          type: string
          maxLength: 100
        is_default:
          type: boolean
        token:
          type: string
          nullable: true
          maxLength: 50
        brand:
          type: string
          nullable: true
          maxLength: 50
        type:
          $ref: '#/components/schemas/CardTypeEnum'
        is_hidden:
          type: boolean
        processor:
          type: string
          nullable: true
          maxLength: 50
        guest:
          type: string
          format: uuid
          nullable: true
    PatchedCashAppInfo:
      type: object
      properties:
        id:
          type: string
          format: uuid
          readOnly: true
        legacy_id:
          type: string
          nullable: true
        nextgen_legacy_id:
          type: string
          nullable: true
        created_at:
          type: string
          format: date-time
          nullable: true
        updated_at:
          type: string
          format: date-time
          readOnly: true
        cash_app_id:
          type: string
          maxLength: 255
        name:
          type: string
          maxLength: 255
        email:
          type: string
          maxLength: 255
        telephone:
          type: string
          maxLength: 255
        church:
          type: string
          format: uuid
    PatchedChild:
      type: object
      properties:
        id:
          type: string
          format: uuid
          readOnly: true
        allergies:
          type: array
          items: {}
        age:
          type: string
          readOnly: true
        parents:
          type: string
          readOnly: true
        category:
          allOf:
          - $ref: '#/components/schemas/ChildCategory'
          readOnly: true
        legacy_id:
          type: string
          nullable: true
        nextgen_legacy_id:
          type: string
          nullable: true
        created_at:
          type: string
          format: date-time
          nullable: true
        updated_at:
          type: string
          format: date-time
          readOnly: true
        first_name:
          type: string
          maxLength: 50
        middle_name:
          type: string
          nullable: true
          maxLength: 50
        last_name:
          type: string
          maxLength: 50
        full_name:
          type: string
          readOnly: true
          nullable: true
        avatar:
          type: string
          nullable: true
          maxLength: 255
        cover:
          type: string
          nullable: true
          maxLength: 255
        birth_date:
          type: string
          format: date
          nullable: true
        favorite_color:
          type: string
          nullable: true
          maxLength: 50
        gender:
          nullable: true
          oneOf:
          - $ref: '#/components/schemas/GenderDc1Enum'
          - $ref: '#/components/schemas/BlankEnum'
          - $ref: '#/components/schemas/NullEnum'
        school:
          type: string
          nullable: true
          maxLength: 255
        is_checked_in:
          type: boolean
        check_in_code:
          type: string
          nullable: true
        church:
          type: string
          format: uuid
          nullable: true
    PatchedChildCategory:
      type: object
      properties:
        id:
          type: string
          format: uuid
          readOnly: true
        teachers:
          type: array
          items:
            type: string
            format: uuid
          readOnly: true
        age_range:
          type: string
          readOnly: true
        legacy_id:
          type: string
          nullable: true
        nextgen_legacy_id:
          type: string
          nullable: true
        created_at:
          type: string
          format: date-time
          nullable: true
        updated_at:
          type: string
          format: date-time
          readOnly: true
        name:
          type: string
        start_year:
          type: integer
          maximum: 2147483647
          minimum: -2147483648
        end_year:
          type: integer
          maximum: 2147483647
          minimum: -2147483648
        start_month:
          type: integer
          maximum: 2147483647
          minimum: -2147483648
        end_month:
          type: integer
          maximum: 2147483647
          minimum: -2147483648
        module:
          $ref: '#/components/schemas/Module14eEnum'
        church:
          type: string
          format: uuid
    PatchedChildCheckIn:
      type: object
      properties:
        id:
          type: string
          format: uuid
          readOnly: true
        child:
          allOf:
          - $ref: '#/components/schemas/Child'
          readOnly: true
        category:
          allOf:
          - $ref: '#/components/schemas/ChildCategory'
          readOnly: true
        checked_in_by:
          allOf:
          - $ref: '#/components/schemas/SemiUser'
          readOnly: true
        checked_out_by:
          allOf:
          - $ref: '#/components/schemas/SemiUser'
          readOnly: true
        legacy_id:
          type: string
          nullable: true
        nextgen_legacy_id:
          type: string
          nullable: true
        created_at:
          type: string
          format: date-time
          nullable: true
        updated_at:
          type: string
          format: date-time
          readOnly: true
        checked_out_at:
          type: string
          format: date-time
          nullable: true
        check_in_source:
          type: string
          nullable: true
          maxLength: 255
        check_out_source:
          type: string
          nullable: true
          maxLength: 255
        module:
          $ref: '#/components/schemas/Module14eEnum'
        child_received:
          type: boolean
        church:
          type: string
          format: uuid
          nullable: true
    PatchedChurch:
      type: object
      properties:
        id:
          type: string
          format: uuid
          readOnly: true
        plan:
          allOf:
          - $ref: '#/components/schemas/Plan'
          readOnly: true
        prayer_request_reviewers:
          type: string
          readOnly: true
        testimony_reviewers:
          type: string
          readOnly: true
        locations:
          type: array
          items:
            $ref: '#/components/schemas/Location'
        follow_up_managers:
          type: string
          readOnly: true
        follow_up_department:
          type: string
          readOnly: true
        give_methods:
          type: array
          items:
            $ref: '#/components/schemas/GiveMethod'
        messaging_numbers:
          type: array
          items:
            $ref: '#/components/schemas/MessagingNumber'
        fee:
          type: string
          readOnly: true
        stripe_public_key:
          type: string
          readOnly: true
        failed_invoice_payment:
          type: string
          readOnly: true
        template_variables:
          type: string
          readOnly: true
        user_count:
          type: string
          readOnly: true
        free_trial_days_left:
          type: string
          readOnly: true
        legacy_id:
          type: string
          nullable: true
        nextgen_legacy_id:
          type: string
          nullable: true
        created_at:
          type: string
          format: date-time
          nullable: true
        updated_at:
          type: string
          format: date-time
          readOnly: true
        name:
          type: string
          maxLength: 100
        email:
          type: string
          format: email
          maxLength: 254
        phone:
          type: string
        short_code:
          type: string
          nullable: true
        website:
          type: string
          format: uri
          nullable: true
          maxLength: 200
        timezone:
          type: string
          nullable: true
          maxLength: 3
        currency:
          type: string
          maxLength: 3
        url:
          type: string
          format: uri
          maxLength: 200
        address_1:
          type: string
          nullable: true
        address_2:
          type: string
          nullable: true
        city:
          type: string
          nullable: true
        state:
          type: string
          nullable: true
        zip:
          type: string
          nullable: true
        country:
          type: string
          nullable: true
        country_code:
          type: string
          nullable: true
        socials:
          nullable: true
        celebration_types:
          nullable: true
        package:
          $ref: '#/components/schemas/PackageEnum'
        default_processor:
          nullable: true
          oneOf:
          - $ref: '#/components/schemas/DefaultProcessorEnum'
          - $ref: '#/components/schemas/BlankEnum'
          - $ref: '#/components/schemas/NullEnum'
        processors: {}
        processor_status: {}
        prayer_request_restriction:
          type: boolean
        prayer_request_push_notifications:
          type: boolean
        prayer_request_push_notification_subject:
          type: string
        prayer_request_push_notification_body:
          type: string
        testimony_restriction:
          type: boolean
        testimony_push_notifications:
          type: boolean
        testimony_push_notification_subject:
          type: string
        testimony_push_notification_body:
          type: string
        child_maximum_age:
          type: integer
          maximum: 2147483647
          minimum: -2147483648
        teenager_maximum_age:
          type: integer
          maximum: 2147483647
          minimum: -2147483648
        portal_logo:
          type: string
          nullable: true
        mobile_logo:
          type: string
          nullable: true
        landing_logo:
          type: string
          nullable: true
        statement_logo:
          type: string
          nullable: true
        primary_color:
          type: string
          nullable: true
          maxLength: 100
        secondary_color:
          type: string
          nullable: true
          maxLength: 100
        dark_mode_color:
          type: string
          nullable: true
          maxLength: 100
        youtube_channel_id:
          type: string
          nullable: true
        testimony_story_lifetime:
          type: integer
          maximum: 2147483647
          minimum: -2147483648
        enable_give_module_on_landing_page:
          type: boolean
        enable_check_in_module_on_landing_page:
          type: boolean
        enable_rsvp_module_on_landing_page:
          type: boolean
        rsvp_label:
          type: string
          nullable: true
          maxLength: 100
        enable_livestream_module_on_landing_page:
          type: boolean
        user_portal_default_theme_is_dark:
          type: boolean
        admin_portal_default_theme_is_dark:
          type: boolean
        mobile_portal_default_theme_is_dark:
          type: boolean
        allow_users_switch_theme:
          type: boolean
        allow_users_change_session_duration:
          type: boolean
        allow_geo_based_check_in:
          type: boolean
        pastor_name:
          type: string
          nullable: true
          maxLength: 100
        pastor_title:
          type: string
          nullable: true
          maxLength: 100
        pastor_hub_app_code:
          type: string
          nullable: true
          maxLength: 100
        pastor_phone:
          type: string
          nullable: true
          maxLength: 100
        allow_users_set_spouse:
          type: boolean
        allow_users_unset_spouse:
          type: boolean
        allow_users_with_same_envelope_id:
          type: boolean
        maximum_number_users_with_same_envelope_id:
          type: integer
          maximum: 2147483647
          minimum: -2147483648
        house_fellowship_name_label:
          type: string
          nullable: true
          maxLength: 100
        house_fellowship_zone_label:
          type: string
          nullable: true
          maxLength: 100
        house_fellowship_district_label:
          type: string
          nullable: true
          maxLength: 100
        auto_response_text_message:
          type: string
          nullable: true
        auto_response_text_message_updated_at:
          type: string
          format: date-time
          nullable: true
        subscribe_text_message:
          type: string
          nullable: true
        subscribe_text_message_updated_at:
          type: string
          format: date-time
          nullable: true
        unsubscribe_text_message:
          type: string
          nullable: true
        unsubscribe_text_message_updated_at:
          type: string
          format: date-time
          nullable: true
        credit_total:
          type: integer
          maximum: 2147483647
          minimum: -2147483648
        child_badge_printing:
          type: boolean
        child_sms_check_in_notifications:
          type: boolean
        child_email_check_in_notifications:
          type: boolean
        child_push_notification_check_in_notifications:
          type: boolean
        child_receive_feature:
          type: boolean
        child_mobile_app_check_in:
          type: boolean
        child_drop_off_time:
          type: integer
          maximum: 2147483647
          minimum: -2147483648
        child_cancel_check_in:
          type: integer
          maximum: 2147483647
          minimum: -2147483648
        child_kids_app_code:
          type: string
          nullable: true
          maxLength: 100
        teenager_badge_printing:
          type: boolean
        teenager_sms_check_in_notifications:
          type: boolean
        teenager_email_check_in_notifications:
          type: boolean
        teenager_push_notification_check_in_notifications:
          type: boolean
        teenager_receive_feature:
          type: boolean
        teenager_mobile_app_check_in:
          type: boolean
        teenager_drop_off_time:
          type: integer
          maximum: 2147483647
          minimum: -2147483648
        teenager_cancel_check_in:
          type: integer
          maximum: 2147483647
          minimum: -2147483648
        teenager_kids_app_code:
          type: string
          nullable: true
          maxLength: 100
        follow_up_reminder_time:
          type: integer
          maximum: 2147483647
          minimum: -2147483648
        allow_testimony_sharing:
          type: boolean
        allow_testimony_sharing_to_others:
          type: boolean
        contribution_statement_duration:
          type: integer
          maximum: 2147483647
          minimum: -2147483648
        contribution_update_window:
          type: integer
          maximum: 2147483647
          minimum: -2147483648
        allow_contribution_type_change:
          type: boolean
        contribution_notification_users: {}
        contribution_minimum_amount:
          type: integer
          maximum: 2147483647
          minimum: -2147483648
        contribution_maximum_amount:
          type: integer
          maximum: 2147483647
          minimum: -2147483648
        cycle:
          $ref: '#/components/schemas/CycleEnum'
        android_app_url:
          type: string
          nullable: true
          maxLength: 255
        ios_app_url:
          type: string
          nullable: true
          maxLength: 255
        app_onboarding_screens: {}
        app_name:
          type: string
          nullable: true
          maxLength: 100
        has_app:
          type: boolean
        auto_deduct:
          type: boolean
        stripe_customer_id:
          type: string
          nullable: true
          maxLength: 100
        quick_actions:
          nullable: true
        explore_modules:
          nullable: true
        external_links:
          nullable: true
        status:
          $ref: '#/components/schemas/ChurchStatusEnum'
        enable_give_module:
          type: boolean
        enable_unified_communications_module:
          type: boolean
    PatchedChurchMedia:
      type: object
      properties:
        id:
          type: string
          format: uuid
          readOnly: true
        legacy_id:
          type: string
          nullable: true
        nextgen_legacy_id:
          type: string
          nullable: true
        created_at:
          type: string
          format: date-time
          readOnly: true
          nullable: true
        updated_at:
          type: string
          format: date-time
          readOnly: true
        name:
          type: string
          maxLength: 100
        thumbnail:
          type: string
          format: uri
          nullable: true
          maxLength: 100
        url:
          type: string
          format: uri
          maxLength: 200
        size:
          type: integer
          maximum: 9223372036854775807
          minimum: -9223372036854775808
          format: int64
        duration:
          type: string
          format: decimal
          pattern: ^-?\d{0,6}(?:\.\d{0,2})?$
        type:
          $ref: '#/components/schemas/ChurchMediaTypeEnum'
        church:
          type: string
          format: uuid
          readOnly: true
    PatchedCobaltCredit:
      type: object
      properties:
        id:
          type: string
          format: uuid
          readOnly: true
        church_id:
          type: string
          format: uuid
          writeOnly: true
        church:
          allOf:
          - $ref: '#/components/schemas/CobaltSemiChurch'
          readOnly: true
        added_by:
          allOf:
          - $ref: '#/components/schemas/CobaltSemiUser'
          readOnly: true
        legacy_id:
          type: string
          nullable: true
        nextgen_legacy_id:
          type: string
          nullable: true
        created_at:
          type: string
          format: date-time
          nullable: true
        updated_at:
          type: string
          format: date-time
          readOnly: true
        amount:
          type: string
          format: decimal
          pattern: ^-?\d{0,8}(?:\.\d{0,2})?$
        comment:
          type: string
          nullable: true
        current_credits:
          type: integer
          maximum: 2147483647
          minimum: -2147483648
        total_credits:
          type: integer
          maximum: 2147483647
          minimum: -2147483648
    PatchedCobaltInvoice:
      type: object
      properties:
        id:
          type: string
          format: uuid
          readOnly: true
        plan:
          allOf:
          - $ref: '#/components/schemas/Plan'
          readOnly: true
        church:
          allOf:
          - $ref: '#/components/schemas/CobaltSemiChurch'
          readOnly: true
        waiver:
          type: string
          readOnly: true
        church_id:
          type: string
          format: uuid
          writeOnly: true
        legacy_id:
          type: string
          nullable: true
        nextgen_legacy_id:
          type: string
          nullable: true
        created_at:
          type: string
          format: date-time
          nullable: true
        updated_at:
          type: string
          format: date-time
          readOnly: true
        invoice_id:
          type: string
          maxLength: 20
        status:
          $ref: '#/components/schemas/StatusE40Enum'
        amount:
          type: string
          format: decimal
          pattern: ^-?\d{0,8}(?:\.\d{0,2})?$
        payment_method:
          type: string
          nullable: true
          maxLength: 100
        billing_date:
          type: string
          format: date
          nullable: true
        stripe_payment_intent_id:
          type: string
          nullable: true
        metadata: {}
        paid_at:
          type: string
          format: date-time
          nullable: true
        is_custom:
          type: boolean
        title:
          type: string
          nullable: true
          maxLength: 255
        description:
          type: string
          nullable: true
        stripe_price_id:
          type: string
          nullable: true
        due_date:
          type: string
          format: date
          nullable: true
        service_date:
          type: string
          format: date
          nullable: true
        waive_reason:
          type: string
          nullable: true
          maxLength: 255
        payment_term:
          oneOf:
          - $ref: '#/components/schemas/PaymentTermEnum'
          - $ref: '#/components/schemas/BlankEnum'
        number_of_payments:
          type: integer
          maximum: 2147483647
          minimum: -2147483648
          nullable: true
        number_of_installments:
          type: integer
          maximum: 2147483647
          minimum: -2147483648
          nullable: true
        frequency:
          type: string
          nullable: true
        waived_at:
          type: string
          format: date-time
          nullable: true
    PatchedCobaltMessage:
      type: object
      properties:
        id:
          type: string
          format: uuid
          readOnly: true
        cobalt_user:
          allOf:
          - $ref: '#/components/schemas/CobaltSemiUser'
          readOnly: true
        is_read:
          type: string
          readOnly: true
        legacy_id:
          type: string
          nullable: true
        nextgen_legacy_id:
          type: string
          nullable: true
        created_at:
          type: string
          format: date-time
          nullable: true
        updated_at:
          type: string
          format: date-time
          readOnly: true
        sender_email:
          type: string
          format: email
          nullable: true
          maxLength: 254
        sender_name:
          type: string
          nullable: true
        reply_email:
          type: string
          format: email
          nullable: true
          maxLength: 254
        reply_name:
          type: string
          format: email
          nullable: true
          maxLength: 254
        mail_subject:
          type: string
          nullable: true
          maxLength: 255
        subject:
          type: string
          nullable: true
          maxLength: 255
        body:
          type: string
          nullable: true
        target: {}
        type:
          $ref: '#/components/schemas/TypeDd0Enum'
        cobalt_template:
          type: string
          format: uuid
          nullable: true
    PatchedCobaltMessagingNumber:
      type: object
      properties:
        id:
          type: string
          format: uuid
          readOnly: true
        church:
          allOf:
          - $ref: '#/components/schemas/CobaltSemiChurch'
          readOnly: true
        releaser:
          allOf:
          - $ref: '#/components/schemas/CobaltSemiUser'
          readOnly: true
        restorer:
          allOf:
          - $ref: '#/components/schemas/CobaltSemiUser'
          readOnly: true
        purchaser:
          type: string
          readOnly: true
        days_left:
          type: string
          readOnly: true
        legacy_id:
          type: string
          nullable: true
        nextgen_legacy_id:
          type: string
          nullable: true
        created_at:
          type: string
          format: date-time
          nullable: true
        updated_at:
          type: string
          format: date-time
          readOnly: true
        number:
          type: string
          maxLength: 20
        friendly_name:
          type: string
          maxLength: 50
        sid:
          type: string
          maxLength: 100
        released_at:
          type: string
          format: date-time
          nullable: true
        restored_at:
          type: string
          format: date-time
          nullable: true
    PatchedCobaltTemplate:
      type: object
      properties:
        id:
          type: string
          format: uuid
          readOnly: true
        cobalt_user:
          allOf:
          - $ref: '#/components/schemas/CobaltSemiUser'
          readOnly: true
        legacy_id:
          type: string
          nullable: true
        nextgen_legacy_id:
          type: string
          nullable: true
        created_at:
          type: string
          format: date-time
          nullable: true
        updated_at:
          type: string
          format: date-time
          readOnly: true
        name:
          type: string
          maxLength: 255
        mail_subject:
          type: string
          nullable: true
          maxLength: 255
        subject:
          type: string
          nullable: true
          maxLength: 255
        body:
          type: string
          nullable: true
        description:
          type: string
          nullable: true
    PatchedCobaltTicket:
      type: object
      properties:
        id:
          type: string
          format: uuid
          readOnly: true
        user:
          allOf:
          - $ref: '#/components/schemas/SemiUser'
          readOnly: true
        cobalt_user:
          allOf:
          - $ref: '#/components/schemas/CobaltSemiUser'
          readOnly: true
        assignee:
          allOf:
          - $ref: '#/components/schemas/CobaltSemiUser'
          readOnly: true
        church:
          allOf:
          - $ref: '#/components/schemas/CobaltSemiChurch'
          readOnly: true
        legacy_id:
          type: string
          nullable: true
        nextgen_legacy_id:
          type: string
          nullable: true
        created_at:
          type: string
          format: date-time
          nullable: true
        updated_at:
          type: string
          format: date-time
          readOnly: true
        ticket_id:
          type: integer
          maximum: 2147483647
          minimum: -2147483648
          nullable: true
        type:
          type: string
          maxLength: 100
        priority:
          type: string
          maxLength: 100
        description:
          type: string
        status:
          $ref: '#/components/schemas/Status846Enum'
        change_log: {}
        closed_at:
          type: string
          format: date-time
          nullable: true
        deleted_at:
          type: string
          format: date-time
          nullable: true
        media: {}
    PatchedCobaltUser:
      type: object
      properties:
        id:
          type: string
          format: uuid
          readOnly: true
        latest_activities:
          type: string
          readOnly: true
        last_login:
          type: string
          format: date-time
          nullable: true
        is_active:
          type: boolean
          title: Active
          description: Designates whether this user should be treated as active. Unselect
            this instead of deleting accounts.
        first_name:
          type: string
          maxLength: 255
        middle_name:
          type: string
          nullable: true
          maxLength: 255
        last_name:
          type: string
          maxLength: 255
        full_name:
          type: string
          readOnly: true
          nullable: true
        avatar:
          type: string
          nullable: true
          maxLength: 255
        email:
          type: string
          format: email
          maxLength: 254
        phone:
          type: string
          nullable: true
          maxLength: 255
        created_at:
          type: string
          format: date-time
          readOnly: true
        updated_at:
          type: string
          format: date-time
          readOnly: true
        gender:
          type: string
          nullable: true
          maxLength: 255
    PatchedComment:
      type: object
      properties:
        id:
          type: string
          format: uuid
          readOnly: true
        user:
          allOf:
          - $ref: '#/components/schemas/SemiUser'
          readOnly: true
        legacy_id:
          type: string
          nullable: true
        nextgen_legacy_id:
          type: string
          nullable: true
        created_at:
          type: string
          format: date-time
          nullable: true
        updated_at:
          type: string
          format: date-time
          readOnly: true
        content:
          type: string
          maxLength: 500
        media: {}
        prayer_request:
          type: string
          format: uuid
          nullable: true
        testimony:
          type: string
          format: uuid
          nullable: true
        note:
          type: string
          format: uuid
          nullable: true
    PatchedContact:
      type: object
      properties:
        id:
          type: string
          format: uuid
          readOnly: true
        legacy_id:
          type: string
          nullable: true
        nextgen_legacy_id:
          type: string
          nullable: true
        created_at:
          type: string
          format: date-time
          readOnly: true
          nullable: true
        updated_at:
          type: string
          format: date-time
          readOnly: true
        first_name:
          type: string
          maxLength: 50
        middle_name:
          type: string
          nullable: true
          maxLength: 50
        last_name:
          type: string
          maxLength: 50
        phone:
          type: string
          maxLength: 15
        email:
          type: string
          format: email
          maxLength: 254
        avatar:
          type: string
          format: uri
          nullable: true
          maxLength: 200
        is_manual:
          type: boolean
    PatchedContactGroup:
      type: object
      properties:
        id:
          type: string
          format: uuid
          readOnly: true
        user_ids:
          type: array
          items:
            type: string
            format: uuid
        manual_contacts:
          type: array
          items:
            $ref: '#/components/schemas/ManualContact'
        contacts:
          type: array
          items:
            $ref: '#/components/schemas/Contact'
          readOnly: true
        legacy_id:
          type: string
          nullable: true
        nextgen_legacy_id:
          type: string
          nullable: true
        created_at:
          type: string
          format: date-time
          nullable: true
        updated_at:
          type: string
          format: date-time
          readOnly: true
        name:
          type: string
          maxLength: 100
        thumbnail:
          type: string
          format: uri
          nullable: true
          maxLength: 200
        church:
          type: string
          format: uuid
    PatchedContactPreference:
      type: object
      properties:
        id:
          type: string
          format: uuid
          readOnly: true
        user:
          allOf:
          - $ref: '#/components/schemas/SemiUser'
          readOnly: true
        legacy_id:
          type: string
          nullable: true
        nextgen_legacy_id:
          type: string
          nullable: true
        created_at:
          type: string
          format: date-time
          nullable: true
        updated_at:
          type: string
          format: date-time
          readOnly: true
        contact:
          type: string
          maxLength: 255
        reason:
          type: string
          nullable: true
          description: Reason for the restriction.
        country:
          type: string
          nullable: true
          maxLength: 255
        do_not_text:
          type: boolean
        do_not_call:
          type: boolean
        do_not_email:
          type: boolean
    PatchedContributionType:
      type: object
      properties:
        id:
          type: string
          format: uuid
          readOnly: true
        contribution_count:
          type: string
          readOnly: true
        user:
          allOf:
          - $ref: '#/components/schemas/SemiUser'
          readOnly: true
        legacy_id:
          type: string
          nullable: true
        nextgen_legacy_id:
          type: string
          nullable: true
        created_at:
          type: string
          format: date-time
          nullable: true
        updated_at:
          type: string
          format: date-time
          readOnly: true
        name:
          type: string
          maxLength: 255
        description:
          type: string
          nullable: true
        code:
          type: string
          nullable: true
          maxLength: 255
        church:
          type: string
          format: uuid
    PatchedEmergencyContact:
      type: object
      properties:
        id:
          type: string
          format: uuid
          readOnly: true
        legacy_id:
          type: string
          nullable: true
        nextgen_legacy_id:
          type: string
          nullable: true
        created_at:
          type: string
          format: date-time
          nullable: true
        updated_at:
          type: string
          format: date-time
          readOnly: true
        first_name:
          type: string
          maxLength: 50
        middle_name:
          type: string
          nullable: true
          maxLength: 50
        last_name:
          type: string
          maxLength: 50
        phone:
          type: string
        email:
          type: string
          format: email
          maxLength: 254
        relationship:
          type: string
          maxLength: 50
    PatchedEvent:
      type: object
      properties:
        id:
          type: string
          format: uuid
          readOnly: true
        location:
          allOf:
          - $ref: '#/components/schemas/Location'
          readOnly: true
        rsvps:
          type: array
          items:
            $ref: '#/components/schemas/SemiUser'
          readOnly: true
        registered:
          type: string
          readOnly: true
        checked_in:
          type: string
          readOnly: true
        registrations:
          type: string
          readOnly: true
        registration_count:
          type: string
          readOnly: true
        legacy_id:
          type: string
          nullable: true
        nextgen_legacy_id:
          type: string
          nullable: true
        created_at:
          type: string
          format: date-time
          nullable: true
        updated_at:
          type: string
          format: date-time
          readOnly: true
        public_id:
          type: string
          maxLength: 7
        name:
          type: string
          maxLength: 255
        description:
          type: string
        start_time:
          type: string
          format: date-time
        end_time:
          type: string
          format: date-time
        banner:
          type: string
          nullable: true
          maxLength: 255
        link:
          type: string
          format: uri
          nullable: true
          maxLength: 200
        requires_check_in:
          type: boolean
        requires_registration:
          type: boolean
        is_recurring:
          type: boolean
        is_livestream:
          type: boolean
        recurrence:
          nullable: true
          oneOf:
          - $ref: '#/components/schemas/RecurrenceEnum'
          - $ref: '#/components/schemas/BlankEnum'
          - $ref: '#/components/schemas/NullEnum'
        recurrence_days:
          nullable: true
        recurrence_custom_pattern:
          type: string
          nullable: true
          maxLength: 50
        recurrence_end_date:
          type: string
          format: date
          nullable: true
        images: {}
        location_type:
          type: string
          nullable: true
          maxLength: 50
    PatchedForm:
      type: object
      properties:
        id:
          type: string
          format: uuid
          readOnly: true
        questions:
          type: array
          items:
            $ref: '#/components/schemas/Question'
        user:
          allOf:
          - $ref: '#/components/schemas/SemiUser'
          readOnly: true
        submission_count:
          type: string
          readOnly: true
        legacy_id:
          type: string
          nullable: true
        nextgen_legacy_id:
          type: string
          nullable: true
        created_at:
          type: string
          format: date-time
          nullable: true
        updated_at:
          type: string
          format: date-time
          readOnly: true
        name:
          type: string
          maxLength: 255
        description:
          type: string
          nullable: true
        banner:
          type: string
          format: uri
          nullable: true
          maxLength: 200
        status:
          $ref: '#/components/schemas/FormStatusEnum'
        type:
          $ref: '#/components/schemas/Type6e5Enum'
        start_date:
          type: string
          format: date
          nullable: true
        end_date:
          type: string
          format: date
          nullable: true
        is_new_here_form:
          type: boolean
        is_plan_a_visit_form:
          type: boolean
        church:
          type: string
          format: uuid
        notify_users:
          type: array
          items:
            type: string
            format: uuid
    PatchedGiveMethod:
      type: object
      properties:
        id:
          type: string
          format: uuid
          readOnly: true
        user:
          allOf:
          - $ref: '#/components/schemas/SemiUser'
          readOnly: true
        legacy_id:
          type: string
          nullable: true
        nextgen_legacy_id:
          type: string
          nullable: true
        created_at:
          type: string
          format: date-time
          nullable: true
        updated_at:
          type: string
          format: date-time
          readOnly: true
        name:
          type: string
          maxLength: 100
        details: {}
        church:
          type: string
          format: uuid
    PatchedGroup:
      type: object
      properties:
        id:
          type: string
          format: uuid
          readOnly: true
        meeting_times:
          type: array
          items:
            $ref: '#/components/schemas/MeetingTime'
        is_member:
          type: string
          readOnly: true
        is_leader:
          type: string
          readOnly: true
        has_pending_request:
          type: string
          readOnly: true
        member_count:
          type: string
          readOnly: true
        leaders:
          type: string
          readOnly: true
        members:
          type: string
          readOnly: true
        pending_request_count:
          type: string
          readOnly: true
        legacy_id:
          type: string
          nullable: true
        nextgen_legacy_id:
          type: string
          nullable: true
        created_at:
          type: string
          format: date-time
          nullable: true
        updated_at:
          type: string
          format: date-time
          readOnly: true
        name:
          type: string
          maxLength: 255
        description:
          type: string
        banner:
          type: string
          format: uri
          nullable: true
          maxLength: 200
        is_follow_up_department:
          type: boolean
    PatchedGuest:
      type: object
      properties:
        id:
          type: string
          format: uuid
          readOnly: true
        assigned_user:
          type: string
          format: uuid
          writeOnly: true
        legacy_id:
          type: string
          nullable: true
        nextgen_legacy_id:
          type: string
          nullable: true
        created_at:
          type: string
          format: date-time
          nullable: true
        updated_at:
          type: string
          format: date-time
          readOnly: true
        salutation:
          type: string
          nullable: true
          maxLength: 50
        first_name:
          type: string
          maxLength: 100
        last_name:
          type: string
          maxLength: 100
        full_name:
          type: string
          readOnly: true
          nullable: true
        email:
          type: string
          format: email
          nullable: true
          maxLength: 254
        phone:
          type: string
          nullable: true
        call_time:
          nullable: true
          oneOf:
          - $ref: '#/components/schemas/CallTimeEnum'
          - $ref: '#/components/schemas/BlankEnum'
          - $ref: '#/components/schemas/NullEnum'
        gender:
          nullable: true
          oneOf:
          - $ref: '#/components/schemas/GenderDc1Enum'
          - $ref: '#/components/schemas/BlankEnum'
          - $ref: '#/components/schemas/NullEnum'
        address_1:
          type: string
          nullable: true
        address_2:
          type: string
          nullable: true
        city:
          type: string
          nullable: true
        state:
          type: string
          nullable: true
        zip:
          type: string
          nullable: true
          maxLength: 6
        request:
          type: string
          nullable: true
        invite_type:
          type: string
          nullable: true
        birth_date:
          type: string
          format: date
          nullable: true
        age_group:
          type: string
          nullable: true
        status:
          type: string
          nullable: true
        activity_log:
          nullable: true
        church:
          type: string
          format: uuid
        inviter:
          type: string
          format: uuid
          nullable: true
        user:
          type: string
          format: uuid
          nullable: true
    PatchedInvoice:
      type: object
      properties:
        id:
          type: string
          format: uuid
          readOnly: true
        plan:
          allOf:
          - $ref: '#/components/schemas/Plan'
          readOnly: true
        legacy_id:
          type: string
          nullable: true
        nextgen_legacy_id:
          type: string
          nullable: true
        created_at:
          type: string
          format: date-time
          nullable: true
        updated_at:
          type: string
          format: date-time
          readOnly: true
        invoice_id:
          type: string
          maxLength: 20
        status:
          $ref: '#/components/schemas/StatusE40Enum'
        amount:
          type: string
          format: decimal
          pattern: ^-?\d{0,8}(?:\.\d{0,2})?$
        payment_method:
          type: string
          nullable: true
          maxLength: 100
        billing_date:
          type: string
          format: date
          nullable: true
        paid_at:
          type: string
          format: date-time
          nullable: true
        is_custom:
          type: boolean
        title:
          type: string
          nullable: true
          maxLength: 255
        description:
          type: string
          nullable: true
        stripe_price_id:
          type: string
          nullable: true
        due_date:
          type: string
          format: date
          nullable: true
        service_date:
          type: string
          format: date
          nullable: true
        waive_reason:
          type: string
          nullable: true
          maxLength: 255
        payment_term:
          oneOf:
          - $ref: '#/components/schemas/PaymentTermEnum'
          - $ref: '#/components/schemas/BlankEnum'
        number_of_payments:
          type: integer
          maximum: 2147483647
          minimum: -2147483648
          nullable: true
        number_of_installments:
          type: integer
          maximum: 2147483647
          minimum: -2147483648
          nullable: true
        frequency:
          type: string
          nullable: true
        waived_at:
          type: string
          format: date-time
          nullable: true
    PatchedLocation:
      type: object
      properties:
        id:
          type: string
          format: uuid
          readOnly: true
        legacy_id:
          type: string
          nullable: true
        nextgen_legacy_id:
          type: string
          nullable: true
        created_at:
          type: string
          format: date-time
          nullable: true
        updated_at:
          type: string
          format: date-time
          readOnly: true
        name:
          type: string
          maxLength: 100
        address_1:
          type: string
        address_2:
          type: string
          nullable: true
        city:
          type: string
        state:
          type: string
        zip:
          type: string
        country:
          type: string
          nullable: true
        is_default:
          type: boolean
        is_main:
          type: boolean
        church:
          type: string
          format: uuid
    PatchedMembershipType:
      type: object
      properties:
        id:
          type: string
          format: uuid
          readOnly: true
        user_count:
          type: string
          readOnly: true
        legacy_id:
          type: string
          nullable: true
        nextgen_legacy_id:
          type: string
          nullable: true
        created_at:
          type: string
          format: date-time
          nullable: true
        updated_at:
          type: string
          format: date-time
          readOnly: true
        name:
          type: string
        position:
          type: integer
          maximum: 2147483647
          minimum: -2147483648
        church:
          type: string
          format: uuid
    PatchedMessageTransaction:
      type: object
      properties:
        id:
          type: string
          format: uuid
          readOnly: true
        user:
          allOf:
          - $ref: '#/components/schemas/SemiUser'
          readOnly: true
        recipients:
          type: string
          readOnly: true
        legacy_id:
          type: string
          nullable: true
        nextgen_legacy_id:
          type: string
          nullable: true
        created_at:
          type: string
          format: date-time
          nullable: true
        updated_at:
          type: string
          format: date-time
          readOnly: true
        transaction_id:
          type: integer
          readOnly: true
        credits:
          type: integer
          maximum: 2147483647
          minimum: -2147483648
        valid_recipients_count:
          type: integer
          maximum: 2147483647
          minimum: 0
        invalid_recipients_count:
          type: integer
          maximum: 2147483647
          minimum: 0
        message_content:
          type: string
          nullable: true
        media_urls:
          nullable: true
        voice_url:
          type: string
          format: uri
          nullable: true
          maxLength: 200
        send_at:
          type: string
          format: date-time
          nullable: true
        sender_phone:
          type: string
          nullable: true
          maxLength: 16
        sender_email:
          type: string
          format: email
          nullable: true
          maxLength: 254
        sender_name:
          type: string
          format: email
          nullable: true
          maxLength: 254
        type:
          $ref: '#/components/schemas/TypeDd0Enum'
        status:
          $ref: '#/components/schemas/MessageTransactionStatusEnum'
        message_type:
          $ref: '#/components/schemas/MessageTransactionMessageTypeEnum'
        celery_task_id:
          type: string
          nullable: true
          maxLength: 255
        subject:
          type: string
          nullable: true
          maxLength: 255
        target_page:
          type: string
          nullable: true
          maxLength: 255
        church:
          type: string
          format: uuid
    PatchedMultiContribution:
      type: object
      properties:
        user_id:
          type: string
          format: uuid
        contributions:
          type: array
          items:
            $ref: '#/components/schemas/Contribution'
        card:
          allOf:
          - $ref: '#/components/schemas/Card'
          writeOnly: true
        church_id:
          type: string
          format: uuid
        about_user:
          $ref: '#/components/schemas/AboutUser'
        cover_transaction_fees:
          type: boolean
          writeOnly: true
          default: false
        start_date:
          type: string
          format: date
        payment_method:
          type: string
        card_token:
          type: string
        cvv:
          type: string
        customer_acceptance:
          $ref: '#/components/schemas/CustomerAcceptance'
        card_details:
          $ref: '#/components/schemas/CardDetails'
        bank_details:
          $ref: '#/components/schemas/BankDetails'
        processor_id:
          type: string
    PatchedNewsletter:
      type: object
      properties:
        id:
          type: string
          format: uuid
          readOnly: true
        legacy_id:
          type: string
          nullable: true
        nextgen_legacy_id:
          type: string
          nullable: true
        created_at:
          type: string
          format: date-time
          nullable: true
        updated_at:
          type: string
          format: date-time
          readOnly: true
        email:
          type: string
          format: email
          maxLength: 254
    PatchedNote:
      type: object
      properties:
        id:
          type: string
          format: uuid
          readOnly: true
        user:
          allOf:
          - $ref: '#/components/schemas/SemiUser'
          readOnly: true
        comments:
          type: string
          readOnly: true
        legacy_id:
          type: string
          nullable: true
        nextgen_legacy_id:
          type: string
          nullable: true
        created_at:
          type: string
          format: date-time
          nullable: true
        updated_at:
          type: string
          format: date-time
          readOnly: true
        title:
          type: string
          maxLength: 250
        body:
          type: string
        color:
          type: string
          nullable: true
          maxLength: 50
        media: {}
        sermon:
          type: string
          format: uuid
          nullable: true
        child:
          type: string
          format: uuid
          nullable: true
    PatchedPaymentMethod:
      type: object
      properties:
        id:
          type: string
          format: uuid
          readOnly: true
        legacy_id:
          type: string
          nullable: true
        nextgen_legacy_id:
          type: string
          nullable: true
        created_at:
          type: string
          format: date-time
          nullable: true
        updated_at:
          type: string
          format: date-time
          readOnly: true
        bank_name:
          type: string
          nullable: true
          maxLength: 100
        routing_number:
          type: string
          nullable: true
          maxLength: 100
        number:
          type: string
          nullable: true
          maxLength: 100
        expiration_month:
          type: string
          nullable: true
          maxLength: 2
        expiration_year:
          type: string
          nullable: true
          maxLength: 4
        holder_name:
          type: string
          nullable: true
          maxLength: 100
        is_default:
          type: boolean
        type:
          $ref: '#/components/schemas/PaymentMethodTypeEnum'
        brand:
          type: string
          nullable: true
          maxLength: 50
    PatchedPaymentOptions:
      type: object
      properties:
        payment_method:
          type: string
    PatchedPlan:
      type: object
      properties:
        id:
          type: string
          format: uuid
          readOnly: true
        name:
          type: string
          maxLength: 100
        description:
          type: string
        monthly_free_credits:
          type: integer
          maximum: 2147483647
          minimum: -2147483648
        perks: {}
        prices: {}
    PatchedPlaylist:
      type: object
      properties:
        id:
          type: string
          format: uuid
          readOnly: true
        sermons:
          type: array
          items:
            type: string
            format: uuid
        sermon_count:
          type: string
          readOnly: true
        podcasts:
          type: array
          items:
            type: string
            format: uuid
        podcast_count:
          type: string
          readOnly: true
        legacy_id:
          type: string
          nullable: true
        nextgen_legacy_id:
          type: string
          nullable: true
        created_at:
          type: string
          format: date-time
          nullable: true
        updated_at:
          type: string
          format: date-time
          readOnly: true
        name:
          type: string
          maxLength: 255
        description:
          type: string
          nullable: true
        banner:
          type: string
          nullable: true
        youtube_id:
          type: string
          nullable: true
          description: ID of the YouTube playlist
          maxLength: 50
        last_synced_at:
          type: string
          format: date-time
          nullable: true
          description: Last sync date with YouTube
        module:
          $ref: '#/components/schemas/PlaylistModuleEnum'
        church:
          type: string
          format: uuid
    PatchedPodcast:
      type: object
      properties:
        id:
          type: string
          format: uuid
          readOnly: true
        speaker:
          type: string
          format: uuid
        categories:
          type: array
          items:
            type: string
            format: uuid
        play_count:
          type: string
          readOnly: true
        last_played_at:
          type: string
          readOnly: true
        position:
          type: string
          readOnly: true
        legacy_id:
          type: string
          nullable: true
        nextgen_legacy_id:
          type: string
          nullable: true
        created_at:
          type: string
          format: date-time
          nullable: true
        updated_at:
          type: string
          format: date-time
          readOnly: true
        name:
          type: string
          maxLength: 255
        url:
          type: string
          format: uri
          nullable: true
          maxLength: 255
        description:
          type: string
          nullable: true
        banner:
          type: string
          nullable: true
        duration:
          type: integer
          maximum: 2147483647
          minimum: 0
        published_at:
          type: string
          format: date-time
          nullable: true
        album:
          type: string
          format: uuid
          nullable: true
    PatchedPodcastCategory:
      type: object
      properties:
        id:
          type: string
          format: uuid
          readOnly: true
        podcast_count:
          type: string
          readOnly: true
        legacy_id:
          type: string
          nullable: true
        nextgen_legacy_id:
          type: string
          nullable: true
        created_at:
          type: string
          format: date-time
          nullable: true
        updated_at:
          type: string
          format: date-time
          readOnly: true
        name:
          type: string
        description:
          type: string
          nullable: true
        church:
          type: string
          format: uuid
    PatchedPrayerRequest:
      type: object
      properties:
        id:
          type: string
          format: uuid
          readOnly: true
        additional_prayer_request_fields:
          type: string
          readOnly: true
        legacy_id:
          type: string
          nullable: true
        nextgen_legacy_id:
          type: string
          nullable: true
        created_at:
          type: string
          format: date-time
          nullable: true
        updated_at:
          type: string
          format: date-time
          readOnly: true
        content:
          type: string
        is_answered:
          type: boolean
        is_archived:
          type: boolean
        is_anonymous:
          type: boolean
        status:
          $ref: '#/components/schemas/Status638Enum'
        media: {}
        reason:
          type: string
          nullable: true
        church:
          type: string
          format: uuid
          nullable: true
    PatchedPrayerRequestCategory:
      type: object
      properties:
        id:
          type: string
          format: uuid
          readOnly: true
        prayer_request_count:
          type: string
          readOnly: true
        user:
          allOf:
          - $ref: '#/components/schemas/SemiUser'
          readOnly: true
        legacy_id:
          type: string
          nullable: true
        nextgen_legacy_id:
          type: string
          nullable: true
        created_at:
          type: string
          format: date-time
          nullable: true
        updated_at:
          type: string
          format: date-time
          readOnly: true
        name:
          type: string
        church:
          type: string
          format: uuid
    PatchedProfile:
      type: object
      properties:
        id:
          type: string
          readOnly: true
        available_times:
          type: array
          items:
            $ref: '#/components/schemas/MeetingTime'
        additional_profile_fields:
          type: string
          readOnly: true
        birth_date:
          type: string
          nullable: true
        wedding_anniversary:
          type: string
          nullable: true
        first_name:
          type: string
          maxLength: 50
        middle_name:
          type: string
          nullable: true
          maxLength: 50
        last_name:
          type: string
          maxLength: 50
        full_name:
          type: string
          readOnly: true
          nullable: true
        avatar:
          type: string
          nullable: true
          maxLength: 255
        job_title:
          type: string
          nullable: true
          maxLength: 100
        salutation:
          type: string
          nullable: true
          maxLength: 50
        positions: {}
        gender:
          nullable: true
          oneOf:
          - $ref: '#/components/schemas/GenderDc1Enum'
          - $ref: '#/components/schemas/BlankEnum'
          - $ref: '#/components/schemas/NullEnum'
        marital_status:
          nullable: true
          oneOf:
          - $ref: '#/components/schemas/MaritalStatusEnum'
          - $ref: '#/components/schemas/BlankEnum'
          - $ref: '#/components/schemas/NullEnum'
        employment_status:
          type: string
          nullable: true
          maxLength: 50
        employment_industry:
          type: string
          nullable: true
        address_1:
          type: string
          nullable: true
        address_2:
          type: string
          nullable: true
        city:
          type: string
          nullable: true
        state:
          type: string
          nullable: true
        country:
          type: string
          nullable: true
        zip:
          type: string
          nullable: true
        cover_photo:
          type: string
          format: uri
          nullable: true
          maxLength: 256
        is_teacher:
          type: boolean
        has_email_notifications_for_information:
          type: boolean
        has_email_notifications_for_confirmation:
          type: boolean
        has_email_notifications_for_warnings:
          type: boolean
        has_push_notifications_for_information:
          type: boolean
        has_push_notifications_for_confirmation:
          type: boolean
        has_push_notifications_for_warnings:
          type: boolean
        is_testimony_reviewer:
          type: boolean
        is_prayer_request_reviewer:
          type: boolean
        is_leader:
          type: boolean
        is_follow_up_manager:
          type: boolean
        is_follow_up_member:
          type: boolean
        about:
          type: string
          nullable: true
        note:
          type: string
          nullable: true
        envelope_id:
          type: string
          nullable: true
        is_speaker:
          type: boolean
        is_developer:
          type: boolean
        baptism:
          type: boolean
        nationality:
          type: string
          nullable: true
          maxLength: 50
        age_group:
          type: string
          nullable: true
          maxLength: 50
        hobbies: {}
        allergies: {}
        medications: {}
        medical_condition:
          type: string
          nullable: true
        password_updated_at:
          type: string
          format: date-time
          nullable: true
        session_timeout:
          type: integer
          maximum: 2147483647
          minimum: -2147483648
          nullable: true
        created_at:
          type: string
          format: date-time
          nullable: true
        updated_at:
          type: string
          format: date-time
          readOnly: true
        spouse:
          type: string
          format: uuid
          nullable: true
    PatchedSermon:
      type: object
      properties:
        id:
          type: string
          format: uuid
          readOnly: true
        speakers:
          type: array
          items:
            type: string
            format: uuid
        position:
          type: string
          readOnly: true
        legacy_id:
          type: string
          nullable: true
        nextgen_legacy_id:
          type: string
          nullable: true
        created_at:
          type: string
          format: date-time
          nullable: true
        updated_at:
          type: string
          format: date-time
          readOnly: true
        name:
          type: string
          maxLength: 255
        url:
          type: string
          format: uri
          nullable: true
          maxLength: 255
        description:
          type: string
          nullable: true
        banner:
          type: string
          nullable: true
        views:
          type: integer
          maximum: 2147483647
          minimum: 0
        source:
          $ref: '#/components/schemas/SermonSourceEnum'
        is_featured:
          type: boolean
        youtube_id:
          type: string
          nullable: true
          description: ID of the YouTube video
          maxLength: 50
        statistics:
          nullable: true
        type:
          type: string
          nullable: true
          maxLength: 255
        is_livestream:
          type: boolean
        scheduled_start:
          type: string
          format: date-time
          nullable: true
        visibility:
          type: string
          nullable: true
          maxLength: 255
    PatchedSmartKeyword:
      type: object
      properties:
        id:
          type: string
          format: uuid
          readOnly: true
        hit_count:
          type: string
          readOnly: true
        hits:
          type: string
          readOnly: true
        notify_users_display:
          type: array
          items:
            $ref: '#/components/schemas/SemiUser'
          readOnly: true
        legacy_id:
          type: string
          nullable: true
        nextgen_legacy_id:
          type: string
          nullable: true
        created_at:
          type: string
          format: date-time
          nullable: true
        updated_at:
          type: string
          format: date-time
          readOnly: true
        keyword:
          type: string
          description: The word or phrase that triggers this keyword.
          maxLength: 50
        description:
          type: string
          description: The reply text for this keyword.
        credits_deducted_per_hit:
          type: integer
          maximum: 2147483647
          minimum: 0
          description: The number of credits deducted from the church for each hit.
        message_type:
          $ref: '#/components/schemas/SmartKeywordMessageTypeEnum'
        status:
          $ref: '#/components/schemas/SmartKeywordStatusEnum'
        media_url:
          type: string
          format: uri
          nullable: true
          maxLength: 200
        notify_users:
          type: array
          items:
            type: string
            format: uuid
          description: Users to be notified when this keyword is triggered.
    PatchedSmartKeywordHit:
      type: object
      properties:
        id:
          type: string
          format: uuid
          readOnly: true
        user:
          allOf:
          - $ref: '#/components/schemas/SemiUser'
          readOnly: true
        legacy_id:
          type: string
          nullable: true
        nextgen_legacy_id:
          type: string
          nullable: true
        created_at:
          type: string
          format: date-time
          nullable: true
        updated_at:
          type: string
          format: date-time
          readOnly: true
        sender_phone:
          type: string
          description: The phone number that triggered the keyword.
          maxLength: 15
        hit_at:
          type: string
          format: date-time
          readOnly: true
        smart_keyword:
          type: string
          format: uuid
    PatchedStory:
      type: object
      properties:
        id:
          type: string
          format: uuid
          readOnly: true
        additional_story_fields:
          type: string
          readOnly: true
        legacy_id:
          type: string
          nullable: true
        nextgen_legacy_id:
          type: string
          nullable: true
        created_at:
          type: string
          format: date-time
          nullable: true
        updated_at:
          type: string
          format: date-time
          readOnly: true
        caption:
          type: string
          nullable: true
          maxLength: 500
        color:
          type: string
          nullable: true
        is_anonymous:
          type: boolean
        status:
          $ref: '#/components/schemas/Status638Enum'
        media: {}
        reason:
          type: string
          nullable: true
        church:
          type: string
          format: uuid
          nullable: true
    PatchedSubmission:
      type: object
      properties:
        id:
          type: string
          format: uuid
          readOnly: true
        answers:
          type: array
          items:
            $ref: '#/components/schemas/Answer'
        user:
          allOf:
          - $ref: '#/components/schemas/SemiUser'
          readOnly: true
        form:
          type: string
          format: uuid
        church:
          type: string
          format: uuid
          readOnly: true
        legacy_id:
          type: string
          nullable: true
        nextgen_legacy_id:
          type: string
          nullable: true
        created_at:
          type: string
          format: date-time
          nullable: true
        updated_at:
          type: string
          format: date-time
          readOnly: true
        source:
          nullable: true
          oneOf:
          - $ref: '#/components/schemas/Source6e5Enum'
          - $ref: '#/components/schemas/BlankEnum'
          - $ref: '#/components/schemas/NullEnum'
    PatchedTemplate:
      type: object
      properties:
        id:
          type: string
          format: uuid
          readOnly: true
        user:
          allOf:
          - $ref: '#/components/schemas/SemiUser'
          readOnly: true
        legacy_id:
          type: string
          nullable: true
        nextgen_legacy_id:
          type: string
          nullable: true
        created_at:
          type: string
          format: date-time
          nullable: true
        updated_at:
          type: string
          format: date-time
          readOnly: true
        name:
          type: string
          maxLength: 100
        sender_name:
          type: string
          nullable: true
          maxLength: 100
        sender_email:
          type: string
          format: email
          nullable: true
          maxLength: 254
        subject:
          type: string
          maxLength: 255
        content:
          type: string
        type:
          $ref: '#/components/schemas/TemplateTypeEnum'
        is_automated:
          type: boolean
        celebration_type:
          type: string
          nullable: true
          maxLength: 100
        send_at:
          type: string
          format: time
          nullable: true
        media:
          nullable: true
        voice_url:
          type: string
          format: uri
          nullable: true
          maxLength: 200
        church:
          type: string
          format: uuid
    PatchedTestimony:
      type: object
      properties:
        id:
          type: string
          format: uuid
          readOnly: true
        additional_testimony_fields:
          type: string
          readOnly: true
        legacy_id:
          type: string
          nullable: true
        nextgen_legacy_id:
          type: string
          nullable: true
        created_at:
          type: string
          format: date-time
          nullable: true
        updated_at:
          type: string
          format: date-time
          readOnly: true
        content:
          type: string
        is_archived:
          type: boolean
        is_anonymous:
          type: boolean
        status:
          $ref: '#/components/schemas/Status638Enum'
        media: {}
        reason:
          type: string
          nullable: true
        church:
          type: string
          format: uuid
          nullable: true
    PatchedTestimonyCategory:
      type: object
      properties:
        id:
          type: string
          format: uuid
          readOnly: true
        testimony_count:
          type: string
          readOnly: true
        user:
          allOf:
          - $ref: '#/components/schemas/SemiUser'
          readOnly: true
        legacy_id:
          type: string
          nullable: true
        nextgen_legacy_id:
          type: string
          nullable: true
        created_at:
          type: string
          format: date-time
          nullable: true
        updated_at:
          type: string
          format: date-time
          readOnly: true
        name:
          type: string
        church:
          type: string
          format: uuid
    PatchedTicket:
      type: object
      properties:
        id:
          type: string
          format: uuid
          readOnly: true
        user:
          allOf:
          - $ref: '#/components/schemas/SemiUser'
          readOnly: true
        legacy_id:
          type: string
          nullable: true
        nextgen_legacy_id:
          type: string
          nullable: true
        created_at:
          type: string
          format: date-time
          nullable: true
        updated_at:
          type: string
          format: date-time
          readOnly: true
        ticket_id:
          type: integer
          maximum: 2147483647
          minimum: -2147483648
          nullable: true
        type:
          type: string
          maxLength: 100
        priority:
          type: string
          maxLength: 100
        description:
          type: string
        status:
          $ref: '#/components/schemas/Status846Enum'
        change_log: {}
        closed_at:
          type: string
          format: date-time
          nullable: true
        deleted_at:
          type: string
          format: date-time
          nullable: true
        media: {}
        church:
          type: string
          format: uuid
    PatchedUser:
      type: object
      properties:
        id:
          type: string
          format: uuid
          readOnly: true
        profile:
          type: string
          readOnly: true
        additional_user_fields:
          type: string
          readOnly: true
        last_login:
          type: string
          format: date-time
          nullable: true
        email:
          type: string
          format: email
          maxLength: 254
        phone:
          type: string
        role:
          $ref: '#/components/schemas/RoleEnum'
        has_2fa:
          type: boolean
        is_deleted:
          type: boolean
        deleted_at:
          type: string
          format: date-time
          nullable: true
        permissions: {}
        login_attempts:
          type: integer
          maximum: 2147483647
          minimum: -2147483648
        api_key:
          type: string
          nullable: true
          maxLength: 64
        legacy_id:
          type: string
          nullable: true
        nextgen_legacy_id:
          type: string
          nullable: true
        church:
          type: string
          format: uuid
    PatchedUserDevice:
      type: object
      properties:
        id:
          type: string
          format: uuid
          readOnly: true
        device_id:
          type: string
          maxLength: 255
        user_id:
          type: string
          format: uuid
          writeOnly: true
        user:
          allOf:
          - $ref: '#/components/schemas/SemiUser'
          readOnly: true
        created_at:
          type: string
          format: date-time
          nullable: true
    PaymentMethod:
      type: object
      properties:
        id:
          type: string
          format: uuid
          readOnly: true
        legacy_id:
          type: string
          nullable: true
        nextgen_legacy_id:
          type: string
          nullable: true
        created_at:
          type: string
          format: date-time
          nullable: true
        updated_at:
          type: string
          format: date-time
          readOnly: true
        bank_name:
          type: string
          nullable: true
          maxLength: 100
        routing_number:
          type: string
          nullable: true
          maxLength: 100
        number:
          type: string
          nullable: true
          maxLength: 100
        expiration_month:
          type: string
          nullable: true
          maxLength: 2
        expiration_year:
          type: string
          nullable: true
          maxLength: 4
        holder_name:
          type: string
          nullable: true
          maxLength: 100
        is_default:
          type: boolean
        type:
          $ref: '#/components/schemas/PaymentMethodTypeEnum'
        brand:
          type: string
          nullable: true
          maxLength: 50
      required:
      - id
      - updated_at
    PaymentMethodTypeEnum:
      enum:
      - card
      - bank
      type: string
      description: |-
        * `card` - Card
        * `bank` - Bank
    PaymentOptions:
      type: object
      properties:
        payment_method:
          type: string
    PaymentTermEnum:
      enum:
      - one-time
      - installment
      type: string
      description: |-
        * `one-time` - One-time
        * `installment` - Installment
    Plan:
      type: object
      properties:
        id:
          type: string
          format: uuid
          readOnly: true
        name:
          type: string
          maxLength: 100
        description:
          type: string
        monthly_free_credits:
          type: integer
          maximum: 2147483647
          minimum: -2147483648
        perks: {}
        prices: {}
      required:
      - description
      - id
      - name
    Playlist:
      type: object
      properties:
        id:
          type: string
          format: uuid
          readOnly: true
        sermons:
          type: array
          items:
            type: string
            format: uuid
        sermon_count:
          type: string
          readOnly: true
        podcasts:
          type: array
          items:
            type: string
            format: uuid
        podcast_count:
          type: string
          readOnly: true
        legacy_id:
          type: string
          nullable: true
        nextgen_legacy_id:
          type: string
          nullable: true
        created_at:
          type: string
          format: date-time
          nullable: true
        updated_at:
          type: string
          format: date-time
          readOnly: true
        name:
          type: string
          maxLength: 255
        description:
          type: string
          nullable: true
        banner:
          type: string
          nullable: true
        youtube_id:
          type: string
          nullable: true
          description: ID of the YouTube playlist
          maxLength: 50
        last_synced_at:
          type: string
          format: date-time
          nullable: true
          description: Last sync date with YouTube
        module:
          $ref: '#/components/schemas/PlaylistModuleEnum'
        church:
          type: string
          format: uuid
      required:
      - church
      - id
      - name
      - podcast_count
      - sermon_count
      - updated_at
    PlaylistModuleEnum:
      enum:
      - podcast
      - sermon
      type: string
      description: |-
        * `podcast` - Podcast
        * `sermon` - Sermon
    Podcast:
      type: object
      properties:
        id:
          type: string
          format: uuid
          readOnly: true
        speaker:
          type: string
          format: uuid
        categories:
          type: array
          items:
            type: string
            format: uuid
        play_count:
          type: string
          readOnly: true
        last_played_at:
          type: string
          readOnly: true
        position:
          type: string
          readOnly: true
        legacy_id:
          type: string
          nullable: true
        nextgen_legacy_id:
          type: string
          nullable: true
        created_at:
          type: string
          format: date-time
          nullable: true
        updated_at:
          type: string
          format: date-time
          readOnly: true
        name:
          type: string
          maxLength: 255
        url:
          type: string
          format: uri
          nullable: true
          maxLength: 255
        description:
          type: string
          nullable: true
        banner:
          type: string
          nullable: true
        duration:
          type: integer
          maximum: 2147483647
          minimum: 0
        published_at:
          type: string
          format: date-time
          nullable: true
        album:
          type: string
          format: uuid
          nullable: true
      required:
      - categories
      - id
      - last_played_at
      - name
      - play_count
      - position
      - updated_at
    PodcastCategory:
      type: object
      properties:
        id:
          type: string
          format: uuid
          readOnly: true
        podcast_count:
          type: string
          readOnly: true
        legacy_id:
          type: string
          nullable: true
        nextgen_legacy_id:
          type: string
          nullable: true
        created_at:
          type: string
          format: date-time
          nullable: true
        updated_at:
          type: string
          format: date-time
          readOnly: true
        name:
          type: string
        description:
          type: string
          nullable: true
        church:
          type: string
          format: uuid
      required:
      - church
      - id
      - name
      - podcast_count
      - updated_at
    PrayerRequest:
      type: object
      properties:
        id:
          type: string
          format: uuid
          readOnly: true
        additional_prayer_request_fields:
          type: string
          readOnly: true
        legacy_id:
          type: string
          nullable: true
        nextgen_legacy_id:
          type: string
          nullable: true
        created_at:
          type: string
          format: date-time
          nullable: true
        updated_at:
          type: string
          format: date-time
          readOnly: true
        content:
          type: string
        is_answered:
          type: boolean
        is_archived:
          type: boolean
        is_anonymous:
          type: boolean
        status:
          $ref: '#/components/schemas/Status638Enum'
        media: {}
        reason:
          type: string
          nullable: true
        church:
          type: string
          format: uuid
          nullable: true
      required:
      - additional_prayer_request_fields
      - content
      - id
      - updated_at
    PrayerRequestCategory:
      type: object
      properties:
        id:
          type: string
          format: uuid
          readOnly: true
        prayer_request_count:
          type: string
          readOnly: true
        user:
          allOf:
          - $ref: '#/components/schemas/SemiUser'
          readOnly: true
        legacy_id:
          type: string
          nullable: true
        nextgen_legacy_id:
          type: string
          nullable: true
        created_at:
          type: string
          format: date-time
          nullable: true
        updated_at:
          type: string
          format: date-time
          readOnly: true
        name:
          type: string
        church:
          type: string
          format: uuid
      required:
      - church
      - id
      - name
      - prayer_request_count
      - updated_at
      - user
    ProcessorEnum:
      enum:
      - stripe
      - raise_the_money
      - authorize.net
      type: string
      description: |-
        * `stripe` - Stripe
        * `raise_the_money` - Raise The Money
        * `authorize.net` - Authorize.net
    Profile:
      type: object
      properties:
        id:
          type: string
          readOnly: true
        available_times:
          type: array
          items:
            $ref: '#/components/schemas/MeetingTime'
        additional_profile_fields:
          type: string
          readOnly: true
        birth_date:
          type: string
          nullable: true
        wedding_anniversary:
          type: string
          nullable: true
        first_name:
          type: string
          maxLength: 50
        middle_name:
          type: string
          nullable: true
          maxLength: 50
        last_name:
          type: string
          maxLength: 50
        full_name:
          type: string
          readOnly: true
          nullable: true
        avatar:
          type: string
          nullable: true
          maxLength: 255
        job_title:
          type: string
          nullable: true
          maxLength: 100
        salutation:
          type: string
          nullable: true
          maxLength: 50
        positions: {}
        gender:
          nullable: true
          oneOf:
          - $ref: '#/components/schemas/GenderDc1Enum'
          - $ref: '#/components/schemas/BlankEnum'
          - $ref: '#/components/schemas/NullEnum'
        marital_status:
          nullable: true
          oneOf:
          - $ref: '#/components/schemas/MaritalStatusEnum'
          - $ref: '#/components/schemas/BlankEnum'
          - $ref: '#/components/schemas/NullEnum'
        employment_status:
          type: string
          nullable: true
          maxLength: 50
        employment_industry:
          type: string
          nullable: true
        address_1:
          type: string
          nullable: true
        address_2:
          type: string
          nullable: true
        city:
          type: string
          nullable: true
        state:
          type: string
          nullable: true
        country:
          type: string
          nullable: true
        zip:
          type: string
          nullable: true
        cover_photo:
          type: string
          format: uri
          nullable: true
          maxLength: 256
        is_teacher:
          type: boolean
        has_email_notifications_for_information:
          type: boolean
        has_email_notifications_for_confirmation:
          type: boolean
        has_email_notifications_for_warnings:
          type: boolean
        has_push_notifications_for_information:
          type: boolean
        has_push_notifications_for_confirmation:
          type: boolean
        has_push_notifications_for_warnings:
          type: boolean
        is_testimony_reviewer:
          type: boolean
        is_prayer_request_reviewer:
          type: boolean
        is_leader:
          type: boolean
        is_follow_up_manager:
          type: boolean
        is_follow_up_member:
          type: boolean
        about:
          type: string
          nullable: true
        note:
          type: string
          nullable: true
        envelope_id:
          type: string
          nullable: true
        is_speaker:
          type: boolean
        is_developer:
          type: boolean
        baptism:
          type: boolean
        nationality:
          type: string
          nullable: true
          maxLength: 50
        age_group:
          type: string
          nullable: true
          maxLength: 50
        hobbies: {}
        allergies: {}
        medications: {}
        medical_condition:
          type: string
          nullable: true
        password_updated_at:
          type: string
          format: date-time
          nullable: true
        session_timeout:
          type: integer
          maximum: 2147483647
          minimum: -2147483648
          nullable: true
        created_at:
          type: string
          format: date-time
          nullable: true
        updated_at:
          type: string
          format: date-time
          readOnly: true
        spouse:
          type: string
          format: uuid
          nullable: true
      required:
      - additional_profile_fields
      - available_times
      - first_name
      - full_name
      - id
      - last_name
      - updated_at
    Question:
      type: object
      properties:
        id:
          type: string
          format: uuid
        form:
          type: string
          format: uuid
          readOnly: true
        legacy_id:
          type: string
          nullable: true
        nextgen_legacy_id:
          type: string
          nullable: true
        created_at:
          type: string
          format: date-time
          nullable: true
        updated_at:
          type: string
          format: date-time
          readOnly: true
        text:
          type: string
          maxLength: 500
        type:
          $ref: '#/components/schemas/QuestionTypeEnum'
        options:
          nullable: true
        is_required:
          type: boolean
        position:
          type: integer
          maximum: 32767
          minimum: 0
          default: 0
      required:
      - form
      - text
      - type
      - updated_at
    QuestionTypeEnum:
      enum:
      - short_answer
      - long_answer
      - multiple_choice
      - checkbox
      - drop_down
      - file_upload
      - date
      type: string
      description: |-
        * `short_answer` - Short Answer
        * `long_answer` - Long Answer
        * `multiple_choice` - Multiple Choice
        * `checkbox` - Checkbox
        * `drop_down` - Drop Down
        * `file_upload` - File Upload
        * `date` - Date
    RecurrenceEnum:
      enum:
      - daily
      - weekly
      - monthly
      - custom
      type: string
      description: |-
        * `daily` - Daily
        * `weekly` - Weekly
        * `monthly` - Monthly
        * `custom` - Custom
    RoleEnum:
      enum:
      - member
      - admin
      - super_admin
      type: string
      description: |-
        * `member` - Member
        * `admin` - Basic Admin
        * `super_admin` - Super Admin
    SemiUser:
      type: object
      properties:
        id:
          type: string
          readOnly: true
        email:
          type: string
          readOnly: true
        phone:
          type: string
          readOnly: true
        profile:
          type: string
          readOnly: true
        additional_user_fields:
          type: string
          readOnly: true
      required:
      - additional_user_fields
      - email
      - id
      - phone
      - profile
    Sermon:
      type: object
      properties:
        id:
          type: string
          format: uuid
          readOnly: true
        speakers:
          type: array
          items:
            type: string
            format: uuid
        position:
          type: string
          readOnly: true
        legacy_id:
          type: string
          nullable: true
        nextgen_legacy_id:
          type: string
          nullable: true
        created_at:
          type: string
          format: date-time
          nullable: true
        updated_at:
          type: string
          format: date-time
          readOnly: true
        name:
          type: string
          maxLength: 255
        url:
          type: string
          format: uri
          nullable: true
          maxLength: 255
        description:
          type: string
          nullable: true
        banner:
          type: string
          nullable: true
        views:
          type: integer
          maximum: 2147483647
          minimum: 0
        source:
          $ref: '#/components/schemas/SermonSourceEnum'
        is_featured:
          type: boolean
        youtube_id:
          type: string
          nullable: true
          description: ID of the YouTube video
          maxLength: 50
        statistics:
          nullable: true
        type:
          type: string
          nullable: true
          maxLength: 255
        is_livestream:
          type: boolean
        scheduled_start:
          type: string
          format: date-time
          nullable: true
        visibility:
          type: string
          nullable: true
          maxLength: 255
      required:
      - id
      - name
      - position
      - speakers
      - updated_at
    SermonSourceEnum:
      enum:
      - system
      - youtube
      type: string
      description: |-
        * `system` - System
        * `youtube` - YouTube
    SmartKeyword:
      type: object
      properties:
        id:
          type: string
          format: uuid
          readOnly: true
        hit_count:
          type: string
          readOnly: true
        hits:
          type: string
          readOnly: true
        notify_users_display:
          type: array
          items:
            $ref: '#/components/schemas/SemiUser'
          readOnly: true
        legacy_id:
          type: string
          nullable: true
        nextgen_legacy_id:
          type: string
          nullable: true
        created_at:
          type: string
          format: date-time
          nullable: true
        updated_at:
          type: string
          format: date-time
          readOnly: true
        keyword:
          type: string
          description: The word or phrase that triggers this keyword.
          maxLength: 50
        description:
          type: string
          description: The reply text for this keyword.
        credits_deducted_per_hit:
          type: integer
          maximum: 2147483647
          minimum: 0
          description: The number of credits deducted from the church for each hit.
        message_type:
          $ref: '#/components/schemas/SmartKeywordMessageTypeEnum'
        status:
          $ref: '#/components/schemas/SmartKeywordStatusEnum'
        media_url:
          type: string
          format: uri
          nullable: true
          maxLength: 200
        notify_users:
          type: array
          items:
            type: string
            format: uuid
          description: Users to be notified when this keyword is triggered.
      required:
      - hit_count
      - hits
      - id
      - keyword
      - notify_users_display
      - updated_at
    SmartKeywordHit:
      type: object
      properties:
        id:
          type: string
          format: uuid
          readOnly: true
        user:
          allOf:
          - $ref: '#/components/schemas/SemiUser'
          readOnly: true
        legacy_id:
          type: string
          nullable: true
        nextgen_legacy_id:
          type: string
          nullable: true
        created_at:
          type: string
          format: date-time
          nullable: true
        updated_at:
          type: string
          format: date-time
          readOnly: true
        sender_phone:
          type: string
          description: The phone number that triggered the keyword.
          maxLength: 15
        hit_at:
          type: string
          format: date-time
          readOnly: true
        smart_keyword:
          type: string
          format: uuid
      required:
      - hit_at
      - id
      - sender_phone
      - smart_keyword
      - updated_at
      - user
    SmartKeywordMessageTypeEnum:
      enum:
      - sms
      - mms
      - voice
      type: string
      description: |-
        * `sms` - SMS
        * `mms` - MMS
        * `voice` - Voice
    SmartKeywordStatusEnum:
      enum:
      - Active
      - Inactive
      type: string
      description: |-
        * `Active` - Active
        * `Inactive` - Inactive
    Source6e5Enum:
      enum:
      - public
      - private
      type: string
      description: |-
        * `public` - Public
        * `private` - Private
    Status147Enum:
      enum:
      - PENDING
      - PROCESSING
      - COMPLETED
      - FAILED
      - VOIDED
      type: string
      description: |-
        * `PENDING` - Pending
        * `PROCESSING` - Processing
        * `COMPLETED` - Completed
        * `FAILED` - Failed
        * `VOIDED` - Voided
    Status638Enum:
      enum:
      - pending
      - archived
      - approved
      - rejected
      type: string
      description: |-
        * `pending` - Pending
        * `archived` - Archived
        * `approved` - Approved
        * `rejected` - Rejected
    Status846Enum:
      enum:
      - pending
      - active
      - closed
      type: string
      description: |-
        * `pending` - Pending
        * `active` - Active
        * `closed` - Closed
    StatusE40Enum:
      enum:
      - unpaid
      - paid
      - failed
      - overdue
      - waived
      type: string
      description: |-
        * `unpaid` - Unpaid
        * `paid` - Paid
        * `failed` - Failed
        * `overdue` - Overdue
        * `waived` - Waived
    Story:
      type: object
      properties:
        id:
          type: string
          format: uuid
          readOnly: true
        additional_story_fields:
          type: string
          readOnly: true
        legacy_id:
          type: string
          nullable: true
        nextgen_legacy_id:
          type: string
          nullable: true
        created_at:
          type: string
          format: date-time
          nullable: true
        updated_at:
          type: string
          format: date-time
          readOnly: true
        caption:
          type: string
          nullable: true
          maxLength: 500
        color:
          type: string
          nullable: true
        is_anonymous:
          type: boolean
        status:
          $ref: '#/components/schemas/Status638Enum'
        media: {}
        reason:
          type: string
          nullable: true
        church:
          type: string
          format: uuid
          nullable: true
      required:
      - additional_story_fields
      - id
      - updated_at
    Submission:
      type: object
      properties:
        id:
          type: string
          format: uuid
          readOnly: true
        answers:
          type: array
          items:
            $ref: '#/components/schemas/Answer'
        user:
          allOf:
          - $ref: '#/components/schemas/SemiUser'
          readOnly: true
        form:
          type: string
          format: uuid
        church:
          type: string
          format: uuid
          readOnly: true
        legacy_id:
          type: string
          nullable: true
        nextgen_legacy_id:
          type: string
          nullable: true
        created_at:
          type: string
          format: date-time
          nullable: true
        updated_at:
          type: string
          format: date-time
          readOnly: true
        source:
          nullable: true
          oneOf:
          - $ref: '#/components/schemas/Source6e5Enum'
          - $ref: '#/components/schemas/BlankEnum'
          - $ref: '#/components/schemas/NullEnum'
      required:
      - answers
      - church
      - form
      - id
      - updated_at
      - user
    Template:
      type: object
      properties:
        id:
          type: string
          format: uuid
          readOnly: true
        user:
          allOf:
          - $ref: '#/components/schemas/SemiUser'
          readOnly: true
        legacy_id:
          type: string
          nullable: true
        nextgen_legacy_id:
          type: string
          nullable: true
        created_at:
          type: string
          format: date-time
          nullable: true
        updated_at:
          type: string
          format: date-time
          readOnly: true
        name:
          type: string
          maxLength: 100
        sender_name:
          type: string
          nullable: true
          maxLength: 100
        sender_email:
          type: string
          format: email
          nullable: true
          maxLength: 254
        subject:
          type: string
          maxLength: 255
        content:
          type: string
        type:
          $ref: '#/components/schemas/TemplateTypeEnum'
        is_automated:
          type: boolean
        celebration_type:
          type: string
          nullable: true
          maxLength: 100
        send_at:
          type: string
          format: time
          nullable: true
        media:
          nullable: true
        voice_url:
          type: string
          format: uri
          nullable: true
          maxLength: 200
        church:
          type: string
          format: uuid
      required:
      - church
      - content
      - id
      - name
      - subject
      - type
      - updated_at
      - user
    TemplateTypeEnum:
      enum:
      - email
      - push_notification
      - sms
      - mms
      - voice
      type: string
      description: |-
        * `email` - Email
        * `push_notification` - Push Notification
        * `sms` - SMS
        * `mms` - MMS
        * `voice` - Voice
    Testimony:
      type: object
      properties:
        id:
          type: string
          format: uuid
          readOnly: true
        additional_testimony_fields:
          type: string
          readOnly: true
        legacy_id:
          type: string
          nullable: true
        nextgen_legacy_id:
          type: string
          nullable: true
        created_at:
          type: string
          format: date-time
          nullable: true
        updated_at:
          type: string
          format: date-time
          readOnly: true
        content:
          type: string
        is_archived:
          type: boolean
        is_anonymous:
          type: boolean
        status:
          $ref: '#/components/schemas/Status638Enum'
        media: {}
        reason:
          type: string
          nullable: true
        church:
          type: string
          format: uuid
          nullable: true
      required:
      - additional_testimony_fields
      - content
      - id
      - updated_at
    TestimonyCategory:
      type: object
      properties:
        id:
          type: string
          format: uuid
          readOnly: true
        testimony_count:
          type: string
          readOnly: true
        user:
          allOf:
          - $ref: '#/components/schemas/SemiUser'
          readOnly: true
        legacy_id:
          type: string
          nullable: true
        nextgen_legacy_id:
          type: string
          nullable: true
        created_at:
          type: string
          format: date-time
          nullable: true
        updated_at:
          type: string
          format: date-time
          readOnly: true
        name:
          type: string
        church:
          type: string
          format: uuid
      required:
      - church
      - id
      - name
      - testimony_count
      - updated_at
      - user
    Ticket:
      type: object
      properties:
        id:
          type: string
          format: uuid
          readOnly: true
        user:
          allOf:
          - $ref: '#/components/schemas/SemiUser'
          readOnly: true
        legacy_id:
          type: string
          nullable: true
        nextgen_legacy_id:
          type: string
          nullable: true
        created_at:
          type: string
          format: date-time
          nullable: true
        updated_at:
          type: string
          format: date-time
          readOnly: true
        ticket_id:
          type: integer
          maximum: 2147483647
          minimum: -2147483648
          nullable: true
        type:
          type: string
          maxLength: 100
        priority:
          type: string
          maxLength: 100
        description:
          type: string
        status:
          $ref: '#/components/schemas/Status846Enum'
        change_log: {}
        closed_at:
          type: string
          format: date-time
          nullable: true
        deleted_at:
          type: string
          format: date-time
          nullable: true
        media: {}
        church:
          type: string
          format: uuid
      required:
      - church
      - description
      - id
      - priority
      - type
      - updated_at
      - user
    Transaction:
      type: object
      properties:
        id:
          type: string
          format: uuid
          readOnly: true
        amount:
          type: string
          format: decimal
          pattern: ^-?\d{0,18}(?:\.\d{0,2})?$
        payment_id:
          type: string
          maxLength: 255
        status:
          $ref: '#/components/schemas/Status147Enum'
        source:
          type: string
          readOnly: true
        last4:
          type: string
          readOnly: true
        date:
          type: string
          readOnly: true
        via:
          type: string
          nullable: true
          maxLength: 50
        contribution_type:
          type: string
          readOnly: true
        contribution_type_id:
          type: string
          readOnly: true
        contribution_id:
          type: string
          readOnly: true
        recurring:
          type: boolean
        memo:
          type: string
          readOnly: true
        subscription:
          type: string
          readOnly: true
        card_number:
          type: string
          readOnly: true
        card_brand:
          type: string
          readOnly: true
        card_expiration_month:
          type: string
          readOnly: true
        card_expiration_year:
          type: string
          readOnly: true
        card_holder_name:
          type: string
          readOnly: true
        user:
          type: string
          readOnly: true
        guest:
          type: string
          readOnly: true
        created_at:
          type: string
          format: date-time
          nullable: true
      required:
      - amount
      - card_brand
      - card_expiration_month
      - card_expiration_year
      - card_holder_name
      - card_number
      - contribution_id
      - contribution_type
      - contribution_type_id
      - date
      - guest
      - id
      - last4
      - memo
      - payment_id
      - recurring
      - source
      - subscription
      - user
    Type6e5Enum:
      enum:
      - public
      - private
      type: string
      description: |-
        * `public` - Public
        * `private` - Private
    TypeDd0Enum:
      enum:
      - sms
      - mms
      - voice
      - push_notification
      - email
      type: string
      description: |-
        * `sms` - SMS
        * `mms` - MMS
        * `voice` - Voice
        * `push_notification` - Push Notification
        * `email` - Email
    User:
      type: object
      properties:
        id:
          type: string
          format: uuid
          readOnly: true
        profile:
          type: string
          readOnly: true
        additional_user_fields:
          type: string
          readOnly: true
        last_login:
          type: string
          format: date-time
          nullable: true
        email:
          type: string
          format: email
          maxLength: 254
        phone:
          type: string
        role:
          $ref: '#/components/schemas/RoleEnum'
        has_2fa:
          type: boolean
        is_deleted:
          type: boolean
        deleted_at:
          type: string
          format: date-time
          nullable: true
        permissions: {}
        login_attempts:
          type: integer
          maximum: 2147483647
          minimum: -2147483648
        api_key:
          type: string
          nullable: true
          maxLength: 64
        legacy_id:
          type: string
          nullable: true
        nextgen_legacy_id:
          type: string
          nullable: true
        church:
          type: string
          format: uuid
      required:
      - additional_user_fields
      - church
      - email
      - id
      - phone
      - profile
    UserDevice:
      type: object
      properties:
        id:
          type: string
          format: uuid
          readOnly: true
        device_id:
          type: string
          maxLength: 255
        user_id:
          type: string
          format: uuid
          writeOnly: true
        user:
          allOf:
          - $ref: '#/components/schemas/SemiUser'
          readOnly: true
        created_at:
          type: string
          format: date-time
          nullable: true
      required:
      - device_id
      - id
      - user
      - user_id
  securitySchemes:
    jwtAuth:
      type: http
      scheme: bearer
      bearerFormat: JWT
