defmodule EasyPost.Batch do @doc """ Add shipments to a `Batch`. """ @spec add_shipments(String.t(), map) :: EasyPost.Operation.t() def add_shipments(id, params) do %EasyPost.Operation{ method: :post, params: params, path: "/batches/#{id}/add_shipments" } end @doc """ Create a `Batch`. """ @spec create(map) :: EasyPost.Operation.t() def create(params) do %EasyPost.Operation{ method: :post, params: params, path: "/batches" } end @doc """ Generate a label for a `Batch`. """ @spec label(String.t(), map) :: EasyPost.Operation.t() def label(id, params) do %EasyPost.Operation{ method: :post, params: params, path: "/batches/#{id}/label" } end @doc """ Remove shipments from a `Batch`. """ @spec remove_shipments(String.t(), map) :: EasyPost.Operation.t() def remove_shipments(id, params) do %EasyPost.Operation{ method: :post, params: params, path: "/batches/#{id}/remove_shipments" } end @doc """ Generate a manifest for a `Batch`. """ @spec scan_form(String.t()) :: EasyPost.Operation.t() def scan_form(id) do %EasyPost.Operation{ method: :post, path: "/batches/#{id}/scan_form" } end end