QlikElixir.REST.DataFiles (qlik_elixir v0.3.5)

View Source

Qlik Cloud Data Files REST API client.

Provides functions to manage data files including uploading, listing, updating, and organizing files across spaces.

API Reference: https://qlik.dev/apis/rest/data-files/

Summary

Functions

Moves multiple data files to a different space in a batch.

Deletes multiple data files in a batch.

Changes the owner of a data file.

Moves a data file to a different space.

Deletes a data file.

Finds a data file by name.

Gets details for a specific data file.

Gets storage quotas for data files.

Lists data files.

Lists data file connections.

Updates (replaces) a data file's content.

Uploads content as a new data file.

Uploads a file from a file path.

Functions

batch_change_space(file_ids, space_id, opts \\ [])

@spec batch_change_space([String.t()], String.t(), keyword()) ::
  {:ok, map()} | {:error, QlikElixir.Error.t()}

Moves multiple data files to a different space in a batch.

Examples

iex> QlikElixir.REST.DataFiles.batch_change_space(["file-1", "file-2"], "space-456")
{:ok, %{"movedIds" => ["file-1", "file-2"]}}

batch_delete(file_ids, opts \\ [])

@spec batch_delete(
  [String.t()],
  keyword()
) :: {:ok, map()} | {:error, QlikElixir.Error.t()}

Deletes multiple data files in a batch.

Examples

iex> QlikElixir.REST.DataFiles.batch_delete(["file-1", "file-2"])
{:ok, %{"deletedIds" => ["file-1", "file-2"]}}

change_owner(file_id, owner_id, opts \\ [])

@spec change_owner(String.t(), String.t(), keyword()) ::
  {:ok, map()} | {:error, QlikElixir.Error.t()}

Changes the owner of a data file.

Examples

iex> QlikElixir.REST.DataFiles.change_owner("file-123", "user-456")
{:ok, %{"id" => "file-123", "ownerId" => "user-456"}}

change_space(file_id, space_id, opts \\ [])

@spec change_space(String.t(), String.t(), keyword()) ::
  {:ok, map()} | {:error, QlikElixir.Error.t()}

Moves a data file to a different space.

Examples

iex> QlikElixir.REST.DataFiles.change_space("file-123", "space-456")
{:ok, %{"id" => "file-123", "spaceId" => "space-456"}}

delete(file_id, opts \\ [])

@spec delete(
  String.t(),
  keyword()
) :: :ok | {:error, QlikElixir.Error.t()}

Deletes a data file.

Examples

iex> QlikElixir.REST.DataFiles.delete("file-123")
:ok

find_by_name(filename, opts \\ [])

@spec find_by_name(
  String.t(),
  keyword()
) :: {:ok, map()} | {:error, QlikElixir.Error.t()}

Finds a data file by name.

Options

  • :connection_id - Filter by connection ID
  • :config - Custom configuration

Examples

iex> QlikElixir.REST.DataFiles.find_by_name("sales.csv")
{:ok, %{"id" => "file-123", "name" => "sales.csv"}}

get(file_id, opts \\ [])

@spec get(
  String.t(),
  keyword()
) :: {:ok, map()} | {:error, QlikElixir.Error.t()}

Gets details for a specific data file.

Examples

iex> QlikElixir.REST.DataFiles.get("file-123")
{:ok, %{"id" => "file-123", "name" => "sales.csv"}}

get_quotas(opts \\ [])

@spec get_quotas(keyword()) :: {:ok, map()} | {:error, QlikElixir.Error.t()}

Gets storage quotas for data files.

Examples

iex> QlikElixir.REST.DataFiles.get_quotas()
{:ok, %{"maxBytes" => 10737418240, "usedBytes" => 1073741824}}

list(opts \\ [])

@spec list(keyword()) :: {:ok, map()} | {:error, QlikElixir.Error.t()}

Lists data files.

Options

  • :connection_id - Filter by connection ID
  • :limit - Maximum number of files to return
  • :next - Cursor for pagination
  • :config - Custom configuration

Examples

iex> QlikElixir.REST.DataFiles.list(connection_id: "conn-123")
{:ok, %{"data" => [...]}}

list_connections(opts \\ [])

@spec list_connections(keyword()) :: {:ok, map()} | {:error, QlikElixir.Error.t()}

Lists data file connections.

Examples

iex> QlikElixir.REST.DataFiles.list_connections()
{:ok, %{"data" => [%{"id" => "conn-1", "name" => "Personal Files"}]}}

update(file_id, content, opts \\ [])

@spec update(String.t(), binary(), keyword()) ::
  {:ok, map()} | {:error, QlikElixir.Error.t()}

Updates (replaces) a data file's content.

Examples

iex> QlikElixir.REST.DataFiles.update("file-123", "new,content")
{:ok, %{"id" => "file-123", "size" => 11}}

upload(content, filename, opts \\ [])

@spec upload(binary(), String.t(), keyword()) ::
  {:ok, map()} | {:error, QlikElixir.Error.t()}

Uploads content as a new data file.

Parameters

  • content - The file content (binary)
  • filename - Name for the file (must end with .csv)
  • opts - Options including :config, :connection_id

Examples

iex> QlikElixir.REST.DataFiles.upload("col1,col2\nval1,val2", "data.csv")
{:ok, %{"id" => "new-file"}}

upload_file(file_path, opts \\ [])

@spec upload_file(
  String.t(),
  keyword()
) :: {:ok, map()} | {:error, QlikElixir.Error.t()}

Uploads a file from a file path.

Options

  • :name - Custom filename (defaults to basename of file_path)
  • :connection_id - Data connection ID
  • :config - Custom configuration

Examples

iex> QlikElixir.REST.DataFiles.upload_file("/path/to/sales.csv")
{:ok, %{"id" => "file-123"}}