docs: def schedule_snapshot(self):
          """Trigger snapshot to be uploaded to AWS.
          Return success state."""
          # Notes:
          #  - Snapshots are not immediate.
          #  - Snapshots will be cached for predefined amount
          #    of time.
          #  - Snapshots are not balanced. To get a better
          #    image, it must be taken from the stream, a few
          #    seconds after stream start.
          url = SNAPSHOTS_ENDPOINT
          params = SNAPSHOTS_BODY
          params['from'] = "{0}_web".format(self.user_id)
          params['to'] = self.device_id
          params['resource'] = "cameras/{0}".format(self.device_id)
          params['transId'] = "web!{0}".format(self.xcloud_id)
  
          # override headers
          headers = {'xCloudId': self.xcloud_id}
  
          _LOGGER.debug("Snapshot device %s", self.name)
          _LOGGER.debug("Device params %s", params)
          _LOGGER.debug("Device headers %s", headers)
  
          ret = self._session.query(url,
                                    method='POST',
                                    extra_params=params,
                                    extra_headers=headers)
  
          _LOGGER.debug("Snapshot results %s", ret)
  
          return ret is not None and ret.get('success')