code: public CharSource getReportAsCharSource(ReportDownloadOptions options)
        throws IOException, ApiException_Exception {
      Preconditions.checkArgument(
          SUPPORTED_CHARSOUCE_EXPORT_FORMATS.contains(options.getExportFormat()),
          "ExportFormat " + options.getExportFormat() + " cannot be used with CharSource");
      ByteSource byteSource = Resources.asByteSource(getDownloadUrl(options));
      return (options.isUseGzipCompression() ? new GZippedByteSource(byteSource) : byteSource)
          .asCharSource(REPORT_CHARSET);
    }
docs: Returns a CharSource of report contents with {@code ReportDownloadOptions}. The ExportFormat
  must be string-based, such as {@link
  com.google.api.ads.admanager.jaxws.v201805.ExportFormat#CSV_DUMP}.
  
  @param options the options to download the report with
  @return a new CharSource of report results
  @throws IOException if there was an error performing any I/O action, including any SOAP calls
  @throws ApiException_Exception if there was any problem making the SOAP call
  @throws IllegalStateException if the report is not ready to be downloaded
  @throws IllegalArgumentException if the {@link ExportFormat} is not a string-based format