action() :: String.t
data() :: Map.t
key() :: String.t
resource() :: String.t
process(data, key, action, resource) :: :ok