docs: def get_example_curl_lines(method: str, url: str, params: dict,
                             headers: dict) -> List[str]:
      """Render a cURL command for the given request.
  
      :param str method: HTTP request method (e.g. "GET").
      :param str url: HTTP request URL.
      :param dict params: JSON body, for POST and PUT requests.
      :param dict headers: A dict of HTTP headers.
      :returns: list
      """
      parts = ['curl {}'.format(pipes.quote(url))]
      parts.append('-X {}'.format(method))
      for header in headers:
          parts.append("-H '{}: {}'".format(header, headers[header]))
      if method not in ('DELETE', 'GET'):
          # Don't append a json body if there are no params.
          if params:
              parts.append("-H 'Content-Type: application/json' -d")
              pretty_json = json.dumps(params, separators=(',', ': '), indent=4,
                                       sort_keys=True)
              # add indentation for the closing bracket of the json body
              json_lines = pretty_json.split('\n')
              json_lines[-1] = '   ' + json_lines[-1]
              pretty_json = '\n'.join(json_lines)
              parts.append(pipes.quote(pretty_json))
      wrapped = [parts.pop(0)]
      for part in parts:
          if len(wrapped[-1]) + len(part) < 80:
              wrapped[-1] += ' ' + part
          else:
              wrapped[-1] += ' \\'
              wrapped.append('  ' + part)
      return wrapped