code: def put(self, url, name, data, params=None, headers=None, connection=None):
          
          assert name, 'Snapshot name must be specified'
          params = params or {}
          headers = headers or {}
          endpoint = self._build_endpoint_url(url, name)
          self._authenticate(params, headers)
          data = json.dumps(data, cls=JSONEncoder)
          return make_put_request(endpoint, data, params, headers,
                                  connection=connection)
docs: Synchronous PUT request. There will be no returning output from
          the server, because the request will be made with ``silent``
          parameter. ``data`` must be a JSONable value.