openapi: 3.0.1
info:
  title: KumpeApps API
  description: KKid API. Due to security concerns all calls to this API requires authentication.
    If you have access then you may use your KumpeApps username/password to authenticate.
    To gain access please use the contact developer link below.
  termsOfService: https://app.termly.io/document/terms-of-use-for-website/27691a60-60fc-4eff-943f-ca52df024bfe
  contact:
    email: helpdesk@kumpeapps.com
  license:
    name: Apache 2.0
    url: http://www.apache.org/licenses/LICENSE-2.0.html
  version: 5.0.0
servers:
- url: "https://restapi.kumpeapps.com/{version}"
  description: Production Server
  variables:
    version:
      default: v5
      enum:
      - v5
- url: "https://restapi.preprod.kumpeapps.com/{version}"
  description: Pre-Production Server
  variables:
    version:
      default: v5
      enum:
      - v5
security:
- auth_key: []
tags:
- name: authentication
  description: Authenticate KumpeApps users (required to get apiKey)
- name: KKid
  description: KKid API Functions
  externalDocs:
    url: https://github.com/kumpeapps/kkid
paths:
  /appkey:
    put:
      tags:
      - authentication
      summary: Deactivate app key
      description: Pass your app key to deactivate the key
      operationId: appkey_put
      parameters:
      - name: app_key
        in: query
        description: app key to deactivate
        required: true
        style: form
        explode: true
        schema:
          type: string
      responses:
        "202":
          description: App key deactivated
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/inline_response_202'
      deprecated: true
      security:
      - app_key: []
      x-openapi-router-controller: controllers.authentication_controller
    post:
      tags:
      - authentication
      summary: Request app key
      description: Request a new app key by passing username and password for app
        account
      operationId: appkey_post
      parameters:
      - name: username
        in: query
        description: Username assigned to your app
        required: true
        style: form
        explode: true
        schema:
          type: string
      - name: password
        in: query
        description: Password assigned to your app
        required: true
        style: form
        explode: true
        schema:
          type: string
          format: password
      - name: supportsYubikey
        in: query
        description: App supports YubiKey OTP
        required: true
        style: form
        explode: true
        schema:
          type: boolean
      responses:
        "201":
          description: app key created
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/inline_response_201'
      deprecated: true
      security: []
      x-openapi-router-controller: controllers.authentication_controller
    patch:
      tags:
      - authentication
      summary: Compromise app key
      description: Pass an app key to mark it as compromised. This may be submitted
        by the app owner or a concerned party that has optained the compromised app
        key.
      operationId: appkey_patch
      parameters:
      - name: app_key
        in: query
        description: compromised app key
        required: true
        style: form
        explode: true
        schema:
          type: string
      - name: comments
        in: query
        description: Comments (like how was this compromised)
        required: false
        style: form
        explode: true
        schema:
          type: string
      responses:
        "202":
          description: App key deactivated
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/inline_response_202'
      deprecated: true
      security: []
      x-openapi-router-controller: controllers.authentication_controller
  /authkey:
    get:
      tags:
      - authentication
      summary: Request auth key for user (login user)
      description: Obtain auth key for user that has provided their username and password
        to login to your app. (or to obtain an auth key for a script like IFTTT)
      operationId: authkey_get
      parameters:
      - name: username
        in: query
        description: Authenticated username
        required: true
        style: form
        explode: true
        schema:
          type: string
      - name: password
        in: query
        description: Authenticated password
        required: true
        style: form
        explode: true
        schema:
          type: string
          format: password
      - name: otp
        in: query
        description: YubiKey OTP (if configured for user)
        required: false
        style: form
        explode: true
        schema:
          type: string
          format: password
      responses:
        "200":
          description: User Authenticated Sucessfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/inline_response_201_1'
        "401":
          description: Invalid/Locked/Blocked/Compromised AppKey
        "403":
          description: Access Denied
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/403'
        "449":
          description: OTP required but not supplied. Please resubmit request with OTP
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/449'
      deprecated: true
      security:
      - app_key: []
      x-openapi-router-controller: controllers.authentication_controller
    put:
      tags:
      - authentication
      summary: Deactivate auth key (logout)
      description: Deactivate auth key for user logging them out of your application
      operationId: authkey_put
      parameters:
      - name: auth_key
        in: query
        description: auth key to logout
        required: true
        style: form
        explode: true
        schema:
          type: string
          format: password
      responses:
        "202":
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/inline_response_202'
        "401":
          description: Invalid/Locked/Blocked/Compromised AppKey
      deprecated: true
      security:
      - app_key: []
      x-openapi-router-controller: controllers.authentication_controller
    post:
      tags:
      - authentication
      summary: Request auth key for user (login user)
      description: Obtain auth key for user that has provided their username and password
        to login to your app. (or to obtain an auth key for a script like IFTTT)
      operationId: authkey_post
      parameters:
      - name: username
        in: query
        description: Authenticated username
        required: true
        style: form
        explode: true
        schema:
          type: string
      - name: password
        in: query
        description: Authenticated password
        required: true
        style: form
        explode: true
        schema:
          type: string
          format: password
      - name: otp
        in: query
        description: YubiKey OTP (if configured for user)
        required: false
        style: form
        explode: true
        schema:
          type: string
          format: password
      responses:
        "200":
          description: User Authenticated Sucessfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/inline_response_201_1'
        "401":
          description: Invalid/Locked/Blocked/Compromised AppKey
        "403":
          description: Access Denied
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/403'
        "449":
          description: OTP required but not supplied. Please resubmit request with OTP
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/449'
      deprecated: true
      security:
      - app_key: []
      x-openapi-router-controller: controllers.authentication_controller
    patch:
      tags:
      - authentication
      summary: Compromise auth key
      description: Mark user auth key as compromised
      operationId: authkey_patch
      parameters:
      - name: auth_key
        in: query
        description: auth key to mark as compromised
        required: true
        style: form
        explode: true
        schema:
          type: string
          format: password
      - name: comments
        in: query
        description: Comments (like how was this compromised)
        required: false
        style: form
        explode: true
        schema:
          type: string
      responses:
        "202":
          description: Auth key marked as compromised and locked
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/inline_response_202'
        "401":
          description: Invalid/Locked/Blocked/Compromised AppKey
      deprecated: true
      security: []
      x-openapi-router-controller: controllers.authentication_controller
  /authentication/appkey:
    put:
      tags:
      - authentication
      summary: Deactivate app key
      description: Pass your app key to deactivate the key
      operationId: auth_appkey_put
      parameters:
      - name: app_key
        in: query
        description: app key to deactivate
        required: true
        style: form
        explode: true
        schema:
          type: string
      responses:
        "202":
          description: App key deactivated
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/inline_response_202'
      security:
      - app_key: []
      x-openapi-router-controller: controllers.authentication_controller
    post:
      tags:
      - authentication
      summary: Request app key
      description: Request a new app key by passing username and password for app
        account
      operationId: auth_appkey_post
      parameters:
      - name: username
        in: query
        description: Username assigned to your app
        required: true
        style: form
        explode: true
        schema:
          type: string
      - name: password
        in: query
        description: Password assigned to your app
        required: true
        style: form
        explode: true
        schema:
          type: string
          format: password
      - name: supportsYubikey
        in: query
        description: App supports YubiKey OTP
        required: true
        style: form
        explode: true
        schema:
          type: boolean
      responses:
        "201":
          description: app key created
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/inline_response_201'
      security: []
      x-openapi-router-controller: controllers.authentication_controller
    patch:
      tags:
      - authentication
      summary: Compromise app key
      description: Pass an app key to mark it as compromised. This may be submitted
        by the app owner or a concerned party that has optained the compromised app
        key.
      operationId: auth_appkey_patch
      parameters:
      - name: app_key
        in: query
        description: compromised app key
        required: true
        style: form
        explode: true
        schema:
          type: string
      - name: comments
        in: query
        description: Comments (like how was this compromised)
        required: false
        style: form
        explode: true
        schema:
          type: string
      responses:
        "202":
          description: App key deactivated
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/inline_response_202'
      security: []
      x-openapi-router-controller: controllers.authentication_controller
  /authentication/verifyotp:
    get:
      tags:
      - authentication
      summary: Verifies YubiKey OTP for authenticated user
      description: Verifies YubiKey OTP for authenticated user
      operationId: auth_verifyotp_get
      parameters:
      - name: otp
        in: query
        description: YubiKey OTP code
        required: true
        style: form
        schema:
          type: string
      responses:
        "200":
          description: User Authenticated Sucessfully
        "401":
          description: Invalid/Locked/Blocked/Compromised AppKey/AuthKey
        "403":
          description: Access Denied
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/403'
      security:
      - auth_key: []
      x-openapi-router-controller: controllers.authentication_controller
  /authentication/authkey:
    get:
      tags:
      - authentication
      summary: Request auth key for user (login user)
      description: Obtain auth key for user that has provided their username and password
        to login to your app. (or to obtain an auth key for a script like IFTTT)
      operationId: auth_authkey_get
      parameters:
      - name: username
        in: query
        description: Authenticated username
        required: true
        style: form
        explode: true
        schema:
          type: string
      - name: password
        in: query
        description: Authenticated password
        required: true
        style: form
        explode: true
        schema:
          type: string
          format: password
      - name: otp
        in: query
        description: YubiKey OTP (if configured for user)
        required: false
        style: form
        explode: true
        schema:
          type: string
          format: password
      - name: deviceName
        in: query
        description: User's device name
        required: false
        style: form
        schema:
          type: string
      - name: identifierForVendor
        in: query
        description: identifierForVendor for User's Device (if app is iOS)
        required: false
        style: form
        schema:
          type: string
      responses:
        "200":
          description: User Authenticated Sucessfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/inline_response_201_1'
        "401":
          description: Invalid/Locked/Blocked/Compromised AppKey
        "403":
          description: Access Denied
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/403'
        "449":
          description: OTP required but not supplied. Please resubmit request with OTP
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/449'
      security:
      - app_key: []
      x-openapi-router-controller: controllers.authentication_controller
    put:
      tags:
      - authentication
      summary: Deactivate auth key (logout)
      description: Deactivate auth key for user logging them out of your application
      operationId: auth_authkey_put
      parameters:
      - name: auth_key
        in: query
        description: auth key to logout
        required: true
        style: form
        explode: true
        schema:
          type: string
          format: password
      responses:
        "202":
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/inline_response_202'
        "401":
          description: Invalid/Locked/Blocked/Compromised AppKey
      security:
      - app_key: []
      x-openapi-router-controller: controllers.authentication_controller
    post:
      tags:
      - authentication
      summary: Request auth key for user (login user)
      description: Obtain auth key for user that has provided their username and password
        to login to your app. (or to obtain an auth key for a script like IFTTT)
      operationId: auth_authkey_post
      parameters:
      - name: username
        in: query
        description: Authenticated username
        required: true
        style: form
        explode: true
        schema:
          type: string
      - name: password
        in: query
        description: Authenticated password
        required: true
        style: form
        explode: true
        schema:
          type: string
          format: password
      - name: otp
        in: query
        description: YubiKey OTP (if configured for user)
        required: false
        style: form
        explode: true
        schema:
          type: string
          format: password
      responses:
        "200":
          description: User Authenticated Sucessfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/inline_response_201_1'
        "401":
          description: Invalid/Locked/Blocked/Compromised AppKey
        "403":
          description: Access Denied
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/403'
        "449":
          description: OTP required but not supplied. Please resubmit request with OTP
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/449'
      security:
      - app_key: []
      x-openapi-router-controller: controllers.authentication_controller
    patch:
      tags:
      - authentication
      summary: Compromise auth key
      description: Mark user auth key as compromised
      operationId: auth_authkey_patch
      parameters:
      - name: auth_key
        in: query
        description: auth key to mark as compromised
        required: true
        style: form
        explode: true
        schema:
          type: string
          format: password
      - name: comments
        in: query
        description: Comments (like how was this compromised)
        required: false
        style: form
        explode: true
        schema:
          type: string
      responses:
        "202":
          description: Auth key marked as compromised and locked
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/inline_response_202'
        "401":
          description: Invalid/Locked/Blocked/Compromised AppKey
      security: []
      x-openapi-router-controller: controllers.authentication_controller
  /kkid/masteruser:
    post:
      tags:
      - KKid
      summary: adds new master user account
      description: |
        By passing in the appropriate variables this method creates a new user with master account access. (The use of this method is restricted to Superusers ONLY)
      operationId: kkid_masteruser_post
      parameters:
      - name: username
        in: query
        description: username of user to create
        required: true
        style: form
        explode: true
        schema:
          type: string
      - name: password
        in: query
        description: password of user to create
        required: true
        style: form
        explode: true
        schema:
          type: string
          format: password
      - name: email
        in: query
        description: email address of user to create
        required: true
        style: form
        explode: true
        schema:
          type: string
      - name: firstName
        in: query
        description: First Name of user to create
        required: true
        style: form
        explode: true
        schema:
          type: string
      - name: lastName
        in: query
        description: Last Name of user to create
        required: true
        style: form
        explode: true
        schema:
          type: string
      responses:
        "200":
          description: User Added
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/addUserResponse'
        "202":
          description: Accepted- Access Granted but data flow did not complete due
            to an unknown error.
          content: {}
        "405":
          description: Method Not Allowed- API user does not have access to use this
            method
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/405'
        "409":
          description: Create user unsuccessful! This is normally because the username
            or password already exists in the KumpeApps system.
          content: {}
      security:
      - app_key: []
      x-openapi-router-controller: controllers.k_kid_controller
  /kkid/user:
    get:
      tags:
      - KKid
      summary: Gets user info
      description: Gets user info for authenticated user
      operationId: kkid_user_get
      parameters:
      - name: enableBool
        in: query
        description: Use bool values instead of Int 0/1
        required: false
        style: form
        explode: true
        schema:
          type: boolean
      responses:
        "200":
          description: search results matching criteria
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/userlist'
      x-openapi-router-controller: controllers.k_kid_controller
  /kkid/userlist:
    get:
      tags:
      - KKid
      summary: returns list of users
      description: "By passing in the appropriate options, you can search for\nusers\
        \ within the authenticated user's master account\n"
      operationId: kkid_userlist_get
      parameters:
      - name: isChild
        in: query
        description: Filter Search by isChild flag
        required: false
        style: form
        explode: true
        schema:
          type: boolean
      - name: isActive
        in: query
        description: Filter Search by isActive flag
        required: false
        style: form
        explode: true
        schema:
          type: boolean
      - name: isAdmin
        in: query
        description: Filter Search by isAdmin flag
        required: false
        style: form
        explode: true
        schema:
          type: boolean
      - name: enableAllowance
        in: query
        description: Filter Search by enableAllowance flag
        required: false
        style: form
        explode: true
        schema:
          type: boolean
      - name: enableChores
        in: query
        description: Filter Search by enableChores flag
        required: false
        style: form
        explode: true
        schema:
          type: boolean
      - name: userID
        in: query
        description: userID of user to search
        required: false
        style: form
        explode: true
        schema:
          type: integer
      - name: username
        in: query
        description: Username of user to search
        required: false
        style: form
        explode: true
        schema:
          type: string
      - name: email
        in: query
        description: Email address of user to search
        required: false
        style: form
        explode: true
        schema:
          type: string
      responses:
        "200":
          description: search results matching criteria
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/userlist'
        "202":
          description: Accepted- Access Granted but data flow did not complete due
            to an unknown error.
          content: {}
        "204":
          description: No Data Returned
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/nodata'
        "400":
          description: bad input parameter
          content: {}
        "401":
          description: Unauthorized- API credentials not supplied. Ensure you have
            passed proper Username and Password parameters
          content: {}
        "403":
          description: Forbidden- User access is denied. API user either does not
            have access or has been banned/locked.
          content: {}
        "405":
          description: Method Not Allowed- API user does not have access to use this
            method
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/405'
        "412":
          description: "API Access Denied! Your API key is invalid, expired, or not\
            \ supplied!"
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/412'
      x-openapi-router-controller: controllers.k_kid_controller
    put:
      tags:
      - KKid
      summary: updates user
      description: |
        By passing in the appropriate variables this method updates the user's profile
      operationId: kkid_userlist_put
      parameters:
      - name: userID
        in: query
        description: userID of the user you wish to update
        required: true
        style: form
        explode: true
        schema:
          type: integer
      - name: username
        in: query
        description: username of user to create
        required: true
        style: form
        explode: true
        schema:
          type: string
      - name: email
        in: query
        description: email address of user to create
        required: true
        style: form
        explode: true
        schema:
          type: string
      - name: firstName
        in: query
        description: First Name of user to create
        required: true
        style: form
        explode: true
        schema:
          type: string
      - name: lastName
        in: query
        description: Last Name of user to create
        required: true
        style: form
        explode: true
        schema:
          type: string
      - name: emoji
        in: query
        description: emoji character for user
        required: false
        style: form
        explode: true
        schema:
          type: string
      - name: tmdbKey
        in: query
        description: User's TMdB Session Key
        required: false
        style: form
        explode: true
        schema:
          type: string
      - name: enableWishList
        in: query
        description: set status of Wish List module enabled
        required: false
        style: form
        explode: true
        schema:
          type: boolean
      - name: enableChores
        in: query
        description: set status of chores module enabled
        required: false
        style: form
        explode: true
        schema:
          type: boolean
      - name: enableAllowance
        in: query
        description: set status of allowance module enabled
        required: false
        style: form
        explode: true
        schema:
          type: boolean
      - name: enableAdmin
        in: query
        description: set status of isAdmin
        required: false
        style: form
        explode: true
        schema:
          type: boolean
      - name: enableTmdb
        in: query
        description: set status of enableTmdb (movie and tv search)
        required: false
        style: form
        explode: true
        schema:
          type: boolean
      - name: enableObjectDetection
        in: query
        description: set status of enableObjectDetection
        required: false
        style: form
        explode: true
        schema:
          type: boolean
      responses:
        "200":
          description: User Updated
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/addUserResponse'
        "202":
          description: Accepted- Access Granted but data flow did not complete due
            to an unknown error.
          content: {}
        "405":
          description: Method Not Allowed- API user does not have access to use this
            method
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/405'
        "409":
          description: "Update user unsuccessful. This could be due to invalid userID,\
            \ new username already exists, new email already exists, or an unknown\
            \ error."
          content: {}
        "412":
          description: "API Access Denied! Your API key is invalid, expired, or not\
            \ supplied!"
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/412'
      x-openapi-router-controller: controllers.k_kid_controller
    post:
      tags:
      - KKid
      summary: adds new child user
      description: |
        By passing in the appropriate variables this method creates a new user and assigns it to the master account of the authenticated user. By default this user will have chores and allowance access.
      operationId: kkid_userlist_post
      parameters:
      - name: username
        in: query
        description: username of user to create
        required: true
        style: form
        explode: true
        schema:
          type: string
      - name: password
        in: query
        description: password of user to create
        required: true
        style: form
        explode: true
        schema:
          type: string
          format: password
      - name: email
        in: query
        description: email address of user to create
        required: true
        style: form
        explode: true
        schema:
          type: string
      - name: firstName
        in: query
        description: First Name of user to create
        required: true
        style: form
        explode: true
        schema:
          type: string
      - name: lastName
        in: query
        description: Last Name of user to create
        required: true
        style: form
        explode: true
        schema:
          type: string
      responses:
        "200":
          description: User Added
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/addUserResponse'
        "202":
          description: Accepted- Access Granted but data flow did not complete due
            to an unknown error.
          content: {}
        "405":
          description: Method Not Allowed- API user does not have access to use this
            method
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/405'
        "409":
          description: Create user unsuccessful! This is normally because the username
            or password already exists in the KumpeApps system.
          content: {}
        "412":
          description: "API Access Denied! Your API key is invalid, expired, or not\
            \ supplied!"
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/412'
      security:
      - auth_key: []
      x-openapi-router-controller: controllers.k_kid_controller
    delete:
      tags:
      - KKid
      summary: deletes user
      description: |
        By passing in the appropriate variables this method deletes the specified user. (This function is restricted to Superusers ONLY)
      operationId: kkid_userlist_delete
      parameters:
      - name: userID
        in: query
        description: userID of the user you wish to delete
        required: true
        style: form
        explode: true
        schema:
          type: integer
      responses:
        "200":
          description: User Deleted
          content: {}
        "202":
          description: Accepted- Access Granted but data flow did not complete due
            to an unknown error.
          content: {}
        "405":
          description: Method Not Allowed- API user does not have access to use this
            method
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/405'
        "409":
          description: Create user unsuccessful! This is normally because the username
            or password already exists in the KumpeApps system.
          content: {}
        "412":
          description: "API Access Denied! Your API key is invalid, expired, or not\
            \ supplied!"
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/412'
      security:
      - auth_key: []
      x-openapi-router-controller: controllers.k_kid_controller
  /kkid/chorelist:
    get:
      tags:
      - KKid
      summary: returns list of chores for given user
      description: "By passing in the appropriate options, you can search for\nchores\
        \ assigned to a given user within the authenticated user's master account\n"
      operationId: kkid_chorelist_get
      parameters:
      - name: kidUsername
        in: query
        description: Username of kid you wish to search
        required: false
        style: form
        explode: true
        schema:
          type: string
      - name: day
        in: query
        description: Day of week for chores (Weekly for weekly chores)
        required: false
        style: form
        explode: true
        schema:
          type: string
          enum:
          - Sunday
          - Monday
          - Tuesday
          - Wednesday
          - Thursday
          - Friday
          - Saturday
          - Weekly
      - name: status
        in: query
        description: Status of Chore to search
        required: false
        style: form
        explode: true
        schema:
          type: string
      - name: blockDash
        in: query
        description: Filter results by blockDash parameter
        required: false
        style: form
        explode: true
        schema:
          type: boolean
      - name: optional
        in: query
        description: Filter results by optional parameter
        required: false
        style: form
        explode: true
        schema:
          type: boolean
      - name: canSteal
        in: query
        description: Filter results by canSteal parameter
        required: false
        style: form
        explode: true
        schema:
          type: boolean
      - name: includeCalendar
        in: query
        description: include calendar notations (default is false)
        required: false
        style: form
        explode: true
        schema:
          type: boolean
      responses:
        "200":
          description: search results matching criteria
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/chorelist'
        "202":
          description: Accepted- Access Granted but data flow did not complete due
            to an unknown error.
          content: {}
        "206":
          description: No Data Found.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/nodata'
        "400":
          description: bad input parameter
          content: {}
        "401":
          description: Unauthorized- API credentials not supplied. Ensure you have
            passed proper Username and Password parameters
          content: {}
        "403":
          description: Forbidden- User access is denied. API user either does not
            have access or has been banned/locked.
          content: {}
        "405":
          description: Method Not Allowed- API user does not have access to use this
            method
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/405'
        "412":
          description: "API Access Denied! Your API key is invalid, expired, or not\
            \ supplied!"
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/412'
      security:
      - auth_key: []
      x-openapi-router-controller: controllers.k_kid_controller
    put:
      tags:
      - KKid
      summary: updates chore for given chore id
      description: "By passing in the appropriate options, you can update the fields\
        \ of a specific core within the authenticated user's master account\n"
      operationId: kkid_chorelist_put
      parameters:
      - name: idChoreList
        in: query
        description: id number of chore you wish to update
        required: true
        style: form
        explode: true
        schema:
          type: integer
      - name: status
        in: query
        description: new status of chore
        required: false
        style: form
        explode: true
        schema:
          type: string
      - name: stolen
        in: query
        description: mark chore as stolen by sibling
        required: false
        style: form
        explode: true
        schema:
          type: boolean
      - name: stolenBy
        in: query
        description: username of sibling that stole the chore (required if stolen
          is true)
        required: false
        style: form
        explode: true
        schema:
          type: string
      - name: nfcTag
        in: query
        description: text field of NFC tag that is required to be scanned to check
          off this chore (normally null)
        required: false
        style: form
        explode: true
        schema:
          type: string
      - name: notes
        in: query
        description: notes field for chore
        required: false
        style: form
        explode: true
        schema:
          type: string
      - name: latitude
        in: query
        description: GPS latitude of where the chore was marked
        required: false
        style: form
        explode: true
        schema:
          type: integer
      - name: longitude
        in: query
        description: GPS longitude of where the chore was marked
        required: false
        style: form
        explode: true
        schema:
          type: integer
      - name: altitude
        in: query
        description: GPS altitude of where the chore was marked
        required: false
        style: form
        explode: true
        schema:
          type: integer
      - name: updatedByAutomation
        in: query
        description: true if updated via API by automation system
        required: false
        style: form
        explode: true
        schema:
          type: boolean
      - name: whereDay
        in: query
        description: Where day equals...
        required: false
        style: form
        explode: true
        schema:
          type: string
          enum:
          - Sunday
          - Monday
          - Tuesday
          - Wednesday
          - Thursday
          - Friday
          - Saturday
          - Weekly
          - Today
      - name: whereStatus
        in: query
        description: Where status equals...
        required: false
        style: form
        explode: true
        schema:
          type: string
      - name: whereName
        in: query
        description: Where chore name equals...
        required: false
        style: form
        explode: true
        schema:
          type: string
      responses:
        "200":
          description: search results matching criteria
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/success'
        "202":
          description: Accepted- Access Granted but data flow did not complete due
            to an unknown error.
          content: {}
        "206":
          description: No Data Found.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/nodata'
        "400":
          description: bad input parameter
          content: {}
        "401":
          description: Unauthorized- API credentials not supplied. Ensure you have
            passed proper Username and Password parameters
          content: {}
        "403":
          description: Forbidden- User access is denied. API user either does not
            have access or has been banned/locked.
          content: {}
        "405":
          description: Method Not Allowed- API user does not have access to use this
            method
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/405'
        "412":
          description: "API Access Denied! Your API key is invalid, expired, or not\
            \ supplied!"
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/412'
      security:
      - auth_key: []
      x-openapi-router-controller: controllers.k_kid_controller
    post:
      tags:
      - KKid
      summary: adds chore for given user
      description: "By passing in the appropriate options, you can add a chore to\
        \ given kid username under authenticated user's master account\n"
      operationId: kkid_chorelist_post
      parameters:
      - name: kidUsername
        in: query
        description: username of kid to assign the chore to.
        required: true
        style: form
        explode: true
        schema:
          type: string
      - name: day
        in: query
        description: "day of week (Monday, Tuesday....) for the chore. For weekly\
          \ chores put Weekly or leave blank"
        required: false
        style: form
        explode: true
        schema:
          type: string
          enum:
          - Sunday
          - Monday
          - Tuesday
          - Wednesday
          - Thursday
          - Friday
          - Saturday
          - Weekly
          - Today
      - name: nfcTag
        in: query
        description: text field of nfc tag required to check off chore
        required: false
        style: form
        explode: true
        schema:
          type: string
      - name: status
        in: query
        description: status of chore (default is todo)
        required: false
        style: form
        explode: true
        schema:
          type: string
      - name: choreName
        in: query
        description: name of chore
        required: true
        style: form
        explode: true
        schema:
          type: string
      - name: choreDescription
        in: query
        description: optional chore description
        required: false
        style: form
        explode: true
        schema:
          type: string
      - name: choreNumber
        in: query
        description: number priority of chore (default is 5)
        required: false
        style: form
        explode: true
        schema:
          type: integer
      - name: blockDash
        in: query
        description: block dash option on this chore
        required: false
        style: form
        explode: true
        schema:
          type: boolean
      - name: oneTime
        in: query
        description: mark as one time chore (does not repeat each week)
        required: false
        style: form
        explode: true
        schema:
          type: boolean
      - name: extraAllowance
        in: query
        description: ammount of allowance added at end of week for completing this
          chore
        required: false
        style: form
        explode: true
        schema:
          type: integer
      - name: optional
        in: query
        description: mark as optional chore
        required: false
        style: form
        explode: true
        schema:
          type: boolean
      - name: reassignable
        in: query
        description: mark as reassignable (default is true)
        required: false
        style: form
        explode: true
        schema:
          type: boolean
      - name: canSteal
        in: query
        description: mark as sibling can steal chore
        required: false
        style: form
        explode: true
        schema:
          type: boolean
      - name: startDate
        in: query
        description: date (yyyy-mm-dd) that you wish the chore to start showing up.
          (default is today)
        required: false
        style: form
        explode: true
        schema:
          type: string
      - name: notes
        in: query
        description: "notes added to chore (visable only on reports, kids do not see\
          \ this note, this is mostly just for the developer)"
        required: false
        style: form
        explode: true
        schema:
          type: string
      - name: requireObjectDetection
        in: query
        description: require use of camera to detect object detection tag order to
          check off chore
        required: false
        style: form
        explode: true
        schema:
          type: boolean
      - name: objectDetectionTag
        in: query
        description: tag for object detection to search for (required if requireObjectDetection
          is true)
        required: false
        style: form
        explode: true
        schema:
          type: string
      - name: updatedByAutomation
        in: query
        description: true if chore updated via API from an Automation System
        required: false
        style: form
        explode: true
        schema:
          type: boolean
      - name: aiIcon
        in: query
        description: "Notes if AI Icons should be used (n for no, y for yes, e for\
          \ yes- error)"
        required: false
        style: form
        explode: true
        schema:
          type: string
      - name: isCalendar
        in: query
        description: True if this is a calendar note instead of a chore.
        required: false
        style: form
        explode: true
        schema:
          type: boolean
      responses:
        "200":
          description: search results matching criteria
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/success'
        "202":
          description: Accepted- Access Granted but data flow did not complete due
            to an unknown error.
          content: {}
        "206":
          description: No Data Found.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/nodata'
        "400":
          description: bad input parameter
          content: {}
        "401":
          description: Unauthorized- API credentials not supplied. Ensure you have
            passed proper Username and Password parameters
          content: {}
        "403":
          description: Forbidden- User access is denied. API user either does not
            have access or has been banned/locked.
          content: {}
        "405":
          description: Method Not Allowed- API user does not have access to use this
            method
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/405'
        "409":
          description: Conflict- idChoreList parameter was not supplied or is blank
          content: {}
        "412":
          description: "API Access Denied! Your API key is invalid, expired, or not\
            \ supplied!"
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/412'
      security:
      - auth_key: []
      x-openapi-router-controller: controllers.k_kid_controller
    delete:
      tags:
      - KKid
      summary: deletes chore for given chore id
      description: "By passing in the appropriate options, you can delete a chore\
        \ for the given chore id under authenticated user's master account\n"
      operationId: kkid_chorelist_delete
      parameters:
      - name: idChoreList
        in: query
        description: id of the chore you wish to delete
        required: true
        style: form
        explode: true
        schema:
          type: integer
      responses:
        "200":
          description: deletion successful
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/success'
        "202":
          description: Accepted- Access Granted but data flow did not complete due
            to an unknown error.
          content: {}
        "206":
          description: No Data Found.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/nodata'
        "400":
          description: bad input parameter
          content: {}
        "401":
          description: Unauthorized- API credentials not supplied. Ensure you have
            passed proper Username and Password parameters
          content: {}
        "403":
          description: Forbidden- User access is denied. API user either does not
            have access or has been banned/locked.
          content: {}
        "405":
          description: Method Not Allowed- API user does not have access to use this
            method
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/405'
        "409":
          description: Conflict- idChoreList parameter was not supplied or is blank
          content: {}
        "412":
          description: "API Access Denied! Your API key is invalid, expired, or not\
            \ supplied!"
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/412'
      security:
      - auth_key: []
      x-openapi-router-controller: controllers.k_kid_controller
  /kkid/allowance:
    get:
      tags:
      - KKid
      summary: returns allowance balance and allowance transactions
      description: "By passing in the appropriate options, you can view allowance\
        \ balance and allowance transactions for a given user provided that they are\
        \ within the masterID account of the authenticated user.\n"
      operationId: kkid_allowance_get
      parameters:
      - name: kidUserId
        in: query
        description: userID of the kid
        required: true
        style: form
        explode: true
        schema:
          type: integer
      - name: transactionDays
        in: query
        description: number of days you wish to search allowance transactions (default
          is 90 days)
        required: false
        style: form
        explode: true
        schema:
          type: integer
      responses:
        "200":
          description: search results matching criteria
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/allowance'
        "202":
          description: Accepted- Access Granted but data flow did not complete due
            to an unknown error.
          content: {}
        "206":
          description: No Data Returned
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/nodata'
        "400":
          description: bad input parameter
          content: {}
        "401":
          description: Unauthorized- API credentials not supplied. Ensure you have
            passed proper Username and Password parameters
          content: {}
        "403":
          description: Forbidden- User access is denied. API user either does not
            have access or has been banned/locked.
          content: {}
        "405":
          description: Method Not Allowed- API user does not have access to use this
            method
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/405'
        "412":
          description: "API Access Denied! Your API key is invalid, expired, or not\
            \ supplied!"
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/412'
      security:
      - auth_key: []
      x-openapi-router-controller: controllers.k_kid_controller
    post:
      tags:
      - KKid
      summary: adds new allowance transaction to kidUserID
      description: "By passing in the appropriate options, you can add an allowance\
        \ transaction to a given user.\n"
      operationId: kkid_allowance_post
      parameters:
      - name: kidUserId
        in: query
        description: userID of the kid
        required: true
        style: form
        explode: true
        schema:
          type: integer
      - name: amount
        in: query
        description: amount you wish to Add/Subtract (subtract value should be a negative
          value)
        required: true
        style: form
        explode: true
        schema:
          type: number
      - name: description
        in: query
        description: Description (reason) of allowance transaction
        required: true
        style: form
        explode: true
        schema:
          type: string
      - name: transactionType
        in: query
        description: Transaction Type (Add/Subtract)
        required: true
        style: form
        explode: true
        schema:
          type: string
          description: |
            Sort order:
             * `Add` - Add Allowance
             * `Subtract` - Subtract Allowance
          enum:
          - Add
          - Subtract
      responses:
        "200":
          description: search results matching criteria
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/success'
        "202":
          description: Accepted- Access Granted but data flow did not complete due
            to an unknown error.
          content: {}
        "206":
          description: No Data Returned
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/nodata'
        "400":
          description: bad input parameter
          content: {}
        "401":
          description: Unauthorized- API credentials not supplied. Ensure you have
            passed proper Username and Password parameters
          content: {}
        "403":
          description: Forbidden- User access is denied. API user either does not
            have access or has been banned/locked.
          content: {}
        "405":
          description: Method Not Allowed- API user does not have access to use this
            method
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/405'
        "412":
          description: "API Access Denied! Your API key is invalid, expired, or not\
            \ supplied!"
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/412'
      security:
      - auth_key: []
      x-openapi-router-controller: controllers.k_kid_controller
  /kkid/apns:
    post:
      tags:
      - KKid
      summary: subscribes/unsubscribes/registers for apns push notifications
      operationId: kkid_apns_post
      parameters:
      - name: kidUserId
        in: query
        description: userID of the kid
        required: true
        style: form
        explode: true
        schema:
          type: integer
      - name: tool
        in: query
        description: tool you wish to talk to
        required: true
        style: form
        explode: true
        schema:
          type: string
          enum:
          - register
          - subscribe
          - unsubscribe
          - send
      - name: token
        in: query
        description: device APNS token (required for register)
        required: false
        style: form
        explode: true
        schema:
          type: string
      - name: devicename
        in: query
        description: Name of device to associate to token (required for register)
        required: false
        style: form
        explode: true
        schema:
          type: string
      - name: title
        in: query
        description: title of APNS message (required for send)
        required: false
        style: form
        explode: true
        schema:
          type: string
      - name: message
        in: query
        description: APNS message body (required for send)
        required: false
        style: form
        explode: true
        schema:
          type: string
      - name: badge
        in: query
        description: Number for badge icon (optional for send)
        required: false
        style: form
        explode: true
        schema:
          type: integer
      - name: sound
        in: query
        description: Name of sound file to play for send notification (optional for
          send)
        required: false
        style: form
        explode: true
        schema:
          type: string
      - name: section
        in: query
        description: Notification section name (required for send/subscribe/unsubscribe)
        required: false
        style: form
        explode: true
        schema:
          type: string
          enum:
          - Chores
          - Chores-New
          - Chores-Reminders
          - Allowance
          - Allowance-New
          - WishList
      - name: priority
        in: query
        description: "Notification section name (optional for send, default is active)"
        required: false
        style: form
        explode: true
        schema:
          type: string
          enum:
          - passive
          - active
          - time-sensitive
          - critical
      responses:
        "200":
          description: search results matching criteria
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/success'
        "202":
          description: Accepted- Access Granted but data flow did not complete due
            to an unknown error.
          content: {}
        "206":
          description: No Data Returned
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/nodata'
        "400":
          description: bad input parameter
          content: {}
        "401":
          description: Unauthorized- API credentials not supplied. Ensure you have
            passed proper Username and Password parameters
          content: {}
        "403":
          description: Forbidden- User access is denied. API user either does not
            have access or has been banned/locked.
          content: {}
        "405":
          description: Method Not Allowed- API user does not have access to use this
            method
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/405'
        "412":
          description: "API Access Denied! Your API key is invalid, expired, or not\
            \ supplied!"
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/412'
      security:
      - auth_key: []
      x-openapi-router-controller: controllers.k_kid_controller
  /kkid/wishlist:
    get:
      tags:
      - KKid
      summary: Get list of wishlist items
      operationId: kkid_wishlist_get
      parameters:
      - name: kidUserId
        in: query
        description: userID of the kid
        required: false
        style: form
        explode: true
        schema:
          type: integer
      responses:
        "200":
          description: search results matching criteria
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/wishlist'
      x-openapi-router-controller: controllers.k_kid_controller
    put:
      tags:
      - KKid
      summary: Update item on kid's wishlist
      operationId: kkid_wishlist_put
      parameters:
      - name: wishId
        in: query
        description: Wish list item ID to update
        required: true
        style: form
        explode: true
        schema:
          type: integer
      - name: title
        in: query
        description: Item title
        required: false
        style: form
        explode: true
        schema:
          type: string
      - name: description
        in: query
        description: Item Description
        required: false
        style: form
        explode: true
        schema:
          type: string
      - name: priority
        in: query
        description: Item Priority
        required: false
        style: form
        explode: true
        schema:
          type: integer
      - name: link
        in: query
        description: URL Link to item
        required: false
        style: form
        explode: true
        schema:
          type: string
      responses:
        "201":
          description: search results matching criteria
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/success'
      x-openapi-router-controller: controllers.k_kid_controller
    post:
      tags:
      - KKid
      summary: Add item to kid's wishlist
      operationId: kkid_wishlist_post
      parameters:
      - name: kidUserId
        in: query
        description: userID of the kid
        required: true
        style: form
        explode: true
        schema:
          type: integer
      - name: title
        in: query
        description: Item title
        required: true
        style: form
        explode: true
        schema:
          type: string
      - name: description
        in: query
        description: Item Description
        required: false
        style: form
        explode: true
        schema:
          type: string
      - name: priority
        in: query
        description: Item Priority
        required: false
        style: form
        explode: true
        schema:
          type: integer
      - name: link
        in: query
        description: URL Link to item
        required: false
        style: form
        explode: true
        schema:
          type: string
      responses:
        "201":
          description: search results matching criteria
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/success'
      x-openapi-router-controller: controllers.k_kid_controller
    delete:
      tags:
      - KKid
      summary: Delete item from wishlist
      operationId: kkid_wishlist_delete
      parameters:
      - name: wishId
        in: query
        description: ID of wishlist item to delete
        required: true
        style: form
        explode: true
        schema:
          type: integer
      responses:
        "200":
          description: search results matching criteria
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/success'
      x-openapi-router-controller: controllers.k_kid_controller
  /kkid/share:
    get:
      tags:
      - KKid
      summary: Create Share Link
      description: Create share link
      operationId: kkid_share_get
      parameters:
      - name: linkUserId
        in: query
        description: User ID that the link should be authenticated to
        required: true
        style: form
        explode: true
        schema:
          type: string
      - name: link
        in: query
        description: Link to share
        required: true
        style: form
        explode: true
        schema:
          type: string
          enum:
            - "https://khome.kumpeapps.com/portal/wish-list.php"
            - "https://khome.kumpeapps.com/portal/chores-today.php"
      - name: scope
        in: query
        description: Authentication scope for link
        required: true
        style: form
        explode: true
        schema:
          type: string
          enum:
            - WishList
            - WishListAdmin
            - Chores
            - ChoresAdmin
      - name: scope2
        in: query
        description: Authentication scope for link
        required: false
        style: form
        explode: true
        schema:
          type: string
          enum:
            - WishList
            - WishListAdmin
            - Chores
            - ChoresAdmin
      - name: scope3
        in: query
        description: Authentication scope for link
        required: false
        style: form
        explode: true
        schema:
          type: string
          enum:
            - WishList
            - WishListAdmin
            - Chores
            - ChoresAdmin
      - name: scope4
        in: query
        description: Authentication scope for link
        required: false
        style: form
        explode: true
        schema:
          type: string
          enum:
            - WishList
            - WishListAdmin
            - Chores
            - ChoresAdmin
      responses:
        "201":
          description: authenticated link created
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/201_share'
      security:
      - auth_key: []
      x-openapi-router-controller: controllers.k_kid_controller
