openapi: 3.0.0
info:
  title: Cognitive Systems WiFi Motion App-Cloud API
  version: v1-5-x
  description: App Cloud APIs are used by mobile applications.
  x-logo:
    url: ../img/cognitive_logo.svg
    backgroundColor: '#FFFFFF'
    altText: Cognitive systems logo
    href: /
servers:
  - url: /api/v1
    description: ''
paths:
  /zone_priority:
    get:
      tags:
        - Zone Priority [BETA]
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  type: string
                example:
                  - Entrance
                  - Master Bedroom
                  - Backyard
          description: ''
        '400':
          description: Error
      operationId: GET_zone_priority
      summary: Show current zone priority list
    patch:
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PATCH_zone_priority'
      tags:
        - Zone Priority [BETA]
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PATCH_zone_priority'
          description: OK
        '400':
          description: Error
      operationId: PATCH_zone_priority
      summary: Replace zone priority list
      description: >-
        Accepts a list or array of strings, these do not have to match or be
        contained in the list of strings produced by `GET /default_locations`.
        Patching is not additive, every request will replace the values.


        Making this list empty is the feature switch on whether to use the new
        zone prioritized leaf blower, or whether to default to legacy leaf
        blower. 


        `[]` tells the network to use legacy leaf blower. 


        Non empty, for example: `["Kitchen"]` disables legacy leaf blower and
        enables the zone prioritized leaf blower.
  /sleep_times/settings:
    get:
      tags:
        - Household Insights [BETA]
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GET_sleep_times-settings_200'
          description: ''
        '400':
          description: Error
      security:
        - Authorization: []
      operationId: GET_sleep_times-settings
      summary: Get Sleep-Wake Settings
      description: >-
        Both the owner or the member bound to the network can consume this
        endpoint. Responds to the application whether sleep feature is enabled,
        and the user-provided household sleep time and household wake time.


        If the owner has not yet enabled the feature via`POST`, the following
        template is sent:


        ```

        {
          enabled: false,
          sleep_hour: 23,
          sleep_minute: 0,
          wake_hour: 7,
          wake_minute: 0
        }

        ```


        A record of the household settings is made only when the feature is
        enabled for the first time.
    post:
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/POST_sleep_times-settings'
      tags:
        - Household Insights [BETA]
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/POST_sleep_times-settings_201'
          description: ''
        '403':
          description: Forbidden
      security:
        - Authorization: []
      operationId: POST_sleep_times-settings
      summary: Set Sleep-Wake Settings
      description: >-
        Only the user with a role of "owner" can make a request to this
        endpoint.
  /mobile_devices:
    post:
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/POST_mobile_devices'
      tags:
        - Out of Box
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/POST_mobile_devices_201'
          description: ''
        '422':
          description: Error
      security:
        - Authorization: []
      operationId: POST_mobile_devices
      summary: Store Device Push Token
      description: >-
        Store instance token to facilitate the usage of firebase services
        between App Cloud and Wifi Motion App.


        The instance token provides a unique identifier for each app instance
        and a mechanism to authenticate and authorize actions (example: sending
        FCM messages)


        If the token sent is set to 'eee-motioncsc-loadtest' the push
        notification payload will be formed but NOT sent to firebase. This is
        used in load testing to ensure APPCLD is not blacklisted by Google.
  /bulk_user_presences:
    post:
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/POST_bulk_user_presences'
      tags:
        - Geofencing
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/POST_bulk_user_presences_200'
          description: ''
        '400':
          description: ''
        '403':
          description: ''
      security:
        - Authorization: []
      operationId: POST_bulk_user_presences
      summary: Geofencing Event (iOS)
      description: >-
        Endpoint used by Wifi Motion App to report user location and, if
        enabled, auto update network scene settings.
  /node:
    put:
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PUT_node'
      tags:
        - Network Settings
      responses:
        '204':
          description: OK
        '400':
          description: ''
      security:
        - Authorization: []
      operationId: PUT_node
      summary: Update Node Settings
  /networks/{id}:
    get:
      tags:
        - Network Settings
      parameters:
        - name: expand
          schema:
            type: array
            items:
              enum:
                - network_scene_config
              type: string
          in: query
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GET_networks-id_200'
          description: ''
        '400':
          description: ''
      security:
        - Authorization: []
      operationId: GET_networks-id
      summary: Show General Settings (With ID)
      description: >-
        - The `network_scene_configs` field in the res json defaults to an int
        which represents the row_id of the scene config in postgres. 
         - To retrieve the full scene config for the network, use the `expand` param with a single array item of `network_scene_config`
    put:
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PUT_networks-id'
      tags:
        - Network Settings
      parameters:
        - name: expand
          schema:
            type: array
            items:
              pattern: /^network_scene_config$/
              type: string
          in: query
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PUT_networks-id_200'
          description: ''
        '400':
          description: ''
      security:
        - Authorization: []
      operationId: PUT_networks-id
      summary: Update General Settings
      description: >-
        - Updates App Cloud network with user-specific information. User must
        have the role "owner" for the corresponding network.
         - Request body does not require all listed fields, but fields must match type and value validations
         - 

        To update the timezone, only pass `timezone` in the request body:


        `{
            "timezone": "Europe/Warsaw" 
        }`
    delete:
      tags:
        - Network Settings
      responses:
        '204':
          description: 204 No Content
        '400':
          description: ''
        '401':
          description: 401 Unauthorized
        '403':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DELETE_networks-id_403'
          description: ''
      security:
        - Authorization: []
      operationId: DELETE_networks-id
      summary: Disown Network
      description: |-
        - Disowns a given network, user must be owner.
         - Removes rows from following tables in postgres
            - networks
            - network memberships
            - network scene configs
            - invitations
            - mobile devices
            - users
          - Also propogates delete to MNS
    parameters:
      - name: id
        schema:
          type: integer
        in: path
        required: true
  /internal/network/{network_id}:
    get:
      tags:
        - Administration
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GET_internal-network-network_id_200'
          description: ''
        '400':
          description: Error
      security:
        - Authorization: []
      operationId: GET_internal-network-network_id
      summary: Display network and related config
      description: >-
        Retrieve all network related data from postgres and MNS for a single
        network. This includes network, members, scenes, login, and events
        information.
    parameters:
      - name: network_id
        schema:
          type: string
        in: path
        required: true
  /invitations/{id}:
    delete:
      tags:
        - Account Management
      responses:
        '204':
          description: ''
        '400':
          description: ''
        '404':
          description: ''
      security:
        - Authorization: []
      operationId: DELETE_invitations-id
      summary: Delete Pending Member Invitation
    parameters:
      - name: id
        schema:
          type: number
        in: path
        required: true
  /user_presences:
    post:
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/POST_user_presences'
      tags:
        - Geofencing
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/POST_user_presences_200'
          description: ''
        '422':
          description: ''
      security:
        - Authorization: []
      operationId: POST_user_presences
      summary: Geofencing Event (Android)
      description: >-
        Endpoint used by Wifi Motion App to report user location and, if
        enabled, auto update network scene settings. Similiar to
        #endpoint:nm5iMgP7mKxZPTRE5 but only sends one location update instead
        of multiple.
  /network_memberships/{id}:
    delete:
      tags:
        - Network Settings
      responses:
        '204':
          description: ''
        '400':
          description: ''
      security:
        - Authorization: []
      operationId: DELETE_network_memberships-id
      summary: Delete Members
    parameters:
      - name: id
        schema:
          minimum: 1
          type: integer
        in: path
        required: true
  /sessions:
    post:
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/POST_sessions'
      tags:
        - Logging In
      parameters:
        - name: multi
          description: >-
            Prevents the update of the valid_from field, allowing multiple
            sessions with the same account. 
          schema:
            default: false
            type: boolean
          in: query
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/POST_sessions_200'
          description: ''
        '401':
          description: Unauthorized
      operationId: POST_sessions
      summary: Login and Begin Session
      description: >-
        Session create for a user. Each session create updates a "valid_from"
        UTC timestamp column in the user model. 


        Any subseqeuent session creates for the same user will invalidate any
        previously issued tokens, effectively preventing account sharing or
        multiple devices being logged-in with the same account.
    patch:
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PATCH_sessions'
      tags:
        - Logging In
      parameters:
        - name: multi
          description: >-
            Prevents the update of the valid_from field on session refresh,
            allowing multiple sessions with the same account. 
          schema:
            default: false
            type: boolean
          in: query
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PATCH_sessions_200'
          description: ''
        '400':
          description: ''
      operationId: PATCH_sessions
      summary: Re-login and refresh existing session
      description: >-
        Used by Wifi Motion app to refresh session and issue new auth + refresh
        tokens.
  /sessions/sso/apple:
    post:
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/POST_sessions_sso_apple'
      tags:
        - Logging In
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/POST_sessions_200'
          description: ''
        '401':
          description: Unauthorized
      operationId: POST_sessions_sso_apple
      summary: Login using Apple account and Begin Session
      description: >-
        This API endpoint allows users to create a session by authenticating via
        Apple’s Single Sign-On (SSO). 


        The endpoint validates an Apple JWT token and then follows the /sessions
        flow to establish a user session
  /sessions/sso/google:
    post:
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/POST_sessions_sso_google'
      tags:
        - Logging In
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/POST_sessions_200'
          description: ''
        '401':
          description: Unauthorized
      operationId: POST_sessions_sso_google
      summary: Login using Google account and Begin Session
      description: >-
        This API endpoint allows users to create a session by authenticating via
        Google’s Single Sign-On (SSO). 


        The endpoint validates an Google JWT token and then follows the
        /sessions flow to establish a user session
  /sessions/sso/cognito:
    post:
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/POST_sessions_sso_cognito'
      tags:
        - Logging In
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/POST_sessions_200'
          description: ''
        '401':
          description: Unauthorized
      operationId: POST_cognito_sso
      summary: Login using Google account and Begin Session
      description: >-
        This API endpoint allows users to create a session by authenticating via
        AWS Cognito's Single Sign-On (SSO). 


        The endpoint validates an Cognito JWT token and then follows the
        /sessions flow to establish a user session
  /network_memberships:
    get:
      tags:
        - Network Settings
      parameters:
        - name: expand
          schema:
            type: array
            items:
              type: string
          in: query
        - name: network_id
          schema:
            type: integer
          in: query
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GET_network_memberships_200'
          description: ''
        '400':
          description: ''
      security:
        - Authorization: []
      operationId: GET_network_memberships
      summary: Show Network Members
    post:
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/POST_network_memberships'
      tags:
        - Network Settings
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/POST_network_memberships_201'
          description: ''
        '400':
          description: ''
      security:
        - Authorization: []
      operationId: POST_network_memberships
      summary: Create Network Members
  /confirmation_mails:
    post:
      tags:
        - Out of Box
      responses:
        '204':
          description: ''
        '401':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/POST_confirmation_mails_401'
          description: ''
        '404':
          description: ''
      security:
        - Authorization: []
      operationId: POST_confirmation_mails
      summary: Resend Confirmation Email
      description: >-
        Endpoint to send another confirmation email when user presses 'RESEND
        EMAIL' button during account creation.
  /invitations:
    get:
      tags:
        - Account Management
      parameters:
        - name: network_id
          schema:
            minimum: 1
            type: integer
          in: query
          required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GET_invitations_200'
          description: ''
        '400':
          description: ''
      security:
        - Authorization: []
      operationId: GET_invitations
      summary: Pending Invitations to Network
      description: Retrieve current list of emails invited to join network
  /users/{id}:
    get:
      tags:
        - Logging In
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GET_users-id_200'
          description: ''
        '400':
          description: ''
      security:
        - Authorization: []
      operationId: GET_users-id
      summary: Show Users
      description: Get basic user information
    put:
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PUT_users-id'
      tags:
        - Account Management
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PUT_users-id_200'
          description: ''
        '400':
          description: ''
      security:
        - Authorization: []
      operationId: PUT_users-id
      summary: Update User Model
    delete:
      tags:
        - Account Management
      parameters:
        - name: delete_claimed_network
          description: >-
            Defaults to `false`. Delete the network associated with the user. If
            the user is a network owner, the network is completely deleted. 
          schema:
            type: boolean
          in: query
          required: false
      responses:
        '204':
          description: ''
        '400':
          description: ''
        '403':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DELETE_users-id_403'
          description: ''
      security:
        - Authorization: []
      operationId: DELETE_users-id
      summary: Delete Confirmed User
    parameters:
      - name: id
        schema:
          minimum: 1
          type: integer
        in: path
        required: true
  /internal/users/{page_number}/{count_number}:
    get:
      tags:
        - Administration
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  type: object
                  properties:
                    user_id:
                      type: integer
                    email:
                      type: string
                    first_name:
                      type: string
                    last_name:
                      type: string
                    external_id:
                      type: integer
                    network_id:
                      type: integer
          description: ''
        '400':
          description: ''
      security:
        - Authorization: []
      operationId: GET_internal-users-page_number-count_number
      summary: List Network Owners
      description: Retrieve paginated array of all users that are network owners
    parameters:
      - name: page_number
        description: current page number
        schema:
          type: string
        in: path
        required: true
      - name: count_number
        description: Number of items per page
        schema:
          default: 25
          type: string
        in: path
        required: true
  /internal/users/reset:
    patch:
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PATCH_internal-users-reset'
      tags:
        - Administration
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PATCH_internal-users-reset_200'
          description: ''
        '400':
          description: ''
      security:
        - Authorization: []
      operationId: PATCH_internal-users-reset
      summary: Password Reset
  /internal/search/{search_key}:
    get:
      tags:
        - Administration
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  type: object
                  properties:
                    first_name:
                      type: string
                    last_name:
                      type: string
                    email:
                      type: string
                    network_id:
                      type: integer
                    network_name:
                      type: string
                    user_count:
                      type: integer
                    external_id:
                      type: integer
                    token_timestamps:
                      type: array
                      items:
                        type: object
                    online_status:
                      type: boolean
                example:
                  - first_name: Jane
                    last_name: Doe
                    email: jane@gmail.com
                    network_id: 185
                    network_name: 3e362f
                    user_count: 2
                    external_id: 156
                    token_timestamps: []
                    online_status: true
          description: ''
        '400':
          description: ''
      operationId: GET_internal-search-search_key
      summary: Global Search
    parameters:
      - name: search_key
        description: |
          Email, first-name, or last-name
        schema:
          type: string
        in: path
        required: true
  /confirmations:
    get:
      tags:
        - Out of Box
      parameters:
        - name: token
          schema:
            pattern: '[Bearer\s]?[a-zA-Z0-9\-_]+?\.[a-zA-Z0-9\-_]+?\.([a-zA-Z0-9\-_]+)?$'
            type: string
          in: query
          required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GET_confirmations_200'
          description: ''
        '401':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GET_confirmations_401'
          description: ''
      security:
        - Authorization: []
      operationId: GET_confirmations
      summary: Confirm New Account
      description: >-
        After the user receives a confirmation email. This link should open the
        app, and pass the included token to this User Confirmation GET request.


        A successful response means that the account associated with the
        token/email is now confirmed, and can be used for OOB or view network as
        a member.


        Note: This is NOT the same token as was returned by the
        #endpoint:u8SLn5ebDpLA96m7B endpoint. They are both jwt tokens with the
        same format but they have different token audience, expiry and payload
        data.
    post:
      tags:
        - Out of Box
      responses:
        '204':
          description: ''
        '404':
          description: ''
      security:
        - Authorization: []
      operationId: POST_confirmations
      summary: Send Account Confirmation Email
      description: Endpoint to send confirmation email during account creation.
  /event_tag:
    post:
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/POST_event_tag'
      tags:
        - Events, History, and Visualizations
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/POST_event_tag_200'
          description: ''
        '400':
          description: ''
      security:
        - Authorization: []
      operationId: POST_event_tag
      summary: Tag Motion Detected Event
  /internal/users/search/{name}:
    get:
      tags:
        - Administration
      parameters:
        - name: owner
          schema:
            type: boolean
          in: query
          required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  type: object
                  properties:
                    user_id:
                      type: integer
                    email:
                      type: string
                    first_name:
                      type: string
                    last_name:
                      type: string
                    external_id:
                      type: integer
                    network_id:
                      type: integer
                    role:
                      type: string
                example:
                  - user_id: 3
                    email: cogcodeqa@mail.com
                    first_name: Dhruvin
                    last_name: V
                    external_id: 156
                    network_id: 3
                    role: owner
          description: ''
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GET_internal-users-search-name_400'
          description: ''
      security:
        - Authorization: []
      operationId: GET_internal-users-search-name
      summary: Search Users
      description: Retrieves array of all users that have similar firstname or lastname.
    parameters:
      - name: name
        schema:
          type: string
        in: path
        required: true
  /internal/network_map:
    get:
      tags:
        - Administration
      parameters:
        - name: ensure
          schema:
            type: boolean
          in: query
        - name: radius
          schema:
            type: integer
          in: query
        - name: latitude
          schema:
            type: number
          in: query
        - name: longitude
          schema:
            type: number
          in: query
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GET_internal-network_map_200'
          description: ''
        '400':
          description: ''
      security:
        - Authorization: []
      operationId: GET_internal-network_map
      summary: All Cached Networks
      description: >-
        This endpoint returns all network model stored in the app-cloud. Network
        models are stored in cache which can be made on-demand by setting ensure
        field to true. Default radius is 5km, if latitude and longitude is
        supplied with the request. Haversine Distance is used as distance metric
        to find networks.
  /network_scene_configs/{id}:
    get:
      tags:
        - Network Settings
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GET_network_scene_configs-id_200'
          description: ''
        '400':
          description: ''
        '403':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GET_network_scene_configs-id_403'
          description: ''
      security:
        - Authorization: []
      operationId: GET_network_scene_configs-id
      summary: Show Scene Settings
    put:
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PUT_network_scene_configs-id'
      tags:
        - Network Settings
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PUT_network_scene_configs-id_200'
          description: ''
        '400':
          description: ''
      security:
        - Authorization: []
      operationId: PUT_network_scene_configs-id
      summary: Update Scene Settings
    parameters:
      - name: id
        description: network scene id
        schema:
          type: integer
        in: path
        required: true
  /motion_history_densities:
    get:
      tags:
        - Events, History, and Visualizations
      parameters:
        - name: network_id
          description: |+
            Internal App Cloud Id

          schema:
            minimum: 1
            type: number
          in: query
          required: true
        - name: from
          description: UTC Timestamp
          schema:
            type: number
          in: query
          required: false
        - name: to
          description: UTC Timestamp
          schema:
            type: number
          in: query
          required: true
        - name: bucket
          description: |+
            Bucket size in seconds

          schema:
            maximum: 900
            minimum: 1
            type: number
          in: query
          required: false
        - name: last
          schema:
            maximum: 400
            minimum: 0
            type: number
          in: query
          required: false
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  maxItems: 2
                  minItems: 2
                  type: array
                  items:
                    nullable: true
                    type: number
                example:
                  - - 0.02777777777777778
                    - 1591686000
                  - - 0
                    - 1591686900
                  - - 0.016666666666666666
                    - 1591687800
          description: ''
        '400':
          description: ''
      security:
        - Authorization: []
      operationId: GET_motion_history_densities
      summary: Motion History Densities
      description: >-
        Returns historical motion densities for a given period of time.
        Densities are percentages representing how many samples within a
        bucket-size had motion values greater than zero.


        For example, if the bucket size was 60 seconds, and 11 of the 12
        possible 5s buckets had motion then a value of 91.6 would be returned.


        It should be noted that data is stored in two resolutions:


        1s intervals for the last 24 hours.

        5s intervals for the last week.

        Which means that densities computed on data within the last 24 hours may
        be retrieved with this request at sub 5s bucket sizes.


        This request may return data at a coarser resolution than the requested
        bucket size, if data at that resolution is not available.


        Timestamp ranges are limited by Halo Home to only include times over
        which the network was last claimed.
  /sleep_times/data/{queried_days}:
    get:
      tags:
        - Household Insights [BETA]
      parameters:
        - name: force_past
          description: >-
            Specifically for QA and load validation, this switch if set to true
            force allows a request sleep data to query the full 7 days back
            despite the enable time being later than this. The number of queried
            days will be respected in the path param
          schema:
            default: false
            type: boolean
          in: query
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GET_sleep_times-data-queried_days_200'
          description: ''
        '422':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GET_sleep_times-data-queried_days_422'
          description: ''
      security:
        - Authorization: []
      operationId: GET_sleep_times-data-queried_days
      summary: Household Sleep-Wake Times Data
      description: >-
        This endpoint retrieves the timezone of the user from the network model
        and supplies it to the micro service. The micro service will return hour
        values for wake and sleep in the network's timezone.
    parameters:
      - name: queried_days
        description: can be omitted. when omitted defaults to `7`
        schema:
          maximum: 7
          minimum: 1
          type: integer
        in: path
        required: true
  /version:
    get:
      tags:
        - Overview
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GET_version_200'
          description: ''
        '404':
          description: ''
      operationId: GET_version
      summary: Build Version
      description: Determine App Cloud version and differentiate from Halo Home (legacy)
  /network_statuses:
    get:
      tags:
        - Events, History, and Visualizations
      parameters:
        - name: network_id
          description: Network ID is derived from the active session.
          schema:
            minimum: 1
            type: integer
          in: query
          required: false
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GET_network_statuses_200'
          description: ''
        '400':
          description: ''
      security:
        - Authorization: []
      operationId: GET_network_statuses
      summary: Last Motion Detected Timestamp
  /network_motion_config:
    get:
      tags:
        - Network Settings
      parameters:
        - name: network_id
          schema:
            type: integer
          in: query
          required: false
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GET_network_motion_config_200'
          description: ''
        '404':
          description: ''
      security:
        - Authorization: []
      operationId: GET_network_motion_config
      summary: Show Motion Settings
    put:
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PUT_network_motion_config'
      tags:
        - Network Settings
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PUT_network_motion_config_200'
          description: ''
        '422':
          description: Error
      security:
        - Authorization: []
      operationId: PUT_network_motion_config
      summary: Update Motion Settings
  /member_invites:
    post:
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/POST_member_invites'
      tags:
        - Account Management
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/POST_member_invites_201'
          description: ''
        '401':
          description: ''
      operationId: POST_member_invites
      summary: Create Pending Invitation
      description: >-
        Sends an invite email to the provided list, the link in the email should
        take the invited users to the app, where they can create an account.


        NOTE: Only the network owner may send Network Member Invites.
  /default_locations:
    get:
      tags:
        - Network Settings
      parameters:
        - name: network_id
          schema:
            type: integer
          in: query
          required: false
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  type: string
                example:
                  - Kitchen
                  - Bedroom
                  - Living Room
                  - Entrance
                  - Primary Bedroom
                  - Basement
          description: >-
            A unique harded coded list of locations stored by the cloud, however
            this list expands as new custom locations are assigned to leafs or
            nodes
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GET_default_locations_400'
          description: ''
      security:
        - Authorization: []
      operationId: GET_default_locations
      summary: Show Default Locations
    post:
      tags:
        - Network Settings
      responses:
        '204':
          description: >-
            DEPRECATED. This endpoint makes no mutation since the locations list
            is binding to leafs and nodes in Core. It happily returns 204 simply
            to ensure older WiFi Motion apps are stable
        '400':
          description: ''
      security:
        - Authorization: []
      operationId: POST_default_locations
      summary: Create Default Location
  /internal/networks/{page_number}/{count_number}:
    get:
      tags:
        - Administration
      parameters:
        - name: online
          description: Filter returning networks by online status.
          schema:
            type: boolean
          in: query
        - name: order
          description: Sort returning networks by network id
          schema:
            type: string
          in: query
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  type: object
                  properties:
                    network_id:
                      type: integer
                    external_id:
                      type: integer
                    network_name:
                      type: string
                    online:
                      type: boolean
                example:
                  - network_id: 1
                    external_id: 219
                    network_name: wifi
                    online: true
                  - network_id: 2
                    external_id: 2
                    network_name: '99999'
                    online: true
                  - network_id: 3
                    external_id: 1028
                    network_name: Test
                    online: true
          description: ''
        '400':
          description: ''
      security:
        - Authorization: []
      operationId: GET_internal-networks-page_number-count_number
      summary: Paginate Networks
      description: Retrieve paginated array of ALL networks in cloud.
    parameters:
      - name: page_number
        description: current page number
        schema:
          type: string
        in: path
        required: true
      - name: count_number
        description: Number of items per page
        schema:
          default: 25
          type: string
        in: path
        required: true
  /internal/invite:
    post:
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/POST_internal-invite'
      tags:
        - Administration
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/POST_internal-invite_200'
          description: ''
        '400':
          description: ''
      security:
        - Authorization: []
      operationId: POST_internal-invite
      summary: Invite new user
      description: Sends network invitation email to specified email for the given network.
  /users:
    post:
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/POST_users'
      tags:
        - Out of Box
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/POST_users_201'
          description: ''
        '400':
          description: ''
      operationId: POST_users
      summary: Create User
      description: >-
        Creates an unconfirmed user that is not associated with any motion
        network
  /activity/{queried_days}:
    get:
      tags:
        - Household Insights [BETA]
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GET_activity-queried_days'
          description: ''
        '400':
          description: ''
      operationId: GET_activity-queried_days
      summary: Household Activity
      description: |-
        Available in App Cloud v1-3-22 and above.
        Requires the Home-Insights Microservice enabled within MNS.
    parameters:
      - name: queried_days
        description: the number of days to query, when omitted assumes 7 days
        schema:
          type: number
        in: path
        required: true
  /healthz:
    get:
      tags:
        - Overview
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GET_healthz_200'
          description: ''
        '404':
          description: Network not found
      operationId: GET_healthz
      summary: Health Probe
      description: Endpoint used by load balancer to determine cloud instance status
  /scenes:
    get:
      tags:
        - Network Settings
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GET_scenes_200'
          description: ''
        '400':
          description: ''
      security:
        - Authorization: []
      operationId: GET_scenes
      summary: Show All Scenes
    put:
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PUT_scenes'
        required: true
      tags:
        - Network Settings
      responses:
        '200':
          description: OK
        '400':
          description: ''
      security:
        - Authorization: []
      operationId: PUT_scenes
      summary: Update scene event for user's network
      description: |-
        Change the scene of user's network.

        Accepts `scene_id`:

        - 1 : SceneChangedToAwayEvent
        - 4 : SceneChangedToHomeEvent
  /location_histograms:
    get:
      tags:
        - Events, History, and Visualizations
      parameters:
        - name: network_id
          description: Derived from the active session
          schema:
            minimum: 1
            type: integer
          in: query
          required: false
        - name: from
          description: UTC Timestamp
          schema:
            type: number
          in: query
          required: false
        - name: to
          description: UTC Timestamp
          schema:
            type: number
          in: query
          required: true
        - name: bucket
          description: |+
            Bucket size in seconds

          schema:
            maximum: 900
            minimum: 1
            type: integer
          in: query
          required: false
        - name: last
          schema:
            maximum: 400
            minimum: 0
            type: integer
          in: query
          required: false
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  type: object
                  properties:
                    density:
                      nullable: true
                      type: number
                    mac:
                      type: string
                    icon:
                      type: string
                    type:
                      type: string
                    id:
                      type: integer
                    name:
                      type: string
                    mobile:
                      type: boolean
                    location:
                      type: string
                    icon_url:
                      type: string
                example:
                  - density: 2.764688971744671e-12
                    mac: 60:b4:f7:f1:4b:46
                    icon: LEAF
                    type: LEAF
                    id: -99
                    name: 60:b4:f7:f1:4b:46
                    mobile: true
                    location: 60:b4:f7:f1:4b:46
                    icon_url: >-
                      data:image/png;base64,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
                  - density: 0.9999999999972353
                    mac: f2:b4:f7:f1:4b:48
                    icon: LEAF
                    type: LEAF
                    id: -99
                    name: f2:b4:f7:f1:4b:48
                    mobile: true
                    location: f2:b4:f7:f1:4b:48
                    icon_url: >-
                      data:image/png;base64,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
          description: ''
        '400':
          description: ''
      security:
        - Authorization: []
      operationId: GET_location_histograms
      summary: Motion Detected Detail View
  /networks:
    get:
      tags:
        - Network Settings
      parameters:
        - name: page
          schema:
            default: 1
            type: integer
          in: query
        - name: expand
          schema:
            type: array
            items:
              type: string
          in: query
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GET_networks_200'
          description: ''
        '400':
          description: ''
      security:
        - Authorization: []
      operationId: GET_networks
      summary: Show General Settings
      description: >-
        Android and iOS versions app have variations in how the request +
        response for GET /networks is made. There is a top level data key that
        is sometimes expected and other times is not, and there is differences
        in the id parameter.
  /topologies:
    get:
      tags:
        - Events, History, and Visualizations
      parameters:
        - name: network_id
          schema:
            minimum: 1
            type: integer
          in: query
          required: false
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GET_topologies_200'
          description: ''
        '400':
          description: ''
      security:
        - Authorization: []
      operationId: GET_topologies
      summary: Network Topology
      description: >-
        See Halo Core documentation for Toplogy for more detailed explanation:
        #endpoint:KbpWp94Zu3abyu9Cy
  /leaf:
    put:
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PUT_leaf'
      tags:
        - Network Settings
      responses:
        '204':
          description: OK
        '400':
          description: ''
      security:
        - Authorization: []
      operationId: PUT_leaf
      summary: Update Leaf Settings
  /devices:
    patch:
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PATCH_devices'
      tags:
        - Zone Priority [BETA]
      responses:
        '204':
          description: ''
        '400':
          description: Error
      security:
        - Authorization: []
      operationId: PATCH_devices
      summary: Batch update leafs and nodes
      description: >-
        Receives a list of objects that mutate nodes and/or leafs. 


        Network nodes (star or mesh) cannot be targeted using a `mac_address`
        but only using the `node_id`. The `auto` key is also not supported by
        nodes so the input validation will throw. Mutations to node require
        `node_id` and cannot include `auto` or `mac_address`.


        We expect leafs in the array to not have `node_id`, and they must have
        `auto` and `mac_address`.


        Both mutations to nodes or leafs must always have `location` and
        `friendly_name` keys.


        Order does not matter. The payload can include only leafs or only nodes.
  /universal-alert:
    get:
      tags:
        - Universal Alerting
      summary: Retrieve Universal Alert rules
      description: >-
        Returns an array of all universal alert rules associated with the
        network.
      operationId: GET_universal_alert
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UniversalAlertResponse200'
          description: 200 - OK
        '422':
          description: Network not found
      security:
        - Authorization: []
    post:
      tags:
        - Universal Alerting
      summary: Create a single custom rule
      description: Creates a single custom Wifi Motion Alert.
      operationId: POST_universal_alert
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UniversalAlertRequestBody'
        required: true
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UniversalAlertResponse201'
          description: 201 - Created
        '422':
          description: "{ error: \"rrule: no dates into the future\" }\r\n\r\n{ error: \"rrule: subsequent reoccurrence in the past\"}"
      security:
        - Authorization: []
  /universal-alert/status:
    get:
      tags:
        - Universal Alerting
      summary: Get Universal Alert Status
      description: "Returns an array of all alerts associated with the network, but from the view of the job queue, including all the internal state of the job. \r\n\r\nThe data field of this response contains the client facing alert alert model. This endpoint is to assist with seeing the internals of the job queue."
      operationId: GET_universal_alert_status
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UniversalAlertStatusResponse200'
          description: 200 - OK
        '422':
          description: 422 - Unprocessable Content
      security:
        - Authorization: []
  /universal-alert/{uuid}:
    get:
      tags:
        - Universal Alerting
      summary: Get universal alert
      description: Get a single alert by its uuid.
      operationId: GET_universal_alert_
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UniversalAlertUUIDResponse200'
          description: OK
        '400':
          description: ''
      security:
        - Authorization: []
    delete:
      tags:
        - Universal Alerting
      summary: Delete Universal Alert
      description: "Deletes an alert by its uuid.\r\n\r\nA successful delete will return the entire alert model.\r\n\r\nOnly the alerts owned by the network can be deleted. And these alerts can be deleted by both member or owner."
      operationId: DELETE_universal_alert
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UniversalAlertUUIDResponse201'
          description: 201 - Created
        '422':
          description: ''
      security:
        - Authorization: []
    patch:
      tags:
        - Universal Alerting
      summary: Update of Single Alert
      description: >-
        Update a single alert


        If an alert has been switched into an `"enabled": false` state because
        the alert has completed every possible recurrence, the mutation must
        include a new RRULE that has at least one occurrence in the future.


        Under the hood, PATCH is a get job, delete job, and create a job.


        Note that the following parameters cannot be mutated via the PATCH:

        - external_id

        - uuid

        - options


        path parameter can only be the uuid
      operationId: PATCH_universal-alert
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UniversalAlertUUIDRequestBody'
        required: true
      responses:
        '201':
          description: 201 - Created
        '400':
          description: 400 - Bad Request
        '422':
          description: "{ error: \"rrule: no dates into the future\" }\r\n\r\n{ error: \"rrule: subsequent reoccurrence in the past\"}"
      security:
        - Authorization: []
    parameters:
      - name: uuid
        schema:
          minimum: 1
          type: string
        in: path
        required: true
  /universal-alert-bulk:
    patch:
      tags:
        - Universal Alerting
      summary: Universal Alert Bulk Enable
      description: Enable or disable multiple alerts.
      operationId: PATCH_universal_alert_bulk
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UniversalAlertingBulkRequestBody'
        required: true
      responses:
        '204':
          description: ''
        '422':
          description: ''
      security:
        - Authorization: []
  /motion_history_intensities:
    get:
      tags:
        - Events, History, and Visualizations
      parameters:
        - name: network_id
          description: >-
            Derived from the active session (if the user has rights to this
            network)
          schema:
            minimum: 1
            type: integer
          in: query
          required: false
        - name: from
          description: UTC Timestamp
          schema:
            type: number
          in: query
          required: false
        - name: to
          description: UTC Timestamp
          schema:
            type: number
          in: query
          required: true
        - name: bucket
          description: |+
            Bucket size in seconds

          schema:
            maximum: 900
            minimum: 1
            type: integer
          in: query
          required: false
        - name: last
          schema:
            maximum: 400
            minimum: 0
            type: integer
          in: query
          required: false
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  maxItems: 2
                  minItems: 2
                  type: array
                  items:
                    nullable: true
                    type: number
                example:
                  - - 0
                    - 1603299600
                  - - 0
                    - 1603303200
                  - - 0
                    - 1603306800
                  - - 0
                    - 1603310400
                  - - 0
                    - 1603314000
                  - - 0
                    - 1603317600
                  - - 0
                    - 1603321200
                  - - 0
                    - 1603324800
                  - - 0
                    - 1603328400
                  - - 0
                    - 1603332000
                  - - 0
                    - 1603335600
                  - - 0
                    - 1603339200
                  - - 2.68
                    - 1603342800
                  - - 3.04
                    - 1603346400
                  - - 0
                    - 1603350000
                  - - 0
                    - 1603353600
                  - - 0
                    - 1603357200
                  - - 0
                    - 1603360800
                  - - 0
                    - 1603364400
                  - - 0
                    - 1603368000
                  - - 0
                    - 1603371600
                  - - 0
                    - 1603375200
                  - - 1.22
                    - 1603378800
                  - - 2.85
                    - 1603382400
                  - - 3.02
                    - 1603386000
                  - - 0
                    - 1603389600
                  - - 0
                    - 1603393200
                  - - 0
                    - 1603396800
                  - - 0
                    - 1603400400
                  - - 0
                    - 1603404000
                  - - 0
                    - 1603407600
                  - - 0
                    - 1603411200
                  - - 0
                    - 1603414800
                  - - 0
                    - 1603418400
                  - - 2.81
                    - 1603422000
                  - - 1.75
                    - 1603425600
                  - - 2.93
                    - 1603429200
                  - - 0
                    - 1603432800
                  - - 0
                    - 1603436400
                  - - 0
                    - 1603440000
                  - - 0
                    - 1603443600
                  - - 0
                    - 1603447200
                  - - 0
                    - 1603450800
                  - - 0
                    - 1603454400
                  - - 2.65
                    - 1603458000
                  - - 1.6
                    - 1603461600
                  - - 3.2
                    - 1603465200
                  - - 1.98
                    - 1603468800
                  - - 0
                    - 1603472400
                  - - 0
                    - 1603476000
                  - - 0
                    - 1603479600
                  - - 0
                    - 1603483200
                  - - 0
                    - 1603486800
                  - - 0
                    - 1603490400
                  - - 0
                    - 1603494000
                  - - 0
                    - 1603497600
                  - - 0
                    - 1603501200
                  - - 3.28
                    - 1603504800
                  - - 2.43
                    - 1603508400
                  - - 3.74
                    - 1603512000
                  - - 2.92
                    - 1603515600
                  - - 0.1
                    - 1603519200
                  - - 0.21
                    - 1603522800
                  - - 0.15
                    - 1603526400
                  - - 0.02
                    - 1603530000
                  - - 0.14
                    - 1603533600
                  - - 0.12
                    - 1603537200
                  - - 3.18
                    - 1603540800
                  - - 2.88
                    - 1603544400
                  - - 0.15
                    - 1603548000
                  - - 1.55
                    - 1603551600
                  - - 2.89
                    - 1603555200
                  - - 2.77
                    - 1603558800
                  - - 3.73
                    - 1603562400
                  - - 0
                    - 1603566000
                  - - 1.16
                    - 1603569600
                  - - 2.2
                    - 1603573200
                  - - 1.71
                    - 1603576800
                  - - 0.8
                    - 1603580400
                  - - 1.58
                    - 1603584000
                  - - 1.87
                    - 1603587600
                  - - 3.07
                    - 1603591200
                  - - 2.91
                    - 1603594800
                  - - 1.6
                    - 1603598400
                  - - 1.8
                    - 1603602000
                  - - 0.14
                    - 1603605600
                  - - 0.02
                    - 1603609200
                  - - 0.05
                    - 1603612800
                  - - 0.12
                    - 1603616400
                  - - 0.17
                    - 1603620000
                  - - 0.05
                    - 1603623600
                  - - 2.97
                    - 1603627200
                  - - 1.27
                    - 1603630800
                  - - 0.36
                    - 1603634400
                  - - 0
                    - 1603638000
                  - - 3.15
                    - 1603641600
                  - - 3.24
                    - 1603645200
                  - - 4.61
                    - 1603648800
                  - - 3.32
                    - 1603652400
                  - - 2.6
                    - 1603656000
                  - - 1.9
                    - 1603659600
                  - - 3.62
                    - 1603663200
                  - - 2.51
                    - 1603666800
                  - - 0.28
                    - 1603670400
                  - - 1.9
                    - 1603674000
                  - - 2.61
                    - 1603677600
                  - - 3.74
                    - 1603681200
                  - - 2.85
                    - 1603684800
                  - - 1.11
                    - 1603688400
                  - - 0.03
                    - 1603692000
                  - - 0.08
                    - 1603695600
                  - - 3.59
                    - 1603699200
                  - - 0.02
                    - 1603702800
                  - - 0.03
                    - 1603706400
                  - - 0
                    - 1603710000
                  - - 0
                    - 1603713600
                  - - 0.03
                    - 1603717200
                  - - 2.93
                    - 1603720800
                  - - 3.59
                    - 1603724400
                  - - 0
                    - 1603728000
                  - - 0
                    - 1603731600
                  - - 0
                    - 1603735200
                  - - 0
                    - 1603738800
                  - - 0
                    - 1603742400
                  - - 0
                    - 1603746000
                  - - 0
                    - 1603749600
                  - - 3.45
                    - 1603753200
                  - - 0.37
                    - 1603756800
                  - - 3.2
                    - 1603760400
                  - - 0.05
                    - 1603764000
                  - - 0.17
                    - 1603767600
                  - - 5.18
                    - 1603771200
                  - - 5.85
                    - 1603774800
                  - - 3.13
                    - 1603778400
                  - - 3.95
                    - 1603782000
                  - - 3.53
                    - 1603785600
                  - - 0
                    - 1603789200
                  - - 2.88
                    - 1603792800
                  - - 0
                    - 1603796400
                  - - 0.02
                    - 1603800000
                  - - 3.67
                    - 1603803600
                  - - 4.08
                    - 1603807200
                  - - 3.46
                    - 1603810800
                  - - 0
                    - 1603814400
                  - - 0
                    - 1603818000
                  - - 0
                    - 1603821600
                  - - 0
                    - 1603825200
                  - - 0
                    - 1603828800
                  - - 0
                    - 1603832400
                  - - 0
                    - 1603836000
                  - - 0
                    - 1603839600
                  - - 0
                    - 1603843200
                  - - 2.65
                    - 1603846800
                  - - 3.72
                    - 1603850400
                  - - 7.08
                    - 1603854000
                  - - 1.74
                    - 1603857600
                  - - 0.53
                    - 1603861200
                  - - 2.13
                    - 1603864800
                  - - 0.2
                    - 1603868400
                  - - 3.01
                    - 1603872000
                  - - 0.28
                    - 1603875600
                  - - 0.31
                    - 1603879200
                  - - 0.33
                    - 1603882800
                  - - 0.35
                    - 1603886400
                  - - 0.23
                    - 1603890000
                  - - 0.29
                    - 1603893600
                  - - 3.48
                    - 1603897200
                  - - 3.91
                    - 1603900800
                  - - 3.02
                    - 1603904400
          description: ''
        '400':
          description: ''
      security:
        - Authorization: []
      operationId: GET_motion_history_intensities
      summary: Hourly Motion Histograms
      description: >-
        Returns historical motion intensities for a given period of time.
        Intensities are actual motion values stored at two different resolutions
        (bucket sizes):

         - 1s intervals for the last 24 hours.
         - 5s intervals for the last week.
        This request may return data at a coarser resolution than the requested
        bucket size, if data at that resolution is not available.


        Timestamp ranges are limited by Halo Home to only include times over
        which the network was last claimed.
  /motions:
    get:
      tags:
        - Events, History, and Visualizations
      parameters:
        - name: token
          description: The JWT token.
          schema:
            pattern: '[a-zA-Z0-9\-_]+?\.[a-zA-Z0-9\-_]+?\.([a-zA-Z0-9\-_]+)?$'
            type: string
          in: query
          required: true
        - name: network_id
          description: The internal network ID
          schema:
            minimum: 1
            exclusiveMinimum: false
            type: number
          in: query
          required: true
      responses:
        '204':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GET_motions'
              examples:
                Websocket:
                  value:
                    ts: 1660309417.96
                    links:
                      - 4C72900A72.EM7F6001D5
                      - EM7F6001D5.0c80639418d0
                      - EM7F6001D5.4C72900A72
                      - EM7F6001D5.64166679e0cb
                    data:
                      lraw:
                        - 0.04
                        - 0
                        - 0.15
                        - 0.03
                      mkai:
                        - 0.04
                        - 0
                        - 0.15
                        - 0
                      mkai_original:
                        - 0.04
                        - 0
                        - 0.15
                        - 0
                      mkai_scaled:
                        - 0.04
                        - 0
                        - 0.15
                        - 0
                      throughput:
                        - 1
                        - 1
                        - 1
                        - 1
                    loc:
                      - 4C72900A72
                    interval: 500
                    count: 1
                    last_motion: 1660308050.97
                    loc_name: 4C72900A72
          description: Streaming motion data.
        '400':
          description: ''
      security:
        - Authorization: []
      operationId: GET_motions
      summary: Live Motion Websocket
      description: Open a Websocket connection streaming live motion data.
  /searches:
    post:
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/POST_searches'
        required: true
      tags:
        - Out of Box
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/POST_searches_200'
          description: ''
        '400':
          description: Bad Request
        '404':
          description: Network Not Found
      security:
        - Authorization: []
      operationId: POST_searches
      summary: Network Search/Create
      description: >-
        Get or create a Wi-Fi Motion network in App Cloud. The BSSID is shared
        with Core when the network first comes online.


        This endpoint verifies the existence of the user's network in Core and
        if it's claimable. If the network is present in Core, but not in App
        Cloud, the network is created.


        Calling this endpoint has one of the following outcomes:


        -   Network not found in MNS Core (404)

        -   Network found, already in App Cloud and returned (200)

        -   Network found, not in App Cloud, created, and returned (200)


        In the response object, `claimed` tells you whether the network has an
        owner.  


        If `claimed` is false, the network can be claimed by calling
        /api/v1/network_memberships. If `claimed` is true, the user can only be
        added as a member.
  /find:
    post:
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/POST_find'
        required: true
      tags:
        - Out of Box
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/POST_find_200'
          description: ''
        '400':
          description: Bad Request
        '404':
          description: Network Not Found
      security:
        - Authorization: []
      operationId: POST_find
      summary: Network Find/Create
      description: >-
        Get or create a Wi-Fi Motion network in App Cloud. The Guardian Id is
        shared with Core when the network first comes online.


        This endpoint verifies the existence of the user's network in Core and
        if it's claimable. If the network is present in Core, but not in App
        Cloud, the network is created.


        Calling this endpoint has one of the following outcomes:


        -   Network not found in MNS Core (404)

        -   Network found, already in App Cloud and returned (200)

        -   Network found, not in App Cloud, created, and returned (200)


        In the response object, `claimed` tells you whether the network has an
        owner.  


        If `claimed` is false, the network can be claimed by calling
        /api/v1/network_memberships. If `claimed` is true, the user can only be
        added as a member.
  /events:
    get:
      tags:
        - Events, History, and Visualizations
      parameters:
        - name: network_id
          description: Derived from the network session if user has rights to the network
          schema:
            minimum: 1
            type: number
          in: query
          required: false
        - name: from
          description: UTC Timestamp
          schema:
            type: number
          in: query
          required: false
        - name: to
          description: UTC Timestamp
          schema:
            type: number
          in: query
          required: true
        - name: bucket
          description: |+
            Bucket size in seconds

          schema:
            maximum: 900
            minimum: 1
            type: number
          in: query
          required: false
        - name: last
          schema:
            maximum: 400
            minimum: 0
            type: number
          in: query
          required: false
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  type: object
                  properties:
                    data:
                      type: object
                      properties:
                        skip_notifications:
                          type: boolean
                        user:
                          type: object
                          properties:
                            id:
                              type: integer
                            first_name:
                              type: string
                            last_name:
                              type: string
                        title:
                          type: string
                    event_category:
                      type: string
                    event_type:
                      type: string
                    tag:
                      type: string
                    guardian_id:
                      nullable: true
                      type: string
                    icon_url:
                      type: string
                    id:
                      type: string
                    network_id:
                      type: integer
                    text:
                      type: string
                    timestamp:
                      type: number
                example:
                  - data:
                      skip_notifications: false
                      user:
                        id: 42
                        first_name: Owner
                        last_name: Test
                    event_category: User
                    event_type: MemberArrivedEvent
                    tag: ''
                    icon_url: >-
                      data:image/png;base64,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
                    id: 6090082b01574a001208d62d
                    network_id: 156
                    text: Owner Arrived
                    timestamp: 1620052011.85
                  - data:
                      skip_notifications: false
                      user:
                        id: 41
                        first_name: Owner
                        last_name: Test
                    event_category: User
                    event_type: MemberArrivedEvent
                    tag: ''
                    icon_url: >-
                      data:image/png;base64,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
                    id: 608ffd1b01574a001208d589
                    network_id: 156
                    text: Owner Arrived
                    timestamp: 1620049179.494
                  - data: {}
                    event_category: Scene
                    event_type: SceneChangedToHomeEvent
                    tag: ''
                    icon_url: >-
                      data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAFoAAABaCAYAAAA4qEECAAAAAXNSR0IArs4c6QAACmlJREFUeAHtnX9wFNUdwL9vL3fB5BI9IEILkpgGA1SiYhUEE0yFYPhl6xQsVqnUDjA6tnY6WH40cJoxqfxwoP2n5R+n+kdnwGk7CgQiUxHU0U7tqFBpGpIhWugMUWJIYsgl2dfvdy8X9u729nZv9132kn0zye2+H9/3/X7u3dv33r79LgMHhfXr/+A9f6GtVOaslHG5lAMrRfWKAfj1nEMeA8gDxvIUlTnv4gBdjEEXAOvEuFYGvIkzqUlivKloSmHT/v0b+p1iHuo+ciEYDErv/r1/DgdeCTL/LmpSjvBy7dAIDetBOadAYn9jwN5acLf3n1ifbIfsVGSMCOiqZTV38sGBtZyxNZzzglQUN1uGMdbOOP8T82S90ni49kOz5a3mTxvo6upgfj/0r8fWuw44n2VVcUvlGfsUW/nLXvDub2gIXrEky2Bh4aCXrAqOl7tDz+Bv9mkEfINBvdKTjbGvJIDfSX7f3mMHg5dFVioMdNVju3J5e8c2BTBwv0gjrMtm3QScFQReaHx1E/XttgchoBct2/IQDLK92E3cZLvGAgVid/I5ePgzxw/X/9nuamwFvXTptsKQLP8eRw4P2K1oOuUhlKM+Sdp45MgLbXbVaxvoquot3xvEC4zj+uFUSWH/7cELd2ND/V9TFaEuZxn0qlVB3+Xu0E4E/HO14FFzzNi+8X7fswcPBkNWbLIEesWK4MTegb5DOGuba0UJp5fF2ecH12VlL3/jjeAXqeqaMmilP+ZyI0K+JdXKM6sca8qW2JJU++2UQFct23qrPMiP4UXvm5kFy5q2COui5GFLGg/XnTEryTRoBbLMT2JLDpitbDTkx26kQ5JYhVnYpkAPDd/eG2stObaBUMvG4d98M90IToiMBbrwhahPHmPdhRYdYtAn82PERCtdK84QaBrCDY0uxsiFTwtVbBwvJSbEJjZF69wQaBonj/YhnBacZHHERJlDJMuI6Un7aGXGx+EvBmSN2SweBt9PNoPUBU0Xvz7OPxo102pRTQGn69mM3a53cdTtOmiByIVs4NvBdXaFlU7WhKBpqROvrhm9Cqdjt+1JxEpZHk4gWbProEV7ub3jbKatJyewMW3RtJ4tFQRmat080GzRdGfEhWz++yFmxE6rZFyLpnt8A12hNtxL4cjbTzj9VeyQZfyxOjKw7qw8X2HsPci4Fk03Up0K2efLgh2//hHs2PYIeL1ZjsRM7MIMo9WLatG0JSAE2Jqddrcadfb7x0HtjrUw+9YixYLTZ85DzXOvQHf31WiLnHCGwz0f+ArVWxmiWjTtu3Ai5IkT82Hv7g3DkIklAac4SnNcwIaqsFQpFgUaO/N1qjRHHE6bdiP89qWNUFQ4KU4fiqM0yuO0EMvSE1FQ2aYly5pXzEiedH9+e1Yh7Kp7AsYHwvsaterPzR0HlfeVAXUl7V/QXkfHhILppZWHWppP/o80Gm7RtBfOMSqiIvfMnQE7634CeXnXJVUrPy8HdtU/oZRJmjmNGdRMlRZNuzo/uyD/EXWwZSenVVuql3wHNm9abWpkkZXlgYXls+HLL6/AuZaLVlWwpzxjxWsfvX/PiRMnuALam7PgTtzVicO6kQ+PrqmEJzcsh8h42YxGVGb+vJkwOCgrXYmZsoLy5v73Ij/U2nzqotJ1YMddKagiw2JxWy387KmV8PjaxYbLJMq47seL4eknV+Ke9ajRa6LsQuMjbMN9dHgTuNAK9YR7vR6o2boGVi6fp5fNVNqDK+YpMkn2iIYhtoweZ2j97HwHTmhHpH/OzcmG53c8BreVFQvh8fEnrbD9uVeh5+s+IfKTCcXfVE/xtKKAZ8Lkslm4bDAi27kmjM+DXb/5KcycIW7T6eRJAZh7Vym89/5Z6O21tKsrGdNE6b4r3Z0HJHowJ1EOkfE3TS1QJhvFN08WWY0iu7j4G0pdU6cYvmltq07EGB9gktMOmlrw3j0bYBK2tnQFqmsfziJnlE5NV5XD9RBjaegRs+FI0Qf0M6bJxfX5OaKripNPde7Gruruu9K7a4IYe4qnl/8SNZoWp5WAiKpFc2Db5ofB5/MKkG5MJE1s7quYDZcudUJLqzI7NlbQQi4cZnYh6Ht/gTLiV2wsCNYqumb1QmVsK0nDs36tbGmJIx0WzJ8Fof4BOPOvNuF14nC+03NzSfmzWJOwp6Vo0vDUxuXwyA9HfE4UB3TOHSXgx7WUf3zYHJdmc0RvFo7z8kTdFKKf6eZNq/CnWmaz3vaJe+jB+RC4wQ8v7j4IAwOD9glWSSLG0vCz1aoEOw5zcCJSX/u4oyFH7KxcWKboSjoLCfj8urAbb7SwU7/zgKbeW3+1Gm6/7VuaaaIjP/q4Bepe1NaLdBYVsvDWFXoHgAl2V9DX1w/0pxVCoQGt6LTEUd2XO8jkNAZkjONocsPgBpEEiLGEgwIXtEjKKJsYYx9NTkVEjTusW9B87gKcb7ukK6io8EaYXjJFN8/IJrJOuhi24t+9I6tI4trfevs0HHjtZOIMmLL6BxUOBw2tePOHN+la4SZaJkCMJfJBZFmSK0CXgOLniRw96eZyEy0TIMYSedPCKaIQZyCWNRwFAogtMZaGXJadGgU2OdWEU8Q4vGaJLsucqmXG6zXEVgFNfuEy3iCHGhBhq4Am53u4btzuUF0zVi1iSmzJAAU0eTgk53sZa5FDFSemEe+R4T4aFSUPhw7VN2PVUjMdBq24kUQPhxlrldMUR5Zq15zDoElP7Lhfdpq+mapPLEscT18L6XpYKBDww7hsY1sOrnT1Qk+P/gNBtOs/38CGdbL0Kt6M6Ojovma0iCONh4WiQFOdi6u3Pi9zXiOi/rEiExf5a99sqNuutjeq66AEcoiKnYjgr1ytwmg7Rj+nCsNou+I2D7d8eqK3pKSctiCUR2d1z4wQwG0Fexpfrz0UmzeuRVMG8jqLnfnnsZndc30CxIzYaeXSBK08nY9eZ7UKuHE6BJCZlmcDKhF3MVSLWfTAlgbsQlyfHWooCY4R5NHjR+urEyRfe85QKwO59sVbuF9ppblxKgI0nCNWOkGz64jkJx9B5No3cu5+ahMgRnr+lKhU3KgjVlTLuXf+XTy9grbm2/fIVGwlmXyObo+PN9TjkFg/6LboSFHyn4ybQD6InLufYQK4DPo+sTHCQ/diqBYw5Cv63bHjxlhtffwxNrz/oE/pBUZ9ShsGTVW5TmDDwBGaaSewpkBTNYuW1swGPvC269bYnA9pQ310+HsM/z9+pPY0+U+mb1UdPxaOyWay3azvaGJjGjQVoorIfzL1U3Q+FgLZSjanApn4pASaCtK4kS4GY2E0QqMLsjXZWJm4JAopgyaBdMUN+LMrcPa4L1EFGR+PtgX8voVGRxeJ7DV9MUwkyH3hTSIy4XhLLVotmvwnk2tf/OaOquMz8ZhsIFuS+YQ2Y5ttLVpdqftSMjWN8HHStY74IsljWpvfOVtyz8r97OurDB84vwNLGPKDn1yyqBz0mj22Bz3lPvzma9s/EVGLkBatVtR9cWSYhnDQEejuq1AjJNL46b7cN42wqSpybOi+rjrN0Km60fwC9v8Dl+ePFoVXjGcAAAAASUVORK5CYII=
                    id: 608affd901574a001208a6fd
                    network_id: 156
                    text: Scene Changed To Home
                    timestamp: 1619722201.144
                  - data:
                      title: Custom Alert
                    event_category: Motion
                    event_type: MotionExpectedEvent
                    tag: ''
                    icon_url: >-
                      data:image/png;base64,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
                    id: 608affd901574a001208a6fe
                    network_id: 156
                    text: Custom Alert
                    timestamp: 1619722201
                  - data: {}
                    event_category: Motion
                    event_type: MotionDetectedEvent
                    tag: ''
                    guardian_id: 5dc5cfe59b12797e2e3e362f
                    icon_url: >-
                      data:image/png;base64,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
                    id: 608afcb401574a001208a6d2
                    network_id: 156
                    text: Motion Detected Near desk
                    timestamp: 1619721396.06
                  - data: {}
                    event_category: Motion
                    event_type: MotionDetectedEvent
                    tag: ''
                    guardian_id: 5dc5cfe59b12797e2e3e362f
                    icon_url: >-
                      data:image/png;base64,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
                    id: 608afa9901574a001208a6bb
                    network_id: 156
                    text: Motion Detected Near Kitchen
                    timestamp: 1619720856.57
                  - data: {}
                    event_category: Motion
                    event_type: MotionDetectedEvent
                    tag: ''
                    guardian_id: 5dc5cfe59b12797e2e3e362f
                    icon_url: >-
                      data:image/png;base64,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
                    id: 608af63f01574a001208a683
                    network_id: 156
                    text: Motion Detected Near Kitchen
                    timestamp: 1619719743.07
          description: ''
        '400':
          description: ''
      security:
        - Authorization: []
      operationId: GET_events
      summary: Network Event History
  /mobile_devices/{id}:
    delete:
      tags:
        - Out of Box
      responses:
        '204':
          description: OK
        '404':
          description: Not Found
        '422':
          description: Unprocessable Entity
      security:
        - Authorization: []
      operationId: DELETE_moble_devices
      summary: Delete Device Push Token
      description: >-
        Deletes the firebase token associated with an app. Acts as a log off
        mechanism to allow a user to deregister a mobile device. 
    parameters:
      - name: id
        schema:
          minimum: 1
          type: integer
        in: path
        required: true
  /internal/oob/{network_id}:
    patch:
      tags:
        - Administration
      responses:
        '204':
          description: OK
        '400':
          description: ''
      security:
        - Authorization: []
      operationId: PATCH-internal-oob-network-id
      summary: Reset Out of Boxing
      description: >-
        Reset out of boxing by removing members from network. 


        Resets network's latitude, longitude and address and updates timezone to
        Eastern Time.
    parameters:
      - name: network_id
        schema:
          minimum: 1
          type: integer
        in: path
        required: true
  /meta:
    get:
      tags:
        - Meta
      parameters:
        - name: all
          description: >-
            all=true  is available to show the meta storage as is (by passing
            the per user flattening of the user key in the storage object per
            that user) for both members or owners, this is meant only for
            internal use/debug
          schema:
            type: boolean
          in: query
          required: false
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PATCH_meta'
          description: OK
        '400':
          description: Bad request
      security:
        - Authorization: []
      operationId: GET_meta
      summary: Get Meta of Network
      description: Shows the network's meta storage
    patch:
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PATCH_meta'
        required: true
      tags:
        - Meta
      responses:
        '201':
          description: OK
        '400':
          description: Bad Request
        '403':
          description: Only network owners can change the meta
      security:
        - Authorization: []
      operationId: PATCH_meta
      summary: Patch Meta Storage
      description: "The API supports two storage areas:\r\n\r\n- network: a storage area that is shared by all network users, writable by the owner but only readable by a member\r\n- user: a read/write storage area that is only visible to the current user (member or owner) "
    delete:
      tags:
        - Meta
      responses:
        '204':
          description: Success
        '400':
          description: Bad Request
        '403':
          description: Only network owners can delete the meta
      security:
        - Authorization: []
      operationId: DELETE_meta
      summary: Delete Meta Storage
      description: Deletes network meta storage. Only the owner can perform this action.
  /user/meta:
    get:
      tags:
        - Meta
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GET_user_meta'
          description: OK
        '400':
          description: Bad request
        '401':
          description: Unauthorized
      security:
        - Authorization: []
      operationId: GET_user_meta
      summary: '[BETA] Get Meta of User'
      description: Shows the user's meta storage
    patch:
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PATCH_user_meta'
        required: false
      parameters:
        - name: overwrite
          description: >-
            Setting overwrite to `true` will replace the existing data with the
            values specified in the Body.  Otherwise, the data specified in the
            Body will append to the existing data.
          schema:
            type: boolean
          in: query
          required: false
      tags:
        - Meta
      responses:
        '201':
          description: Created
        '400':
          description: Bad Request
        '401':
          description: Unauthorized
      security:
        - Authorization: []
      operationId: PATCH_user_meta
      summary: '[BETA] Patch Meta User Storage'
      description: Appends or overwrites the user meta storage.
    delete:
      tags:
        - Meta
      responses:
        '204':
          description: No Content
        '400':
          description: Bad Request
        '401':
          description: Unauthorized
        '404':
          description: Not Found
      security:
        - Authorization: []
      operationId: DELETE_user_meta
      summary: '[BETA] Delete Meta User Storage'
      description: Deletes user meta storage.
  /password_resets:
    put:
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PUT_password_resets'
      tags:
        - Logging In
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PUT_password_resets_200'
          description: ''
        '401':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PUT_password_resets_401'
          description: ''
      operationId: PUT_password_resets
      summary: Reset Account Password
      description: >-
        Update user password. Endpoint used by the 'Enter new password page' in
        the reset password flow.
    post:
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/POST_password_resets'
      tags:
        - Account Management
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/POST_password_resets_200'
          description: ''
        '401':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/POST_password_resets_401'
          description: ''
      security:
        - Authorization: []
      operationId: POST_password_resets
      summary: Set New Account Password
      description: >-
        Sends email to given address with password reset link that redirects to
        static reset page
  /sounding/settings:
    get:
      tags:
        - Sounding v2
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetSoundingSettingsConfig'
        '404':
          description: Network not found
      security:
        - Authorization: []
      operationId: GET_sounding-settings
      summary: Get Global Settings
      description: >-
        This endpoint allows retreival of key global configuration options for
        leaf/node (where applicable) sounding behaviour.
    patch:
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchSoundingSettingsConfig'
            example:
              cooldown: 20
              leafblower_cutoff: -1.1
      tags:
        - Sounding v2
      parameters:
        - name: update
          description: "Default: false\r\nWhen true the new configuration is immediately propagated to the network this node is part of.\r\n\r\nIf this value is false, the change will be propagated to edge either when the device is rebooted or an update is triggered."
          schema:
            type: boolean
          in: query
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SoundingSettingsConfigReturn'
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationError'
          description: Validation error.
      security:
        - Authorization: []
      operationId: PATCH_sounding-settings
      summary: Update Global Settings
      description: >-
        This endpoint allows the manipulation of key global configuration
        options for leaf/node (where applicable) sounding behaviour.
  /sounding/clients:
    get:
      tags:
        - Sounding v2
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SoundingClientStatus'
              examples:
                SoundingClientStatus:
                  value:
                    devices:
                      - friendly_name: test_name
                        is_extender: false
                        is_node: false
                        is_online: true
                        location: '435117'
                        mac: '00:11:22:33:44:55'
                        sensitivity: 1
                        sensitivity_mode: global
                        sounding_mode: allow
                        sounding_status: false
                        sounding_status_reason: N/A
                        sounding_status_score: -1
                        sounding_warmup: null
                      - device_id: EM7E00005C
                        friendly_name: NodeA
                        id: 0
                        is_extender: false
                        is_node: true
                        is_online: true
                        is_root: false
                        location: LocationA
                        sensitivity: 1
                        sensitivity_mode: global
                        sounding_mesh: allow
                        mac: 70:3a:cb:f1:ae:73
                        sounding_status: false
                        sounding_status_reason: N/A
                        sounding_status_score: -1
                        sounding_warmup: null
                        links:
                          - src_id: 3
                            rssi: '-56'
                            if_ch: 5
        '400':
          description: ''
      security:
        - Authorization: []
      operationId: GET_sounding-clients
      summary: Get Client State
      description: This endpoint allows client-level sounding control and feedback.
    patch:
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SoundingClientConfig'
      tags:
        - Sounding v2
      parameters:
        - name: update
          description: "Default: false\r\nWhen true the new configuration is immediately propagated to the network this node is part of.\r\n\r\nIf this value is false, the change will be propagated to edge either when the device is rebooted or an update is triggered."
          schema:
            type: boolean
          in: query
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SoundingClientConfigReturn'
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationError'
          description: Validation error.
      security:
        - Authorization: []
      operationId: PATCH_sounding-clients
      summary: Set Client Config
      description: This endpoint allows client-level sounding control and feedback.
  /logout:
    post:
      tags:
        - Logging In
      responses:
        '204':
          description: Success
        '400':
          description: Bad Request
      security:
        - Authorization: []
      summary: Logout
      operationId: POST_logout
      description: 'End the session for the current user. Requires valid JWT. '
  /networks/info:
    get:
      tags:
        - Network Settings
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GET_networks_info'
          description: OK
        '400':
          description: Bad Request
      security:
        - Authorization: []
      summary: Show Network Info
      operationId: GET_networks_info
      description: |-
        Returns the following internal network identifiers:

        -   guardian_id
        -   external_id
        -   network_id
        -   nodes
