# AUTO-GENERATED FILE - DO NOT EDIT # This file was automatically generated by the XDK build tool. # Any manual changes will be overwritten on the next generation. defmodule Xdk.Media do @moduledoc "Auto-generated client for media operations" @doc """ Get Media by media keys GET /2/media Retrieves details of Media files by their media keys. """ @spec get_by_keys(Xdk.t(), opts :: keyword()) :: {:ok, map()} | {:error, Xdk.Errors.error()} def get_by_keys(client, opts \\ []) do query = [ {"media_keys", Keyword.get(opts, :media_keys)}, {"media.fields", Keyword.get(opts, :media_fields)} ] |> Xdk.Query.build() Xdk.request(client, :get, "/2/media", query: query) end @doc """ Get Media upload status GET /2/media/upload Retrieves the status of a Media upload by its ID. """ @spec get_upload_status(Xdk.t(), opts :: keyword()) :: {:ok, map()} | {:error, Xdk.Errors.error()} def get_upload_status(client, opts \\ []) do query = [ {"media_id", Keyword.get(opts, :media_id)}, {"command", Keyword.get(opts, :command)} ] |> Xdk.Query.build() Xdk.request(client, :get, "/2/media/upload", query: query) end @doc """ Upload media POST /2/media/upload Uploads a media file for use in posts or other content. """ @spec upload(Xdk.t(), body :: map()) :: {:ok, map()} | {:error, Xdk.Errors.error()} def upload(client, body) do Xdk.request(client, :post, "/2/media/upload", json: body) end @doc """ Create Media subtitles POST /2/media/subtitles Creates subtitles for a specific Media file. """ @spec create_subtitles(Xdk.t(), body :: map()) :: {:ok, map()} | {:error, Xdk.Errors.error()} def create_subtitles(client, body) do Xdk.request(client, :post, "/2/media/subtitles", json: body) end @doc """ Delete Media subtitles DELETE /2/media/subtitles Deletes subtitles for a specific Media file. """ @spec delete_subtitles(Xdk.t(), body :: map()) :: {:ok, map()} | {:error, Xdk.Errors.error()} def delete_subtitles(client, body) do Xdk.request(client, :delete, "/2/media/subtitles", json: body) end @doc """ Append Media upload POST /2/media/upload/{id}/append Appends data to a Media upload request. """ @spec append_upload(Xdk.t(), id :: String.t(), body :: map()) :: {:ok, map()} | {:error, Xdk.Errors.error()} def append_upload(client, id, body) do Xdk.request(client, :post, "/2/media/upload/{id}/append", params: %{ "id" => id }, json: body ) end @doc """ Initialize media upload POST /2/media/upload/initialize Initializes a media upload. """ @spec initialize_upload(Xdk.t(), body :: map()) :: {:ok, map()} | {:error, Xdk.Errors.error()} def initialize_upload(client, body) do Xdk.request(client, :post, "/2/media/upload/initialize", json: body) end @doc """ Get Media by media key GET /2/media/{media_key} Retrieves details of a specific Media file by its media key. """ @spec get_by_key(Xdk.t(), media_key :: String.t(), opts :: keyword()) :: {:ok, map()} | {:error, Xdk.Errors.error()} def get_by_key(client, media_key, opts \\ []) do query = [ {"media.fields", Keyword.get(opts, :media_fields)} ] |> Xdk.Query.build() Xdk.request(client, :get, "/2/media/{media_key}", params: %{ "media_key" => media_key }, query: query ) end @doc """ Get Media analytics GET /2/media/analytics Retrieves analytics data for media. """ @spec get_analytics(Xdk.t(), opts :: keyword()) :: {:ok, map()} | {:error, Xdk.Errors.error()} def get_analytics(client, opts \\ []) do query = [ {"media_keys", Keyword.get(opts, :media_keys)}, {"end_time", Keyword.get(opts, :end_time)}, {"start_time", Keyword.get(opts, :start_time)}, {"granularity", Keyword.get(opts, :granularity)}, {"media_analytics.fields", Keyword.get(opts, :media_analytics_fields)} ] |> Xdk.Query.build() Xdk.request(client, :get, "/2/media/analytics", query: query) end @doc """ Finalize Media upload POST /2/media/upload/{id}/finalize Finalizes a Media upload request. """ @spec finalize_upload(Xdk.t(), id :: String.t()) :: {:ok, map()} | {:error, Xdk.Errors.error()} def finalize_upload(client, id) do Xdk.request(client, :post, "/2/media/upload/{id}/finalize", params: %{ "id" => id } ) end @doc """ Create Media metadata POST /2/media/metadata Creates metadata for a Media file. """ @spec create_metadata(Xdk.t(), body :: map()) :: {:ok, map()} | {:error, Xdk.Errors.error()} def create_metadata(client, body) do Xdk.request(client, :post, "/2/media/metadata", json: body) end end