lib/google_api/apigee/v1/model/google_cloud_apigee_v1_organization.ex

# 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.Apigee.V1.Model.GoogleCloudApigeeV1Organization do
  @moduledoc """


  ## Attributes

  *   `addonsConfig` (*type:* `GoogleApi.Apigee.V1.Model.GoogleCloudApigeeV1AddonsConfig.t`, *default:* `nil`) - Addon configurations of the Apigee organization.
  *   `analyticsRegion` (*type:* `String.t`, *default:* `nil`) - Required. Primary GCP region for analytics data storage. For valid values, see [Create an Apigee organization](https://cloud.google.com/apigee/docs/api-platform/get-started/create-org).
  *   `attributes` (*type:* `list(String.t)`, *default:* `nil`) - Not used by Apigee.
  *   `authorizedNetwork` (*type:* `String.t`, *default:* `nil`) - Compute Engine network used for Service Networking to be peered with Apigee runtime instances. See [Getting started with the Service Networking API](https://cloud.google.com/service-infrastructure/docs/service-networking/getting-started). Valid only when [RuntimeType](#RuntimeType) is set to `CLOUD`. The value must be set before the creation of a runtime instance and can be updated only when there are no runtime instances. For example: `default`. Apigee also supports shared VPC (that is, the host network project is not the same as the one that is peering with Apigee). See [Shared VPC overview](https://cloud.google.com/vpc/docs/shared-vpc). To use a shared VPC network, use the following format: `projects/{host-project-id}/{region}/networks/{network-name}`. For example: `projects/my-sharedvpc-host/global/networks/mynetwork` **Note:** Not supported for Apigee hybrid.
  *   `billingType` (*type:* `String.t`, *default:* `nil`) - Billing type of the Apigee organization. See [Apigee pricing](https://cloud.google.com/apigee/pricing).
  *   `caCertificate` (*type:* `String.t`, *default:* `nil`) - Output only. Base64-encoded public certificate for the root CA of the Apigee organization. Valid only when [RuntimeType](#RuntimeType) is `CLOUD`.
  *   `createdAt` (*type:* `String.t`, *default:* `nil`) - Output only. Time that the Apigee organization was created in milliseconds since epoch.
  *   `customerName` (*type:* `String.t`, *default:* `nil`) - Not used by Apigee.
  *   `description` (*type:* `String.t`, *default:* `nil`) - Description of the Apigee organization.
  *   `displayName` (*type:* `String.t`, *default:* `nil`) - Display name for the Apigee organization. Unused, but reserved for future use.
  *   `environments` (*type:* `list(String.t)`, *default:* `nil`) - Output only. List of environments in the Apigee organization.
  *   `expiresAt` (*type:* `String.t`, *default:* `nil`) - Output only. Time that the Apigee organization is scheduled for deletion.
  *   `lastModifiedAt` (*type:* `String.t`, *default:* `nil`) - Output only. Time that the Apigee organization was last modified in milliseconds since epoch.
  *   `name` (*type:* `String.t`, *default:* `nil`) - Output only. Name of the Apigee organization.
  *   `portalDisabled` (*type:* `boolean()`, *default:* `nil`) - Configuration for the Portals settings.
  *   `projectId` (*type:* `String.t`, *default:* `nil`) - Output only. Project ID associated with the Apigee organization.
  *   `properties` (*type:* `GoogleApi.Apigee.V1.Model.GoogleCloudApigeeV1Properties.t`, *default:* `nil`) - Properties defined in the Apigee organization profile.
  *   `runtimeDatabaseEncryptionKeyName` (*type:* `String.t`, *default:* `nil`) - Cloud KMS key name used for encrypting the data that is stored and replicated across runtime instances. Update is not allowed after the organization is created. Required when [RuntimeType](#RuntimeType) is `CLOUD`. If not specified when [RuntimeType](#RuntimeType) is `TRIAL`, a Google-Managed encryption key will be used. For example: "projects/foo/locations/us/keyRings/bar/cryptoKeys/baz". **Note:** Not supported for Apigee hybrid.
  *   `runtimeType` (*type:* `String.t`, *default:* `nil`) - Required. Runtime type of the Apigee organization based on the Apigee subscription purchased.
  *   `state` (*type:* `String.t`, *default:* `nil`) - Output only. State of the organization. Values other than ACTIVE means the resource is not ready to use.
  *   `subscriptionType` (*type:* `String.t`, *default:* `nil`) - Output only. DEPRECATED: This will eventually be replaced by BillingType. Subscription type of the Apigee organization. Valid values include trial (free, limited, and for evaluation purposes only) or paid (full subscription has been purchased). See [Apigee pricing](https://cloud.google.com/apigee/pricing/).
  *   `type` (*type:* `String.t`, *default:* `nil`) - Not used by Apigee.
  """

  use GoogleApi.Gax.ModelBase

  @type t :: %__MODULE__{
          :addonsConfig => GoogleApi.Apigee.V1.Model.GoogleCloudApigeeV1AddonsConfig.t() | nil,
          :analyticsRegion => String.t() | nil,
          :attributes => list(String.t()) | nil,
          :authorizedNetwork => String.t() | nil,
          :billingType => String.t() | nil,
          :caCertificate => String.t() | nil,
          :createdAt => String.t() | nil,
          :customerName => String.t() | nil,
          :description => String.t() | nil,
          :displayName => String.t() | nil,
          :environments => list(String.t()) | nil,
          :expiresAt => String.t() | nil,
          :lastModifiedAt => String.t() | nil,
          :name => String.t() | nil,
          :portalDisabled => boolean() | nil,
          :projectId => String.t() | nil,
          :properties => GoogleApi.Apigee.V1.Model.GoogleCloudApigeeV1Properties.t() | nil,
          :runtimeDatabaseEncryptionKeyName => String.t() | nil,
          :runtimeType => String.t() | nil,
          :state => String.t() | nil,
          :subscriptionType => String.t() | nil,
          :type => String.t() | nil
        }

  field(:addonsConfig, as: GoogleApi.Apigee.V1.Model.GoogleCloudApigeeV1AddonsConfig)
  field(:analyticsRegion)
  field(:attributes, type: :list)
  field(:authorizedNetwork)
  field(:billingType)
  field(:caCertificate)
  field(:createdAt)
  field(:customerName)
  field(:description)
  field(:displayName)
  field(:environments, type: :list)
  field(:expiresAt)
  field(:lastModifiedAt)
  field(:name)
  field(:portalDisabled)
  field(:projectId)
  field(:properties, as: GoogleApi.Apigee.V1.Model.GoogleCloudApigeeV1Properties)
  field(:runtimeDatabaseEncryptionKeyName)
  field(:runtimeType)
  field(:state)
  field(:subscriptionType)
  field(:type)
end

defimpl Poison.Decoder, for: GoogleApi.Apigee.V1.Model.GoogleCloudApigeeV1Organization do
  def decode(value, options) do
    GoogleApi.Apigee.V1.Model.GoogleCloudApigeeV1Organization.decode(value, options)
  end
end

defimpl Poison.Encoder, for: GoogleApi.Apigee.V1.Model.GoogleCloudApigeeV1Organization do
  def encode(value, options) do
    GoogleApi.Gax.ModelBase.encode(value, options)
  end
end