components:
  responses: {}
  schemas:
    PaginationMetadata:
      properties:
        after:
          description: Cursor pointing to the next page
          type: string
        before:
          description: Cursor pointing to the previous page
          type: string
        limit:
          description: Number of items per page
          type: integer
        totalCount:
          description: Total number of items
          type: integer
      type: object
    VoluntaryExclusion:
      description: A voluntary exclusion from the NVSEP program
      example:
        id: f411a80b-dddb-4edc-b968-68a9ba41e987
        propertySelections:
          - durationMonths: 12
            id: 59ae7552-44ed-4009-92c3-9ff93c11f5a6
            property:
              id: d2a24d1d-880c-49e3-b967-19aed134896e
              name: Property 1
            propertyStatus: excluded
        startDate: '2025-01-01'
        status: excluded
        submittedAt: '2025-01-01T12:00:00Z'
        user:
          address:
            city: Anytown
            line1: 123 Main St
            line2: null
            postalCode: '12345'
            state: CA
          dob: '1990-01-01'
          email: john.doe@example.com
          firstName: John
          id: e418c0c8-c418-49cd-8e0a-35b6e05be8f0
          lastName: Doe
          middleName: null
          name: John Doe
          phoneNumber: '+1234567890'
          preferredName: John
        userPhotos:
          - contentType: image/jpeg
            id: 72e35b2f-cb02-40a9-a09e-7f315c0ef905
            kind: face_and_id
            path: https://example.com/photo.jpg
      properties:
        id:
          description: Unique identifier for the CFS exclusion
          type: string
        propertySelections:
          items:
            properties:
              id:
                description: Unique identifier for the property selection
                type: string
              propertyStatus:
                description: Current exclusion status for the property
                type: string
            required:
              - id
            type: object
          type: array
        startDate:
          description: Date of the start of the exclusion
          format: date
          type: string
        status:
          description: Current exclusion status
          type: string
        submittedAt:
          description: Timestamp of when the voluntary exclusion was submitted
          format: date-time
          type: string
        user:
          properties:
            address:
              properties:
                city:
                  description: City of the user's address
                  type: string
                line1:
                  description: First line of the user's address
                  type: string
                line2:
                  description: Second line of the user's address
                  type: string
                postalCode:
                  description: Postal code of the user's address
                  type: string
                state:
                  description: State of the user's address
                  type: string
              type: object
            dob:
              description: Date of birth of the user
              format: date
              type: string
            email:
              description: Email address of the user
              type: string
            firstName:
              description: First name of the user
              type: string
            id:
              description: Unique identifier for the user
              type: string
            lastName:
              description: Last name of the user
              type: string
            middleName:
              description: Middle name of the user
              type: string
            name:
              description: Full name of the user
              type: string
            phoneNumber:
              description: Phone number of the user
              type: string
            preferredName:
              description: Preferred name of the user
              type: string
          required:
            - id
          type: object
        userPhotos:
          items:
            properties:
              id:
                description: Unique identifier for the user photo
                type: string
            required:
              - id
            type: object
          type: array
      required:
        - id
        - status
      title: VoluntaryExclusion
      type: object
    VoluntaryExclusionListResponse:
      description: List of voluntary exclusions
      properties:
        data:
          description: Collection of voluntary exclusions
          items:
            $ref: '#/components/schemas/VoluntaryExclusion'
          type: array
        meta:
          $ref: '#/components/schemas/PaginationMetadata'
      title: VoluntaryExclusionListResponse
      type: object
  securitySchemes:
    authorization:
      scheme: bearer
      type: http
info:
  contact:
    email: hello@nvsep.org
    name: NVSEP
    url: https://nvsep.org
  description: The Voluntary Exclusion API provides information on self-exclusions.
  termsOfService: https://www.nvsep.org/terms
  title: NVSEP Voluntary Exclusion API
  version: '1.0'
openapi: 3.0.0
paths:
  /api/v1/voluntary_exclusions:
    get:
      callbacks: {}
      operationId: voluntary_exclusions.list
      parameters:
        - description: ''
          in: query
          name: pagination
          required: false
          schema:
            properties:
              after:
                description: Cursor pointing to the next page
                type: string
              before:
                description: Cursor pointing to the previous page
                type: string
              limit:
                description: Number of items per page
                type: integer
            type: object
        - description: ''
          in: query
          name: filter
          required: false
          schema:
            properties:
              submittedSince:
                description: Filter to exclusions more recent than the given timestamp
                format: date-time
                type: string
            type: object
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/VoluntaryExclusionListResponse'
          description: Response
      summary: List voluntary exclusions
      tags:
        - Voluntary Exclusions
security:
  - authorization: []
servers:
  - url: https://portal.nvsep.org
    variables: {}
tags: []
