swagger: '2.0'
info:
  description: "![MEGH Computing](https://2sqgk13hvl1ydbkw82nhfuk1-wpengine.netdna-ssl.com/wp-content/uploads/2021/12/vas_logo_suite.png)\r\n\r\n# Socket Transition Service\r\n\r\n**API documentation.**\r\n"
  title: STS APIs
  termsOfService: https://megh.com/terms/
  contact:
    name: API Support
    url: https://support.megh.com/
    email: support@megh.com
  license:
    name: Apache 2.0
    url: http://www.apache.org/licenses/LICENSE-2.0.html
  version: '1.0'
host: localhost:8000
basePath: /api/v1
paths:
  /acl/list:
    get:
      security:
        - OAuth2Password: []
      description: "### Lists all the UI modules for all the roles by default.\r\n\r\n*Sample OUTPUT*\r\n\r\n```json\r\n{\r\n  \"message\": \"string\",\r\n  \"response\": [\r\n    {\r\n      \"components\": [\r\n        {\r\n          \"component_key\": 0,\r\n          \"component_name\": \"string\"\r\n        }\r\n      ],\r\n      \"module_key\": \"string\",\r\n      \"module_name\": \"string\",\r\n      \"module_path\": \"string\"\r\n    }\r\n  ],\r\n  \"response_code\": 0\r\n}\r\n```\r\n\r\nTo get list of UI modules for a specific role, `role_key` is accepted and query params."
      consumes:
        - text/plain
      produces:
        - application/json
      tags:
        - ACL
      summary: ACL list
      responses:
        '200':
          description: OK
          schema:
            allOf:
              - $ref: '#/definitions/model.HTTPRespArray'
              - type: object
                properties:
                  response:
                    type: array
                    items:
                      allOf:
                        - $ref: '#/definitions/acl.moduleResp'
                        - type: object
                          properties:
                            components:
                              type: array
                              items:
                                $ref: '#/definitions/acl.component'
        '400':
          description: Bad Request
          schema:
            allOf:
              - $ref: '#/definitions/model.HTTPError'
              - type: object
                properties:
                  response: {}
        '500':
          description: Internal Server Error
          schema:
            allOf:
              - $ref: '#/definitions/model.HTTPError'
              - type: object
                properties:
                  response: {}
  /acl/upload:
    post:
      security:
        - OAuth2Password: []
      description: "### Takes in a file and stores the file. \r\n\r\nUpload a file with form pram `modulefile`\r\n\r\n*Sample CSV file content*\r\n\r\n```csv\r\ntype,key,name,role,/channel/list,module_key\r\nmod,dashboard,Dashboard,admin|user|viewer,/dashboard,\r\ncomp,28,DashboardCard,admin|user|viewer,,dashboard\r\nmod,dashboard-old,Dashboard,admin|user|viewer,/dashboard-old,\r\ncomp,29,UseCaseCard,admin|user|viewer,,dashboard-old\r\n```"
      consumes:
        - text/plain
      produces:
        - application/json
      tags:
        - ACL
      summary: Upload Excel/CSV
      parameters:
        - type: string
          default: test.csv
          description: csv module file
          name: modulefile
          in: query
          required: true
      responses:
        '200':
          description: OK
          schema:
            allOf:
              - $ref: '#/definitions/model.HTTPResp'
              - type: object
                properties:
                  response: {}
        '400':
          description: Bad Request
          schema:
            allOf:
              - $ref: '#/definitions/model.HTTPError'
              - type: object
                properties:
                  response: {}
        '500':
          description: Internal Server Error
          schema:
            allOf:
              - $ref: '#/definitions/model.HTTPError'
              - type: object
                properties:
                  response: {}
  /alert/active:
    post:
      security:
        - OAuth2Password: []
      description: "### Alert Active API.\r\n\r\n*Sample INPUT*\r\n\r\n```json\r\n{\r\n  \"channel_id\": \"string\"\r\n}\r\n```\r\n\r\n*Sample OUTPUT*\r\n\r\n```json\r\n{\r\n  \"message\": \"Active alert\",\r\n  \"response\": [\r\n    {\r\n      \"alert_actions\": [\r\n        {\r\n          \"action_access_id\": \"string\",\r\n          \"action_access_token\": \"string\",\r\n          \"action_auth_header\": \"string\",\r\n          \"action_external_link\": \"string\",\r\n          \"action_header\": \"string\",\r\n          \"action_is_auto_payload\": true,\r\n          \"action_is_secure\": true,\r\n          \"action_message\": \"string\",\r\n          \"action_method\": \"string\",\r\n          \"action_payload\": \"string\",\r\n          \"action_process_delay\": 0,\r\n          \"action_query\": \"string\",\r\n          \"action_subject\": \"string\",\r\n          \"action_to\": \"string\",\r\n          \"action_type\": \"string\",\r\n          \"action_url\": \"string\"\r\n        }\r\n      ],\r\n      \"alert_frequency\": 0,\r\n      \"alert_id\": \"string\",\r\n      \"alert_name\": \"string\",\r\n      \"alert_priority\": \"string\",\r\n      \"alert_threshold\": \"string\",\r\n      \"alert_threshold_condition\": \"string\",\r\n      \"alert_threshold_key\": \"string\",\r\n      \"is_active\": true\r\n    }\r\n  ],\r\n  \"response_code\": 200\r\n}\r\n```\r\n"
      consumes:
        - application/json
      produces:
        - application/json
      tags:
        - Alert
      summary: Alert Active
      parameters:
        - description: Alert ID Payload
          name: payload
          in: body
          required: true
          schema:
            $ref: '#/definitions/alert.alertListReq'
      responses:
        '200':
          description: OK
          schema:
            allOf:
              - $ref: '#/definitions/model.HTTPRespArray'
              - type: object
                properties:
                  response:
                    type: array
                    items:
                      allOf:
                        - $ref: '#/definitions/alert.alertResp'
                        - type: object
                          properties:
                            alert_actions:
                              type: array
                              items:
                                $ref: '#/definitions/alert.alertAction'
        '400':
          description: Bad Request
          schema:
            allOf:
              - $ref: '#/definitions/model.HTTPError'
              - type: object
                properties:
                  response: {}
        '500':
          description: Internal Server Error
          schema:
            allOf:
              - $ref: '#/definitions/model.HTTPError'
              - type: object
                properties:
                  response: {}
  /alert/create:
    put:
      security:
        - OAuth2Password: []
      description: "### Alert Create API.\r\n\r\n*Sample INPUT*\r\n\r\n```json\r\n{\r\n  \"alert_actions\": [\r\n    {\r\n      \"action_access_id\": \"string\",\r\n      \"action_access_token\": \"string\",\r\n      \"action_auth_header\": \"string\",\r\n      \"action_external_link\": \"string\",\r\n      \"action_header\": \"string\",\r\n      \"action_is_auto_payload\": true,\r\n      \"action_is_secure\": true,\r\n      \"action_message\": \"string\",\r\n      \"action_method\": \"string\",\r\n      \"action_payload\": \"string\",\r\n      \"action_process_delay\": 0,\r\n      \"action_query\": \"string\",\r\n      \"action_subject\": \"string\",\r\n      \"action_to\": \"string\",\r\n      \"action_type\": \"string\",\r\n      \"action_url\": \"string\",\r\n      \"additionalProp1\": {}\r\n    }\r\n  ],\r\n  \"alert_frequency\": 0,\r\n  \"alert_name\": \"string\",\r\n  \"alert_priority\": \"string\",\r\n  \"alert_threshold\": \"string\",\r\n  \"alert_threshold_condition\": \"string\",\r\n  \"alert_threshold_key\": \"string\",\r\n  \"channel_id\": \"string\"\r\n}\r\n```\r\n\r\n*Sample OUTPUT*\r\n\r\n```json\r\n{\r\n  \"message\": \"Alert created\",\r\n  \"response\": null,\r\n  \"response_code\": 201\r\n}\r\n```\r\n"
      consumes:
        - application/json
      produces:
        - application/json
      tags:
        - Alert
      summary: Alert Create
      parameters:
        - description: Alert Create Payload
          name: payload
          in: body
          required: true
          schema:
            allOf:
              - $ref: '#/definitions/alert.alertCreateReq'
              - type: object
                properties:
                  alert_actions:
                    type: array
                    items:
                      $ref: '#/definitions/alert.alertAction'
      responses:
        '200':
          description: OK
          schema:
            allOf:
              - $ref: '#/definitions/model.HTTPResp'
              - type: object
                properties:
                  response: {}
        '400':
          description: Bad Request
          schema:
            allOf:
              - $ref: '#/definitions/model.HTTPError'
              - type: object
                properties:
                  response: {}
        '500':
          description: Internal Server Error
          schema:
            allOf:
              - $ref: '#/definitions/model.HTTPError'
              - type: object
                properties:
                  response: {}
  /alert/delete:
    delete:
      security:
        - OAuth2Password: []
      description: "### Alert Delete API\r\n\r\n*Sample INPUT*\r\n\r\n```json\r\n{\r\n  \"alert_id\": \"string\"\r\n}\r\n```\r\n\r\n\r\n*Sample OUTPUT*\r\n\r\n```json\r\n{\r\n  \"message\": \"Alert deleted\",\r\n  \"response\": null,\r\n  \"response_code\": 200\r\n}\r\n```"
      consumes:
        - application/json
      produces:
        - application/json
      tags:
        - Alert
      summary: Alert Delete
      parameters:
        - description: Alert Delete Payload
          name: payload
          in: body
          required: true
          schema:
            $ref: '#/definitions/alert.alertIDReq'
      responses:
        '200':
          description: OK
          schema:
            allOf:
              - $ref: '#/definitions/model.HTTPResp'
              - type: object
                properties:
                  response: {}
        '400':
          description: Bad Request
          schema:
            allOf:
              - $ref: '#/definitions/model.HTTPError'
              - type: object
                properties:
                  response: {}
        '500':
          description: Internal Server Error
          schema:
            allOf:
              - $ref: '#/definitions/model.HTTPError'
              - type: object
                properties:
                  response: {}
  /alert/disable:
    post:
      security:
        - OAuth2Password: []
      description: "### Alert De-Activate API.\r\n\r\n*Sample INPUT*\r\n\r\n```json\r\n{\r\n  \"alert_id\": \"string\"\r\n}\r\n```\r\n\r\n*Sample OUTPUT*\r\n\r\n```json\r\n{\r\n  \"message\": \"Alert deactivated\",\r\n  \"response\": null,\r\n  \"response_code\": 200\r\n}\r\n```\r\n"
      consumes:
        - application/json
      produces:
        - application/json
      tags:
        - Alert
      summary: Alert Disable
      parameters:
        - description: Alert Disable Payload
          name: payload
          in: body
          required: true
          schema:
            $ref: '#/definitions/alert.alertActivateDeActivateReq'
      responses:
        '200':
          description: OK
          schema:
            allOf:
              - $ref: '#/definitions/model.HTTPResp'
              - type: object
                properties:
                  response:
                    allOf:
                      - $ref: '#/definitions/alert.alertResp'
                      - type: object
                        properties:
                          alert_actions:
                            type: array
                            items:
                              $ref: '#/definitions/alert.alertAction'
        '400':
          description: Bad Request
          schema:
            allOf:
              - $ref: '#/definitions/model.HTTPError'
              - type: object
                properties:
                  response: {}
        '500':
          description: Internal Server Error
          schema:
            allOf:
              - $ref: '#/definitions/model.HTTPError'
              - type: object
                properties:
                  response: {}
  /alert/enable:
    post:
      security:
        - OAuth2Password: []
      description: "### Alert Activate API.\r\n\r\n*Sample INPUT*\r\n\r\n```json\r\n{\r\n  \"alert_id\": \"string\"\r\n}\r\n```\r\n\r\n*Sample OUTPUT*\r\n\r\n```json\r\n{\r\n  \"message\": \"Alert activated\",\r\n  \"response\": null,\r\n  \"response_code\": 200\r\n}\r\n```\r\n"
      consumes:
        - application/json
      produces:
        - application/json
      tags:
        - Alert
      summary: Alert Enable
      parameters:
        - description: Alert Enable Payload
          name: payload
          in: body
          required: true
          schema:
            $ref: '#/definitions/alert.alertActivateDeActivateReq'
      responses:
        '200':
          description: OK
          schema:
            allOf:
              - $ref: '#/definitions/model.HTTPResp'
              - type: object
                properties:
                  response:
                    allOf:
                      - $ref: '#/definitions/alert.alertResp'
                      - type: object
                        properties:
                          alert_actions:
                            type: array
                            items:
                              $ref: '#/definitions/alert.alertAction'
        '400':
          description: Bad Request
          schema:
            allOf:
              - $ref: '#/definitions/model.HTTPError'
              - type: object
                properties:
                  response: {}
        '500':
          description: Internal Server Error
          schema:
            allOf:
              - $ref: '#/definitions/model.HTTPError'
              - type: object
                properties:
                  response: {}
  /alert/event/range:
    get:
      security:
        - OAuth2Password: []
      description: "### Event By Range API.\r\n\r\n*Sample INPUT*\r\n\r\n// Query params\r\n```json\r\n{\r\n  \"usecase_key\": \"string\",\r\n  \"usecase_meta_key\": [\r\n    \"string\"\r\n  ],\r\n  \"channel_id\": \"string\",\r\n  \"event_offset\": 0,\r\n  \"event_limit\": \"string\",\r\n  \"start\": \"string\",\r\n  \"end\": \"string\",\r\n  \"agg_frequency\": \"string\",\r\n  \"details\": false,\r\n  \"type\": 0\r\n}\r\n```\r\n\r\n*Sample OUTPUT*\r\n\r\n```json\r\n{\r\n  \"message\": \"Alert activated\",\r\n  \"response\": {\r\n    \"agg_frequency\": \"string\",\r\n    \"channel_id\": \"string\",\r\n    \"end\": \"string\",\r\n    \"event_limit\": 0,\r\n    \"event_offset\": 0,\r\n    \"events\": [\r\n      {\r\n        \"alert\": 0,\r\n        \"down\": 0,\r\n        \"dwell_time\": 0,\r\n        \"fire\": 0,\r\n        \"frame_collision\": 0,\r\n        \"frame_near_miss\": 0,\r\n        \"high_smoke\": 0,\r\n        \"id\": 0,\r\n        \"ids\": [\r\n          \"string\"\r\n        ],\r\n        \"intermediate_smoke\": 0,\r\n        \"low_smoke\": 0,\r\n        \"metadata\": \"string\",\r\n        \"moving_average_count\": 0,\r\n        \"non_violation\": 0,\r\n        \"occupancy\": 0,\r\n        \"threshold\": \"string\",\r\n        \"time\": \"string\",\r\n        \"total\": 0,\r\n        \"total_collision\": 0,\r\n        \"total_near_miss\": 0,\r\n        \"up\": 0,\r\n        \"violation\": 0\r\n      }\r\n    ],\r\n    \"start\": \"string\",\r\n    \"usecase_key\": \"string\"\r\n  },\r\n  \"response_code\": 200\r\n}\r\n```\r\n"
      consumes:
        - text/plain
      produces:
        - application/json
      tags:
        - Analytics
      summary: Events By Range
      parameters:
        - type: string
          description: UseCase Key
          name: usecase
          in: query
          required: true
        - type: string
          description: UseCase Meta Key
          name: usecase_meta_key
          in: query
          required: true
        - type: string
          description: Channel ID
          name: channel_id
          in: query
          required: true
        - type: integer
          description: Event Offset
          name: event_offset
          in: query
        - type: integer
          description: Event Limit
          name: event_limit
          in: query
        - type: string
          description: Start Time
          name: start
          in: query
          required: true
        - type: string
          description: End Time
          name: end
          in: query
          required: true
        - type: string
          default: 100ms
          description: Aggregation Frequency
          name: agg_frequency
          in: query
          required: true
        - type: boolean
          default: false
          description: details
          name: details
          in: query
          required: true
      responses:
        '200':
          description: OK
          schema:
            allOf:
              - $ref: '#/definitions/model.HTTPResp'
              - type: object
                properties:
                  response:
                    allOf:
                      - $ref: '#/definitions/alert.eventRangeResp'
                      - type: object
                        properties:
                          events:
                            type: array
                            items:
                              $ref: '#/definitions/alert.event'
        '400':
          description: Bad Request
          schema:
            allOf:
              - $ref: '#/definitions/model.HTTPError'
              - type: object
                properties:
                  response: {}
        '500':
          description: Internal Server Error
          schema:
            allOf:
              - $ref: '#/definitions/model.HTTPError'
              - type: object
                properties:
                  response: {}
  /alert/event/stats:
    get:
      security:
        - OAuth2Password: []
      description: "### Event Alert Stats API.\r\n\r\n*Sample INPUT*\r\n\r\n// Query params\r\n```json\r\n{\r\n  \"usecase_key\": \"string\",\r\n  \"usecase_meta_key\": [\r\n    \"string\"\r\n  ],\r\n  \"channel_id\": \"string\",\r\n  \"frequency\": \"-string\"\r\n}\r\n```\r\n\r\n*Sample OUTPUT*\r\n\r\n```json\r\n{\r\n  \"message\": \"Alert activated\",\r\n  \"response\": {\r\n    \"channel_alert\": {\r\n      \"channel\": \"string\",\r\n      \"condition\": \"string\",\r\n      \"count\": 0,\r\n      \"key\": \"string\",\r\n      \"name\": \"string\",\r\n      \"time\": \"string\"\r\n    },\r\n    \"channel_id\": \"string\",\r\n    \"channel_key\": \"string\",\r\n    \"channel_name\": \"string\",\r\n    \"channel_stats\": {\r\n      \"alert\": 0,\r\n      \"down\": 0,\r\n      \"dwell_time\": 0,\r\n      \"fire\": 0,\r\n      \"frame_collision\": 0,\r\n      \"frame_near_miss\": 0,\r\n      \"high_smoke\": 0,\r\n      \"ids\": [\r\n        \"string\"\r\n      ],\r\n      \"intermediate_smoke\": 0,\r\n      \"low_smoke\": 0,\r\n      \"moving_average_count\": 0,\r\n      \"non_violation\": 0,\r\n      \"occupancy\": 0,\r\n      \"total\": 0,\r\n      \"total_collision\": 0,\r\n      \"total_near_miss\": 0,\r\n      \"up\": 0,\r\n      \"violation\": 0\r\n    },\r\n    \"channel_total_alert\": 0,\r\n    \"channel_total_notification\": 0,\r\n    \"usecase_key\": \"string\"\r\n  },\r\n  \"response_code\": 200\r\n}\r\n```\r\n"
      consumes:
        - application/json
      produces:
        - application/json
      tags:
        - Analytics
      summary: Channel Stats
      parameters:
        - type: string
          description: UseCase Key
          name: usecase
          in: query
          required: true
        - type: string
          description: UseCase Meta Key
          name: usecase_meta_key
          in: query
          required: true
        - type: string
          description: Channel ID
          name: channel_id
          in: query
          required: true
        - type: string
          default: '-1h'
          description: Frequency
          name: frequency
          in: query
          required: true
      responses:
        '200':
          description: OK
          schema:
            allOf:
              - $ref: '#/definitions/model.HTTPResp'
              - type: object
                properties:
                  response:
                    allOf:
                      - $ref: '#/definitions/alert.eventStatsResp'
                      - type: object
                        properties:
                          channel_alert:
                            $ref: '#/definitions/model.AlertData'
                          channel_stats:
                            $ref: '#/definitions/model.StatsData'
        '400':
          description: Bad Request
          schema:
            allOf:
              - $ref: '#/definitions/model.HTTPError'
              - type: object
                properties:
                  response: {}
        '500':
          description: Internal Server Error
          schema:
            allOf:
              - $ref: '#/definitions/model.HTTPError'
              - type: object
                properties:
                  response: {}
  /alert/id:
    post:
      security:
        - OAuth2Password: []
      description: "### Alert ID API.\r\n\r\n*Sample INPUT*\r\n\r\n```json\r\n{\r\n  \"alert_id\": \"string\"\r\n}\r\n```\r\n\r\n*Sample OUTPUT*\r\n\r\n```json\r\n{\r\n  \"message\": \"Alert by ID\",\r\n  \"response\": {\r\n    \"alert_actions\": [\r\n      {\r\n        \"action_access_id\": \"string\",\r\n        \"action_access_token\": \"string\",\r\n        \"action_auth_header\": \"string\",\r\n        \"action_external_link\": \"string\",\r\n        \"action_header\": \"string\",\r\n        \"action_is_auto_payload\": true,\r\n        \"action_is_secure\": true,\r\n        \"action_message\": \"string\",\r\n        \"action_method\": \"string\",\r\n        \"action_payload\": \"string\",\r\n        \"action_process_delay\": 0,\r\n        \"action_query\": \"string\",\r\n        \"action_subject\": \"string\",\r\n        \"action_to\": \"string\",\r\n        \"action_type\": \"string\",\r\n        \"action_url\": \"string\"\r\n      }\r\n    ],\r\n    \"alert_frequency\": 0,\r\n    \"alert_id\": \"string\",\r\n    \"alert_name\": \"string\",\r\n    \"alert_priority\": \"string\",\r\n    \"alert_threshold\": \"string\",\r\n    \"alert_threshold_condition\": \"string\",\r\n    \"alert_threshold_key\": \"string\",\r\n    \"is_active\": true\r\n  },\r\n  \"response_code\": 200\r\n}\r\n```\r\n"
      consumes:
        - application/json
      produces:
        - application/json
      tags:
        - Alert
      summary: Alert ID
      parameters:
        - description: Alert ID Payload
          name: payload
          in: body
          required: true
          schema:
            $ref: '#/definitions/alert.alertIDReq'
      responses:
        '200':
          description: OK
          schema:
            allOf:
              - $ref: '#/definitions/model.HTTPResp'
              - type: object
                properties:
                  response:
                    allOf:
                      - $ref: '#/definitions/alert.alertResp'
                      - type: object
                        properties:
                          alert_actions:
                            type: array
                            items:
                              $ref: '#/definitions/alert.alertAction'
        '400':
          description: Bad Request
          schema:
            allOf:
              - $ref: '#/definitions/model.HTTPError'
              - type: object
                properties:
                  response: {}
        '500':
          description: Internal Server Error
          schema:
            allOf:
              - $ref: '#/definitions/model.HTTPError'
              - type: object
                properties:
                  response: {}
  /alert/list:
    post:
      security:
        - OAuth2Password: []
      description: "### Alert List API.\r\n\r\n*Sample INPUT*\r\n\r\n```json\r\n{\r\n  \"channel_id\": \"string\"\r\n}\r\n```\r\n\r\n*Sample OUTPUT*\r\n\r\n```json\r\n{\r\n  \"message\": \"Alert list\",\r\n  \"response\": [\r\n    {\r\n      \"alert_actions\": [\r\n        {\r\n          \"action_access_id\": \"string\",\r\n          \"action_access_token\": \"string\",\r\n          \"action_auth_header\": \"string\",\r\n          \"action_external_link\": \"string\",\r\n          \"action_header\": \"string\",\r\n          \"action_is_auto_payload\": true,\r\n          \"action_is_secure\": true,\r\n          \"action_message\": \"string\",\r\n          \"action_method\": \"string\",\r\n          \"action_payload\": \"string\",\r\n          \"action_process_delay\": 0,\r\n          \"action_query\": \"string\",\r\n          \"action_subject\": \"string\",\r\n          \"action_to\": \"string\",\r\n          \"action_type\": \"string\",\r\n          \"action_url\": \"string\"\r\n        }\r\n      ],\r\n      \"alert_frequency\": 0,\r\n      \"alert_id\": \"string\",\r\n      \"alert_name\": \"string\",\r\n      \"alert_priority\": \"string\",\r\n      \"alert_threshold\": \"string\",\r\n      \"alert_threshold_condition\": \"string\",\r\n      \"alert_threshold_key\": \"string\",\r\n      \"is_active\": true\r\n    }\r\n  ],\r\n  \"response_code\": 200\r\n}\r\n```\r\n"
      consumes:
        - application/json
      produces:
        - application/json
      tags:
        - Alert
      summary: Alert List by Channel ID
      parameters:
        - description: Alert List Payload
          name: payload
          in: body
          required: true
          schema:
            $ref: '#/definitions/alert.alertListReq'
      responses:
        '200':
          description: OK
          schema:
            allOf:
              - $ref: '#/definitions/model.HTTPRespArray'
              - type: object
                properties:
                  response:
                    type: array
                    items:
                      allOf:
                        - $ref: '#/definitions/alert.alertResp'
                        - type: object
                          properties:
                            alert_actions:
                              type: array
                              items:
                                $ref: '#/definitions/alert.alertAction'
        '400':
          description: Bad Request
          schema:
            allOf:
              - $ref: '#/definitions/model.HTTPError'
              - type: object
                properties:
                  response: {}
        '500':
          description: Internal Server Error
          schema:
            allOf:
              - $ref: '#/definitions/model.HTTPError'
              - type: object
                properties:
                  response: {}
  /alert/notification/gallery:
    get:
      security:
        - OAuth2Password: []
      description: "### Notification Gallery API.\r\n\r\n*Sample INPUT*\r\n\r\n// Query params\r\n\r\n```json\r\n{\r\n  \"usecase_key\": \"string\",\r\n  \"channel_id\": \"string\",\r\n  \"notification_uuid\": \"string\"\r\n}\r\n```\r\n\r\n*Sample Output*\r\n\r\n```json\r\n{\r\n  \"message\": \"Notifications gallery by UUID\",\r\n  \"response\": {\r\n    \"channel_id\": \"string\",\r\n    \"gallery\": [\r\n      {\r\n        \"image\": [\r\n          0\r\n        ],\r\n        \"time_stamp\": \"string\",\r\n        \"uuid\": \"string\"\r\n      }\r\n    ],\r\n    \"usecase_key\": \"string\"\r\n  },\r\n  \"response_code\": 200\r\n}\r\n```"
      consumes:
        - text/plain
      produces:
        - application/json
      tags:
        - Alert
      summary: Notification Gallery
      parameters:
        - type: string
          description: Stream Key
          name: stream_key
          in: query
          required: true
        - type: string
          description: Channel ID
          name: channel_id
          in: query
          required: true
        - type: integer
          description: Notification Offset
          name: notification_offset
          in: query
        - type: integer
          description: Notification Limit
          name: notification_limit
          in: query
        - type: string
          description: Start Time
          name: start
          in: query
          required: true
        - type: string
          description: End Time
          name: end
          in: query
          required: true
      responses:
        '200':
          description: OK
          schema:
            allOf:
              - $ref: '#/definitions/model.HTTPResp'
              - type: object
                properties:
                  response:
                    allOf:
                      - $ref: '#/definitions/alert.galleryResp'
                      - type: object
                        properties:
                          gallery:
                            type: array
                            items:
                              $ref: '#/definitions/alert.gallery'
        '400':
          description: Bad Request
          schema:
            allOf:
              - $ref: '#/definitions/model.HTTPError'
              - type: object
                properties:
                  response: {}
        '500':
          description: Internal Server Error
          schema:
            allOf:
              - $ref: '#/definitions/model.HTTPError'
              - type: object
                properties:
                  response: {}
  /alert/notification/gallery/uuid:
    get:
      security:
        - OAuth2Password: []
      description: "### Notification Gallery API.\r\n\r\n*Sample INPUT*\r\n\r\n// Query params\r\n\r\n```json\r\n{\r\n  \"usecase_key\": \"string\",\r\n  \"channel_id\": \"string\",\r\n  \"notification_uuid\": \"string\"\r\n}\r\n```\r\n\r\n*Sample Output*\r\n\r\n```json\r\n{\r\n  \"message\": \"Notifications gallery by UUID\",\r\n  \"response\": {\r\n    \"channel_id\": \"string\",\r\n    \"gallery\": [\r\n      {\r\n        \"image\": [\r\n          0\r\n        ],\r\n        \"time_stamp\": \"string\",\r\n        \"uuid\": \"string\"\r\n      }\r\n    ],\r\n    \"usecase_key\": \"string\"\r\n  },\r\n  \"response_code\": 200\r\n}\r\n```"
      consumes:
        - text/plain
      produces:
        - application/json
      tags:
        - Alert
      summary: Notification Gallery Image by ID
      parameters:
        - type: string
          description: Channel ID
          name: channel_id
          in: query
          required: true
        - type: integer
          description: Notification UUID
          name: notification_uuid
          in: query
      responses:
        '200':
          description: OK
          schema:
            allOf:
              - $ref: '#/definitions/model.HTTPResp'
              - type: object
                properties:
                  response:
                    allOf:
                      - $ref: '#/definitions/alert.galleryResp'
                      - type: object
                        properties:
                          gallery:
                            type: array
                            items:
                              $ref: '#/definitions/alert.gallery'
        '400':
          description: Bad Request
          schema:
            allOf:
              - $ref: '#/definitions/model.HTTPError'
              - type: object
                properties:
                  response: {}
        '500':
          description: Internal Server Error
          schema:
            allOf:
              - $ref: '#/definitions/model.HTTPError'
              - type: object
                properties:
                  response: {}
  /alert/notification/range:
    get:
      security:
        - OAuth2Password: []
      description: "### Notification By Range API.\r\n\r\n*Sample INPUT*\r\n\r\n// Query params\r\n```json\r\n{\r\n  \"usecase_key\": \"string\",\r\n  \"channel_id\": \"string\",\r\n  \"notification_offset\": 0,\r\n  \"notification_limit\": 0,\r\n  \"start\": \"string\",\r\n  \"end\": \"string\"\r\n}\r\n```\r\n\r\n*Sample OUTPUT*\r\n\r\nHello\r\n\r\n```json\r\n{\r\n  \"message\": \"Notifications by range\",\r\n  \"response\": {\r\n    \"channel_id\": \"string\",\r\n    \"end\": \"string\",\r\n    \"notifications\": [\r\n      {\r\n        \"channel_id\": \"string\",\r\n        \"notification_data\": {\r\n          \"attachment\": \"string\",\r\n          \"from\": \"string\",\r\n          \"message\": \"string\",\r\n          \"subject\": \"string\",\r\n          \"to\": \"string\"\r\n        },\r\n        \"notification_extra\": \"string\",\r\n        \"notification_time\": \"string\",\r\n        \"notification_uuid\": \"string\",\r\n        \"usecase_key\": \"string\"\r\n      }\r\n    ],\r\n    \"start\": \"string\",\r\n    \"usecase_key\": \"string\"\r\n  },\r\n  \"response_code\": 200\r\n}\r\n```\r\n"
      consumes:
        - text/plain
      produces:
        - application/json
      tags:
        - Alert
      summary: Notifications By Range
      parameters:
        - type: string
          description: UseCase
          name: usecase
          in: query
          required: true
        - type: string
          description: Channel ID
          name: channel_id
          in: query
          required: true
        - type: integer
          description: Notification Offset
          name: notification_offset
          in: query
        - type: integer
          description: Notification Limit
          name: notification_limit
          in: query
        - type: string
          description: Start Time
          name: start
          in: query
          required: true
        - type: string
          description: End Time
          name: end
          in: query
          required: true
      responses:
        '200':
          description: OK
          schema:
            allOf:
              - $ref: '#/definitions/model.HTTPResp'
              - type: object
                properties:
                  response:
                    allOf:
                      - $ref: '#/definitions/alert.notificationRangeResp'
                      - type: object
                        properties:
                          notifications:
                            type: array
                            items:
                              $ref: '#/definitions/alert.notificationUUIDResp'
        '400':
          description: Bad Request
          schema:
            allOf:
              - $ref: '#/definitions/model.HTTPError'
              - type: object
                properties:
                  response: {}
        '500':
          description: Internal Server Error
          schema:
            allOf:
              - $ref: '#/definitions/model.HTTPError'
              - type: object
                properties:
                  response: {}
  /alert/notification/stats:
    get:
      security:
        - OAuth2Password: []
      description: "### Notification Stats By Usecase API.\r\n\r\n*Sample INPUT*\r\n\r\n// Query params\r\n```json\r\n{\r\n  \"usecase_key\": \"string\",\r\n  \"usecase_meta_key\": [\r\n    \"string\",\r\n    \"string\",\r\n    \"string\"\r\n  ],\r\n  \"channel_id\": \"string\",\r\n  \"frequency\": \"string\",\r\n  \"details\": true\r\n}\r\n```\r\n\r\n*Sample OUTPUT*\r\n\r\nHello\r\n\r\n```json\r\n{\r\n  \"message\": \"Notification stats\",\r\n  \"response\": {\r\n    \"usecase_channel\": [\r\n      {\r\n        \"channel_alert\": {\r\n          \"channel\": \"string\",\r\n          \"condition\": \"string\",\r\n          \"count\": 0,\r\n          \"key\": \"string\",\r\n          \"name\": \"string\",\r\n          \"time\": \"string\"\r\n        },\r\n        \"channel_id\": \"string\",\r\n        \"channel_key\": \"string\",\r\n        \"channel_name\": \"string\",\r\n        \"channel_stats\": {\r\n          \"alert\": 0,\r\n          \"down\": 0,\r\n          \"dwell_time\": 0,\r\n          \"fire\": 0,\r\n          \"frame_collision\": 0,\r\n          \"frame_near_miss\": 0,\r\n          \"high_smoke\": 0,\r\n          \"ids\": [\r\n            \"string\"\r\n          ],\r\n          \"intermediate_smoke\": 0,\r\n          \"low_smoke\": 0,\r\n          \"moving_average_count\": 0,\r\n          \"non_violation\": 0,\r\n          \"occupancy\": 0,\r\n          \"total\": 0,\r\n          \"total_collision\": 0,\r\n          \"total_near_miss\": 0,\r\n          \"up\": 0,\r\n          \"violation\": 0\r\n        },\r\n        \"channel_total_alert\": 0,\r\n        \"channel_total_notification\": 0,\r\n        \"usecase_key\": \"string\"\r\n      }\r\n    ],\r\n    \"usecase_key\": \"string\",\r\n    \"usecase_total_alert\": 0,\r\n    \"usecase_total_notification\": 0,\r\n    \"usecase_total_stats\": {\r\n      \"down\": 0,\r\n      \"dwelltime\": 0,\r\n      \"fire\": 0,\r\n      \"framecollision\": 0,\r\n      \"framenearmiss\": 0,\r\n      \"highsmoke\": 0,\r\n      \"intermediatesmoke\": 0,\r\n      \"lowsmoke\": 0,\r\n      \"movingaveragecount\": 0,\r\n      \"nonviolation\": 0,\r\n      \"occupancy\": 0,\r\n      \"total\": 0,\r\n      \"totalcollision\": 0,\r\n      \"totalnearmiss\": 0,\r\n      \"up\": 0,\r\n      \"violation\": 0\r\n    }\r\n  },\r\n  \"response_code\": 200\r\n}\r\n```\r\n"
      consumes:
        - text/plain
      produces:
        - application/json
      tags:
        - Analytics
      summary: UseCase Stats
      parameters:
        - type: string
          description: UseCase Key
          name: usecase
          in: query
          required: true
        - type: string
          description: UseCase Meta Key
          name: usecase_meta_key
          in: query
          required: true
        - type: string
          default: '-1h'
          description: Frequency
          name: frequency
          in: query
          required: true
        - type: boolean
          default: false
          description: details
          name: details
          in: query
          required: true
      responses:
        '200':
          description: OK
          schema:
            allOf:
              - $ref: '#/definitions/model.HTTPResp'
              - type: object
                properties:
                  response:
                    allOf:
                      - $ref: '#/definitions/alert.notificationStatResp'
                      - type: object
                        properties:
                          usecase_channel:
                            type: array
                            items:
                              allOf:
                                - $ref: '#/definitions/alert.eventStatsResp'
                                - type: object
                                  properties:
                                    channel_alert:
                                      $ref: '#/definitions/model.AlertData'
                                    channel_stats:
                                      $ref: '#/definitions/model.StatsData'
        '400':
          description: Bad Request
          schema:
            allOf:
              - $ref: '#/definitions/model.HTTPError'
              - type: object
                properties:
                  response: {}
        '500':
          description: Internal Server Error
          schema:
            allOf:
              - $ref: '#/definitions/model.HTTPError'
              - type: object
                properties:
                  response: {}
  /alert/notification/uuid:
    get:
      security:
        - OAuth2Password: []
      description: "### Notification By UUID API.\r\n\r\n*Sample INPUT*\r\n\r\n// Query params\r\n```json\r\n{\r\n  \"usecase_key\": \"string\",\r\n  \"channel_id\": \"string\",\r\n  \"notification_uuid\": \"string\"\r\n}\r\n```\r\n\r\n*Sample OUTPUT*\r\n\r\nHello\r\n\r\n```json\r\n{\r\n  \"message\": \"Notification by UUID\",\r\n  \"response\": {\r\n    \"channel_id\": \"string\",\r\n    \"notification_data\": {\r\n      \"attachment\": \"string\",\r\n      \"from\": \"string\",\r\n      \"message\": \"string\",\r\n      \"subject\": \"string\",\r\n      \"to\": \"string\"\r\n    },\r\n    \"notification_extra\": \"string\",\r\n    \"notification_time\": \"string\",\r\n    \"notification_uuid\": \"string\",\r\n    \"usecase_key\": \"string\"\r\n  },\r\n  \"response_code\": 200\r\n}\r\n```\r\n"
      consumes:
        - text/plain
      produces:
        - application/json
      tags:
        - Alert
      summary: Notification By UUID
      parameters:
        - type: string
          description: UseCase Key
          name: usecase
          in: query
          required: true
        - type: string
          description: Channel ID
          name: channel_id
          in: query
          required: true
        - type: string
          description: Notification UUID
          name: notification_uuid
          in: query
          required: true
      responses:
        '200':
          description: OK
          schema:
            allOf:
              - $ref: '#/definitions/model.HTTPResp'
              - type: object
                properties:
                  response:
                    allOf:
                      - $ref: '#/definitions/alert.notificationUUIDResp'
                      - type: object
                        properties:
                          notification_data:
                            $ref: '#/definitions/structs.DefaultEmail'
        '400':
          description: Bad Request
          schema:
            allOf:
              - $ref: '#/definitions/model.HTTPError'
              - type: object
                properties:
                  response: {}
        '500':
          description: Internal Server Error
          schema:
            allOf:
              - $ref: '#/definitions/model.HTTPError'
              - type: object
                properties:
                  response: {}
  /alert/update:
    patch:
      security:
        - OAuth2Password: []
      description: "### Alert Update API.\r\n\r\n*Sample INPUT*\r\n\r\n```json\r\n{\r\n  \"alert_actions\": [\r\n    {\r\n      \"action_access_id\": \"string\",\r\n      \"action_access_token\": \"string\",\r\n      \"action_auth_header\": \"string\",\r\n      \"action_external_link\": \"string\",\r\n      \"action_header\": \"string\",\r\n      \"action_is_auto_payload\": true,\r\n      \"action_is_secure\": true,\r\n      \"action_message\": \"string\",\r\n      \"action_method\": \"string\",\r\n      \"action_payload\": \"string\",\r\n      \"action_process_delay\": 0,\r\n      \"action_query\": \"string\",\r\n      \"action_subject\": \"string\",\r\n      \"action_to\": \"string\",\r\n      \"action_type\": \"string\",\r\n      \"action_url\": \"string\"\r\n    }\r\n  ],\r\n  \"alert_frequency\": 0,\r\n  \"alert_id\": \"string\",\r\n  \"alert_name\": \"string\",\r\n  \"alert_priority\": \"string\",\r\n  \"alert_threshold\": \"string\",\r\n  \"alert_threshold_condition\": \"string\",\r\n  \"alert_threshold_key\": \"string\",\r\n  \"is_active\": true\r\n}\r\n```\r\n\r\n*Sample OUTPUT*\r\n\r\n```json\r\n{\r\n  \"message\": \"Alert updated\",\r\n  \"response\": {\r\n    \"alert_actions\": [\r\n      {\r\n        \"action_access_id\": \"string\",\r\n        \"action_access_token\": \"string\",\r\n        \"action_auth_header\": \"string\",\r\n        \"action_external_link\": \"string\",\r\n        \"action_header\": \"string\",\r\n        \"action_is_auto_payload\": true,\r\n        \"action_is_secure\": true,\r\n        \"action_message\": \"string\",\r\n        \"action_method\": \"string\",\r\n        \"action_payload\": \"string\",\r\n        \"action_process_delay\": 0,\r\n        \"action_query\": \"string\",\r\n        \"action_subject\": \"string\",\r\n        \"action_to\": \"string\",\r\n        \"action_type\": \"string\",\r\n        \"action_url\": \"string\"\r\n      }\r\n    ],\r\n    \"alert_frequency\": 0,\r\n    \"alert_id\": \"string\",\r\n    \"alert_name\": \"string\",\r\n    \"alert_priority\": \"string\",\r\n    \"alert_threshold\": \"string\",\r\n    \"alert_threshold_condition\": \"string\",\r\n    \"alert_threshold_key\": \"string\",\r\n    \"is_active\": true\r\n  },\r\n  \"response_code\": 200\r\n}\r\n```\r\n"
      consumes:
        - application/json
      produces:
        - application/json
      tags:
        - Alert
      summary: Alert Update
      parameters:
        - description: Alert Update Payload
          name: payload
          in: body
          required: true
          schema:
            allOf:
              - $ref: '#/definitions/alert.alertUpdateReq'
              - type: object
                properties:
                  alert_actions:
                    type: array
                    items:
                      $ref: '#/definitions/alert.alertAction'
      responses:
        '200':
          description: OK
          schema:
            allOf:
              - $ref: '#/definitions/model.HTTPResp'
              - type: object
                properties:
                  response:
                    allOf:
                      - $ref: '#/definitions/alert.alertResp'
                      - type: object
                        properties:
                          alert_actions:
                            type: array
                            items:
                              $ref: '#/definitions/alert.alertAction'
        '400':
          description: Bad Request
          schema:
            allOf:
              - $ref: '#/definitions/model.HTTPError'
              - type: object
                properties:
                  response: {}
        '500':
          description: Internal Server Error
          schema:
            allOf:
              - $ref: '#/definitions/model.HTTPError'
              - type: object
                properties:
                  response: {}
  /auth/client/list:
    get:
      description: User Auth with return Access token
      produces:
        - application/json
      tags:
        - User
      summary: User Auth
      parameters:
        - type: boolean
          description: Reveal Secret
          name: is_secret
          in: query
        - type: string
          description: Reveal Secret for Client ID
          name: client_id
          in: query
      responses:
        '200':
          description: OK
          schema:
            $ref: '#/definitions/model.HTTPResp'
        '400':
          description: Bad Request
          schema:
            $ref: '#/definitions/model.HTTPError'
        '404':
          description: Not Found
          schema:
            $ref: '#/definitions/model.HTTPError'
        '500':
          description: Internal Server Error
          schema:
            $ref: '#/definitions/model.HTTPError'
  /auto/test:
    post:
      description: "### Auto Test API.\r\n\r\n*Sample OUTPUT*\r\n\r\n```json\r\n{\r\n    \"message\": \"Auto Test\",\r\n    \"response\": null,\r\n    \"response_code\": 200\r\n}\r\n```"
      consumes:
        - application/json
      produces:
        - application/json
      tags:
        - Auto
      summary: Auto Test
      responses:
        '200':
          description: OK
          schema:
            allOf:
              - $ref: '#/definitions/model.HTTPResp'
              - type: object
                properties:
                  response: {}
        '400':
          description: Bad Request
          schema:
            allOf:
              - $ref: '#/definitions/model.HTTPError'
              - type: object
                properties:
                  response: {}
        '500':
          description: Internal Server Error
          schema:
            allOf:
              - $ref: '#/definitions/model.HTTPError'
              - type: object
                properties:
                  response: {}
  /config/account:
    get:
      description: '### Storage Information + Account Information'
      consumes:
        - application/json
      produces:
        - application/json
      tags:
        - Configuration
      summary: Status Storage
      responses:
        '200':
          description: OK
          schema:
            allOf:
              - $ref: '#/definitions/model.HTTPResp'
              - type: object
                properties:
                  response: {}
        '400':
          description: Bad Request
          schema:
            allOf:
              - $ref: '#/definitions/model.HTTPError'
              - type: object
                properties:
                  response: {}
        '500':
          description: Internal Server Error
          schema:
            allOf:
              - $ref: '#/definitions/model.HTTPError'
              - type: object
                properties:
                  response: {}
  /config/init:
    post:
      security:
        - OAuth2Password: []
      description: "### Config Init API.\r\n\r\n*Sample OUTPUT*\r\n\r\n```json\r\n  {\r\n    \"message\": \"Init Settings\",\r\n    \"response\": {},\r\n    \"response_code\": 200\r\n  } \r\n```"
      consumes:
        - application/json
      produces:
        - application/json
      tags:
        - Configuration
      summary: Is INIT
      responses:
        '200':
          description: OK
          schema:
            allOf:
              - $ref: '#/definitions/model.HTTPResp'
              - type: object
                properties:
                  response:
                    $ref: '#/definitions/config.settingInitResp'
        '400':
          description: Bad Request
          schema:
            allOf:
              - $ref: '#/definitions/model.HTTPError'
              - type: object
                properties:
                  response: {}
        '500':
          description: Internal Server Error
          schema:
            allOf:
              - $ref: '#/definitions/model.HTTPError'
              - type: object
                properties:
                  response: {}
  /config/reset:
    post:
      security:
        - OAuth2Password: []
      description: '### Access control list'
      consumes:
        - application/json
      produces:
        - application/json
      tags:
        - Configuration
      summary: Reset STS
      responses:
        '200':
          description: OK
          schema:
            allOf:
              - $ref: '#/definitions/model.HTTPResp'
              - type: object
                properties:
                  response: {}
        '400':
          description: Bad Request
          schema:
            allOf:
              - $ref: '#/definitions/model.HTTPError'
              - type: object
                properties:
                  response: {}
        '500':
          description: Internal Server Error
          schema:
            allOf:
              - $ref: '#/definitions/model.HTTPError'
              - type: object
                properties:
                  response: {}
  /config/sms:
    get:
      security:
        - OAuth2Password: []
      description: "### Get SMS Config API.\r\n\r\n*Sample OUTPUT*\r\n\r\n```json\r\n{\r\n    \"message\": \"SMS Settings\",\r\n    \"response\": {\r\n        \"sms_auth_key\": \"string\",\r\n        \"sms_auth_token\": \"string\",\r\n        \"sms_provider\": \"string\",\r\n        \"sms_from\": \"string\",\r\n        \"sms_to\": \"string\"\r\n    },\r\n    \"response_code\": 200\r\n}\r\n```"
      consumes:
        - application/json
      produces:
        - application/json
      tags:
        - Configuration
      summary: Get SMS Config
      parameters:
        - type: boolean
          description: Reveal Secret
          name: is_secret
          in: query
          required: true
      responses:
        '200':
          description: OK
          schema:
            allOf:
              - $ref: '#/definitions/model.HTTPResp'
              - type: object
                properties:
                  response:
                    $ref: '#/definitions/config.smsConfResp'
        '400':
          description: Bad Request
          schema:
            allOf:
              - $ref: '#/definitions/model.HTTPError'
              - type: object
                properties:
                  response: {}
        '500':
          description: Internal Server Error
          schema:
            allOf:
              - $ref: '#/definitions/model.HTTPError'
              - type: object
                properties:
                  response: {}
    post:
      security:
        - OAuth2Password: []
      description: "### Update SMS Config API.\r\n\r\n*Sample INPUT*\r\n\r\n```json\r\n{\r\n  \"sms_auth_key\": \"string\",\r\n  \"sms_auth_token\": \"string\",\r\n  \"sms_provider\": \"string\",\r\n  \"sms_from\": \"string\",\r\n  \"sms_to\": \"string\"\r\n}\r\n```\r\n\r\n*Sample OUTPUT*\r\n\r\n```json\r\n{\r\n  \"message\": \"SMS settings updated\",\r\n  \"response\": null,\r\n  \"response_code\": 200\r\n}\r\n```"
      consumes:
        - application/json
      produces:
        - application/json
      tags:
        - Configuration
      summary: Update SMS Config
      responses:
        '200':
          description: OK
          schema:
            allOf:
              - $ref: '#/definitions/model.HTTPResp'
              - type: object
                properties:
                  response: {}
        '400':
          description: Bad Request
          schema:
            allOf:
              - $ref: '#/definitions/model.HTTPError'
              - type: object
                properties:
                  response: {}
        '500':
          description: Internal Server Error
          schema:
            allOf:
              - $ref: '#/definitions/model.HTTPError'
              - type: object
                properties:
                  response: {}
  /config/smtp:
    get:
      security:
        - OAuth2Password: []
      description: "### Get SMS Config API.\r\n\r\n*Sample OUTPUT*\r\n\r\n```json\r\n{\r\n  \"message\": \"SMTP Settings\",\r\n  \"response\": {\r\n    \"smtp_attachment\": true,\r\n    \"smtp_auth\": true,\r\n    \"smtp_from\": \"string\",\r\n    \"smtp_host\": \"string\",\r\n    \"smtp_password\": \"string\",\r\n    \"smtp_port\": 0,\r\n    \"smtp_to\": \"string\",\r\n    \"smtp_username\": \"string\"\r\n  },\r\n  \"response_code\": 200\r\n}\r\n```"
      consumes:
        - application/json
      produces:
        - application/json
      tags:
        - Configuration
      summary: Get SMTP Config
      parameters:
        - type: boolean
          description: Reveal Secret
          name: is_secret
          in: query
          required: true
      responses:
        '200':
          description: OK
          schema:
            allOf:
              - $ref: '#/definitions/model.HTTPResp'
              - type: object
                properties:
                  response:
                    $ref: '#/definitions/config.smtpConfResp'
        '400':
          description: Bad Request
          schema:
            allOf:
              - $ref: '#/definitions/model.HTTPError'
              - type: object
                properties:
                  response: {}
        '500':
          description: Internal Server Error
          schema:
            allOf:
              - $ref: '#/definitions/model.HTTPError'
              - type: object
                properties:
                  response: {}
    post:
      security:
        - OAuth2Password: []
      description: "### Update SMTP Config API.\r\n\r\n*Sample INPUT*\r\n\r\n```json\r\n{\r\n  \"smtp_attachment\": true,\r\n  \"smtp_auth\": true,\r\n  \"smtp_from\": \"string\",\r\n  \"smtp_host\": \"string\",\r\n  \"smtp_password\": \"string\",\r\n  \"smtp_port\": 0,\r\n  \"smtp_to\": \"string\",\r\n  \"smtp_username\": \"string\"\r\n}\r\n```\r\n\r\n*Sample OUTPUT*\r\n\r\n```json\r\n{\r\n  \"message\": \"SMTP settings updated\",\r\n  \"response\": null,\r\n  \"response_code\": 200\r\n}\r\n```"
      consumes:
        - application/json
      produces:
        - application/json
      tags:
        - Configuration
      summary: Update SMTP Config
      responses:
        '200':
          description: OK
          schema:
            allOf:
              - $ref: '#/definitions/model.HTTPResp'
              - type: object
                properties:
                  response: {}
        '400':
          description: Bad Request
          schema:
            allOf:
              - $ref: '#/definitions/model.HTTPError'
              - type: object
                properties:
                  response: {}
        '500':
          description: Internal Server Error
          schema:
            allOf:
              - $ref: '#/definitions/model.HTTPError'
              - type: object
                properties:
                  response: {}
  /config/storage:
    get:
      description: '### Storage Information '
      consumes:
        - application/json
      produces:
        - application/json
      tags:
        - Configuration
      summary: Status Storage
      responses:
        '200':
          description: OK
          schema:
            allOf:
              - $ref: '#/definitions/model.HTTPResp'
              - type: object
                properties:
                  response: {}
        '400':
          description: Bad Request
          schema:
            allOf:
              - $ref: '#/definitions/model.HTTPError'
              - type: object
                properties:
                  response: {}
        '500':
          description: Internal Server Error
          schema:
            allOf:
              - $ref: '#/definitions/model.HTTPError'
              - type: object
                properties:
                  response: {}
  /customer/create:
    put:
      security:
        - OAuth2Password: []
      description: "### Customer Create API.\r\n\r\n*Sample INPUT*\r\n\r\n```json\r\n{\r\n  \"customer_address\": {\r\n    \"customer_area\": \"string\",\r\n    \"customer_city\": \"string\",\r\n    \"customer_country\": \"string\",\r\n    \"customer_state\": \"string\",\r\n    \"customer_street\": \"string\",\r\n    \"customer_unit\": \"string\",\r\n    \"customer_zip\": \"string\"\r\n  },\r\n  \"customer_contact\": [\r\n    \"string\"\r\n  ],\r\n  \"customer_description\": \"string\",\r\n  \"customer_icon\": \"string\",\r\n  \"customer_id\": \"string\",\r\n  \"customer_key\": \"string\",\r\n  \"customer_name\": \"string\",\r\n  \"customer_sites\": [\r\n    \"string\"\r\n  ],\r\n  \"customer_type\": \"string\",\r\n  \"organization_id\": \"string\"\r\n}\r\n```\r\n\r\n*Sample OUTPUT*\r\n\r\n```json\r\n{\r\n  \"message\": \"Customer Created\",\r\n  \"response\": null,\r\n  \"response_code\": 201\r\n}\r\n```"
      consumes:
        - application/json
      produces:
        - application/json
      tags:
        - Customer
      summary: Customer Create
      parameters:
        - description: Customer Create Payload
          name: payload
          in: body
          required: true
          schema:
            $ref: '#/definitions/customer.customerCreateReq'
      responses:
        '200':
          description: OK
          schema:
            allOf:
              - $ref: '#/definitions/model.HTTPResp'
              - type: object
                properties:
                  response: {}
        '400':
          description: Bad Request
          schema:
            allOf:
              - $ref: '#/definitions/model.HTTPError'
              - type: object
                properties:
                  response: {}
        '500':
          description: Internal Server Error
          schema:
            allOf:
              - $ref: '#/definitions/model.HTTPError'
              - type: object
                properties:
                  response: {}
  /customer/delete:
    delete:
      security:
        - OAuth2Password: []
      description: "### Customer Delete API.\r\n\r\n*Sample INPUT*\r\n\r\n```json\r\n{\r\n    \"customer_id\": \"string\"\r\n}\r\n```\r\n\r\n*Sample OUTPUT*\r\n\r\n```json\r\n{\r\n    \"message\": \"Customer deleted\",\r\n    \"response\": null,\r\n    \"response_code\": 200\r\n}\r\n```"
      consumes:
        - application/json
      produces:
        - application/json
      tags:
        - Customer
      summary: Customer Delete
      parameters:
        - description: Customer Delete Payload
          name: payload
          in: body
          required: true
          schema:
            $ref: '#/definitions/customer.customerIDReq'
      responses:
        '200':
          description: OK
          schema:
            allOf:
              - $ref: '#/definitions/model.HTTPResp'
              - type: object
                properties:
                  response: {}
        '400':
          description: Bad Request
          schema:
            allOf:
              - $ref: '#/definitions/model.HTTPError'
              - type: object
                properties:
                  response: {}
        '500':
          description: Internal Server Error
          schema:
            allOf:
              - $ref: '#/definitions/model.HTTPError'
              - type: object
                properties:
                  response: {}
  /customer/id:
    get:
      security:
        - OAuth2Password: []
      description: "### Customer ID API.\r\n\r\n*Sample INPUT*\r\n\r\n// Query params\r\n```json\r\n{\r\n  \"customer_id\": \"string\"\r\n}\r\n```\r\n\r\n*Sample OUTPUT*\r\n\r\n```json\r\n{\r\n  \"message\": \"Customer Id\",\r\n  \"response\": {\r\n    \"customer_address\": {\r\n      \"customer_area\": \"string\",\r\n      \"customer_city\": \"string\",\r\n      \"customer_country\": \"string\",\r\n      \"customer_state\": \"string\",\r\n      \"customer_street\": \"string\",\r\n      \"customer_unit\": \"string\",\r\n      \"customer_zip\": \"string\"\r\n    },\r\n    \"customer_contact\": [\r\n      \"string\"\r\n    ],\r\n    \"customer_description\": \"string\",\r\n    \"customer_icon\": \"string\",\r\n    \"customer_id\": \"string\",\r\n    \"customer_key\": \"string\",\r\n    \"customer_name\": \"string\",\r\n    \"customer_sites\": [\r\n      \"string\"\r\n    ],\r\n    \"customer_type\": \"string\",\r\n    \"organization_id\": \"string\"\r\n  },\r\n  \"response_code\": 200\r\n}\r\n```"
      consumes:
        - application/json
      produces:
        - application/json
      tags:
        - Customer
      summary: Customer ID
      parameters:
        - type: string
          description: Customer ID
          name: customer_id
          in: query
          required: true
      responses:
        '200':
          description: OK
          schema:
            allOf:
              - $ref: '#/definitions/model.HTTPResp'
              - type: object
                properties:
                  response:
                    allOf:
                      - $ref: '#/definitions/customer.customerResp'
                      - type: object
                        properties:
                          customer_address:
                            $ref: '#/definitions/customer.customerAddress'
        '400':
          description: Bad Request
          schema:
            allOf:
              - $ref: '#/definitions/model.HTTPError'
              - type: object
                properties:
                  response: {}
        '500':
          description: Internal Server Error
          schema:
            allOf:
              - $ref: '#/definitions/model.HTTPError'
              - type: object
                properties:
                  response: {}
  /customer/list:
    get:
      security:
        - OAuth2Password: []
      description: "### Customer List API.\r\n\r\n*Sample INPUT*\r\n\r\n// Query params\r\n\r\n```json\r\n{\r\n  \"organization_id\": \"string\",\r\n  \"is_default\": \"string\"\r\n}\r\n```\r\n\r\n*Sample OUTPUT*\r\n\r\n```json\r\n{\r\n  \"message\": \"Customer List\",\r\n  \"response\": [\r\n    {\r\n      \"customer_address\": {\r\n        \"customer_area\": \"string\",\r\n        \"customer_city\": \"string\",\r\n        \"customer_country\": \"string\",\r\n        \"customer_state\": \"string\",\r\n        \"customer_street\": \"string\",\r\n        \"customer_unit\": \"string\",\r\n        \"customer_zip\": \"string\"\r\n      },\r\n      \"customer_contact\": [\r\n        \"string\"\r\n      ],\r\n      \"customer_description\": \"string\",\r\n      \"customer_icon\": \"string\",\r\n      \"customer_id\": \"string\",\r\n      \"customer_key\": \"string\",\r\n      \"customer_name\": \"string\",\r\n      \"customer_sites\": [\r\n        \"string\"\r\n      ],\r\n      \"customer_type\": \"string\",\r\n      \"organization_id\": \"string\"\r\n    }\r\n  ],\r\n  \"response_code\": 200\r\n}\r\n```"
      consumes:
        - application/json
      produces:
        - application/json
      tags:
        - Customer
      summary: Customer List
      parameters:
        - type: string
          description: Organization ID
          name: organization_id
          in: query
          required: true
        - type: string
          description: Includes Default Customer
          name: is_default
          in: query
      responses:
        '200':
          description: OK
          schema:
            allOf:
              - $ref: '#/definitions/model.HTTPRespArray'
              - type: object
                properties:
                  response:
                    type: array
                    items:
                      allOf:
                        - $ref: '#/definitions/customer.customerResp'
                        - type: object
                          properties:
                            customer_address:
                              $ref: '#/definitions/customer.customerAddress'
        '400':
          description: Bad Request
          schema:
            allOf:
              - $ref: '#/definitions/model.HTTPError'
              - type: object
                properties:
                  response: {}
        '500':
          description: Internal Server Error
          schema:
            allOf:
              - $ref: '#/definitions/model.HTTPError'
              - type: object
                properties:
                  response: {}
  /customer/site/assign:
    patch:
      security:
        - OAuth2Password: []
      description: "### Customer Site Assign API.\r\n\r\n*Sample INPUT*\r\n\r\n```json\r\n{\r\n  \"customer_id\": \"string\",\r\n  \"site_ids\": [\r\n    \"string\"\r\n  ]\r\n}\r\n```\r\n\r\n*Sample OUTPUT*\r\n\r\n```json\r\n{\r\n  \"message\": \"Assigned site(s) to customer\",\r\n  \"response\": null,\r\n  \"response_code\": 200\r\n}\r\n```"
      consumes:
        - application/json
      produces:
        - application/json
      tags:
        - Organization
      summary: Customer Site Assign
      parameters:
        - description: Customer Site Assign Payload
          name: payload
          in: body
          required: true
          schema:
            $ref: '#/definitions/customer.customerSiteAssignReq'
      responses:
        '200':
          description: OK
          schema:
            allOf:
              - $ref: '#/definitions/model.HTTPResp'
              - type: object
                properties:
                  response: {}
        '400':
          description: Bad Request
          schema:
            allOf:
              - $ref: '#/definitions/model.HTTPError'
              - type: object
                properties:
                  response: {}
        '500':
          description: Internal Server Error
          schema:
            allOf:
              - $ref: '#/definitions/model.HTTPError'
              - type: object
                properties:
                  response: {}
  /customer/site/unassign:
    patch:
      security:
        - OAuth2Password: []
      description: "### Customer Site Unassign API.\r\n\r\n*Sample INPUT*\r\n\r\n```json\r\n{\r\n  \"customer_id\": \"string\",\r\n  \"site_ids\": [\r\n    \"string\"\r\n  ]\r\n}\r\n```\r\n\r\n*Sample OUTPUT*\r\n\r\n```json\r\n{\r\n    \"message\": \"Unassigned site(s) to customer\",\r\n    \"response\": null,\r\n    \"response_code\": 200\r\n}\r\n```"
      consumes:
        - application/json
      produces:
        - application/json
      tags:
        - Organization
      summary: Customer Site Unassign
      parameters:
        - description: Customer Site Assign Payload
          name: payload
          in: body
          required: true
          schema:
            $ref: '#/definitions/customer.customerSiteAssignReq'
      responses:
        '200':
          description: OK
          schema:
            allOf:
              - $ref: '#/definitions/model.HTTPResp'
              - type: object
                properties:
                  response: {}
        '400':
          description: Bad Request
          schema:
            allOf:
              - $ref: '#/definitions/model.HTTPError'
              - type: object
                properties:
                  response: {}
        '500':
          description: Internal Server Error
          schema:
            allOf:
              - $ref: '#/definitions/model.HTTPError'
              - type: object
                properties:
                  response: {}
  /customer/update:
    patch:
      security:
        - OAuth2Password: []
      description: "### Customer Update API.\r\n\r\n*Sample INPUT*\r\n\r\n```json\r\n{\r\n  \"customer_address\": {\r\n    \"customer_area\": \"string\",\r\n    \"customer_city\": \"string\",\r\n    \"customer_country\": \"string\",\r\n    \"customer_state\": \"string\",\r\n    \"customer_street\": \"string\",\r\n    \"customer_unit\": \"string\",\r\n    \"customer_zip\": \"string\"\r\n  },\r\n  \"customer_contact\": [\r\n    \"string\"\r\n  ],\r\n  \"customer_description\": \"string\",\r\n  \"customer_icon\": \"string\",\r\n  \"customer_id\": \"string\",\r\n  \"customer_key\": \"string\",\r\n  \"customer_name\": \"string\",\r\n  \"customer_sites\": [\r\n    \"string\"\r\n  ],\r\n  \"customer_type\": \"string\",\r\n  \"organization_id\": \"string\"\r\n}\r\n```\r\n\r\n*Sample OUTPUT*\r\n\r\n```json\r\n{\r\n  \"message\": \"Customer updated\",\r\n  \"response\": null,\r\n  \"response_code\": 200\r\n}\r\n```"
      consumes:
        - application/json
      produces:
        - application/json
      tags:
        - Customer
      summary: Customer Update
      parameters:
        - description: Customer Update Payload
          name: payload
          in: body
          required: true
          schema:
            $ref: '#/definitions/customer.customerUpdateReq'
      responses:
        '200':
          description: OK
          schema:
            allOf:
              - $ref: '#/definitions/model.HTTPResp'
              - type: object
                properties:
                  response: {}
        '400':
          description: Bad Request
          schema:
            allOf:
              - $ref: '#/definitions/model.HTTPError'
              - type: object
                properties:
                  response: {}
        '500':
          description: Internal Server Error
          schema:
            allOf:
              - $ref: '#/definitions/model.HTTPError'
              - type: object
                properties:
                  response: {}
  /customer/view:
    get:
      security:
        - OAuth2Password: []
      description: "### Customer View API\r\n\r\n*Sample INPUT*\r\n\r\n// Query params\r\n```json\r\n{\r\n  \"customer_id\": \"string\",\r\n  \"type\": 1\r\n}\r\n```\r\n\r\n*Sample OUTPUT Type 1*\r\n\r\n```json\r\n{\r\n  \"message\": \"Customer site map\",\r\n  \"response\": [\r\n    {\r\n      \"site_address\": {\r\n        \"site_area\": \"string\",\r\n        \"site_city\": \"string\",\r\n        \"site_country\": \"string\",\r\n        \"site_geolocation\": {\r\n          \"lat\": 0,\r\n          \"long\": 0\r\n        },\r\n        \"site_state\": \"string\",\r\n        \"site_street\": \"string\",\r\n        \"site_unit\": \"string\",\r\n        \"site_zip\": \"string\"\r\n      },\r\n      \"site_description\": \"string\",\r\n      \"site_devices\": [\r\n        {\r\n          \"device_id\": \"string\",\r\n          \"device_identifier\": \"string\",\r\n          \"device_name\": \"string\",\r\n          \"device_source\": [\r\n            {\r\n              \"source_address\": \"string\",\r\n              \"source_fps\": 0,\r\n              \"source_id\": \"string\",\r\n              \"source_name\": \"string\",\r\n              \"source_sid\": 0,\r\n              \"source_type\": \"string\"\r\n            }\r\n          ],\r\n          \"device_state\": true,\r\n          \"device_status\": \"string\",\r\n          \"device_tags\": {\r\n            \"additionalProp1\": \"string\",\r\n            \"additionalProp2\": \"string\",\r\n            \"additionalProp3\": \"string\"\r\n          },\r\n          \"device_type\": \"string\",\r\n          \"device_uuid\": \"string\",\r\n          \"device_value\": \"string\",\r\n          \"source_channels\": [\r\n            {\r\n              \"channel_favorite\": true,\r\n              \"channel_id\": \"string\",\r\n              \"channel_key\": \"string\",\r\n              \"channel_name\": \"string\",\r\n              \"channel_sid\": \"string\",\r\n              \"channel_threshold_duration\": 0,\r\n              \"device_id\": \"string\",\r\n              \"is_active\": true,\r\n              \"is_storage\": true,\r\n              \"is_verified\": true,\r\n              \"nimble_id\": \"string\",\r\n              \"pipeline_id\": \"string\",\r\n              \"source_id\": \"string\",\r\n              \"usecase_icon\": \"string\",\r\n              \"usecase_id\": \"string\",\r\n              \"usecase_key\": \"string\",\r\n              \"usecase_meta_key\": [\r\n                \"string\"\r\n              ],\r\n              \"usecase_name\": \"string\"\r\n            }\r\n          ]\r\n        }\r\n      ],\r\n      \"site_icon\": \"string\",\r\n      \"site_id\": \"string\",\r\n      \"site_image\": \"string\",\r\n      \"site_key\": \"string\",\r\n      \"site_name\": \"string\",\r\n      \"site_type\": \"string\"\r\n    }\r\n  ],\r\n  \"response_code\": 200\r\n}\r\n```\r\n\r\n*Sample OUTPUT Type 2*\r\n\r\n```json\r\n{\r\n  \"message\": \"Customer site map\",\r\n  \"response\": [\r\n    {\r\n      \"usecase_background_color\": \"string\",\r\n      \"usecase_channels\": [\r\n        {\r\n          \"channel_favorite\": true,\r\n          \"channel_id\": \"string\",\r\n          \"channel_key\": \"string\",\r\n          \"channel_name\": \"string\",\r\n          \"channel_sid\": \"string\",\r\n          \"channel_threshold_duration\": 0,\r\n          \"device_id\": \"string\",\r\n          \"is_active\": true,\r\n          \"is_storage\": true,\r\n          \"is_verified\": true,\r\n          \"nimble_id\": \"string\",\r\n          \"pipeline_id\": \"string\",\r\n          \"site_id\": \"string\",\r\n          \"source_id\": \"string\",\r\n          \"usecase_icon\": \"string\",\r\n          \"usecase_id\": \"string\",\r\n          \"usecase_key\": \"string\",\r\n          \"usecase_meta_key\": [\r\n            \"string\"\r\n          ],\r\n          \"usecase_name\": \"string\"\r\n        }\r\n      ],\r\n      \"usecase_component_key\": \"string\",\r\n      \"usecase_desc\": \"string\",\r\n      \"usecase_icon\": \"string\",\r\n      \"usecase_id\": \"string\",\r\n      \"usecase_key\": \"string\",\r\n      \"usecase_meta_key\": [\r\n        \"string\"\r\n      ],\r\n      \"usecase_name\": \"string\"\r\n    }\r\n  ],\r\n  \"response_code\": 200\r\n}\r\n```\r\n"
      consumes:
        - application/json
      produces:
        - application/json
      tags:
        - Customer
      summary: Customer View
      parameters:
        - type: string
          description: Customer ID
          name: customer_id
          in: query
          required: true
        - type: integer
          description: type
          name: type
          in: query
          required: true
      responses:
        '200':
          description: type-1
          schema:
            allOf:
              - $ref: '#/definitions/model.HTTPRespArray'
              - type: object
                properties:
                  response:
                    type: array
                    items:
                      allOf:
                        - $ref: '#/definitions/customer.customerViewDeviceResp'
                        - type: object
                          properties:
                            site_address:
                              allOf:
                                - $ref: '#/definitions/customer.siteAddress'
                                - type: object
                                  properties:
                                    site_geolocation:
                                      $ref: '#/definitions/customer.geoLocation'
                            site_devices:
                              type: array
                              items:
                                allOf:
                                  - $ref: '#/definitions/customer.deviceResp'
                                  - type: object
                                    properties:
                                      source_channels:
                                        type: array
                                        items:
                                          $ref: '#/definitions/customer.channelResp'
        '202':
          description: type-2
          schema:
            allOf:
              - $ref: '#/definitions/model.HTTPRespArray'
              - type: object
                properties:
                  response:
                    type: array
                    items:
                      allOf:
                        - $ref: '#/definitions/customer.customerViewAnalyticResp'
                        - type: object
                          properties:
                            usecase_channels:
                              type: array
                              items:
                                $ref: '#/definitions/customer.channelAnalyticResp'
        '400':
          description: Bad Request
          schema:
            allOf:
              - $ref: '#/definitions/model.HTTPError'
              - type: object
                properties:
                  response: {}
        '500':
          description: Internal Server Error
          schema:
            allOf:
              - $ref: '#/definitions/model.HTTPError'
              - type: object
                properties:
                  response: {}
  /device/create:
    put:
      security:
        - OAuth2Password: []
      description: "### Device Create API\r\n\r\n*Sample INPUT*\r\n\r\n```json\r\n    {\r\n  \"device_identifier\": \"string\",\r\n  \"device_name\": \"string\",\r\n  \"device_streams\": [\r\n    {\r\n      \"address\": \"string\",\r\n      \"fps\": {\r\n        \"input\": 0\r\n      },\r\n      \"id\": 0,\r\n      \"password\": \"string\",\r\n      \"port\": 0,\r\n      \"protocol\": \"string\",\r\n      \"resolution\": {\r\n        \"height\": 0,\r\n        \"width\": 0\r\n      },\r\n      \"type\": \"string\",\r\n      \"username\": \"string\",\r\n      \"uuid\": \"string\"\r\n    }\r\n  ],\r\n  \"device_tags\": {\r\n    \"additionalProp1\": \"string\",\r\n    \"additionalProp2\": \"string\",\r\n    \"additionalProp3\": \"string\"\r\n  },\r\n  \"device_type\": \"string\",\r\n  \"device_uuid\": \"string\",\r\n  \"site_id\": \"string\"\r\n}\r\n```\r\n\r\n*Sample OUTPUT*\r\n\r\n```json\r\n{\r\n  \"message\": \"Device created\",\r\n  \"response\": {\r\n    \"device_id\": \"string\"\r\n  },\r\n  \"response_code\": 201\r\n}\r\n```"
      consumes:
        - application/json
      produces:
        - application/json
      tags:
        - Device
      summary: Device Create
      parameters:
        - description: Device Create Payload
          name: payload
          in: body
          required: true
          schema:
            $ref: '#/definitions/device.deviceCreateReq'
      responses:
        '200':
          description: OK
          schema:
            allOf:
              - $ref: '#/definitions/model.HTTPResp'
              - type: object
                properties:
                  response:
                    $ref: '#/definitions/device.deviceIDReq'
        '400':
          description: Bad Request
          schema:
            allOf:
              - $ref: '#/definitions/model.HTTPError'
              - type: object
                properties:
                  response: {}
        '500':
          description: Internal Server Error
          schema:
            allOf:
              - $ref: '#/definitions/model.HTTPError'
              - type: object
                properties:
                  response: {}
  /device/delete:
    delete:
      security:
        - OAuth2Password: []
      description: "### Device Delete API\r\n\r\n*Sample INPUT*\r\n\r\n```json\r\n{\r\n    \"device_id\": \"string\"\r\n}\r\n```\r\n\r\n*Sample OUTPUT*\r\n\r\n```json\r\n{\r\n    \"message\": \"Device deleted\",\r\n    \"response\": null,\r\n    \"response_code\": 200\r\n}\r\n```"
      consumes:
        - application/json
      produces:
        - application/json
      tags:
        - Device
      summary: Device Delete
      parameters:
        - description: Device Delete Payload
          name: payload
          in: body
          required: true
          schema:
            $ref: '#/definitions/device.deviceDeleteReq'
      responses:
        '200':
          description: OK
          schema:
            $ref: '#/definitions/model.HTTPResp'
        '400':
          description: Bad Request
          schema:
            allOf:
              - $ref: '#/definitions/model.HTTPError'
              - type: object
                properties:
                  response: {}
        '500':
          description: Internal Server Error
          schema:
            allOf:
              - $ref: '#/definitions/model.HTTPError'
              - type: object
                properties:
                  response: {}
  /device/id:
    get:
      security:
        - OAuth2Password: []
      description: "### Device ID API\r\n\r\n*Sample INPUT*\r\n\r\n// Query params\r\n```json\r\n{\r\n  \"device_id\": \"string\"\r\n}\r\n```\r\n\r\n*Sample OUTPUT*\r\n\r\n```json\r\n{\r\n  \"message\": \"Device ID\",\r\n  \"response\": {\r\n    \"device_id\": \"string\",\r\n    \"device_identifier\": \"string\",\r\n    \"device_name\": \"string\",\r\n    \"device_source\": [\r\n      {\r\n        \"source_address\": \"string\",\r\n        \"source_channels\": [\r\n          {\r\n            \"channel_favorite\": true,\r\n            \"channel_id\": \"string\",\r\n            \"channel_key\": \"string\",\r\n            \"channel_name\": \"string\",\r\n            \"channel_sid\": \"string\",\r\n            \"channel_threshold_duration\": 0,\r\n            \"is_active\": true,\r\n            \"is_storage\": true,\r\n            \"is_verified\": true,\r\n            \"nimble_id\": \"string\",\r\n            \"pipeline_id\": \"string\",\r\n            \"source_id\": \"string\",\r\n            \"usecase_icon\": \"string\",\r\n            \"usecase_id\": \"string\",\r\n            \"usecase_key\": \"string\",\r\n            \"usecase_meta_key\": [\r\n              \"string\"\r\n            ],\r\n            \"usecase_name\": \"string\"\r\n          }\r\n        ],\r\n        \"source_fps\": 0,\r\n        \"source_id\": \"string\",\r\n        \"source_name\": \"string\",\r\n        \"source_sid\": 0,\r\n        \"source_type\": \"string\"\r\n      }\r\n    ],\r\n    \"device_state\": true,\r\n    \"device_status\": \"string\",\r\n    \"device_streams\": [\r\n      {\r\n        \"address\": \"string\",\r\n        \"fps\": {\r\n          \"input\": 0\r\n        },\r\n        \"id\": 0,\r\n        \"password\": \"string\",\r\n        \"port\": 0,\r\n        \"protocol\": \"string\",\r\n        \"resolution\": {\r\n          \"height\": 0,\r\n          \"width\": 0\r\n        },\r\n        \"type\": \"string\",\r\n        \"username\": \"string\",\r\n        \"uuid\": \"string\"\r\n      }\r\n    ],\r\n    \"device_tags\": {\r\n      \"additionalProp1\": \"string\",\r\n      \"additionalProp2\": \"string\",\r\n      \"additionalProp3\": \"string\"\r\n    },\r\n    \"device_type\": \"string\",\r\n    \"device_uuid\": \"string\",\r\n    \"device_value\": \"string\",\r\n    \"site_id\": \"string\",\r\n    \"source_channels\": [\r\n      {\r\n        \"channel_favorite\": true,\r\n        \"channel_id\": \"string\",\r\n        \"channel_key\": \"string\",\r\n        \"channel_name\": \"string\",\r\n        \"channel_sid\": \"string\",\r\n        \"channel_threshold_duration\": 0,\r\n        \"is_active\": true,\r\n        \"is_storage\": true,\r\n        \"is_verified\": true,\r\n        \"nimble_id\": \"string\",\r\n        \"pipeline_id\": \"string\",\r\n        \"source_id\": \"string\",\r\n        \"usecase_icon\": \"string\",\r\n        \"usecase_id\": \"string\",\r\n        \"usecase_key\": \"string\",\r\n        \"usecase_meta_key\": [\r\n          \"string\"\r\n        ],\r\n        \"usecase_name\": \"string\"\r\n      }\r\n    ]\r\n  },\r\n  \"response_code\": 200\r\n}\r\n```"
      consumes:
        - application/json
      produces:
        - application/json
      tags:
        - Device
      summary: Device ID
      parameters:
        - type: string
          description: Device ID
          name: device_id
          in: query
          required: true
      responses:
        '200':
          description: OK
          schema:
            allOf:
              - $ref: '#/definitions/model.HTTPResp'
              - type: object
                properties:
                  response:
                    allOf:
                      - $ref: '#/definitions/device.deviceResp'
                      - type: object
                        properties:
                          device_streams:
                            type: array
                            items:
                              allOf:
                                - $ref: '#/definitions/device.deviceStream'
                                - type: object
                                  properties:
                                    fps:
                                      $ref: '#/definitions/device.streamFPS'
                                    resolution:
                                      $ref: '#/definitions/device.streamResolution'
        '400':
          description: Bad Request
          schema:
            allOf:
              - $ref: '#/definitions/model.HTTPError'
              - type: object
                properties:
                  response: {}
        '500':
          description: Internal Server Error
          schema:
            allOf:
              - $ref: '#/definitions/model.HTTPError'
              - type: object
                properties:
                  response: {}
  /device/list:
    get:
      security:
        - OAuth2Password: []
      description: "### Device List API\r\n\r\n*Sample INPUT*\r\n\r\n// Query params\r\n```json\r\n{\r\n  \"site_id\": \"string\"\r\n}\r\n```\r\n\r\n*Sample OUTPUT*\r\n\r\n```json\r\n{\r\n  \"message\": \"Device List\",\r\n  \"response\": [\r\n    {\r\n      \"device_id\": \"string\",\r\n      \"device_identifier\": \"string\",\r\n      \"device_name\": \"string\",\r\n      \"device_source\": [\r\n        {\r\n          \"source_address\": \"string\",\r\n          \"source_channels\": [\r\n            {\r\n              \"channel_favorite\": true,\r\n              \"channel_id\": \"string\",\r\n              \"channel_key\": \"string\",\r\n              \"channel_name\": \"string\",\r\n              \"channel_sid\": \"string\",\r\n              \"channel_threshold_duration\": 0,\r\n              \"is_active\": true,\r\n              \"is_storage\": true,\r\n              \"is_verified\": true,\r\n              \"nimble_id\": \"string\",\r\n              \"pipeline_id\": \"string\",\r\n              \"source_id\": \"string\",\r\n              \"usecase_icon\": \"string\",\r\n              \"usecase_id\": \"string\",\r\n              \"usecase_key\": \"string\",\r\n              \"usecase_meta_key\": [\r\n                \"string\"\r\n              ],\r\n              \"usecase_name\": \"string\"\r\n            }\r\n          ],\r\n          \"source_fps\": 0,\r\n          \"source_id\": \"string\",\r\n          \"source_name\": \"string\",\r\n          \"source_sid\": 0,\r\n          \"source_type\": \"string\"\r\n        }\r\n      ],\r\n      \"device_state\": true,\r\n      \"device_status\": \"string\",\r\n      \"device_streams\": [\r\n        {\r\n          \"address\": \"string\",\r\n          \"fps\": {\r\n            \"input\": 0\r\n          },\r\n          \"id\": 0,\r\n          \"password\": \"string\",\r\n          \"port\": 0,\r\n          \"protocol\": \"string\",\r\n          \"resolution\": {\r\n            \"height\": 0,\r\n            \"width\": 0\r\n          },\r\n          \"type\": \"string\",\r\n          \"username\": \"string\",\r\n          \"uuid\": \"string\"\r\n        }\r\n      ],\r\n      \"device_tags\": {\r\n        \"additionalProp1\": \"string\",\r\n        \"additionalProp2\": \"string\",\r\n        \"additionalProp3\": \"string\"\r\n      },\r\n      \"device_type\": \"string\",\r\n      \"device_uuid\": \"string\",\r\n      \"device_value\": \"string\",\r\n      \"site_id\": \"string\",\r\n      \"source_channels\": [\r\n        {\r\n          \"channel_favorite\": true,\r\n          \"channel_id\": \"string\",\r\n          \"channel_key\": \"string\",\r\n          \"channel_name\": \"string\",\r\n          \"channel_sid\": \"string\",\r\n          \"channel_threshold_duration\": 0,\r\n          \"is_active\": true,\r\n          \"is_storage\": true,\r\n          \"is_verified\": true,\r\n          \"nimble_id\": \"string\",\r\n          \"pipeline_id\": \"string\",\r\n          \"source_id\": \"string\",\r\n          \"usecase_icon\": \"string\",\r\n          \"usecase_id\": \"string\",\r\n          \"usecase_key\": \"string\",\r\n          \"usecase_meta_key\": [\r\n            \"string\"\r\n          ],\r\n          \"usecase_name\": \"string\"\r\n        }\r\n      ]\r\n    }\r\n  ],\r\n  \"response_code\": 200\r\n}\r\n```"
      consumes:
        - application/json
      produces:
        - application/json
      tags:
        - Device
      summary: Device List
      parameters:
        - type: string
          description: Site ID
          name: site_id
          in: query
          required: true
      responses:
        '200':
          description: OK
          schema:
            allOf:
              - $ref: '#/definitions/model.HTTPRespArray'
              - type: object
                properties:
                  response:
                    type: array
                    items:
                      allOf:
                        - $ref: '#/definitions/device.deviceResp'
                        - type: object
                          properties:
                            device_streams:
                              type: array
                              items:
                                allOf:
                                  - $ref: '#/definitions/device.deviceStream'
                                  - type: object
                                    properties:
                                      fps:
                                        $ref: '#/definitions/device.streamFPS'
                                      resolution:
                                        $ref: '#/definitions/device.streamResolution'
        '400':
          description: Bad Request
          schema:
            allOf:
              - $ref: '#/definitions/model.HTTPError'
              - type: object
                properties:
                  response: {}
        '500':
          description: Internal Server Error
          schema:
            allOf:
              - $ref: '#/definitions/model.HTTPError'
              - type: object
                properties:
                  response: {}
  /device/static/create:
    put:
      security:
        - OAuth2Password: []
      description: "### Static Create API\r\n\r\n*Sample INPUT*\r\n\r\n```json\r\n{\r\n  \"device_id\": \"string\",\r\n  \"id\": 0,\r\n  \"static_content_data\": {\r\n    \"additionalProp1\": {}\r\n  },\r\n  \"static_content_name\": \"string\",\r\n  \"static_content_type\": \"string\"\r\n}\r\n```\r\n\r\n*Sample OUTPUT*\r\n\r\n```json\r\n{\r\n    \"message\": \"Zone created\",\r\n    \"response\": null,\r\n    \"response_code\": 201\r\n}\r\n```"
      consumes:
        - application/json
      produces:
        - application/json
      tags:
        - StaticContent
      summary: Static Content Create
      parameters:
        - description: Static Content Payload
          name: payload
          in: body
          required: true
          schema:
            $ref: '#/definitions/device.staticContentCreateReq'
      responses:
        '200':
          description: OK
          schema:
            $ref: '#/definitions/model.HTTPResp'
        '400':
          description: Bad Request
          schema:
            allOf:
              - $ref: '#/definitions/model.HTTPError'
              - type: object
                properties:
                  response: {}
        '500':
          description: Internal Server Error
          schema:
            allOf:
              - $ref: '#/definitions/model.HTTPError'
              - type: object
                properties:
                  response: {}
  /device/static/delete:
    delete:
      security:
        - OAuth2Password: []
      description: "### Static Delete API\r\n\r\n*Sample INPUT*\r\n\r\n```json\r\n{\r\n  \"static_content_id\": \"string\"\r\n}\r\n```\r\n\r\n*Sample OUTPUT*\r\n\r\n```json\r\n{\r\n    \"message\": \"Static Content Deleted\",\r\n    \"response\": null,\r\n    \"response_code\": 200\r\n}\r\n```"
      consumes:
        - application/json
      produces:
        - application/json
      tags:
        - StaticContent
      summary: Static Content Delete
      parameters:
        - description: Static Content Payload
          name: payload
          in: body
          required: true
          schema:
            $ref: '#/definitions/device.staticContentIDReq'
      responses:
        '200':
          description: OK
          schema:
            allOf:
              - $ref: '#/definitions/model.HTTPResp'
              - type: object
                properties:
                  response: {}
        '400':
          description: Bad Request
          schema:
            allOf:
              - $ref: '#/definitions/model.HTTPError'
              - type: object
                properties:
                  response: {}
        '500':
          description: Internal Server Error
          schema:
            allOf:
              - $ref: '#/definitions/model.HTTPError'
              - type: object
                properties:
                  response: {}
  /device/static/id:
    get:
      security:
        - OAuth2Password: []
      description: "### Static ID API\r\n\r\n*Sample INPUT*\r\n\r\n// Query params\r\n```json\r\n{\r\n  \"static_content_id\": \"string\"\r\n}\r\n```\r\n\r\n*Sample OUTPUT*\r\n\r\n```json\r\n{\r\n    \"message\": \"Zone created\",\r\n    \"response\": {\r\n      \"device_id\": \"string\",\r\n      \"id\": 0,\r\n      \"static_content_data\": {\r\n        \"additionalProp1\": {}\r\n      },\r\n      \"static_content_name\": \"string\",\r\n      \"static_content_type\": \"string\"\r\n    },\r\n    \"response_code\": 201\r\n}\r\n```"
      consumes:
        - application/json
      produces:
        - application/json
      tags:
        - StaticContent
      summary: Static Content ID
      parameters:
        - type: string
          description: Static ID
          name: static_id
          in: query
          required: true
      responses:
        '200':
          description: OK
          schema:
            allOf:
              - $ref: '#/definitions/model.HTTPResp'
              - type: object
                properties:
                  response:
                    $ref: '#/definitions/device.staticContentResp'
        '400':
          description: Bad Request
          schema:
            allOf:
              - $ref: '#/definitions/model.HTTPError'
              - type: object
                properties:
                  response: {}
        '500':
          description: Internal Server Error
          schema:
            allOf:
              - $ref: '#/definitions/model.HTTPError'
              - type: object
                properties:
                  response: {}
  /device/static/list:
    get:
      security:
        - OAuth2Password: []
      description: "### Static List API\r\n\r\n*Sample INPUT*\r\n\r\n// Query params\r\n\r\n```json\r\n{\r\n  \"device_id\": \"string\"\r\n}\r\n```\r\n\r\n*Sample OUTPUT*\r\n\r\n```json\r\n{\r\n  \"message\": \"Zone List\",\r\n  \"response\": [\r\n    {\r\n      \"device_id\": \"string\",\r\n      \"id\": 0,\r\n      \"static_content_data\": {\r\n        \"additionalProp1\": {}\r\n      },\r\n      \"static_content_name\": \"string\",\r\n      \"static_content_type\": \"string\"\r\n    }\r\n  ],\r\n  \"response_code\": 201\r\n}\r\n```"
      consumes:
        - application/json
      produces:
        - application/json
      tags:
        - StaticContent
      summary: Static Content List
      parameters:
        - type: string
          description: Device ID
          name: device_id
          in: query
          required: true
      responses:
        '200':
          description: OK
          schema:
            allOf:
              - $ref: '#/definitions/model.HTTPRespArray'
              - type: object
                properties:
                  response:
                    type: array
                    items:
                      $ref: '#/definitions/device.staticContentResp'
        '400':
          description: Bad Request
          schema:
            allOf:
              - $ref: '#/definitions/model.HTTPError'
              - type: object
                properties:
                  response: {}
        '500':
          description: Internal Server Error
          schema:
            allOf:
              - $ref: '#/definitions/model.HTTPError'
              - type: object
                properties:
                  response: {}
  /device/static/update:
    patch:
      security:
        - OAuth2Password: []
      description: "### Static Update API\r\n\r\n*Sample INPUT*\r\n\r\n```json\r\n{\r\n  \"device_id\": \"string\",\r\n  \"id\": 0,\r\n  \"static_content_data\": {\r\n    \"additionalProp1\": {}\r\n  },\r\n  \"static_content_name\": \"string\",\r\n  \"static_content_type\": \"string\"\r\n}\r\n```\r\n\r\n*Sample OUTPUT*\r\n\r\n```json\r\n{\r\n    \"message\": \"Zone updated\",\r\n    \"response\": null,\r\n    \"response_code\": 201\r\n}\r\n```"
      consumes:
        - application/json
      produces:
        - application/json
      tags:
        - StaticContent
      summary: Static Content Update
      parameters:
        - description: Static Content Payload
          name: payload
          in: body
          required: true
          schema:
            $ref: '#/definitions/device.staticContentUpdateReq'
      responses:
        '200':
          description: OK
          schema:
            allOf:
              - $ref: '#/definitions/model.HTTPResp'
              - type: object
                properties:
                  response: {}
        '400':
          description: Bad Request
          schema:
            allOf:
              - $ref: '#/definitions/model.HTTPError'
              - type: object
                properties:
                  response: {}
        '500':
          description: Internal Server Error
          schema:
            allOf:
              - $ref: '#/definitions/model.HTTPError'
              - type: object
                properties:
                  response: {}
  /device/update:
    patch:
      security:
        - OAuth2Password: []
      description: "### Device Update API\r\n\r\n*Sample INPUT*\r\n\r\n```json\r\n{\r\n  \"device_id\": \"string\",\r\n  \"device_identifier\": \"string\",\r\n  \"device_name\": \"string\",\r\n  \"device_source\": [\r\n    {\r\n      \"source_address\": \"string\",\r\n      \"source_channels\": [\r\n        {\r\n          \"channel_favorite\": true,\r\n          \"channel_id\": \"string\",\r\n          \"channel_key\": \"string\",\r\n          \"channel_name\": \"string\",\r\n          \"channel_sid\": \"string\",\r\n          \"channel_threshold_duration\": 0,\r\n          \"is_active\": true,\r\n          \"is_storage\": true,\r\n          \"is_verified\": true,\r\n          \"nimble_id\": \"string\",\r\n          \"pipeline_id\": \"string\",\r\n          \"source_id\": \"string\",\r\n          \"usecase_icon\": \"string\",\r\n          \"usecase_id\": \"string\",\r\n          \"usecase_key\": \"string\",\r\n          \"usecase_meta_key\": [\r\n            \"string\"\r\n          ],\r\n          \"usecase_name\": \"string\"\r\n        }\r\n      ],\r\n      \"source_fps\": 0,\r\n      \"source_id\": \"string\",\r\n      \"source_name\": \"string\",\r\n      \"source_sid\": 0,\r\n      \"source_type\": \"string\"\r\n    }\r\n  ],\r\n  \"device_state\": true,\r\n  \"device_status\": \"string\",\r\n  \"device_streams\": [\r\n    {\r\n      \"address\": \"string\",\r\n      \"fps\": {\r\n        \"input\": 0\r\n      },\r\n      \"id\": 0,\r\n      \"password\": \"string\",\r\n      \"port\": 0,\r\n      \"protocol\": \"string\",\r\n      \"resolution\": {\r\n        \"height\": 0,\r\n        \"width\": 0\r\n      },\r\n      \"type\": \"string\",\r\n      \"username\": \"string\",\r\n      \"uuid\": \"string\"\r\n    }\r\n  ],\r\n  \"device_tags\": {\r\n    \"additionalProp1\": \"string\",\r\n    \"additionalProp2\": \"string\",\r\n    \"additionalProp3\": \"string\"\r\n  },\r\n  \"device_type\": \"string\",\r\n  \"device_uuid\": \"string\",\r\n  \"device_value\": \"string\",\r\n  \"site_id\": \"string\",\r\n  \"source_channels\": [\r\n    {\r\n      \"channel_favorite\": true,\r\n      \"channel_id\": \"string\",\r\n      \"channel_key\": \"string\",\r\n      \"channel_name\": \"string\",\r\n      \"channel_sid\": \"string\",\r\n      \"channel_threshold_duration\": 0,\r\n      \"is_active\": true,\r\n      \"is_storage\": true,\r\n      \"is_verified\": true,\r\n      \"nimble_id\": \"string\",\r\n      \"pipeline_id\": \"string\",\r\n      \"source_id\": \"string\",\r\n      \"usecase_icon\": \"string\",\r\n      \"usecase_id\": \"string\",\r\n      \"usecase_key\": \"string\",\r\n      \"usecase_meta_key\": [\r\n        \"string\"\r\n      ],\r\n      \"usecase_name\": \"string\"\r\n    }\r\n  ]\r\n}\r\n```\r\n\r\n*Sample OUTPUT*\r\n\r\n```json\r\n{\r\n\"message\": \"Device Updated\",\r\n\"response\": null,\r\n\"response_code\": 200\r\n}\r\n```"
      consumes:
        - application/json
      produces:
        - application/json
      tags:
        - Device
      summary: Device Update
      parameters:
        - description: Device Update Payload
          name: payload
          in: body
          required: true
          schema:
            $ref: '#/definitions/device.deviceUpdateReq'
      responses:
        '200':
          description: OK
          schema:
            allOf:
              - $ref: '#/definitions/model.HTTPResp'
              - type: object
                properties:
                  response: {}
        '400':
          description: Bad Request
          schema:
            allOf:
              - $ref: '#/definitions/model.HTTPError'
              - type: object
                properties:
                  response: {}
        '500':
          description: Internal Server Error
          schema:
            allOf:
              - $ref: '#/definitions/model.HTTPError'
              - type: object
                properties:
                  response: {}
  /device/view:
    get:
      security:
        - OAuth2Password: []
      description: "### Device View API\r\n\r\n*Sample INPUT*\r\n\r\n// Query params\r\n\r\n```json\r\n{\r\n  \"device_id\": \"string\"\r\n}\r\n```\r\n\r\n*Sample OUTPUT*\r\n\r\n```json\r\n{\r\n  \"message\": \"Device view\",\r\n  \"response\": {\r\n    \"site_id\": \"string\",\r\n    \"device_uuid\": \"string\",\r\n    \"device_name\": \"string\",\r\n    \"device_type\": \"string\",\r\n    \"device_identifier\": \"string\",\r\n    \"device_tags\": {\r\n      \"tag\": \"string\",\r\n      \"device_streams\": [\r\n        {\r\n          \"id\": \"string\",\r\n          \"uuid\": \"string\",\r\n          \"fps\": {\r\n            \"input\": \"string\"\r\n          },\r\n          \"type\": \"string\",\r\n          \"protocol\": \"string\",\r\n          \"address\": \"string\",\r\n          \"port\": \"string\",\r\n          \"username\": \"string\",\r\n          \"password\": \"string\",\r\n          \"resolution\": {\r\n            \"width\": 0,\r\n            \"height\": 0\r\n          }\r\n        }\r\n      ]\r\n    }\r\n  },\r\n  \"response_code\": 200\r\n}\r\n\r\n```"
      consumes:
        - application/json
      produces:
        - application/json
      tags:
        - Device
      summary: Device List
      parameters:
        - type: string
          description: Device ID
          name: device_id
          in: query
          required: true
      responses:
        '200':
          description: OK
          schema:
            allOf:
              - $ref: '#/definitions/model.HTTPResp'
              - type: object
                properties:
                  response:
                    allOf:
                      - $ref: '#/definitions/device.deviceResp'
                      - type: object
                        properties:
                          device_sources:
                            type: array
                            items:
                              $ref: '#/definitions/device.sourceResp'
                          source_channels:
                            type: array
                            items:
                              $ref: '#/definitions/device.channelResp'
        '400':
          description: Bad Request
          schema:
            allOf:
              - $ref: '#/definitions/model.HTTPError'
              - type: object
                properties:
                  response: {}
        '500':
          description: Internal Server Error
          schema:
            allOf:
              - $ref: '#/definitions/model.HTTPError'
              - type: object
                properties:
                  response: {}
  /generic/asset:
    get:
      security:
        - OAuth2Password: []
      description: '### Takes in a file as part of a multipart form and stores the file'
      consumes:
        - application/json
      produces:
        - application/json
      tags:
        - Generic
      summary: Asset Upload Image
      parameters:
        - type: string
          description: Path
          name: path
          in: query
          required: true
      responses:
        '200':
          description: OK
          schema:
            allOf:
              - $ref: '#/definitions/model.HTTPResp'
              - type: object
                properties:
                  response: {}
        '400':
          description: Bad Request
          schema:
            allOf:
              - $ref: '#/definitions/model.HTTPError'
              - type: object
                properties:
                  response: {}
        '500':
          description: Internal Server Error
          schema:
            allOf:
              - $ref: '#/definitions/model.HTTPError'
              - type: object
                properties:
                  response: {}
  /generic/asset/secure:
    get:
      security:
        - OAuth2Password: []
      description: '### Takes in a file as part of a multipart form and stores the file'
      consumes:
        - application/json
      produces:
        - application/json
      tags:
        - Generic
      summary: Get Secure Image
      parameters:
        - type: string
          description: Asset Path
          name: path
          in: query
          required: true
        - type: string
          description: Asset Type
          name: type
          in: query
          required: true
      responses:
        '200':
          description: OK
          schema:
            allOf:
              - $ref: '#/definitions/model.HTTPResp'
              - type: object
                properties:
                  response: {}
        '400':
          description: Bad Request
          schema:
            allOf:
              - $ref: '#/definitions/model.HTTPError'
              - type: object
                properties:
                  response: {}
        '500':
          description: Internal Server Error
          schema:
            allOf:
              - $ref: '#/definitions/model.HTTPError'
              - type: object
                properties:
                  response: {}
  /generic/upload:
    post:
      security:
        - OAuth2Password: []
      description: '### Takes in a file as part of a multipart form and stores the file'
      consumes:
        - application/json
      produces:
        - application/json
      tags:
        - Generic
      summary: Upload Image
      parameters:
        - description: Accepts .jpg
          name: image
          in: body
          required: true
          schema:
            type: string
        - description: RefKey
          name: ref_key
          in: body
          required: true
          schema:
            type: string
        - description: RefValue
          name: ref_value
          in: body
          required: true
          schema:
            type: string
      responses:
        '200':
          description: OK
          schema:
            allOf:
              - $ref: '#/definitions/model.HTTPResp'
              - type: object
                properties:
                  response: {}
        '400':
          description: Bad Request
          schema:
            allOf:
              - $ref: '#/definitions/model.HTTPError'
              - type: object
                properties:
                  response: {}
        '500':
          description: Internal Server Error
          schema:
            allOf:
              - $ref: '#/definitions/model.HTTPError'
              - type: object
                properties:
                  response: {}
  /login:
    post:
      description: User Auth with return Access token
      consumes:
        - application/json
      produces:
        - application/json
      tags:
        - User
      summary: User Auth
      parameters:
        - description: User Auth Payload
          name: payload
          in: body
          required: true
          schema:
            $ref: '#/definitions/auth.userAuthReq'
      responses:
        '200':
          description: OK
          schema:
            $ref: '#/definitions/model.HTTPResp'
          headers:
            Token:
              type: string
              description: qwerty
        '400':
          description: Bad Request
          schema:
            $ref: '#/definitions/model.HTTPError'
        '404':
          description: Not Found
          schema:
            $ref: '#/definitions/model.HTTPError'
        '500':
          description: Internal Server Error
          schema:
            $ref: '#/definitions/model.HTTPError'
  /nimble/config:
    get:
      security:
        - OAuth2Password: []
      description: "### Nimble Conf Get API\r\n\r\n*Sample OUTPUT*\r\n\r\n```json\r\n{\r\n  \"message\": \"string\",\r\n  \"response\": {},\r\n  \"response_code\": 0\r\n}\r\n```"
      consumes:
        - application/json
      produces:
        - application/json
      tags:
        - Setting
      summary: Nimble Configuration Status
      responses:
        '200':
          description: OK
          schema:
            allOf:
              - $ref: '#/definitions/model.HTTPResp'
              - type: object
                properties:
                  response: {}
        '400':
          description: Bad Request
          schema:
            allOf:
              - $ref: '#/definitions/model.HTTPError'
              - type: object
                properties:
                  response: {}
        '500':
          description: Internal Server Error
          schema:
            allOf:
              - $ref: '#/definitions/model.HTTPError'
              - type: object
                properties:
                  response: {}
    post:
      security:
        - OAuth2Password: []
      description: "### Nimble Conf Update API\r\n\r\n*Sample INPUT*\r\n\r\n```json\r\n{\r\n  \"nimble_host\": \"string\",\r\n  \"site_key\": \"string\"\r\n}\r\n```\r\n\r\n*Sample OUTPUT*\r\n\r\n```json\r\n{\r\n  \"message\": \"string\",\r\n  \"response\": {},\r\n  \"response_code\": 0\r\n}\r\n```"
      consumes:
        - application/json
      produces:
        - application/json
      tags:
        - Setting
      summary: Nimble Configuration Update
      parameters:
        - description: Nimble Config Set Payload
          name: payload
          in: body
          required: true
          schema:
            $ref: '#/definitions/nimble.nimbleConfReq'
      responses:
        '200':
          description: OK
          schema:
            allOf:
              - $ref: '#/definitions/model.HTTPResp'
              - type: object
                properties:
                  response: {}
        '400':
          description: Bad Request
          schema:
            allOf:
              - $ref: '#/definitions/model.HTTPError'
              - type: object
                properties:
                  response: {}
        '500':
          description: Internal Server Error
          schema:
            allOf:
              - $ref: '#/definitions/model.HTTPError'
              - type: object
                properties:
                  response: {}
  /nimble/list:
    get:
      security:
        - OAuth2Password: []
      description: "### Nimble List API\r\n\r\n\r\n*Sample OUTPUT*\r\n\r\n```json\r\n{\r\n  \"message\": \"string\",\r\n  \"response\": [\r\n    {\r\n      \"nimble_address\": \"string\",\r\n      \"nimble_api_version\": \"string\",\r\n      \"nimble_created_at\": \"string\",\r\n      \"nimble_hash\": \"string\",\r\n      \"nimble_host_name\": \"string\",\r\n      \"nimble_id\": \"string\",\r\n      \"nimble_is_active\": true,\r\n      \"nimble_is_secure\": true,\r\n      \"nimble_is_statistics\": true,\r\n      \"nimble_name\": \"string\",\r\n      \"nimble_port\": 0,\r\n      \"nimble_routes\": {\r\n        \"additionalProp1\": {}\r\n      },\r\n      \"nimble_status\": 0,\r\n      \"nimble_updated_at\": \"string\",\r\n      \"nimble_version\": \"string\",\r\n      \"site_id\": \"string\",\r\n      \"site_key\": \"string\"\r\n    }\r\n  ],\r\n  \"response_code\": 0\r\n}\r\n```"
      produces:
        - application/json
      tags:
        - Setting
      summary: List Nimble Configuration
      parameters:
        - type: boolean
          description: Site ID
          name: site_ids
          in: query
          required: true
      responses:
        '200':
          description: OK
          schema:
            allOf:
              - $ref: '#/definitions/model.HTTPRespArray'
              - type: object
                properties:
                  response:
                    type: array
                    items:
                      $ref: '#/definitions/nimble.nimbleResp'
        '400':
          description: Bad Request
          schema:
            allOf:
              - $ref: '#/definitions/model.HTTPError'
              - type: object
                properties:
                  response: {}
        '500':
          description: Internal Server Error
          schema:
            allOf:
              - $ref: '#/definitions/model.HTTPError'
              - type: object
                properties:
                  response: {}
  /nimble/stats:
    get:
      security:
        - OAuth2Password: []
      description: "### Nimble Stats API\r\n\r\n\r\n*Sample OUTPUT*\r\n\r\n```json\r\n{\r\n  \"message\": \"string\",\r\n  \"response\": {\r\n    \"nimble_id\": \"string\",\r\n    \"nimble_stats\": [\r\n      {\r\n        \"cpu\": 0,\r\n        \"mem_physical\": 0,\r\n        \"mem_virtual\": 0,\r\n        \"time\": \"string\"\r\n      }\r\n    ],\r\n    \"nimble_uptime\": 0\r\n  },\r\n  \"response_code\": 0\r\n}\r\n```"
      produces:
        - application/json
      tags:
        - Setting
      summary: Nimble Stats
      parameters:
        - type: boolean
          description: Nimble ID
          name: nimble_id
          in: query
          required: true
      responses:
        '200':
          description: OK
          schema:
            allOf:
              - $ref: '#/definitions/model.HTTPResp'
              - type: object
                properties:
                  response:
                    allOf:
                      - $ref: '#/definitions/nimble.nimbleStatsResp'
                      - type: object
                        properties:
                          nimble_stats:
                            type: array
                            items:
                              $ref: '#/definitions/nimble.nimbleStats'
        '400':
          description: Bad Request
          schema:
            allOf:
              - $ref: '#/definitions/model.HTTPError'
              - type: object
                properties:
                  response: {}
        '500':
          description: Internal Server Error
          schema:
            allOf:
              - $ref: '#/definitions/model.HTTPError'
              - type: object
                properties:
                  response: {}
  /organization/create:
    put:
      security:
        - OAuth2Password: []
      description: "### Organization Create API\r\n\r\n*Sample INPUT*\r\n\r\n```json\r\n{\r\n  \"organization_address\": {\r\n    \"organization_area\": \"string\",\r\n    \"organization_city\": \"string\",\r\n    \"organization_country\": \"string\",\r\n    \"organization_geolocation\": {\r\n      \"lat\": 0,\r\n      \"long\": 0\r\n    },\r\n    \"organization_state\": \"string\",\r\n    \"organization_street\": \"string\",\r\n    \"organization_unit\": \"string\",\r\n    \"organization_zip\": \"string\"\r\n  },\r\n  \"organization_description\": \"string\",\r\n  \"organization_icon\": \"string\",\r\n  \"organization_id\": \"string\",\r\n  \"organization_key\": \"string\",\r\n  \"organization_name\": \"string\",\r\n  \"organization_website\": \"string\"\r\n}\r\n```\r\n\r\n*Sample OUTPUT*\r\n\r\n```json\r\n{\r\n  \"message\": \"Organization created\",\r\n  \"response\": null,\r\n  \"response_code\": 200\r\n}\r\n```"
      consumes:
        - application/json
      produces:
        - application/json
      tags:
        - Organization
      summary: Organization Create
      parameters:
        - description: Organization Create Payload
          name: payload
          in: body
          required: true
          schema:
            $ref: '#/definitions/organization.organizationCreateReq'
      responses:
        '200':
          description: OK
          schema:
            allOf:
              - $ref: '#/definitions/model.HTTPResp'
              - type: object
                properties:
                  response: {}
        '400':
          description: Bad Request
          schema:
            allOf:
              - $ref: '#/definitions/model.HTTPError'
              - type: object
                properties:
                  response: {}
        '500':
          description: Internal Server Error
          schema:
            allOf:
              - $ref: '#/definitions/model.HTTPError'
              - type: object
                properties:
                  response: {}
  /organization/delete:
    delete:
      security:
        - OAuth2Password: []
      description: "### Organization Delete API\r\n\r\n*Sample INPUT*\r\n\r\n```json\r\n{\r\n  \"organization_id\": \"string\"\r\n}\r\n```\r\n\r\n*Sample OUTPUT*\r\n\r\n```json\r\n{\r\n  \"message\": \"Organization Deleted\",\r\n  \"response\": null,\r\n  \"response_code\": 200\r\n}\r\n```"
      consumes:
        - application/json
      produces:
        - application/json
      tags:
        - Organization
      summary: Organization Delete
      parameters:
        - description: Organization Delete Payload
          name: payload
          in: body
          required: true
          schema:
            $ref: '#/definitions/organization.organizationIDReq'
      responses:
        '200':
          description: OK
          schema:
            allOf:
              - $ref: '#/definitions/model.HTTPResp'
              - type: object
                properties:
                  response: {}
        '400':
          description: Bad Request
          schema:
            allOf:
              - $ref: '#/definitions/model.HTTPError'
              - type: object
                properties:
                  response: {}
        '500':
          description: Internal Server Error
          schema:
            allOf:
              - $ref: '#/definitions/model.HTTPError'
              - type: object
                properties:
                  response: {}
  /organization/id:
    get:
      security:
        - OAuth2Password: []
      description: "### Organization ID API\r\n\r\n*Sample INPUT*\r\n\r\n// Query params\r\n\r\n```json\r\n{\r\n  \"organization_id\": \"string\"\r\n}\r\n```\r\n\r\n*Sample OUTPUT*\r\n\r\n```json\r\n{\r\n  \"message\": \"Organization ID\",\r\n  \"response\": [\r\n    {\r\n      \"organization_address\": {\r\n        \"organization_area\": \"string\",\r\n        \"organization_city\": \"string\",\r\n        \"organization_country\": \"string\",\r\n        \"organization_geolocation\": {\r\n          \"lat\": 0,\r\n          \"long\": 0\r\n        },\r\n        \"organization_state\": \"string\",\r\n        \"organization_street\": \"string\",\r\n        \"organization_unit\": \"string\",\r\n        \"organization_zip\": \"string\"\r\n      },\r\n      \"organization_description\": \"string\",\r\n      \"organization_icon\": \"string\",\r\n      \"organization_id\": \"string\",\r\n      \"organization_key\": \"string\",\r\n      \"organization_name\": \"string\",\r\n      \"organization_website\": \"string\"\r\n    }\r\n  ],\r\n  \"response_code\": 200\r\n}\r\n```"
      consumes:
        - application/json
      produces:
        - application/json
      tags:
        - Organization
      summary: Organization ID
      parameters:
        - type: string
          description: Organization ID
          name: organization_id
          in: query
          required: true
      responses:
        '200':
          description: OK
          schema:
            allOf:
              - $ref: '#/definitions/model.HTTPResp'
              - type: object
                properties:
                  response:
                    allOf:
                      - $ref: '#/definitions/organization.organizationResp'
                      - type: object
                        properties:
                          organization_address:
                            allOf:
                              - $ref: '#/definitions/organization.organizationAddress'
                              - type: object
                                properties:
                                  organization_geolocation:
                                    $ref: '#/definitions/organization.geoLocation'
        '400':
          description: Bad Request
          schema:
            allOf:
              - $ref: '#/definitions/model.HTTPError'
              - type: object
                properties:
                  response: {}
        '500':
          description: Internal Server Error
          schema:
            allOf:
              - $ref: '#/definitions/model.HTTPError'
              - type: object
                properties:
                  response: {}
  /organization/list:
    get:
      security:
        - OAuth2Password: []
      description: "### Organization List API\r\n\r\n\r\n*Sample OUTPUT*\r\n\r\n```json\r\n{\r\n  \"message\": \"string\",\r\n  \"response\": [\r\n    {\r\n      \"organization_address\": {\r\n        \"organization_area\": \"string\",\r\n        \"organization_city\": \"string\",\r\n        \"organization_country\": \"string\",\r\n        \"organization_geolocation\": {\r\n          \"lat\": 0,\r\n          \"long\": 0\r\n        },\r\n        \"organization_state\": \"string\",\r\n        \"organization_street\": \"string\",\r\n        \"organization_unit\": \"string\",\r\n        \"organization_zip\": \"string\"\r\n      },\r\n      \"organization_description\": \"string\",\r\n      \"organization_icon\": \"string\",\r\n      \"organization_id\": \"string\",\r\n      \"organization_key\": \"string\",\r\n      \"organization_name\": \"string\",\r\n      \"organization_website\": \"string\"\r\n    }\r\n  ],\r\n  \"response_code\": 0\r\n}\r\n```"
      consumes:
        - application/json
      produces:
        - application/json
      tags:
        - Organization
      summary: Organization List
      responses:
        '200':
          description: OK
          schema:
            allOf:
              - $ref: '#/definitions/model.HTTPRespArray'
              - type: object
                properties:
                  response:
                    type: array
                    items:
                      allOf:
                        - $ref: '#/definitions/organization.organizationResp'
                        - type: object
                          properties:
                            organization_address:
                              allOf:
                                - $ref: >-
                                    #/definitions/organization.organizationAddress
                                - type: object
                                  properties:
                                    organization_geolocation:
                                      $ref: '#/definitions/organization.geoLocation'
        '400':
          description: Bad Request
          schema:
            allOf:
              - $ref: '#/definitions/model.HTTPError'
              - type: object
                properties:
                  response: {}
        '500':
          description: Internal Server Error
          schema:
            allOf:
              - $ref: '#/definitions/model.HTTPError'
              - type: object
                properties:
                  response: {}
  /organization/update:
    patch:
      security:
        - OAuth2Password: []
      description: "### Organization Update API\r\n\r\n*Sample INPUT*\r\n\r\n```json\r\n{\r\n  \"organization_address\": {\r\n    \"organization_area\": \"string\",\r\n    \"organization_city\": \"string\",\r\n    \"organization_country\": \"string\",\r\n    \"organization_geolocation\": {\r\n      \"lat\": 0,\r\n      \"long\": 0\r\n    },\r\n    \"organization_state\": \"string\",\r\n    \"organization_street\": \"string\",\r\n    \"organization_unit\": \"string\",\r\n    \"organization_zip\": \"string\"\r\n  },\r\n  \"organization_description\": \"string\",\r\n  \"organization_icon\": \"string\",\r\n  \"organization_id\": \"string\",\r\n  \"organization_key\": \"string\",\r\n  \"organization_name\": \"string\",\r\n  \"organization_website\": \"string\"\r\n}\r\n```\r\n\r\n*Sample OUTPUT*\r\n\r\n```json\r\n{\r\n  \"message\": \"Organization updated\",\r\n  \"response\": null,\r\n  \"response_code\": 200\r\n}\r\n```"
      consumes:
        - application/json
      produces:
        - application/json
      tags:
        - Organization
      summary: Organization Update
      parameters:
        - description: Organization Update Payload
          name: payload
          in: body
          required: true
          schema:
            $ref: '#/definitions/organization.organizationUpdateReq'
      responses:
        '200':
          description: OK
          schema:
            allOf:
              - $ref: '#/definitions/model.HTTPResp'
              - type: object
                properties:
                  response: {}
        '400':
          description: Bad Request
          schema:
            allOf:
              - $ref: '#/definitions/model.HTTPError'
              - type: object
                properties:
                  response: {}
        '500':
          description: Internal Server Error
          schema:
            allOf:
              - $ref: '#/definitions/model.HTTPError'
              - type: object
                properties:
                  response: {}
  /pipeline/create:
    post:
      security:
        - OAuth2Password: []
      description: "### Pipeline Create API\r\n\r\n*Sample INPUT*\r\n\r\n```json\r\n{\r\n  \"nimble_id\": \"string\",\r\n  \"pipeline_elements\": [\r\n    {}\r\n  ],\r\n  \"pipeline_name\": \"string\",\r\n  \"pipeline_source\": [\r\n    0\r\n  ],\r\n  \"pipeline_usecase\": \"string\"\r\n}\r\n```\r\n\r\n*Sample OUTPUT*\r\n\r\n```json\r\n{\r\n  \"message\": \"Pipeline created\",\r\n  \"response\": null,\r\n  \"response_code\": 201\r\n}\r\n```"
      consumes:
        - application/json
      produces:
        - application/json
      tags:
        - Pipeline
      summary: Pipeline Create
      parameters:
        - description: Pipeline Create Payload
          name: payload
          in: body
          required: true
          schema:
            $ref: '#/definitions/pipeline.pipelineCreateReq'
      responses:
        '200':
          description: OK
          schema:
            allOf:
              - $ref: '#/definitions/model.HTTPResp'
              - type: object
                properties:
                  response: {}
        '400':
          description: Bad Request
          schema:
            allOf:
              - $ref: '#/definitions/model.HTTPError'
              - type: object
                properties:
                  response: {}
        '500':
          description: Internal Server Error
          schema:
            allOf:
              - $ref: '#/definitions/model.HTTPError'
              - type: object
                properties:
                  response: {}
  /pipeline/defaults:
    get:
      security:
        - OAuth2Password: []
      description: "### Pipeline Defaults API\r\n\r\n*Sample INPUT*\r\n\r\n// Query params\r\n```json\r\n{\r\n  \"usecase_key\": \"string\"\r\n}\r\n```\r\n\r\n*Sample OUTPUT*\r\n\r\n```json\r\n{\r\n  \"message\": \"Default Pipeline Elements\",\r\n  \"response\": {\r\n    \"default_data\": {\r\n      \"additionalProp1\": {}\r\n    }\r\n  },\r\n  \"response_code\": 200\r\n}\r\n```"
      produces:
        - application/json
      tags:
        - Pipeline
      summary: Default Pipeline Element Information
      parameters:
        - type: string
          description: UseCase Key
          name: usecase_key
          in: query
          required: true
      responses:
        '200':
          description: OK
          schema:
            allOf:
              - $ref: '#/definitions/model.HTTPResp'
              - type: object
                properties:
                  response:
                    $ref: '#/definitions/pipeline.pipelineDefaultsResp'
        '400':
          description: Bad Request
          schema:
            allOf:
              - $ref: '#/definitions/model.HTTPError'
              - type: object
                properties:
                  response: {}
        '500':
          description: Internal Server Error
          schema:
            allOf:
              - $ref: '#/definitions/model.HTTPError'
              - type: object
                properties:
                  response: {}
  /pipeline/delete:
    delete:
      security:
        - OAuth2Password: []
      description: "### Pipeline Delete API\r\n\r\n*Sample INPUT*\r\n\r\n```json\r\n{\r\n  \"pipeline_id\": \"string\"\r\n}\r\n```\r\n\r\n*Sample OUTPUT*\r\n\r\n```json\r\n{\r\n  \"message\": \"Pipeline deleted\",\r\n  \"response\": null,\r\n  \"response_code\": 200\r\n}\r\n```"
      consumes:
        - application/json
      produces:
        - application/json
      tags:
        - Pipeline
      summary: Pipeline Delete
      parameters:
        - description: Pipeline Delete Payload
          name: payload
          in: body
          required: true
          schema:
            $ref: '#/definitions/pipeline.pipelineIDReq'
      responses:
        '200':
          description: OK
          schema:
            allOf:
              - $ref: '#/definitions/model.HTTPResp'
              - type: object
                properties:
                  response: {}
        '400':
          description: Bad Request
          schema:
            allOf:
              - $ref: '#/definitions/model.HTTPError'
              - type: object
                properties:
                  response: {}
        '500':
          description: Internal Server Error
          schema:
            allOf:
              - $ref: '#/definitions/model.HTTPError'
              - type: object
                properties:
                  response: {}
  /pipeline/id:
    get:
      security:
        - OAuth2Password: []
      description: "### Pipeline ID API\r\n\r\n*Sample INPUT*\r\n\r\n// Query params\r\n```json\r\n{\r\n  \"pipeline_id\": \"string\"\r\n}\r\n```\r\n\r\n*Sample OUTPUT*\r\n\r\n```json\r\n{\r\n  \"message\": \"Pipeline ID\",\r\n  \"response\": {\r\n    \"nimble_id\": \"string\",\r\n    \"pipeline_elements\": [\r\n      {}\r\n    ],\r\n    \"pipeline_id\": \"string\",\r\n    \"pipeline_name\": \"string\",\r\n    \"pipeline_source\": [\r\n      0\r\n    ],\r\n    \"pipeline_usecase\": \"string\"\r\n  },\r\n  \"response_code\": 200\r\n}\r\n```"
      consumes:
        - application/json
      produces:
        - application/json
      tags:
        - Pipeline
      summary: Pipeline ID
      parameters:
        - type: string
          description: Pipeline ID
          name: pipeline_id
          in: query
          required: true
      responses:
        '200':
          description: OK
          schema:
            allOf:
              - $ref: '#/definitions/model.HTTPResp'
              - type: object
                properties:
                  response:
                    $ref: '#/definitions/pipeline.pipelineResp'
        '400':
          description: Bad Request
          schema:
            allOf:
              - $ref: '#/definitions/model.HTTPError'
              - type: object
                properties:
                  response: {}
        '500':
          description: Internal Server Error
          schema:
            allOf:
              - $ref: '#/definitions/model.HTTPError'
              - type: object
                properties:
                  response: {}
  /pipeline/info:
    get:
      security:
        - OAuth2Password: []
      description: "### Pipeline Info API\r\n\r\n\r\n*Sample OUTPUT*\r\n\r\n```json\r\n{\r\n  \"message\": \"Pipeline Info\",\r\n  \"response\": {},\r\n  \"response_code\": 200\r\n}\r\n```"
      consumes:
        - application/json
      produces:
        - application/json
      tags:
        - Pipeline
      summary: Pipeline Element Information
      responses:
        '200':
          description: OK
          schema:
            allOf:
              - $ref: '#/definitions/model.HTTPResp'
              - type: object
                properties:
                  response: {}
        '400':
          description: Bad Request
          schema:
            allOf:
              - $ref: '#/definitions/model.HTTPError'
              - type: object
                properties:
                  response: {}
        '500':
          description: Internal Server Error
          schema:
            allOf:
              - $ref: '#/definitions/model.HTTPError'
              - type: object
                properties:
                  response: {}
  /pipeline/list:
    get:
      security:
        - OAuth2Password: []
      description: "### Pipeline List API\r\n\r\n*Sample OUTPUT*\r\n\r\n```json\r\n{\r\n  \"message\": \"Pipeline List\",\r\n  \"response\": [\r\n    {\r\n      \"nimble_id\": \"string\",\r\n      \"pipeline_elements\": [\r\n        {}\r\n      ],\r\n      \"pipeline_id\": \"string\",\r\n      \"pipeline_name\": \"string\",\r\n      \"pipeline_source\": [\r\n        0\r\n      ],\r\n      \"pipeline_usecase\": \"string\"\r\n    }\r\n  ],\r\n  \"response_code\": 200\r\n}\r\n```"
      consumes:
        - application/json
      produces:
        - application/json
      tags:
        - Pipeline
      summary: Pipeline List
      responses:
        '200':
          description: OK
          schema:
            allOf:
              - $ref: '#/definitions/model.HTTPRespArray'
              - type: object
                properties:
                  response:
                    type: array
                    items:
                      $ref: '#/definitions/pipeline.pipelineResp'
        '400':
          description: Bad Request
          schema:
            allOf:
              - $ref: '#/definitions/model.HTTPError'
              - type: object
                properties:
                  response: {}
        '500':
          description: Internal Server Error
          schema:
            allOf:
              - $ref: '#/definitions/model.HTTPError'
              - type: object
                properties:
                  response: {}
  /pipeline/update:
    patch:
      security:
        - OAuth2Password: []
      description: "### Pipeline Update API\r\n\r\n*Sample INPUT*\r\n\r\n```json\r\n{\r\n  \"nimble_id\": \"string\",\r\n  \"pipeline_elements\": [\r\n    {}\r\n  ],\r\n  \"pipeline_name\": \"string\",\r\n  \"pipeline_source\": [\r\n    0\r\n  ],\r\n  \"pipeline_usecase\": \"string\"\r\n}\r\n```\r\n\r\n*Sample OUTPUT*\r\n\r\n```json\r\n{\r\n  \"message\": \"Pipeline updated\",\r\n  \"response\": null,\r\n  \"response_code\": 200\r\n}\r\n```"
      consumes:
        - application/json
      produces:
        - application/json
      tags:
        - Pipeline
      summary: Pipeline Update
      parameters:
        - description: Pipeline Update Payload
          name: payload
          in: body
          required: true
          schema:
            $ref: '#/definitions/pipeline.pipelineCreateReq'
      responses:
        '200':
          description: OK
          schema:
            $ref: '#/definitions/model.HTTPResp'
        '400':
          description: Bad Request
          schema:
            allOf:
              - $ref: '#/definitions/model.HTTPError'
              - type: object
                properties:
                  response: {}
        '500':
          description: Internal Server Error
          schema:
            allOf:
              - $ref: '#/definitions/model.HTTPError'
              - type: object
                properties:
                  response: {}
  /role/list:
    post:
      security:
        - OAuth2Password: []
      description: "### Role List\r\n\r\n*Sample OUTPUT*\r\n\r\n```json\r\n{\r\n  \"message\": \"Roles List\",\r\n  \"response\": [\r\n    {\r\n      \"role_id\": \"string\",\r\n      \"role_key\": \"string\",\r\n      \"role_name\": \"string\"\r\n    }\r\n  ],\r\n  \"response_code\": 200\r\n}\r\n```"
      consumes:
        - application/json
      produces:
        - application/json
      tags:
        - Role
      summary: Role List
      responses:
        '200':
          description: OK
          schema:
            allOf:
              - $ref: '#/definitions/model.HTTPRespArray'
              - type: object
                properties:
                  response:
                    type: array
                    items:
                      $ref: '#/definitions/role.roleListResp'
        '400':
          description: Bad Request
          schema:
            allOf:
              - $ref: '#/definitions/model.HTTPError'
              - type: object
                properties:
                  response: {}
        '500':
          description: Internal Server Error
          schema:
            allOf:
              - $ref: '#/definitions/model.HTTPError'
              - type: object
                properties:
                  response: {}
  /schedule/create:
    put:
      security:
        - OAuth2Password: []
      description: "### Schedule Create API\r\n\r\n*Sample INPUT*\r\n\r\n```json\r\n{\r\n  \"alert_id\": \"string\",\r\n  \"channel_id\": \"string\",\r\n  \"schedule_name\": \"string\",\r\n  \"schedule_occurrence\": [\r\n    {\r\n      \"occurrence_activate_cron\": \"string\",\r\n      \"occurrence_constraint\": \"string\",\r\n      \"occurrence_deactivate_cron\": \"string\",\r\n      \"occurrence_end_time\": \"string\",\r\n      \"occurrence_id\": 0,\r\n      \"occurrence_is_allday\": true,\r\n      \"occurrence_start_time\": \"string\"\r\n    }\r\n  ],\r\n  \"schedule_type\": \"string\"\r\n}\r\n```\r\n\r\n*Sample OUTPUT*\r\n\r\n```json\r\n{\r\n  \"message\": \"Schedule created\",\r\n  \"response\": null,\r\n  \"response_code\": 201\r\n}\r\n```"
      consumes:
        - application/json
      produces:
        - application/json
      tags:
        - Schedule
      summary: Schedule Create
      parameters:
        - description: Schedule Create Payload
          name: payload
          in: body
          required: true
          schema:
            $ref: '#/definitions/schedule.scheduleCreateReq'
      responses:
        '200':
          description: OK
          schema:
            allOf:
              - $ref: '#/definitions/model.HTTPResp'
              - type: object
                properties:
                  response: {}
        '400':
          description: Bad Request
          schema:
            allOf:
              - $ref: '#/definitions/model.HTTPError'
              - type: object
                properties:
                  response: {}
        '500':
          description: Internal Server Error
          schema:
            allOf:
              - $ref: '#/definitions/model.HTTPError'
              - type: object
                properties:
                  response: {}
  /schedule/delete:
    delete:
      security:
        - OAuth2Password: []
      description: "### Schedule Delete API\r\n\r\n*Sample INPUT*\r\n\r\n```json\r\n{\r\n  \"schedule_id\": \"string\"\r\n}\r\n```\r\n\r\n*Sample OUTPUT*\r\n\r\n```json\r\n{\r\n  \"message\": \"Schedule deleted\",\r\n  \"response\": null,\r\n  \"response_code\": 200\r\n}\r\n```"
      consumes:
        - application/json
      produces:
        - application/json
      tags:
        - Schedule
      summary: Schedule Delete
      parameters:
        - description: Schedule Delete Payload
          name: payload
          in: body
          required: true
          schema:
            $ref: '#/definitions/schedule.scheduleIDReq'
      responses:
        '200':
          description: OK
          schema:
            allOf:
              - $ref: '#/definitions/model.HTTPResp'
              - type: object
                properties:
                  response: {}
        '400':
          description: Bad Request
          schema:
            allOf:
              - $ref: '#/definitions/model.HTTPError'
              - type: object
                properties:
                  response: {}
        '500':
          description: Internal Server Error
          schema:
            allOf:
              - $ref: '#/definitions/model.HTTPError'
              - type: object
                properties:
                  response: {}
  /schedule/id:
    post:
      security:
        - OAuth2Password: []
      description: "### Schedule ID API\r\n\r\n*Sample INPUT*\r\n\r\n```json\r\n{\r\n  \"schedule_id\": \"string\"\r\n}\r\n```\r\n\r\n*Sample OUTPUT*\r\n\r\n```json\r\n{\r\n  \"message\": \"Schedule ID\",\r\n  \"response\": {\r\n    \"alert_id\": \"string\",\r\n    \"channel_id\": \"string\",\r\n    \"is_active\": true,\r\n    \"schedule_id\": \"string\",\r\n    \"schedule_name\": \"string\",\r\n    \"schedule_occurrence\": [\r\n      {\r\n        \"occurrence_activate_cron\": \"string\",\r\n        \"occurrence_constraint\": \"string\",\r\n        \"occurrence_deactivate_cron\": \"string\",\r\n        \"occurrence_end_time\": \"string\",\r\n        \"occurrence_id\": 0,\r\n        \"occurrence_is_allday\": true,\r\n        \"occurrence_start_time\": \"string\"\r\n      }\r\n    ],\r\n    \"schedule_type\": \"string\"\r\n  },\r\n  \"response_code\": 200\r\n}\r\n```"
      consumes:
        - application/json
      produces:
        - application/json
      tags:
        - Schedule
      summary: Schedule ID
      parameters:
        - description: Schedule ID Payload
          name: payload
          in: body
          required: true
          schema:
            $ref: '#/definitions/schedule.scheduleIDReq'
      responses:
        '200':
          description: OK
          schema:
            allOf:
              - $ref: '#/definitions/model.HTTPResp'
              - type: object
                properties:
                  response:
                    allOf:
                      - $ref: '#/definitions/schedule.scheduleResp'
                      - type: object
                        properties:
                          schedule_occurrence:
                            type: array
                            items:
                              $ref: '#/definitions/schedule.scheduleOccurrence'
        '400':
          description: Bad Request
          schema:
            allOf:
              - $ref: '#/definitions/model.HTTPError'
              - type: object
                properties:
                  response: {}
        '500':
          description: Internal Server Error
          schema:
            allOf:
              - $ref: '#/definitions/model.HTTPError'
              - type: object
                properties:
                  response: {}
  /schedule/list:
    post:
      security:
        - OAuth2Password: []
      description: "### Schedule List By Channel ID API\r\n\r\n*Sample INPUT*\r\n\r\n```json\r\n{\r\n  \"channel_id\": \"string\"\r\n}\r\n```\r\n\r\n*Sample OUTPUT*\r\n\r\n```json\r\n{\r\n  \"message\": \"Schedule List\",\r\n  \"response\": {\r\n    \"alert_id\": \"string\",\r\n    \"channel_id\": \"string\",\r\n    \"is_active\": true,\r\n    \"schedule_id\": \"string\",\r\n    \"schedule_name\": \"string\",\r\n    \"schedule_occurrence\": [\r\n      {\r\n        \"occurrence_activate_cron\": \"string\",\r\n        \"occurrence_constraint\": \"string\",\r\n        \"occurrence_deactivate_cron\": \"string\",\r\n        \"occurrence_end_time\": \"string\",\r\n        \"occurrence_id\": 0,\r\n        \"occurrence_is_allday\": true,\r\n        \"occurrence_start_time\": \"string\"\r\n      }\r\n    ],\r\n    \"schedule_type\": \"string\"\r\n  },\r\n  \"response_code\": 200\r\n}\r\n```"
      consumes:
        - application/json
      produces:
        - application/json
      tags:
        - Schedule
      summary: Schedule List by Channel ID
      parameters:
        - description: Schedule List Payload
          name: payload
          in: body
          required: true
          schema:
            $ref: '#/definitions/schedule.scheduleListReq'
      responses:
        '200':
          description: OK
          schema:
            allOf:
              - $ref: '#/definitions/model.HTTPResp'
              - type: object
                properties:
                  response:
                    allOf:
                      - $ref: '#/definitions/schedule.scheduleResp'
                      - type: object
                        properties:
                          schedule_occurrence:
                            type: array
                            items:
                              $ref: '#/definitions/schedule.scheduleOccurrence'
        '400':
          description: Bad Request
          schema:
            allOf:
              - $ref: '#/definitions/model.HTTPError'
              - type: object
                properties:
                  response: {}
        '500':
          description: Internal Server Error
          schema:
            allOf:
              - $ref: '#/definitions/model.HTTPError'
              - type: object
                properties:
                  response: {}
  /schedule/update:
    patch:
      security:
        - OAuth2Password: []
      description: "### Schedule Update API\r\n\r\n*Sample INPUT*\r\n\r\n```json\r\n{\r\n  \"alert_id\": \"string\",\r\n  \"channel_id\": \"string\",\r\n  \"schedule_id\": \"string\",\r\n  \"schedule_name\": \"string\",\r\n  \"schedule_occurrence\": [\r\n    {\r\n      \"occurrence_activate_cron\": \"string\",\r\n      \"occurrence_constraint\": \"string\",\r\n      \"occurrence_deactivate_cron\": \"string\",\r\n      \"occurrence_end_time\": \"string\",\r\n      \"occurrence_id\": 0,\r\n      \"occurrence_is_allday\": true,\r\n      \"occurrence_start_time\": \"string\"\r\n    }\r\n  ],\r\n  \"schedule_type\": \"string\"\r\n}\r\n```\r\n\r\n*Sample OUTPUT*\r\n\r\n```json\r\n{\r\n  \"message\": \"Schedule updated\",\r\n  \"response\": {\r\n    \"alert_id\": \"string\",\r\n    \"channel_id\": \"string\",\r\n    \"is_active\": true,\r\n    \"schedule_id\": \"string\",\r\n    \"schedule_name\": \"string\",\r\n    \"schedule_occurrence\": [\r\n      {\r\n        \"occurrence_activate_cron\": \"string\",\r\n        \"occurrence_constraint\": \"string\",\r\n        \"occurrence_deactivate_cron\": \"string\",\r\n        \"occurrence_end_time\": \"string\",\r\n        \"occurrence_id\": 0,\r\n        \"occurrence_is_allday\": true,\r\n        \"occurrence_start_time\": \"string\"\r\n      }\r\n    ],\r\n    \"schedule_type\": \"string\"\r\n  },\r\n  \"response_code\": 200\r\n}\r\n```"
      consumes:
        - application/json
      produces:
        - application/json
      tags:
        - Schedule
      summary: Schedule Update
      parameters:
        - description: Schedule Update Payload
          name: payload
          in: body
          required: true
          schema:
            $ref: '#/definitions/schedule.scheduleUpdateReq'
      responses:
        '200':
          description: OK
          schema:
            allOf:
              - $ref: '#/definitions/model.HTTPResp'
              - type: object
                properties:
                  response:
                    allOf:
                      - $ref: '#/definitions/schedule.scheduleResp'
                      - type: object
                        properties:
                          schedule_occurrence:
                            type: array
                            items:
                              $ref: '#/definitions/schedule.scheduleOccurrence'
        '400':
          description: Bad Request
          schema:
            allOf:
              - $ref: '#/definitions/model.HTTPError'
              - type: object
                properties:
                  response: {}
        '500':
          description: Internal Server Error
          schema:
            allOf:
              - $ref: '#/definitions/model.HTTPError'
              - type: object
                properties:
                  response: {}
  /site/create:
    put:
      security:
        - OAuth2Password: []
      description: "### Site Create API\r\n\r\n*Sample INPUT*\r\n\r\n```json\r\n{\r\n  \"customer_id\": \"string\",\r\n  \"organization_id\": \"string\",\r\n  \"site_address\": {\r\n    \"site_area\": \"string\",\r\n    \"site_city\": \"string\",\r\n    \"site_country\": \"string\",\r\n    \"site_geolocation\": {\r\n      \"lat\": 0,\r\n      \"long\": 0\r\n    },\r\n    \"site_state\": \"string\",\r\n    \"site_street\": \"string\",\r\n    \"site_unit\": \"string\",\r\n    \"site_zip\": \"string\"\r\n  },\r\n  \"site_description\": \"string\",\r\n  \"site_icon\": \"string\",\r\n  \"site_image\": \"string\",\r\n  \"site_key\": \"string\",\r\n  \"site_name\": \"string\",\r\n  \"site_type\": \"string\"\r\n}\r\n```\r\n\r\n*Sample OUTPUT*\r\n\r\n```json\r\n{\r\n  \"message\": \"Site Created\",\r\n  \"response\": null,\r\n  \"response_code\": 201\r\n}\r\n```\r\n"
      consumes:
        - application/json
      produces:
        - application/json
      tags:
        - Site
      summary: Site Create
      parameters:
        - description: Site Create Payload
          name: payload
          in: body
          required: true
          schema:
            $ref: '#/definitions/site.siteCreateReq'
      responses:
        '200':
          description: OK
          schema:
            allOf:
              - $ref: '#/definitions/model.HTTPResp'
              - type: object
                properties:
                  response: {}
        '400':
          description: Bad Request
          schema:
            allOf:
              - $ref: '#/definitions/model.HTTPError'
              - type: object
                properties:
                  response: {}
        '500':
          description: Internal Server Error
          schema:
            allOf:
              - $ref: '#/definitions/model.HTTPError'
              - type: object
                properties:
                  response: {}
  /site/delete:
    delete:
      security:
        - OAuth2Password: []
      description: "### Site Delete API\r\n\r\n*Sample INPUT*\r\n\r\n```json\r\n{\r\n  \"site_id\": \"string\"\r\n}\r\n```\r\n\r\n*Sample OUTPUT*\r\n\r\n```json\r\n{\r\n  \"message\": \"Site Deleted\",\r\n  \"response\": null,\r\n  \"response_code\": 200\r\n}\r\n```\r\n"
      consumes:
        - application/json
      produces:
        - application/json
      tags:
        - Site
      summary: Site Delete
      parameters:
        - description: Site Delete Payload
          name: payload
          in: body
          required: true
          schema:
            $ref: '#/definitions/site.siteDeleteReq'
      responses:
        '200':
          description: OK
          schema:
            allOf:
              - $ref: '#/definitions/model.HTTPResp'
              - type: object
                properties:
                  response: {}
        '400':
          description: Bad Request
          schema:
            allOf:
              - $ref: '#/definitions/model.HTTPError'
              - type: object
                properties:
                  response: {}
        '500':
          description: Internal Server Error
          schema:
            allOf:
              - $ref: '#/definitions/model.HTTPError'
              - type: object
                properties:
                  response: {}
  /site/id:
    get:
      security:
        - OAuth2Password: []
      description: "### Site Id API\r\n\r\n*Sample INPUT*\r\n\r\n// Query params\r\n\r\n```json\r\n{\r\n  \"site_id\": \"string\"\r\n}\r\n```\r\n\r\n*Sample OUTPUT*\r\n\r\n```json\r\n{\r\n  \"message\": \"Site ID\",\r\n  \"response\": {\r\n    \"site_address\": {\r\n      \"site_area\": \"string\",\r\n      \"site_city\": \"string\",\r\n      \"site_country\": \"string\",\r\n      \"site_geolocation\": {\r\n        \"lat\": 0,\r\n        \"long\": 0\r\n      },\r\n      \"site_state\": \"string\",\r\n      \"site_street\": \"string\",\r\n      \"site_unit\": \"string\",\r\n      \"site_zip\": \"string\"\r\n    },\r\n    \"site_description\": \"string\",\r\n    \"site_icon\": \"string\",\r\n    \"site_id\": \"string\",\r\n    \"site_image\": \"string\",\r\n    \"site_key\": \"string\",\r\n    \"site_name\": \"string\",\r\n    \"site_total_devices\": 0,\r\n    \"site_type\": \"string\"\r\n  },\r\n  \"response_code\": 200\r\n}\r\n```\r\n"
      consumes:
        - application/json
      produces:
        - application/json
      tags:
        - Site
      summary: Site ID
      parameters:
        - type: string
          description: Site ID
          name: site_id
          in: query
          required: true
      responses:
        '200':
          description: OK
          schema:
            allOf:
              - $ref: '#/definitions/model.HTTPResp'
              - type: object
                properties:
                  response:
                    allOf:
                      - $ref: '#/definitions/site.siteResp'
                      - type: object
                        properties:
                          site_address:
                            allOf:
                              - $ref: '#/definitions/site.siteAddress'
                              - type: object
                                properties:
                                  site_geolocation:
                                    $ref: '#/definitions/site.geoLocation'
        '400':
          description: Bad Request
          schema:
            allOf:
              - $ref: '#/definitions/model.HTTPError'
              - type: object
                properties:
                  response: {}
        '500':
          description: Internal Server Error
          schema:
            allOf:
              - $ref: '#/definitions/model.HTTPError'
              - type: object
                properties:
                  response: {}
  /site/list:
    get:
      security:
        - OAuth2Password: []
      description: "### Site List API\r\n\r\n*Sample INPUT*\r\n\r\n// Query params\r\n```json\r\n{\r\n  \"customer_id\": \"string\"\r\n}\r\n```\r\n\r\n*Sample OUTPUT*\r\n\r\n```json\r\n{\r\n  \"message\": \"Site List\",\r\n  \"response\": [\r\n    {\r\n      \"site_address\": {\r\n        \"site_area\": \"string\",\r\n        \"site_city\": \"string\",\r\n        \"site_country\": \"string\",\r\n        \"site_geolocation\": {\r\n          \"lat\": 0,\r\n          \"long\": 0\r\n        },\r\n        \"site_state\": \"string\",\r\n        \"site_street\": \"string\",\r\n        \"site_unit\": \"string\",\r\n        \"site_zip\": \"string\"\r\n      },\r\n      \"site_description\": \"string\",\r\n      \"site_icon\": \"string\",\r\n      \"site_id\": \"string\",\r\n      \"site_image\": \"string\",\r\n      \"site_key\": \"string\",\r\n      \"site_name\": \"string\",\r\n      \"site_total_devices\": 0,\r\n      \"site_type\": \"string\"\r\n    }\r\n  ],\r\n  \"response_code\": 200\r\n}\r\n```\r\n"
      consumes:
        - application/json
      produces:
        - application/json
      tags:
        - Site
      summary: Sites List
      parameters:
        - type: string
          description: Customer ID
          name: customer_id
          in: query
          required: true
      responses:
        '200':
          description: OK
          schema:
            allOf:
              - $ref: '#/definitions/model.HTTPRespArray'
              - type: object
                properties:
                  response:
                    type: array
                    items:
                      allOf:
                        - $ref: '#/definitions/site.siteResp'
                        - type: object
                          properties:
                            site_address:
                              allOf:
                                - $ref: '#/definitions/site.siteAddress'
                                - type: object
                                  properties:
                                    site_geolocation:
                                      $ref: '#/definitions/site.geoLocation'
        '400':
          description: Bad Request
          schema:
            allOf:
              - $ref: '#/definitions/model.HTTPError'
              - type: object
                properties:
                  response: {}
        '500':
          description: Internal Server Error
          schema:
            allOf:
              - $ref: '#/definitions/model.HTTPError'
              - type: object
                properties:
                  response: {}
  /site/update:
    patch:
      security:
        - OAuth2Password: []
      description: "### Site Update API\r\n\r\n*Sample INPUT*\r\n\r\n```json\r\n{\r\n  \"customer_id\": \"string\",\r\n  \"site_address\": {\r\n    \"site_area\": \"string\",\r\n    \"site_city\": \"string\",\r\n    \"site_country\": \"string\",\r\n    \"site_geolocation\": {\r\n      \"lat\": 0,\r\n      \"long\": 0\r\n    },\r\n    \"site_state\": \"string\",\r\n    \"site_street\": \"string\",\r\n    \"site_unit\": \"string\",\r\n    \"site_zip\": \"string\"\r\n  },\r\n  \"site_description\": \"string\",\r\n  \"site_icon\": \"string\",\r\n  \"site_id\": \"string\",\r\n  \"site_image\": \"string\",\r\n  \"site_key\": \"string\",\r\n  \"site_name\": \"string\",\r\n  \"site_total_devices\": 0,\r\n  \"site_type\": \"string\"\r\n}\r\n```\r\n\r\n*Sample OUTPUT*\r\n\r\n```json\r\n{\r\n  \"message\": \"Site Updated\",\r\n  \"response\": null,\r\n  \"response_code\": 200\r\n}\r\n```\r\n"
      consumes:
        - application/json
      produces:
        - application/json
      tags:
        - Site
      summary: Site Update
      parameters:
        - description: Site Update Payload
          name: payload
          in: body
          required: true
          schema:
            $ref: '#/definitions/site.siteUpdateReq'
      responses:
        '200':
          description: OK
          schema:
            allOf:
              - $ref: '#/definitions/model.HTTPResp'
              - type: object
                properties:
                  response: {}
        '400':
          description: Bad Request
          schema:
            allOf:
              - $ref: '#/definitions/model.HTTPError'
              - type: object
                properties:
                  response: {}
        '500':
          description: Internal Server Error
          schema:
            allOf:
              - $ref: '#/definitions/model.HTTPError'
              - type: object
                properties:
                  response: {}
  /site/view:
    get:
      security:
        - OAuth2Password: []
      description: "### Site View API\r\n\r\n*Sample INPUT*\r\n\r\n// Query params\r\n```json\r\n{\r\n  \"site_id\": \"string\"\r\n}\r\n```\r\n\r\n*Sample OUTPUT*\r\n\r\n```json\r\n{\r\n  \"message\": \"Site view\",\r\n  \"response\": {\r\n    \"site_address\": {\r\n      \"site_area\": \"string\",\r\n      \"site_city\": \"string\",\r\n      \"site_country\": \"string\",\r\n      \"site_geolocation\": {\r\n        \"lat\": 0,\r\n        \"long\": 0\r\n      },\r\n      \"site_state\": \"string\",\r\n      \"site_street\": \"string\",\r\n      \"site_unit\": \"string\",\r\n      \"site_zip\": \"string\"\r\n    },\r\n    \"site_description\": \"string\",\r\n    \"site_devices\": [\r\n      {\r\n        \"device_id\": \"string\",\r\n        \"device_identifier\": \"string\",\r\n        \"device_name\": \"string\",\r\n        \"device_source\": [\r\n          {\r\n            \"source_address\": \"string\",\r\n            \"source_fps\": 0,\r\n            \"source_id\": \"string\",\r\n            \"source_name\": \"string\",\r\n            \"source_sid\": 0,\r\n            \"source_type\": \"string\"\r\n          }\r\n        ],\r\n        \"device_state\": true,\r\n        \"device_status\": \"string\",\r\n        \"device_tags\": {\r\n          \"additionalProp1\": \"string\",\r\n          \"additionalProp2\": \"string\",\r\n          \"additionalProp3\": \"string\"\r\n        },\r\n        \"device_type\": \"string\",\r\n        \"device_uuid\": \"string\",\r\n        \"device_value\": \"string\",\r\n        \"source_channels\": [\r\n          {\r\n            \"channel_favorite\": true,\r\n            \"channel_id\": \"string\",\r\n            \"channel_key\": \"string\",\r\n            \"channel_name\": \"string\",\r\n            \"channel_sid\": \"string\",\r\n            \"channel_threshold_duration\": 0,\r\n            \"device_id\": \"string\",\r\n            \"is_active\": true,\r\n            \"is_storage\": true,\r\n            \"is_verified\": true,\r\n            \"nimble_id\": \"string\",\r\n            \"pipeline_id\": \"string\",\r\n            \"source_id\": \"string\",\r\n            \"usecase_icon\": \"string\",\r\n            \"usecase_id\": \"string\",\r\n            \"usecase_key\": \"string\",\r\n            \"usecase_meta_key\": [\r\n              \"string\"\r\n            ],\r\n            \"usecase_name\": \"string\"\r\n          }\r\n        ]\r\n      }\r\n    ],\r\n    \"site_icon\": \"string\",\r\n    \"site_id\": \"string\",\r\n    \"site_image\": \"string\",\r\n    \"site_key\": \"string\",\r\n    \"site_name\": \"string\",\r\n    \"site_type\": \"string\"\r\n  },\r\n  \"response_code\": 200\r\n}\r\n```\r\n"
      consumes:
        - application/json
      produces:
        - application/json
      tags:
        - Site
      summary: Site ID
      parameters:
        - type: string
          description: Site ID
          name: site_id
          in: query
          required: true
      responses:
        '200':
          description: OK
          schema:
            allOf:
              - $ref: '#/definitions/model.HTTPResp'
              - type: object
                properties:
                  response:
                    allOf:
                      - $ref: '#/definitions/site.siteViewResp'
                      - type: object
                        properties:
                          site_address:
                            allOf:
                              - $ref: '#/definitions/site.siteAddress'
                              - type: object
                                properties:
                                  site_geolocation:
                                    $ref: '#/definitions/site.geoLocation'
                          site_devices:
                            type: array
                            items:
                              allOf:
                                - $ref: '#/definitions/site.deviceResp'
                                - type: object
                                  properties:
                                    device_source:
                                      type: array
                                      items:
                                        $ref: '#/definitions/site.sourceResp'
                                    source_channels:
                                      type: array
                                      items:
                                        $ref: '#/definitions/site.channelResp'
        '400':
          description: Bad Request
          schema:
            allOf:
              - $ref: '#/definitions/model.HTTPError'
              - type: object
                properties:
                  response: {}
        '500':
          description: Internal Server Error
          schema:
            allOf:
              - $ref: '#/definitions/model.HTTPError'
              - type: object
                properties:
                  response: {}
  /source/create:
    post:
      security:
        - OAuth2Password: []
      description: "### Source Create API\r\n\r\n*Sample INPUT*\r\n\r\n```json\r\n{\r\n  \"device_id\": \"string\",\r\n  \"nimble_id\": \"string\",\r\n  \"source_address\": \"string\",\r\n  \"source_fps\": 0,\r\n  \"source_name\": \"string\",\r\n  \"source_type\": \"string\",\r\n  \"static_content\": [\r\n    {\r\n      \"additionalProp1\": {}\r\n    }\r\n  ]\r\n}\r\n```\r\n\r\n*Sample OUTPUT*\r\n\r\n```json\r\n{\r\n  \"message\": \"Source Created\",\r\n  \"response\": null,\r\n  \"response_code\": 201\r\n}\r\n```\r\n"
      consumes:
        - application/json
      produces:
        - application/json
      tags:
        - Source
      summary: Source Create
      parameters:
        - description: Source Create Payload
          name: payload
          in: body
          required: true
          schema:
            $ref: '#/definitions/source.sourceCreateReq'
      responses:
        '200':
          description: OK
          schema:
            allOf:
              - $ref: '#/definitions/model.HTTPResp'
              - type: object
                properties:
                  response: {}
        '400':
          description: Bad Request
          schema:
            allOf:
              - $ref: '#/definitions/model.HTTPError'
              - type: object
                properties:
                  response: {}
        '500':
          description: Internal Server Error
          schema:
            allOf:
              - $ref: '#/definitions/model.HTTPError'
              - type: object
                properties:
                  response: {}
  /source/delete:
    delete:
      security:
        - OAuth2Password: []
      description: "### Source Delete API\r\n\r\n*Sample INPUT*\r\n\r\n```json\r\n{\r\n  \"source_id\": \"string\"\r\n}\r\n```\r\n\r\n*Sample OUTPUT*\r\n\r\n```json\r\n{\r\n  \"message\": \"Source Deleted\",\r\n  \"response\": null,\r\n  \"response_code\": 200\r\n}\r\n```\r\n"
      consumes:
        - application/json
      produces:
        - application/json
      tags:
        - Source
      summary: Source Delete
      parameters:
        - description: Source Delete Payload
          name: payload
          in: body
          required: true
          schema:
            $ref: '#/definitions/source.sourceIDReq'
      responses:
        '200':
          description: OK
          schema:
            allOf:
              - $ref: '#/definitions/model.HTTPResp'
              - type: object
                properties:
                  response: {}
        '400':
          description: Bad Request
          schema:
            allOf:
              - $ref: '#/definitions/model.HTTPError'
              - type: object
                properties:
                  response: {}
        '500':
          description: Internal Server Error
          schema:
            allOf:
              - $ref: '#/definitions/model.HTTPError'
              - type: object
                properties:
                  response: {}
  /source/id:
    get:
      security:
        - OAuth2Password: []
      description: "### Source ID API\r\n\r\n*Sample INPUT*\r\n\r\n// Query params\r\n```json\r\n{\r\n  \"source_id\": \"string\"\r\n}\r\n```\r\n\r\n*Sample OUTPUT*\r\n\r\n```json\r\n{\r\n  \"message\": \"Source ID\",\r\n  \"response\": {\r\n    \"device_id\": \"string\",\r\n    \"nimble_id\": \"string\",\r\n    \"source_address\": \"string\",\r\n    \"source_channels\": [\r\n      {\r\n        \"channel_favorite\": true,\r\n        \"channel_id\": \"string\",\r\n        \"channel_key\": \"string\",\r\n        \"channel_name\": \"string\",\r\n        \"channel_sid\": \"string\",\r\n        \"channel_threshold_duration\": 0,\r\n        \"is_active\": true,\r\n        \"is_storage\": true,\r\n        \"is_verified\": true,\r\n        \"nimble_id\": \"string\",\r\n        \"pipeline_id\": \"string\",\r\n        \"source_id\": \"string\",\r\n        \"usecase_icon\": \"string\",\r\n        \"usecase_id\": \"string\",\r\n        \"usecase_key\": \"string\",\r\n        \"usecase_meta_key\": [\r\n          \"string\"\r\n        ],\r\n        \"usecase_name\": \"string\"\r\n      }\r\n    ],\r\n    \"source_fps\": 0,\r\n    \"source_id\": \"string\",\r\n    \"source_name\": \"string\",\r\n    \"source_type\": \"string\",\r\n    \"static_content\": [\r\n      {\r\n        \"additionalProp1\": {}\r\n      }\r\n    ]\r\n  },\r\n  \"response_code\": 200\r\n}\r\n```\r\n"
      consumes:
        - application/json
      produces:
        - application/json
      tags:
        - Source
      summary: Source ID
      parameters:
        - type: string
          description: Source ID
          name: source_id
          in: query
          required: true
      responses:
        '200':
          description: OK
          schema:
            allOf:
              - $ref: '#/definitions/model.HTTPResp'
              - type: object
                properties:
                  response:
                    allOf:
                      - $ref: '#/definitions/source.sourceResp'
                      - type: object
                        properties:
                          source_channels:
                            type: array
                            items:
                              $ref: '#/definitions/source.channelResp'
        '400':
          description: Bad Request
          schema:
            allOf:
              - $ref: '#/definitions/model.HTTPError'
              - type: object
                properties:
                  response: {}
        '500':
          description: Internal Server Error
          schema:
            allOf:
              - $ref: '#/definitions/model.HTTPError'
              - type: object
                properties:
                  response: {}
  /source/list:
    get:
      security:
        - OAuth2Password: []
      description: "### Source List API\r\n\r\n*Sample INPUT*\r\n\r\n// Query params\r\n```json\r\n{\r\n  \"device_id\": \"string\"\r\n}\r\n```\r\n\r\n*Sample OUTPUT*\r\n\r\n```json\r\n{\r\n  \"message\": \"Source List\",\r\n  \"response\": [\r\n    {\r\n      \"device_id\": \"string\",\r\n      \"nimble_id\": \"string\",\r\n      \"source_address\": \"string\",\r\n      \"source_channels\": [\r\n        {\r\n          \"channel_favorite\": true,\r\n          \"channel_id\": \"string\",\r\n          \"channel_key\": \"string\",\r\n          \"channel_name\": \"string\",\r\n          \"channel_sid\": \"string\",\r\n          \"channel_threshold_duration\": 0,\r\n          \"is_active\": true,\r\n          \"is_storage\": true,\r\n          \"is_verified\": true,\r\n          \"nimble_id\": \"string\",\r\n          \"pipeline_id\": \"string\",\r\n          \"source_id\": \"string\",\r\n          \"usecase_icon\": \"string\",\r\n          \"usecase_id\": \"string\",\r\n          \"usecase_key\": \"string\",\r\n          \"usecase_meta_key\": [\r\n            \"string\"\r\n          ],\r\n          \"usecase_name\": \"string\"\r\n        }\r\n      ],\r\n      \"source_fps\": 0,\r\n      \"source_id\": \"string\",\r\n      \"source_name\": \"string\",\r\n      \"source_type\": \"string\",\r\n      \"static_content\": [\r\n        {\r\n          \"additionalProp1\": {}\r\n        }\r\n      ]\r\n    }\r\n  ],\r\n  \"response_code\": 200\r\n}\r\n```\r\n"
      consumes:
        - application/json
      produces:
        - application/json
      tags:
        - Source
      summary: Source List
      parameters:
        - type: string
          description: Device ID
          name: device_id
          in: query
          required: true
      responses:
        '200':
          description: OK
          schema:
            allOf:
              - $ref: '#/definitions/model.HTTPRespArray'
              - type: object
                properties:
                  response:
                    type: array
                    items:
                      allOf:
                        - $ref: '#/definitions/source.sourceResp'
                        - type: object
                          properties:
                            source_channels:
                              type: array
                              items:
                                $ref: '#/definitions/source.channelResp'
        '400':
          description: Bad Request
          schema:
            allOf:
              - $ref: '#/definitions/model.HTTPError'
              - type: object
                properties:
                  response: {}
        '500':
          description: Internal Server Error
          schema:
            allOf:
              - $ref: '#/definitions/model.HTTPError'
              - type: object
                properties:
                  response: {}
  /source/mapping:
    get:
      security:
        - OAuth2Password: []
      description: "### Source Mapping API\r\n\r\n*Sample INPUT*\r\n\r\n// Query params\r\n```json\r\n{\r\n  \"is_default\": \"string\",\r\n  \"site_id\": \"string\"\r\n}\r\n```\r\n\r\n*Sample OUTPUT*\r\n\r\n```json\r\n{\r\n  \"message\": \"Source List\",\r\n  \"response\": {\r\n    \"is_default\": true,\r\n    \"nimble_address\": \"string\",\r\n    \"nimble_hostname\": \"string\",\r\n    \"nimble_id\": \"string\",\r\n    \"site_id\": \"string\",\r\n    \"site_name\": \"string\",\r\n    \"sources\": [\r\n      {\r\n        \"device_id\": \"string\",\r\n        \"nimble_id\": \"string\",\r\n        \"source_address\": \"string\",\r\n        \"source_channels\": [\r\n          {\r\n            \"channel_favorite\": true,\r\n            \"channel_id\": \"string\",\r\n            \"channel_key\": \"string\",\r\n            \"channel_name\": \"string\",\r\n            \"channel_sid\": \"string\",\r\n            \"channel_threshold_duration\": 0,\r\n            \"is_active\": true,\r\n            \"is_storage\": true,\r\n            \"is_verified\": true,\r\n            \"nimble_id\": \"string\",\r\n            \"pipeline_id\": \"string\",\r\n            \"source_id\": \"string\",\r\n            \"usecase_icon\": \"string\",\r\n            \"usecase_id\": \"string\",\r\n            \"usecase_key\": \"string\",\r\n            \"usecase_meta_key\": [\r\n              \"string\"\r\n            ],\r\n            \"usecase_name\": \"string\"\r\n          }\r\n        ],\r\n        \"source_fps\": 0,\r\n        \"source_id\": \"string\",\r\n        \"source_name\": \"string\",\r\n        \"source_type\": \"string\",\r\n        \"static_content\": [\r\n          {\r\n            \"additionalProp1\": {}\r\n          }\r\n        ]\r\n      }\r\n    ]\r\n  },\r\n  \"response_code\": 200\r\n}\r\n```\r\n"
      consumes:
        - application/json
      produces:
        - application/json
      tags:
        - Source
      summary: Source Mapping
      parameters:
        - type: string
          description: Include Default Site
          name: is_default
          in: query
          required: true
        - type: string
          description: Specific Site data
          name: site_id
          in: query
      responses:
        '200':
          description: OK
          schema:
            allOf:
              - $ref: '#/definitions/model.HTTPResp'
              - type: object
                properties:
                  response:
                    allOf:
                      - $ref: '#/definitions/source.sourceMappingResp'
                      - type: object
                        properties:
                          sources:
                            type: array
                            items:
                              allOf:
                                - $ref: '#/definitions/source.sourceResp'
                                - type: object
                                  properties:
                                    source_channels:
                                      type: array
                                      items:
                                        $ref: '#/definitions/source.channelResp'
        '400':
          description: Bad Request
          schema:
            allOf:
              - $ref: '#/definitions/model.HTTPError'
              - type: object
                properties:
                  response: {}
        '500':
          description: Internal Server Error
          schema:
            allOf:
              - $ref: '#/definitions/model.HTTPError'
              - type: object
                properties:
                  response: {}
  /source/update:
    patch:
      security:
        - OAuth2Password: []
      description: "### Source Update API\r\n\r\n*Sample INPUT*\r\n\r\n```json\r\n{\r\n  \"device_id\": \"string\",\r\n  \"nimble_id\": \"string\",\r\n  \"source_address\": \"string\",\r\n  \"source_fps\": 0,\r\n  \"source_name\": \"string\",\r\n  \"source_type\": \"string\",\r\n  \"static_content\": [\r\n    {\r\n      \"additionalProp1\": {}\r\n    }\r\n  ]\r\n}\r\n```\r\n\r\n*Sample OUTPUT*\r\n\r\n```json\r\n{\r\n  \"message\": \"Source Updated\",\r\n  \"response\": {\r\n    \"device_id\": \"string\",\r\n    \"nimble_id\": \"string\",\r\n    \"source_address\": \"string\",\r\n    \"source_channels\": [\r\n      {\r\n        \"channel_favorite\": true,\r\n        \"channel_id\": \"string\",\r\n        \"channel_key\": \"string\",\r\n        \"channel_name\": \"string\",\r\n        \"channel_sid\": \"string\",\r\n        \"channel_threshold_duration\": 0,\r\n        \"is_active\": true,\r\n        \"is_storage\": true,\r\n        \"is_verified\": true,\r\n        \"nimble_id\": \"string\",\r\n        \"pipeline_id\": \"string\",\r\n        \"source_id\": \"string\",\r\n        \"usecase_icon\": \"string\",\r\n        \"usecase_id\": \"string\",\r\n        \"usecase_key\": \"string\",\r\n        \"usecase_meta_key\": [\r\n          \"string\"\r\n        ],\r\n        \"usecase_name\": \"string\"\r\n      }\r\n    ],\r\n    \"source_fps\": 0,\r\n    \"source_id\": \"string\",\r\n    \"source_name\": \"string\",\r\n    \"source_type\": \"string\",\r\n    \"static_content\": [\r\n      {\r\n        \"additionalProp1\": {}\r\n      }\r\n    ]\r\n  },\r\n  \"response_code\": 200\r\n}\r\n```\r\n"
      consumes:
        - application/json
      produces:
        - application/json
      tags:
        - Source
      summary: Source Update
      parameters:
        - description: Source Update Payload
          name: payload
          in: body
          required: true
          schema:
            $ref: '#/definitions/source.sourceCreateReq'
      responses:
        '200':
          description: OK
          schema:
            allOf:
              - $ref: '#/definitions/model.HTTPResp'
              - type: object
                properties:
                  response:
                    $ref: '#/definitions/source.sourceResp'
        '400':
          description: Bad Request
          schema:
            allOf:
              - $ref: '#/definitions/model.HTTPError'
              - type: object
                properties:
                  response: {}
        '500':
          description: Internal Server Error
          schema:
            allOf:
              - $ref: '#/definitions/model.HTTPError'
              - type: object
                properties:
                  response: {}
  /status:
    get:
      description: "### Status Check\r\n\r\n*Sample OUTPUT*\r\n\r\n```json\r\n {\r\n  \"message\": \"STS Status\",\r\n  \"response\": {\r\n    \"is_onboarding\": true,\r\n    \"nimble_module\": true,\r\n    \"sms_module\": true,\r\n    \"smtp_module\": true,\r\n    \"storage_module\": true,\r\n    \"websocket_module\": true\r\n  },\r\n  \"response_code\": 200\r\n}\r\n```\r\n"
      consumes:
        - application/json
      produces:
        - application/json
      tags:
        - Status
      summary: Status Check
      responses:
        '200':
          description: OK
          schema:
            allOf:
              - $ref: '#/definitions/model.HTTPResp'
              - type: object
                properties:
                  response:
                    $ref: '#/definitions/status.statusResp'
        '400':
          description: Bad Request
          schema:
            allOf:
              - $ref: '#/definitions/model.HTTPError'
              - type: object
                properties:
                  response: {}
        '500':
          description: Internal Server Error
          schema:
            allOf:
              - $ref: '#/definitions/model.HTTPError'
              - type: object
                properties:
                  response: {}
  /usecase/assign:
    post:
      security:
        - OAuth2Password: []
      description: "### Usecase Assign API\r\n\r\n*Sample INPUT*\r\n\r\n```json\r\n{\r\n  \"usecase_id\": [\r\n    \"string\"\r\n  ],\r\n  \"user_id\": \"string\"\r\n}\r\n```\r\n\r\n*Sample OUTPUT*\r\n\r\n```json\r\n {\r\n  \"message\": \"Usecase assigned\",\r\n  \"response\": null,\r\n  \"response_code\": 200\r\n}\r\n```\r\n"
      consumes:
        - application/json
      produces:
        - application/json
      tags:
        - UseCase
      summary: UseCase Assign
      parameters:
        - description: UseCase Assign Payload
          name: payload
          in: body
          required: true
          schema:
            $ref: '#/definitions/usecase.usecaseAssignReq'
      responses:
        '200':
          description: OK
          schema:
            allOf:
              - $ref: '#/definitions/model.HTTPResp'
              - type: object
                properties:
                  response: {}
        '400':
          description: Bad Request
          schema:
            allOf:
              - $ref: '#/definitions/model.HTTPError'
              - type: object
                properties:
                  response: {}
        '500':
          description: Internal Server Error
          schema:
            allOf:
              - $ref: '#/definitions/model.HTTPError'
              - type: object
                properties:
                  response: {}
  /usecase/channel/assign:
    post:
      security:
        - OAuth2Password: []
      description: "### Channel Assign API\r\n\r\n*Sample INPUT*\r\n\r\n```json\r\n{\r\n  \"channel_id\": [\r\n    \"string\"\r\n  ],\r\n  \"user_id\": \"string\"\r\n}\r\n```\r\n\r\n*Sample OUTPUT*\r\n\r\n```json\r\n {\r\n  \"message\": \"Channel assigned\",\r\n  \"response\": null,\r\n  \"response_code\": 200\r\n}\r\n```\r\n"
      consumes:
        - application/json
      produces:
        - application/json
      tags:
        - Channel
      summary: Channel ChannelAssign
      parameters:
        - description: Channel ChannelAssign Payload
          name: payload
          in: body
          required: true
          schema:
            $ref: '#/definitions/usecase.channelAssignReq'
      responses:
        '200':
          description: OK
          schema:
            allOf:
              - $ref: '#/definitions/model.HTTPResp'
              - type: object
                properties:
                  response: {}
        '400':
          description: Bad Request
          schema:
            allOf:
              - $ref: '#/definitions/model.HTTPError'
              - type: object
                properties:
                  response: {}
        '500':
          description: Internal Server Error
          schema:
            allOf:
              - $ref: '#/definitions/model.HTTPError'
              - type: object
                properties:
                  response: {}
  /usecase/channel/create:
    put:
      security:
        - OAuth2Password: []
      description: "### Channel Create API\r\n\r\n*Sample INPUT*\r\n\r\n```json\r\n{\r\n  \"channel_name\": \"string\",\r\n  \"channel_sid\": \"string\",\r\n  \"channel_threshold\": \"string\",\r\n  \"channel_threshold_duration\": 0,\r\n  \"usecase_key\": \"string\"\r\n}\r\n```\r\n\r\n*Sample OUTPUT*\r\n\r\n```json\r\n {\r\n  \"message\": \"Channel Created\",\r\n  \"response\": null,\r\n  \"response_code\": 201\r\n}\r\n```\r\n"
      consumes:
        - application/json
      produces:
        - application/json
      tags:
        - Channel
      summary: Channel ChannelCreate
      parameters:
        - description: Channel ChannelCreate Payload
          name: payload
          in: body
          required: true
          schema:
            $ref: '#/definitions/usecase.channelCreateReq'
      responses:
        '200':
          description: OK
          schema:
            allOf:
              - $ref: '#/definitions/model.HTTPResp'
              - type: object
                properties:
                  response: {}
        '400':
          description: Bad Request
          schema:
            allOf:
              - $ref: '#/definitions/model.HTTPError'
              - type: object
                properties:
                  response: {}
        '500':
          description: Internal Server Error
          schema:
            allOf:
              - $ref: '#/definitions/model.HTTPError'
              - type: object
                properties:
                  response: {}
  /usecase/channel/delete:
    delete:
      security:
        - OAuth2Password: []
      description: "### Channel Delete API\r\n\r\n*Sample INPUT*\r\n\r\n```json\r\n{\r\n  \"channel_id\": \"string\"\r\n}\r\n```\r\n\r\n*Sample OUTPUT*\r\n\r\n```json\r\n {\r\n  \"message\": \"Channel Deleted\",\r\n  \"response\": null,\r\n  \"response_code\": 200\r\n}\r\n```\r\n"
      consumes:
        - application/json
      produces:
        - application/json
      tags:
        - Channel
      summary: Channel ChannelDelete
      parameters:
        - description: Channel ChannelDelete Payload
          name: payload
          in: body
          required: true
          schema:
            $ref: '#/definitions/usecase.channelDeleteReq'
      responses:
        '200':
          description: OK
          schema:
            allOf:
              - $ref: '#/definitions/model.HTTPResp'
              - type: object
                properties:
                  response: {}
        '400':
          description: Bad Request
          schema:
            allOf:
              - $ref: '#/definitions/model.HTTPError'
              - type: object
                properties:
                  response: {}
        '500':
          description: Internal Server Error
          schema:
            allOf:
              - $ref: '#/definitions/model.HTTPError'
              - type: object
                properties:
                  response: {}
  /usecase/channel/id:
    get:
      security:
        - OAuth2Password: []
      description: "### Channel ID API\r\n\r\n*Sample INPUT*\r\n\r\n// Query params\r\n```json\r\n{\r\n  \"channel_id\": \"string\"\r\n}\r\n```\r\n\r\n*Sample OUTPUT*\r\n\r\n```json\r\n {\r\n  \"message\": \"Channel ID\",\r\n  \"response\": {\r\n    \"channel_favorite\": true,\r\n    \"channel_id\": \"string\",\r\n    \"channel_key\": \"string\",\r\n    \"channel_name\": \"string\",\r\n    \"channel_sid\": \"string\",\r\n    \"channel_threshold\": \"string\",\r\n    \"channel_threshold_duration\": 0,\r\n    \"is_active\": true,\r\n    \"is_storage\": true,\r\n    \"is_verified\": true,\r\n    \"pipeline_id\": \"string\",\r\n    \"usecase_key\": \"string\"\r\n  },\r\n  \"response_code\": 200\r\n}\r\n```\r\n"
      consumes:
        - application/json
      produces:
        - application/json
      tags:
        - Channel
      summary: Channel ID
      parameters:
        - type: string
          description: Channel ID
          name: channel_id
          in: query
          required: true
      responses:
        '200':
          description: OK
          schema:
            allOf:
              - $ref: '#/definitions/model.HTTPResp'
              - type: object
                properties:
                  response:
                    $ref: '#/definitions/usecase.channelResp'
        '400':
          description: Bad Request
          schema:
            allOf:
              - $ref: '#/definitions/model.HTTPError'
              - type: object
                properties:
                  response: {}
        '500':
          description: Internal Server Error
          schema:
            allOf:
              - $ref: '#/definitions/model.HTTPError'
              - type: object
                properties:
                  response: {}
  /usecase/channel/list:
    post:
      security:
        - OAuth2Password: []
      description: "### Channel List By Key API\r\n\r\n*Sample INPUT*\r\n\r\n// Query params\r\n```json\r\n{\r\n  \"usecase_key\": \"string\"\r\n}\r\n```\r\n\r\n*Sample OUTPUT*\r\n\r\n```json\r\n {\r\n  \"message\": \"Channel List\",\r\n  \"response\": [\r\n    {\r\n      \"channel_favorite\": true,\r\n      \"channel_id\": \"string\",\r\n      \"channel_key\": \"string\",\r\n      \"channel_name\": \"string\",\r\n      \"channel_sid\": \"string\",\r\n      \"channel_threshold\": \"string\",\r\n      \"channel_threshold_duration\": 0,\r\n      \"is_active\": true,\r\n      \"is_storage\": true,\r\n      \"is_verified\": true,\r\n      \"pipeline_id\": \"string\",\r\n      \"usecase_key\": \"string\"\r\n    }\r\n  ],\r\n  \"response_code\": 200\r\n}\r\n```\r\n"
      consumes:
        - application/json
      produces:
        - application/json
      tags:
        - Channel
      summary: Channel List
      parameters:
        - description: Channel List Payload
          name: payload
          in: body
          required: true
          schema:
            $ref: '#/definitions/usecase.channelListReq'
      responses:
        '200':
          description: OK
          schema:
            allOf:
              - $ref: '#/definitions/model.HTTPRespArray'
              - type: object
                properties:
                  response:
                    type: array
                    items:
                      $ref: '#/definitions/usecase.channelResp'
        '400':
          description: Bad Request
          schema:
            allOf:
              - $ref: '#/definitions/model.HTTPError'
              - type: object
                properties:
                  response: {}
        '500':
          description: Internal Server Error
          schema:
            allOf:
              - $ref: '#/definitions/model.HTTPError'
              - type: object
                properties:
                  response: {}
  /usecase/channel/status:
    get:
      security:
        - OAuth2Password: []
      description: "### Channel Status API\r\n\r\n*Sample INPUT*\r\n\r\n// Query params\r\n```json\r\n{\r\n  \"channel_id\": \"string\"\r\n}\r\n```\r\n\r\n*Sample OUTPUT*\r\n\r\n```json\r\n {\r\n  \"message\": \"Channel Status\",\r\n  \"response\": {\r\n    \"is_active\": true,\r\n    \"is_storage\": true,\r\n    \"is_verified\": true\r\n  },\r\n  \"response_code\": 200\r\n}\r\n```\r\n"
      consumes:
        - application/json
      produces:
        - application/json
      tags:
        - Channel
      summary: Channel Status
      parameters:
        - type: string
          description: Channel ID
          name: channel_id
          in: query
          required: true
      responses:
        '200':
          description: OK
          schema:
            allOf:
              - $ref: '#/definitions/model.HTTPResp'
              - type: object
                properties:
                  response:
                    $ref: '#/definitions/usecase.channelStatusResp'
        '400':
          description: Bad Request
          schema:
            allOf:
              - $ref: '#/definitions/model.HTTPError'
              - type: object
                properties:
                  response: {}
        '500':
          description: Internal Server Error
          schema:
            allOf:
              - $ref: '#/definitions/model.HTTPError'
              - type: object
                properties:
                  response: {}
  /usecase/channel/unassign:
    post:
      security:
        - OAuth2Password: []
      description: "### Channel UnAssign API\r\n\r\n*Sample INPUT*\r\n\r\n```json\r\n{\r\n  \"channel_id\": [\r\n    \"string\"\r\n  ],\r\n  \"user_id\": \"string\"\r\n}\r\n```\r\n\r\n*Sample OUTPUT*\r\n\r\n```json\r\n {\r\n  \"message\": \"Channel un-assigned\",\r\n  \"response\": null,\r\n  \"response_code\": 200\r\n}\r\n```\r\n"
      consumes:
        - application/json
      produces:
        - application/json
      tags:
        - Channel
      summary: Channel UnAssign
      parameters:
        - description: Channel UnAssign Payload
          name: payload
          in: body
          required: true
          schema:
            $ref: '#/definitions/usecase.channelUnAssignReq'
      responses:
        '200':
          description: OK
          schema:
            allOf:
              - $ref: '#/definitions/model.HTTPResp'
              - type: object
                properties:
                  response: {}
        '400':
          description: Bad Request
          schema:
            allOf:
              - $ref: '#/definitions/model.HTTPError'
              - type: object
                properties:
                  response: {}
        '500':
          description: Internal Server Error
          schema:
            allOf:
              - $ref: '#/definitions/model.HTTPError'
              - type: object
                properties:
                  response: {}
  /usecase/channel/update:
    patch:
      security:
        - OAuth2Password: []
      description: "### Channel Update API\r\n\r\n*Sample INPUT*\r\n\r\n```json\r\n{\r\n  \"channel_id\": \"string\",\r\n  \"channel_key\": \"string\",\r\n  \"channel_name\": \"string\",\r\n  \"channel_sid\": \"string\",\r\n  \"channel_threshold\": \"string\",\r\n  \"channel_threshold_duration\": 0,\r\n  \"usecase_key\": \"string\"\r\n}\r\n```\r\n\r\n*Sample OUTPUT*\r\n\r\n```json\r\n {\r\n  \"message\": \"Channel Updated\",\r\n  \"response\": {\r\n    \"channel_favorite\": true,\r\n    \"channel_id\": \"string\",\r\n    \"channel_key\": \"string\",\r\n    \"channel_name\": \"string\",\r\n    \"channel_sid\": \"string\",\r\n    \"channel_threshold\": \"string\",\r\n    \"channel_threshold_duration\": 0,\r\n    \"is_active\": true,\r\n    \"is_storage\": true,\r\n    \"is_verified\": true,\r\n    \"pipeline_id\": \"string\",\r\n    \"usecase_key\": \"string\"\r\n  },\r\n  \"response_code\": 200\r\n}\r\n```\r\n"
      consumes:
        - application/json
      produces:
        - application/json
      tags:
        - Channel
      summary: Channel ChannelUpdate
      parameters:
        - description: Channel ChannelUpdate Payload
          name: payload
          in: body
          required: true
          schema:
            $ref: '#/definitions/usecase.channelUpdateReq'
      responses:
        '200':
          description: OK
          schema:
            allOf:
              - $ref: '#/definitions/model.HTTPResp'
              - type: object
                properties:
                  response:
                    $ref: '#/definitions/usecase.channelResp'
        '400':
          description: Bad Request
          schema:
            allOf:
              - $ref: '#/definitions/model.HTTPError'
              - type: object
                properties:
                  response: {}
        '500':
          description: Internal Server Error
          schema:
            allOf:
              - $ref: '#/definitions/model.HTTPError'
              - type: object
                properties:
                  response: {}
  /usecase/create:
    put:
      security:
        - OAuth2Password: []
      description: "### Usecase Create API\r\n\r\n*Sample INPUT*\r\n\r\n```json\r\n{\r\n  \"usecase_background_color\": \"string\",\r\n  \"usecase_channel_count\": 0,\r\n  \"usecase_component_key\": \"string\",\r\n  \"usecase_desc\": \"string\",\r\n  \"usecase_icon\": \"string\",\r\n  \"usecase_key\": \"string\",\r\n  \"usecase_meta_key\": [\r\n    \"string\"\r\n  ],\r\n  \"usecase_name\": \"string\"\r\n}\r\n```\r\n\r\n*Sample OUTPUT*\r\n\r\n```json\r\n {\r\n  \"message\": \"Usecase created\",\r\n  \"response\": null,\r\n  \"response_code\": 201\r\n}\r\n```\r\n"
      consumes:
        - application/json
      produces:
        - application/json
      tags:
        - UseCase
      summary: UseCase Create
      parameters:
        - description: UseCase Create Payload
          name: payload
          in: body
          required: true
          schema:
            $ref: '#/definitions/usecase.usecaseCreateReq'
      responses:
        '200':
          description: OK
          schema:
            allOf:
              - $ref: '#/definitions/model.HTTPResp'
              - type: object
                properties:
                  response: {}
        '400':
          description: Bad Request
          schema:
            allOf:
              - $ref: '#/definitions/model.HTTPError'
              - type: object
                properties:
                  response: {}
        '500':
          description: Internal Server Error
          schema:
            allOf:
              - $ref: '#/definitions/model.HTTPError'
              - type: object
                properties:
                  response: {}
  /usecase/delete:
    delete:
      security:
        - OAuth2Password: []
      description: "### Usecase Delete API\r\n\r\n*Sample INPUT*\r\n\r\n```json\r\n{\r\n  \"usecase_id\": \"string\"\r\n}\r\n```\r\n\r\n*Sample OUTPUT*\r\n\r\n```json\r\n {\r\n  \"message\": \"Usecase deleted\",\r\n  \"response\": null,\r\n  \"response_code\": 200\r\n}\r\n```\r\n"
      consumes:
        - application/json
      produces:
        - application/json
      tags:
        - UseCase
      summary: UseCase Delete
      parameters:
        - description: UseCase Delete Payload
          name: payload
          in: body
          required: true
          schema:
            $ref: '#/definitions/usecase.usecaseDeleteReq'
      responses:
        '200':
          description: OK
          schema:
            allOf:
              - $ref: '#/definitions/model.HTTPResp'
              - type: object
                properties:
                  response: {}
        '400':
          description: Bad Request
          schema:
            allOf:
              - $ref: '#/definitions/model.HTTPError'
              - type: object
                properties:
                  response: {}
        '500':
          description: Internal Server Error
          schema:
            allOf:
              - $ref: '#/definitions/model.HTTPError'
              - type: object
                properties:
                  response: {}
  /usecase/id:
    get:
      security:
        - OAuth2Password: []
      description: "### Usecase ID API\r\n\r\n*Sample INPUT*\r\n\r\n// Query params\r\n```json\r\n{\r\n  \"usecase_id\": \"string\"\r\n}\r\n```\r\n\r\n*Sample OUTPUT*\r\n\r\n```json\r\n {\r\n  \"message\": \"Usecase deleted\",\r\n  \"response\": {\r\n    \"usecase_background_color\": \"string\",\r\n    \"usecase_channel_count\": 0,\r\n    \"usecase_component_key\": \"string\",\r\n    \"usecase_desc\": \"string\",\r\n    \"usecase_icon\": \"string\",\r\n    \"usecase_id\": \"string\",\r\n    \"usecase_key\": \"string\",\r\n    \"usecase_meta_key\": [\r\n      \"string\"\r\n    ],\r\n    \"usecase_name\": \"string\"\r\n  },\r\n  \"response_code\": 200\r\n}\r\n```\r\n"
      consumes:
        - application/json
      produces:
        - application/json
      tags:
        - UseCase
      summary: UseCase ID
      parameters:
        - type: string
          description: UseCase ID
          name: usecase_id
          in: query
          required: true
      responses:
        '200':
          description: OK
          schema:
            allOf:
              - $ref: '#/definitions/model.HTTPResp'
              - type: object
                properties:
                  response:
                    $ref: '#/definitions/usecase.usecaseResp'
        '400':
          description: Bad Request
          schema:
            allOf:
              - $ref: '#/definitions/model.HTTPError'
              - type: object
                properties:
                  response: {}
        '500':
          description: Internal Server Error
          schema:
            allOf:
              - $ref: '#/definitions/model.HTTPError'
              - type: object
                properties:
                  response: {}
  /usecase/list:
    post:
      security:
        - OAuth2Password: []
      description: "### Usecase List API\r\n\r\n\r\n*Sample OUTPUT*\r\n\r\n```json\r\n {\r\n  \"message\": \"Usecase list\",\r\n  \"response\": [\r\n    {\r\n      \"usecase_background_color\": \"string\",\r\n      \"usecase_channel_count\": 0,\r\n      \"usecase_component_key\": \"string\",\r\n      \"usecase_desc\": \"string\",\r\n      \"usecase_icon\": \"string\",\r\n      \"usecase_id\": \"string\",\r\n      \"usecase_key\": \"string\",\r\n      \"usecase_meta_key\": [\r\n        \"string\"\r\n      ],\r\n      \"usecase_name\": \"string\"\r\n    }\r\n  ],\r\n  \"response_code\": 200\r\n}\r\n```\r\n"
      consumes:
        - application/json
      produces:
        - application/json
      tags:
        - UseCase
      summary: UseCase List
      responses:
        '200':
          description: OK
          schema:
            allOf:
              - $ref: '#/definitions/model.HTTPRespArray'
              - type: object
                properties:
                  response:
                    type: array
                    items:
                      $ref: '#/definitions/usecase.usecaseResp'
        '400':
          description: Bad Request
          schema:
            allOf:
              - $ref: '#/definitions/model.HTTPError'
              - type: object
                properties:
                  response: {}
        '500':
          description: Internal Server Error
          schema:
            allOf:
              - $ref: '#/definitions/model.HTTPError'
              - type: object
                properties:
                  response: {}
  /usecase/stats:
    post:
      security:
        - OAuth2Password: []
      description: "### Usecase Stats API\r\n\r\n*Sample INPUT*\r\n\r\n```json\r\n{\r\n  \"details\": true,\r\n  \"frequency\": \"string\",\r\n  \"usecase_key\": \"string\",\r\n  \"usecase_meta_key\": [\r\n    \"string\"\r\n  ]\r\n}\r\n```\r\n\r\n*Sample OUTPUT*\r\n\r\n```json\r\n {\r\n  \"message\": \"Usecase deleted\",\r\n  \"response\":  {\r\n    \"usecase_channel\": [\r\n      {\r\n        \"channel_alert\": {\r\n          \"channel\": \"string\",\r\n          \"condition\": \"string\",\r\n          \"count\": 0,\r\n          \"key\": \"string\",\r\n          \"name\": \"string\",\r\n          \"time\": \"string\"\r\n        },\r\n        \"channel_id\": \"string\",\r\n        \"channel_key\": \"string\",\r\n        \"channel_name\": \"string\",\r\n        \"channel_stats\": {\r\n          \"alert\": 0,\r\n          \"down\": 0,\r\n          \"dwell_time\": 0,\r\n          \"fire\": 0,\r\n          \"frame_collision\": 0,\r\n          \"frame_near_miss\": 0,\r\n          \"high_smoke\": 0,\r\n          \"ids\": [\r\n            \"string\"\r\n          ],\r\n          \"intermediate_smoke\": 0,\r\n          \"low_smoke\": 0,\r\n          \"moving_average_count\": 0,\r\n          \"non_violation\": 0,\r\n          \"occupancy\": 0,\r\n          \"total\": 0,\r\n          \"total_collision\": 0,\r\n          \"total_near_miss\": 0,\r\n          \"up\": 0,\r\n          \"violation\": 0\r\n        },\r\n        \"channel_total_alert\": 0,\r\n        \"channel_total_notification\": 0,\r\n        \"usecase_key\": \"string\"\r\n      }\r\n    ],\r\n    \"usecase_key\": \"string\",\r\n    \"usecase_total_alert\": 0,\r\n    \"usecase_total_notification\": 0,\r\n    \"usecase_total_stats\": {\r\n      \"alert\": 0,\r\n      \"down\": 0,\r\n      \"dwell_time\": 0,\r\n      \"fire\": 0,\r\n      \"frame_collision\": 0,\r\n      \"frame_near_miss\": 0,\r\n      \"high_smoke\": 0,\r\n      \"ids\": [\r\n        \"string\"\r\n      ],\r\n      \"intermediate_smoke\": 0,\r\n      \"low_smoke\": 0,\r\n      \"moving_average_count\": 0,\r\n      \"non_violation\": 0,\r\n      \"occupancy\": 0,\r\n      \"total\": 0,\r\n      \"total_collision\": 0,\r\n      \"total_near_miss\": 0,\r\n      \"up\": 0,\r\n      \"violation\": 0\r\n    }\r\n  },\r\n  \"response_code\": 200\r\n}\r\n```\r\n"
      consumes:
        - application/json
      produces:
        - application/json
      tags:
        - Analytics
      summary: UseCase Stats
      parameters:
        - description: UseCase Stats Payload
          name: payload
          in: body
          required: true
          schema:
            $ref: '#/definitions/usecase.usecaseStatReq'
      responses:
        '200':
          description: OK
          schema:
            allOf:
              - $ref: '#/definitions/model.HTTPResp'
              - type: object
                properties:
                  response:
                    allOf:
                      - $ref: '#/definitions/usecase.usecaseStatResp'
                      - type: object
                        properties:
                          usecase_channel:
                            type: array
                            items:
                              allOf:
                                - $ref: '#/definitions/usecase.channelStatsResp'
                                - type: object
                                  properties:
                                    channel_alert:
                                      $ref: '#/definitions/model.AlertData'
                                    channel_stats:
                                      $ref: '#/definitions/model.StatsData'
                          usecase_total_stats:
                            $ref: '#/definitions/model.StatsData'
        '400':
          description: Bad Request
          schema:
            allOf:
              - $ref: '#/definitions/model.HTTPError'
              - type: object
                properties:
                  response: {}
        '500':
          description: Internal Server Error
          schema:
            allOf:
              - $ref: '#/definitions/model.HTTPError'
              - type: object
                properties:
                  response: {}
  /usecase/unassign:
    post:
      security:
        - OAuth2Password: []
      description: "### Usecase UnAssign API\r\n\r\n*Sample INPUT*\r\n\r\n```json\r\n{\r\n  \"usecase_id\": [\r\n    \"string\"\r\n  ],\r\n  \"user_id\": \"string\"\r\n}\r\n```\r\n\r\n*Sample OUTPUT*\r\n\r\n```json\r\n {\r\n  \"message\": \"Usecase un-assigned\",\r\n  \"response\": null,\r\n  \"response_code\": 200\r\n}\r\n```\r\n"
      consumes:
        - application/json
      produces:
        - application/json
      tags:
        - UseCase
      summary: UseCase UnAssign
      parameters:
        - description: UseCase UnAssign Payload
          name: payload
          in: body
          required: true
          schema:
            $ref: '#/definitions/usecase.usecaseUnAssignReq'
      responses:
        '200':
          description: OK
          schema:
            allOf:
              - $ref: '#/definitions/model.HTTPResp'
              - type: object
                properties:
                  response: {}
        '400':
          description: Bad Request
          schema:
            allOf:
              - $ref: '#/definitions/model.HTTPError'
              - type: object
                properties:
                  response: {}
        '500':
          description: Internal Server Error
          schema:
            allOf:
              - $ref: '#/definitions/model.HTTPError'
              - type: object
                properties:
                  response: {}
  /usecase/update:
    patch:
      security:
        - OAuth2Password: []
      description: "### Usecase Update API\r\n\r\n*Sample INPUT*\r\n\r\n```json\r\n{\r\n  \"usecase_background_color\": \"string\",\r\n  \"usecase_channel_count\": 0,\r\n  \"usecase_component_key\": \"string\",\r\n  \"usecase_desc\": \"string\",\r\n  \"usecase_icon\": \"string\",\r\n  \"usecase_id\": \"string\",\r\n  \"usecase_key\": \"string\",\r\n  \"usecase_meta_key\": [\r\n    \"string\"\r\n  ],\r\n  \"usecase_name\": \"string\"\r\n}\r\n```\r\n\r\n*Sample OUTPUT*\r\n\r\n```json\r\n {\r\n  \"message\": \"Usecase updated\",\r\n  \"response\": null,\r\n  \"response_code\": 200\r\n}\r\n```\r\n"
      consumes:
        - application/json
      produces:
        - application/json
      tags:
        - UseCase
      summary: UseCase Update
      parameters:
        - description: UseCase Update Payload
          name: payload
          in: body
          required: true
          schema:
            $ref: '#/definitions/usecase.usecaseUpdateReq'
      responses:
        '200':
          description: OK
          schema:
            allOf:
              - $ref: '#/definitions/model.HTTPResp'
              - type: object
                properties:
                  response: {}
        '400':
          description: Bad Request
          schema:
            allOf:
              - $ref: '#/definitions/model.HTTPError'
              - type: object
                properties:
                  response: {}
        '500':
          description: Internal Server Error
          schema:
            allOf:
              - $ref: '#/definitions/model.HTTPError'
              - type: object
                properties:
                  response: {}
  /user/config:
    post:
      security:
        - OAuth2Password: []
      description: "### User Config Update By ID\r\n\r\n*Sample INPUT*\r\n\r\n```json\r\n{\r\n  \"user_config\": {\r\n    \"channel_ids\": [\r\n      \"string\"\r\n    ],\r\n    \"role_id\": \"string\",\r\n    \"ui_config\": {\r\n      \"additionalProp1\": {}\r\n    },\r\n    \"usecase_ids\": [\r\n      \"string\"\r\n    ],\r\n    \"user_id\": \"string\"\r\n  },\r\n  \"user_id\": \"string\"\r\n}\r\n```\r\n\r\n*Sample OUTPUT*\r\n\r\n```json\r\n{\r\n  \"message\": \"User Config Updated\",\r\n  \"response\": null,\r\n  \"response_code\": 200\r\n}\r\n```"
      consumes:
        - application/json
      produces:
        - application/json
      tags:
        - User
      summary: User Config By ID
      parameters:
        - description: User Config By ID Payload
          name: payload
          in: body
          required: true
          schema:
            $ref: '#/definitions/user.userConfigReq'
      responses:
        '200':
          description: OK
          schema:
            allOf:
              - $ref: '#/definitions/model.HTTPResp'
              - type: object
                properties:
                  response:
                    $ref: '#/definitions/user.userConfigResp'
        '400':
          description: Bad Request
          schema:
            allOf:
              - $ref: '#/definitions/model.HTTPError'
              - type: object
                properties:
                  response: {}
        '500':
          description: Internal Server Error
          schema:
            allOf:
              - $ref: '#/definitions/model.HTTPError'
              - type: object
                properties:
                  response: {}
  /user/config/update:
    post:
      security:
        - OAuth2Password: []
      description: "### User Config Update By ID\r\n\r\n*Sample INPUT*\r\n\r\n```json\r\n{\r\n  \"user_config\": {\r\n    \"channel_ids\": [\r\n      \"string\"\r\n    ],\r\n    \"role_id\": \"string\",\r\n    \"ui_config\": {\r\n      \"additionalProp1\": {}\r\n    },\r\n    \"usecase_ids\": [\r\n      \"string\"\r\n    ],\r\n    \"user_id\": \"string\"\r\n  },\r\n  \"user_id\": \"string\"\r\n}\r\n```\r\n\r\n*Sample OUTPUT*\r\n\r\n```json\r\n{\r\n  \"message\": \"User Config Updated\",\r\n  \"response\": null,\r\n  \"response_code\": 200\r\n}\r\n```"
      consumes:
        - application/json
      produces:
        - application/json
      tags:
        - User
      summary: User Config Update By ID
      parameters:
        - description: User Config Update By ID Payload
          name: payload
          in: body
          required: true
          schema:
            $ref: '#/definitions/user.userConfigReq'
      responses:
        '200':
          description: OK
          schema:
            allOf:
              - $ref: '#/definitions/model.HTTPResp'
              - type: object
                properties:
                  response: {}
        '400':
          description: Bad Request
          schema:
            allOf:
              - $ref: '#/definitions/model.HTTPError'
              - type: object
                properties:
                  response: {}
        '500':
          description: Internal Server Error
          schema:
            allOf:
              - $ref: '#/definitions/model.HTTPError'
              - type: object
                properties:
                  response: {}
  /user/create:
    put:
      description: "### New User Register\r\n\r\n*Sample INPUT*\r\n\r\n```json\r\n{\r\n  \"email\": \"string\",\r\n  \"first_name\": \"string\",\r\n  \"last_name\": \"string\",\r\n  \"password\": \"string\",\r\n  \"role_key\": \"string\"\r\n}\r\n```\r\n\r\n*Sample OUTPUT*\r\n\r\n```json\r\n{\r\n  \"message\": \"User Registered\",\r\n  \"response\": {\r\n    \"avatar\": \"string\",\r\n    \"channel_ids\": [\r\n      \"string\"\r\n    ],\r\n    \"email\": \"string\",\r\n    \"first_name\": \"string\",\r\n    \"is_active\": true,\r\n    \"is_verified\": true,\r\n    \"last_logged_in_at\": \"string\",\r\n    \"last_name\": \"string\",\r\n    \"role_id\": \"string\",\r\n    \"role_key\": \"string\",\r\n    \"ui_config\": {\r\n      \"additionalProp1\": {}\r\n    },\r\n    \"usecase_ids\": [\r\n      \"string\"\r\n    ],\r\n    \"user_id\": \"string\",\r\n    \"user_name\": \"string\"\r\n  },\r\n  \"response_code\": 201\r\n}\r\n```"
      consumes:
        - application/json
      produces:
        - application/json
      tags:
        - User
      summary: User Register
      parameters:
        - description: User Register Payload
          name: payload
          in: body
          required: true
          schema:
            $ref: '#/definitions/user.userRegisterReq'
      responses:
        '200':
          description: OK
          schema:
            allOf:
              - $ref: '#/definitions/model.HTTPResp'
              - type: object
                properties:
                  response:
                    $ref: '#/definitions/user.userResp'
        '201':
          description: Created
          schema:
            allOf:
              - $ref: '#/definitions/model.HTTPResp'
              - type: object
                properties:
                  response:
                    $ref: '#/definitions/user.userResp'
        '400':
          description: Bad Request
          schema:
            allOf:
              - $ref: '#/definitions/model.HTTPError'
              - type: object
                properties:
                  response: {}
        '500':
          description: Internal Server Error
          schema:
            allOf:
              - $ref: '#/definitions/model.HTTPError'
              - type: object
                properties:
                  response: {}
  /user/delete:
    delete:
      security:
        - OAuth2Password: []
      description: "### User Delete by ID\r\n\r\n*Sample INPUT*\r\n\r\n```json\r\n{\r\n  \"user_id\": \"string\"\r\n}\r\n```\r\n\r\n*Sample OUTPUT*\r\n\r\n```json\r\n{\r\n  \"message\": \"User Deleted\",\r\n  \"response\": null,\r\n  \"response_code\": 200\r\n}\r\n\r\n```"
      consumes:
        - application/json
      produces:
        - application/json
      tags:
        - User
      summary: User Delete
      parameters:
        - description: User Update Payload
          name: payload
          in: body
          required: true
          schema:
            $ref: '#/definitions/user.userDeleteReq'
      responses:
        '200':
          description: OK
          schema:
            allOf:
              - $ref: '#/definitions/model.HTTPResp'
              - type: object
                properties:
                  response: {}
        '400':
          description: Bad Request
          schema:
            allOf:
              - $ref: '#/definitions/model.HTTPError'
              - type: object
                properties:
                  response: {}
        '500':
          description: Internal Server Error
          schema:
            allOf:
              - $ref: '#/definitions/model.HTTPError'
              - type: object
                properties:
                  response: {}
  /user/id:
    post:
      security:
        - OAuth2Password: []
      description: "### User Get by ID\r\n\r\n*Sample INPUT*\r\n\r\n```json\r\n{\r\n  \"user_id\": \"string\"\r\n}\r\n```\r\n\r\n*Sample OUTPUT*\r\n\r\n```json\r\n{\r\n  \"message\": \"User By ID\",\r\n  \"response\": {\r\n    \"avatar\": \"string\",\r\n    \"channel_ids\": [\r\n      \"string\"\r\n    ],\r\n    \"email\": \"string\",\r\n    \"first_name\": \"string\",\r\n    \"is_active\": true,\r\n    \"is_verified\": true,\r\n    \"last_logged_in_at\": \"string\",\r\n    \"last_name\": \"string\",\r\n    \"role_id\": \"string\",\r\n    \"role_key\": \"string\",\r\n    \"ui_config\": {\r\n      \"additionalProp1\": {}\r\n    },\r\n    \"usecase_ids\": [\r\n      \"string\"\r\n    ],\r\n    \"user_id\": \"string\",\r\n    \"user_name\": \"string\"\r\n  },\r\n  \"response_code\": 200\r\n}\r\n\r\n```"
      consumes:
        - application/json
      produces:
        - application/json
      tags:
        - User
      summary: User Get By ID
      parameters:
        - description: User Get By ID Payload
          name: payload
          in: body
          required: true
          schema:
            $ref: '#/definitions/user.userIDReq'
      responses:
        '200':
          description: OK
          schema:
            allOf:
              - $ref: '#/definitions/model.HTTPResp'
              - type: object
                properties:
                  response:
                    $ref: '#/definitions/user.userResp'
        '400':
          description: Bad Request
          schema:
            allOf:
              - $ref: '#/definitions/model.HTTPError'
              - type: object
                properties:
                  response: {}
        '500':
          description: Internal Server Error
          schema:
            allOf:
              - $ref: '#/definitions/model.HTTPError'
              - type: object
                properties:
                  response: {}
  /user/info:
    post:
      security:
        - OAuth2Password: []
      description: "### User Info by Access token\r\n\r\n*Sample OUTPUT*\r\n\r\n```json\r\n{\r\n  \"message\": \"User By ID\",\r\n  \"response\": {\r\n    \"avatar\": \"string\",\r\n    \"channel_ids\": [\r\n      \"string\"\r\n    ],\r\n    \"email\": \"string\",\r\n    \"first_name\": \"string\",\r\n    \"is_active\": true,\r\n    \"is_verified\": true,\r\n    \"last_logged_in_at\": \"string\",\r\n    \"last_name\": \"string\",\r\n    \"role_id\": \"string\",\r\n    \"role_key\": \"string\",\r\n    \"ui_config\": {\r\n      \"additionalProp1\": {}\r\n    },\r\n    \"usecase_ids\": [\r\n      \"string\"\r\n    ],\r\n    \"user_id\": \"string\",\r\n    \"user_name\": \"string\",\r\n    \"user_config\": {\r\n      \"channel_ids\": [\r\n        \"string\"\r\n      ],\r\n      \"role_id\": \"string\",\r\n      \"ui_config\": {\r\n        \"additionalProp1\": {}\r\n      },\r\n      \"usecase_ids\": [\r\n        \"string\"\r\n      ],\r\n      \"user_id\": \"string\"\r\n    }\r\n  },\r\n  \"response_code\": 200\r\n}\r\n\r\n```"
      consumes:
        - application/json
      produces:
        - application/json
      tags:
        - User
      summary: User Info
      responses:
        '200':
          description: OK
          schema:
            allOf:
              - $ref: '#/definitions/model.HTTPResp'
              - type: object
                properties:
                  response:
                    allOf:
                      - $ref: '#/definitions/user.userResp'
                      - type: object
                        properties:
                          user_config:
                            $ref: '#/definitions/user.userConfigResp'
        '400':
          description: Bad Request
          schema:
            allOf:
              - $ref: '#/definitions/model.HTTPError'
              - type: object
                properties:
                  response: {}
        '500':
          description: Internal Server Error
          schema:
            allOf:
              - $ref: '#/definitions/model.HTTPError'
              - type: object
                properties:
                  response: {}
  /user/list:
    post:
      security:
        - OAuth2Password: []
      description: "### User List`\r\n\r\n*Sample OUTPUT*\r\n\r\n```json\r\n{\r\n  \"message\": \"User List\",\r\n  \"response\": [\r\n    {\r\n      \"avatar\": \"string\",\r\n      \"channel_ids\": [\r\n        \"string\"\r\n      ],\r\n      \"email\": \"string\",\r\n      \"first_name\": \"string\",\r\n      \"is_active\": true,\r\n      \"is_verified\": true,\r\n      \"last_logged_in_at\": \"string\",\r\n      \"last_name\": \"string\",\r\n      \"role_id\": \"string\",\r\n      \"role_key\": \"string\",\r\n      \"ui_config\": {\r\n        \"additionalProp1\": {}\r\n      },\r\n      \"usecase_ids\": [\r\n        \"string\"\r\n      ],\r\n      \"user_id\": \"string\",\r\n      \"user_name\": \"string\"\r\n    }\r\n  ],\r\n  \"response_code\": 200\r\n}\r\n\r\n```"
      consumes:
        - application/json
      produces:
        - application/json
      tags:
        - User
      summary: User List
      responses:
        '200':
          description: OK
          schema:
            allOf:
              - $ref: '#/definitions/model.HTTPRespArray'
              - type: object
                properties:
                  response:
                    type: array
                    items:
                      $ref: '#/definitions/user.userResp'
        '400':
          description: Bad Request
          schema:
            allOf:
              - $ref: '#/definitions/model.HTTPError'
              - type: object
                properties:
                  response: {}
        '500':
          description: Internal Server Error
          schema:
            allOf:
              - $ref: '#/definitions/model.HTTPError'
              - type: object
                properties:
                  response: {}
  /user/update:
    patch:
      security:
        - OAuth2Password: []
      description: "### User Update by ID\r\n\r\n*Sample INPUT*\r\n\r\n```json\r\n{\r\n  \"change_password\": true,\r\n  \"confirm_password\": \"string\",\r\n  \"email\": \"string\",\r\n  \"first_name\": \"string\",\r\n  \"last_name\": \"string\",\r\n  \"password\": \"string\",\r\n  \"role_id\": \"string\",\r\n  \"user_id\": \"string\"\r\n}\r\n```\r\n\r\n*Sample OUTPUT*\r\n\r\n```json\r\n{\r\n  \"message\": \"User Updated\",\r\n  \"response\": null,\r\n  \"response_code\": 200\r\n}\r\n```"
      consumes:
        - application/json
      produces:
        - application/json
      tags:
        - User
      summary: User Update
      parameters:
        - description: User Update Payload
          name: payload
          in: body
          required: true
          schema:
            $ref: '#/definitions/user.userUpdateReq'
      responses:
        '200':
          description: OK
          schema:
            allOf:
              - $ref: '#/definitions/model.HTTPResp'
              - type: object
                properties:
                  response:
                    $ref: '#/definitions/user.userResp'
        '400':
          description: Bad Request
          schema:
            allOf:
              - $ref: '#/definitions/model.HTTPError'
              - type: object
                properties:
                  response: {}
        '500':
          description: Internal Server Error
          schema:
            allOf:
              - $ref: '#/definitions/model.HTTPError'
              - type: object
                properties:
                  response: {}
