     validate_only: nil
   end
 
+  defmodule ValidateView do
+    defstruct fourfour: nil,
+    properties: %{}
+  end
+
   defmodule Upsert do
     defstruct fourfour: nil,
     mode: nil,

  defp do_run(%UpdateView{validate_only: validate_only} = uv, w) do
    with {:ok, json} <- Poison.encode(uv.properties) do
      Http.put("/views/#{Http.encode(uv.fourfour)}.json?validateOnly=#{Http.encode(validate_only)}", w, json)
    end
  end


    %{ w | operations: [operation | w.operations] }
  end

  def validate(%Write{} = w, fourfour, properties) do
    operation = %ValidateView{fourfour: fourfour, properties: properties}
    %{ w | operations: [operation | w.operations] }
  end

  def create_column(%Write{} = w, fourfour, name, type, properties) do
    operation = %CreateColumn{name: name, dataTypeName: type, fourfour: fourfour, properties: properties}
    %{ w | operations: [operation | w.operations] }
