# 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.DataPipelines.V1.Model.GoogleCloudDatapipelinesV1FlexTemplateRuntimeEnvironment do
@moduledoc """
The environment values to be set at runtime for a Flex Template.
## Attributes
* `additionalExperiments` (*type:* `list(String.t)`, *default:* `nil`) - Additional experiment flags for the job.
* `additionalUserLabels` (*type:* `map()`, *default:* `nil`) - Additional user labels to be specified for the job. Keys and values must follow the restrictions specified in the [labeling restrictions](https://cloud.google.com/compute/docs/labeling-resources#restrictions). An object containing a list of key/value pairs. Example: `{ "name": "wrench", "mass": "1kg", "count": "3" }`.
* `enableStreamingEngine` (*type:* `boolean()`, *default:* `nil`) - Whether to enable Streaming Engine for the job.
* `flexrsGoal` (*type:* `String.t`, *default:* `nil`) - Set FlexRS goal for the job. https://cloud.google.com/dataflow/docs/guides/flexrs
* `ipConfiguration` (*type:* `String.t`, *default:* `nil`) - Configuration for VM IPs.
* `kmsKeyName` (*type:* `String.t`, *default:* `nil`) - Name for the Cloud KMS key for the job. Key format is: projects//locations//keyRings//cryptoKeys/
* `machineType` (*type:* `String.t`, *default:* `nil`) - The machine type to use for the job. Defaults to the value from the template if not specified.
* `maxWorkers` (*type:* `integer()`, *default:* `nil`) - The maximum number of Compute Engine instances to be made available to your pipeline during execution, from 1 to 1000.
* `network` (*type:* `String.t`, *default:* `nil`) - Network to which VMs will be assigned. If empty or unspecified, the service will use the network "default".
* `numWorkers` (*type:* `integer()`, *default:* `nil`) - The initial number of Compute Engine instances for the job.
* `serviceAccountEmail` (*type:* `String.t`, *default:* `nil`) - The email address of the service account to run the job as.
* `subnetwork` (*type:* `String.t`, *default:* `nil`) - Subnetwork to which VMs will be assigned, if desired. You can specify a subnetwork using either a complete URL or an abbreviated path. Expected to be of the form "https://www.googleapis.com/compute/v1/projects/HOST_PROJECT_ID/regions/REGION/subnetworks/SUBNETWORK" or "regions/REGION/subnetworks/SUBNETWORK". If the subnetwork is located in a Shared VPC network, you must use the complete URL.
* `tempLocation` (*type:* `String.t`, *default:* `nil`) - The Cloud Storage path to use for temporary files. Must be a valid Cloud Storage URL, beginning with `gs://`.
* `workerRegion` (*type:* `String.t`, *default:* `nil`) - The Compute Engine region (https://cloud.google.com/compute/docs/regions-zones/regions-zones) in which worker processing should occur, e.g. "us-west1". Mutually exclusive with worker_zone. If neither worker_region nor worker_zone is specified, defaults to the control plane region.
* `workerZone` (*type:* `String.t`, *default:* `nil`) - The Compute Engine zone (https://cloud.google.com/compute/docs/regions-zones/regions-zones) in which worker processing should occur, e.g. "us-west1-a". Mutually exclusive with worker_region. If neither worker_region nor worker_zone is specified, a zone in the control plane region is chosen based on available capacity. If both `worker_zone` and `zone` are set, `worker_zone` takes precedence.
* `zone` (*type:* `String.t`, *default:* `nil`) - The Compute Engine [availability zone](https://cloud.google.com/compute/docs/regions-zones/regions-zones) for launching worker instances to run your pipeline. In the future, worker_zone will take precedence.
"""
use GoogleApi.Gax.ModelBase
@type t :: %__MODULE__{
:additionalExperiments => list(String.t()) | nil,
:additionalUserLabels => map() | nil,
:enableStreamingEngine => boolean() | nil,
:flexrsGoal => String.t() | nil,
:ipConfiguration => String.t() | nil,
:kmsKeyName => String.t() | nil,
:machineType => String.t() | nil,
:maxWorkers => integer() | nil,
:network => String.t() | nil,
:numWorkers => integer() | nil,
:serviceAccountEmail => String.t() | nil,
:subnetwork => String.t() | nil,
:tempLocation => String.t() | nil,
:workerRegion => String.t() | nil,
:workerZone => String.t() | nil,
:zone => String.t() | nil
}
field(:additionalExperiments, type: :list)
field(:additionalUserLabels, type: :map)
field(:enableStreamingEngine)
field(:flexrsGoal)
field(:ipConfiguration)
field(:kmsKeyName)
field(:machineType)
field(:maxWorkers)
field(:network)
field(:numWorkers)
field(:serviceAccountEmail)
field(:subnetwork)
field(:tempLocation)
field(:workerRegion)
field(:workerZone)
field(:zone)
end
defimpl Poison.Decoder,
for: GoogleApi.DataPipelines.V1.Model.GoogleCloudDatapipelinesV1FlexTemplateRuntimeEnvironment do
def decode(value, options) do
GoogleApi.DataPipelines.V1.Model.GoogleCloudDatapipelinesV1FlexTemplateRuntimeEnvironment.decode(
value,
options
)
end
end
defimpl Poison.Encoder,
for: GoogleApi.DataPipelines.V1.Model.GoogleCloudDatapipelinesV1FlexTemplateRuntimeEnvironment do
def encode(value, options) do
GoogleApi.Gax.ModelBase.encode(value, options)
end
end