lib/ex_aws/bedrock/request.ex

defmodule ExAws.Bedrock.Request do
  @moduledoc """
  Perform AWS requests signed with the correct service.

  Actions on Amazon Bedrock Runtime need to be signed with Bedrock.
  """

  @doc """
  Perform an AWS request with correct service.

  See `ExAws.request/2`.
  """
  def request(op, config_overrides \\ []),
    do: ExAws.request(op, check_service_override(op, config_overrides))

  @doc """
  Perform an AWS request with correct service, raise if it fails.

  See `ExAws.request!/2`.
  """
  def request!(op, config_overrides \\ []),
    do: ExAws.request!(op, check_service_override(op, config_overrides))

  @doc """
  Return a stream for the AWS resource.

  See `ExAws.stream!/2`.
  """
  def stream!(op, config_overrides \\ []),
    do: ExAws.stream!(op, check_service_override(op, config_overrides))

  defp check_service_override(%{service: :"bedrock-runtime"}, config_overrides),
    do: [{:service_override, :bedrock} | config_overrides]

  defp check_service_override(_, config_overrides), do: config_overrides
end