# Copyright 2019 Google LLC # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. # NOTE: This class is auto generated by the elixir code generator program. # Do not edit the class manually. defmodule GoogleApi.Spanner.V1.Model.Mutation do @moduledoc """ A modification to one or more Cloud Spanner rows. Mutations can be applied to a Cloud Spanner database by sending them in a Commit call. ## Attributes * `delete` (*type:* `GoogleApi.Spanner.V1.Model.Delete.t`, *default:* `nil`) - Delete rows from a table. Succeeds whether or not the named rows were present. * `insert` (*type:* `GoogleApi.Spanner.V1.Model.Write.t`, *default:* `nil`) - Insert new rows in a table. If any of the rows already exist, the write or transaction fails with error `ALREADY_EXISTS`. * `insertOrUpdate` (*type:* `GoogleApi.Spanner.V1.Model.Write.t`, *default:* `nil`) - Like insert, except that if the row already exists, then its column values are overwritten with the ones provided. Any column values not explicitly written are preserved. * `replace` (*type:* `GoogleApi.Spanner.V1.Model.Write.t`, *default:* `nil`) - Like insert, except that if the row already exists, it is deleted, and the column values provided are inserted instead. Unlike insert_or_update, this means any values not explicitly written become `NULL`. * `update` (*type:* `GoogleApi.Spanner.V1.Model.Write.t`, *default:* `nil`) - Update existing rows in a table. If any of the rows does not already exist, the transaction fails with error `NOT_FOUND`. """ use GoogleApi.Gax.ModelBase @type t :: %__MODULE__{ :delete => GoogleApi.Spanner.V1.Model.Delete.t(), :insert => GoogleApi.Spanner.V1.Model.Write.t(), :insertOrUpdate => GoogleApi.Spanner.V1.Model.Write.t(), :replace => GoogleApi.Spanner.V1.Model.Write.t(), :update => GoogleApi.Spanner.V1.Model.Write.t() } field(:delete, as: GoogleApi.Spanner.V1.Model.Delete) field(:insert, as: GoogleApi.Spanner.V1.Model.Write) field(:insertOrUpdate, as: GoogleApi.Spanner.V1.Model.Write) field(:replace, as: GoogleApi.Spanner.V1.Model.Write) field(:update, as: GoogleApi.Spanner.V1.Model.Write) end defimpl Poison.Decoder, for: GoogleApi.Spanner.V1.Model.Mutation do def decode(value, options) do GoogleApi.Spanner.V1.Model.Mutation.decode(value, options) end end defimpl Poison.Encoder, for: GoogleApi.Spanner.V1.Model.Mutation do def encode(value, options) do GoogleApi.Gax.ModelBase.encode(value, options) end end