definitions:
  acl.component:
    type: object
    properties:
      component_key:
        type: integer
      component_name:
        type: string
  acl.moduleResp:
    type: object
    properties:
      components:
        type: array
        items:
          $ref: '#/definitions/acl.component'
      module_key:
        type: string
      module_name:
        type: string
      module_path:
        type: string
  alert.alertAction:
    type: object
    properties:
      action_access_id:
        type: string
      action_access_token:
        type: string
      action_auth_header:
        type: string
      action_external_link:
        type: string
      action_header:
        type: string
      action_is_auto_payload:
        type: boolean
      action_is_secure:
        type: boolean
      action_message:
        type: string
      action_method:
        type: string
      action_payload:
        type: string
      action_process_delay:
        type: integer
      action_query:
        type: string
      action_subject:
        type: string
      action_to:
        type: string
      action_type:
        type: string
      action_url:
        type: string
  alert.alertActivateDeActivateReq:
    type: object
    required:
      - alert_id
      - channel_id
    properties:
      alert_id:
        type: string
      channel_id:
        type: string
  alert.alertCreateReq:
    type: object
    required:
      - alert_actions
      - alert_frequency
      - alert_name
      - alert_priority
      - alert_threshold
      - alert_threshold_condition
      - alert_threshold_key
      - channel_id
    properties:
      alert_actions:
        type: array
        items:
          type: object
          additionalProperties: true
      alert_frequency:
        type: integer
        maximum: 86400
        minimum: 0
      alert_name:
        type: string
      alert_priority:
        type: string
      alert_threshold:
        type: string
      alert_threshold_condition:
        type: string
      alert_threshold_key:
        type: string
      channel_id:
        type: string
  alert.alertIDReq:
    type: object
    required:
      - alert_id
    properties:
      alert_id:
        type: string
  alert.alertListReq:
    type: object
    required:
      - channel_id
    properties:
      channel_id:
        type: string
  alert.alertResp:
    type: object
    properties:
      alert_actions:
        type: array
        items:
          $ref: '#/definitions/alert.alertAction'
      alert_frequency:
        type: integer
      alert_id:
        type: string
      alert_name:
        type: string
      alert_priority:
        type: string
      alert_threshold:
        type: string
      alert_threshold_condition:
        type: string
      alert_threshold_key:
        type: string
      is_active:
        type: boolean
  alert.alertUpdateReq:
    type: object
    required:
      - alert_actions
      - alert_frequency
      - alert_id
      - alert_name
      - alert_priority
      - alert_threshold
      - alert_threshold_condition
      - alert_threshold_key
      - channel_id
    properties:
      alert_actions:
        type: array
        items:
          type: object
          additionalProperties: true
      alert_frequency:
        type: integer
        maximum: 86400
        minimum: 0
      alert_id:
        type: string
      alert_name:
        type: string
      alert_priority:
        type: string
      alert_threshold:
        type: string
      alert_threshold_condition:
        type: string
      alert_threshold_key:
        type: string
      channel_id:
        type: string
  alert.event:
    type: object
    properties:
      alert:
        type: integer
      down:
        type: integer
      dwell_time:
        type: integer
      fire:
        type: integer
      frame_collision:
        type: integer
      frame_near_miss:
        type: integer
      high_smoke:
        type: integer
      id:
        type: integer
      ids:
        type: array
        items:
          type: string
      intermediate_smoke:
        type: integer
      low_smoke:
        type: integer
      metadata:
        type: string
      moving_average_count:
        type: integer
      non_violation:
        type: integer
      occupancy:
        type: integer
      threshold:
        type: string
      time:
        type: string
      total:
        type: integer
      total_collision:
        type: integer
      total_near_miss:
        type: integer
      up:
        type: integer
      violation:
        type: integer
  alert.eventRangeResp:
    type: object
    properties:
      agg_frequency:
        type: string
      channel_id:
        type: string
      end:
        type: string
      event_limit:
        type: integer
      event_offset:
        type: integer
      events:
        type: array
        items:
          $ref: '#/definitions/alert.event'
      start:
        type: string
      usecase_key:
        type: string
  alert.eventStatsResp:
    type: object
    properties:
      channel_alert:
        $ref: '#/definitions/model.AlertData'
      channel_id:
        type: string
      channel_key:
        type: string
      channel_name:
        type: string
      channel_stats:
        $ref: '#/definitions/model.StatsData'
      channel_total_alert:
        type: integer
      channel_total_notification:
        type: integer
      usecase_key:
        type: string
  alert.gallery:
    type: object
    properties:
      image:
        type: array
        items:
          type: integer
      time_stamp:
        type: string
      uuid:
        type: string
  alert.galleryResp:
    type: object
    properties:
      channel_id:
        type: string
      gallery:
        type: array
        items:
          $ref: '#/definitions/alert.gallery'
      usecase_key:
        type: string
  alert.notificationRangeResp:
    type: object
    properties:
      channel_id:
        type: string
      end:
        type: string
      notifications:
        type: array
        items:
          $ref: '#/definitions/alert.notificationUUIDResp'
      start:
        type: string
      usecase_key:
        type: string
  alert.notificationStatResp:
    type: object
    properties:
      usecase_channel:
        type: array
        items:
          $ref: '#/definitions/alert.eventStatsResp'
      usecase_key:
        type: string
      usecase_total_alert:
        type: integer
      usecase_total_notification:
        type: integer
      usecase_total_stats:
        $ref: '#/definitions/structs.Stats'
  alert.notificationUUIDResp:
    type: object
    properties:
      channel_id:
        type: string
      notification_data:
        $ref: '#/definitions/structs.DefaultEmail'
      notification_extra:
        type: string
      notification_time:
        type: string
      notification_uuid:
        type: string
      usecase_key:
        type: string
  auth.userAuthReq:
    type: object
    required:
      - email
      - password
    properties:
      email:
        type: string
      password:
        type: string
  config.settingInitResp:
    type: object
  config.smsConfResp:
    type: object
    properties:
      sms_auth_key:
        type: string
      sms_auth_token:
        type: string
      sms_from:
        type: string
      sms_provider:
        type: string
      sms_to:
        type: string
  config.smtpConfResp:
    type: object
    properties:
      smtp_attachment:
        type: boolean
      smtp_auth:
        type: boolean
      smtp_from:
        type: string
      smtp_host:
        type: string
      smtp_password:
        type: string
      smtp_port:
        type: integer
      smtp_to:
        type: string
      smtp_username:
        type: string
  customer.channelAnalyticResp:
    type: object
    properties:
      channel_favorite:
        type: boolean
      channel_id:
        type: string
      channel_key:
        type: string
      channel_name:
        type: string
      channel_sid:
        type: string
      channel_threshold_duration:
        type: integer
      device_id:
        type: string
      is_active:
        type: boolean
      is_storage:
        type: boolean
      is_verified:
        type: boolean
      nimble_id:
        type: string
      pipeline_id:
        type: string
      site_id:
        type: string
      source_id:
        type: string
      usecase_icon:
        type: string
      usecase_id:
        type: string
      usecase_key:
        type: string
      usecase_meta_key:
        type: array
        items:
          type: string
      usecase_name:
        type: string
  customer.channelResp:
    type: object
    properties:
      channel_favorite:
        type: boolean
      channel_id:
        type: string
      channel_key:
        type: string
      channel_name:
        type: string
      channel_sid:
        type: string
      channel_threshold_duration:
        type: integer
      device_id:
        type: string
      is_active:
        type: boolean
      is_storage:
        type: boolean
      is_verified:
        type: boolean
      nimble_id:
        type: string
      pipeline_id:
        type: string
      source_id:
        type: string
      usecase_icon:
        type: string
      usecase_id:
        type: string
      usecase_key:
        type: string
      usecase_meta_key:
        type: array
        items:
          type: string
      usecase_name:
        type: string
  customer.customerAddress:
    type: object
    required:
      - customer_city
      - customer_country
      - customer_state
      - customer_zip
    properties:
      customer_area:
        type: string
      customer_city:
        type: string
      customer_country:
        type: string
      customer_state:
        type: string
      customer_street:
        type: string
      customer_unit:
        type: string
      customer_zip:
        type: string
  customer.customerCreateReq:
    type: object
    required:
      - customer_address
      - customer_description
      - customer_icon
      - customer_key
      - customer_name
      - organization_id
    properties:
      customer_address:
        $ref: '#/definitions/customer.customerAddress'
      customer_contact:
        type: array
        items:
          type: string
      customer_description:
        type: string
      customer_icon:
        type: string
      customer_key:
        type: string
      customer_name:
        type: string
      customer_sites:
        type: array
        items:
          type: string
      customer_type:
        type: string
      organization_id:
        type: string
  customer.customerIDReq:
    type: object
    required:
      - customer_id
    properties:
      customer_id:
        type: string
  customer.customerResp:
    type: object
    required:
      - customer_address
      - customer_description
      - customer_icon
      - customer_id
      - customer_key
      - customer_name
      - organization_id
    properties:
      customer_address:
        $ref: '#/definitions/customer.customerAddress'
      customer_contact:
        type: array
        items:
          type: string
      customer_description:
        type: string
      customer_icon:
        type: string
      customer_id:
        type: string
      customer_key:
        type: string
      customer_name:
        type: string
      customer_sites:
        type: array
        items:
          type: string
      customer_type:
        type: string
      organization_id:
        type: string
  customer.customerSiteAssignReq:
    type: object
    required:
      - customer_id
      - site_ids
    properties:
      customer_id:
        type: string
      site_ids:
        type: array
        items:
          type: string
  customer.customerUpdateReq:
    type: object
    required:
      - customer_address
      - customer_description
      - customer_icon
      - customer_id
      - customer_key
      - customer_name
      - organization_id
    properties:
      customer_address:
        $ref: '#/definitions/customer.customerAddress'
      customer_contact:
        type: array
        items:
          type: string
      customer_description:
        type: string
      customer_icon:
        type: string
      customer_id:
        type: string
      customer_key:
        type: string
      customer_name:
        type: string
      customer_sites:
        type: array
        items:
          type: string
      customer_type:
        type: string
      organization_id:
        type: string
  customer.customerViewAnalyticResp:
    type: object
    properties:
      usecase_background_color:
        type: string
      usecase_channels:
        type: array
        items:
          $ref: '#/definitions/customer.channelAnalyticResp'
      usecase_component_key:
        type: string
      usecase_desc:
        type: string
      usecase_icon:
        type: string
      usecase_id:
        type: string
      usecase_key:
        type: string
      usecase_meta_key:
        type: array
        items:
          type: string
      usecase_name:
        type: string
  customer.customerViewDeviceResp:
    type: object
    properties:
      site_address:
        $ref: '#/definitions/customer.siteAddress'
      site_description:
        type: string
      site_devices:
        type: array
        items:
          $ref: '#/definitions/customer.deviceResp'
      site_icon:
        type: string
      site_id:
        type: string
      site_image:
        type: string
      site_key:
        type: string
      site_name:
        type: string
      site_type:
        type: string
  customer.deviceResp:
    type: object
    properties:
      device_id:
        type: string
      device_identifier:
        type: string
      device_name:
        type: string
      device_source:
        type: array
        items:
          $ref: '#/definitions/customer.sourceResp'
      device_state:
        type: boolean
      device_status:
        type: string
      device_tags:
        type: object
        additionalProperties:
          type: string
      device_type:
        type: string
      device_uuid:
        type: string
      device_value:
        type: string
      source_channels:
        type: array
        items:
          $ref: '#/definitions/customer.channelResp'
  customer.geoLocation:
    type: object
    required:
      - lat
      - long
    properties:
      lat:
        type: number
      long:
        type: number
  customer.siteAddress:
    type: object
    properties:
      site_area:
        type: string
      site_city:
        type: string
      site_country:
        type: string
      site_geolocation:
        $ref: '#/definitions/customer.geoLocation'
      site_state:
        type: string
      site_street:
        type: string
      site_unit:
        type: string
      site_zip:
        type: string
  customer.sourceResp:
    type: object
    properties:
      source_address:
        type: string
      source_fps:
        type: number
      source_id:
        type: string
      source_name:
        type: string
      source_sid:
        type: integer
      source_type:
        type: string
  device.channelResp:
    type: object
    properties:
      channel_favorite:
        type: boolean
      channel_id:
        type: string
      channel_key:
        type: string
      channel_name:
        type: string
      channel_sid:
        type: string
      channel_threshold_duration:
        type: integer
      is_active:
        type: boolean
      is_storage:
        type: boolean
      is_verified:
        type: boolean
      nimble_id:
        type: string
      pipeline_id:
        type: string
      source_id:
        type: string
      usecase_icon:
        type: string
      usecase_id:
        type: string
      usecase_key:
        type: string
      usecase_meta_key:
        type: array
        items:
          type: string
      usecase_name:
        type: string
  device.deviceCreateReq:
    type: object
    required:
      - device_identifier
      - device_name
      - device_tags
      - device_type
      - site_id
    properties:
      device_identifier:
        type: string
      device_name:
        type: string
      device_streams:
        type: array
        items:
          $ref: '#/definitions/device.deviceStream'
      device_tags:
        type: object
        additionalProperties:
          type: string
      device_type:
        type: string
      device_uuid:
        type: string
      site_id:
        type: string
  device.deviceDeleteReq:
    type: object
    required:
      - device_id
    properties:
      device_id:
        type: string
  device.deviceIDReq:
    type: object
    required:
      - device_id
    properties:
      device_id:
        type: string
  device.deviceResp:
    type: object
    properties:
      device_id:
        type: string
      device_identifier:
        type: string
      device_name:
        type: string
      device_source:
        type: array
        items:
          $ref: '#/definitions/device.sourceResp'
      device_state:
        type: boolean
      device_status:
        type: string
      device_streams:
        type: array
        items:
          $ref: '#/definitions/device.deviceStream'
      device_tags:
        type: object
        additionalProperties:
          type: string
      device_type:
        type: string
      device_uuid:
        type: string
      device_value:
        type: string
      site_id:
        type: string
      source_channels:
        type: array
        items:
          $ref: '#/definitions/device.channelResp'
  device.deviceStream:
    type: object
    properties:
      address:
        type: string
      fps:
        $ref: '#/definitions/device.streamFPS'
      id:
        type: integer
      password:
        type: string
      port:
        type: integer
      protocol:
        type: string
      resolution:
        $ref: '#/definitions/device.streamResolution'
      type:
        type: string
      username:
        type: string
      uuid:
        type: string
  device.deviceUpdateReq:
    type: object
    required:
      - device_id
      - device_identifier
      - device_name
      - device_tags
      - device_type
      - site_id
    properties:
      device_id:
        type: string
      device_identifier:
        type: string
      device_name:
        type: string
      device_streams:
        type: array
        items:
          $ref: '#/definitions/device.deviceStream'
      device_tags:
        type: object
        additionalProperties:
          type: string
      device_type:
        type: string
      device_uuid:
        type: string
      site_id:
        type: string
  device.sourceResp:
    type: object
    properties:
      source_address:
        type: string
      source_channels:
        type: array
        items:
          $ref: '#/definitions/device.channelResp'
      source_fps:
        type: number
      source_id:
        type: string
      source_name:
        type: string
      source_sid:
        type: integer
      source_type:
        type: string
  device.staticContentCreateReq:
    type: object
    required:
      - device_id
      - id
      - static_content_data
      - static_content_name
      - static_content_type
    properties:
      device_id:
        type: string
      id:
        type: integer
      static_content_data:
        type: object
        additionalProperties: true
      static_content_name:
        type: string
      static_content_type:
        type: string
  device.staticContentIDReq:
    type: object
    required:
      - static_content_id
    properties:
      static_content_id:
        type: string
  device.staticContentResp:
    type: object
    required:
      - device_id
      - id
      - static_content_data
      - static_content_name
      - static_content_type
    properties:
      device_id:
        type: string
      id:
        type: integer
      static_content_data:
        type: object
        additionalProperties: true
      static_content_id:
        type: string
      static_content_name:
        type: string
      static_content_type:
        type: string
  device.staticContentUpdateReq:
    type: object
    required:
      - device_id
      - id
      - static_content_data
      - static_content_id
      - static_content_name
      - static_content_type
    properties:
      device_id:
        type: string
      id:
        type: integer
      static_content_data:
        type: object
        additionalProperties: true
      static_content_id:
        type: string
      static_content_name:
        type: string
      static_content_type:
        type: string
  device.streamFPS:
    type: object
    properties:
      input:
        type: number
  device.streamResolution:
    type: object
    properties:
      height:
        type: integer
      width:
        type: integer
  model.AlertData:
    type: object
    properties:
      channel:
        type: string
      condition:
        type: string
      count:
        type: integer
      key:
        type: string
      name:
        type: string
      time:
        type: string
  model.HTTPError:
    type: object
    properties:
      message:
        type: string
      response: {}
      response_code:
        type: integer
  model.HTTPResp:
    type: object
    properties:
      message:
        type: string
      response: {}
      response_code:
        type: integer
  model.HTTPRespArray:
    type: object
    properties:
      message:
        type: string
      response:
        type: array
        items: {}
      response_code:
        type: integer
  model.StatsData:
    type: object
    properties:
      alert:
        type: integer
      down:
        type: integer
      dwell_time:
        type: integer
      fire:
        type: integer
      frame_collision:
        type: integer
      frame_near_miss:
        type: integer
      high_smoke:
        type: integer
      ids:
        type: array
        items:
          type: string
      intermediate_smoke:
        type: integer
      low_smoke:
        type: integer
      moving_average_count:
        type: integer
      non_violation:
        type: integer
      occupancy:
        type: integer
      total:
        type: integer
      total_collision:
        type: integer
      total_near_miss:
        type: integer
      up:
        type: integer
      violation:
        type: integer
  nimble.nimbleConfReq:
    type: object
    properties:
      nimble_host:
        type: string
      site_key:
        type: string
  nimble.nimbleResp:
    type: object
    properties:
      nimble_address:
        type: string
      nimble_api_version:
        type: string
      nimble_created_at:
        type: string
      nimble_hash:
        type: string
      nimble_host_name:
        type: string
      nimble_id:
        type: string
      nimble_is_active:
        type: boolean
      nimble_is_secure:
        type: boolean
      nimble_is_statistics:
        type: boolean
      nimble_name:
        type: string
      nimble_port:
        type: integer
      nimble_routes:
        type: object
        additionalProperties: true
      nimble_status:
        type: integer
      nimble_updated_at:
        type: string
      nimble_version:
        type: string
      site_id:
        type: string
      site_key:
        type: string
  nimble.nimbleStats:
    type: object
    properties:
      cpu:
        type: number
      mem_physical:
        type: integer
      mem_virtual:
        type: integer
      time:
        type: string
  nimble.nimbleStatsResp:
    type: object
    properties:
      nimble_id:
        type: string
      nimble_stats:
        type: array
        items:
          $ref: '#/definitions/nimble.nimbleStats'
      nimble_uptime:
        type: number
  organization.geoLocation:
    type: object
    required:
      - lat
      - long
    properties:
      lat:
        type: number
      long:
        type: number
  organization.organizationAddress:
    type: object
    required:
      - organization_area
      - organization_city
      - organization_country
      - organization_geolocation
      - organization_state
      - organization_street
      - organization_unit
      - organization_zip
    properties:
      organization_area:
        type: string
      organization_city:
        type: string
      organization_country:
        type: string
      organization_geolocation:
        $ref: '#/definitions/organization.geoLocation'
      organization_state:
        type: string
      organization_street:
        type: string
      organization_unit:
        type: string
      organization_zip:
        type: string
  organization.organizationCreateReq:
    type: object
    required:
      - organization_address
      - organization_description
      - organization_icon
      - organization_key
      - organization_name
      - organization_website
    properties:
      organization_address:
        $ref: '#/definitions/organization.organizationAddress'
      organization_description:
        type: string
      organization_icon:
        type: string
      organization_key:
        type: string
      organization_name:
        type: string
      organization_website:
        type: string
  organization.organizationIDReq:
    type: object
    required:
      - organization_id
    properties:
      organization_id:
        type: string
  organization.organizationResp:
    type: object
    required:
      - organization_address
      - organization_description
      - organization_icon
      - organization_key
      - organization_name
      - organization_website
    properties:
      organization_address:
        $ref: '#/definitions/organization.organizationAddress'
      organization_description:
        type: string
      organization_icon:
        type: string
      organization_id:
        type: string
      organization_key:
        type: string
      organization_name:
        type: string
      organization_website:
        type: string
  organization.organizationUpdateReq:
    type: object
    required:
      - organization_address
      - organization_description
      - organization_icon
      - organization_id
      - organization_key
      - organization_name
      - organization_website
    properties:
      organization_address:
        $ref: '#/definitions/organization.organizationAddress'
      organization_description:
        type: string
      organization_icon:
        type: string
      organization_id:
        type: string
      organization_key:
        type: string
      organization_name:
        type: string
      organization_website:
        type: string
  pipeline.pipelineCreateReq:
    type: object
    required:
      - nimble_id
      - pipeline_elements
      - pipeline_name
      - pipeline_source
      - pipeline_usecase
    properties:
      nimble_id:
        type: string
      pipeline_elements:
        type: array
        items: {}
      pipeline_name:
        type: string
      pipeline_source:
        type: array
        items:
          type: integer
      pipeline_usecase:
        type: string
  pipeline.pipelineDefaultsResp:
    type: object
    required:
      - default_data
    properties:
      default_data:
        type: object
        additionalProperties: true
  pipeline.pipelineIDReq:
    type: object
    required:
      - pipeline_id
    properties:
      pipeline_id:
        type: string
  pipeline.pipelineResp:
    type: object
    required:
      - nimble_id
      - pipeline_elements
      - pipeline_name
      - pipeline_source
      - pipeline_usecase
    properties:
      nimble_id:
        type: string
      pipeline_elements:
        type: array
        items: {}
      pipeline_id:
        type: string
      pipeline_name:
        type: string
      pipeline_source:
        type: array
        items:
          type: integer
      pipeline_usecase:
        type: string
  role.roleListResp:
    type: object
    properties:
      role_id:
        type: string
      role_key:
        type: string
      role_name:
        type: string
  schedule.scheduleCreateReq:
    type: object
    required:
      - alert_id
      - channel_id
      - schedule_name
      - schedule_occurrence
    properties:
      alert_id:
        type: string
      channel_id:
        type: string
      schedule_name:
        type: string
      schedule_occurrence:
        type: array
        items:
          $ref: '#/definitions/schedule.scheduleOccurrence'
      schedule_type:
        type: string
  schedule.scheduleIDReq:
    type: object
    required:
      - schedule_id
    properties:
      schedule_id:
        type: string
  schedule.scheduleListReq:
    type: object
    required:
      - channel_id
    properties:
      channel_id:
        type: string
  schedule.scheduleOccurrence:
    type: object
    required:
      - occurrence_activate_cron
      - occurrence_constraint
      - occurrence_deactivate_cron
      - occurrence_end_time
      - occurrence_is_allday
      - occurrence_start_time
    properties:
      occurrence_activate_cron:
        type: string
      occurrence_constraint:
        type: string
      occurrence_deactivate_cron:
        type: string
      occurrence_end_time:
        type: string
      occurrence_id:
        type: integer
      occurrence_is_allday:
        type: boolean
      occurrence_start_time:
        type: string
  schedule.scheduleResp:
    type: object
    properties:
      alert_id:
        type: string
      channel_id:
        type: string
      is_active:
        type: boolean
      schedule_id:
        type: string
      schedule_name:
        type: string
      schedule_occurrence:
        type: array
        items:
          $ref: '#/definitions/schedule.scheduleOccurrence'
      schedule_type:
        type: string
  schedule.scheduleUpdateReq:
    type: object
    required:
      - alert_id
      - channel_id
      - schedule_id
      - schedule_name
      - schedule_occurrence
    properties:
      alert_id:
        type: string
      channel_id:
        type: string
      schedule_id:
        type: string
      schedule_name:
        type: string
      schedule_occurrence:
        type: array
        items:
          $ref: '#/definitions/schedule.scheduleOccurrence'
      schedule_type:
        type: string
  site.channelResp:
    type: object
    properties:
      channel_favorite:
        type: boolean
      channel_id:
        type: string
      channel_key:
        type: string
      channel_name:
        type: string
      channel_sid:
        type: string
      channel_threshold_duration:
        type: integer
      device_id:
        type: string
      is_active:
        type: boolean
      is_storage:
        type: boolean
      is_verified:
        type: boolean
      nimble_id:
        type: string
      pipeline_id:
        type: string
      source_id:
        type: string
      usecase_icon:
        type: string
      usecase_id:
        type: string
      usecase_key:
        type: string
      usecase_meta_key:
        type: array
        items:
          type: string
      usecase_name:
        type: string
  site.deviceResp:
    type: object
    properties:
      device_id:
        type: string
      device_identifier:
        type: string
      device_name:
        type: string
      device_source:
        type: array
        items:
          $ref: '#/definitions/site.sourceResp'
      device_state:
        type: boolean
      device_status:
        type: string
      device_tags:
        type: object
        additionalProperties:
          type: string
      device_type:
        type: string
      device_uuid:
        type: string
      device_value:
        type: string
      source_channels:
        type: array
        items:
          $ref: '#/definitions/site.channelResp'
  site.geoLocation:
    type: object
    required:
      - lat
      - long
    properties:
      lat:
        type: number
      long:
        type: number
  site.siteAddress:
    type: object
    required:
      - site_city
      - site_country
      - site_geolocation
      - site_state
      - site_zip
    properties:
      site_area:
        type: string
      site_city:
        type: string
      site_country:
        type: string
      site_geolocation:
        $ref: '#/definitions/site.geoLocation'
      site_state:
        type: string
      site_street:
        type: string
      site_unit:
        type: string
      site_zip:
        type: string
  site.siteCreateReq:
    type: object
    required:
      - customer_id
      - organization_id
      - site_address
      - site_description
      - site_icon
      - site_image
      - site_key
      - site_name
      - site_type
    properties:
      customer_id:
        type: string
      organization_id:
        type: string
      site_address:
        $ref: '#/definitions/site.siteAddress'
      site_description:
        type: string
      site_icon:
        type: string
      site_image:
        type: string
      site_key:
        type: string
      site_name:
        type: string
      site_type:
        type: string
  site.siteDeleteReq:
    type: object
    required:
      - site_id
    properties:
      site_id:
        type: string
  site.siteResp:
    type: object
    required:
      - site_address
      - site_description
      - site_icon
      - site_id
      - site_key
      - site_name
      - site_type
    properties:
      site_address:
        $ref: '#/definitions/site.siteAddress'
      site_description:
        type: string
      site_icon:
        type: string
      site_id:
        type: string
      site_image:
        type: string
      site_key:
        type: string
      site_name:
        type: string
      site_total_devices:
        type: integer
      site_type:
        type: string
  site.siteUpdateReq:
    type: object
    required:
      - customer_id
      - organization_id
      - site_address
      - site_description
      - site_icon
      - site_id
      - site_image
      - site_key
      - site_name
      - site_type
    properties:
      customer_id:
        type: string
      organization_id:
        type: string
      site_address:
        $ref: '#/definitions/site.siteAddress'
      site_description:
        type: string
      site_icon:
        type: string
      site_id:
        type: string
      site_image:
        type: string
      site_key:
        type: string
      site_name:
        type: string
      site_type:
        type: string
  site.siteViewResp:
    type: object
    properties:
      site_address:
        $ref: '#/definitions/site.siteAddress'
      site_description:
        type: string
      site_devices:
        type: array
        items:
          $ref: '#/definitions/site.deviceResp'
      site_icon:
        type: string
      site_id:
        type: string
      site_image:
        type: string
      site_key:
        type: string
      site_name:
        type: string
      site_type:
        type: string
  site.sourceResp:
    type: object
    properties:
      source_address:
        type: string
      source_fps:
        type: number
      source_id:
        type: string
      source_name:
        type: string
      source_sid:
        type: integer
      source_type:
        type: string
  source.channelResp:
    type: object
    properties:
      channel_favorite:
        type: boolean
      channel_id:
        type: string
      channel_key:
        type: string
      channel_name:
        type: string
      channel_sid:
        type: string
      channel_threshold_duration:
        type: integer
      is_active:
        type: boolean
      is_storage:
        type: boolean
      is_verified:
        type: boolean
      nimble_id:
        type: string
      pipeline_id:
        type: string
      source_id:
        type: string
      usecase_icon:
        type: string
      usecase_id:
        type: string
      usecase_key:
        type: string
      usecase_meta_key:
        type: array
        items:
          type: string
      usecase_name:
        type: string
  source.sourceCreateReq:
    type: object
    required:
      - device_id
      - nimble_id
      - source_address
      - source_fps
      - source_name
      - source_type
    properties:
      device_id:
        type: string
      nimble_id:
        type: string
      source_address:
        type: string
      source_fps:
        type: number
      source_name:
        type: string
      source_type:
        type: string
      static_content:
        type: array
        items:
          type: object
          additionalProperties: true
  source.sourceIDReq:
    type: object
    required:
      - source_id
    properties:
      source_id:
        type: string
  source.sourceMappingResp:
    type: object
    properties:
      is_default:
        type: boolean
      nimble_address:
        type: string
      nimble_hostname:
        type: string
      nimble_id:
        type: string
      site_id:
        type: string
      site_name:
        type: string
      sources:
        type: array
        items:
          $ref: '#/definitions/source.sourceResp'
  source.sourceResp:
    type: object
    required:
      - device_id
      - nimble_id
      - source_address
      - source_fps
      - source_name
      - source_type
    properties:
      device_id:
        type: string
      nimble_id:
        type: string
      source_address:
        type: string
      source_channels:
        type: array
        items:
          $ref: '#/definitions/source.channelResp'
      source_fps:
        type: number
      source_id:
        type: string
      source_name:
        type: string
      source_type:
        type: string
      static_content:
        type: array
        items:
          type: object
          additionalProperties: true
  status.statusResp:
    type: object
    properties:
      is_onboarding:
        type: boolean
      nimble_module:
        type: boolean
      sms_module:
        type: boolean
      smtp_module:
        type: boolean
      storage_module:
        type: boolean
      websocket_module:
        type: boolean
  structs.DefaultEmail:
    type: object
    properties:
      attachment:
        type: string
      from:
        type: string
      message:
        type: string
      subject:
        type: string
      to:
        type: string
  structs.Stats:
    type: object
    properties:
      down:
        type: integer
      dwelltime:
        type: integer
      fire:
        type: integer
      framecollision:
        type: integer
      framenearmiss:
        type: integer
      highsmoke:
        type: integer
      intermediatesmoke:
        type: integer
      lowsmoke:
        type: integer
      movingaveragecount:
        type: integer
      nonviolation:
        type: integer
      occupancy:
        type: integer
      total:
        type: integer
      totalcollision:
        type: integer
      totalnearmiss:
        type: integer
      up:
        type: integer
      violation:
        type: integer
  usecase.channelAssignReq:
    type: object
    required:
      - channel_id
      - user_id
    properties:
      channel_id:
        type: array
        items:
          type: string
      user_id:
        type: string
  usecase.channelCreateReq:
    type: object
    required:
      - channel_name
      - channel_sid
      - channel_threshold
      - usecase_key
    properties:
      channel_name:
        type: string
      channel_sid:
        type: string
      channel_threshold:
        type: string
      channel_threshold_duration:
        type: integer
      usecase_key:
        type: string
  usecase.channelDeleteReq:
    type: object
    required:
      - channel_id
    properties:
      channel_id:
        type: string
  usecase.channelListReq:
    type: object
    required:
      - usecase_key
    properties:
      usecase_key:
        type: string
  usecase.channelResp:
    type: object
    properties:
      channel_favorite:
        type: boolean
      channel_id:
        type: string
      channel_key:
        type: string
      channel_name:
        type: string
      channel_sid:
        type: string
      channel_threshold:
        type: string
      channel_threshold_duration:
        type: integer
      is_active:
        type: boolean
      is_storage:
        type: boolean
      is_verified:
        type: boolean
      pipeline_id:
        type: string
      usecase_key:
        type: string
  usecase.channelStatsResp:
    type: object
    properties:
      channel_alert:
        $ref: '#/definitions/model.AlertData'
      channel_id:
        type: string
      channel_key:
        type: string
      channel_name:
        type: string
      channel_stats:
        $ref: '#/definitions/model.StatsData'
      channel_total_alert:
        type: integer
      channel_total_notification:
        type: integer
      usecase_key:
        type: string
  usecase.channelStatusResp:
    type: object
    properties:
      is_active:
        type: boolean
      is_storage:
        type: boolean
      is_verified:
        type: boolean
  usecase.channelUnAssignReq:
    type: object
    required:
      - channel_id
      - user_id
    properties:
      channel_id:
        type: array
        items:
          type: string
      user_id:
        type: string
  usecase.channelUpdateReq:
    type: object
    required:
      - channel_id
      - channel_key
      - usecase_key
    properties:
      channel_id:
        type: string
      channel_key:
        type: string
      channel_name:
        type: string
      channel_sid:
        type: string
      channel_threshold:
        type: string
      channel_threshold_duration:
        type: integer
      usecase_key:
        type: string
  usecase.usecaseAssignReq:
    type: object
    required:
      - usecase_id
      - user_id
    properties:
      usecase_id:
        type: array
        items:
          type: string
      user_id:
        type: string
  usecase.usecaseCreateReq:
    type: object
    properties:
      usecase_background_color:
        type: string
      usecase_channel_count:
        type: integer
      usecase_component_key:
        type: string
      usecase_desc:
        type: string
      usecase_icon:
        type: string
      usecase_key:
        type: string
      usecase_meta_key:
        type: array
        items:
          type: string
      usecase_name:
        type: string
  usecase.usecaseDeleteReq:
    type: object
    required:
      - usecase_id
    properties:
      usecase_id:
        type: string
  usecase.usecaseResp:
    type: object
    properties:
      usecase_background_color:
        type: string
      usecase_channel_count:
        type: integer
      usecase_component_key:
        type: string
      usecase_desc:
        type: string
      usecase_icon:
        type: string
      usecase_id:
        type: string
      usecase_key:
        type: string
      usecase_meta_key:
        type: array
        items:
          type: string
      usecase_name:
        type: string
  usecase.usecaseStatReq:
    type: object
    required:
      - details
      - frequency
      - usecase_key
      - usecase_meta_key
    properties:
      details:
        type: boolean
      frequency:
        type: string
      usecase_key:
        type: string
      usecase_meta_key:
        type: array
        items:
          type: string
  usecase.usecaseStatResp:
    type: object
    properties:
      usecase_channel:
        type: array
        items:
          $ref: '#/definitions/usecase.channelStatsResp'
      usecase_key:
        type: string
      usecase_total_alert:
        type: integer
      usecase_total_notification:
        type: integer
      usecase_total_stats:
        $ref: '#/definitions/model.StatsData'
  usecase.usecaseUnAssignReq:
    type: object
    required:
      - usecase_id
      - user_id
    properties:
      usecase_id:
        type: array
        items:
          type: string
      user_id:
        type: string
  usecase.usecaseUpdateReq:
    type: object
    properties:
      usecase_background_color:
        type: string
      usecase_channel_count:
        type: integer
      usecase_component_key:
        type: string
      usecase_desc:
        type: string
      usecase_icon:
        type: string
      usecase_key:
        type: string
      usecase_name:
        type: string
  user.userAuthReq:
    type: object
    required:
      - email
      - password
    properties:
      email:
        type: string
      password:
        type: string
  user.userConfigReq:
    type: object
    required:
      - user_id
    properties:
      user_config:
        $ref: '#/definitions/user.userConfigResp'
      user_id:
        type: string
  user.userConfigResp:
    type: object
    properties:
      channel_ids:
        type: array
        items:
          type: string
      role_id:
        type: string
      ui_config:
        type: object
        additionalProperties: true
      usecase_ids:
        type: array
        items:
          type: string
      user_id:
        type: string
  user.userDeleteReq:
    type: object
    required:
      - user_id
    properties:
      user_id:
        type: string
  user.userIDReq:
    type: object
    required:
      - user_id
    properties:
      user_id:
        type: string
  user.userRegisterReq:
    type: object
    required:
      - email
      - first_name
      - last_name
      - password
      - role_key
    properties:
      email:
        type: string
      first_name:
        type: string
      last_name:
        type: string
      password:
        type: string
      role_key:
        type: string
  user.userResp:
    type: object
    properties:
      avatar:
        type: string
      channel_ids:
        type: array
        items:
          type: string
      email:
        type: string
      first_name:
        type: string
      is_active:
        type: boolean
      is_verified:
        type: boolean
      last_logged_in_at:
        type: string
      last_name:
        type: string
      role_id:
        type: string
      role_key:
        type: string
      ui_config:
        type: object
        additionalProperties: true
      usecase_ids:
        type: array
        items:
          type: string
      user_id:
        type: string
      user_name:
        type: string
  user.userUpdateReq:
    type: object
    required:
      - change_password
      - email
      - role_id
      - user_id
    properties:
      change_password:
        type: boolean
      confirm_password:
        type: string
      email:
        type: string
      first_name:
        type: string
      last_name:
        type: string
      password:
        type: string
      role_id:
        type: string
      user_id:
        type: string
securityDefinitions:
  OAuth2Password:
    type: oauth2
    flow: password
    tokenUrl: http://localhost:8000/oauth2/token
