lib/easypost/carrier_account.ex

defmodule EasyPost.CarrierAccount do
  @doc """
  Create a `CarrierAccount`.
  """
  @spec create(map) :: EasyPost.Operation.t()
  def create(params) do
    %EasyPost.Operation{
      method: :post,
      params: params,
      path: "/carrier_accounts"
    }
  end

  @doc """
  Delete a `CarrierAccount`.
  """
  @spec delete(String.t()) :: EasyPost.Operation.t()
  def delete(id) do
    %EasyPost.Operation{ method: :delete, path: "/carrier_accounts/#{id}" }
  end

  @doc """
  Retrieve a `CarrierAccount`.
  """
  @spec get(String.t()) :: EasyPost.Operation.t()
  def get(id) do
    %EasyPost.Operation{ method: :get, path: "/carrier_accounts/#{id}" }
  end

  @doc """
  Retrieve a list of `CarrierAccount`'s.
  """
  @spec list :: EasyPost.Operation.t()
  def list do
    %EasyPost.Operation{ method: :get, path: "/carrier_accounts" }
  end

  @doc """
  Update a `CarrierAccount`.
  """
  @spec update(String.t(), map) :: EasyPost.Operation.t()
  def update(id, params) do
    %EasyPost.Operation{
      method: :put,
      params: params,
      path: "/carrier_accounts/#{id}"
    }
  end
end