ExStreamClient.Operations.Imports (ExStreamClient v0.2.0)

Copy Markdown View Source

Modules for interacting with the imports group of Stream APIs

API Reference: https://getstream.github.io/protocol/?urls.primaryName=Chat%20v2

Shared options

All functions in this module accept the following optional parameters:

  • api_key - API key to use. If not provided, the default key from config will be used
  • authenticate_as_user - User id to authenticate. If not provided, the server key will be used
  • api_key_secret - API key secret to use. If not provided, the default secret from config will be used
  • endpoint - endpoint to use. If not provided, the default endpoint from config will be used
  • client - HTTP client to use. Must implement ExStreamClient.Http.Behavior. Defaults to ExStreamClient.Http
  • req_opts - all of these options will be forwarded to req. See Req.new/1 for available options

Summary

Functions

Creates a new import

Creates a new import v2 task

Deletes an import v2 task. Can only delete tasks in queued state.

Removes the external storage configuration for the app. Idempotent: succeeds even if no configuration exists.

Gets a single import v2 task by ID

Returns the current external storage configuration for the app. Returns 404 if no configuration exists.

Lists all import v2 tasks for the app

Gets an import

Creates or updates the external storage configuration for the app. Currently only AWS S3 (via cross-account IAM role assumption) is supported.

Validates the configured external S3 storage by performing a live STS AssumeRole and S3 ListObjectsV2 check.

Types

shared_opts()

@type shared_opts() :: [
  api_key: String.t(),
  api_key_secret: String.t(),
  authenticate_as_user: String.t(),
  client: module(),
  endpoint: String.t(),
  req_opts: keyword()
]

Functions

create_import(payload, opts \\ [])

Creates a new import

Required Arguments:

Optional Arguments:

create_import_v2_task(payload, opts \\ [])

Creates a new import v2 task

Required Arguments:

Optional Arguments:

delete_import_v2_task(id, opts \\ [])

@spec delete_import_v2_task(String.t(), shared_opts()) ::
  {:ok, ExStreamClient.Model.DeleteImportV2TaskResponse.t()} | {:error, any()}

Deletes an import v2 task. Can only delete tasks in queued state.

Required Arguments:

  • id

Optional Arguments:

delete_importer_external_storage(opts \\ [])

@spec delete_importer_external_storage(shared_opts()) ::
  {:ok, ExStreamClient.Model.DeleteExternalStorageResponse.t()}
  | {:error, any()}

Removes the external storage configuration for the app. Idempotent: succeeds even if no configuration exists.

Optional Arguments:

get_import(id, opts \\ [])

@spec get_import(String.t(), shared_opts()) ::
  {:ok, ExStreamClient.Model.GetImportResponse.t()} | {:error, any()}

Gets an import

Required Arguments:

  • id

Optional Arguments:

get_import_v2_task(id, opts \\ [])

@spec get_import_v2_task(String.t(), shared_opts()) ::
  {:ok, ExStreamClient.Model.GetImportV2TaskResponse.t()} | {:error, any()}

Gets a single import v2 task by ID

Required Arguments:

  • id

Optional Arguments:

get_importer_external_storage(opts \\ [])

@spec get_importer_external_storage(shared_opts()) ::
  {:ok, ExStreamClient.Model.GetExternalStorageResponse.t()} | {:error, any()}

Returns the current external storage configuration for the app. Returns 404 if no configuration exists.

Optional Arguments:

list_import_v2_tasks(opts \\ [])

@spec list_import_v2_tasks([{:state, integer()} | shared_opts()]) ::
  {:ok, ExStreamClient.Model.ListImportV2TasksResponse.t()} | {:error, any()}

Lists all import v2 tasks for the app

Optional Arguments:

list_imports(opts \\ [])

@spec list_imports(shared_opts()) ::
  {:ok, ExStreamClient.Model.ListImportsResponse.t()} | {:error, any()}

Gets an import

Optional Arguments:

upsert_importer_external_storage(payload, opts \\ [])

@spec upsert_importer_external_storage(
  ExStreamClient.Model.UpsertExternalStorageRequest.t(),
  shared_opts()
) ::
  {:ok, ExStreamClient.Model.UpsertExternalStorageResponse.t()}
  | {:error, any()}

Creates or updates the external storage configuration for the app. Currently only AWS S3 (via cross-account IAM role assumption) is supported.

Required Arguments:

Optional Arguments:

validate_importer_external_storage(opts \\ [])

@spec validate_importer_external_storage(shared_opts()) ::
  {:ok, ExStreamClient.Model.ValidateExternalStorageResponse.t()}
  | {:error, any()}

Validates the configured external S3 storage by performing a live STS AssumeRole and S3 ListObjectsV2 check.

Optional Arguments: