lib/google_api/apigee/v1/model/google_cloud_apigee_v1_instance.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.GoogleCloudApigeeV1Instance do
  @moduledoc """
  Apigee runtime instance.

  ## Attributes

  *   `createdAt` (*type:* `String.t`, *default:* `nil`) - Output only. Time the instance was created in milliseconds since epoch.
  *   `description` (*type:* `String.t`, *default:* `nil`) - Optional. Description of the instance.
  *   `diskEncryptionKeyName` (*type:* `String.t`, *default:* `nil`) - Customer Managed Encryption Key (CMEK) used for disk and volume encryption. Required for Apigee paid subscriptions only. Use the following format: `projects/([^/]+)/locations/([^/]+)/keyRings/([^/]+)/cryptoKeys/([^/]+)`
  *   `displayName` (*type:* `String.t`, *default:* `nil`) - Optional. Display name for the instance.
  *   `host` (*type:* `String.t`, *default:* `nil`) - Output only. Internal hostname or IP address of the Apigee endpoint used by clients to connect to the service.
  *   `ipRange` (*type:* `String.t`, *default:* `nil`) - Optional. IP range represents the customer-provided CIDR block of length 22 that will be used for the Apigee instance creation. This optional range, if provided, should be freely available as part of larger named range the customer has allocated to the Service Networking peering. If this is not provided, Apigee will automatically request for any available /22 CIDR block from Service Networking. The customer should use this CIDR block for configuring their firewall needs to allow traffic from Apigee. Input format: "a.b.c.d/22", Output format: a.b.c.d/22, e.f.g.h/28"
  *   `lastModifiedAt` (*type:* `String.t`, *default:* `nil`) - Output only. Time the instance was last modified in milliseconds since epoch.
  *   `location` (*type:* `String.t`, *default:* `nil`) - Required. Compute Engine location where the instance resides.
  *   `name` (*type:* `String.t`, *default:* `nil`) - Required. Resource ID of the instance. Values must match the regular expression `^a-z{0,30}[a-z\\d]$`.
  *   `peeringCidrRange` (*type:* `String.t`, *default:* `nil`) - Optional. Size of the CIDR block range that will be reserved by the instance. PAID organizations support `SLASH_16` to `SLASH_20` and defaults to `SLASH_16`. Evaluation organizations support only `SLASH_23`.
  *   `port` (*type:* `String.t`, *default:* `nil`) - Output only. Port number of the exposed Apigee endpoint.
  *   `runtimeVersion` (*type:* `String.t`, *default:* `nil`) - Output only. Version of the runtime system running in the instance. The runtime system is the set of components that serve the API Proxy traffic in your Environments.
  *   `state` (*type:* `String.t`, *default:* `nil`) - Output only. State of the instance. Values other than `ACTIVE` means the resource is not ready to use.
  """

  use GoogleApi.Gax.ModelBase

  @type t :: %__MODULE__{
          :createdAt => String.t() | nil,
          :description => String.t() | nil,
          :diskEncryptionKeyName => String.t() | nil,
          :displayName => String.t() | nil,
          :host => String.t() | nil,
          :ipRange => String.t() | nil,
          :lastModifiedAt => String.t() | nil,
          :location => String.t() | nil,
          :name => String.t() | nil,
          :peeringCidrRange => String.t() | nil,
          :port => String.t() | nil,
          :runtimeVersion => String.t() | nil,
          :state => String.t() | nil
        }

  field(:createdAt)
  field(:description)
  field(:diskEncryptionKeyName)
  field(:displayName)
  field(:host)
  field(:ipRange)
  field(:lastModifiedAt)
  field(:location)
  field(:name)
  field(:peeringCidrRange)
  field(:port)
  field(:runtimeVersion)
  field(:state)
end

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

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