components:
  schemas:
    DeviceInfo:
      title: Root Type for DeviceInfo
      description: Device info record
      type: object
      properties:
        device_type:
          description: Human-readable identification string for this device
          type: string
        hostname:
          description: Device hostname (if available)
          type: string
        mac:
          description: Device MAC address
          type: string
        os:
          description: Operating System
          type: string
        name:
          description: Device name
          type: string
        category:
          description: Device category
          type: string
        brand:
          description: Brand name
          type: string
        model:
          description: Model name
          type: string
        modelNumber:
          description: Model number
          type: string
        ts:
          description: Timestamp of last identification
          type: number
      example:
        device_type: Google Streaming Dongle Chromecast
        hostname: Google-Home-Mini
        mac: f0:ef:86:63:03:73
      x-tagGroup: CORE INTERNAL
    PATCH_zone_priority:
      type: array
      items:
        type: string
      example:
        - Entrance
        - Master Bedroom
        - Backyard
    POST_sleep_times-settings:
      type: object
      properties:
        enabled:
          description: toggle on or off the sleep feature
          type: boolean
        sleep_hour:
          description: user supplied hour for time of sleep
          type: integer
        sleep_minute:
          description: user supplied minute for time of sleep
          type: integer
        wake_hour:
          description: user supplied hour for time of wake
          type: integer
        wake_minute:
          description: user supplied minute for time of wake
          type: integer
      example:
        enabled: false
        sleep_hour: 23
        sleep_minute: 0
        wake_hour: 9
        wake_minute: 15
    POST_mobile_devices:
      required:
        - token
      type: object
      properties:
        token:
          type: string
    POST_bulk_user_presences:
      type: object
      properties:
        presence_events:
          type: array
          items:
            type: object
            properties:
              networkId:
                description: >-
                  We temporarily support both "network_id" and "networkId" due
                  to a bug in the iOS app
                type: integer
              timestamp:
                type: number
              is_arriving:
                type: boolean
              network_id:
                type: number
        network_id:
          type: integer
      example:
        presence_events:
          - networkId: 28
            timestamp: 1598910716.216094
            is_arriving: false
        network_id: 28
    PUT_node:
      required:
        - network_id
        - node_id
      type: object
      properties:
        friendly_name:
          type: string
        location:
          type: string
        network_id:
          type: integer
        node_id:
          type: integer
    PUT_networks-id:
      type: object
      properties:
        name:
          type: string
        address:
          type: string
        latitude:
          type: integer
        longitude:
          type: integer
        timezone:
          type: string
        pet_size:
          type: string
        scene_id:
          type: integer
        building_type:
          type: string
        building_size:
          type: string
        live_enabled:
          type: boolean
        id:
          type: integer
    POST_user_presences:
      required:
        - is_arriving
        - timestamp
      type: object
      properties:
        network_id:
          minimum: 0
          type: integer
        is_arriving:
          type: boolean
        timestamp:
          type: number
    PATCH_sessions:
      required:
        - token
      type: object
      properties:
        token:
          type: string
    POST_sessions:
      required:
        - email
        - password
      type: object
      properties:
        email:
          type: string
        password:
          type: string
        first_name:
          type: string
        last_name:
          type: string
    POST_sessions_sso_apple:
      type: object
      properties:
        user:
          type: object
          properties:
            name:
              type: object
              properties:
                firstName:
                  type: string
                  example: John
                lastName:
                  type: string
                  example: Smith
            email:
              type: string
              format: email
              example: user@cognitivesystems.com
        access_token:
          type: string
          description: JWT token issued by Apple SSO
          example: NEW.APPLE.AUTH.TOKEN
      required:
        - access_token
    POST_sessions_sso_google:
      type: object
      properties:
        access_token:
          type: string
          description: JWT token issued by Google SSO
          example: NEW.GOOGLE.AUTH.TOKEN
        client_id:
          type: string
          description: JWT token issued by Google
          example: NEW.GOOGLE.CLIENT.ID
      required:
        - access_token
        - client_id
    POST_sessions_sso_cognito:
      type: object
      properties:
        access_token:
          type: string
          description: JWT token issued by Google SSO
          example: NEW.COGNITO.AUTH.TOKEN
      required:
        - access_token
    POST_network_memberships:
      required:
        - role
        - network_id
        - user_id
      type: object
      properties:
        role:
          description: '"owner"'
          type: string
        network_id:
          type: integer
        user_id:
          type: integer
        expand:
          type: array
          items:
            type: string
    PUT_users-id:
      type: object
      properties:
        email:
          type: string
        password:
          type: string
        first_name:
          type: string
        last_name:
          type: string
    PATCH_internal-users-reset:
      description: Set user account with given email to specified password
      required:
        - email
        - password
      type: object
      properties:
        email:
          format: email
          type: string
        password:
          minLength: 6
          type: string
    POST_event_tag:
      required:
        - network_id
        - eventid
      type: object
      properties:
        network_id:
          type: integer
        eventid:
          type: string
        tag:
          description: Must be one of "Human", "Pet" or "False"
          type: string
      example:
        network_id: 1
        eventid: abc123
        tag: 'False'
    PUT_network_scene_configs-id:
      type: object
      properties:
        id:
          type: integer
        excessive_motion_seconds:
          type: integer
        excessive_motion_enabled:
          type: boolean
        auto_switching_enabled:
          type: boolean
        guardian_enabled:
          type: boolean
        guardian_weekday_start_time_hours:
          type: number
        guardian_weekday_start_time_minutes:
          type: number
        guardian_weekday_end_time_hours:
          type: number
        guardian_weekday_end_time_minutes:
          type: number
        guardian_weekend_start_time_hours:
          type: number
        guardian_weekend_start_time_minutes:
          type: number
        guardian_weekend_end_time_hours:
          type: number
        guardian_weekend_end_time_minutes:
          type: number
    PUT_network_motion_config:
      required:
        - network_id
      type: object
      properties:
        network_id:
          anyOf:
            - type: integer
            - type: number
        cooldown:
          anyOf:
            - type: integer
            - type: number
        sensitivity_level:
          enum:
            - very-low
            - low
            - normal
            - high
          type: string
      example:
        network_id: 6
        cooldown: 300
        sensitivity_level: normal
    PUT_password_resets:
      required:
        - token
      type: object
      properties:
        token:
          type: string
        password:
          type: string
    POST_member_invites:
      required:
        - network_id
        - emails
      type: object
      properties:
        network_id:
          type: string
        emails:
          type: array
          items:
            type: string
    POST_internal-invite:
      required:
        - network_id
        - email
      type: object
      properties:
        network_id:
          type: integer
        email:
          format: email
          type: string
      example:
        network_id: 3
        email: john.smith@cognitivesystems.com
    POST_users:
      required:
        - email
        - password
        - first_name
        - last_name
      type: object
      properties:
        email:
          type: string
        password:
          type: string
        first_name:
          type: string
        last_name:
          type: string
        username:
          type: string
    GET_activity-queried_days:
      type: object
      properties:
        queried_days:
          description: the number of days queried
          type: integer
        activity:
          type: array
          items:
            type: object
            properties:
              house_day:
                description: unix time day count
                type: integer
              activity_minutes:
                description: number of minutes of activity in the household
                type: integer
              day_ts:
                description: unix time day timestamp
                type: integer
        '':
          type: string
      example:
        queried_days: 7
        activity:
          - house_day: 18960
            activity_minutes: 214
            day_ts: 1638162000
          - house_day: 18961
            activity_minutes: 142
            day_ts: 1638248400
          - house_day: 18962
            activity_minutes: 510
            day_ts: 1638334800
          - house_day: 18963
            activity_minutes: 55
            day_ts: 1638421200
          - house_day: 18964
            activity_minutes: 49
            day_ts: 1638507600
          - house_day: 18965
            activity_minutes: 182
            day_ts: 1638594000
          - house_day: 18966
            activity_minutes: 86
            day_ts: 1638680400
    PUT_leaf:
      required:
        - mac_address
        - network_id
      type: object
      properties:
        friendly_name:
          type: string
        location:
          description: >-
            Set as empty string to specify mobile device. Can also use 'mobile'
            boolean field to do this.
          type: string
        mac_address:
          pattern: >-
            ^((([0-9A-F]{2}:){5})|(([0-9A-F]{2}-){5})|([0-9A-F]{10}))([0-9A-F]{2})$
          type: string
        network_id:
          type: integer
        auto:
          enum:
            - '1'
            - ''
            - '0'
          type: string
        mobile:
          type: boolean
    PATCH_devices:
      type: object
      properties:
        devices:
          type: array
          items:
            required:
              - location
              - friendly_name
            type: object
            properties:
              mac_address:
                description: 'required if item is a leaf '
                type: string
              auto:
                description: cannot be included if device is a node, one of "1", "" or "0"
                enum:
                  - ''
                  - '0'
                  - '1'
                type: string
              location:
                type: string
              friendly_name:
                type: string
              node_id:
                description: >-
                  required if the mutation is a node, item cannot include
                  mac_address and auto key.
                type: integer
      example:
        devices:
          - mac_address: e6:c4:19:c7:2e:f1
            auto: '0'
            location: Kitchen
            friendly_name: Amazon Alexa
          - mac_address: c2:8e:01:69:7f:f2
            auto: ''
            location: Living Room
            friendly_name: Aura Frame
          - location: Basement
            friendly_name: Mesh Node
            node_id: 4
          - mac_address: c2:8e:01:69:7f:f2
            auto: ''
            location: Living Room
            friendly_name: Smart TV
    POST_searches:
      required:
        - bssid
      type: object
      properties:
        bssid:
          type: string
    POST_find:
      required:
        - guardian_id
      type: object
      properties:
        guardian_id:
          type: string
    POST_sleep_times-settings_201:
      required:
        - enabled
        - sleep_hour
        - sleep_minute
        - wake_hour
        - wake_minute
      type: object
      properties:
        enabled:
          type: boolean
        sleep_hour:
          type: integer
        sleep_minute:
          type: integer
        wake_hour:
          type: integer
        wake_minute:
          type: integer
      example:
        enabled: false
        sleep_hour: 23
        sleep_minute: 0
        wake_hour: 9
        wake_minute: 15
    GET_sleep_times-settings_200:
      required:
        - enabled
        - sleep_hour
        - sleep_minute
        - wake_hour
        - wake_minute
      type: object
      properties:
        enabled:
          type: boolean
        sleep_hour:
          type: integer
        sleep_minute:
          type: integer
        wake_hour:
          type: integer
        wake_minute:
          type: integer
      example:
        enabled: false
        sleep_hour: 23
        sleep_minute: 0
        wake_hour: 9
        wake_minute: 15
    POST_mobile_devices_201:
      type: object
      properties:
        id:
          type: integer
        token:
          type: string
        user_id:
          type: integer
        created_at:
          type: string
        updated_at:
          type: string
      example:
        id: 2345
        token: >-
          egxcipdIRm2Ng4pWuJuRN3:APA91bE2M42o7XBlVMAslS9YhWVr3ELXmDCM8QebHAMwvVuRWA8nYahtPvUA3LV0A-t2PW4jhmn0RF7omCpQ9BH-n6WA5CVyN1hNfsgf7EqP01Z2Hpto7NeA-ewBQAtJIgmfrBl6-rEG
        user_id: 345
        created_at: '2020-09-08 15:30:32'
        updated_at: '2020-09-08 15:30:32'
    POST_bulk_user_presences_200:
      type: object
      properties:
        failures:
          type: array
          items:
            type: string
      example:
        failures:
          - timestamp: 1603895421.6
            is_arriving: false
            network_id: 2
    GET_networks-id_200:
      type: object
      properties:
        id:
          type: integer
        address:
          type: string
        building_size:
          type: string
        building_type:
          type: string
        latitude:
          type: string
        longitude:
          type: string
        live_enabled:
          type: boolean
        name:
          anyOf:
            - type: string
              nullable: true
        pet_size:
          type: string
        timezone:
          type: string
        user_count:
          type: number
        created_at:
          type: string
        updated_at:
          type: string
        external_id:
          type: integer
        scene_id:
          type: integer
        present_count:
          type: integer
        claimed:
          type: boolean
        owner_email:
          type: string
        network_scene_config:
          anyOf:
            - type: object
              nullable: true
            - type: integer
              nullable: true
        subscription_id:
          nullable: true
          type: string
      example:
        id: http://json-schema.org/schema#
    PUT_networks-id_200:
      type: object
      properties:
        id:
          type: integer
        address:
          type: string
        building_size:
          type: string
        building_type:
          type: string
        latitude:
          type: string
        longitude:
          type: string
        live_enabled:
          type: boolean
        name:
          anyOf:
            - type: string
              nullable: true
        pet_size:
          type: string
        timezone:
          type: string
        user_count:
          type: number
        created_at:
          type: string
        updated_at:
          type: string
        external_id:
          type: integer
        scene_id:
          type: integer
        present_count:
          type: integer
        claimed:
          type: boolean
        network_scene_config:
          anyOf:
            - type: object
              nullable: true
            - type: integer
              nullable: true
        owner_email:
          type: string
        subscription_id:
          nullable: true
          type: string
    DELETE_networks-id_403:
      type: object
      properties:
        error_type:
          type: string
        error_message:
          type: string
        meta:
          type: object
      example:
        error_type: forbidden
        error_message: You are not authorized to access the requested resource.
        meta: {}
    GET_internal-network-network_id_200:
      type: object
      properties:
        network_id:
          type: integer
        external_id:
          type: integer
        users:
          type: array
          items:
            type: object
            properties:
              id:
                type: integer
              username:
                type: string
              email:
                type: string
              password_digest:
                type: string
              first_name:
                type: string
              last_name:
                type: string
              discarded_at:
                type: string
              created_at:
                type: string
              updated_at:
                type: string
              confirmed_at:
                nullable: true
                type: string
              internal:
                type: boolean
              role:
                type: string
              is_confirmed:
                type: boolean
        network:
          type: object
          properties:
            id:
              type: integer
            name:
              type: string
            created_at:
              type: string
            updated_at:
              type: string
            external_id:
              type: integer
            user_count:
              type: integer
            latitude:
              type: string
            longitude:
              type: string
            address:
              type: string
            timezone:
              type: string
            pet_size:
              type: string
            building_type:
              type: string
            building_size:
              type: string
            live_enabled:
              type: boolean
            scene_id:
              type: integer
        network_scene_config:
          type: object
          properties:
            id:
              type: integer
            network_id:
              type: integer
            excessive_motion_seconds:
              type: integer
            excessive_motion_enabled:
              type: boolean
            created_at:
              type: string
            updated_at:
              type: string
            guardian_enabled:
              type: boolean
            guardian_weekday_start_time_hours:
              type: integer
            guardian_weekday_start_time_minutes:
              type: integer
            guardian_weekday_end_time_hours:
              type: integer
            guardian_weekday_end_time_minutes:
              type: integer
            guardian_job_id:
              type: integer
            auto_switching_enabled:
              type: boolean
            guardian_weekend_start_time_hours:
              type: integer
            guardian_weekend_start_time_minutes:
              type: integer
            guardian_weekend_end_time_hours:
              type: integer
            guardian_weekend_end_time_minutes:
              type: integer
        mobile_devices:
          type: array
          items:
            type: object
            properties:
              id:
                type: integer
              token:
                type: string
              user_id:
                type: integer
              created_at:
                type: string
              updated_at:
                type: string
              external_id:
                type: integer
        invitations:
          type: array
          items:
            type: object
            properties:
              id:
                type: integer
              network_id:
                type: integer
              email:
                type: string
              created_at:
                type: string
              updated_at:
                type: string
        leafs:
          type: array
          items:
            type: object
            properties:
              location:
                type: string
              name:
                type: string
              use_for_motion:
                anyOf:
                  - type: integer
                  - type: string
              mobile_device:
                type: boolean
              mac:
                type: string
        nodes:
          type: array
          items:
            type: object
            properties:
              node_id:
                type: integer
              location:
                type: string
              friendly_name:
                type: string
        system:
          type: object
          properties:
            pet_filter:
              type: integer
            sensitivity:
              type: string
            notification_cooldown:
              type: integer
            online:
              type: boolean
            last_motion:
              type: integer
    POST_user_presences_200:
      type: object
      properties:
        failures:
          type: array
          items:
            type: object
            properties:
              network_id:
                type: integer
              is_arriving:
                type: boolean
              timestamp:
                type: number
    PATCH_sessions_200:
      type: object
      properties:
        refresh_token:
          description: New refresh token
          pattern: '[Bearer\s]?[a-zA-Z0-9\-_]+?\.[a-zA-Z0-9\-_]+?\.([a-zA-Z0-9\-_]+)?$'
          type: string
        token:
          description: New auth token
          pattern: '[Bearer\s]?[a-zA-Z0-9\-_]+?\.[a-zA-Z0-9\-_]+?\.([a-zA-Z0-9\-_]+)?$'
          type: string
        user:
          description: User data
          required:
            - id
            - username
            - email
            - first_name
            - last_name
            - created_at
            - updated_at
            - confirmed_at
          type: object
          properties:
            id:
              type: integer
            username:
              type: string
            email:
              format: email
              type: string
            first_name:
              type: string
            last_name:
              type: string
            created_at:
              format: date-time
              type: string
            updated_at:
              format: date-time
              type: string
            sub:
              nullable: true
              type: string
            confirmed_at:
              nullable: true
              type: string
            valid_from:
              type: number
      example:
        refresh_token: NEW.AUTH.TOKEN
        token: NEW.REFRESH.TOKEN
        user:
          id: 420
          email: user@cognitivesystems.com
          first_name: John
          last_name: Smith
          created_at: '2020-01-04T22:05:38.793Z'
          updated_at: '2020-01-04T22:06:02.059Z'
          confirmed_at: '2020-01-04T22:06:02.056Z'
    POST_sessions_200:
      type: object
      properties:
        refresh_token:
          type: string
        token:
          type: string
        user:
          type: object
          properties:
            id:
              type: integer
            username:
              type: string
            email:
              type: string
            first_name:
              type: string
            last_name:
              type: string
            created_at:
              type: string
            updated_at:
              type: string
            confirmed_at:
              nullable: true
              type: string
            sub:
              nullable: true
              type: string
            valid_from:
              type: number
      example:
        refresh_token: JWT TOKEN
        token: JWT TOKEN
        user:
          id: 601
          email: user@cognitivesystems.com
          first_name: John
          last_name: Smith
          created_at: '2020-01-04T22:05:38.793Z'
          updated_at: '2020-01-04T22:06:02.059Z'
          confirmed_at: '2020-01-04T22:06:02.056Z'
    GET_network_memberships_200:
      type: object
      properties:
        data:
          type: array
          items:
            type: object
            properties:
              id:
                type: integer
              role:
                type: string
              user:
                anyOf:
                  - type: integer
                  - type: object
              network:
                anyOf:
                  - type: object
                  - type: integer
              created_at:
                type: string
              updated_at:
                type: string
              is_present:
                type: boolean
    POST_network_memberships_201:
      required:
        - id
        - role
        - created_at
        - updated_at
      type: object
      properties:
        id:
          description: |
            Incremental App Cloud Id used internally for memberships
          type: integer
        role:
          description: >-
            Users with 'owner' role have full access to a network, while
            'member' users do not
          enum:
            - owner
            - member
          type: string
        user:
          anyOf:
            - type: integer
            - type: object
        network:
          anyOf:
            - type: integer
            - type: object
        created_at:
          format: date-time
          description: ''
          type: string
        updated_at:
          format: date-time
          description: ''
          type: string
        is_present:
          type: boolean
    POST_confirmation_mails_401:
      type: object
      properties:
        error:
          type: string
      example:
        error: Invalid Token
    GET_invitations_200:
      type: object
      properties:
        data:
          type: array
          items:
            type: object
            properties:
              id:
                type: integer
              email:
                type: string
              created_at:
                type: string
              updated_at:
                type: string
      example:
        data:
          - id: 108
            email: d.vekariya99@gmail.com
            created_at: '2021-05-18T18:03:19.418Z'
            updated_at: '2021-05-18T18:03:19.418Z'
    PUT_users-id_200:
      description: ''
      type: object
      properties:
        id:
          type: integer
        username:
          type: string
        email:
          type: string
        first_name:
          type: string
        last_name:
          type: string
        created_at:
          type: string
        updated_at:
          type: string
        confirmed_at:
          nullable: true
          type: string
    DELETE_users-id_403:
      type: object
      properties:
        type:
          type: string
        error_type:
          type: string
        error_message:
          type: string
        meta:
          type: object
      example:
        error_type: forbidden
        error_message: You are not authorized to access the requested resource.
        meta: {}
    GET_users-id_200:
      type: object
      properties:
        id:
          type: integer
        username:
          type: string
        email:
          type: string
        first_name:
          type: string
        last_name:
          type: string
        created_at:
          type: string
        updated_at:
          type: string
        confirmed_at:
          nullable: true
          type: string
      example:
        id: 98
        username: ''
        email: test@cognitivesystems.com
        first_name: Cognitive
        last_name: Systems
        created_at: '2021-04-12T21:04:19.647Z'
        updated_at: '2021-04-12T21:04:38.403Z'
        confirmed_at: '2021-04-12T21:04:38.403Z'
    PATCH_internal-users-reset_200:
      type: object
      properties:
        id:
          type: integer
        username:
          type: string
        email:
          type: string
        first_name:
          type: string
        last_name:
          type: string
        created_at:
          type: string
        updated_at:
          type: string
        confirmed_at:
          nullable: true
          type: string
      example:
        id: 3
        username: jsmith
        email: john.smith@cognitivesystems.com
        first_name: John
        last_name: Smith
        created_at: '2020-08-27T20:44:38.793Z'
        updated_at: '2020-11-10T20:08:40.754Z'
        confirmed_at: '2020-08-27T20:44:38.793Z'
    GET_confirmations_200:
      type: object
      properties:
        id:
          type: integer
        email:
          type: string
        first_name:
          type: string
        last_name:
          type: string
        username:
          type: string
        confirmed_at:
          nullable: true
          type: string
        created_at:
          type: string
        updated_at:
          type: string
    GET_confirmations_401:
      type: object
      properties:
        error:
          type: string
    POST_event_tag_200:
      type: object
      properties:
        id:
          type: string
        guardian_id:
          type: string
        network_id:
          anyOf:
            - type: integer
            - type: string
        timestamp:
          type: number
        event_type:
          type: string
        event_category:
          type: string
        link_id:
          type: string
        icon_url:
          type: string
        text:
          type: string
        tag:
          type: string
        data:
          type: object
          additionalProperties:
            type: string
    GET_internal-users-search-name_400:
      type: object
    GET_internal-network_map_200:
      type: object
      properties:
        id:
          type: integer
        name:
          type: string
        created_at:
          type: string
        updated_at:
          type: string
        external_id:
          type: integer
        user_count:
          type: integer
        latitude:
          type: string
        longitude:
          type: string
        address:
          type: string
        timezone:
          type: string
        pet_size:
          type: string
        building_type:
          type: string
        building_size:
          type: string
        live_enabled:
          type: boolean
        scene_id:
          type: integer
    GET_network_scene_configs-id_200:
      type: object
      properties:
        id:
          type: integer
        excessive_motion_enabled:
          type: boolean
        excessive_motion_seconds:
          type: integer
        network_id:
          type: integer
        created_at:
          type: string
        updated_at:
          type: string
        auto_switching_enabled:
          type: boolean
        guardian_enabled:
          type: boolean
        guardian_weekday_start_time_hours:
          type: number
        guardian_weekday_start_time_minutes:
          type: number
        guardian_weekday_end_time_hours:
          type: number
        guardian_weekday_end_time_minutes:
          type: number
        guardian_weekend_start_time_hours:
          type: number
        guardian_weekend_start_time_minutes:
          type: number
        guardian_weekend_end_time_hours:
          type: number
        guardian_weekend_end_time_minutes:
          type: number
    GET_network_scene_configs-id_403:
      type: object
      properties:
        error_type:
          type: string
        error_message:
          type: string
        meta:
          type: object
    PUT_network_scene_configs-id_200:
      type: object
      properties:
        id:
          type: integer
        excessive_motion_enabled:
          type: boolean
        excessive_motion_seconds:
          type: integer
        network_id:
          type: integer
        created_at:
          type: string
        updated_at:
          type: string
        auto_switching_enabled:
          type: boolean
        guardian_enabled:
          type: boolean
        guardian_weekday_start_time_hours:
          type: number
        guardian_weekday_start_time_minutes:
          type: number
        guardian_weekday_end_time_hours:
          type: number
        guardian_weekday_end_time_minutes:
          type: number
        guardian_weekend_start_time_hours:
          type: number
        guardian_weekend_start_time_minutes:
          type: number
        guardian_weekend_end_time_hours:
          type: number
        guardian_weekend_end_time_minutes:
          type: number
    GET_sleep_times-data-queried_days_200:
      type: object
      properties:
        avg_sleep_time_s:
          type: integer
        avg_wake_time_s:
          type: integer
        average_interruptions:
          type: number
        duration_avg_s:
          type: integer
        queried_days:
          description: the number of days actually queried to the insights micro-service
          type: integer
        motion_state:
          description: >-
            the `unarmed`/`home`/`0` or `armed`/`away`/ `1` history of the
            network
          type: object
          properties:
            data:
              description: >-
                hourly unarmed/armed or home/away state. 

                `0` meaning unarmed (home) 

                `1` meaning armed (away) 

                starting from the hour equivalent to the number of queried days
                from now (UTC) to the last completed hour. The start can be
                limited to the last completed hour from when sleep settings were
                enabled if the enabling of sleep settings was more recent than
                the number of queried days.
              type: array
              items:
                maximum: 1
                minimum: 0
                type: integer
            from_ts:
              description: the UTC timestamp from which the motion_state hourly data begins
              type: integer
            bucket:
              description: the resolution of motion state. `3600` is hourly
              type: integer
        data:
          description: >-
            the array of days queried, length of array will match queried number
            of days
          type: array
          items:
            type: object
            properties:
              house_day:
                description: day count from the unix epoch
                type: integer
              sleep_ts:
                description: sleep timestamp in UTC (seconds)
                type: integer
              sleep_weight:
                description: >-
                  the certainty that that the user supplied sleep time matches
                  the data
                type: number
              wake_ts:
                description: wake timestamp in UTC (seconds)
                type: integer
              wake_weight:
                description: >-
                  weight of certainty that that the user supplied wake time
                  matches the data
                type: number
              sleep_interruptions:
                description: binary response if you were interrupted or not
                type: number
      example:
        avg_sleep_time_s: 82380
        avg_wake_time_s: 23280
        duration_avg_s: 27900
        queried_days: 6
        motion_state:
          data:
            - 0
            - 0
            - 0
            - 1
            - 1
            - 1
            - 1
            - 1
            - 1
            - 1
            - 1
            - 1
            - 1
            - 1
            - 1
            - 1
            - 1
            - 1
            - 1
            - 1
            - 1
            - 1
            - 1
            - 1
            - 0
            - 0
            - 0
            - 0
            - 0
            - 0
            - 1
            - 1
            - 1
            - 0
            - 0
            - 0
            - 0
            - 0
            - 0
            - 0
            - 0
            - 0
            - 0
            - 0
            - 0
            - 0
            - 0
            - 0
            - 0
            - 0
            - 0
            - 0
            - 0
            - 0
            - 0
            - 0
            - 0
            - 0
            - 0
            - 1
            - 1
            - 1
            - 1
            - 1
            - 1
            - 1
            - 1
            - 1
            - 0
            - 0
            - 0
            - 0
            - 0
            - 0
            - 0
            - 0
            - 0
            - 0
            - 0
            - 0
            - 0
            - 0
            - 0
            - 0
            - 0
            - 0
            - 0
            - 0
            - 0
            - 0
            - 0
            - 0
            - 0
            - 0
            - 0
            - 0
            - 0
            - 0
            - 0
            - 0
            - 0
            - 0
            - 0
            - 0
            - 0
            - 0
            - 0
            - 0
            - 0
            - 0
            - 0
            - 0
            - 0
            - 0
            - 0
            - 0
            - 0
            - 0
            - 0
            - 0
            - 0
            - 0
            - 0
            - 0
            - 0
            - 0
            - 0
            - 0
            - 0
            - 0
            - 0
            - 0
            - 0
            - 0
            - 0
            - 0
            - 0
            - 0
            - 0
            - 0
            - 0
            - 0
            - 0
            - 0
            - 0
            - 0
            - 0
            - 0
            - 0
            - 0
            - 0
            - 0
            - 0
            - 0
            - 0
            - 0
            - 0
            - 0
            - 0
            - 0
            - 0
            - 0
            - 0
            - 0
            - 0
            - 0
            - 0
            - 0
          from_ts: 1618243200
          bucket: 3600
        data:
          - house_day: 18729
            sleep_ts: 1618266600
            sleep_weight: 0.923879533
            wake_ts: 1618286400
            wake_weight: 0.965925826
          - house_day: 18730
            sleep_ts: 1618353900
            sleep_weight: 0.896872742
            wake_ts: 1618372800
            wake_weight: 0.965925826
          - house_day: 18731
            sleep_ts: 1618440300
            sleep_weight: 0.896872742
            wake_ts: 1618476300
            wake_weight: 0.555570233
          - house_day: 18732
            sleep_ts: 1618517700
            sleep_weight: 0.98078528
            wake_ts: 1618545600
            wake_weight: 0.965925826
          - house_day: 18734
            sleep_ts: 1618687800
            sleep_weight: 0.923879533
            wake_ts: 1618711200
            wake_weight: 0.707106781
          - house_day: 18735
            sleep_ts: 1618766100
            sleep_weight: 0.555570233
            wake_ts: 1618807500
            wake_weight: 0.997858923
    GET_sleep_times-data-queried_days_422:
      type: object
      properties:
        error:
          description: >-
            response when sleep data is queried by the user has not yet
            initialized sleep settings with a valid request to `POST
            /sleep_times/settings`
          default: you must first create a sleep setting
          type: string
      example:
        error: you must first create a sleep setting
    GET_version_200:
      type: object
      properties:
        service:
          type: string
        version:
          type: string
      example:
        service: appcloud
        version: v0-9-18
    GET_network_statuses_200:
      type: object
      properties:
        last_motion:
          anyOf:
            - type: number
        motion_tripped:
          description: ''
          type: number
    PUT_network_motion_config_200:
      type: object
      properties:
        cooldown:
          type: integer
        sensitivity_level:
          enum:
            - very-low
            - low
            - normal
            - high
          type: string
      example:
        cooldown: 300
        sensitivity_level: low
    GET_network_motion_config_200:
      type: object
      properties:
        cooldown:
          type: integer
        sensitivity_level:
          enum:
            - very-low
            - low
            - normal
            - high
          type: string
      example:
        cooldown: 200
        sensitivity_level: low
    POST_password_resets_200:
      type: object
      properties:
        id:
          type: integer
        email:
          type: string
        first_name:
          type: string
        last_name:
          type: string
        username:
          type: string
        confirmed_at:
          nullable: true
          type: string
        created_at:
          type: string
        updated_at:
          type: string
    POST_password_resets_401:
      type: object
      properties:
        error:
          type: string
    PUT_password_resets_200:
      type: object
      properties:
        id:
          type: integer
        email:
          type: string
        first_name:
          type: string
        last_name:
          type: string
        username:
          type: string
        confirmed_at:
          nullable: true
          type: string
        created_at:
          type: string
        updated_at:
          type: string
    PUT_password_resets_401:
      type: object
      properties:
        error:
          type: string
    POST_member_invites_201:
      type: object
      properties:
        failed_emails:
          type: array
          items:
            type: string
    GET_default_locations_400:
      type: object
    POST_internal-invite_200:
      type: object
      properties:
        id:
          type: integer
        network_id:
          type: integer
        email:
          type: string
        created_at:
          type: string
        updated_at:
          type: string
      example:
        id: 1
        network_id: 3
        email: john.smith@cognitivesystems.com
        created_at: '2020-10-06T18:57:59.181Z'
        updated_at: '2020-10-06T18:57:59.181Z'
    POST_users_201:
      type: object
      properties:
        username:
          type: string
        email:
          type: string
        first_name:
          type: string
        last_name:
          type: string
        created_at:
          type: string
        updated_at:
          type: string
        confirmed_at:
          nullable: true
          type: string
        id:
          type: integer
    GET_healthz_200:
      type: object
      properties:
        version:
          type: string
      example:
        version: v1-3-x
    GET_scenes_200:
      type: object
      properties:
        data:
          type: array
          items:
            type: object
            properties:
              id:
                type: integer
              name:
                type: string
              priority:
                type: integer
              description:
                type: string
              config:
                type: object
                properties:
                  on_change_actions:
                    type: object
                    properties:
                      display_motion_events:
                        type: boolean
                  push_notifications:
                    type: object
                    properties:
                      motion_detected_event:
                        type: boolean
              auto_switch_to:
                anyOf:
                  - type: integer
                    nullable: true
              toggleable:
                type: boolean
              icon_url:
                type: string
      example:
        data:
          - id: 3
            name: Guardian
            priority: 0
            description: Send alerts for no motion at set times
            config:
              on_change_actions:
                display_motion_events: false
              push_notifications:
                motion_detected_event: false
            toggleable: true
            icon_url: >-
              data:image/png;base64,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
          - id: 2
            name: Excessive Motion
            priority: 1
            description: Send alerts for high motion levels
            config:
              on_change_actions:
                display_motion_events: false
              push_notifications:
                motion_detected_event: false
            toggleable: true
            icon_url: >-
              data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAFoAAABaCAYAAAA4qEECAAAAAXNSR0IArs4c6QAADktJREFUeAHtXQtwHVUZ/nfvzc2jzaOP5KbPtB1ohKJWKIOK1OGZBrBj6aigDFhkQJHXjAyDdECkgiOoQ6k6goWOyICjVECFNGVaQFRAWkDaAqkQGlra3KRN82jzvPeu/7c3m5w9dzfZu4+btLn/THLP7p7z//9+e/Y//znnP2cVGkd02jYtb9+hw9WaNlCtkFatJZVqUmgBaVRKilbMqhZzGr/E57v4fxdpShenO/h8o6JqDRopDYqS1zB72pSG7UuUAT3vOPinjKUOd2ma+tALB09NJJJnsx7nEGlnaRpN8kMnRaGj/DReYV5bQyH1xWvPn/7mXYqS9IO3Gx5jAvSM+tbT4snEFSz8Mga23I3imZZh4Fs1oifDauixAzXl2zMt7zV/1oA+4flDJZ0Uv4ZNwCoG92Svinspz6C/yyZnQwmFH/7gwmmdXng5LRs40LM3dUztT/bezLXpBjYNZU4Vy04+pZ0BWBdRCx7Yt6y0LUiZgQEdrdcmUTK2mhunGzRNmxzkTXjlrSjKEW5815EavSdWo7Bt958CAbqiLnaJRtoD7AnM8V/lADkqtFch5eaW2uhf/JbiK9AzthyuSvT3/5Zr8DK/Fc0mP67hm0KRyHcPnDulyS+5vgFdUR/7qpagDePPDruFiu13iFa11ESfcctBLOcZ6EW7tEhLU+t9RMmbRMbHT1pdW1FVfuuuRUq/l3vyBPTMFzunx3u6/84exRlelBjvZRmk18OFRRfvP7vkoFtdXQMNexzv69/MpmKhW+HHVDlFaQhHIjVu7bYroKP1backkwP1pGkzjymwvCqrKPtVNa8mVjN1Z6asMgZaBzkx8A+uyVMyFXZ85FcOq6G8pZmCrWZy8zAXek2esCADLW0KMAAWmWDnGGi94YNNnmjmwgpNxiDe318PTKwuW51zBDRcOHgXE6bhs0JKPqdp1cAE2MiXrI4dAQ0/+Xh34azAGe0cMEn1IUbLiXmKUSjV49OeHiXbhL6shJQVo/UgRwR60Fd+m03GOBveHG/PVWkP50cWj+Rjj2g6MECUA9nJQ9XKUljZ57UFWh/qPMZH4exv2/8rGLEEZnacLU0HBu2Tydh742k8uZCrxJyiEFUVhvR7+bgnQR93J6hnzKZbLSDl8WxVjZ5kNXkQtsjOA3Gx1WMJcogf/0XRfFpWkU9VDO5c/ovmpwCW9W3pSwEO4De39NPfmntpgN2BMSFMdAA7ottl+Wk1Wp/j03qbxmL6qTyi0uVzCunbcwtpRoE1sPINyMcA/rGPe+j3e3so1pf96o5psYhSUCXPQaYBXfF87G6ehrpDvoEgjz81OUQ3LphEy2cUUERNU8mV6HhSo+diffRg41Ha0Rl3xcNtIZ4OW9NyYfROsbzprhAS0EHxpmx6GpfPLqR7Ty6mAtiLAGiAAb+74Qg9tKc7AO52LJX2UgpXiaEMJhutx11kyWcu4MbtvkUldCkDbUfdCY22tPbRh0dTdriJ7XBTd6p2VhWFaS43jLDhC/jvPLbnRRYPK4/fkDUnFdMZU/Loph2d1BXPhgHXylJY0s+NezNVo4q65l3ZCG6Zz8A8+rlSWlSSZ+hh+m1ib+LRpm56Yl8PdTgEpjSs0Df5oV1VVaSDb2I4ePDR0Th9560O2tkVvClBkE5LbeUiQ48hoPUwrURim3EhqN8TJ4Wo7gtTqSQv3YVvYADW7O6iF9h7cFvvcEPnV0TojoXFVF1semH1W+rlt2T56230dkfwYIdDoSVG+NnQ3SIWLihwDb5ckbkml1mC/OdPeqjm1UO6i+YWZMhBWbh54AWeMqEtWL+4jPAGBE0ipjrQiOpksZcFLfiXp5Sk1bI+rmG37Oyk77/TSWwxHNEK9k6+ODVvqPNiVQi8wBO8IUMk+OW//mypeCqQNDAFtmCuP9YZm1uXxOOJNwKRNsh0FfvGP+PGT6QeBmAFv8ZvZvgacyTREJs93DjWsxv3ONvzhiPWT+rU0jA9fcZUKpQayzUNXbSuMVhvJBwOnX7ggvJtOtqD8clDyvud+ExJWG/5Zb637erMGGSZxzz2Pq6dP4le/tI0euDTJdzRGbKGQ1nxICFLptsXTqbTy6wbZDmv22MDW0Orc9wyclLu1hMnp3VEnuCe25Of9Dop7iiPys08vI4Xz5xGZ7JZkQmyIFOkEJf5wQm+xL2LbOW0jq2K5QzchJwlX/XreC6PBp1Xbp7t2dk5QLe9m17D/JA5lbvxfzp9Cn1jVkEaO8iEbJHOnh7R/XDxnL9p7SxgrKbWjPiznMFKwVVziwi1TaTV73VRb4DDEOikoOFdIpkFyIRskXhsgn1v+06TmNdNGktFgLGKhTluGDgpA3P5LR4kEmkX16hX28y1SrzuVxpgP8KdomkR80OGbOgg0qWzCrlXKZ7xNw2MWR0tMKBXziykMqlj8kiT2U76e0tmbhgB/AXXbJlkHdB5+hrrGhQBY1VfYhaQhOWV+SbO7QNJ2rg/e0BDeC3GtAcnCwxlnmIdoItIF0u6ite8poGxyp70Aq+M7MrPk97HZw/0Zn1GBDb4SvbhRYKthi4iYXAqMGKMVe6zBtJFYvNMc6Sa9D8ehRsLgtsHfUSSdZnNZkbOI+b3lGaMuUbrK1I98bEqPJNbwjA69gJhVG4sCC7fbEw6CiTrAl1nSXmE7N6SjDGkp5b8emOVVtrqVTTGktMyZ+EEepAiWemC8e2AiIE21lb7LAEDNzJhAnWsSG4vrHSx0tkXfRlj8/vkC9cUk4jUSeHJXpIaelfSrpD8cqdM8iUzBl2gk0iyzuI1r2l4HeaukleOg+XlGoPWX24cMxUFkO9f5M7SfdJrfpugC3QSaW9QbxxjjBodCNByY4MbsrLb4o2OlDZAlsEZqYx4TQZRNiXIiznJgIiBxn4XAdA+rkHyq+kWaK8gJ9hEyA9etsfQVX4YvsHCGMN0dPjGUGDUzzbwgDRyhEnZTMkryJC3uaWPOqVJXlmXZg62gc6BEGMMr6MxEObMVLbTF0ULUlM6DgX6ATJEPSaNQ8MyQxeR5BovXvOcZoxVbI/jmZENgy2t5sWmeF1reOzBCfkFMgIht0p6QAfZdLx8yKyrEx2d5gHGKvYgclog03yP7+tOmxi92sHYr18gwzZf/w62WzKTrAOimf7A8XpBETDmMfm8wIA+1K/RMxzdKdLS6fm0kGPt7MgvkMH/Hg4Fe+2weewZsqGDSIhAbQnMQPMMOGOsYjctdicD2QwEN/MIRxzJdGe1tS+MGRH4yW5dOFEOhmN/9ZEz2fL4tMjHaxrYAmM1tWWZvpuWV56W5RERtL3dXKsuYBt5/fyitPzbOB/i4xCG4JZgLu5+v4u+99/0OUnIhGyRdnQM0BuSfuJ172nlFWBsdMG3emdoz2Hth+kvzOrqyfR5DjyU6Y88W33hq230vov4uH3c4Vj5n8OWNRmyIFMmhPUGTDq2OtDYFy5IYZvYj5VNCKb6f7e4lCryjWc9rMEuBnnpPw/RJRxc81ceoEdjZUfoaLx0sI+u3N5OS146SP+2mI+EDMiCTJEQRPlsc594yve0ga0uGWFLv9kUa2ady32XNMgwjyU9x8GNi0vNtXg/18Kr3+4gmA07KuPCCydxmC67h+hdYr41FcKboA94MmGkyH7Y/fUM8kxpCBQTtLX85kh9KjsVXJ3n59p63bJoJTY2HHrE5XXNa9kPutEVR4eF5vDA+hYOcJEnbFFjf8wewsM+B4tfM6+IfsTmAjPiIh2JJ+m8f7VRY9ATEQo92Fpbqe/MM/TeYodDUZkg0nt5CdUNHHgoj4EAiJ9wsDjCA2ZZhHRlqgt4gBd4yiCD183c4AYOMssRMTU96mwFomPF1YMcJ1cshSIABHgNdRy0uJ7dQit7izx2hAjTqzkQvZb5y/YYZY7yeMctHIO3cb/Zt7fj5+U8mw1TILp5foe3keTh8Pu9CHBSFot43u1qow2nltLJxWabDYAurizQ/97jRhH+cCPb4T1sy9GdNgaHijm+GfZ6HtveBRzcjhiSkywCzw19dh+J01VvtdNum4hTI59vvzqWw9xMNTrbi4UwF3o/B7h8nSOFnJIRjyHb+ZHKP8UB6ajJQZvkYR3SFwsN2WhkwioiRn7dcIFgU1j1ej3b7Bt5PKKR15c4IQDsFGTwBO/rMghyd6LDaHmAobgiC/lNNRonxnJB5zkc2Qkbey5Hn7rthifZxmO0DjZ+68HgRuSAlRWx3s4WdKJwtK75Xva4fmjFKBvnMM2EFQLoLiOwJV+K1Jd1wNIJzOhggH8Dj8LtyZ6NkFXhyFn6aay2cvQlyig53hbdV3LPDg0fYuiMcWQ0jOi0YHKhmXsd9n3HNCyCOzHCovs002FoMbiNxEbjOPc7OgJsNlba7dRrCzTYMth13Lk4pnfOHR0ef3IwyJsY5Fo7biavQ86ErX25vWyXz+eOZQSU9hRW8vnh4xGBxh5B2Np3OHsuZYUAMBppPyWUGRFoZEjtfqWuRTpHVgioa0fbIQylRgUambB/Mhvz15HO0TACbJdfAzbDZ+xTjoDGJtXYP5nt9W57VhPtirI7XFD4FacbeDsCGhBik2re2+0C7rLtn2iQpt0vYwAsMtm42zHQEAaDr4bh7imH04RPmBO8rTHvIT1a4yfDkRHQKBw7v3IH9k+ekDUbG3W72DsauI3YYUEGO5pwW89z+wRzkWlNNvDLuEYbBSEwr7DwzIngjcC7wL26BRmYuQYahdEYlFdFlzKb49jPVteWz634ciYNH7CRybXpkBnlPngjI2I+9g1osIXdzn3CyQywceQr0AZTfYg191EyAw79NxCgwTn3mT0Tzu7dOzMb+6PchyNT2ARWo2Xoc59ClRHJwnHu475ZAFkUgSjW3OeqRUSylD6eP8D+fwUQo+Mju53uAAAAAElFTkSuQmCC
          - id: 1
            name: Away
            priority: 2
            description: Send alerts when motion is detected
            config:
              on_change_actions:
                display_motion_events: true
              push_notifications:
                motion_detected_event: true
            auto_switch_to: 4
            toggleable: false
            icon_url: >-
              data:image/png;base64,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
          - id: 4
            name: Home
            priority: 3
            description: Ignore motion when people are home
            config:
              on_change_actions:
                display_motion_events: false
              push_notifications:
                motion_detected_event: false
            auto_switch_to: 1
            toggleable: false
            icon_url: >-
              data:image/png;base64,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
    GET_networks_200:
      type: object
      properties:
        data:
          type: array
          items:
            type: object
            properties:
              id:
                type: integer
              name:
                anyOf:
                  - type: string
                    nullable: true
              created_at:
                type: string
              updated_at:
                type: string
              external_id:
                type: integer
              user_count:
                type: integer
              latitude:
                type: string
              longitude:
                type: string
              address:
                type: string
              timezone:
                type: string
              pet_size:
                type: string
              building_type:
                type: string
              building_size:
                type: string
              live_enabled:
                type: boolean
              scene_id:
                type: integer
              owner_email:
                type: string
              present_count:
                type: integer
              claimed:
                type: boolean
              network_scene_config:
                type: integer
              subscription_id:
                nullable: true
                type: string
      example:
        data:
          - id: 19
            name: Test Network 1
            created_at: '2020-11-17T18:40:34.936Z'
            updated_at: '2020-11-17T18:42:16.096Z'
            external_id: 21
            user_count: 1
            latitude: '0.0000000'
            longitude: '0.0000000'
            address: ''
            timezone: Etc/GMT
            pet_size: none
            building_type: bungalow
            building_size: small
            live_enabled: true
            scene_id: 4
            owner_email: cb549858-e70e-4359-81bf-3003f32ca071@wifimotion.ca
            present_count: 1
            claimed: true
            network_scene_config: 19
    GET_topologies_200:
      type: object
      properties:
        ts:
          type: number
        devices:
          type: array
          items:
            type: object
            properties:
              id:
                type: integer
              name:
                type: string
              device_info:
                $ref: '#/components/schemas/DeviceInfo'
              friendly_name:
                type: string
              node_name:
                type: string
              location:
                type: string
              icon:
                type: string
              type:
                type: string
              online:
                type: boolean
              macs:
                type: array
                items:
                  type: string
              icon_url:
                type: string
              icon_url_disabled:
                type: string
              mobile:
                type: boolean
              is_static:
                type: string
              tx_enable:
                type: string
              sounding_state:
                type: string
              hw_platform:
                type: string
              ip:
                type: string
              is_mesh_sounding:
                type: boolean
        links:
          type: array
          items:
            type: object
            properties:
              src_id:
                type: integer
              dst_id:
                type: integer
              motion_enabled:
                type: boolean
              sounding_state:
                type: string
              detail:
                type: object
                properties:
                  mac:
                    type: string
                  peer_type:
                    type: string
                  node:
                    type: string
                  if_type:
                    type: string
                  if_mac:
                    nullable: true
                    type: string
                  if_ch:
                    nullable: true
                    type: string
      example:
        ts: 1606330236.585
        devices:
          - id: -1
            name: test-0000F4BD1EE3
            friendly_name: ''
            location: ''
            icon: DEFAULT
            type: MESH_NODE
            online: true
            macs:
              - 00:00:F4:BD:1E:E3
            icon_url: >-
              data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGAAAABgCAYAAADimHc4AAAACXBIWXMAAAsTAAALEwEAmpwYAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAPKSURBVHgB7dpbaBxlFAfwc2amu9luq6WNaUSqEoqKCBUi1X1bkzReIoHaui2Sxjd9EwIRxAQ62HqhoL5YUCJIZRvMplYMFdNauvEpF/Splmh8sFAvEWkRabfZZOb7PNPa0mw3UHZ2+uXy/8HkJGcnhHz/2d2zw0cEAAAAAAAAAAAAAAAAAAAAAAAAcLukUl2JdNp1KEIWQVktz/bsS6xPTtnJ2V+a297YTRFBAGU0PdezXTP1klafsOY8ER9uaXHvpQgggDJY0SYp51UhdlD59BEF61QzhwBuF99SJ4h10U56w+TwF0R66tL5wg8UAQRQxsixd35SntckC18rQUw5HqVHRz+4TBFAAAvIDx/4WcqvrPTp48ff/pMiggAMQwCGIQDDEIBhCMAwBGAYAjAMARiGAAxDAIYhAMMQgGEIwDAEYBgCMIypAtvaetsV672kl32Am+UoynGu3IOa6OSpr996jUKoaMuFT7qBNT1AWh+SHz1avr5b8BHmZ+TqbaGQwux5uegXYt0jI+4MrUDNbT13SnmUQsJ7gGEIwLBlHcCnuYl613Xn/Y+5XC7W1z+2sfTcoaGh1YeOjm8o7WezY3cEB0Wkavse+wfGdmil197q+cqyC4XE9LFX2tsLFIHDg+NdWtO+zQ8/fcZ1KSVBqKDv8f1uwtFd2SPjgx07H+8Mevl83vnj79WDNlFTdmCit2PX1veCfn//97XKUeOadP1nn4/u6dydOkpVVpUA5Kqyi8Qfsk3rbvV3LNJefKYuLd9GsuFJxpRtMigmpW5teOipB4ncyVzux1hRX9zDxDUyxWXkpCsB/HZh7V3Eqpm1jjNTsA/0SgDK8mQM5Yarszq/IF8WZwCZTMaXcjctIh777zvaukdrfUqu3Mmgl8k8MpsdGH1TRshXlU8fXzu34/nG6eyRiWDR28hSe6/11WzitFVzWRbd2uQ41gGKQKRbr016aWfqpJQtpf2OXak+KX039pjl+UDU8/9xXWfnlktSdlCEMAUZhgAMC/kS9E9NOu3SSsTsWfL+QmFVFAAHf5m53kqumVzet4IWJkuwRsoUhVRRADNObDDuzV2QOcGmFSq49lnZZyikim5H36ix8eVV62o3POGznh+Gw9PBPntaolpbu5Nz9qrH5EovXaOzI8PvnqUqCT2Grq+re1JZ+qubngqafqer99OXJM+Jv24xdZf25UPcl1JepCoJHcC33+w/0bq9+z6nyPMmKt/3ZmkJi+uN+5nOHSzt/2Ul/yUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgMXlPysCGQFLhCQPAAAAAElFTkSuQmCC
            icon_url_disabled: >-
              data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGAAAABgCAYAAADimHc4AAAACXBIWXMAAAsTAAALEwEAmpwYAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAOxSURBVHgB7dtbaBRXGAfw78zMbjLaWBu7Ki3SUlQs6RakoS0thbSmRRJp6YNb3CAFabFPUmihD1rYQvtSWp8UffBCjEbdiPjgJYiaB6+5iEFCUBSvUXDjLRt3c9mZ83lWyYObFeLOjsck/9/LzH5zWeb898yc2dklAgAAAAAAAAAAAAAAAAAAAAAAAHhZ1m89MHtd/d4Z5CODIK/NDc3/lJrmVVvYV7Y0HPydfCIIRtlU3/wxCT4pmP9VLVSimuk34fDMFStqeqnI0APyMMidqT6ZSXIy61lkNjLREJvuXPKBRTBKZjB13LLL0iJQcpqYpxPT1TJ74Cz5AD0gj5UrI31BIb5k6Trq5S225OJIJDJMPkAAz7F8+eLLwjRuqPP/xZ/qaq+TTxCAZghAMwSgGQLQDAFohgA0QwCaIQDNEIBmCEAzBKAZAtAMAWiGADRDAJoV9ESsuuaPsDCsz2mC60sOvMWSS79esvqXfMulFNeOHvy7mTwoKAAWgVns8jQS4jxNYJ2d1/7s708NqoYe/TTMpLfZ4HfJo4KfCbNJyWP7vaU/nlUvWVOlHtYvII9wDdAMAWg2oQOIxVqs7BUrt97SwnlPvS9aL4ai7bixsWMBW7J0rOu7MuM8TPRdWrWqZoh8sHNP+0LHld9ui7f1XOnmrbGYkNn69qaOb3oSbZ817m7tjP7wyb6R9Rua2upUfV59/MyRHyOfnsjW4vGu4DA/+rkn0V6ujq8pGq28QEVWlAB27Dj+hgzI79WQrWSs2whh0ZvvzNmgZu+QD6RDYRLqbZjmzJ9/tlyV7jKzsb2p7YMny4X4UE2eBKAa+rUhmX4vO28Is0JNTjzdy+BsJhFSvYikxdntXs0A6uq+eKAO4v9UunfMp7RwuMytrAxnyCfSoFaSZAuDEsuWfXQvGs2GLmRjvPW0ZF4oLNE1sm53d0V6bkX7KbX+PMHcOlIPhWYkbt+9c851aBabQV9+GVeQRbVrqr96zs3JZJEdhhajDTAK0gwBaIYANCv4IixYhKprV/9Kk5QaXk1Rg6P75FFBAbhsdVmG40zmP9iw+iLIYe9DaM8tWFUVK6UpND23bjOnDx36K0nj1NKla+3eVPL13HrQedR/+PB/KSoSz/cB0h58P2hY3+XWh9m9qSabaZy6n+yttALmoty6G7CzN2O7qEg8BzCVUt3DA2W33ZLgM73JZjNN41j5tFCH6gGXcutBZ2o/AQAAAAAAAAAAAAAAAAAAAAAAAAAAAAC8Wh4DHao3Ziis3D8AAAAASUVORK5CYII=
          - id: -2
            name: test-0000F4BD1EF3
            friendly_name: ''
            location: ''
            icon: DEFAULT
            type: MESH_NODE
            online: true
            macs:
              - 00:00:F4:BD:1E:F3
            icon_url: >-
              data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGAAAABgCAYAAADimHc4AAAACXBIWXMAAAsTAAALEwEAmpwYAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAPKSURBVHgB7dpbaBxlFAfwc2amu9luq6WNaUSqEoqKCBUi1X1bkzReIoHaui2Sxjd9EwIRxAQ62HqhoL5YUCJIZRvMplYMFdNauvEpF/Splmh8sFAvEWkRabfZZOb7PNPa0mw3UHZ2+uXy/8HkJGcnhHz/2d2zw0cEAAAAAAAAAAAAAAAAAAAAAAAAcLukUl2JdNp1KEIWQVktz/bsS6xPTtnJ2V+a297YTRFBAGU0PdezXTP1klafsOY8ER9uaXHvpQgggDJY0SYp51UhdlD59BEF61QzhwBuF99SJ4h10U56w+TwF0R66tL5wg8UAQRQxsixd35SntckC18rQUw5HqVHRz+4TBFAAAvIDx/4WcqvrPTp48ff/pMiggAMQwCGIQDDEIBhCMAwBGAYAjAMARiGAAxDAIYhAMMQgGEIwDAEYBgCMIypAtvaetsV672kl32Am+UoynGu3IOa6OSpr996jUKoaMuFT7qBNT1AWh+SHz1avr5b8BHmZ+TqbaGQwux5uegXYt0jI+4MrUDNbT13SnmUQsJ7gGEIwLBlHcCnuYl613Xn/Y+5XC7W1z+2sfTcoaGh1YeOjm8o7WezY3cEB0Wkavse+wfGdmil197q+cqyC4XE9LFX2tsLFIHDg+NdWtO+zQ8/fcZ1KSVBqKDv8f1uwtFd2SPjgx07H+8Mevl83vnj79WDNlFTdmCit2PX1veCfn//97XKUeOadP1nn4/u6dydOkpVVpUA5Kqyi8Qfsk3rbvV3LNJefKYuLd9GsuFJxpRtMigmpW5teOipB4ncyVzux1hRX9zDxDUyxWXkpCsB/HZh7V3Eqpm1jjNTsA/0SgDK8mQM5Yarszq/IF8WZwCZTMaXcjctIh777zvaukdrfUqu3Mmgl8k8MpsdGH1TRshXlU8fXzu34/nG6eyRiWDR28hSe6/11WzitFVzWRbd2uQ41gGKQKRbr016aWfqpJQtpf2OXak+KX039pjl+UDU8/9xXWfnlktSdlCEMAUZhgAMC/kS9E9NOu3SSsTsWfL+QmFVFAAHf5m53kqumVzet4IWJkuwRsoUhVRRADNObDDuzV2QOcGmFSq49lnZZyikim5H36ix8eVV62o3POGznh+Gw9PBPntaolpbu5Nz9qrH5EovXaOzI8PvnqUqCT2Grq+re1JZ+qubngqafqer99OXJM+Jv24xdZf25UPcl1JepCoJHcC33+w/0bq9+z6nyPMmKt/3ZmkJi+uN+5nOHSzt/2Ul/yUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgMXlPysCGQFLhCQPAAAAAElFTkSuQmCC
            icon_url_disabled: >-
              data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGAAAABgCAYAAADimHc4AAAACXBIWXMAAAsTAAALEwEAmpwYAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAOxSURBVHgB7dtbaBRXGAfw78zMbjLaWBu7Ki3SUlQs6RakoS0thbSmRRJp6YNb3CAFabFPUmihD1rYQvtSWp8UffBCjEbdiPjgJYiaB6+5iEFCUBSvUXDjLRt3c9mZ83lWyYObFeLOjsck/9/LzH5zWeb898yc2dklAgAAAAAAAAAAAAAAAAAAAAAAAHhZ1m89MHtd/d4Z5CODIK/NDc3/lJrmVVvYV7Y0HPydfCIIRtlU3/wxCT4pmP9VLVSimuk34fDMFStqeqnI0APyMMidqT6ZSXIy61lkNjLREJvuXPKBRTBKZjB13LLL0iJQcpqYpxPT1TJ74Cz5AD0gj5UrI31BIb5k6Trq5S225OJIJDJMPkAAz7F8+eLLwjRuqPP/xZ/qaq+TTxCAZghAMwSgGQLQDAFohgA0QwCaIQDNEIBmCEAzBKAZAtAMAWiGADRDAJoV9ESsuuaPsDCsz2mC60sOvMWSS79esvqXfMulFNeOHvy7mTwoKAAWgVns8jQS4jxNYJ2d1/7s708NqoYe/TTMpLfZ4HfJo4KfCbNJyWP7vaU/nlUvWVOlHtYvII9wDdAMAWg2oQOIxVqs7BUrt97SwnlPvS9aL4ai7bixsWMBW7J0rOu7MuM8TPRdWrWqZoh8sHNP+0LHld9ui7f1XOnmrbGYkNn69qaOb3oSbZ817m7tjP7wyb6R9Rua2upUfV59/MyRHyOfnsjW4vGu4DA/+rkn0V6ujq8pGq28QEVWlAB27Dj+hgzI79WQrWSs2whh0ZvvzNmgZu+QD6RDYRLqbZjmzJ9/tlyV7jKzsb2p7YMny4X4UE2eBKAa+rUhmX4vO28Is0JNTjzdy+BsJhFSvYikxdntXs0A6uq+eKAO4v9UunfMp7RwuMytrAxnyCfSoFaSZAuDEsuWfXQvGs2GLmRjvPW0ZF4oLNE1sm53d0V6bkX7KbX+PMHcOlIPhWYkbt+9c851aBabQV9+GVeQRbVrqr96zs3JZJEdhhajDTAK0gwBaIYANCv4IixYhKprV/9Kk5QaXk1Rg6P75FFBAbhsdVmG40zmP9iw+iLIYe9DaM8tWFUVK6UpND23bjOnDx36K0nj1NKla+3eVPL13HrQedR/+PB/KSoSz/cB0h58P2hY3+XWh9m9qSabaZy6n+yttALmoty6G7CzN2O7qEg8BzCVUt3DA2W33ZLgM73JZjNN41j5tFCH6gGXcutBZ2o/AQAAAAAAAAAAAAAAAAAAAAAAAAAAAAC8Wh4DHao3Ziis3D8AAAAASUVORK5CYII=
          - id: -3
            name: test-0000F4BD1F03
            friendly_name: ''
            location: ''
            icon: DEFAULT
            type: MESH_NODE
            online: true
            macs:
              - 00:00:F4:BD:1F:03
            icon_url: >-
              data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGAAAABgCAYAAADimHc4AAAACXBIWXMAAAsTAAALEwEAmpwYAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAPKSURBVHgB7dpbaBxlFAfwc2amu9luq6WNaUSqEoqKCBUi1X1bkzReIoHaui2Sxjd9EwIRxAQ62HqhoL5YUCJIZRvMplYMFdNauvEpF/Splmh8sFAvEWkRabfZZOb7PNPa0mw3UHZ2+uXy/8HkJGcnhHz/2d2zw0cEAAAAAAAAAAAAAAAAAAAAAAAAcLukUl2JdNp1KEIWQVktz/bsS6xPTtnJ2V+a297YTRFBAGU0PdezXTP1klafsOY8ER9uaXHvpQgggDJY0SYp51UhdlD59BEF61QzhwBuF99SJ4h10U56w+TwF0R66tL5wg8UAQRQxsixd35SntckC18rQUw5HqVHRz+4TBFAAAvIDx/4WcqvrPTp48ff/pMiggAMQwCGIQDDEIBhCMAwBGAYAjAMARiGAAxDAIYhAMMQgGEIwDAEYBgCMIypAtvaetsV672kl32Am+UoynGu3IOa6OSpr996jUKoaMuFT7qBNT1AWh+SHz1avr5b8BHmZ+TqbaGQwux5uegXYt0jI+4MrUDNbT13SnmUQsJ7gGEIwLBlHcCnuYl613Xn/Y+5XC7W1z+2sfTcoaGh1YeOjm8o7WezY3cEB0Wkavse+wfGdmil197q+cqyC4XE9LFX2tsLFIHDg+NdWtO+zQ8/fcZ1KSVBqKDv8f1uwtFd2SPjgx07H+8Mevl83vnj79WDNlFTdmCit2PX1veCfn//97XKUeOadP1nn4/u6dydOkpVVpUA5Kqyi8Qfsk3rbvV3LNJefKYuLd9GsuFJxpRtMigmpW5teOipB4ncyVzux1hRX9zDxDUyxWXkpCsB/HZh7V3Eqpm1jjNTsA/0SgDK8mQM5Yarszq/IF8WZwCZTMaXcjctIh777zvaukdrfUqu3Mmgl8k8MpsdGH1TRshXlU8fXzu34/nG6eyRiWDR28hSe6/11WzitFVzWRbd2uQ41gGKQKRbr016aWfqpJQtpf2OXak+KX039pjl+UDU8/9xXWfnlktSdlCEMAUZhgAMC/kS9E9NOu3SSsTsWfL+QmFVFAAHf5m53kqumVzet4IWJkuwRsoUhVRRADNObDDuzV2QOcGmFSq49lnZZyikim5H36ix8eVV62o3POGznh+Gw9PBPntaolpbu5Nz9qrH5EovXaOzI8PvnqUqCT2Grq+re1JZ+qubngqafqer99OXJM+Jv24xdZf25UPcl1JepCoJHcC33+w/0bq9+z6nyPMmKt/3ZmkJi+uN+5nOHSzt/2Ul/yUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgMXlPysCGQFLhCQPAAAAAElFTkSuQmCC
            icon_url_disabled: >-
              data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGAAAABgCAYAAADimHc4AAAACXBIWXMAAAsTAAALEwEAmpwYAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAOxSURBVHgB7dtbaBRXGAfw78zMbjLaWBu7Ki3SUlQs6RakoS0thbSmRRJp6YNb3CAFabFPUmihD1rYQvtSWp8UffBCjEbdiPjgJYiaB6+5iEFCUBSvUXDjLRt3c9mZ83lWyYObFeLOjsck/9/LzH5zWeb898yc2dklAgAAAAAAAAAAAAAAAAAAAAAAAHhZ1m89MHtd/d4Z5CODIK/NDc3/lJrmVVvYV7Y0HPydfCIIRtlU3/wxCT4pmP9VLVSimuk34fDMFStqeqnI0APyMMidqT6ZSXIy61lkNjLREJvuXPKBRTBKZjB13LLL0iJQcpqYpxPT1TJ74Cz5AD0gj5UrI31BIb5k6Trq5S225OJIJDJMPkAAz7F8+eLLwjRuqPP/xZ/qaq+TTxCAZghAMwSgGQLQDAFohgA0QwCaIQDNEIBmCEAzBKAZAtAMAWiGADRDAJoV9ESsuuaPsDCsz2mC60sOvMWSS79esvqXfMulFNeOHvy7mTwoKAAWgVns8jQS4jxNYJ2d1/7s708NqoYe/TTMpLfZ4HfJo4KfCbNJyWP7vaU/nlUvWVOlHtYvII9wDdAMAWg2oQOIxVqs7BUrt97SwnlPvS9aL4ai7bixsWMBW7J0rOu7MuM8TPRdWrWqZoh8sHNP+0LHld9ui7f1XOnmrbGYkNn69qaOb3oSbZ817m7tjP7wyb6R9Rua2upUfV59/MyRHyOfnsjW4vGu4DA/+rkn0V6ujq8pGq28QEVWlAB27Dj+hgzI79WQrWSs2whh0ZvvzNmgZu+QD6RDYRLqbZjmzJ9/tlyV7jKzsb2p7YMny4X4UE2eBKAa+rUhmX4vO28Is0JNTjzdy+BsJhFSvYikxdntXs0A6uq+eKAO4v9UunfMp7RwuMytrAxnyCfSoFaSZAuDEsuWfXQvGs2GLmRjvPW0ZF4oLNE1sm53d0V6bkX7KbX+PMHcOlIPhWYkbt+9c851aBabQV9+GVeQRbVrqr96zs3JZJEdhhajDTAK0gwBaIYANCv4IixYhKprV/9Kk5QaXk1Rg6P75FFBAbhsdVmG40zmP9iw+iLIYe9DaM8tWFUVK6UpND23bjOnDx36K0nj1NKla+3eVPL13HrQedR/+PB/KSoSz/cB0h58P2hY3+XWh9m9qSabaZy6n+yttALmoty6G7CzN2O7qEg8BzCVUt3DA2W33ZLgM73JZjNN41j5tFCH6gGXcutBZ2o/AQAAAAAAAAAAAAAAAAAAAAAAAAAAAAC8Wh4DHao3Ziis3D8AAAAASUVORK5CYII=
          - id: -4
            name: 0000F4BD1EF2
            online: true
            friendly_name: ''
            location: ''
            mobile: true
            is_static: UNKNOWN
            tx_enable: ''
            sounding_state: ACTIVE
            type: EXTENDER
            icon: LEAF
            hw_platform: Unknown
            macs:
              - 00:00:F4:BD:1E:F2
            icon_url: >-
              data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGAAAABgCAYAAADimHc4AAAACXBIWXMAAAsTAAALEwEAmpwYAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAPKSURBVHgB7dpbaBxlFAfwc2amu9luq6WNaUSqEoqKCBUi1X1bkzReIoHaui2Sxjd9EwIRxAQ62HqhoL5YUCJIZRvMplYMFdNauvEpF/Splmh8sFAvEWkRabfZZOb7PNPa0mw3UHZ2+uXy/8HkJGcnhHz/2d2zw0cEAAAAAAAAAAAAAAAAAAAAAAAAcLukUl2JdNp1KEIWQVktz/bsS6xPTtnJ2V+a297YTRFBAGU0PdezXTP1klafsOY8ER9uaXHvpQgggDJY0SYp51UhdlD59BEF61QzhwBuF99SJ4h10U56w+TwF0R66tL5wg8UAQRQxsixd35SntckC18rQUw5HqVHRz+4TBFAAAvIDx/4WcqvrPTp48ff/pMiggAMQwCGIQDDEIBhCMAwBGAYAjAMARiGAAxDAIYhAMMQgGEIwDAEYBgCMIypAtvaetsV672kl32Am+UoynGu3IOa6OSpr996jUKoaMuFT7qBNT1AWh+SHz1avr5b8BHmZ+TqbaGQwux5uegXYt0jI+4MrUDNbT13SnmUQsJ7gGEIwLBlHcCnuYl613Xn/Y+5XC7W1z+2sfTcoaGh1YeOjm8o7WezY3cEB0Wkavse+wfGdmil197q+cqyC4XE9LFX2tsLFIHDg+NdWtO+zQ8/fcZ1KSVBqKDv8f1uwtFd2SPjgx07H+8Mevl83vnj79WDNlFTdmCit2PX1veCfn//97XKUeOadP1nn4/u6dydOkpVVpUA5Kqyi8Qfsk3rbvV3LNJefKYuLd9GsuFJxpRtMigmpW5teOipB4ncyVzux1hRX9zDxDUyxWXkpCsB/HZh7V3Eqpm1jjNTsA/0SgDK8mQM5Yarszq/IF8WZwCZTMaXcjctIh777zvaukdrfUqu3Mmgl8k8MpsdGH1TRshXlU8fXzu34/nG6eyRiWDR28hSe6/11WzitFVzWRbd2uQ41gGKQKRbr016aWfqpJQtpf2OXak+KX039pjl+UDU8/9xXWfnlktSdlCEMAUZhgAMC/kS9E9NOu3SSsTsWfL+QmFVFAAHf5m53kqumVzet4IWJkuwRsoUhVRRADNObDDuzV2QOcGmFSq49lnZZyikim5H36ix8eVV62o3POGznh+Gw9PBPntaolpbu5Nz9qrH5EovXaOzI8PvnqUqCT2Grq+re1JZ+qubngqafqer99OXJM+Jv24xdZf25UPcl1JepCoJHcC33+w/0bq9+z6nyPMmKt/3ZmkJi+uN+5nOHSzt/2Ul/yUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgMXlPysCGQFLhCQPAAAAAElFTkSuQmCC
            icon_url_disabled: >-
              data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGAAAABgCAYAAADimHc4AAAACXBIWXMAAAsTAAALEwEAmpwYAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAOxSURBVHgB7dtbaBRXGAfw78zMbjLaWBu7Ki3SUlQs6RakoS0thbSmRRJp6YNb3CAFabFPUmihD1rYQvtSWp8UffBCjEbdiPjgJYiaB6+5iEFCUBSvUXDjLRt3c9mZ83lWyYObFeLOjsck/9/LzH5zWeb898yc2dklAgAAAAAAAAAAAAAAAAAAAAAAAHhZ1m89MHtd/d4Z5CODIK/NDc3/lJrmVVvYV7Y0HPydfCIIRtlU3/wxCT4pmP9VLVSimuk34fDMFStqeqnI0APyMMidqT6ZSXIy61lkNjLREJvuXPKBRTBKZjB13LLL0iJQcpqYpxPT1TJ74Cz5AD0gj5UrI31BIb5k6Trq5S225OJIJDJMPkAAz7F8+eLLwjRuqPP/xZ/qaq+TTxCAZghAMwSgGQLQDAFohgA0QwCaIQDNEIBmCEAzBKAZAtAMAWiGADRDAJoV9ESsuuaPsDCsz2mC60sOvMWSS79esvqXfMulFNeOHvy7mTwoKAAWgVns8jQS4jxNYJ2d1/7s708NqoYe/TTMpLfZ4HfJo4KfCbNJyWP7vaU/nlUvWVOlHtYvII9wDdAMAWg2oQOIxVqs7BUrt97SwnlPvS9aL4ai7bixsWMBW7J0rOu7MuM8TPRdWrWqZoh8sHNP+0LHld9ui7f1XOnmrbGYkNn69qaOb3oSbZ817m7tjP7wyb6R9Rua2upUfV59/MyRHyOfnsjW4vGu4DA/+rkn0V6ujq8pGq28QEVWlAB27Dj+hgzI79WQrWSs2whh0ZvvzNmgZu+QD6RDYRLqbZjmzJ9/tlyV7jKzsb2p7YMny4X4UE2eBKAa+rUhmX4vO28Is0JNTjzdy+BsJhFSvYikxdntXs0A6uq+eKAO4v9UunfMp7RwuMytrAxnyCfSoFaSZAuDEsuWfXQvGs2GLmRjvPW0ZF4oLNE1sm53d0V6bkX7KbX+PMHcOlIPhWYkbt+9c851aBabQV9+GVeQRbVrqr96zs3JZJEdhhajDTAK0gwBaIYANCv4IixYhKprV/9Kk5QaXk1Rg6P75FFBAbhsdVmG40zmP9iw+iLIYe9DaM8tWFUVK6UpND23bjOnDx36K0nj1NKla+3eVPL13HrQedR/+PB/KSoSz/cB0h58P2hY3+XWh9m9qSabaZy6n+yttALmoty6G7CzN2O7qEg8BzCVUt3DA2W33ZLgM73JZjNN41j5tFCH6gGXcutBZ2o/AQAAAAAAAAAAAAAAAAAAAAAAAAAAAAC8Wh4DHao3Ziis3D8AAAAASUVORK5CYII=
          - id: -5
            name: 0000F4BD1F02
            online: true
            friendly_name: ''
            location: ''
            mobile: true
            is_static: UNKNOWN
            tx_enable: ''
            sounding_state: ACTIVE
            type: EXTENDER
            icon: LEAF
            hw_platform: Unknown
            macs:
              - 00:00:F4:BD:1F:02
            icon_url: >-
              data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGAAAABgCAYAAADimHc4AAAACXBIWXMAAAsTAAALEwEAmpwYAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAPKSURBVHgB7dpbaBxlFAfwc2amu9luq6WNaUSqEoqKCBUi1X1bkzReIoHaui2Sxjd9EwIRxAQ62HqhoL5YUCJIZRvMplYMFdNauvEpF/Splmh8sFAvEWkRabfZZOb7PNPa0mw3UHZ2+uXy/8HkJGcnhHz/2d2zw0cEAAAAAAAAAAAAAAAAAAAAAAAAcLukUl2JdNp1KEIWQVktz/bsS6xPTtnJ2V+a297YTRFBAGU0PdezXTP1klafsOY8ER9uaXHvpQgggDJY0SYp51UhdlD59BEF61QzhwBuF99SJ4h10U56w+TwF0R66tL5wg8UAQRQxsixd35SntckC18rQUw5HqVHRz+4TBFAAAvIDx/4WcqvrPTp48ff/pMiggAMQwCGIQDDEIBhCMAwBGAYAjAMARiGAAxDAIYhAMMQgGEIwDAEYBgCMIypAtvaetsV672kl32Am+UoynGu3IOa6OSpr996jUKoaMuFT7qBNT1AWh+SHz1avr5b8BHmZ+TqbaGQwux5uegXYt0jI+4MrUDNbT13SnmUQsJ7gGEIwLBlHcCnuYl613Xn/Y+5XC7W1z+2sfTcoaGh1YeOjm8o7WezY3cEB0Wkavse+wfGdmil197q+cqyC4XE9LFX2tsLFIHDg+NdWtO+zQ8/fcZ1KSVBqKDv8f1uwtFd2SPjgx07H+8Mevl83vnj79WDNlFTdmCit2PX1veCfn//97XKUeOadP1nn4/u6dydOkpVVpUA5Kqyi8Qfsk3rbvV3LNJefKYuLd9GsuFJxpRtMigmpW5teOipB4ncyVzux1hRX9zDxDUyxWXkpCsB/HZh7V3Eqpm1jjNTsA/0SgDK8mQM5Yarszq/IF8WZwCZTMaXcjctIh777zvaukdrfUqu3Mmgl8k8MpsdGH1TRshXlU8fXzu34/nG6eyRiWDR28hSe6/11WzitFVzWRbd2uQ41gGKQKRbr016aWfqpJQtpf2OXak+KX039pjl+UDU8/9xXWfnlktSdlCEMAUZhgAMC/kS9E9NOu3SSsTsWfL+QmFVFAAHf5m53kqumVzet4IWJkuwRsoUhVRRADNObDDuzV2QOcGmFSq49lnZZyikim5H36ix8eVV62o3POGznh+Gw9PBPntaolpbu5Nz9qrH5EovXaOzI8PvnqUqCT2Grq+re1JZ+qubngqafqer99OXJM+Jv24xdZf25UPcl1JepCoJHcC33+w/0bq9+z6nyPMmKt/3ZmkJi+uN+5nOHSzt/2Ul/yUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgMXlPysCGQFLhCQPAAAAAElFTkSuQmCC
            icon_url_disabled: >-
              data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGAAAABgCAYAAADimHc4AAAACXBIWXMAAAsTAAALEwEAmpwYAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAOxSURBVHgB7dtbaBRXGAfw78zMbjLaWBu7Ki3SUlQs6RakoS0thbSmRRJp6YNb3CAFabFPUmihD1rYQvtSWp8UffBCjEbdiPjgJYiaB6+5iEFCUBSvUXDjLRt3c9mZ83lWyYObFeLOjsck/9/LzH5zWeb898yc2dklAgAAAAAAAAAAAAAAAAAAAAAAAHhZ1m89MHtd/d4Z5CODIK/NDc3/lJrmVVvYV7Y0HPydfCIIRtlU3/wxCT4pmP9VLVSimuk34fDMFStqeqnI0APyMMidqT6ZSXIy61lkNjLREJvuXPKBRTBKZjB13LLL0iJQcpqYpxPT1TJ74Cz5AD0gj5UrI31BIb5k6Trq5S225OJIJDJMPkAAz7F8+eLLwjRuqPP/xZ/qaq+TTxCAZghAMwSgGQLQDAFohgA0QwCaIQDNEIBmCEAzBKAZAtAMAWiGADRDAJoV9ESsuuaPsDCsz2mC60sOvMWSS79esvqXfMulFNeOHvy7mTwoKAAWgVns8jQS4jxNYJ2d1/7s708NqoYe/TTMpLfZ4HfJo4KfCbNJyWP7vaU/nlUvWVOlHtYvII9wDdAMAWg2oQOIxVqs7BUrt97SwnlPvS9aL4ai7bixsWMBW7J0rOu7MuM8TPRdWrWqZoh8sHNP+0LHld9ui7f1XOnmrbGYkNn69qaOb3oSbZ817m7tjP7wyb6R9Rua2upUfV59/MyRHyOfnsjW4vGu4DA/+rkn0V6ujq8pGq28QEVWlAB27Dj+hgzI79WQrWSs2whh0ZvvzNmgZu+QD6RDYRLqbZjmzJ9/tlyV7jKzsb2p7YMny4X4UE2eBKAa+rUhmX4vO28Is0JNTjzdy+BsJhFSvYikxdntXs0A6uq+eKAO4v9UunfMp7RwuMytrAxnyCfSoFaSZAuDEsuWfXQvGs2GLmRjvPW0ZF4oLNE1sm53d0V6bkX7KbX+PMHcOlIPhWYkbt+9c851aBabQV9+GVeQRbVrqr96zs3JZJEdhhajDTAK0gwBaIYANCv4IixYhKprV/9Kk5QaXk1Rg6P75FFBAbhsdVmG40zmP9iw+iLIYe9DaM8tWFUVK6UpND23bjOnDx36K0nj1NKla+3eVPL13HrQedR/+PB/KSoSz/cB0h58P2hY3+XWh9m9qSabaZy6n+yttALmoty6G7CzN2O7qEg8BzCVUt3DA2W33ZLgM73JZjNN41j5tFCH6gGXcutBZ2o/AQAAAAAAAAAAAAAAAAAAAAAAAAAAAAC8Wh4DHao3Ziis3D8AAAAASUVORK5CYII=
          - id: -6
            name: 0000F4BD1EE2
            online: true
            friendly_name: test_leaf_put
            location: test_location_leaf
            mobile: false
            is_static: UNKNOWN
            tx_enable: '0'
            sounding_state: NONE
            type: EXTENDER
            icon: LEAF
            hw_platform: Unknown
            macs:
              - 00:00:F4:BD:1E:E2
            icon_url: >-
              data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGAAAABgCAYAAADimHc4AAAACXBIWXMAAAsTAAALEwEAmpwYAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAPKSURBVHgB7dpbaBxlFAfwc2amu9luq6WNaUSqEoqKCBUi1X1bkzReIoHaui2Sxjd9EwIRxAQ62HqhoL5YUCJIZRvMplYMFdNauvEpF/Splmh8sFAvEWkRabfZZOb7PNPa0mw3UHZ2+uXy/8HkJGcnhHz/2d2zw0cEAAAAAAAAAAAAAAAAAAAAAAAAcLukUl2JdNp1KEIWQVktz/bsS6xPTtnJ2V+a297YTRFBAGU0PdezXTP1klafsOY8ER9uaXHvpQgggDJY0SYp51UhdlD59BEF61QzhwBuF99SJ4h10U56w+TwF0R66tL5wg8UAQRQxsixd35SntckC18rQUw5HqVHRz+4TBFAAAvIDx/4WcqvrPTp48ff/pMiggAMQwCGIQDDEIBhCMAwBGAYAjAMARiGAAxDAIYhAMMQgGEIwDAEYBgCMIypAtvaetsV672kl32Am+UoynGu3IOa6OSpr996jUKoaMuFT7qBNT1AWh+SHz1avr5b8BHmZ+TqbaGQwux5uegXYt0jI+4MrUDNbT13SnmUQsJ7gGEIwLBlHcCnuYl613Xn/Y+5XC7W1z+2sfTcoaGh1YeOjm8o7WezY3cEB0Wkavse+wfGdmil197q+cqyC4XE9LFX2tsLFIHDg+NdWtO+zQ8/fcZ1KSVBqKDv8f1uwtFd2SPjgx07H+8Mevl83vnj79WDNlFTdmCit2PX1veCfn//97XKUeOadP1nn4/u6dydOkpVVpUA5Kqyi8Qfsk3rbvV3LNJefKYuLd9GsuFJxpRtMigmpW5teOipB4ncyVzux1hRX9zDxDUyxWXkpCsB/HZh7V3Eqpm1jjNTsA/0SgDK8mQM5Yarszq/IF8WZwCZTMaXcjctIh777zvaukdrfUqu3Mmgl8k8MpsdGH1TRshXlU8fXzu34/nG6eyRiWDR28hSe6/11WzitFVzWRbd2uQ41gGKQKRbr016aWfqpJQtpf2OXak+KX039pjl+UDU8/9xXWfnlktSdlCEMAUZhgAMC/kS9E9NOu3SSsTsWfL+QmFVFAAHf5m53kqumVzet4IWJkuwRsoUhVRRADNObDDuzV2QOcGmFSq49lnZZyikim5H36ix8eVV62o3POGznh+Gw9PBPntaolpbu5Nz9qrH5EovXaOzI8PvnqUqCT2Grq+re1JZ+qubngqafqer99OXJM+Jv24xdZf25UPcl1JepCoJHcC33+w/0bq9+z6nyPMmKt/3ZmkJi+uN+5nOHSzt/2Ul/yUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgMXlPysCGQFLhCQPAAAAAElFTkSuQmCC
            icon_url_disabled: >-
              data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGAAAABgCAYAAADimHc4AAAACXBIWXMAAAsTAAALEwEAmpwYAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAOxSURBVHgB7dtbaBRXGAfw78zMbjLaWBu7Ki3SUlQs6RakoS0thbSmRRJp6YNb3CAFabFPUmihD1rYQvtSWp8UffBCjEbdiPjgJYiaB6+5iEFCUBSvUXDjLRt3c9mZ83lWyYObFeLOjsck/9/LzH5zWeb898yc2dklAgAAAAAAAAAAAAAAAAAAAAAAAHhZ1m89MHtd/d4Z5CODIK/NDc3/lJrmVVvYV7Y0HPydfCIIRtlU3/wxCT4pmP9VLVSimuk34fDMFStqeqnI0APyMMidqT6ZSXIy61lkNjLREJvuXPKBRTBKZjB13LLL0iJQcpqYpxPT1TJ74Cz5AD0gj5UrI31BIb5k6Trq5S225OJIJDJMPkAAz7F8+eLLwjRuqPP/xZ/qaq+TTxCAZghAMwSgGQLQDAFohgA0QwCaIQDNEIBmCEAzBKAZAtAMAWiGADRDAJoV9ESsuuaPsDCsz2mC60sOvMWSS79esvqXfMulFNeOHvy7mTwoKAAWgVns8jQS4jxNYJ2d1/7s708NqoYe/TTMpLfZ4HfJo4KfCbNJyWP7vaU/nlUvWVOlHtYvII9wDdAMAWg2oQOIxVqs7BUrt97SwnlPvS9aL4ai7bixsWMBW7J0rOu7MuM8TPRdWrWqZoh8sHNP+0LHld9ui7f1XOnmrbGYkNn69qaOb3oSbZ817m7tjP7wyb6R9Rua2upUfV59/MyRHyOfnsjW4vGu4DA/+rkn0V6ujq8pGq28QEVWlAB27Dj+hgzI79WQrWSs2whh0ZvvzNmgZu+QD6RDYRLqbZjmzJ9/tlyV7jKzsb2p7YMny4X4UE2eBKAa+rUhmX4vO28Is0JNTjzdy+BsJhFSvYikxdntXs0A6uq+eKAO4v9UunfMp7RwuMytrAxnyCfSoFaSZAuDEsuWfXQvGs2GLmRjvPW0ZF4oLNE1sm53d0V6bkX7KbX+PMHcOlIPhWYkbt+9c851aBabQV9+GVeQRbVrqr96zs3JZJEdhhajDTAK0gwBaIYANCv4IixYhKprV/9Kk5QaXk1Rg6P75FFBAbhsdVmG40zmP9iw+iLIYe9DaM8tWFUVK6UpND23bjOnDx36K0nj1NKla+3eVPL13HrQedR/+PB/KSoSz/cB0h58P2hY3+XWh9m9qSabaZy6n+yttALmoty6G7CzN2O7qEg8BzCVUt3DA2W33ZLgM73JZjNN41j5tFCH6gGXcutBZ2o/AQAAAAAAAAAAAAAAAAAAAAAAAAAAAAC8Wh4DHao3Ziis3D8AAAAASUVORK5CYII=
        links:
          - src_id: -3
            dst_id: -4
            motion_enabled: true
            sounding_state: ACTIVE
            detail:
              mac: 00:00:F4:BD:1E:F2
              peer_type: '7'
              node: test-0000F4BD1F03
              if_type: WIFI_AP
              if_mac: None
          - src_id: -2
            dst_id: -5
            motion_enabled: true
            sounding_state: ACTIVE
            detail:
              mac: 00:00:F4:BD:1F:02
              peer_type: '7'
              node: test-0000F4BD1EF3
              if_type: WIFI_AP
              if_mac: None
          - src_id: -3
            dst_id: -6
            motion_enabled: true
            sounding_state: NONE
            detail:
              mac: 00:00:F4:BD:1E:E2
              peer_type: '7'
              node: test-0000F4BD1F03
              if_type: WIFI_AP
              if_mac: None
    POST_searches_200:
      type: object
      properties:
        id:
          type: integer
        address:
          type: string
        building_size:
          type: string
        building_type:
          type: string
        latitude:
          anyOf:
            - type: string
            - type: integer
        longitude:
          anyOf:
            - type: string
            - type: integer
        live_enabled:
          type: boolean
        name:
          anyOf:
            - type: string
              nullable: true
        pet_size:
          type: string
        external_id:
          type: integer
        timezone:
          type: string
        user_count:
          type: integer
        scene_id:
          type: integer
        created_at:
          type: string
        updated_at:
          type: string
        network_scene_config:
          anyOf:
            - type: object
            - type: number
        claimed:
          type: boolean
        is_owner:
          type: boolean
        subscription_id:
          nullable: true
          type: string
    POST_find_200:
      type: object
      properties:
        id:
          type: integer
        address:
          type: string
        building_size:
          type: string
        building_type:
          type: string
        latitude:
          anyOf:
            - type: string
            - type: integer
        longitude:
          anyOf:
            - type: string
            - type: integer
        live_enabled:
          type: boolean
        name:
          anyOf:
            - type: string
              nullable: true
        pet_size:
          type: string
        external_id:
          type: integer
        timezone:
          type: string
        user_count:
          type: integer
        scene_id:
          type: integer
        created_at:
          type: string
        updated_at:
          type: string
        network_scene_config:
          anyOf:
            - type: object
            - type: number
        claimed:
          type: boolean
        is_owner:
          type: boolean
        subscription_id:
          nullable: true
          type: string
    PUT_scenes:
      title: Root Type for PUT_scenes
      description: ''
      type: object
      properties:
        scene_id:
          type: integer
      example:
        scene_id: 1
    UniversalAlertResponse200:
      title: Root Type for GET_universal_alert_200
      description: ''
      type: object
      properties:
        alerts:
          type: array
          items:
            type: object
            properties:
              id:
                type: string
              uuid:
                type: string
              enabled:
                type: boolean
              alert_name:
                type: string
              external_id:
                type: integer
              rrule:
                type: string
              monitor:
                type: object
                properties:
                  monitor_mode:
                    type: string
                  duration_minutes:
                    type: integer
              meta:
                type: object
                properties:
                  alert_type:
                    type: string
              analytics_tag:
                type: string
              no_motion_actions:
                type: array
                items:
                  type: object
                  properties:
                    action:
                      type: string
                    payload:
                      type: object
                    user_ids:
                      type: array
                      items: {}
              motion_actions:
                type: array
                items:
                  type: object
                  properties:
                    action:
                      type: string
                    payload:
                      type: object
                    user_ids:
                      type: array
                      items: {}
              unknown_actions:
                type: array
                items: {}
              error_actions:
                type: array
                items: {}
              timezone:
                type: string
              target:
                type: string
              window_end:
                type: integer
              options:
                type: object
                properties:
                  timeout:
                    type: integer
                  attempts:
                    type: integer
                  removeOnComplete:
                    type: boolean
                  delay:
                    type: integer
                  timestamp:
                    type: integer
      example:
        alerts:
          - uuid: 16cd9560-0f13-4ffe-b9b4-127bd0bfaf1d
            enabled: false
            alert_name: Preset Rise and Shine
            external_id: 14
            rrule: "DTSTART;TZID=Europe/London:20220101T100000\r\nRRULE:FREQ=WEEKLY;BYDAY=MO,TU,WE,TH,FR,SA,SU\r\n"
            monitor:
              monitor_mode: SIMPLE
              duration_minutes: 240
              repeat_monitoring: true
            meta:
              alert_type: RISE_AND_SHINE_PRESET
            analytics_tag: riseAndShinePreset
            no_motion_actions:
              - action: fcm_push
                payload: {}
                user_ids: []
            motion_actions:
              - action: fcm_push
                payload: {}
                user_ids: []
            unknown_actions: []
            error_actions: []
            timezone: Europe/London
            target: 3/3/2022, 10:00:00 AM - Europe/London
            window_end: 1646301600000
            window_start: 1645301600000
            id: '10'
    UniversalAlertStatusResponse200:
      title: Root Type for GET_universal_alert_status
      description: ''
      type: object
      properties:
        alerts:
          type: array
          items:
            type: object
            properties:
              id:
                type: string
              data:
                type: object
                properties:
                  uuid:
                    type: string
                  enabled:
                    type: boolean
                  alert_name:
                    type: string
                  external_id:
                    type: integer
                  rrule:
                    type: string
                  monitor:
                    type: object
                    properties:
                      monitor_mode:
                        type: string
                      duration_minutes:
                        type: integer
                  meta:
                    type: object
                    properties:
                      alert_type:
                        type: string
                  analytics_tag:
                    type: string
                  no_motion_actions:
                    type: array
                    items:
                      type: object
                      properties:
                        action:
                          type: string
                        payload:
                          type: object
                          properties:
                            data:
                              type: object
                              properties:
                                title:
                                  type: string
                                body:
                                  type: string
                                click_action:
                                  type: string
                                sound:
                                  type: string
                            apns:
                              type: object
                              properties:
                                headers:
                                  type: object
                                  properties:
                                    apns-push-type:
                                      type: string
                                    apns-topic:
                                      type: string
                                payload:
                                  type: object
                                  properties:
                                    aps:
                                      type: object
                                      properties:
                                        alert:
                                          type: object
                                          properties:
                                            title:
                                              type: string
                                            body:
                                              type: string
                                        sound:
                                          type: string
                                        category:
                                          type: string
                        user_ids:
                          type: array
                          items: {}
                  motion_actions:
                    type: array
                    items:
                      type: object
                      properties:
                        action:
                          type: string
                        payload:
                          type: object
                          properties:
                            data:
                              type: object
                              properties:
                                title:
                                  type: string
                                body:
                                  type: string
                                click_action:
                                  type: string
                                sound:
                                  type: string
                            apns:
                              type: object
                              properties:
                                headers:
                                  type: object
                                  properties:
                                    apns-push-type:
                                      type: string
                                    apns-topic:
                                      type: string
                                payload:
                                  type: object
                                  properties:
                                    aps:
                                      type: object
                                      properties:
                                        alert:
                                          type: object
                                          properties:
                                            title:
                                              type: string
                                            body:
                                              type: string
                                        sound:
                                          type: string
                                        category:
                                          type: string
                        user_ids:
                          type: array
                          items: {}
                  unknown_actions:
                    type: array
                    items:
                      type: object
                      properties:
                        action:
                          type: string
                        payload:
                          type: object
                          properties:
                            data:
                              type: object
                              properties:
                                title:
                                  type: string
                                body:
                                  type: string
                                click_action:
                                  type: string
                                sound:
                                  type: string
                            apns:
                              type: object
                              properties:
                                headers:
                                  type: object
                                  properties:
                                    apns-push-type:
                                      type: string
                                    apns-topic:
                                      type: string
                                payload:
                                  type: object
                                  properties:
                                    aps:
                                      type: object
                                      properties:
                                        alert:
                                          type: object
                                          properties:
                                            title:
                                              type: string
                                            body:
                                              type: string
                                        sound:
                                          type: string
                                        category:
                                          type: string
                        user_ids:
                          type: array
                          items: {}
                  error_actions:
                    type: array
                    items: {}
                  timezone:
                    type: string
                  target:
                    type: string
                  window_end:
                    type: integer
              progress:
                type: integer
              attemptsMade:
                type: integer
              failedReason:
                type: string
              status:
                type: string
              stacktrace:
                type: array
                items: {}
              timestamp:
                type: integer
              returnValue:
                type: string
              finishedOn:
                type: string
              processedOn:
                type: string
              processingTime:
                type: integer
              name:
                type: string
              opts:
                type: object
                properties:
                  timeout:
                    type: integer
                  attempts:
                    type: integer
                  removeOnComplete:
                    type: boolean
                  delay:
                    type: integer
                  timestamp:
                    type: integer
              delay:
                type: integer
      example:
        alerts:
          - id: '14'
            data:
              uuid: eecc4727-707d-48f2-b5e4-3c6aa6745aec
              enabled: true
              alert_name: Preset Rise and Shine
              external_id: 14
              rrule: "DTSTART;TZID=Europe/London:20220101T080000\r\nRRULE:FREQ=WEEKLY;BYDAY=MO,TU,WE,TH,FR,SA,SU\r\n"
              monitor:
                monitor_mode: SIMPLE
                duration_minutes: 120
              meta:
                alert_type: RISE_AND_SHINE_PRESET
              analytics_tag: riseAndShinePreset
              no_motion_actions:
                - action: fcm_push
                  payload:
                    data:
                      title: Rise and Shine
                      body: Your loved one has not begun their day
                      click_action: CustomAlertEvent
                      sound: Aura_Push_Final.wav
                    apns:
                      headers:
                        apns-push-type: alert
                        apns-topic: com.csc.HaloHome
                      payload:
                        aps:
                          alert:
                            title: Rise and Shine
                            body: Your loved one has not begun their day
                          sound: Aura_Push_Final.wav
                          category: CustomAlertEvent
                  user_ids: []
                - action: custom_event
                  payload:
                    data:
                      title: Rise and Shine
                      body: Your loved one has not begun their day
                  user_ids: []
              motion_actions:
                - action: fcm_push
                  payload:
                    data:
                      title: Rise and Shine
                      body: Your loved one has begun their day
                      click_action: CustomAlertEvent
                      sound: Aura_Push_Final.wav
                    apns:
                      headers:
                        apns-push-type: alert
                        apns-topic: com.csc.HaloHome
                      payload:
                        aps:
                          alert:
                            title: Rise and Shine
                            body: Your loved one has begun their day
                          sound: Aura_Push_Final.wav
                          category: CustomAlertEvent
                  user_ids: []
                - action: custom_event
                  payload:
                    data:
                      title: Rise and Shine
                      body: Your loved one has begun their day
                  user_ids: []
              unknown_actions:
                - action: fcm_push
                  payload:
                    data:
                      title: Rise and Shine
                      body: Caregiver Aware could not determine motion in your home
                      click_action: CustomAlertEvent
                      sound: Aura_Push_Final.wav
                    apns:
                      headers:
                        apns-push-type: alert
                        apns-topic: com.csc.HaloHome
                      payload:
                        aps:
                          alert:
                            title: Rise and Shine
                            body: >-
                              Caregiver Aware could not determine motion in your
                              home
                          sound: Aura_Push_Final.wav
                          category: CustomAlertEvent
                  user_ids: []
                - action: custom_event
                  payload:
                    data:
                      title: Rise and Shine
                      body: Caregiver Aware could not determine motion in your home
                  user_ids: []
              error_actions: []
              timezone: Europe/London
              target: 3/10/2022, 8:00:00 AM - Europe/London
              window_end: 1646899200000
            progress: 0
            attemptsMade: 0
            status: delayed
            stacktrace: []
            timestamp: 1646861001684
            processingTime: 0
            name: __default__
            opts:
              timeout: 3000
              attempts: 3
              removeOnComplete: true
              delay: 38198317
              timestamp: 1646861001684
            delay: 38198317
    UniversalAlertUUIDResponse201:
      title: Root Type for DELETE_universal_alert
      description: ''
      type: object
      properties:
        uuid:
          type: string
        enabled:
          type: boolean
        alert_name:
          type: string
        external_id:
          type: integer
        rrule:
          type: string
        monitor:
          type: object
          properties:
            monitor_mode:
              type: string
            duration_minutes:
              type: integer
        meta:
          type: object
          properties:
            alert_type:
              type: string
        analytics_tag:
          type: string
        no_motion_actions:
          type: array
          items:
            type: object
            properties:
              action:
                type: string
              payload:
                type: object
                properties:
                  data:
                    type: object
                    properties:
                      title:
                        type: string
                      body:
                        type: string
                      click_action:
                        type: string
                      sound:
                        type: string
                  apns:
                    type: object
                    properties:
                      headers:
                        type: object
                        properties:
                          apns-push-type:
                            type: string
                          apns-topic:
                            type: string
                      payload:
                        type: object
                        properties:
                          aps:
                            type: object
                            properties:
                              alert:
                                type: object
                                properties:
                                  title:
                                    type: string
                                  body:
                                    type: string
                              sound:
                                type: string
                              category:
                                type: string
              user_ids:
                type: array
                items: {}
        motion_actions:
          type: array
          items:
            type: object
            properties:
              action:
                type: string
              payload:
                type: object
                properties:
                  data:
                    type: object
                    properties:
                      title:
                        type: string
                      body:
                        type: string
                      click_action:
                        type: string
                      sound:
                        type: string
                  apns:
                    type: object
                    properties:
                      headers:
                        type: object
                        properties:
                          apns-push-type:
                            type: string
                          apns-topic:
                            type: string
                      payload:
                        type: object
                        properties:
                          aps:
                            type: object
                            properties:
                              alert:
                                type: object
                                properties:
                                  title:
                                    type: string
                                  body:
                                    type: string
                              sound:
                                type: string
                              category:
                                type: string
              user_ids:
                type: array
                items: {}
        unknown_actions:
          type: array
          items:
            type: object
            properties:
              action:
                type: string
              payload:
                type: object
                properties:
                  data:
                    type: object
                    properties:
                      title:
                        type: string
                      body:
                        type: string
                      click_action:
                        type: string
                      sound:
                        type: string
                  apns:
                    type: object
                    properties:
                      headers:
                        type: object
                        properties:
                          apns-push-type:
                            type: string
                          apns-topic:
                            type: string
                      payload:
                        type: object
                        properties:
                          aps:
                            type: object
                            properties:
                              alert:
                                type: object
                                properties:
                                  title:
                                    type: string
                                  body:
                                    type: string
                              sound:
                                type: string
                              category:
                                type: string
              user_ids:
                type: array
                items: {}
        error_actions:
          type: array
          items: {}
        timezone:
          type: string
        target:
          type: string
        window_end:
          type: integer
        id:
          $ref: '#/components/schemas/null'
      example:
        uuid: a93a9c7d-ce5e-4ec7-be6f-8795c68c1930
        enabled: true
        alert_name: Outing
        external_id: 14
        rrule: |-
          DTSTART;TZID=America/New_York:20220318T200000
          RRULE:FREQ=WEEKLY;COUNT=1;INTERVAL=1;WKST=MO
        monitor:
          monitor_mode: SIMPLE
          duration_minutes: 120
        meta:
          alert_type: OUTING_PRESET
        analytics_tag: outingsPreset
        no_motion_actions:
          - action: fcm_push
            payload:
              data:
                title: Friday Bowling
                body: No motion at home 6pm - 8pm
                click_action: CustomAlertEvent
                sound: Aura_Push_Final.wav
              apns:
                headers:
                  apns-push-type: alert
                  apns-topic: com.csc.HaloHome
                payload:
                  aps:
                    alert:
                      title: Friday Bowling
                      body: No motion at home from 6pm - 8pm
                    sound: Aura_Push_Final.wav
                    category: CustomAlertEvent
            user_ids: []
          - action: custom_event
            payload:
              data:
                title: Friday Bowling
                body: No motion at home from 6pm - 8pm
            user_ids: []
        motion_actions:
          - action: fcm_push
            payload:
              data:
                title: Friday Bowling
                body: Your loved one stayed home
                click_action: CustomAlertEvent
                sound: Aura_Push_Final.wav
              apns:
                headers:
                  apns-push-type: alert
                  apns-topic: com.csc.HaloHome
                payload:
                  aps:
                    alert:
                      title: Friday Bowling
                      body: Your loved one stayed home
                    sound: Aura_Push_Final.wav
                    category: CustomAlertEvent
            user_ids: []
          - action: custom_event
            payload:
              data:
                title: Friday Bowling
                body: Your loved one stayed home
            user_ids: []
        unknown_actions:
          - action: fcm_push
            payload:
              data:
                title: Friday Bowling
                body: Caregiver Aware could not determine motion in the home
                click_action: CustomAlertEvent
                sound: Aura_Push_Final.wav
              apns:
                headers:
                  apns-push-type: alert
                  apns-topic: com.csc.HaloHome
                payload:
                  aps:
                    alert:
                      title: Friday Bowling
                      body: Caregiver Aware could not determine motion in the home
                    sound: Aura_Push_Final.wav
                    category: CustomAlertEvent
            user_ids: []
          - action: custom_event
            payload:
              data:
                title: Friday Bowling
                body: Caregiver Aware could not determine motion in the home
            user_ids: []
        error_actions: []
        timezone: America/New_York
        target: 3/18/2022, 8:00:00 PM - America/New_York
        window_end: 1647648000000
    UniversalAlertUUIDResponse200:
      required:
        - enabled
      type: object
      properties:
        id:
          description: internal unique identifier of the alert
          type: string
        enabled:
          description: the active status of the alert
          type: boolean
        target:
          description: Date string of next notification
          type: string
        timezone:
          description: ''
          type: string
        alert_name:
          type: string
        rrule:
          type: string
        monitor:
          type: object
          properties:
            monitor_mode:
              type: string
            duration_minutes:
              type: integer
            inactive_minutes:
              type: integer
            repeat_monitoring:
              type: boolean
        meta:
          type: object
          properties:
            anything:
              type: string
        analytics_tag:
          type: string
        no_motion_actions:
          type: array
          items:
            $ref: '#/components/schemas/UniversalAlertActions'
        motion_actions:
          type: array
          items:
            $ref: '#/components/schemas/UniversalAlertActions'
        unknown_actions:
          type: array
          items:
            $ref: '#/components/schemas/UniversalAlertActions'
        error_actions:
          type: array
          items:
            $ref: '#/components/schemas/UniversalAlertActions'
        uuid:
          description: Unique id
          type: string
        external_id:
          description: External network id
          type: string
        window_end:
          description: ''
          type: number
        window_start:
          description: Timestamp showing when monitoring will start
          type: integer
        created_at:
          description: Alert creation timestamp
          type: integer
        next_run:
          description: >-
            Timestamp of the next alert trigger. Can be used to monitor the
            execution of alerts inside the inactivity window.
      example:
        uuid: Unique alert identifier
        enabled: true
        target: '2021-12-13T16:00:00.000+00:00'
        timezone: America/New_York
        alert_name: client decided label
        rrule: |-
          DTSTART;TZID=America/New_York:20211201T163000
          RRULE:FREQ=WEEKLY;COUNT=30;INTERVAL=1;WKST=MO
        monitor:
          monitor_mode: INACTIVITY
          duration_minutes: 10
          inactive_minutes: 2
          repeat_monitoring: true
        meta:
          anything: client controlled writable space
        analytics_tag: caregiver_alert_trace
        no_motion_actions:
          - action: fcm_push
            user_ids:
              - 5
              - 9
            payload:
              apns:
                headers:
                  apns-push-type: alert
                  apns-topic: com.csc.HaloHome
                payload:
                  aps:
                    alert:
                      title: no motion
                      body: '123'
                    sound: Aura_Push_Final.wav
                    category: User
        motion_actions:
          - action: fcm_push
            payload:
              data:
                click_action: CustomAlertEvent
                title: NO Motion Ua
                body: No Motion was detected during Now
                sound: Aura_Push_Final.wav
              apns:
                headers:
                  apns-push-type: alert
                  apns-topic: com.csc.HaloHome
                payload:
                  aps:
                    alert:
                      title: motion
                      body: '123'
                    sound: Aura_Push_Final.wav
                    category: User
        unknown_actions: []
        error_actions: []
        id: 2255
    UniversalAlertUUIDRequestBody:
      title: Root Type for 201_PATCH_UNIVERSAL_ALERT
      description: ''
      required:
        - monitor
        - enabled
      type: object
      properties:
        alert_name:
          description: "Default: \"\"\r\nDefaults to an empty string if no value is provided."
          type: string
        enabled:
          type: boolean
        rrule:
          description: "The RRULE string which can be generated here: https://jakubroztocil.github.io/rrule/\r\n\r\nNote that new lines must be explicitly escaped with \\n. COUNT will always internally converted to 1 since computing every possible alert is not required. The cloud needs only to know when the single next alert is.\r\n\r\nExample: DTSTART;TZID=America/New_York:20211201T163000\\nRRULE:FREQ=WEEKLY;COUNT=30;INTERVAL=1;WKST=MO"
          type: string
        analytics_tag:
          description: "Default: \"\"\r\nAny string that can be used for analytics tracing. Defaults to \"\" if the field is not included."
          type: string
        monitor:
          description: This object defines the conditions and type of the motion monitor.
          type: object
          properties:
            monitor_mode:
              enum:
                - NONE
                - SIMPLE
                - INACTIVITY
              type: string
            duration_minutes:
              description: >-
                The length of time in minutes of the monitored duration. The
                cloud will determine the start time per the timezone in the
                rrule field by subtracting this from the targeted time of the
                monitor completion (in which the result is sent).
              type: integer
            inactive_minutes:
              description: Required if the `monitor_mode` is "INACTIVITY"
              type: integer
            repeat_monitoring:
              description: >-
                If the `monitor_mode` is "INACTIVITY", this boolean determines
                if the alert should continue monitoring if inactivity is
                detected.
              type: boolean
            stop_event_filter:
              description: >-
                Not yet supported - 1/1/2022


                The keys of the object will compare to keys of MQTT events as
                they are from core. All key value pairs placed in this object
                will be expected on the event from core. 
              default: {}
              type: object
        meta:
          description: >-
            The contents of this object is fully decided by the client and will
            not persist anywhere if the alert is deleted.
          type: object
          properties:
            alert_type:
              type: string
        motion_actions:
          type: array
          items:
            $ref: '#/components/schemas/UniversalAlertActions'
        no_motion_actions:
          type: array
          items:
            $ref: '#/components/schemas/UniversalAlertActions'
        unknown_actions:
          type: array
          items:
            $ref: '#/components/schemas/UniversalAlertActions'
        error_actions:
          type: array
          items:
            $ref: '#/components/schemas/UniversalAlertActions'
      example:
        alert_name: Change
        enabled: false
        rrule: "DTSTART;TZID=Europe/London:20220101T080000\r\nRRULE:FREQ=WEEKLY;BYDAY=MO,TU,WE,TH,FR,SA,SU\r\n"
        analytics_tag: riseAndShinePreset
        monitor:
          monitor_mode: SIMPLE
          duration_minutes: 120
        meta:
          alert_type: RISE_AND_SHINE_PRESET
        motion_actions:
          - user_ids: []
            action: fcm_push
            payload:
              data:
                title: Rise and Shine
                body: Your loved one has begun their day
                click_action: CustomAlertEvent
                sound: Aura_Push_Final.wav
              apns:
                headers:
                  apns-push-type: alert
                  apns-topic: com.csc.HaloHome
                payload:
                  aps:
                    alert:
                      title: Rise and Shine
                      body: Your loved one has begun their day
                    sound: Aura_Push_Final.wav
                    category: CustomAlertEvent
          - user_ids: []
            action: custom_event
            payload:
              data:
                title: Rise and Shine
                body: Your loved one has begun their day
        no_motion_actions:
          - user_ids: []
            action: fcm_push
            payload:
              data:
                title: Rise and Shine
                body: Your loved one has not begun their day
                click_action: CustomAlertEvent
                sound: Aura_Push_Final.wav
              apns:
                headers:
                  apns-push-type: alert
                  apns-topic: com.csc.HaloHome
                payload:
                  aps:
                    alert:
                      title: Rise and Shine
                      body: Your loved one has not begun their day
                    sound: Aura_Push_Final.wav
                    category: CustomAlertEvent
          - action: custom_event
            payload:
              data:
                title: Rise and Shine
                body: Your loved one has not begun their day
        unknown_actions:
          - user_ids: []
            action: fcm_push
            payload:
              data:
                title: Rise and Shine
                body: Caregiver Aware could not determine motion in your home
                click_action: CustomAlertEvent
                sound: Aura_Push_Final.wav
              apns:
                headers:
                  apns-push-type: alert
                  apns-topic: com.csc.HaloHome
                payload:
                  aps:
                    alert:
                      title: Rise and Shine
                      body: Caregiver Aware could not determine motion in your home
                    sound: Aura_Push_Final.wav
                    category: CustomAlertEvent
          - action: custom_event
            payload:
              data:
                title: Rise and Shine
                body: Caregiver Aware could not determine motion in your home
        error_actions:
          type: Array
          Items:
            user_ids: []
            action: fcm_push
            payload:
              data:
                title: Rise and Shine
                body: Caregiver Aware could not determine motion in your home
                click_action: CustomAlertEvent
                sound: Aura_Push_Final.wav
              apns:
                headers:
                  apns-push-type: alert
                  apns-topic: com.csc.HaloHome
                payload:
                  aps:
                    alert:
                      title: Rise and Shine
                      body: Caregiver Aware could not determine motion in your home
                    sound: Aura_Push_Final.wav
                    category: CustomAlertEvent
    UniversalAlertingBulkRequestBody:
      title: Root Type for POST_universal-alert-bulk
      description: ''
      type: array
      items:
        $ref: '#/components/schemas/PATCH_universal-alert-object-inner'
      example:
        - uuid: 7b532ceb-2937-4f0e-8b0f-0a332883a202
          enabled: true
        - uuid: 93f3557e-734c-4bb9-8be3-53014c68642a
          enabled: true
    UniversalAlertResponse201:
      required:
        - enabled
      type: object
      properties:
        id:
          description: internal unique identifier of the alert
          type: string
        enabled:
          description: the active status of the alert
          type: boolean
        target:
          description: Date string of next notification
          type: string
        timezone:
          description: ''
          type: string
        alert_name:
          type: string
        rrule:
          type: string
        monitor:
          type: object
          properties:
            monitor_mode:
              type: string
            duration_minutes:
              type: integer
            inactive_minutes:
              type: integer
            repeat_monitoring:
              type: boolean
        meta:
          type: object
          properties:
            anything:
              type: string
        analytics_tag:
          type: string
        no_motion_actions:
          type: array
          items:
            $ref: '#/components/schemas/UniversalAlertActions'
        motion_actions:
          type: array
          items:
            $ref: '#/components/schemas/UniversalAlertActions'
        unknown_actions:
          type: array
          items:
            $ref: '#/components/schemas/UniversalAlertActions'
        error_actions:
          type: array
          items:
            $ref: '#/components/schemas/UniversalAlertActions'
        uuid:
          description: Unique id
          type: string
        external_id:
          description: External network id
          type: string
        window_end:
          description: ''
          type: number
        window_start:
          description: Timestamp showing when monitoring will start
          type: integer
        created_at:
          description: Alert creation timestamp
          type: integer
        next_run:
          description: >-
            Timestamp of the next alert trigger. Can be used to monitor the
            execution of alerts inside the inactivity window.
      example:
        uuid: Unique alert identifier
        enabled: true
        target: '2021-12-13T16:00:00.000+00:00'
        timezone: America/New_York
        alert_name: client decided label
        rrule: |-
          DTSTART;TZID=America/New_York:20211201T163000
          RRULE:FREQ=WEEKLY;COUNT=30;INTERVAL=1;WKST=MO
        monitor:
          monitor_mode: INACTIVITY
          duration_minutes: 10
          inactive_minutes: 2
          repeat_monitoring: true
        meta:
          anything: client controlled writable space
        analytics_tag: caregiver_alert_trace
        no_motion_actions:
          - action: fcm_push
            user_ids:
              - 5
              - 9
            payload:
              apns:
                headers:
                  apns-push-type: alert
                  apns-topic: com.csc.HaloHome
                payload:
                  aps:
                    alert:
                      title: no motion
                      body: '123'
                    sound: Aura_Push_Final.wav
                    category: User
        motion_actions:
          - action: fcm_push
            payload:
              data:
                click_action: CustomAlertEvent
                title: NO Motion Ua
                body: No Motion was detected during Now
                sound: Aura_Push_Final.wav
              apns:
                headers:
                  apns-push-type: alert
                  apns-topic: com.csc.HaloHome
                payload:
                  aps:
                    alert:
                      title: motion
                      body: '123'
                    sound: Aura_Push_Final.wav
                    category: User
        unknown_actions: []
        error_actions: []
        id: 2255
    UniversalAlertRequestBody:
      required:
        - monitor
      type: object
      properties:
        enabled:
          type: boolean
        alert_name:
          description: Defaults to an empty string if no value is provided.
          default: ''
          type: string
        rrule:
          description: >-
            The RRULE string which can be generated here:

            https://jakubroztocil.github.io/rrule/


            Note that new lines must be explicitly escaped with `\n`. Note that
            providing the RRULE string without the RRULE will result in a yearly
            alert. For a single occurrence, COUNT=1 must be provided


            Example:

            `DTSTART;TZID=America/New_York:20211201T163000\nRRULE:FREQ=WEEKLY;COUNT=30;INTERVAL=1;WKST=MO`
          default: ''
          type: string
        monitor:
          description: >-
            Motion monitor object. `monitor_mode` Specifies the type of
            monitoring. 

             `NONE`: Ignore motion and triggers actions at specified time.

             `SIMPLE`: Checks period between alert trigger and `duration_minutes`. 

             `INACTIVITY`: checks for inactivity in the given period. `inactive_minutes` specifies the length of the inactivity. `repeat_monitoring` specifies if the alert should continue after inactivity was detected
          type: object
          properties:
            monitor_mode:
              enum:
                - NONE
                - SIMPLE
                - INACTIVITY
              type: string
            duration_minutes:
              description: >-
                The length of time in minutes of the monitored duration. The
                cloud will determine the start time per the timezone in the
                rrule field by subtracting this from the targeted time of the
                monitor completion (in which the result is sent).
              type: integer
            inactive_minutes:
              description: Required if the `monitor_mode` is "INACTIVITY"
              type: integer
            repeat_monitoring:
              description: >-
                If the `monitor_mode` is "INACTIVITY", this boolean determines
                if the alert should continue monitoring if inactivity is
                detected. Defaults to true
              type: boolean
            stop_event_filter:
              description: >-
                Not yet supported - 1/1/2022


                The keys of the object will compare to keys of MQTT events as
                they are from core. All key value pairs placed in this object
                will be expected on the event from core. 
              default: {}
              type: object
        meta:
          description: >-
            The contents of this object are decided by the client and will not
            persist if the alert is deleted. 
          type: object
        analytics_tag:
          description: >-
            Any string that can be used for analytics tracing. Defaults to "" if
            the field is not included. 
          default: ''
          type: string
        no_motion_actions:
          description: Actions to perform when no motion is detected
          type: array
          items:
            $ref: '#/components/schemas/UniversalAlertActions'
        motion_actions:
          description: Actions to perform when motion is detected
          type: array
          items:
            $ref: '#/components/schemas/UniversalAlertActions'
        unknown_actions:
          description: >-
            Actions to perform when there is no record of past motion on the
            network
          type: array
          items:
            $ref: '#/components/schemas/UniversalAlertActions'
        error_actions:
          description: 'Actions to perform when an error occurs '
          type: array
          items:
            $ref: '#/components/schemas/UniversalAlertActions'
    PATCH_meta:
      title: Root Type for PATCH_meta
      description: ''
      type: object
      properties:
        network:
          type: object
          properties:
            config:
              type: boolean
        user:
          type: object
          properties:
            some storage:
              type: string
      example:
        network:
          config: true
        user:
          some storage: for only the user
    GET_user_meta:
      title: Root Type for get_user_meta
      description: ''
      type: object
      example:
        Sample_key: Sample_value
    PATCH_user_meta:
      title: Root Type for patch_user_meta
      description: ''
      type: object
      example:
        Sample_key: Sample_value
    GetSoundingSettingsConfig:
      title: GetSoundingSettingsConfig
      description: Global Sounding Settings
      type: object
      properties:
        zone_priority_list:
          description: Locations the device selection algorithm will prioritize.
          type: array
          items:
            type: string
        motion_events_enabled:
          description: >-
            Enable motion events. On detected motion, the network emits a
            `MotionDetectedEvent`.
          enum:
            - 0
            - 1
          type: integer
        device_events:
          description: |-
            Enable Device Connection Events. 

             Requires global `sounding_mode` to equal `deny` and individual devices' `sounding_mode` to equal `allow`. When the connection state of device changes, an event is emitted. Possible events are: `DeviceConnectedEvent`, `DeviceDisconnectedEvent` and `DeviceTimedOutEvent`
          enum:
            - 0
            - 1
          type: integer
        motion_history_enabled:
          description: >-
            Enable historical motion data from the network. The data can be
            queried through the Motion History APIs.
          enum:
            - 0
            - 1
          type: number
        mesh_auto_disable:
          description: Disable motion detection on all current and added mesh nodes.
          enum:
            - 0
            - 1
          type: integer
        mesh_sounding_disabled:
          description: >-
            Mesh nodes that are disabled for motion detection. To alter this
            array, set `sounding_mesh` on the clients API or enable
            `mesh_auto_disable`
          type: array
          items:
            type: string
        motion_events_armed:
          description: >-
            Enable storage of motion events. Requires `motion_events_enabled` to
            be enabled. The stored events can be queried through the Events
            APIs.
          enum:
            - 0
            - 1
          type: integer
        motion_paused:
          description: >-
            Pauses all motion detection. While paused, the network can't receive
            setting changes.
          enum:
            - 0
            - 1
          type: integer
        leafblower_cutoff:
          description: |-
            Advanced - Minimum score for device selection algorithm.
             -1.1 ignores the device's quality, and always uses them for motion detection. This feature should be used in conjunction with the `sounding_mode` features.
          type: number
          format: float
          minimum: -1.1
          maximum: 1
        link_limit:
          description: >-
            Maximum number of motion-detecting devices per access point or mesh
            node
          minimum: 0
          maximum: 10
          type: number
        pet_mode:
          description: >-
            When enabled, pet motion is less likely to generate a
            `MotionDetectedEvent`. Can only be used when global `sensitivity` is
            set to high (1.0) and all clients' `sensitivity_mode` is `global`.
          enum:
            - 0
            - 1
          type: integer
        cooldown:
          description: >-
            Represents the duration of inactivity following a
            `MotionDetectedEvent`, that the network keeps monitoring for motion.
            Once inactivity is observed, the network emits a
            `MotionStoppedEvent` and concludes the event window.
          type: integer
          format: seconds
        sensitivity:
          description: >-
            Global motion detection sensitivity (1.0 - high, 2.0 - medium, 3.0 -
            low, 7.0 - very-low)
          type: number
          format: float
        sounding_mode:
          description: >-
            This parameter controls the default device selection policy for the
            network, the two policy modes are allow and deny.


            Allow mode: devices will be selected as best determined by the
            device selection algorithm. Devices can be blocked from selection by
            setting txenble=0 for that leaf(s).


            Deny mode: devices that are not explicitly listed via a whitelist
            will be disallowed from sounding.

             Note switching this mode will clear any existing device device availability settings and all devices will revert to available for `allow` mode or unavailable for `deny` mode.
          enum:
            - allow
            - deny
          type: string
      example:
        motion_paused: 0
        motion_events_enabled: 1
        motion_events_armed: 1
        motion_history_enabled: 1
        mesh_auto_disable: 0
        mesh_sounding_disabled: []
        sounding_mode: allow
        leafblower_cutoff: 0
        zone_priority_list:
          - Kitchen
        sensitivity: 1
        pet_mode: 0
        cooldown: 120
    PatchSoundingSettingsConfig:
      title: PatchSoundingSettingsConfig
      description: Global Sounding Settings
      type: object
      properties:
        zone_priority_list:
          description: >-
            Locations the device selection algorithm will prioritize. Setting
            this parameter to [] will turn off prioritization. Updates require
            the complete array to be included in the request.
          type: array
          items:
            type: string
        motion_events_enabled:
          description: >-
            Enable motion events. On detected motion, the network emits a
            `MotionDetectedEvent`.
          enum:
            - 0
            - 1
          type: integer
        device_events:
          description: |-
            Enable Device Connection Events. 

             Requires global `sounding_mode` to equal `deny` and individual devices' `sounding_mode` to equal `allow`. When the connection state of device changes, an event is emitted. Possible events are: `DeviceConnectedEvent`, `DeviceDisconnectedEvent` and `DeviceTimedOutEvent`
          enum:
            - 0
            - 1
          type: integer
        motion_history_enabled:
          description: >-
            Enable historical motion data from the network. The data can be
            queried through the Motion History APIs.
          enum:
            - 0
            - 1
          type: number
        mesh_auto_disable:
          description: Disable motion detection on all current and added mesh nodes.
          enum:
            - 0
            - 1
          type: integer
        motion_events_armed:
          description: >-
            Enable storage of motion events. Requires `motion_events_enabled` to
            be enabled. The stored events can be queried through the Events
            APIs.
          enum:
            - 0
            - 1
          type: integer
        motion_paused:
          description: >-
            Pauses all motion detection. While paused, the network can't receive
            setting changes.
          enum:
            - 0
            - 1
          type: integer
        leafblower_cutoff:
          description: |-
            Advanced - Minimum score for device selection algorithm.
             Set to -1.1 to ignore device quality, and always use them for motion detection. This feature should be used in conjunction with the `sounding_mode` features.
          type: number
          format: float
          minimum: -1.1
          maximum: 1
        link_limit:
          description: >-
            Maximum number of motion-detecting devices per access point or mesh
            node
          minimum: 0
          maximum: 10
          type: number
        pet_mode:
          description: >-
            When enabled, pet motion is less likely to generate a
            `MotionDetectedEvent`. Can only be used when global `sensitivity` is
            set to high (1.0) and all clients' `sensitivity_mode` is `global`.
          enum:
            - 0
            - 1
          type: integer
        cooldown:
          description: >-
            Represents the duration of inactivity following a
            `MotionDetectedEvent`, that the network keeps monitoring for motion.
            Once inactivity is observed, the network emits a
            `MotionStoppedEvent` and concludes the event window.
          type: integer
          format: seconds
        sensitivity:
          description: >-
            Global motion detection sensitivity (1.0 - high, 2.0 - medium, 3.0 -
            low, 7.0 - very-low)
          type: number
          format: float
        sounding_mode:
          description: >-
            This parameter controls the default leaf selection policy for the
            network, the two policy modes are allow and deny.


            Allow mode: leafs will be selected as best determined by leaf
            blower. Leaf(s) can be blocked from selection by setting txenble=0
            for that leaf(s).


            Deny mode: leafs that are not explicitly listed via a whitelist will
            be disallowed from sounding.

             Note switching this mode will clear any existing device device availability settings and all devices will revert to available for `allow` mode or unavailable for `deny` mode.
          enum:
            - allow
            - deny
          type: string
    SoundingSettingsConfigReturn:
      type: object
      properties:
        status:
          description: |-
            0 failure

            1 full success

            2 some changes failed

            3 an IoT update was requested but network has not yet started up
          type: integer
        success:
          description: 1 if the operation was successful, 0 otherwise
          type: integer
        details:
          $ref: '#/components/schemas/WarningErrors'
          description: >-
            The list of warnings or errors that occurred during processing of
            this request.
      x-tagGroup: Sounding v2
    SoundingClientDeviceStatus:
      title: SoundingClientDeviceStatus
      description: Sounding client current status
      type: object
      properties:
        device_id:
          description: >-
            When `is_node` is true, this is the serial number of the AP.   When
            `is_extender` is true, this is the serialNumber of the extender
            device (or Masked-Mac if unavailable). 

             Nodes & Extenders only
          type: string
        device_info:
          $ref: '#/components/schemas/DeviceInfo'
        friendly_name:
          description: Human readable name assigned to the leaf of Node.
          type: string
        id:
          description: >-
            If is_node is true, this value will be >0 and is the node_id of the
            AP.

             Nodes only
          type: integer
        is_extender:
          description: >-
            When `is_node` is true, indicates if this device is an extender (not
            full node).
          type: boolean
        is_node:
          description: >-
            Indicates if the device is a mesh participant (true) or a client
            device (false).
          type: boolean
        is_online:
          description: true if the device is currently online
          type: boolean
        omot_version:
          description: Algorithm version
          type: string
          nullable: true
        is_root:
          description: |-
            When `is_node` is true, indicates if this device is the root master.

             Nodes only
          type: boolean
        location:
          description: Device location name.
          type: string
        sensitivity:
          description: Current sensitivity of the device.
          type: number
        sensitivity_mode:
          description: >-
            indicates whether the device is using the global sensitivity setting
            or is being overridden at the device level.
          enum:
            - override
            - global
          type: string
        sounding_mode:
          description: |-
            Indicates if this device can be used for sounding.

             Leafs & Extenders only
          enum:
            - allow
            - deny
          type: string
        sounding_mesh:
          description: >-
            Indicates if this device can be used for mesh link sounding.


            If set to deny the Node in question will refuse mesh sounding
            connections

             Nodes only
          enum:
            - allow
            - deny
          type: string
        mac:
          description: |-
            This is the MAC address of the client device.

             Leafs & Extenders only
          type: string
        sounding_status:
          description: Indicates if the device is currently actively sounding.
          type: boolean
        sounding_status_reason:
          description: >-
            The reason code related to the selection choice determined by
            leafblower
          enum:
            - N/A
            - NO_DATA
            - NOT_SOUNDED
            - PASS
            - NOT_PRESENT
            - SLEEPING
            - NOISY
            - BROKEN
          type: string
        sounding_status_score:
          description: 'The last score that leafblower assigned to this device.  '
          type: number
        sounding_warmup:
          description: >-
            Leafblower is currently determining the quality of the sounding
            state of the device.


            Please note that the sounding_score is not considered stable until
            this is false.
          type: boolean
          nullable: true
        links:
          description: Low-level information on active sounding links
          type: array
          items:
            $ref: '#/components/schemas/SoundingClientDeviceLinkStatus'
        sounding_history:
          description: Object containing per-link historical sounding state
          type: object
          nullable: true
          properties:
            '0':
              description: NOT_SOUNDED
              type: integer
            '1':
              description: PASS
              type: integer
            '2':
              description: NOT_PRESENT
              type: integer
            '3':
              description: SLEEPING
              type: integer
            '4':
              description: NOISY
              type: integer
            '5':
              description: BROKEN
              type: integer
            '-1':
              description: NO DATA
              type: integer
      x-tagGroup: Sounding v2
    SoundingClientStatus:
      title: SoundingClientStatus
      description: Status of all known devices.
      type: object
      properties:
        devices:
          type: array
          items:
            $ref: '#/components/schemas/SoundingClientDeviceStatus'
      x-tagGroup: Sounding v2
    SoundingClientDeviceConfig:
      title: SoundingClientDeviceConfig
      description: Sounding client configuration change. All fields are optional.
      type: object
      properties:
        mac:
          description: >-
            Mac address of the target device, either this or `id` must be
            provided.
          type: string
        id:
          description: >-
            Internal node_id of the target node, either this or `mac` must be
            provided.
          type: string
        friendly_name:
          description: >-
            Human readable name assigned to the Device or Node.  Maximum of 256
            characters, supporting letters, spaces, digits, with only the
            following special characters: `=`, `+`, `-`, `_`, `@`, `!`. Supports
            base64 encoding. Can also be an empty string.
          type: string
        location:
          description: >-
            Device location name assigned to the Device or Node. Maximum of 256
            characters, supporting letters, spaces, digits, with only the
            following special characters: `=`, `+`, `-`, `_`, `@`, `!`. Supports
            base64 encoding. Can also be an empty string. 
          type: string
        sensitivity_mode:
          description: >-
            Indicates whether the device is using the global sensitivity setting
            or is being overridden at the device level.
          enum:
            - override
            - global
          type: string
        sensitivity:
          description: >-
            Current sensitivity of the device


            Only valid when sensitivity_mode = override, otherwise an error will
            be returned.
          type: number
        sounding_mode:
          description: Controls if the device can be used for sounding.
          enum:
            - allow
            - deny
          type: string
        sounding_mesh:
          description: >-
            Applicable only to nodes. Controls if the node will accept or reject
            sounding on mesh links.
          enum:
            - allow
            - deny
          type: string
      example:
        mac: 22:33:44:ff:ee:dd
        friendly_name: name
        location: location
        sounding_mode: allow
      x-tagGroup: Sounding v2
    MotionEventPair:
      title: Root Type for MotionEventPair
      description: A view of a combined MotionDetected and MotionStopped event.
      type: object
      properties:
        _id:
          description: 'Dot seperated id''s of paired events. '
          type: string
        event:
          description: '`MotionEventPair`'
          type: string
        ts:
          description: UTC timestamp of MotionEventPair generation.
          type: integer
        guardian_id:
          description: Unique network identifier.
          type: string
        link_id:
          description: Identifiers for link causing MotionDetectedEvent.
          type: string
        intensity_window:
          type: array
          items:
            type: number
        loc_name:
          description: Location string
          type: string
        link_dst_name:
          description: Link Node identifier.
          type: string
        link_src_name:
          description: Link Lead identifier.
          type: string
        evt_detected_ts:
          description: UTC timestamp of MotionDetectedEvent.
          type: integer
        evt_stopped_ts:
          description: UTC timestamp of MotionStoppedEvent.
          type: integer
        debug:
          $ref: '#/components/schemas/MotionStoppedEventDebug'
        network_id:
          description: Unique numerical network identifier.
          type: integer
        tag:
          description: 'User set event tag. '
          type: string
      example:
        _id: 64adc55a8d4288001b9c8e34.64adc5508d4288001b9c8e31
        event: MotionEventPair
        ts: 1699112349
        guardian_id: 5dc5cfe59b12797e2e3e362f
        link_id: 4C72900A6B.30894ab76326
        intensity_window:
          - 0.3
          - 0.56
          - 0.43
          - 0.27
          - 0.13
          - 0
          - 0.04
        loc_name: ''
        link_dst_name: 4C72900A6B
        link_src_name: 30894ab76326
        evt_detected_ts: 1689109839
        evt_stopped_ts: 1689109850
        debug:
          linkSens: {}
          msad:
            - 187.22
          links:
            - 4C72900A6B.30894ab76326
          mconf:
            - 80
          sens: 1
        network_id: 156
        tag: '          '
      x-tagGroup: Smart Sensitivity
    SoundingClientConfig:
      title: SoundingClientConfig
      description: Configure sounding of multiple clients.
      type: object
      required:
        - devices
      properties:
        devices:
          type: array
          items:
            $ref: '#/components/schemas/SoundingClientDeviceConfig'
      example:
        devices:
          - id: 0
            location: LocationA
          - mac: '00:11:22:33:44:55'
            sensitivity: 1
            sounding_mode: allow
      x-tagGroup: Sounding v2
    SoundingClientConfigReturn:
      type: object
      properties:
        status:
          description: |-
            0 failure

            1 full success

            2 some changes failed

            3 an IoT update was requested but network has not yet started up
          type: integer
        success:
          description: 1 if the operation was successful, 0 otherwise
          type: integer
        details:
          $ref: '#/components/schemas/WarningErrors'
          description: >-
            The list of warnings or errors that occurred during processing of
            this request.
      x-tagGroup: Sounding v2
    WarningErrors:
      title: Root Type for WarningErrors
      description: ''
      type: object
      properties:
        warnings:
          type: array
          items:
            $ref: '#/components/schemas/WarningWarnings'
        errors:
          type: array
          items: {}
      example:
        warnings: []
        errors: []
      x-tagGroup: Sounding v2
    ValidationError:
      title: ValidationError
      description: >-
        Error messages that covers any failures in input validation for sounding
        configurations.
      type: object
      properties:
        error:
          description: Error Type
          type: string
        message:
          description: Reason for failure
          type: string
        statusCode:
          description: HTTP Status code for the given error.
          type: integer
        validation:
          description: object containing the items that failed validation.
          type: object
      example:
        error: Bad Request
        message: child `update` fails because [`update` must be one of [true, false]]
        statusCode: 400
        validation:
          keys: '[`update`]'
          source: query
      x-tagGroup: Sounding v2
    GET_networks_info:
      title: Root Type for GET_networks_info
      description: ''
      type: object
      properties:
        guardian_id:
          type: string
          description: The Guardian ID is a unique identifier for a WiFi Motion network.
        external_id:
          format: int32
          type: integer
          description: >-
            The unique identifier that the Motion Network System (MNS) uses to
            identify a network.
        network_id:
          format: int32
          type: integer
          description: A unique identifier that the App-Cloud uses to identify a network.
        nodes:
          type: object
          description: >-
            A node is a network device that contains Cognitive System's
            proprietary WiFi Motion software.  Examples can include Access
            Points (APs) and IoT devices.
          additionalProperties:
            type: object
            properties:
              hw_version:
                type: string
              fw_version:
                type: string
      example:
        guardian_id: add5cfe79g12797e253e3623
        external_id: 1
        network_id: 2
        nodes:
          esp_1A2B345C6D7E:
            hw_version: Ven-diag
            fw_version: v2.01.0
          esp_2A2B345C6D7E:
            hw_version: Ven-diag
            fw_version: v2.01.0
          esp_3A2B345C6D7E:
            hw_version: Ven-diag
            fw_version: v2.01.0
          esp_4A2B345C6D7E:
            hw_version: Ven-diag
            fw_version: v2.01.0
    POST_password_resets:
      required:
        - token
      type: object
      properties:
        email:
          type: string
    GET_motions:
      title: Root Type for GET_motions
      description: ''
      type: object
      properties:
        ts:
          description: UTC epoch timestamp
          type: number
        links:
          description: Array of source-destination device names.
          type: array
          items:
            type: string
        data:
          description: Raw motion data
          type: object
          properties:
            lraw:
              type: array
              items:
                format: double
                type: number
            mkai:
              type: array
              items:
                format: double
                type: number
            mkai_original:
              type: array
              items:
                format: double
                type: number
            mkai_scaled:
              type: array
              items:
                format: double
                type: number
            throughput:
              type: array
              items:
                format: int32
                type: integer
        loc:
          description: Localization result or 'nomotion'.
          type: array
          items:
            type: string
        interval:
          description: 500 ms message interval
          type: integer
        count:
          description: Always 1.
          type: integer
        last_motion:
          description: UTC opch timestamp of last motion.
          type: number
        loc_name:
          description: 'Friendly location name. '
          type: string
      example:
        ts: 1660309417.96
        links:
          - 4C72900A72.EM7F6001D5
          - EM7F6001D5.0c80639418d0
          - EM7F6001D5.4C72900A72
          - EM7F6001D5.64166679e0cb
        data:
          lraw:
            - 0.04
            - 0
            - 0.15
            - 0.03
          mkai:
            - 0.04
            - 0
            - 0.15
            - 0
          mkai_original:
            - 0.04
            - 0
            - 0.15
            - 0
          mkai_scaled:
            - 0.04
            - 0
            - 0.15
            - 0
          throughput:
            - 1
            - 1
            - 1
            - 1
        loc:
          - 4C72900A72
        interval: 500
        count: 1
        last_motion: 1660308050.97
        loc_name: 4C72900A72
    UniversalAlertActions:
      title: Root Type for POST_universal_alerts_actions
      description: Alert action object
      required:
        - action
      type: object
      properties:
        action:
          description: Supported actions are `custom_event` `fcm_push`
          type: string
        user_ids:
          description: Array of user ids
          type: array
          items:
            type: integer
        payload:
          description: >-
            Payload to add to the action.


            `custom_event`

            Data in payload should match API input for MNS
            /network/{network_id}/events/create


            `fcm_push`

            Data in payload should match API input for FireBase push API
          type: object
    'null':
      description: ''
      type: object
    PATCH_universal-alert-object-inner:
      title: Root Type for PATCH_universal-alert-object-inner
      description: ''
      type: object
      properties:
        uuid:
          type: string
        enabled:
          type: boolean
      example:
        uuid: 93f3557e-734c-4bb9-8be3-53014c68642a
        enabled: true
    WarningWarnings:
      title: Schema for Warnings found in Sounding Clients
      description: The warnings found within Sounding Client warnings.
      type: object
      properties:
        msg:
          type: string
          description: The message for the warning.
        id:
          type: string
          description: The ID of the error message.
      x-tagGroup: Sounding v2
    SoundingClientDeviceLinkStatus:
      title: SoundingClientDeviceLinkStatus
      description: Sounding client current status
      type: object
      properties:
        src_id:
          description: id of the node sounding this client
          type: integer
        rssi:
          description: Received Signal Strength on this link (dBm) from ifconfig
          type: string
        if_ch:
          description: WiFi Interface channel
          type: integer
          nullable: true
      x-tagGroup: Sounding v2
    MotionStoppedEventDebug:
      title: Root Type for MotionStoppedEventDebug
      description: >-
        Motion detection parameters from event generator. Used for debug and
        sensitivity calibration purposes. Present in MotionStoppedEvent on newer
        firmware.
      type: object
      properties:
        linkSens:
          description: Object containing per-link sensitivity values.
          type: object
        msad:
          description: >-
            Array of msad values corresponding to the peak observed from each
            link.
          type: array
          items:
            type: number
            format: float
        links:
          description: Array of links involved in MotionDetectedEvent trigger.
          type: array
          items:
            type: string
        mconf:
          description: Array of mconf values causing event to trigger.
          type: array
          items:
            type: number
        sens:
          description: Sensitivity value of the network observed at MotionStoppedEvent
          type: number
          format: float
      example:
        linkSens: {}
        msad:
          - 187.22
        links:
          - 4C72900A6B.30894ab76326
        mconf:
          - 80
        sens: 1
      x-tagGroup: Smart Sensitivity
  responses: {}
  securitySchemes:
    Authorization:
      type: apiKey
      name: Authorization
      in: header
tags: []
x-tagGroups:
  - name: API endpoints
    tags:
      - Overview
      - Out of Box
      - Logging In
      - Geofencing
      - Account Management
      - Network Settings
      - Sounding v2
      - Events, History, and Visualizations
      - Household Insights [BETA]
      - Zone Priority [BETA]
      - Universal Alerting
      - Meta
      - Administration
