docs: async def api_put(self, url, data=None):
          """Make api post request."""
          put = None
          headers = DEFAULT_HEADERS.copy()
          headers.update({'Session-Token': self._token})
  
          try:
              with async_timeout.timeout(DEFAULT_TIMEOUT, loop=self._event_loop):
                  put = await self._api_session.put(
                      url, headers=headers, data=data)
              if put.status != 200:
                  _LOGGER.error('Error putting Eight data: %s', put.status)
                  return None
  
              if 'application/json' in put.headers['content-type']:
                  put_result = await put.json()
              else:
                  _LOGGER.debug('Response was not JSON, returning text.')
                  put_result = await put.text()
  
              return put_result
  
          except (aiohttp.ClientError, asyncio.TimeoutError,
                  ConnectionRefusedError) as err:
              _LOGGER.error('Error putting Eight data. %s', err)
              return None