# Copyright 2015 Google Inc. # # 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. require 'date' require 'google/apis/core/base_service' require 'google/apis/core/json_representation' require 'google/apis/core/hashable' require 'google/apis/errors' module Google module Apis module ManagerV1beta2 # A Compute Engine network accessConfig. Identical to the accessConfig on # corresponding Compute Engine resource. class AccessConfig include Google::Apis::Core::Hashable # Name of this access configuration. # Corresponds to the JSON property `name` # @return [String] attr_accessor :name # An external IP address associated with this instance. # Corresponds to the JSON property `natIp` # @return [String] attr_accessor :nat_ip # Type of this access configuration file. (Currently only ONE_TO_ONE_NAT is # legal.) # Corresponds to the JSON property `type` # @return [String] attr_accessor :type def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @name = args[:name] if args.key?(:name) @nat_ip = args[:nat_ip] if args.key?(:nat_ip) @type = args[:type] if args.key?(:type) end end # An Action encapsulates a set of commands as a single runnable module with # additional information needed during run-time. class Action include Google::Apis::Core::Hashable # A list of commands to run sequentially for this action. # Corresponds to the JSON property `commands` # @return [Array] attr_accessor :commands # The timeout in milliseconds for this action to run. # Corresponds to the JSON property `timeoutMs` # @return [Fixnum] attr_accessor :timeout_ms def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @commands = args[:commands] if args.key?(:commands) @timeout_ms = args[:timeout_ms] if args.key?(:timeout_ms) end end # An allowed port resource. class AllowedRule include Google::Apis::Core::Hashable # ?tcp?, ?udp? or ?icmp? # Corresponds to the JSON property `IPProtocol` # @return [String] attr_accessor :ip_protocol # List of ports or port ranges (Example inputs include: ["22"], [?33?, "12345- # 12349"]. # Corresponds to the JSON property `ports` # @return [Array] attr_accessor :ports def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @ip_protocol = args[:ip_protocol] if args.key?(:ip_protocol) @ports = args[:ports] if args.key?(:ports) end end # class AutoscalingModule include Google::Apis::Core::Hashable # # Corresponds to the JSON property `coolDownPeriodSec` # @return [Fixnum] attr_accessor :cool_down_period_sec # # Corresponds to the JSON property `description` # @return [String] attr_accessor :description # # Corresponds to the JSON property `maxNumReplicas` # @return [Fixnum] attr_accessor :max_num_replicas # # Corresponds to the JSON property `minNumReplicas` # @return [Fixnum] attr_accessor :min_num_replicas # # Corresponds to the JSON property `signalType` # @return [String] attr_accessor :signal_type # # Corresponds to the JSON property `targetModule` # @return [String] attr_accessor :target_module # target_utilization should be in range [0,1]. # Corresponds to the JSON property `targetUtilization` # @return [Float] attr_accessor :target_utilization def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @cool_down_period_sec = args[:cool_down_period_sec] if args.key?(:cool_down_period_sec) @description = args[:description] if args.key?(:description) @max_num_replicas = args[:max_num_replicas] if args.key?(:max_num_replicas) @min_num_replicas = args[:min_num_replicas] if args.key?(:min_num_replicas) @signal_type = args[:signal_type] if args.key?(:signal_type) @target_module = args[:target_module] if args.key?(:target_module) @target_utilization = args[:target_utilization] if args.key?(:target_utilization) end end # class AutoscalingModuleStatus include Google::Apis::Core::Hashable # [Output Only] The URL of the corresponding Autoscaling configuration. # Corresponds to the JSON property `autoscalingConfigUrl` # @return [String] attr_accessor :autoscaling_config_url def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @autoscaling_config_url = args[:autoscaling_config_url] if args.key?(:autoscaling_config_url) end end # [Output Only] The current state of a replica or module. class DeployState include Google::Apis::Core::Hashable # [Output Only] Human readable details about the current state. # Corresponds to the JSON property `details` # @return [String] attr_accessor :details # [Output Only] The status of the deployment. Possible values include: # - UNKNOWN # - DEPLOYING # - DEPLOYED # - DEPLOYMENT_FAILED # - DELETING # - DELETED # - DELETE_FAILED # Corresponds to the JSON property `status` # @return [String] attr_accessor :status def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @details = args[:details] if args.key?(:details) @status = args[:status] if args.key?(:status) end end # A deployment represents a physical instantiation of a Template. class Deployment include Google::Apis::Core::Hashable # [Output Only] The time when this deployment was created. # Corresponds to the JSON property `creationDate` # @return [String] attr_accessor :creation_date # A user-supplied description of this Deployment. # Corresponds to the JSON property `description` # @return [String] attr_accessor :description # [Output Only] List of status for the modules in this deployment. # Corresponds to the JSON property `modules` # @return [Hash] attr_accessor :modules # Name of this deployment. The name must conform to the following regular # expression: [a-zA-Z0-9-_]`1,64` # Corresponds to the JSON property `name` # @return [String] attr_accessor :name # The set of parameter overrides to apply to the corresponding Template before # deploying. # Corresponds to the JSON property `overrides` # @return [Array] attr_accessor :overrides # [Output Only] The current state of a replica or module. # Corresponds to the JSON property `state` # @return [Google::Apis::ManagerV1beta2::DeployState] attr_accessor :state # The name of the Template on which this deployment is based. # Corresponds to the JSON property `templateName` # @return [String] attr_accessor :template_name def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @creation_date = args[:creation_date] if args.key?(:creation_date) @description = args[:description] if args.key?(:description) @modules = args[:modules] if args.key?(:modules) @name = args[:name] if args.key?(:name) @overrides = args[:overrides] if args.key?(:overrides) @state = args[:state] if args.key?(:state) @template_name = args[:template_name] if args.key?(:template_name) end end # class ListDeploymentsResponse include Google::Apis::Core::Hashable # # Corresponds to the JSON property `nextPageToken` # @return [String] attr_accessor :next_page_token # # Corresponds to the JSON property `resources` # @return [Array] attr_accessor :resources def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @next_page_token = args[:next_page_token] if args.key?(:next_page_token) @resources = args[:resources] if args.key?(:resources) end end # How to attach a disk to a Replica. class DiskAttachment include Google::Apis::Core::Hashable # The device name of this disk. # Corresponds to the JSON property `deviceName` # @return [String] attr_accessor :device_name # A zero-based index to assign to this disk, where 0 is reserved for the boot # disk. If not specified, this is assigned by the server. # Corresponds to the JSON property `index` # @return [Fixnum] attr_accessor :index def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @device_name = args[:device_name] if args.key?(:device_name) @index = args[:index] if args.key?(:index) end end # An environment variable. class EnvVariable include Google::Apis::Core::Hashable # Whether this variable is hidden or visible. # Corresponds to the JSON property `hidden` # @return [Boolean] attr_accessor :hidden alias_method :hidden?, :hidden # Value of the environment variable. # Corresponds to the JSON property `value` # @return [String] attr_accessor :value def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @hidden = args[:hidden] if args.key?(:hidden) @value = args[:value] if args.key?(:value) end end # A pre-existing persistent disk that will be attached to every Replica in the # Pool. class ExistingDisk include Google::Apis::Core::Hashable # How to attach a disk to a Replica. # Corresponds to the JSON property `attachment` # @return [Google::Apis::ManagerV1beta2::DiskAttachment] attr_accessor :attachment # The fully-qualified URL of the Persistent Disk resource. It must be in the # same zone as the Pool. # Corresponds to the JSON property `source` # @return [String] attr_accessor :source def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @attachment = args[:attachment] if args.key?(:attachment) @source = args[:source] if args.key?(:source) end end # A Firewall resource class FirewallModule include Google::Apis::Core::Hashable # The allowed ports or port ranges. # Corresponds to the JSON property `allowed` # @return [Array] attr_accessor :allowed # The description of the firewall (optional) # Corresponds to the JSON property `description` # @return [String] attr_accessor :description # The NetworkModule to which this firewall should apply. If not specified, or if # specified as 'default', this firewall will be applied to the 'default' network. # Corresponds to the JSON property `network` # @return [String] attr_accessor :network # Source IP ranges to apply this firewall to, see the GCE Spec for details on # syntax # Corresponds to the JSON property `sourceRanges` # @return [Array] attr_accessor :source_ranges # Source Tags to apply this firewall to, see the GCE Spec for details on syntax # Corresponds to the JSON property `sourceTags` # @return [Array] attr_accessor :source_tags # Target Tags to apply this firewall to, see the GCE Spec for details on syntax # Corresponds to the JSON property `targetTags` # @return [Array] attr_accessor :target_tags def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @allowed = args[:allowed] if args.key?(:allowed) @description = args[:description] if args.key?(:description) @network = args[:network] if args.key?(:network) @source_ranges = args[:source_ranges] if args.key?(:source_ranges) @source_tags = args[:source_tags] if args.key?(:source_tags) @target_tags = args[:target_tags] if args.key?(:target_tags) end end # class FirewallModuleStatus include Google::Apis::Core::Hashable # [Output Only] The URL of the corresponding Firewall resource. # Corresponds to the JSON property `firewallUrl` # @return [String] attr_accessor :firewall_url def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @firewall_url = args[:firewall_url] if args.key?(:firewall_url) end end # class HealthCheckModule include Google::Apis::Core::Hashable # # Corresponds to the JSON property `checkIntervalSec` # @return [Fixnum] attr_accessor :check_interval_sec # # Corresponds to the JSON property `description` # @return [String] attr_accessor :description # # Corresponds to the JSON property `healthyThreshold` # @return [Fixnum] attr_accessor :healthy_threshold # # Corresponds to the JSON property `host` # @return [String] attr_accessor :host # # Corresponds to the JSON property `path` # @return [String] attr_accessor :path # # Corresponds to the JSON property `port` # @return [Fixnum] attr_accessor :port # # Corresponds to the JSON property `timeoutSec` # @return [Fixnum] attr_accessor :timeout_sec # # Corresponds to the JSON property `unhealthyThreshold` # @return [Fixnum] attr_accessor :unhealthy_threshold def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @check_interval_sec = args[:check_interval_sec] if args.key?(:check_interval_sec) @description = args[:description] if args.key?(:description) @healthy_threshold = args[:healthy_threshold] if args.key?(:healthy_threshold) @host = args[:host] if args.key?(:host) @path = args[:path] if args.key?(:path) @port = args[:port] if args.key?(:port) @timeout_sec = args[:timeout_sec] if args.key?(:timeout_sec) @unhealthy_threshold = args[:unhealthy_threshold] if args.key?(:unhealthy_threshold) end end # class HealthCheckModuleStatus include Google::Apis::Core::Hashable # [Output Only] The HealthCheck URL. # Corresponds to the JSON property `healthCheckUrl` # @return [String] attr_accessor :health_check_url def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @health_check_url = args[:health_check_url] if args.key?(:health_check_url) end end # class LbModule include Google::Apis::Core::Hashable # # Corresponds to the JSON property `description` # @return [String] attr_accessor :description # # Corresponds to the JSON property `healthChecks` # @return [Array] attr_accessor :health_checks # # Corresponds to the JSON property `ipAddress` # @return [String] attr_accessor :ip_address # # Corresponds to the JSON property `ipProtocol` # @return [String] attr_accessor :ip_protocol # # Corresponds to the JSON property `portRange` # @return [String] attr_accessor :port_range # # Corresponds to the JSON property `sessionAffinity` # @return [String] attr_accessor :session_affinity # # Corresponds to the JSON property `targetModules` # @return [Array] attr_accessor :target_modules def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @description = args[:description] if args.key?(:description) @health_checks = args[:health_checks] if args.key?(:health_checks) @ip_address = args[:ip_address] if args.key?(:ip_address) @ip_protocol = args[:ip_protocol] if args.key?(:ip_protocol) @port_range = args[:port_range] if args.key?(:port_range) @session_affinity = args[:session_affinity] if args.key?(:session_affinity) @target_modules = args[:target_modules] if args.key?(:target_modules) end end # class LbModuleStatus include Google::Apis::Core::Hashable # [Output Only] The URL of the corresponding ForwardingRule in GCE. # Corresponds to the JSON property `forwardingRuleUrl` # @return [String] attr_accessor :forwarding_rule_url # [Output Only] The URL of the corresponding TargetPool resource in GCE. # Corresponds to the JSON property `targetPoolUrl` # @return [String] attr_accessor :target_pool_url def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @forwarding_rule_url = args[:forwarding_rule_url] if args.key?(:forwarding_rule_url) @target_pool_url = args[:target_pool_url] if args.key?(:target_pool_url) end end # A Compute Engine metadata entry. Identical to the metadata on the # corresponding Compute Engine resource. class Metadata include Google::Apis::Core::Hashable # The fingerprint of the metadata. # Corresponds to the JSON property `fingerPrint` # @return [String] attr_accessor :finger_print # A list of metadata items. # Corresponds to the JSON property `items` # @return [Array] attr_accessor :items def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @finger_print = args[:finger_print] if args.key?(:finger_print) @items = args[:items] if args.key?(:items) end end # A Compute Engine metadata item, defined as a key:value pair. Identical to the # metadata on the corresponding Compute Engine resource. class MetadataItem include Google::Apis::Core::Hashable # A metadata key. # Corresponds to the JSON property `key` # @return [String] attr_accessor :key # A metadata value. # Corresponds to the JSON property `value` # @return [String] attr_accessor :value def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @key = args[:key] if args.key?(:key) @value = args[:value] if args.key?(:value) end end # A module in a configuration. A module represents a single homogeneous, # possibly replicated task. class Module include Google::Apis::Core::Hashable # # Corresponds to the JSON property `autoscalingModule` # @return [Google::Apis::ManagerV1beta2::AutoscalingModule] attr_accessor :autoscaling_module # A Firewall resource # Corresponds to the JSON property `firewallModule` # @return [Google::Apis::ManagerV1beta2::FirewallModule] attr_accessor :firewall_module # # Corresponds to the JSON property `healthCheckModule` # @return [Google::Apis::ManagerV1beta2::HealthCheckModule] attr_accessor :health_check_module # # Corresponds to the JSON property `lbModule` # @return [Google::Apis::ManagerV1beta2::LbModule] attr_accessor :lb_module # # Corresponds to the JSON property `networkModule` # @return [Google::Apis::ManagerV1beta2::NetworkModule] attr_accessor :network_module # # Corresponds to the JSON property `replicaPoolModule` # @return [Google::Apis::ManagerV1beta2::ReplicaPoolModule] attr_accessor :replica_pool_module # The type of this module. Valid values ("AUTOSCALING", "FIREWALL", " # HEALTH_CHECK", "LOAD_BALANCING", "NETWORK", "REPLICA_POOL") # Corresponds to the JSON property `type` # @return [String] attr_accessor :type def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @autoscaling_module = args[:autoscaling_module] if args.key?(:autoscaling_module) @firewall_module = args[:firewall_module] if args.key?(:firewall_module) @health_check_module = args[:health_check_module] if args.key?(:health_check_module) @lb_module = args[:lb_module] if args.key?(:lb_module) @network_module = args[:network_module] if args.key?(:network_module) @replica_pool_module = args[:replica_pool_module] if args.key?(:replica_pool_module) @type = args[:type] if args.key?(:type) end end # [Output Only] Aggregate status for a module. class ModuleStatus include Google::Apis::Core::Hashable # [Output Only] The status of the AutoscalingModule, set for type AUTOSCALING. # Corresponds to the JSON property `autoscalingModuleStatus` # @return [Google::Apis::ManagerV1beta2::AutoscalingModuleStatus] attr_accessor :autoscaling_module_status # [Output Only] The status of the FirewallModule, set for type FIREWALL. # Corresponds to the JSON property `firewallModuleStatus` # @return [Google::Apis::ManagerV1beta2::FirewallModuleStatus] attr_accessor :firewall_module_status # [Output Only] The status of the HealthCheckModule, set for type HEALTH_CHECK. # Corresponds to the JSON property `healthCheckModuleStatus` # @return [Google::Apis::ManagerV1beta2::HealthCheckModuleStatus] attr_accessor :health_check_module_status # [Output Only] The status of the LbModule, set for type LOAD_BALANCING. # Corresponds to the JSON property `lbModuleStatus` # @return [Google::Apis::ManagerV1beta2::LbModuleStatus] attr_accessor :lb_module_status # [Output Only] The status of the NetworkModule, set for type NETWORK. # Corresponds to the JSON property `networkModuleStatus` # @return [Google::Apis::ManagerV1beta2::NetworkModuleStatus] attr_accessor :network_module_status # [Output Only] The status of the ReplicaPoolModule, set for type VM. # Corresponds to the JSON property `replicaPoolModuleStatus` # @return [Google::Apis::ManagerV1beta2::ReplicaPoolModuleStatus] attr_accessor :replica_pool_module_status # [Output Only] The current state of a replica or module. # Corresponds to the JSON property `state` # @return [Google::Apis::ManagerV1beta2::DeployState] attr_accessor :state # [Output Only] The type of the module. # Corresponds to the JSON property `type` # @return [String] attr_accessor :type def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @autoscaling_module_status = args[:autoscaling_module_status] if args.key?(:autoscaling_module_status) @firewall_module_status = args[:firewall_module_status] if args.key?(:firewall_module_status) @health_check_module_status = args[:health_check_module_status] if args.key?(:health_check_module_status) @lb_module_status = args[:lb_module_status] if args.key?(:lb_module_status) @network_module_status = args[:network_module_status] if args.key?(:network_module_status) @replica_pool_module_status = args[:replica_pool_module_status] if args.key?(:replica_pool_module_status) @state = args[:state] if args.key?(:state) @type = args[:type] if args.key?(:type) end end # A Compute Engine NetworkInterface resource. Identical to the NetworkInterface # on the corresponding Compute Engine resource. class NetworkInterface include Google::Apis::Core::Hashable # An array of configurations for this interface. This specifies how this # interface is configured to interact with other network services # Corresponds to the JSON property `accessConfigs` # @return [Array] attr_accessor :access_configs # Name of the interface. # Corresponds to the JSON property `name` # @return [String] attr_accessor :name # The name of the NetworkModule to which this interface applies. If not # specified, or specified as 'default', this will use the 'default' network. # Corresponds to the JSON property `network` # @return [String] attr_accessor :network # An optional IPV4 internal network address to assign to the instance for this # network interface. # Corresponds to the JSON property `networkIp` # @return [String] attr_accessor :network_ip def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @access_configs = args[:access_configs] if args.key?(:access_configs) @name = args[:name] if args.key?(:name) @network = args[:network] if args.key?(:network) @network_ip = args[:network_ip] if args.key?(:network_ip) end end # class NetworkModule include Google::Apis::Core::Hashable # Required; The range of internal addresses that are legal on this network. This # range is a CIDR specification, for example: 192.168.0.0/16. # Corresponds to the JSON property `IPv4Range` # @return [String] attr_accessor :i_pv4_range # The description of the network. # Corresponds to the JSON property `description` # @return [String] attr_accessor :description # An optional address that is used for default routing to other networks. This # must be within the range specified by IPv4Range, and is typicall the first # usable address in that range. If not specified, the default value is the first # usable address in IPv4Range. # Corresponds to the JSON property `gatewayIPv4` # @return [String] attr_accessor :gateway_i_pv4 def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @i_pv4_range = args[:i_pv4_range] if args.key?(:i_pv4_range) @description = args[:description] if args.key?(:description) @gateway_i_pv4 = args[:gateway_i_pv4] if args.key?(:gateway_i_pv4) end end # class NetworkModuleStatus include Google::Apis::Core::Hashable # [Output Only] The URL of the corresponding Network resource. # Corresponds to the JSON property `networkUrl` # @return [String] attr_accessor :network_url def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @network_url = args[:network_url] if args.key?(:network_url) end end # A Persistent Disk resource that will be created and attached to each Replica # in the Pool. Each Replica will have a unique persistent disk that is created # and attached to that Replica. class NewDisk include Google::Apis::Core::Hashable # How to attach a disk to a Replica. # Corresponds to the JSON property `attachment` # @return [Google::Apis::ManagerV1beta2::DiskAttachment] attr_accessor :attachment # If true, then this disk will be deleted when the instance is deleted. # Corresponds to the JSON property `autoDelete` # @return [Boolean] attr_accessor :auto_delete alias_method :auto_delete?, :auto_delete # If true, indicates that this is the root persistent disk. # Corresponds to the JSON property `boot` # @return [Boolean] attr_accessor :boot alias_method :boot?, :boot # Initialization parameters for creating a new disk. # Corresponds to the JSON property `initializeParams` # @return [Google::Apis::ManagerV1beta2::NewDiskInitializeParams] attr_accessor :initialize_params def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @attachment = args[:attachment] if args.key?(:attachment) @auto_delete = args[:auto_delete] if args.key?(:auto_delete) @boot = args[:boot] if args.key?(:boot) @initialize_params = args[:initialize_params] if args.key?(:initialize_params) end end # Initialization parameters for creating a new disk. class NewDiskInitializeParams include Google::Apis::Core::Hashable # The size of the created disk in gigabytes. # Corresponds to the JSON property `diskSizeGb` # @return [String] attr_accessor :disk_size_gb # Name of the disk type resource describing which disk type to use to create the # disk. For example 'pd-ssd' or 'pd-standard'. Default is 'pd-standard' # Corresponds to the JSON property `diskType` # @return [String] attr_accessor :disk_type # The fully-qualified URL of a source image to use to create this disk. # Corresponds to the JSON property `sourceImage` # @return [String] attr_accessor :source_image def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @disk_size_gb = args[:disk_size_gb] if args.key?(:disk_size_gb) @disk_type = args[:disk_type] if args.key?(:disk_type) @source_image = args[:source_image] if args.key?(:source_image) end end # A specification for overriding parameters in a Template that corresponds to # the Deployment. class ParamOverride include Google::Apis::Core::Hashable # A JSON Path expression that specifies which parameter should be overridden. # Corresponds to the JSON property `path` # @return [String] attr_accessor :path # The new value to assign to the overridden parameter. # Corresponds to the JSON property `value` # @return [String] attr_accessor :value def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @path = args[:path] if args.key?(:path) @value = args[:value] if args.key?(:value) end end # class ReplicaPoolModule include Google::Apis::Core::Hashable # A list of environment variables. # Corresponds to the JSON property `envVariables` # @return [Hash] attr_accessor :env_variables # The Health Checks to configure for the ReplicaPoolModule # Corresponds to the JSON property `healthChecks` # @return [Array] attr_accessor :health_checks # Number of replicas in this module. # Corresponds to the JSON property `numReplicas` # @return [Fixnum] attr_accessor :num_replicas # Configuration information for a ReplicaPools resource. Specifying an item # within will determine the ReplicaPools API version used for a # ReplicaPoolModule. Only one may be specified. # Corresponds to the JSON property `replicaPoolParams` # @return [Google::Apis::ManagerV1beta2::ReplicaPoolParams] attr_accessor :replica_pool_params # [Output Only] The name of the Resource View associated with a # ReplicaPoolModule. This field will be generated by the service. # Corresponds to the JSON property `resourceView` # @return [String] attr_accessor :resource_view def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @env_variables = args[:env_variables] if args.key?(:env_variables) @health_checks = args[:health_checks] if args.key?(:health_checks) @num_replicas = args[:num_replicas] if args.key?(:num_replicas) @replica_pool_params = args[:replica_pool_params] if args.key?(:replica_pool_params) @resource_view = args[:resource_view] if args.key?(:resource_view) end end # class ReplicaPoolModuleStatus include Google::Apis::Core::Hashable # [Output Only] The URL of the associated ReplicaPool resource. # Corresponds to the JSON property `replicaPoolUrl` # @return [String] attr_accessor :replica_pool_url # [Output Only] The URL of the Resource Group associated with this ReplicaPool. # Corresponds to the JSON property `resourceViewUrl` # @return [String] attr_accessor :resource_view_url def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @replica_pool_url = args[:replica_pool_url] if args.key?(:replica_pool_url) @resource_view_url = args[:resource_view_url] if args.key?(:resource_view_url) end end # Configuration information for a ReplicaPools resource. Specifying an item # within will determine the ReplicaPools API version used for a # ReplicaPoolModule. Only one may be specified. class ReplicaPoolParams include Google::Apis::Core::Hashable # Configuration information for a ReplicaPools v1beta1 API resource. Directly # maps to ReplicaPool InitTemplate. # Corresponds to the JSON property `v1beta1` # @return [Google::Apis::ManagerV1beta2::ReplicaPoolParamsV1Beta1] attr_accessor :v1beta1 def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @v1beta1 = args[:v1beta1] if args.key?(:v1beta1) end end # Configuration information for a ReplicaPools v1beta1 API resource. Directly # maps to ReplicaPool InitTemplate. class ReplicaPoolParamsV1Beta1 include Google::Apis::Core::Hashable # Whether these replicas should be restarted if they experience a failure. The # default value is true. # Corresponds to the JSON property `autoRestart` # @return [Boolean] attr_accessor :auto_restart alias_method :auto_restart?, :auto_restart # The base name for instances within this ReplicaPool. # Corresponds to the JSON property `baseInstanceName` # @return [String] attr_accessor :base_instance_name # Enables IP Forwarding # Corresponds to the JSON property `canIpForward` # @return [Boolean] attr_accessor :can_ip_forward alias_method :can_ip_forward?, :can_ip_forward # An optional textual description of the resource. # Corresponds to the JSON property `description` # @return [String] attr_accessor :description # A list of existing Persistent Disk resources to attach to each replica in the # pool. Each disk will be attached in read-only mode to every replica. # Corresponds to the JSON property `disksToAttach` # @return [Array] attr_accessor :disks_to_attach # A list of Disk resources to create and attach to each Replica in the Pool. # Currently, you can only define one disk and it must be a root persistent disk. # Note that Replica Pool will create a root persistent disk for each replica. # Corresponds to the JSON property `disksToCreate` # @return [Array] attr_accessor :disks_to_create # Name of the Action to be run during initialization of a ReplicaPoolModule. # Corresponds to the JSON property `initAction` # @return [String] attr_accessor :init_action # The machine type for this instance. Either a complete URL, or the resource # name (e.g. n1-standard-1). # Corresponds to the JSON property `machineType` # @return [String] attr_accessor :machine_type # A Compute Engine metadata entry. Identical to the metadata on the # corresponding Compute Engine resource. # Corresponds to the JSON property `metadata` # @return [Google::Apis::ManagerV1beta2::Metadata] attr_accessor :metadata # A list of network interfaces for the instance. Currently only one interface is # supported by Google Compute Engine. # Corresponds to the JSON property `networkInterfaces` # @return [Array] attr_accessor :network_interfaces # # Corresponds to the JSON property `onHostMaintenance` # @return [String] attr_accessor :on_host_maintenance # A list of Service Accounts to enable for this instance. # Corresponds to the JSON property `serviceAccounts` # @return [Array] attr_accessor :service_accounts # A Compute Engine Instance tag, identical to the tags on the corresponding # Compute Engine Instance resource. # Corresponds to the JSON property `tags` # @return [Google::Apis::ManagerV1beta2::Tag] attr_accessor :tags # The zone for this ReplicaPool. # Corresponds to the JSON property `zone` # @return [String] attr_accessor :zone def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @auto_restart = args[:auto_restart] if args.key?(:auto_restart) @base_instance_name = args[:base_instance_name] if args.key?(:base_instance_name) @can_ip_forward = args[:can_ip_forward] if args.key?(:can_ip_forward) @description = args[:description] if args.key?(:description) @disks_to_attach = args[:disks_to_attach] if args.key?(:disks_to_attach) @disks_to_create = args[:disks_to_create] if args.key?(:disks_to_create) @init_action = args[:init_action] if args.key?(:init_action) @machine_type = args[:machine_type] if args.key?(:machine_type) @metadata = args[:metadata] if args.key?(:metadata) @network_interfaces = args[:network_interfaces] if args.key?(:network_interfaces) @on_host_maintenance = args[:on_host_maintenance] if args.key?(:on_host_maintenance) @service_accounts = args[:service_accounts] if args.key?(:service_accounts) @tags = args[:tags] if args.key?(:tags) @zone = args[:zone] if args.key?(:zone) end end # A Compute Engine service account, identical to the Compute Engine resource. class ServiceAccount include Google::Apis::Core::Hashable # Service account email address. # Corresponds to the JSON property `email` # @return [String] attr_accessor :email # List of OAuth2 scopes to obtain for the service account. # Corresponds to the JSON property `scopes` # @return [Array] attr_accessor :scopes def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @email = args[:email] if args.key?(:email) @scopes = args[:scopes] if args.key?(:scopes) end end # A Compute Engine Instance tag, identical to the tags on the corresponding # Compute Engine Instance resource. class Tag include Google::Apis::Core::Hashable # The fingerprint of the tag. # Corresponds to the JSON property `fingerPrint` # @return [String] attr_accessor :finger_print # Items contained in this tag. # Corresponds to the JSON property `items` # @return [Array] attr_accessor :items def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @finger_print = args[:finger_print] if args.key?(:finger_print) @items = args[:items] if args.key?(:items) end end # A Template represents a complete configuration for a Deployment. class Template include Google::Apis::Core::Hashable # Action definitions for use in Module intents in this Template. # Corresponds to the JSON property `actions` # @return [Hash] attr_accessor :actions # A user-supplied description of this Template. # Corresponds to the JSON property `description` # @return [String] attr_accessor :description # A list of modules for this Template. # Corresponds to the JSON property `modules` # @return [Hash] attr_accessor :modules # Name of this Template. The name must conform to the expression: [a-zA-Z0-9-_]` # 1,64` # Corresponds to the JSON property `name` # @return [String] attr_accessor :name def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @actions = args[:actions] if args.key?(:actions) @description = args[:description] if args.key?(:description) @modules = args[:modules] if args.key?(:modules) @name = args[:name] if args.key?(:name) end end # class ListTemplatesResponse include Google::Apis::Core::Hashable # # Corresponds to the JSON property `nextPageToken` # @return [String] attr_accessor :next_page_token # # Corresponds to the JSON property `resources` # @return [Array] attr_accessor :resources def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @next_page_token = args[:next_page_token] if args.key?(:next_page_token) @resources = args[:resources] if args.key?(:resources) end end end end end