components:
  schemas:
    "403":
      type: object
      properties:
        success:
          type: boolean
          example: false
        error:
          type: string
          example: Access Denied
      description: Access Denied
    "405":
      type: object
      properties:
        success:
          type: integer
          example: 0
        error:
          type: string
          example: API Access Denied! Your API account does not have access to this
            Verb Method!
      description: API Access Denied
    "412":
      type: object
      properties:
        success:
          type: integer
          example: 0
        error:
          type: string
          example: API Access Denied! Your API key is invalid or has expired!
      description: API Key invalid
    "449":
      type: object
      properties:
        success:
          type: boolean
          example: false
        message:
          type: string
          example: OTP Required is configured for this User. Retry login with OTP
      description: OTP Required is configured for this User. Retry login with OTP
    allowance:
      type: object
      properties:
        success:
          type: integer
          example: 1
        id:
          type: integer
          example: 24
        balance:
          type: integer
        lastUpdated:
          type: string
          example: "{}"
        allowanceTransaction:
          type: array
          items:
            $ref: '#/components/schemas/allowance_allowanceTransaction'
      description: Allowance
      example:
        lastUpdated: "{}"
        balance: 0
        success: 1
        allowanceTransaction:
        - transactionType: Add
          date: {}
          amount: 10
          transactionDescription: Weekly Allowance for Chores
          userId: 1
          transactionId: 85
        - transactionType: Add
          date: {}
          amount: 10
          transactionDescription: Weekly Allowance for Chores
          userId: 1
          transactionId: 85
        id: 24
    wish:
      type: object
      properties:
        id:
          type: integer
          example: 1
        user_id:
          type: integer
          example: 1
        master_id:
          type: integer
          example: 1
        title:
          type: string
          example: Pokemon Cards
        description:
          type: string
          example: Pokemon trading cards
        priority:
          type: integer
          example: 1
        link:
          type: string
          example: https://www.google.com
      example:
        master_id: 1
        user_id: 1
        link: https://www.google.com
        description: Pokemon trading cards
        id: 1
        title: Pokemon Cards
        priority: 1
    wishlist:
      type: object
      properties:
        success:
          type: boolean
          example: true
        wish:
          type: array
          items:
            $ref: '#/components/schemas/wish'
      description: Allowance
      example:
        wish:
        - master_id: 1
          user_id: 1
          link: https://www.google.com
          description: Pokemon trading cards
          id: 1
          title: Pokemon Cards
          priority: 1
        - master_id: 1
          user_id: 1
          link: https://www.google.com
          description: Pokemon trading cards
          id: 1
          title: Pokemon Cards
          priority: 1
        success: true
    success:
      type: object
      properties:
        success:
          type: boolean
          example: true
        message:
          type: string
          example: success
      description: Success
      example:
        success: true
        message: success
    userlist:
      type: object
      properties:
        success:
          type: boolean
          example: true
        user:
          type: array
          items:
            $ref: '#/components/schemas/user'
      description: userlist
      example:
        success: true
        user:
        - lastName: Doe
          enableBehaviorChart: false
          enableTmdb: true
          emoji: 🤗
          enableObjectDetection: false
          pushChoresNew: true
          enableAllowance: true
          isActive: true
          enableNoAds: false
          weeklyAllowance: 5
          pushAllowanceNew: true
          pushChoresReminders: true
          isMaster: false
          isLocked: false
          isBanned: false
          isDisabled: false
          homeId: 1
          email: jane@doe.com
          isChild: true
          enableChores: true
          pushAllowance: true
          tmdbKey: 9a87huiufe94r8
          pushChores: true
          isAdmin: false
          userId: 10
          masterId: 1
          firstName: Jane
          username: janedoe
        - lastName: Doe
          enableBehaviorChart: false
          enableTmdb: true
          emoji: 🤗
          enableObjectDetection: false
          pushChoresNew: true
          enableAllowance: true
          isActive: true
          enableNoAds: false
          weeklyAllowance: 5
          pushAllowanceNew: true
          pushChoresReminders: true
          isMaster: false
          isLocked: false
          isBanned: false
          isDisabled: false
          homeId: 1
          email: jane@doe.com
          isChild: true
          enableChores: true
          pushAllowance: true
          tmdbKey: 9a87huiufe94r8
          pushChores: true
          isAdmin: false
          userId: 10
          masterId: 1
          firstName: Jane
          username: janedoe
    nodata:
      type: object
      properties:
        status:
          type: integer
          example: 0
        error:
          type: string
          example: No Data Found
      description: nodata
    chorelist:
      type: object
      properties:
        success:
          type: integer
          example: 1
        chore:
          type: array
          items:
            $ref: '#/components/schemas/chore'
      description: chorelist
      example:
        success: 1
        chore:
        - reassignable: true
          altitude: 1
          notes: notes
          blockDash: false
          kid: jane
          latitude: 0
          choreName: Wash Dishes
          choreNumber: 1
          extraAllowance: 5
          choreDescription: Wash dishes and clean off counter
          stolenBy: stolenBy
          day: Monday
          isCalendar: false
          longitude: 6
          requireObjectDetection: bed
          updatedBy: janedoe
          reassigned: false
          optional: false
          oneTime: false
          nfcTag: kkids//Chores?washdishestag
          idChoreList: 1
          aiIcon: "n"
          stolen: false
          updated: {}
          startDate: {}
          status: todo
        - reassignable: true
          altitude: 1
          notes: notes
          blockDash: false
          kid: jane
          latitude: 0
          choreName: Wash Dishes
          choreNumber: 1
          extraAllowance: 5
          choreDescription: Wash dishes and clean off counter
          stolenBy: stolenBy
          day: Monday
          isCalendar: false
          longitude: 6
          requireObjectDetection: bed
          updatedBy: janedoe
          reassigned: false
          optional: false
          oneTime: false
          nfcTag: kkids//Chores?washdishestag
          idChoreList: 1
          aiIcon: "n"
          stolen: false
          updated: {}
          startDate: {}
          status: todo
    authentication:
      type: object
      properties:
        success:
          type: integer
          example: 1
        apiKey:
          type: string
          example: 67utyuvb7i6ugy9p843erwt3g
        user:
          $ref: '#/components/schemas/user'
      description: authentication
      example:
        apiKey: 67utyuvb7i6ugy9p843erwt3g
        success: 1
        user:
          lastName: Doe
          enableBehaviorChart: false
          enableTmdb: true
          emoji: 🤗
          enableObjectDetection: false
          pushChoresNew: true
          enableAllowance: true
          isActive: true
          enableNoAds: false
          weeklyAllowance: 5
          pushAllowanceNew: true
          pushChoresReminders: true
          isMaster: false
          isLocked: false
          isBanned: false
          isDisabled: false
          homeId: 1
          email: jane@doe.com
          isChild: true
          enableChores: true
          pushAllowance: true
          tmdbKey: 9a87huiufe94r8
          pushChores: true
          isAdmin: false
          userId: 10
          masterId: 1
          firstName: Jane
          username: janedoe
    user:
      type: object
      properties:
        userId:
          type: integer
          example: 10
        masterId:
          type: integer
          example: 1
        homeId:
          type: integer
          example: 1
        username:
          type: string
          example: janedoe
        firstName:
          type: string
          example: Jane
        lastName:
          type: string
          example: Doe
        email:
          type: string
          example: jane@doe.com
        isActive:
          type: boolean
          example: true
        isAdmin:
          type: boolean
          example: false
        enableAllowance:
          type: boolean
          example: true
        isBanned:
          type: boolean
          example: false
        isChild:
          type: boolean
          example: true
        enableChores:
          type: boolean
          example: true
        isDisabled:
          type: boolean
          example: false
        isLocked:
          type: boolean
          example: false
        isMaster:
          type: boolean
          example: false
        enableBehaviorChart:
          type: boolean
          example: false
        enableNoAds:
          type: boolean
          example: false
        enableTmdb:
          type: boolean
          example: true
        enableObjectDetection:
          type: boolean
          example: false
        weeklyAllowance:
          type: integer
          example: 5
        emoji:
          type: string
          example: 🤗
        tmdbKey:
          type: string
          example: 9a87huiufe94r8
        pushChores:
          type: boolean
          example: true
        pushChoresNew:
          type: boolean
          example: true
        pushChoresReminders:
          type: boolean
          example: true
        pushAllowance:
          type: boolean
          example: true
        pushAllowanceNew:
          type: boolean
          example: true
      description: user
      example:
        lastName: Doe
        enableBehaviorChart: false
        enableTmdb: true
        emoji: 🤗
        enableObjectDetection: false
        pushChoresNew: true
        enableAllowance: true
        isActive: true
        enableNoAds: false
        weeklyAllowance: 5
        pushAllowanceNew: true
        pushChoresReminders: true
        isMaster: false
        isLocked: false
        isBanned: false
        isDisabled: false
        homeId: 1
        email: jane@doe.com
        isChild: true
        enableChores: true
        pushAllowance: true
        tmdbKey: 9a87huiufe94r8
        pushChores: true
        isAdmin: false
        userId: 10
        masterId: 1
        firstName: Jane
        username: janedoe
    chore:
      type: object
      properties:
        idChoreList:
          type: integer
          example: 1
        kid:
          type: string
          example: jane
        day:
          type: string
          example: Monday
        choreName:
          type: string
          example: Wash Dishes
        choreDescription:
          type: string
          example: Wash dishes and clean off counter
        choreNumber:
          type: integer
          example: 1
        nfcTag:
          type: string
          example: kkids//Chores?washdishestag
        status:
          type: string
          example: todo
        blockDash:
          type: boolean
          example: false
        oneTime:
          type: boolean
          example: false
        extraAllowance:
          type: integer
          example: 5
        stolen:
          type: boolean
          example: false
        stolenBy:
          type: string
        optional:
          type: boolean
          example: false
        reassignable:
          type: boolean
          example: true
        reassigned:
          type: boolean
          example: false
        updated:
          type: string
          example: "{}"
        updatedBy:
          type: string
          example: janedoe
        startDate:
          type: string
          example: "{}"
        notes:
          type: string
        latitude:
          type: integer
        longitude:
          type: integer
        altitude:
          type: integer
        isCalendar:
          type: boolean
          example: false
        requireObjectDetection:
          type: string
          example: bed
        aiIcon:
          type: string
          example: "n"
      description: chore
      example:
        reassignable: true
        altitude: 1
        notes: notes
        blockDash: false
        kid: jane
        latitude: 0
        choreName: Wash Dishes
        choreNumber: 1
        extraAllowance: 5
        choreDescription: Wash dishes and clean off counter
        stolenBy: stolenBy
        day: Monday
        isCalendar: false
        longitude: 6
        requireObjectDetection: bed
        updatedBy: janedoe
        reassigned: false
        optional: false
        oneTime: false
        nfcTag: kkids//Chores?washdishestag
        idChoreList: 1
        aiIcon: "n"
        stolen: false
        updated: {}
        startDate: {}
        status: todo
    addUserResponse:
      type: object
      properties:
        user_id:
          type: integer
          example: 1
        login:
          type: string
          example: janedoe
        pass:
          type: string
        remember_key:
          type: string
        pass_dattm:
          type: string
          example: "{}"
        email:
          type: string
          example: jane@doe.com
        name_f:
          type: string
          example: Jane
        name_l:
          type: string
          example: Doe
        street:
          type: string
        street2:
          type: string
        city:
          type: string
        state:
          type: string
        zip:
          type: string
        country:
          type: string
        phone:
          type: string
        added:
          type: string
          example: "{}"
        remote_addr:
          type: string
          example: 104.237.5.109
        user_agent:
          type: string
        saved_form_id:
          type: string
        status:
          type: string
          example: "0"
        unsubscribed:
          type: string
          example: "0"
        lang:
          type: string
        i_agree:
          type: string
          example: "0"
        is_locked:
          type: string
          example: "0"
        disable_lock_until:
          type: string
        reseller_id:
          type: string
        comment:
          type: string
          example: Added Via KKids API
        tax_id:
          type: string
        last_login:
          type: string
        aff_id:
          type: string
        aff_added:
          type: string
        is_affiliate:
          type: string
        aff_payout_type:
          type: string
        plain_password:
          type: string
        pin:
          type: string
          example: "0"
        require_consent:
          type: string
        subusers_parent_id:
          type: string
          example: "0"
        avatar:
          type: string
      description: add user
      example:
        country: country
        is_locked: "0"
        i_agree: "0"
        require_consent: require_consent
        city: city
        added: {}
        subusers_parent_id: "0"
        remember_key: remember_key
        name_l: Doe
        saved_form_id: saved_form_id
        aff_payout_type: aff_payout_type
        login: janedoe
        pass_dattm: {}
        name_f: Jane
        pin: "0"
        street: street
        plain_password: plain_password
        street2: street2
        state: state
        lang: lang
        email: jane@doe.com
        user_agent: user_agent
        reseller_id: reseller_id
        zip: zip
        remote_addr: 104.237.5.109
        aff_added: aff_added
        pass: pass
        last_login: last_login
        aff_id: aff_id
        avatar: avatar
        disable_lock_until: disable_lock_until
        tax_id: tax_id
        unsubscribed: "0"
        is_affiliate: is_affiliate
        user_id: 1
        phone: phone
        comment: Added Via KKids API
        status: "0"
    invalidateApiKey:
      type: object
      properties:
        success:
          type: integer
          example: 1
        message:
          type: string
          example: API Key Set to Expire Immediately
      description: invalidate api key
      example:
        success: 1
        message: API Key Set to Expire Immediately
    inline_response_202:
      type: object
      properties:
        success:
          type: boolean
          example: true
      example:
        success: true
    inline_response_201:
      required:
      - app_key
      type: object
      properties:
        success:
          type: boolean
          example: true
        app_key:
          type: string
          example: 8765futybkunj98ho7gi6tybkuhj
      example:
        app_key: 8765futybkunj98ho7gi6tybkuhj
        success: true
    inline_response_201_1:
      type: object
      properties:
        success:
          type: boolean
          example: true
        auth_key:
          type: string
          example: 8ou7jyubj878h7iunk
      example:
        success: true
        auth_key: 8ou7jyubj878h7iunk
    201_share:
      type: object
      properties:
        success:
          type: boolean
          example: true
        auth_link:
          type: string
          example: "https://khome.kumpeapps.com/portal/wish-list.php?token=8ou7jyubj878h7iunk"
      example:
        success: true
        auth_link: "https://khome.kumpeapps.com/portal/wish-list.php?token=8ou7jyubj878h7iunk"
    allowance_allowanceTransaction:
      type: object
      properties:
        transactionId:
          type: integer
          example: 85
        userId:
          type: integer
          example: 1
        transactionType:
          type: string
          example: Add
        date:
          type: string
          example: "{}"
        transactionDescription:
          type: string
          example: Weekly Allowance for Chores
        amount:
          type: integer
          example: 10
      example:
        transactionType: Add
        date: {}
        amount: 10
        transactionDescription: Weekly Allowance for Chores
        userId: 1
        transactionId: 85
  securitySchemes:
    app_key:
      type: apiKey
      name: X-Auth
      in: header
      x-apikeyInfoFunc: controllers.authorization_controller.check_app_key
    auth_key:
      type: apiKey
      name: X-Auth
      in: header
      x-apikeyInfoFunc: controllers.authorization_controller.check_auth_key