# 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 file is auto generated by the elixir code generator program.
# Do not edit this file manually.
defmodule GoogleApi.Reseller.V1.Model.Customer do
@moduledoc """
When a Google customer's account is registered with a reseller, the customer's subscriptions for Google services are managed by this reseller. A customer is described by a primary domain name and a physical address.
## Attributes
* `alternateEmail` (*type:* `String.t`, *default:* `nil`) - Like the "Customer email" in the reseller tools, this email is the secondary contact used if something happens to the customer's service such as service outage or a security issue. This property is required when creating a new "domain" customer and should not use the same domain as `customerDomain`. The `alternateEmail` field is not necessary to create a "team" customer.
* `customerDomain` (*type:* `String.t`, *default:* `nil`) - The customer's primary domain name string. `customerDomain` is required when creating a new customer. Do not include the `www` prefix in the domain when adding a customer.
* `customerDomainVerified` (*type:* `boolean()`, *default:* `nil`) - Whether the customer's primary domain has been verified.
* `customerId` (*type:* `String.t`, *default:* `nil`) - This property will always be returned in a response as the unique identifier generated by Google. In a request, this property can be either the primary domain or the unique identifier generated by Google.
* `customerType` (*type:* `String.t`, *default:* `nil`) - Identifies the type of the customer. Acceptable values include: * `domain`: Implies a domain-verified customer (default). * `team`: Implies an email-verified customer. For more information, see [managed teams](https://support.google.com/a/users/answer/9939479).
* `kind` (*type:* `String.t`, *default:* `reseller#customer`) - Identifies the resource as a customer. Value: `reseller#customer`
* `phoneNumber` (*type:* `String.t`, *default:* `nil`) - Customer contact phone number. Must start with "+" followed by the country code. The rest of the number can be contiguous numbers or respect the phone local format conventions, but it must be a real phone number and not, for example, "123". This field is silently ignored if invalid.
* `postalAddress` (*type:* `GoogleApi.Reseller.V1.Model.Address.t`, *default:* `nil`) - A customer's address information. Each field has a limit of 255 charcters.
* `primaryAdmin` (*type:* `GoogleApi.Reseller.V1.Model.PrimaryAdmin.t`, *default:* `nil`) - The first admin details of the customer, present in case of TEAM customer.
* `resourceUiUrl` (*type:* `String.t`, *default:* `nil`) - URL to customer's Admin console dashboard. The read-only URL is generated by the API service. This is used if your client application requires the customer to complete a task in the Admin console.
"""
use GoogleApi.Gax.ModelBase
@type t :: %__MODULE__{
:alternateEmail => String.t() | nil,
:customerDomain => String.t() | nil,
:customerDomainVerified => boolean() | nil,
:customerId => String.t() | nil,
:customerType => String.t() | nil,
:kind => String.t() | nil,
:phoneNumber => String.t() | nil,
:postalAddress => GoogleApi.Reseller.V1.Model.Address.t() | nil,
:primaryAdmin => GoogleApi.Reseller.V1.Model.PrimaryAdmin.t() | nil,
:resourceUiUrl => String.t() | nil
}
field(:alternateEmail)
field(:customerDomain)
field(:customerDomainVerified)
field(:customerId)
field(:customerType)
field(:kind)
field(:phoneNumber)
field(:postalAddress, as: GoogleApi.Reseller.V1.Model.Address)
field(:primaryAdmin, as: GoogleApi.Reseller.V1.Model.PrimaryAdmin)
field(:resourceUiUrl)
end
defimpl Poison.Decoder, for: GoogleApi.Reseller.V1.Model.Customer do
def decode(value, options) do
GoogleApi.Reseller.V1.Model.Customer.decode(value, options)
end
end
defimpl Poison.Encoder, for: GoogleApi.Reseller.V1.Model.Customer do
def encode(value, options) do
GoogleApi.Gax.ModelBase.encode(value, options)
end
end