Packages
google_api_spanner
0.7.0
0.48.0
0.47.1
0.47.0
0.46.0
0.45.0
0.44.0
0.43.0
0.42.1
0.42.0
0.41.1
0.41.0
0.40.0
0.39.0
0.38.0
0.37.0
0.36.0
0.35.1
0.35.0
0.34.7
0.34.6
0.34.5
0.34.4
0.34.3
0.34.2
0.34.1
0.34.0
0.33.0
0.32.1
0.32.0
0.31.1
0.31.0
0.30.0
0.29.0
0.28.0
0.27.0
0.26.0
0.25.1
0.25.0
0.24.0
0.23.1
0.23.0
0.22.1
0.22.0
0.21.4
0.21.3
0.21.2
0.21.1
0.21.0
0.20.1
0.20.0
0.19.0
0.18.0
0.17.0
0.16.0
0.15.0
0.14.0
0.13.0
0.12.0
0.11.0
0.10.0
0.9.0
0.8.0
0.7.0
0.6.1
0.6.0
0.5.0
0.2.0
0.1.0
0.0.1
Cloud Spanner API client library. Cloud Spanner is a managed, mission-critical, globally consistent and scalable relational database service.
Current section
Files
Jump to
Current section
Files
lib/google_api/spanner/v1/model/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 class is auto generated by the elixir code generator program.
# Do not edit the class manually.
defmodule GoogleApi.Spanner.V1.Model.Instance do
@moduledoc """
An isolated set of Cloud Spanner resources on which databases can be hosted.
## Attributes
* `config` (*type:* `String.t`, *default:* `nil`) - Required. The name of the instance's configuration. Values are of the form
`projects/<project>/instanceConfigs/<configuration>`. See
also InstanceConfig and
ListInstanceConfigs.
* `displayName` (*type:* `String.t`, *default:* `nil`) - Required. The descriptive name for this instance as it appears in UIs.
Must be unique per project and between 4 and 30 characters in length.
* `labels` (*type:* `map()`, *default:* `nil`) - Cloud Labels are a flexible and lightweight mechanism for organizing cloud
resources into groups that reflect a customer's organizational needs and
deployment strategies. Cloud Labels can be used to filter collections of
resources. They can be used to control how resource metrics are aggregated.
And they can be used as arguments to policy management rules (e.g. route,
firewall, load balancing, etc.).
* Label keys must be between 1 and 63 characters long and must conform to
the following regular expression: `[a-z]([-a-z0-9]*[a-z0-9])?`.
* Label values must be between 0 and 63 characters long and must conform
to the regular expression `([a-z]([-a-z0-9]*[a-z0-9])?)?`.
* No more than 64 labels can be associated with a given resource.
See https://goo.gl/xmQnxf for more information on and examples of labels.
If you plan to use labels in your own code, please note that additional
characters may be allowed in the future. And so you are advised to use an
internal label representation, such as JSON, which doesn't rely upon
specific characters being disallowed. For example, representing labels
as the string: name + "_" + value would prove problematic if we were to
allow "_" in a future release.
* `name` (*type:* `String.t`, *default:* `nil`) - Required. A unique identifier for the instance, which cannot be changed
after the instance is created. Values are of the form
`projects/<project>/instances/a-z*[a-z0-9]`. The final
segment of the name must be between 2 and 64 characters in length.
* `nodeCount` (*type:* `integer()`, *default:* `nil`) - Required. The number of nodes allocated to this instance. This may be zero
in API responses for instances that are not yet in state `READY`.
See [the
documentation](https://cloud.google.com/spanner/docs/instances#node_count)
for more information about nodes.
* `state` (*type:* `String.t`, *default:* `nil`) - Output only. The current instance state. For
CreateInstance, the state must be
either omitted or set to `CREATING`. For
UpdateInstance, the state must be
either omitted or set to `READY`.
"""
use GoogleApi.Gax.ModelBase
@type t :: %__MODULE__{
:config => String.t(),
:displayName => String.t(),
:labels => map(),
:name => String.t(),
:nodeCount => integer(),
:state => String.t()
}
field(:config)
field(:displayName)
field(:labels, type: :map)
field(:name)
field(:nodeCount)
field(:state)
end
defimpl Poison.Decoder, for: GoogleApi.Spanner.V1.Model.Instance do
def decode(value, options) do
GoogleApi.Spanner.V1.Model.Instance.decode(value, options)
end
end
defimpl Poison.Encoder, for: GoogleApi.Spanner.V1.Model.Instance do
def encode(value, options) do
GoogleApi.Gax.ModelBase.encode(value, options)
end
end