Packages

Complete Twilio SDK for Elixir — 37 products, 494 services, 467 resources. Auto-generated from official OpenAPI specs. Finch HTTP/2, retries with jitter, webhooks, TwiML, telemetry, streaming pagination.

Current section

Files

Jump to
twilio_elixir lib twilio video v1 composition_setting composition_settings_service.ex
Raw

lib/twilio/video/v1/composition_setting/composition_settings_service.ex

# File generated from Twilio's OpenAPI spec — do not edit manually
defmodule Twilio.Video.V1.CompositionSetting.CompositionSettingsService do
@moduledoc """
Recording composition settings
Operations: `fetch`, `update`
"""
alias Twilio.Client
alias Twilio.Deserializer
@doc """
Operation: `FetchCompositionSettings` | Tags: VideoV1CompositionSettings
"""
@spec fetch(Client.t(), keyword()) ::
{:ok, Twilio.Resources.Video.V1.CompositionSetting.CompositionSettings.t()}
| {:ok, map(), map()}
| :ok
| {:error, Twilio.Error.t()}
def fetch(client, opts \\ []) do
with {:ok, data} <-
Client.request(client, :get, "/v1/CompositionSettings/Default",
opts: opts,
base_url: "https://video.twilio.com"
) do
{:ok,
Deserializer.deserialize(
data,
Twilio.Resources.Video.V1.CompositionSetting.CompositionSettings
)}
end
end
@doc """
Operation: `CreateCompositionSettings` | Tags: VideoV1CompositionSettings
## Required Parameters
| Parameter | Type | Description |
|-----------|------|-------------|
# credo:disable-for-next-line Credo.Check.Readability.MaxLineLength
| `FriendlyName` | string | A descriptive string that you create to describe the resource and show to the user in the console |
## Optional Parameters
| Parameter | Type | Description |
|-----------|------|-------------|
| `AwsCredentialsSid` | string | The SID of the stored Credential resource. |
# credo:disable-for-next-line Credo.Check.Readability.MaxLineLength
| `AwsS3Url` | string (uri) | The URL of the AWS S3 bucket where the compositions should be stored. We only support DNS-compliant URLs like `https://documentation-example-twilio-bucket/compositions`, where `compositions` is the path in which you want the compositions to be stored. This URL accepts only URI-valid characters, as described in the [RFC 3986](https://tools.ietf.org/html/rfc3986#section-2). |
# credo:disable-for-next-line Credo.Check.Readability.MaxLineLength
| `AwsStorageEnabled` | boolean | Whether all compositions should be written to the `aws_s3_url`. When `false`, all compositions are stored in our cloud. |
# credo:disable-for-next-line Credo.Check.Readability.MaxLineLength
| `EncryptionEnabled` | boolean | Whether all compositions should be stored in an encrypted form. The default is `false`. |
| `EncryptionKeySid` | string | The SID of the Public Key resource to use for encryption. |
"""
@spec update(Client.t(), map(), keyword()) ::
{:ok, Twilio.Resources.Video.V1.CompositionSetting.CompositionSettings.t()}
| {:ok, map(), map()}
| :ok
| {:error, Twilio.Error.t()}
def update(client, params \\ %{}, opts \\ []) do
with {:ok, data} <-
Client.request(client, :post, "/v1/CompositionSettings/Default",
params: params,
opts: opts,
base_url: "https://video.twilio.com",
content_type: :form
) do
{:ok,
Deserializer.deserialize(
data,
Twilio.Resources.Video.V1.CompositionSetting.CompositionSettings
)}
end
end
end