# Copyright 2020 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. 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 ComputeAlpha # A specification of the type and number of accelerator cards attached to the # instance. class AcceleratorConfig include Google::Apis::Core::Hashable # The number of the guest accelerator cards exposed to this instance. # Corresponds to the JSON property `acceleratorCount` # @return [Fixnum] attr_accessor :accelerator_count # Full or partial URL of the accelerator type resource to attach to this # instance. For example: projects/my-project/zones/us-central1-c/ # acceleratorTypes/nvidia-tesla-p100 If you are creating an instance template, # specify only the accelerator name. See GPUs on Compute Engine for a full list # of accelerator types. # Corresponds to the JSON property `acceleratorType` # @return [String] attr_accessor :accelerator_type def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @accelerator_count = args[:accelerator_count] if args.key?(:accelerator_count) @accelerator_type = args[:accelerator_type] if args.key?(:accelerator_type) end end # Represents an Accelerator Type resource. Google Cloud Platform provides # graphics processing units (accelerators) that you can add to VM instances to # improve or accelerate performance when working with intensive workloads. For # more information, read GPUs on Compute Engine. class AcceleratorType include Google::Apis::Core::Hashable # [Output Only] Creation timestamp in RFC3339 text format. # Corresponds to the JSON property `creationTimestamp` # @return [String] attr_accessor :creation_timestamp # Deprecation status for a public resource. # Corresponds to the JSON property `deprecated` # @return [Google::Apis::ComputeAlpha::DeprecationStatus] attr_accessor :deprecated # [Output Only] An optional textual description of the resource. # Corresponds to the JSON property `description` # @return [String] attr_accessor :description # [Output Only] The unique identifier for the resource. This identifier is # defined by the server. # Corresponds to the JSON property `id` # @return [Fixnum] attr_accessor :id # [Output Only] The type of the resource. Always compute#acceleratorType for # accelerator types. # Corresponds to the JSON property `kind` # @return [String] attr_accessor :kind # [Output Only] Maximum number of accelerator cards allowed per instance. # Corresponds to the JSON property `maximumCardsPerInstance` # @return [Fixnum] attr_accessor :maximum_cards_per_instance # [Output Only] Name of the resource. # Corresponds to the JSON property `name` # @return [String] attr_accessor :name # [Output Only] Server-defined, fully qualified URL for this resource. # Corresponds to the JSON property `selfLink` # @return [String] attr_accessor :self_link # [Output Only] Server-defined URL for this resource's resource id. # Corresponds to the JSON property `selfLinkWithId` # @return [String] attr_accessor :self_link_with_id # [Output Only] The name of the zone where the accelerator type resides, such as # us-central1-a. You must specify this field as part of the HTTP request URL. It # is not settable as a field in the request body. # 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) @creation_timestamp = args[:creation_timestamp] if args.key?(:creation_timestamp) @deprecated = args[:deprecated] if args.key?(:deprecated) @description = args[:description] if args.key?(:description) @id = args[:id] if args.key?(:id) @kind = args[:kind] if args.key?(:kind) @maximum_cards_per_instance = args[:maximum_cards_per_instance] if args.key?(:maximum_cards_per_instance) @name = args[:name] if args.key?(:name) @self_link = args[:self_link] if args.key?(:self_link) @self_link_with_id = args[:self_link_with_id] if args.key?(:self_link_with_id) @zone = args[:zone] if args.key?(:zone) end end # class AcceleratorTypeAggregatedList include Google::Apis::Core::Hashable # [Output Only] Unique identifier for the resource; defined by the server. # Corresponds to the JSON property `id` # @return [String] attr_accessor :id # A list of AcceleratorTypesScopedList resources. # Corresponds to the JSON property `items` # @return [Hash] attr_accessor :items # [Output Only] Type of resource. Always compute#acceleratorTypeAggregatedList # for aggregated lists of accelerator types. # Corresponds to the JSON property `kind` # @return [String] attr_accessor :kind # [Output Only] This token allows you to get the next page of results for list # requests. If the number of results is larger than maxResults, use the # nextPageToken as a value for the query parameter pageToken in the next list # request. Subsequent list requests will have their own nextPageToken to # continue paging through the results. # Corresponds to the JSON property `nextPageToken` # @return [String] attr_accessor :next_page_token # [Output Only] Server-defined URL for this resource. # Corresponds to the JSON property `selfLink` # @return [String] attr_accessor :self_link # [Output Only] Unreachable resources. # Corresponds to the JSON property `unreachables` # @return [Array] attr_accessor :unreachables # [Output Only] Informational warning message. # Corresponds to the JSON property `warning` # @return [Google::Apis::ComputeAlpha::AcceleratorTypeAggregatedList::Warning] attr_accessor :warning def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @id = args[:id] if args.key?(:id) @items = args[:items] if args.key?(:items) @kind = args[:kind] if args.key?(:kind) @next_page_token = args[:next_page_token] if args.key?(:next_page_token) @self_link = args[:self_link] if args.key?(:self_link) @unreachables = args[:unreachables] if args.key?(:unreachables) @warning = args[:warning] if args.key?(:warning) end # [Output Only] Informational warning message. class Warning include Google::Apis::Core::Hashable # [Output Only] A warning code, if applicable. For example, Compute Engine # returns NO_RESULTS_ON_PAGE if there are no results in the response. # Corresponds to the JSON property `code` # @return [String] attr_accessor :code # [Output Only] Metadata about this warning in key: value format. For example: " # data": [ ` "key": "scope", "value": "zones/us-east1-d" ` # Corresponds to the JSON property `data` # @return [Array] attr_accessor :data # [Output Only] A human-readable description of the warning code. # Corresponds to the JSON property `message` # @return [String] attr_accessor :message def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @code = args[:code] if args.key?(:code) @data = args[:data] if args.key?(:data) @message = args[:message] if args.key?(:message) end # class Datum include Google::Apis::Core::Hashable # [Output Only] A key that provides more detail on the warning being returned. # For example, for warnings where there are no results in a list request for a # particular zone, this key might be scope and the key value might be the zone # name. Other examples might be a key indicating a deprecated resource and a # suggested replacement, or a warning about invalid network settings (for # example, if an instance attempts to perform IP forwarding but is not enabled # for IP forwarding). # Corresponds to the JSON property `key` # @return [String] attr_accessor :key # [Output Only] A warning data value corresponding to the key. # 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 end end # Contains a list of accelerator types. class AcceleratorTypeList include Google::Apis::Core::Hashable # [Output Only] Unique identifier for the resource; defined by the server. # Corresponds to the JSON property `id` # @return [String] attr_accessor :id # A list of AcceleratorType resources. # Corresponds to the JSON property `items` # @return [Array] attr_accessor :items # [Output Only] Type of resource. Always compute#acceleratorTypeList for lists # of accelerator types. # Corresponds to the JSON property `kind` # @return [String] attr_accessor :kind # [Output Only] This token allows you to get the next page of results for list # requests. If the number of results is larger than maxResults, use the # nextPageToken as a value for the query parameter pageToken in the next list # request. Subsequent list requests will have their own nextPageToken to # continue paging through the results. # Corresponds to the JSON property `nextPageToken` # @return [String] attr_accessor :next_page_token # [Output Only] Server-defined URL for this resource. # Corresponds to the JSON property `selfLink` # @return [String] attr_accessor :self_link # [Output Only] Informational warning message. # Corresponds to the JSON property `warning` # @return [Google::Apis::ComputeAlpha::AcceleratorTypeList::Warning] attr_accessor :warning def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @id = args[:id] if args.key?(:id) @items = args[:items] if args.key?(:items) @kind = args[:kind] if args.key?(:kind) @next_page_token = args[:next_page_token] if args.key?(:next_page_token) @self_link = args[:self_link] if args.key?(:self_link) @warning = args[:warning] if args.key?(:warning) end # [Output Only] Informational warning message. class Warning include Google::Apis::Core::Hashable # [Output Only] A warning code, if applicable. For example, Compute Engine # returns NO_RESULTS_ON_PAGE if there are no results in the response. # Corresponds to the JSON property `code` # @return [String] attr_accessor :code # [Output Only] Metadata about this warning in key: value format. For example: " # data": [ ` "key": "scope", "value": "zones/us-east1-d" ` # Corresponds to the JSON property `data` # @return [Array] attr_accessor :data # [Output Only] A human-readable description of the warning code. # Corresponds to the JSON property `message` # @return [String] attr_accessor :message def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @code = args[:code] if args.key?(:code) @data = args[:data] if args.key?(:data) @message = args[:message] if args.key?(:message) end # class Datum include Google::Apis::Core::Hashable # [Output Only] A key that provides more detail on the warning being returned. # For example, for warnings where there are no results in a list request for a # particular zone, this key might be scope and the key value might be the zone # name. Other examples might be a key indicating a deprecated resource and a # suggested replacement, or a warning about invalid network settings (for # example, if an instance attempts to perform IP forwarding but is not enabled # for IP forwarding). # Corresponds to the JSON property `key` # @return [String] attr_accessor :key # [Output Only] A warning data value corresponding to the key. # 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 end end # class AcceleratorTypesScopedList include Google::Apis::Core::Hashable # [Output Only] A list of accelerator types contained in this scope. # Corresponds to the JSON property `acceleratorTypes` # @return [Array] attr_accessor :accelerator_types # [Output Only] An informational warning that appears when the accelerator types # list is empty. # Corresponds to the JSON property `warning` # @return [Google::Apis::ComputeAlpha::AcceleratorTypesScopedList::Warning] attr_accessor :warning def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @accelerator_types = args[:accelerator_types] if args.key?(:accelerator_types) @warning = args[:warning] if args.key?(:warning) end # [Output Only] An informational warning that appears when the accelerator types # list is empty. class Warning include Google::Apis::Core::Hashable # [Output Only] A warning code, if applicable. For example, Compute Engine # returns NO_RESULTS_ON_PAGE if there are no results in the response. # Corresponds to the JSON property `code` # @return [String] attr_accessor :code # [Output Only] Metadata about this warning in key: value format. For example: " # data": [ ` "key": "scope", "value": "zones/us-east1-d" ` # Corresponds to the JSON property `data` # @return [Array] attr_accessor :data # [Output Only] A human-readable description of the warning code. # Corresponds to the JSON property `message` # @return [String] attr_accessor :message def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @code = args[:code] if args.key?(:code) @data = args[:data] if args.key?(:data) @message = args[:message] if args.key?(:message) end # class Datum include Google::Apis::Core::Hashable # [Output Only] A key that provides more detail on the warning being returned. # For example, for warnings where there are no results in a list request for a # particular zone, this key might be scope and the key value might be the zone # name. Other examples might be a key indicating a deprecated resource and a # suggested replacement, or a warning about invalid network settings (for # example, if an instance attempts to perform IP forwarding but is not enabled # for IP forwarding). # Corresponds to the JSON property `key` # @return [String] attr_accessor :key # [Output Only] A warning data value corresponding to the key. # 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 end end # An access configuration attached to an instance's network interface. Only one # access config per instance is supported. class AccessConfig include Google::Apis::Core::Hashable # The first IPv6 address of the external IPv6 range associated with this # instance, prefix length is stored in externalIpv6PrefixLength in # ipv6AccessConfig. The field is output only, an IPv6 address from a subnetwork # associated with the instance will be allocated dynamically. # Corresponds to the JSON property `externalIpv6` # @return [String] attr_accessor :external_ipv6 # The prefix length of the external IPv6 range. # Corresponds to the JSON property `externalIpv6PrefixLength` # @return [Fixnum] attr_accessor :external_ipv6_prefix_length # [Output Only] Type of the resource. Always compute#accessConfig for access # configs. # Corresponds to the JSON property `kind` # @return [String] attr_accessor :kind # The name of this access configuration. The default and recommended name is # External NAT, but you can use any arbitrary string, such as My external IP or # Network Access. # Corresponds to the JSON property `name` # @return [String] attr_accessor :name # An external IP address associated with this instance. Specify an unused static # external IP address available to the project or leave this field undefined to # use an IP from a shared ephemeral IP address pool. If you specify a static # external IP address, it must live in the same region as the zone of the # instance. # Corresponds to the JSON property `natIP` # @return [String] attr_accessor :nat_ip # This signifies the networking tier used for configuring this access # configuration and can only take the following values: PREMIUM, STANDARD. If an # AccessConfig is specified without a valid external IP address, an ephemeral IP # will be created with this networkTier. If an AccessConfig with a valid # external IP address is specified, it must match that of the networkTier # associated with the Address resource owning that IP. # Corresponds to the JSON property `networkTier` # @return [String] attr_accessor :network_tier # [Output Only] The public DNS domain name for the instance. # Corresponds to the JSON property `publicDnsName` # @return [String] attr_accessor :public_dns_name # The DNS domain name for the public PTR record. You can set this field only if # the `setPublicPtr` field is enabled in accessConfig. If this field is # unspecified in ipv6AccessConfig, a default PTR record will be createc for # first IP in associated external IPv6 range. # Corresponds to the JSON property `publicPtrDomainName` # @return [String] attr_accessor :public_ptr_domain_name # Specifies whether a public DNS 'A' record should be created for the external # IP address of this access configuration. # Corresponds to the JSON property `setPublicDns` # @return [Boolean] attr_accessor :set_public_dns alias_method :set_public_dns?, :set_public_dns # Specifies whether a public DNS 'PTR' record should be created to map the # external IP address of the instance to a DNS domain name. This field is not # used in ipv6AccessConfig. A default PTR record will be created if the VM has # external IPv6 range associated. # Corresponds to the JSON property `setPublicPtr` # @return [Boolean] attr_accessor :set_public_ptr alias_method :set_public_ptr?, :set_public_ptr # The type of configuration. The default and only option is ONE_TO_ONE_NAT. # 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) @external_ipv6 = args[:external_ipv6] if args.key?(:external_ipv6) @external_ipv6_prefix_length = args[:external_ipv6_prefix_length] if args.key?(:external_ipv6_prefix_length) @kind = args[:kind] if args.key?(:kind) @name = args[:name] if args.key?(:name) @nat_ip = args[:nat_ip] if args.key?(:nat_ip) @network_tier = args[:network_tier] if args.key?(:network_tier) @public_dns_name = args[:public_dns_name] if args.key?(:public_dns_name) @public_ptr_domain_name = args[:public_ptr_domain_name] if args.key?(:public_ptr_domain_name) @set_public_dns = args[:set_public_dns] if args.key?(:set_public_dns) @set_public_ptr = args[:set_public_ptr] if args.key?(:set_public_ptr) @type = args[:type] if args.key?(:type) end end # Represents an IP Address resource. Google Compute Engine has two IP Address # resources: * [Global (external and internal)](https://cloud.google.com/compute/ # docs/reference/rest/alpha/globalAddresses) * [Regional (external and internal)] # (https://cloud.google.com/compute/docs/reference/rest/alpha/addresses) For # more information, see Reserving a static external IP address. class Address include Google::Apis::Core::Hashable # The static IP address represented by this resource. # Corresponds to the JSON property `address` # @return [String] attr_accessor :address # The type of address to reserve, either INTERNAL or EXTERNAL. If unspecified, # defaults to EXTERNAL. # Corresponds to the JSON property `addressType` # @return [String] attr_accessor :address_type # [Output Only] Creation timestamp in RFC3339 text format. # Corresponds to the JSON property `creationTimestamp` # @return [String] attr_accessor :creation_timestamp # An optional description of this resource. Provide this field when you create # the resource. # Corresponds to the JSON property `description` # @return [String] attr_accessor :description # [Output Only] The unique identifier for the resource. This identifier is # defined by the server. # Corresponds to the JSON property `id` # @return [Fixnum] attr_accessor :id # The IP version that will be used by this address. Valid options are IPV4 or # IPV6. This can only be specified for a global address. # Corresponds to the JSON property `ipVersion` # @return [String] attr_accessor :ip_version # The endpoint type of this address, which should be VM. This is used for # deciding which endpoint this address will be assigned to during the IPv6 # external IP address reservation. # Corresponds to the JSON property `ipv6EndpointType` # @return [String] attr_accessor :ipv6_endpoint_type # [Output Only] Type of the resource. Always compute#address for addresses. # Corresponds to the JSON property `kind` # @return [String] attr_accessor :kind # A fingerprint for the labels being applied to this Address, which is # essentially a hash of the labels set used for optimistic locking. The # fingerprint is initially generated by Compute Engine and changes after every # request to modify or update labels. You must always provide an up-to-date # fingerprint hash in order to update or change labels, otherwise the request # will fail with error 412 conditionNotMet. To see the latest fingerprint, make # a get() request to retrieve an Address. # Corresponds to the JSON property `labelFingerprint` # NOTE: Values are automatically base64 encoded/decoded in the client library. # @return [String] attr_accessor :label_fingerprint # Labels for this resource. These can only be added or modified by the setLabels # method. Each label key/value pair must comply with RFC1035. Label values may # be empty. # Corresponds to the JSON property `labels` # @return [Hash] attr_accessor :labels # Name of the resource. Provided by the client when the resource is created. The # name must be 1-63 characters long, and comply with RFC1035. Specifically, the # name must be 1-63 characters long and match the regular expression `[a-z]([-a- # z0-9]*[a-z0-9])?`. The first character must be a lowercase letter, and all # following characters (except for the last character) must be a dash, lowercase # letter, or digit. The last character must be a lowercase letter or digit. # Corresponds to the JSON property `name` # @return [String] attr_accessor :name # The URL of the network in which to reserve the address. This field can only be # used with INTERNAL type with the VPC_PEERING purpose. # Corresponds to the JSON property `network` # @return [String] attr_accessor :network # This signifies the networking tier used for configuring this address and can # only take the following values: PREMIUM or STANDARD. Internal IP addresses are # always Premium Tier; global external IP addresses are always Premium Tier; # regional external IP addresses can be either Standard or Premium Tier. If this # field is not specified, it is assumed to be PREMIUM. # Corresponds to the JSON property `networkTier` # @return [String] attr_accessor :network_tier # The prefix length if the resource represents an IP range. # Corresponds to the JSON property `prefixLength` # @return [Fixnum] attr_accessor :prefix_length # The purpose of this resource, which can be one of the following values: - # GCE_ENDPOINT for addresses that are used by VM instances, alias IP ranges, # load balancers, and similar resources. - DNS_RESOLVER for a DNS resolver # address in a subnetwork for a Cloud DNS inbound forwarder IP addresses ( # regional internal IP address in a subnet of a VPC network) - VPC_PEERING for # global internal IP addresses used for private services access allocated ranges. # - NAT_AUTO for the regional external IP addresses used by Cloud NAT when # allocating addresses using automatic NAT IP address allocation. - # IPSEC_INTERCONNECT for addresses created from a private IP range that are # reserved for a VLAN attachment in an *IPsec-encrypted Cloud Interconnect* # configuration. These addresses are regional resources. Not currently available # publicly. - `SHARED_LOADBALANCER_VIP` for an internal IP address that is # assigned to multiple internal forwarding rules. - `PRIVATE_SERVICE_CONNECT` # for a private network address that is used to configure Private Service # Connect. Only global internal addresses can use this purpose. # Corresponds to the JSON property `purpose` # @return [String] attr_accessor :purpose # [Output Only] The URL of the region where a regional address resides. For # regional addresses, you must specify the region as a path parameter in the # HTTP request URL. *This field is not applicable to global addresses.* # Corresponds to the JSON property `region` # @return [String] attr_accessor :region # [Output Only] Server-defined URL for the resource. # Corresponds to the JSON property `selfLink` # @return [String] attr_accessor :self_link # [Output Only] Server-defined URL for this resource with the resource id. # Corresponds to the JSON property `selfLinkWithId` # @return [String] attr_accessor :self_link_with_id # [Output Only] The status of the address, which can be one of RESERVING, # RESERVED, or IN_USE. An address that is RESERVING is currently in the process # of being reserved. A RESERVED address is currently reserved and available to # use. An IN_USE address is currently being used by another resource and is not # available. # Corresponds to the JSON property `status` # @return [String] attr_accessor :status # The URL of the subnetwork in which to reserve the address. If an IP address is # specified, it must be within the subnetwork's IP range. This field can only be # used with INTERNAL type with a GCE_ENDPOINT or DNS_RESOLVER purpose. # Corresponds to the JSON property `subnetwork` # @return [String] attr_accessor :subnetwork # [Output Only] The URLs of the resources that are using this address. # Corresponds to the JSON property `users` # @return [Array] attr_accessor :users def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @address = args[:address] if args.key?(:address) @address_type = args[:address_type] if args.key?(:address_type) @creation_timestamp = args[:creation_timestamp] if args.key?(:creation_timestamp) @description = args[:description] if args.key?(:description) @id = args[:id] if args.key?(:id) @ip_version = args[:ip_version] if args.key?(:ip_version) @ipv6_endpoint_type = args[:ipv6_endpoint_type] if args.key?(:ipv6_endpoint_type) @kind = args[:kind] if args.key?(:kind) @label_fingerprint = args[:label_fingerprint] if args.key?(:label_fingerprint) @labels = args[:labels] if args.key?(:labels) @name = args[:name] if args.key?(:name) @network = args[:network] if args.key?(:network) @network_tier = args[:network_tier] if args.key?(:network_tier) @prefix_length = args[:prefix_length] if args.key?(:prefix_length) @purpose = args[:purpose] if args.key?(:purpose) @region = args[:region] if args.key?(:region) @self_link = args[:self_link] if args.key?(:self_link) @self_link_with_id = args[:self_link_with_id] if args.key?(:self_link_with_id) @status = args[:status] if args.key?(:status) @subnetwork = args[:subnetwork] if args.key?(:subnetwork) @users = args[:users] if args.key?(:users) end end # class AddressAggregatedList include Google::Apis::Core::Hashable # [Output Only] Unique identifier for the resource; defined by the server. # Corresponds to the JSON property `id` # @return [String] attr_accessor :id # A list of AddressesScopedList resources. # Corresponds to the JSON property `items` # @return [Hash] attr_accessor :items # [Output Only] Type of resource. Always compute#addressAggregatedList for # aggregated lists of addresses. # Corresponds to the JSON property `kind` # @return [String] attr_accessor :kind # [Output Only] This token allows you to get the next page of results for list # requests. If the number of results is larger than maxResults, use the # nextPageToken as a value for the query parameter pageToken in the next list # request. Subsequent list requests will have their own nextPageToken to # continue paging through the results. # Corresponds to the JSON property `nextPageToken` # @return [String] attr_accessor :next_page_token # [Output Only] Server-defined URL for this resource. # Corresponds to the JSON property `selfLink` # @return [String] attr_accessor :self_link # [Output Only] Unreachable resources. # Corresponds to the JSON property `unreachables` # @return [Array] attr_accessor :unreachables # [Output Only] Informational warning message. # Corresponds to the JSON property `warning` # @return [Google::Apis::ComputeAlpha::AddressAggregatedList::Warning] attr_accessor :warning def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @id = args[:id] if args.key?(:id) @items = args[:items] if args.key?(:items) @kind = args[:kind] if args.key?(:kind) @next_page_token = args[:next_page_token] if args.key?(:next_page_token) @self_link = args[:self_link] if args.key?(:self_link) @unreachables = args[:unreachables] if args.key?(:unreachables) @warning = args[:warning] if args.key?(:warning) end # [Output Only] Informational warning message. class Warning include Google::Apis::Core::Hashable # [Output Only] A warning code, if applicable. For example, Compute Engine # returns NO_RESULTS_ON_PAGE if there are no results in the response. # Corresponds to the JSON property `code` # @return [String] attr_accessor :code # [Output Only] Metadata about this warning in key: value format. For example: " # data": [ ` "key": "scope", "value": "zones/us-east1-d" ` # Corresponds to the JSON property `data` # @return [Array] attr_accessor :data # [Output Only] A human-readable description of the warning code. # Corresponds to the JSON property `message` # @return [String] attr_accessor :message def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @code = args[:code] if args.key?(:code) @data = args[:data] if args.key?(:data) @message = args[:message] if args.key?(:message) end # class Datum include Google::Apis::Core::Hashable # [Output Only] A key that provides more detail on the warning being returned. # For example, for warnings where there are no results in a list request for a # particular zone, this key might be scope and the key value might be the zone # name. Other examples might be a key indicating a deprecated resource and a # suggested replacement, or a warning about invalid network settings (for # example, if an instance attempts to perform IP forwarding but is not enabled # for IP forwarding). # Corresponds to the JSON property `key` # @return [String] attr_accessor :key # [Output Only] A warning data value corresponding to the key. # 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 end end # Contains a list of addresses. class AddressList include Google::Apis::Core::Hashable # [Output Only] Unique identifier for the resource; defined by the server. # Corresponds to the JSON property `id` # @return [String] attr_accessor :id # A list of Address resources. # Corresponds to the JSON property `items` # @return [Array] attr_accessor :items # [Output Only] Type of resource. Always compute#addressList for lists of # addresses. # Corresponds to the JSON property `kind` # @return [String] attr_accessor :kind # [Output Only] This token allows you to get the next page of results for list # requests. If the number of results is larger than maxResults, use the # nextPageToken as a value for the query parameter pageToken in the next list # request. Subsequent list requests will have their own nextPageToken to # continue paging through the results. # Corresponds to the JSON property `nextPageToken` # @return [String] attr_accessor :next_page_token # [Output Only] Server-defined URL for this resource. # Corresponds to the JSON property `selfLink` # @return [String] attr_accessor :self_link # [Output Only] Informational warning message. # Corresponds to the JSON property `warning` # @return [Google::Apis::ComputeAlpha::AddressList::Warning] attr_accessor :warning def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @id = args[:id] if args.key?(:id) @items = args[:items] if args.key?(:items) @kind = args[:kind] if args.key?(:kind) @next_page_token = args[:next_page_token] if args.key?(:next_page_token) @self_link = args[:self_link] if args.key?(:self_link) @warning = args[:warning] if args.key?(:warning) end # [Output Only] Informational warning message. class Warning include Google::Apis::Core::Hashable # [Output Only] A warning code, if applicable. For example, Compute Engine # returns NO_RESULTS_ON_PAGE if there are no results in the response. # Corresponds to the JSON property `code` # @return [String] attr_accessor :code # [Output Only] Metadata about this warning in key: value format. For example: " # data": [ ` "key": "scope", "value": "zones/us-east1-d" ` # Corresponds to the JSON property `data` # @return [Array] attr_accessor :data # [Output Only] A human-readable description of the warning code. # Corresponds to the JSON property `message` # @return [String] attr_accessor :message def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @code = args[:code] if args.key?(:code) @data = args[:data] if args.key?(:data) @message = args[:message] if args.key?(:message) end # class Datum include Google::Apis::Core::Hashable # [Output Only] A key that provides more detail on the warning being returned. # For example, for warnings where there are no results in a list request for a # particular zone, this key might be scope and the key value might be the zone # name. Other examples might be a key indicating a deprecated resource and a # suggested replacement, or a warning about invalid network settings (for # example, if an instance attempts to perform IP forwarding but is not enabled # for IP forwarding). # Corresponds to the JSON property `key` # @return [String] attr_accessor :key # [Output Only] A warning data value corresponding to the key. # 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 end end # class AddressesScopedList include Google::Apis::Core::Hashable # [Output Only] A list of addresses contained in this scope. # Corresponds to the JSON property `addresses` # @return [Array] attr_accessor :addresses # [Output Only] Informational warning which replaces the list of addresses when # the list is empty. # Corresponds to the JSON property `warning` # @return [Google::Apis::ComputeAlpha::AddressesScopedList::Warning] attr_accessor :warning def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @addresses = args[:addresses] if args.key?(:addresses) @warning = args[:warning] if args.key?(:warning) end # [Output Only] Informational warning which replaces the list of addresses when # the list is empty. class Warning include Google::Apis::Core::Hashable # [Output Only] A warning code, if applicable. For example, Compute Engine # returns NO_RESULTS_ON_PAGE if there are no results in the response. # Corresponds to the JSON property `code` # @return [String] attr_accessor :code # [Output Only] Metadata about this warning in key: value format. For example: " # data": [ ` "key": "scope", "value": "zones/us-east1-d" ` # Corresponds to the JSON property `data` # @return [Array] attr_accessor :data # [Output Only] A human-readable description of the warning code. # Corresponds to the JSON property `message` # @return [String] attr_accessor :message def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @code = args[:code] if args.key?(:code) @data = args[:data] if args.key?(:data) @message = args[:message] if args.key?(:message) end # class Datum include Google::Apis::Core::Hashable # [Output Only] A key that provides more detail on the warning being returned. # For example, for warnings where there are no results in a list request for a # particular zone, this key might be scope and the key value might be the zone # name. Other examples might be a key indicating a deprecated resource and a # suggested replacement, or a warning about invalid network settings (for # example, if an instance attempts to perform IP forwarding but is not enabled # for IP forwarding). # Corresponds to the JSON property `key` # @return [String] attr_accessor :key # [Output Only] A warning data value corresponding to the key. # 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 end end # Specifies options for controlling advanced machine features. Options that # would traditionally be configured in a BIOS belong here. Features that require # operating system support may have corresponding entries in the GuestOsFeatures # of an Image (e.g., whether or not the OS in the Image supports nested # virtualization being enabled or disabled). class AdvancedMachineFeatures include Google::Apis::Core::Hashable # Whether to enable nested virtualization or not (default is false). # Corresponds to the JSON property `enableNestedVirtualization` # @return [Boolean] attr_accessor :enable_nested_virtualization alias_method :enable_nested_virtualization?, :enable_nested_virtualization # Whether to enable UEFI networking for instance creation. # Corresponds to the JSON property `enableUefiNetworking` # @return [Boolean] attr_accessor :enable_uefi_networking alias_method :enable_uefi_networking?, :enable_uefi_networking # The number of vNUMA nodes. # Corresponds to the JSON property `numaNodeCount` # @return [Fixnum] attr_accessor :numa_node_count # The number of threads per physical core. To disable simultaneous # multithreading (SMT) set this to 1. If unset, the maximum number of threads # supported per core by the underlying processor is assumed. # Corresponds to the JSON property `threadsPerCore` # @return [Fixnum] attr_accessor :threads_per_core # The number of physical cores to expose to an instance. Multiply by the number # of threads per core to compute the total number of virtual CPUs to expose to # the instance. If unset, the number of cores is inferred from the instance's # nominal CPU count and the underlying platform's SMT width. # Corresponds to the JSON property `visibleCoreCount` # @return [Fixnum] attr_accessor :visible_core_count def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @enable_nested_virtualization = args[:enable_nested_virtualization] if args.key?(:enable_nested_virtualization) @enable_uefi_networking = args[:enable_uefi_networking] if args.key?(:enable_uefi_networking) @numa_node_count = args[:numa_node_count] if args.key?(:numa_node_count) @threads_per_core = args[:threads_per_core] if args.key?(:threads_per_core) @visible_core_count = args[:visible_core_count] if args.key?(:visible_core_count) end end # An alias IP range attached to an instance's network interface. class AliasIpRange include Google::Apis::Core::Hashable # The IP alias ranges to allocate for this interface. This IP CIDR range must # belong to the specified subnetwork and cannot contain IP addresses reserved by # system or used by other network interfaces. This range may be a single IP # address (such as 10.2.3.4), a netmask (such as /24) or a CIDR-formatted string # (such as 10.1.2.0/24). # Corresponds to the JSON property `ipCidrRange` # @return [String] attr_accessor :ip_cidr_range # The name of a subnetwork secondary IP range from which to allocate an IP alias # range. If not specified, the primary range of the subnetwork is used. # Corresponds to the JSON property `subnetworkRangeName` # @return [String] attr_accessor :subnetwork_range_name def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @ip_cidr_range = args[:ip_cidr_range] if args.key?(:ip_cidr_range) @subnetwork_range_name = args[:subnetwork_range_name] if args.key?(:subnetwork_range_name) end end # class AllocationSpecificSkuAllocationAllocatedInstancePropertiesReservedDisk include Google::Apis::Core::Hashable # Specifies the size of the disk in base-2 GB. # Corresponds to the JSON property `diskSizeGb` # @return [Fixnum] attr_accessor :disk_size_gb # Specifies the disk interface to use for attaching this disk, which is either # SCSI or NVME. The default is SCSI. For performance characteristics of SCSI # over NVMe, see Local SSD performance. # Corresponds to the JSON property `interface` # @return [String] attr_accessor :interface 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) @interface = args[:interface] if args.key?(:interface) end end # Properties of the SKU instances being reserved. Next ID: 9 class AllocationSpecificSkuAllocationReservedInstanceProperties include Google::Apis::Core::Hashable # Specifies accelerator type and count. # Corresponds to the JSON property `guestAccelerators` # @return [Array] attr_accessor :guest_accelerators # Specifies amount of local ssd to reserve with each instance. The type of disk # is local-ssd. # Corresponds to the JSON property `localSsds` # @return [Array] attr_accessor :local_ssds # An opaque location hint used to place the allocation close to other resources. # This field is for use by internal tools that use the public API. # Corresponds to the JSON property `locationHint` # @return [String] attr_accessor :location_hint # Specifies type of machine (name only) which has fixed number of vCPUs and # fixed amount of memory. This also includes specifying custom machine type # following custom-NUMBER_OF_CPUS-AMOUNT_OF_MEMORY pattern. # Corresponds to the JSON property `machineType` # @return [String] attr_accessor :machine_type # Specifies the number of hours after reservation creation where instances using # the reservation won't be scheduled for maintenance. # Corresponds to the JSON property `maintenanceFreezeDurationHours` # @return [Fixnum] attr_accessor :maintenance_freeze_duration_hours # For more information about maintenance intervals, see Setting maintenance # intervals. # Corresponds to the JSON property `maintenanceInterval` # @return [String] attr_accessor :maintenance_interval # Minimum cpu platform the reservation. # Corresponds to the JSON property `minCpuPlatform` # @return [String] attr_accessor :min_cpu_platform def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @guest_accelerators = args[:guest_accelerators] if args.key?(:guest_accelerators) @local_ssds = args[:local_ssds] if args.key?(:local_ssds) @location_hint = args[:location_hint] if args.key?(:location_hint) @machine_type = args[:machine_type] if args.key?(:machine_type) @maintenance_freeze_duration_hours = args[:maintenance_freeze_duration_hours] if args.key?(:maintenance_freeze_duration_hours) @maintenance_interval = args[:maintenance_interval] if args.key?(:maintenance_interval) @min_cpu_platform = args[:min_cpu_platform] if args.key?(:min_cpu_platform) end end # This reservation type allows to pre allocate specific instance configuration. # Next ID: 5 class AllocationSpecificSkuReservation include Google::Apis::Core::Hashable # [Output Only] Indicates how many instances are actually usable currently. # Corresponds to the JSON property `assuredCount` # @return [Fixnum] attr_accessor :assured_count # Specifies the number of resources that are allocated. # Corresponds to the JSON property `count` # @return [Fixnum] attr_accessor :count # [Output Only] Indicates how many instances are in use. # Corresponds to the JSON property `inUseCount` # @return [Fixnum] attr_accessor :in_use_count # Properties of the SKU instances being reserved. Next ID: 9 # Corresponds to the JSON property `instanceProperties` # @return [Google::Apis::ComputeAlpha::AllocationSpecificSkuAllocationReservedInstanceProperties] attr_accessor :instance_properties def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @assured_count = args[:assured_count] if args.key?(:assured_count) @count = args[:count] if args.key?(:count) @in_use_count = args[:in_use_count] if args.key?(:in_use_count) @instance_properties = args[:instance_properties] if args.key?(:instance_properties) end end # An instance-attached disk resource. class AttachedDisk include Google::Apis::Core::Hashable # [Output Only] The architecture of the attached disk. Valid values are ARM64 or # X86_64. # Corresponds to the JSON property `architecture` # @return [String] attr_accessor :architecture # Specifies whether the disk will be auto-deleted when the instance is deleted ( # but not when the disk is detached from the instance). # Corresponds to the JSON property `autoDelete` # @return [Boolean] attr_accessor :auto_delete alias_method :auto_delete?, :auto_delete # Indicates that this is a boot disk. The virtual machine will use the first # partition of the disk for its root filesystem. # Corresponds to the JSON property `boot` # @return [Boolean] attr_accessor :boot alias_method :boot?, :boot # Specifies a unique device name of your choice that is reflected into the /dev/ # disk/by-id/google-* tree of a Linux operating system running within the # instance. This name can be used to reference the device for mounting, resizing, # and so on, from within the instance. If not specified, the server chooses a # default device name to apply to this disk, in the form persistent-disk-x, # where x is a number assigned by Google Compute Engine. This field is only # applicable for persistent disks. # Corresponds to the JSON property `deviceName` # @return [String] attr_accessor :device_name # Encrypts or decrypts a disk using a customer-supplied encryption key. If you # are creating a new disk, this field encrypts the new disk using an encryption # key that you provide. If you are attaching an existing disk that is already # encrypted, this field decrypts the disk using the customer-supplied encryption # key. If you encrypt a disk using a customer-supplied key, you must provide the # same key again when you attempt to use this resource at a later time. For # example, you must provide the key when you create a snapshot or an image from # the disk or when you attach the disk to a virtual machine instance. If you do # not provide an encryption key, then the disk will be encrypted using an # automatically generated key and you do not need to provide a key to use the # disk later. Instance templates do not store customer-supplied encryption keys, # so you cannot use your own keys to encrypt disks in a managed instance group. # Corresponds to the JSON property `diskEncryptionKey` # @return [Google::Apis::ComputeAlpha::CustomerEncryptionKey] attr_accessor :disk_encryption_key # The size of the disk in GB. # Corresponds to the JSON property `diskSizeGb` # @return [Fixnum] attr_accessor :disk_size_gb # [Input Only] Whether to force attach the regional disk even if it's currently # attached to another instance. If you try to force attach a zonal disk to an # instance, you will receive an error. # Corresponds to the JSON property `forceAttach` # @return [Boolean] attr_accessor :force_attach alias_method :force_attach?, :force_attach # A list of features to enable on the guest operating system. Applicable only # for bootable images. Read Enabling guest operating system features to see a # list of available options. # Corresponds to the JSON property `guestOsFeatures` # @return [Array] attr_accessor :guest_os_features # [Output Only] A zero-based index to this disk, where 0 is reserved for the # boot disk. If you have many disks attached to an instance, each disk would # have a unique index number. # Corresponds to the JSON property `index` # @return [Fixnum] attr_accessor :index # [Input Only] Specifies the parameters for a new disk that will be created # alongside the new instance. Use initialization parameters to create boot disks # or local SSDs attached to the new instance. This property is mutually # exclusive with the source property; you can only define one or the other, but # not both. # Corresponds to the JSON property `initializeParams` # @return [Google::Apis::ComputeAlpha::AttachedDiskInitializeParams] attr_accessor :initialize_params # Specifies the disk interface to use for attaching this disk, which is either # SCSI or NVME. The default is SCSI. Persistent disks must always use SCSI and # the request will fail if you attempt to attach a persistent disk in any other # format than SCSI. Local SSDs can use either NVME or SCSI. For performance # characteristics of SCSI over NVMe, see Local SSD performance. # Corresponds to the JSON property `interface` # @return [String] attr_accessor :interface # [Output Only] Type of the resource. Always compute#attachedDisk for attached # disks. # Corresponds to the JSON property `kind` # @return [String] attr_accessor :kind # [Output Only] Any valid publicly visible licenses. # Corresponds to the JSON property `licenses` # @return [Array] attr_accessor :licenses # [Output Only] Whether to indicate the attached disk is locked. The locked disk # is not allowed to be detached from the instance, or to be used as the source # of the snapshot creation, and the image creation. The instance with at least # one locked attached disk is not allow to be used as source of machine image # creation, instant snapshot creation, and not allowed to be deleted with --keep- # disk parameter set to true for locked disks. # Corresponds to the JSON property `locked` # @return [Boolean] attr_accessor :locked alias_method :locked?, :locked # The mode in which to attach this disk, either READ_WRITE or READ_ONLY. If not # specified, the default is to attach the disk in READ_WRITE mode. # Corresponds to the JSON property `mode` # @return [String] attr_accessor :mode # For LocalSSD disks on VM Instances in STOPPED or SUSPENDED state, this field # is set to PRESERVED if the LocalSSD data has been saved to a persistent # location by customer request. (see the discard_local_ssd option on Stop/ # Suspend). Read-only in the api. # Corresponds to the JSON property `savedState` # @return [String] attr_accessor :saved_state # Initial State for shielded instance, these are public keys which are safe to # store in public # Corresponds to the JSON property `shieldedInstanceInitialState` # @return [Google::Apis::ComputeAlpha::InitialStateConfig] attr_accessor :shielded_instance_initial_state # Specifies a valid partial or full URL to an existing Persistent Disk resource. # When creating a new instance, one of initializeParams.sourceImage or # initializeParams.sourceSnapshot or disks.source is required except for local # SSD. If desired, you can also attach existing non-root persistent disks using # this property. This field is only applicable for persistent disks. Note that # for InstanceTemplate, specify the disk name for zonal disk, and the URL for # regional disk. # Corresponds to the JSON property `source` # @return [String] attr_accessor :source # Specifies the type of the disk, either SCRATCH or PERSISTENT. If not specified, # the default is PERSISTENT. # Corresponds to the JSON property `type` # @return [String] attr_accessor :type # [Output Only] A list of user provided licenses. It represents a list of URLs # to the license resource. Unlike regular licenses, user provided licenses can # be modified after the disk is created. # Corresponds to the JSON property `userLicenses` # @return [Array] attr_accessor :user_licenses def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @architecture = args[:architecture] if args.key?(:architecture) @auto_delete = args[:auto_delete] if args.key?(:auto_delete) @boot = args[:boot] if args.key?(:boot) @device_name = args[:device_name] if args.key?(:device_name) @disk_encryption_key = args[:disk_encryption_key] if args.key?(:disk_encryption_key) @disk_size_gb = args[:disk_size_gb] if args.key?(:disk_size_gb) @force_attach = args[:force_attach] if args.key?(:force_attach) @guest_os_features = args[:guest_os_features] if args.key?(:guest_os_features) @index = args[:index] if args.key?(:index) @initialize_params = args[:initialize_params] if args.key?(:initialize_params) @interface = args[:interface] if args.key?(:interface) @kind = args[:kind] if args.key?(:kind) @licenses = args[:licenses] if args.key?(:licenses) @locked = args[:locked] if args.key?(:locked) @mode = args[:mode] if args.key?(:mode) @saved_state = args[:saved_state] if args.key?(:saved_state) @shielded_instance_initial_state = args[:shielded_instance_initial_state] if args.key?(:shielded_instance_initial_state) @source = args[:source] if args.key?(:source) @type = args[:type] if args.key?(:type) @user_licenses = args[:user_licenses] if args.key?(:user_licenses) end end # [Input Only] Specifies the parameters for a new disk that will be created # alongside the new instance. Use initialization parameters to create boot disks # or local SSDs attached to the new instance. This property is mutually # exclusive with the source property; you can only define one or the other, but # not both. class AttachedDiskInitializeParams include Google::Apis::Core::Hashable # The architecture of the attached disk. Valid values are arm64 or x86_64. # Corresponds to the JSON property `architecture` # @return [String] attr_accessor :architecture # An optional description. Provide this property when creating the disk. # Corresponds to the JSON property `description` # @return [String] attr_accessor :description # Specifies the disk name. If not specified, the default is to use the name of # the instance. If a disk with the same name already exists in the given region, # the existing disk is attached to the new instance and the new disk is not # created. # Corresponds to the JSON property `diskName` # @return [String] attr_accessor :disk_name # Specifies the size of the disk in base-2 GB. The size must be at least 10 GB. # If you specify a sourceImage, which is required for boot disks, the default # size is the size of the sourceImage. If you do not specify a sourceImage, the # default disk size is 500 GB. # Corresponds to the JSON property `diskSizeGb` # @return [Fixnum] attr_accessor :disk_size_gb # Specifies the disk type to use to create the instance. If not specified, the # default is pd-standard, specified using the full URL. For example: https://www. # googleapis.com/compute/v1/projects/project/zones/zone /diskTypes/pd-standard # For a full list of acceptable values, see Persistent disk types. If you define # this field, you can provide either the full or partial URL. For example, the # following are valid values: - https://www.googleapis.com/compute/v1/projects/ # project/zones/zone /diskTypes/diskType - projects/project/zones/zone/diskTypes/ # diskType - zones/zone/diskTypes/diskType Note that for InstanceTemplate, this # is the name of the disk type, not URL. # Corresponds to the JSON property `diskType` # @return [String] attr_accessor :disk_type # A list of features to enable on the guest operating system. Applicable only # for bootable images. Read Enabling guest operating system features to see a # list of available options. Guest OS features are applied by merging # initializeParams.guestOsFeatures and disks.guestOsFeatures # Corresponds to the JSON property `guestOsFeatures` # @return [Array] attr_accessor :guest_os_features # [Deprecated] Specifies the disk interface to use for attaching this disk, # which is either SCSI or NVME. The default is SCSI. # Corresponds to the JSON property `interface` # @return [String] attr_accessor :interface # Labels to apply to this disk. These can be later modified by the disks. # setLabels method. This field is only applicable for persistent disks. # Corresponds to the JSON property `labels` # @return [Hash] attr_accessor :labels # Integer license codes indicating which licenses are attached to this disk. # Corresponds to the JSON property `licenseCodes` # @return [Array] attr_accessor :license_codes # A list of publicly visible licenses. Reserved for Google's use. # Corresponds to the JSON property `licenses` # @return [Array] attr_accessor :licenses # Indicates whether or not the disk can be read/write attached to more than one # instance. # Corresponds to the JSON property `multiWriter` # @return [Boolean] attr_accessor :multi_writer alias_method :multi_writer?, :multi_writer # Specifies which action to take on instance update with this disk. Default is # to use the existing disk. # Corresponds to the JSON property `onUpdateAction` # @return [String] attr_accessor :on_update_action # Indicates how many IOPS to provision for the disk. This sets the number of I/O # operations per second that the disk can handle. Values must be between 10,000 # and 120,000. For more details, see the Extreme persistent disk documentation. # Corresponds to the JSON property `provisionedIops` # @return [Fixnum] attr_accessor :provisioned_iops # URLs of the zones where the disk should be replicated to. Only applicable for # regional resources. # Corresponds to the JSON property `replicaZones` # @return [Array] attr_accessor :replica_zones # Resource policies applied to this disk for automatic snapshot creations. # Specified using the full or partial URL. For instance template, specify only # the resource policy name. # Corresponds to the JSON property `resourcePolicies` # @return [Array] attr_accessor :resource_policies # The source image to create this disk. When creating a new instance, one of # initializeParams.sourceImage or initializeParams.sourceSnapshot or disks. # source is required except for local SSD. To create a disk with one of the # public operating system images, specify the image by its family name. For # example, specify family/debian-9 to use the latest Debian 9 image: projects/ # debian-cloud/global/images/family/debian-9 Alternatively, use a specific # version of a public operating system image: projects/debian-cloud/global/ # images/debian-9-stretch-vYYYYMMDD To create a disk with a custom image that # you created, specify the image name in the following format: global/images/my- # custom-image You can also specify a custom image by its image family, which # returns the latest version of the image in that family. Replace the image name # with family/family-name: global/images/family/my-image-family If the source # image is deleted later, this field will not be set. # Corresponds to the JSON property `sourceImage` # @return [String] attr_accessor :source_image # The customer-supplied encryption key of the source image. Required if the # source image is protected by a customer-supplied encryption key. Instance # templates do not store customer-supplied encryption keys, so you cannot create # disks for instances in a managed instance group if the source images are # encrypted with your own keys. # Corresponds to the JSON property `sourceImageEncryptionKey` # @return [Google::Apis::ComputeAlpha::CustomerEncryptionKey] attr_accessor :source_image_encryption_key # The source instant-snapshot to create this disk. When creating a new instance, # one of initializeParams.sourceSnapshot or initializeParams. # sourceInstantSnapshot initializeParams.sourceImage or disks.source is required # except for local SSD. To create a disk with a snapshot that you created, # specify the snapshot name in the following format: us-central1-a/ # instantSnapshots/my-backup If the source instant-snapshot is deleted later, # this field will not be set. # Corresponds to the JSON property `sourceInstantSnapshot` # @return [String] attr_accessor :source_instant_snapshot # The source snapshot to create this disk. When creating a new instance, one of # initializeParams.sourceSnapshot or initializeParams.sourceImage or disks. # source is required except for local SSD. To create a disk with a snapshot that # you created, specify the snapshot name in the following format: global/ # snapshots/my-backup If the source snapshot is deleted later, this field will # not be set. # Corresponds to the JSON property `sourceSnapshot` # @return [String] attr_accessor :source_snapshot # The customer-supplied encryption key of the source snapshot. # Corresponds to the JSON property `sourceSnapshotEncryptionKey` # @return [Google::Apis::ComputeAlpha::CustomerEncryptionKey] attr_accessor :source_snapshot_encryption_key def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @architecture = args[:architecture] if args.key?(:architecture) @description = args[:description] if args.key?(:description) @disk_name = args[:disk_name] if args.key?(:disk_name) @disk_size_gb = args[:disk_size_gb] if args.key?(:disk_size_gb) @disk_type = args[:disk_type] if args.key?(:disk_type) @guest_os_features = args[:guest_os_features] if args.key?(:guest_os_features) @interface = args[:interface] if args.key?(:interface) @labels = args[:labels] if args.key?(:labels) @license_codes = args[:license_codes] if args.key?(:license_codes) @licenses = args[:licenses] if args.key?(:licenses) @multi_writer = args[:multi_writer] if args.key?(:multi_writer) @on_update_action = args[:on_update_action] if args.key?(:on_update_action) @provisioned_iops = args[:provisioned_iops] if args.key?(:provisioned_iops) @replica_zones = args[:replica_zones] if args.key?(:replica_zones) @resource_policies = args[:resource_policies] if args.key?(:resource_policies) @source_image = args[:source_image] if args.key?(:source_image) @source_image_encryption_key = args[:source_image_encryption_key] if args.key?(:source_image_encryption_key) @source_instant_snapshot = args[:source_instant_snapshot] if args.key?(:source_instant_snapshot) @source_snapshot = args[:source_snapshot] if args.key?(:source_snapshot) @source_snapshot_encryption_key = args[:source_snapshot_encryption_key] if args.key?(:source_snapshot_encryption_key) end end # Specifies the audit configuration for a service. The configuration determines # which permission types are logged, and what identities, if any, are exempted # from logging. An AuditConfig must have one or more AuditLogConfigs. If there # are AuditConfigs for both `allServices` and a specific service, the union of # the two AuditConfigs is used for that service: the log_types specified in each # AuditConfig are enabled, and the exempted_members in each AuditLogConfig are # exempted. Example Policy with multiple AuditConfigs: ` "audit_configs": [ ` " # service": "allServices", "audit_log_configs": [ ` "log_type": "DATA_READ", " # exempted_members": [ "user:jose@example.com" ] `, ` "log_type": "DATA_WRITE" `, # ` "log_type": "ADMIN_READ" ` ] `, ` "service": "sampleservice.googleapis.com", # "audit_log_configs": [ ` "log_type": "DATA_READ" `, ` "log_type": "DATA_WRITE" # , "exempted_members": [ "user:aliya@example.com" ] ` ] ` ] ` For sampleservice, # this policy enables DATA_READ, DATA_WRITE and ADMIN_READ logging. It also # exempts jose@example.com from DATA_READ logging, and aliya@example.com from # DATA_WRITE logging. class AuditConfig include Google::Apis::Core::Hashable # The configuration for logging of each type of permission. # Corresponds to the JSON property `auditLogConfigs` # @return [Array] attr_accessor :audit_log_configs # This is deprecated and has no effect. Do not use. # Corresponds to the JSON property `exemptedMembers` # @return [Array] attr_accessor :exempted_members # Specifies a service that will be enabled for audit logging. For example, ` # storage.googleapis.com`, `cloudsql.googleapis.com`. `allServices` is a special # value that covers all services. # Corresponds to the JSON property `service` # @return [String] attr_accessor :service def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @audit_log_configs = args[:audit_log_configs] if args.key?(:audit_log_configs) @exempted_members = args[:exempted_members] if args.key?(:exempted_members) @service = args[:service] if args.key?(:service) end end # Provides the configuration for logging a type of permissions. Example: ` " # audit_log_configs": [ ` "log_type": "DATA_READ", "exempted_members": [ "user: # jose@example.com" ] `, ` "log_type": "DATA_WRITE" ` ] ` This enables ' # DATA_READ' and 'DATA_WRITE' logging, while exempting jose@example.com from # DATA_READ logging. class AuditLogConfig include Google::Apis::Core::Hashable # Specifies the identities that do not cause logging for this type of permission. # Follows the same format of Binding.members. # Corresponds to the JSON property `exemptedMembers` # @return [Array] attr_accessor :exempted_members # This is deprecated and has no effect. Do not use. # Corresponds to the JSON property `ignoreChildExemptions` # @return [Boolean] attr_accessor :ignore_child_exemptions alias_method :ignore_child_exemptions?, :ignore_child_exemptions # The log type that this config enables. # Corresponds to the JSON property `logType` # @return [String] attr_accessor :log_type def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @exempted_members = args[:exempted_members] if args.key?(:exempted_members) @ignore_child_exemptions = args[:ignore_child_exemptions] if args.key?(:ignore_child_exemptions) @log_type = args[:log_type] if args.key?(:log_type) end end # [Deprecated] The authentication settings for the backend service. The # authentication settings for the backend service. class AuthenticationPolicy include Google::Apis::Core::Hashable # List of authentication methods that can be used for origin authentication. # Similar to peers, these will be evaluated in order the first valid one will be # used to set origin identity. If none of these methods pass, the request will # be rejected with authentication failed error (401). Leave the list empty if # origin authentication is not required. # Corresponds to the JSON property `origins` # @return [Array] attr_accessor :origins # List of authentication methods that can be used for peer authentication. They # will be evaluated in order the first valid one will be used to set peer # identity. If none of these methods pass, the request will be rejected with # authentication failed error (401). Leave the list empty if peer authentication # is not required. # Corresponds to the JSON property `peers` # @return [Array] attr_accessor :peers # Define whether peer or origin identity should be used for principal. Default # value is USE_PEER. If peer (or origin) identity is not available, either # because peer/origin authentication is not defined, or failed, principal will # be left unset. In other words, binding rule does not affect the decision to # accept or reject request. This field can be set to one of the following: # USE_PEER: Principal will be set to the identity from peer authentication. # USE_ORIGIN: Principal will be set to the identity from origin authentication. # Corresponds to the JSON property `principalBinding` # @return [String] attr_accessor :principal_binding # [Deprecated] The TLS settings for the client or server. The TLS settings for # the client or server. # Corresponds to the JSON property `serverTlsContext` # @return [Google::Apis::ComputeAlpha::TlsContext] attr_accessor :server_tls_context def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @origins = args[:origins] if args.key?(:origins) @peers = args[:peers] if args.key?(:peers) @principal_binding = args[:principal_binding] if args.key?(:principal_binding) @server_tls_context = args[:server_tls_context] if args.key?(:server_tls_context) end end # [Deprecated] Authorization configuration provides service-level and method- # level access control for a service. control for a service. class AuthorizationConfig include Google::Apis::Core::Hashable # List of RbacPolicies. # Corresponds to the JSON property `policies` # @return [Array] attr_accessor :policies def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @policies = args[:policies] if args.key?(:policies) end end # This is deprecated and has no effect. Do not use. class AuthorizationLoggingOptions include Google::Apis::Core::Hashable # This is deprecated and has no effect. Do not use. # Corresponds to the JSON property `permissionType` # @return [String] attr_accessor :permission_type def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @permission_type = args[:permission_type] if args.key?(:permission_type) end end # Represents an Autoscaler resource. Google Compute Engine has two Autoscaler # resources: * [Zonal](/compute/docs/reference/rest/alpha/autoscalers) * [ # Regional](/compute/docs/reference/rest/alpha/regionAutoscalers) Use # autoscalers to automatically add or delete instances from a managed instance # group according to your defined autoscaling policy. For more information, read # Autoscaling Groups of Instances. For zonal managed instance groups resource, # use the autoscaler resource. For regional managed instance groups, use the # regionAutoscalers resource. class Autoscaler include Google::Apis::Core::Hashable # Cloud Autoscaler policy. # Corresponds to the JSON property `autoscalingPolicy` # @return [Google::Apis::ComputeAlpha::AutoscalingPolicy] attr_accessor :autoscaling_policy # [Output Only] Creation timestamp in RFC3339 text format. # Corresponds to the JSON property `creationTimestamp` # @return [String] attr_accessor :creation_timestamp # An optional description of this resource. Provide this property when you # create the resource. # Corresponds to the JSON property `description` # @return [String] attr_accessor :description # [Output Only] The unique identifier for the resource. This identifier is # defined by the server. # Corresponds to the JSON property `id` # @return [Fixnum] attr_accessor :id # [Output Only] Type of the resource. Always compute#autoscaler for autoscalers. # Corresponds to the JSON property `kind` # @return [String] attr_accessor :kind # Name of the resource. Provided by the client when the resource is created. The # name must be 1-63 characters long, and comply with RFC1035. Specifically, the # name must be 1-63 characters long and match the regular expression `[a-z]([-a- # z0-9]*[a-z0-9])?` which means the first character must be a lowercase letter, # and all following characters must be a dash, lowercase letter, or digit, # except the last character, which cannot be a dash. # Corresponds to the JSON property `name` # @return [String] attr_accessor :name # [Output Only] Target recommended MIG size (number of instances) computed by # autoscaler. Autoscaler calculates the recommended MIG size even when the # autoscaling policy mode is different from ON. This field is empty when # autoscaler is not connected to an existing managed instance group or # autoscaler did not generate its prediction. # Corresponds to the JSON property `recommendedSize` # @return [Fixnum] attr_accessor :recommended_size # [Output Only] URL of the region where the instance group resides (for # autoscalers living in regional scope). # Corresponds to the JSON property `region` # @return [String] attr_accessor :region # [Output Only] Status information of existing scaling schedules. # Corresponds to the JSON property `scalingScheduleStatus` # @return [Hash] attr_accessor :scaling_schedule_status # [Output Only] Server-defined URL for the resource. # Corresponds to the JSON property `selfLink` # @return [String] attr_accessor :self_link # [Output Only] Server-defined URL for this resource with the resource id. # Corresponds to the JSON property `selfLinkWithId` # @return [String] attr_accessor :self_link_with_id # [Output Only] The status of the autoscaler configuration. Current set of # possible values: - PENDING: Autoscaler backend hasn't read new/updated # configuration. - DELETING: Configuration is being deleted. - ACTIVE: # Configuration is acknowledged to be effective. Some warnings might be present # in the statusDetails field. - ERROR: Configuration has errors. Actionable for # users. Details are present in the statusDetails field. New values might be # added in the future. # Corresponds to the JSON property `status` # @return [String] attr_accessor :status # [Output Only] Human-readable details about the current state of the autoscaler. # Read the documentation for Commonly returned status messages for examples of # status messages you might encounter. # Corresponds to the JSON property `statusDetails` # @return [Array] attr_accessor :status_details # URL of the managed instance group that this autoscaler will scale. This field # is required when creating an autoscaler. # Corresponds to the JSON property `target` # @return [String] attr_accessor :target # [Output Only] URL of the zone where the instance group resides (for # autoscalers living in zonal scope). # 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) @autoscaling_policy = args[:autoscaling_policy] if args.key?(:autoscaling_policy) @creation_timestamp = args[:creation_timestamp] if args.key?(:creation_timestamp) @description = args[:description] if args.key?(:description) @id = args[:id] if args.key?(:id) @kind = args[:kind] if args.key?(:kind) @name = args[:name] if args.key?(:name) @recommended_size = args[:recommended_size] if args.key?(:recommended_size) @region = args[:region] if args.key?(:region) @scaling_schedule_status = args[:scaling_schedule_status] if args.key?(:scaling_schedule_status) @self_link = args[:self_link] if args.key?(:self_link) @self_link_with_id = args[:self_link_with_id] if args.key?(:self_link_with_id) @status = args[:status] if args.key?(:status) @status_details = args[:status_details] if args.key?(:status_details) @target = args[:target] if args.key?(:target) @zone = args[:zone] if args.key?(:zone) end end # class AutoscalerAggregatedList include Google::Apis::Core::Hashable # [Output Only] Unique identifier for the resource; defined by the server. # Corresponds to the JSON property `id` # @return [String] attr_accessor :id # A list of AutoscalersScopedList resources. # Corresponds to the JSON property `items` # @return [Hash] attr_accessor :items # [Output Only] Type of resource. Always compute#autoscalerAggregatedList for # aggregated lists of autoscalers. # Corresponds to the JSON property `kind` # @return [String] attr_accessor :kind # [Output Only] This token allows you to get the next page of results for list # requests. If the number of results is larger than maxResults, use the # nextPageToken as a value for the query parameter pageToken in the next list # request. Subsequent list requests will have their own nextPageToken to # continue paging through the results. # Corresponds to the JSON property `nextPageToken` # @return [String] attr_accessor :next_page_token # [Output Only] Server-defined URL for this resource. # Corresponds to the JSON property `selfLink` # @return [String] attr_accessor :self_link # [Output Only] Unreachable resources. end_interface: # MixerListResponseWithEtagBuilder # Corresponds to the JSON property `unreachables` # @return [Array] attr_accessor :unreachables # [Output Only] Informational warning message. # Corresponds to the JSON property `warning` # @return [Google::Apis::ComputeAlpha::AutoscalerAggregatedList::Warning] attr_accessor :warning def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @id = args[:id] if args.key?(:id) @items = args[:items] if args.key?(:items) @kind = args[:kind] if args.key?(:kind) @next_page_token = args[:next_page_token] if args.key?(:next_page_token) @self_link = args[:self_link] if args.key?(:self_link) @unreachables = args[:unreachables] if args.key?(:unreachables) @warning = args[:warning] if args.key?(:warning) end # [Output Only] Informational warning message. class Warning include Google::Apis::Core::Hashable # [Output Only] A warning code, if applicable. For example, Compute Engine # returns NO_RESULTS_ON_PAGE if there are no results in the response. # Corresponds to the JSON property `code` # @return [String] attr_accessor :code # [Output Only] Metadata about this warning in key: value format. For example: " # data": [ ` "key": "scope", "value": "zones/us-east1-d" ` # Corresponds to the JSON property `data` # @return [Array] attr_accessor :data # [Output Only] A human-readable description of the warning code. # Corresponds to the JSON property `message` # @return [String] attr_accessor :message def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @code = args[:code] if args.key?(:code) @data = args[:data] if args.key?(:data) @message = args[:message] if args.key?(:message) end # class Datum include Google::Apis::Core::Hashable # [Output Only] A key that provides more detail on the warning being returned. # For example, for warnings where there are no results in a list request for a # particular zone, this key might be scope and the key value might be the zone # name. Other examples might be a key indicating a deprecated resource and a # suggested replacement, or a warning about invalid network settings (for # example, if an instance attempts to perform IP forwarding but is not enabled # for IP forwarding). # Corresponds to the JSON property `key` # @return [String] attr_accessor :key # [Output Only] A warning data value corresponding to the key. # 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 end end # Contains a list of Autoscaler resources. class AutoscalerList include Google::Apis::Core::Hashable # [Output Only] Unique identifier for the resource; defined by the server. # Corresponds to the JSON property `id` # @return [String] attr_accessor :id # A list of Autoscaler resources. # Corresponds to the JSON property `items` # @return [Array] attr_accessor :items # [Output Only] Type of resource. Always compute#autoscalerList for lists of # autoscalers. # Corresponds to the JSON property `kind` # @return [String] attr_accessor :kind # [Output Only] This token allows you to get the next page of results for list # requests. If the number of results is larger than maxResults, use the # nextPageToken as a value for the query parameter pageToken in the next list # request. Subsequent list requests will have their own nextPageToken to # continue paging through the results. # Corresponds to the JSON property `nextPageToken` # @return [String] attr_accessor :next_page_token # [Output Only] Server-defined URL for this resource. # Corresponds to the JSON property `selfLink` # @return [String] attr_accessor :self_link # [Output Only] Informational warning message. # Corresponds to the JSON property `warning` # @return [Google::Apis::ComputeAlpha::AutoscalerList::Warning] attr_accessor :warning def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @id = args[:id] if args.key?(:id) @items = args[:items] if args.key?(:items) @kind = args[:kind] if args.key?(:kind) @next_page_token = args[:next_page_token] if args.key?(:next_page_token) @self_link = args[:self_link] if args.key?(:self_link) @warning = args[:warning] if args.key?(:warning) end # [Output Only] Informational warning message. class Warning include Google::Apis::Core::Hashable # [Output Only] A warning code, if applicable. For example, Compute Engine # returns NO_RESULTS_ON_PAGE if there are no results in the response. # Corresponds to the JSON property `code` # @return [String] attr_accessor :code # [Output Only] Metadata about this warning in key: value format. For example: " # data": [ ` "key": "scope", "value": "zones/us-east1-d" ` # Corresponds to the JSON property `data` # @return [Array] attr_accessor :data # [Output Only] A human-readable description of the warning code. # Corresponds to the JSON property `message` # @return [String] attr_accessor :message def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @code = args[:code] if args.key?(:code) @data = args[:data] if args.key?(:data) @message = args[:message] if args.key?(:message) end # class Datum include Google::Apis::Core::Hashable # [Output Only] A key that provides more detail on the warning being returned. # For example, for warnings where there are no results in a list request for a # particular zone, this key might be scope and the key value might be the zone # name. Other examples might be a key indicating a deprecated resource and a # suggested replacement, or a warning about invalid network settings (for # example, if an instance attempts to perform IP forwarding but is not enabled # for IP forwarding). # Corresponds to the JSON property `key` # @return [String] attr_accessor :key # [Output Only] A warning data value corresponding to the key. # 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 end end # class AutoscalerStatusDetails include Google::Apis::Core::Hashable # The status message. # Corresponds to the JSON property `message` # @return [String] attr_accessor :message # The type of error, warning, or notice returned. Current set of possible values: # - ALL_INSTANCES_UNHEALTHY (WARNING): All instances in the instance group are # unhealthy (not in RUNNING state). - BACKEND_SERVICE_DOES_NOT_EXIST (ERROR): # There is no backend service attached to the instance group. - # CAPPED_AT_MAX_NUM_REPLICAS (WARNING): Autoscaler recommends a size greater # than maxNumReplicas. - CUSTOM_METRIC_DATA_POINTS_TOO_SPARSE (WARNING): The # custom metric samples are not exported often enough to be a credible base for # autoscaling. - CUSTOM_METRIC_INVALID (ERROR): The custom metric that was # specified does not exist or does not have the necessary labels. - # MIN_EQUALS_MAX (WARNING): The minNumReplicas is equal to maxNumReplicas. This # means the autoscaler cannot add or remove instances from the instance group. - # MISSING_CUSTOM_METRIC_DATA_POINTS (WARNING): The autoscaler did not receive # any data from the custom metric configured for autoscaling. - # MISSING_LOAD_BALANCING_DATA_POINTS (WARNING): The autoscaler is configured to # scale based on a load balancing signal but the instance group has not received # any requests from the load balancer. - MODE_OFF (WARNING): Autoscaling is # turned off. The number of instances in the group won't change automatically. # The autoscaling configuration is preserved. - MODE_ONLY_UP (WARNING): # Autoscaling is in the "Autoscale only out" mode. The autoscaler can add # instances but not remove any. - MORE_THAN_ONE_BACKEND_SERVICE (ERROR): The # instance group cannot be autoscaled because it has more than one backend # service attached to it. - NOT_ENOUGH_QUOTA_AVAILABLE (ERROR): There is # insufficient quota for the necessary resources, such as CPU or number of # instances. - REGION_RESOURCE_STOCKOUT (ERROR): Shown only for regional # autoscalers: there is a resource stockout in the chosen region. - # SCALING_TARGET_DOES_NOT_EXIST (ERROR): The target to be scaled does not exist. # - UNSUPPORTED_MAX_RATE_LOAD_BALANCING_CONFIGURATION (ERROR): Autoscaling does # not work with an HTTP/S load balancer that has been configured for maxRate. - # ZONE_RESOURCE_STOCKOUT (ERROR): For zonal autoscalers: there is a resource # stockout in the chosen zone. For regional autoscalers: in at least one of the # zones you're using there is a resource stockout. New values might be added in # the future. Some of the values might not be available in all API versions. # 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) @message = args[:message] if args.key?(:message) @type = args[:type] if args.key?(:type) end end # class AutoscalersScopedList include Google::Apis::Core::Hashable # [Output Only] A list of autoscalers contained in this scope. # Corresponds to the JSON property `autoscalers` # @return [Array] attr_accessor :autoscalers # [Output Only] Informational warning which replaces the list of autoscalers # when the list is empty. # Corresponds to the JSON property `warning` # @return [Google::Apis::ComputeAlpha::AutoscalersScopedList::Warning] attr_accessor :warning def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @autoscalers = args[:autoscalers] if args.key?(:autoscalers) @warning = args[:warning] if args.key?(:warning) end # [Output Only] Informational warning which replaces the list of autoscalers # when the list is empty. class Warning include Google::Apis::Core::Hashable # [Output Only] A warning code, if applicable. For example, Compute Engine # returns NO_RESULTS_ON_PAGE if there are no results in the response. # Corresponds to the JSON property `code` # @return [String] attr_accessor :code # [Output Only] Metadata about this warning in key: value format. For example: " # data": [ ` "key": "scope", "value": "zones/us-east1-d" ` # Corresponds to the JSON property `data` # @return [Array] attr_accessor :data # [Output Only] A human-readable description of the warning code. # Corresponds to the JSON property `message` # @return [String] attr_accessor :message def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @code = args[:code] if args.key?(:code) @data = args[:data] if args.key?(:data) @message = args[:message] if args.key?(:message) end # class Datum include Google::Apis::Core::Hashable # [Output Only] A key that provides more detail on the warning being returned. # For example, for warnings where there are no results in a list request for a # particular zone, this key might be scope and the key value might be the zone # name. Other examples might be a key indicating a deprecated resource and a # suggested replacement, or a warning about invalid network settings (for # example, if an instance attempts to perform IP forwarding but is not enabled # for IP forwarding). # Corresponds to the JSON property `key` # @return [String] attr_accessor :key # [Output Only] A warning data value corresponding to the key. # 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 end end # Cloud Autoscaler policy. class AutoscalingPolicy include Google::Apis::Core::Hashable # The number of seconds that the autoscaler waits before it starts collecting # information from a new instance. This prevents the autoscaler from collecting # information when the instance is initializing, during which the collected # usage would not be reliable. The default time autoscaler waits is 60 seconds. # Virtual machine initialization times might vary because of numerous factors. # We recommend that you test how long an instance may take to initialize. To do # this, create an instance and time the startup process. # Corresponds to the JSON property `coolDownPeriodSec` # @return [Fixnum] attr_accessor :cool_down_period_sec # CPU utilization policy. # Corresponds to the JSON property `cpuUtilization` # @return [Google::Apis::ComputeAlpha::AutoscalingPolicyCpuUtilization] attr_accessor :cpu_utilization # Configuration parameters of autoscaling based on a custom metric. # Corresponds to the JSON property `customMetricUtilizations` # @return [Array] attr_accessor :custom_metric_utilizations # Configuration parameters of autoscaling based on load balancing. # Corresponds to the JSON property `loadBalancingUtilization` # @return [Google::Apis::ComputeAlpha::AutoscalingPolicyLoadBalancingUtilization] attr_accessor :load_balancing_utilization # The maximum number of instances that the autoscaler can scale out to. This is # required when creating or updating an autoscaler. The maximum number of # replicas must not be lower than minimal number of replicas. # Corresponds to the JSON property `maxNumReplicas` # @return [Fixnum] attr_accessor :max_num_replicas # The minimum number of replicas that the autoscaler can scale in to. This # cannot be less than 0. If not provided, autoscaler chooses a default value # depending on maximum number of instances allowed. # Corresponds to the JSON property `minNumReplicas` # @return [Fixnum] attr_accessor :min_num_replicas # Defines operating mode for this policy. # Corresponds to the JSON property `mode` # @return [String] attr_accessor :mode # Configuration that allows for slower scale in so that even if Autoscaler # recommends an abrupt scale in of a MIG, it will be throttled as specified by # the parameters below. # Corresponds to the JSON property `scaleDownControl` # @return [Google::Apis::ComputeAlpha::AutoscalingPolicyScaleDownControl] attr_accessor :scale_down_control # Configuration that allows for slower scale in so that even if Autoscaler # recommends an abrupt scale in of a MIG, it will be throttled as specified by # the parameters below. # Corresponds to the JSON property `scaleInControl` # @return [Google::Apis::ComputeAlpha::AutoscalingPolicyScaleInControl] attr_accessor :scale_in_control # Scaling schedules defined for an autoscaler. Multiple schedules can be set on # an autoscaler, and they can overlap. During overlapping periods the greatest # min_required_replicas of all scaling schedules is applied. Up to 128 scaling # schedules are allowed. # Corresponds to the JSON property `scalingSchedules` # @return [Hash] attr_accessor :scaling_schedules 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) @cpu_utilization = args[:cpu_utilization] if args.key?(:cpu_utilization) @custom_metric_utilizations = args[:custom_metric_utilizations] if args.key?(:custom_metric_utilizations) @load_balancing_utilization = args[:load_balancing_utilization] if args.key?(:load_balancing_utilization) @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) @mode = args[:mode] if args.key?(:mode) @scale_down_control = args[:scale_down_control] if args.key?(:scale_down_control) @scale_in_control = args[:scale_in_control] if args.key?(:scale_in_control) @scaling_schedules = args[:scaling_schedules] if args.key?(:scaling_schedules) end end # CPU utilization policy. class AutoscalingPolicyCpuUtilization include Google::Apis::Core::Hashable # Indicates whether predictive autoscaling based on CPU metric is enabled. Valid # values are: * NONE (default). No predictive method is used. The autoscaler # scales the group to meet current demand based on real-time metrics. * # OPTIMIZE_AVAILABILITY. Predictive autoscaling improves availability by # monitoring daily and weekly load patterns and scaling out ahead of anticipated # demand. # Corresponds to the JSON property `predictiveMethod` # @return [String] attr_accessor :predictive_method # The target CPU utilization that the autoscaler maintains. Must be a float # value in the range (0, 1]. If not specified, the default is 0.6. If the CPU # level is below the target utilization, the autoscaler scales in the number of # instances until it reaches the minimum number of instances you specified or # until the average CPU of your instances reaches the target utilization. If the # average CPU is above the target utilization, the autoscaler scales out until # it reaches the maximum number of instances you specified or until the average # utilization reaches the target utilization. # Corresponds to the JSON property `utilizationTarget` # @return [Float] attr_accessor :utilization_target def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @predictive_method = args[:predictive_method] if args.key?(:predictive_method) @utilization_target = args[:utilization_target] if args.key?(:utilization_target) end end # Custom utilization metric policy. class AutoscalingPolicyCustomMetricUtilization include Google::Apis::Core::Hashable # A filter string, compatible with a Stackdriver Monitoring filter string for # TimeSeries.list API call. This filter is used to select a specific TimeSeries # for the purpose of autoscaling and to determine whether the metric is # exporting per-instance or per-group data. For the filter to be valid for # autoscaling purposes, the following rules apply: - You can only use the AND # operator for joining selectors. - You can only use direct equality comparison # operator (=) without any functions for each selector. - You can specify the # metric in both the filter string and in the metric field. However, if # specified in both places, the metric must be identical. - The monitored # resource type determines what kind of values are expected for the metric. If # it is a gce_instance, the autoscaler expects the metric to include a separate # TimeSeries for each instance in a group. In such a case, you cannot filter on # resource labels. If the resource type is any other value, the autoscaler # expects this metric to contain values that apply to the entire autoscaled # instance group and resource label filtering can be performed to point # autoscaler at the correct TimeSeries to scale upon. This is called a *per- # group metric* for the purpose of autoscaling. If not specified, the type # defaults to gce_instance. Try to provide a filter that is selective enough to # pick just one TimeSeries for the autoscaled group or for each of the instances # (if you are using gce_instance resource type). If multiple TimeSeries are # returned upon the query execution, the autoscaler will sum their respective # values to obtain its scaling value. # Corresponds to the JSON property `filter` # @return [String] attr_accessor :filter # The identifier (type) of the Stackdriver Monitoring metric. The metric cannot # have negative values. The metric must have a value type of INT64 or DOUBLE. # Corresponds to the JSON property `metric` # @return [String] attr_accessor :metric # If scaling is based on a per-group metric value that represents the total # amount of work to be done or resource usage, set this value to an amount # assigned for a single instance of the scaled group. Autoscaler keeps the # number of instances proportional to the value of this metric. The metric # itself does not change value due to group resizing. A good metric to use with # the target is for example pubsub.googleapis.com/subscription/ # num_undelivered_messages or a custom metric exporting the total number of # requests coming to your instances. A bad example would be a metric exporting # an average or median latency, since this value can't include a chunk # assignable to a single instance, it could be better used with # utilization_target instead. # Corresponds to the JSON property `singleInstanceAssignment` # @return [Float] attr_accessor :single_instance_assignment # The target value of the metric that autoscaler maintains. This must be a # positive value. A utilization metric scales number of virtual machines # handling requests to increase or decrease proportionally to the metric. For # example, a good metric to use as a utilization_target is https://www. # googleapis.com/compute/v1/instance/network/received_bytes_count. The # autoscaler works to keep this value constant for each of the instances. # Corresponds to the JSON property `utilizationTarget` # @return [Float] attr_accessor :utilization_target # Defines how target utilization value is expressed for a Stackdriver Monitoring # metric. Either GAUGE, DELTA_PER_SECOND, or DELTA_PER_MINUTE. # Corresponds to the JSON property `utilizationTargetType` # @return [String] attr_accessor :utilization_target_type def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @filter = args[:filter] if args.key?(:filter) @metric = args[:metric] if args.key?(:metric) @single_instance_assignment = args[:single_instance_assignment] if args.key?(:single_instance_assignment) @utilization_target = args[:utilization_target] if args.key?(:utilization_target) @utilization_target_type = args[:utilization_target_type] if args.key?(:utilization_target_type) end end # Configuration parameters of autoscaling based on load balancing. class AutoscalingPolicyLoadBalancingUtilization include Google::Apis::Core::Hashable # Fraction of backend capacity utilization (set in HTTP(S) load balancing # configuration) that the autoscaler maintains. Must be a positive float value. # If not defined, the default is 0.8. # Corresponds to the JSON property `utilizationTarget` # @return [Float] attr_accessor :utilization_target def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @utilization_target = args[:utilization_target] if args.key?(:utilization_target) end end # Configuration that allows for slower scale in so that even if Autoscaler # recommends an abrupt scale in of a MIG, it will be throttled as specified by # the parameters below. class AutoscalingPolicyScaleDownControl include Google::Apis::Core::Hashable # Encapsulates numeric value that can be either absolute or relative. # Corresponds to the JSON property `maxScaledDownReplicas` # @return [Google::Apis::ComputeAlpha::FixedOrPercent] attr_accessor :max_scaled_down_replicas # How far back autoscaling looks when computing recommendations to include # directives regarding slower scale in, as described above. # Corresponds to the JSON property `timeWindowSec` # @return [Fixnum] attr_accessor :time_window_sec def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @max_scaled_down_replicas = args[:max_scaled_down_replicas] if args.key?(:max_scaled_down_replicas) @time_window_sec = args[:time_window_sec] if args.key?(:time_window_sec) end end # Configuration that allows for slower scale in so that even if Autoscaler # recommends an abrupt scale in of a MIG, it will be throttled as specified by # the parameters below. class AutoscalingPolicyScaleInControl include Google::Apis::Core::Hashable # Encapsulates numeric value that can be either absolute or relative. # Corresponds to the JSON property `maxScaledInReplicas` # @return [Google::Apis::ComputeAlpha::FixedOrPercent] attr_accessor :max_scaled_in_replicas # How far back autoscaling looks when computing recommendations to include # directives regarding slower scale in, as described above. # Corresponds to the JSON property `timeWindowSec` # @return [Fixnum] attr_accessor :time_window_sec def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @max_scaled_in_replicas = args[:max_scaled_in_replicas] if args.key?(:max_scaled_in_replicas) @time_window_sec = args[:time_window_sec] if args.key?(:time_window_sec) end end # Scaling based on user-defined schedule. The message describes a single scaling # schedule. A scaling schedule changes the minimum number of VM instances an # autoscaler can recommend, which can trigger scaling out. class AutoscalingPolicyScalingSchedule include Google::Apis::Core::Hashable # A description of a scaling schedule. # Corresponds to the JSON property `description` # @return [String] attr_accessor :description # A boolean value that specifies whether a scaling schedule can influence # autoscaler recommendations. If set to true, then a scaling schedule has no # effect. This field is optional, and its value is false by default. # Corresponds to the JSON property `disabled` # @return [Boolean] attr_accessor :disabled alias_method :disabled?, :disabled # The duration of time intervals, in seconds, for which this scaling schedule is # to run. The minimum allowed value is 300. This field is required. # Corresponds to the JSON property `durationSec` # @return [Fixnum] attr_accessor :duration_sec # The minimum number of VM instances that the autoscaler will recommend in time # intervals starting according to schedule. This field is required. # Corresponds to the JSON property `minRequiredReplicas` # @return [Fixnum] attr_accessor :min_required_replicas # The start timestamps of time intervals when this scaling schedule is to # provide a scaling signal. This field uses the extended cron format (with an # optional year field). The expression can describe a single timestamp if the # optional year is set, in which case the scaling schedule runs once. The # schedule is interpreted with respect to time_zone. This field is required. # Note: These timestamps only describe when autoscaler starts providing the # scaling signal. The VMs need additional time to become serving. # Corresponds to the JSON property `schedule` # @return [String] attr_accessor :schedule # The time zone to use when interpreting the schedule. The value of this field # must be a time zone name from the tz database: http://en.wikipedia.org/wiki/ # Tz_database. This field is assigned a default value of “UTC” if left empty. # Corresponds to the JSON property `timeZone` # @return [String] attr_accessor :time_zone def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @description = args[:description] if args.key?(:description) @disabled = args[:disabled] if args.key?(:disabled) @duration_sec = args[:duration_sec] if args.key?(:duration_sec) @min_required_replicas = args[:min_required_replicas] if args.key?(:min_required_replicas) @schedule = args[:schedule] if args.key?(:schedule) @time_zone = args[:time_zone] if args.key?(:time_zone) end end # Message containing information of one individual backend. class Backend include Google::Apis::Core::Hashable # Specifies how to determine whether the backend of a load balancer can handle # additional traffic or is fully loaded. For usage guidelines, see Connection # balancing mode. Backends must use compatible balancing modes. For more # information, see Supported balancing modes and target capacity settings and # Restrictions and guidance for instance groups. Note: Currently, if you use the # API to configure incompatible balancing modes, the configuration might be # accepted even though it has no impact and is ignored. Specifically, Backend. # maxUtilization is ignored when Backend.balancingMode is RATE. In the future, # this incompatible combination will be rejected. # Corresponds to the JSON property `balancingMode` # @return [String] attr_accessor :balancing_mode # A multiplier applied to the backend's target capacity of its balancing mode. # The default value is 1, which means the group serves up to 100% of its # configured capacity (depending on balancingMode). A setting of 0 means the # group is completely drained, offering 0% of its available capacity. The valid # ranges are 0.0 and [0.1,1.0]. You cannot configure a setting larger than 0 and # smaller than 0.1. You cannot configure a setting of 0 when there is only one # backend attached to the backend service. # Corresponds to the JSON property `capacityScaler` # @return [Float] attr_accessor :capacity_scaler # An optional description of this resource. Provide this property when you # create the resource. # Corresponds to the JSON property `description` # @return [String] attr_accessor :description # This field designates whether this is a failover backend. More than one # failover backend can be configured for a given BackendService. # Corresponds to the JSON property `failover` # @return [Boolean] attr_accessor :failover alias_method :failover?, :failover # The fully-qualified URL of an instance group or network endpoint group (NEG) # resource. To determine what types of backends a load balancer supports, see # the [Backend services overview](https://cloud.google.com/load-balancing/docs/ # backend-service#backends). You must use the *fully-qualified* URL (starting # with https://www.googleapis.com/) to specify the instance group or NEG. # Partial URLs are not supported. # Corresponds to the JSON property `group` # @return [String] attr_accessor :group # Defines a target maximum number of simultaneous connections. For usage # guidelines, see Connection balancing mode and Utilization balancing mode. Not # available if the backend's balancingMode is RATE. # Corresponds to the JSON property `maxConnections` # @return [Fixnum] attr_accessor :max_connections # Defines a target maximum number of simultaneous connections. For usage # guidelines, see Connection balancing mode and Utilization balancing mode. Not # available if the backend's balancingMode is RATE. # Corresponds to the JSON property `maxConnectionsPerEndpoint` # @return [Fixnum] attr_accessor :max_connections_per_endpoint # Defines a target maximum number of simultaneous connections. For usage # guidelines, see Connection balancing mode and Utilization balancing mode. Not # available if the backend's balancingMode is RATE. # Corresponds to the JSON property `maxConnectionsPerInstance` # @return [Fixnum] attr_accessor :max_connections_per_instance # Defines a maximum number of HTTP requests per second (RPS). For usage # guidelines, see Rate balancing mode and Utilization balancing mode. Not # available if the backend's balancingMode is CONNECTION. # Corresponds to the JSON property `maxRate` # @return [Fixnum] attr_accessor :max_rate # Defines a maximum target for requests per second (RPS). For usage guidelines, # see Rate balancing mode and Utilization balancing mode. Not available if the # backend's balancingMode is CONNECTION. # Corresponds to the JSON property `maxRatePerEndpoint` # @return [Float] attr_accessor :max_rate_per_endpoint # Defines a maximum target for requests per second (RPS). For usage guidelines, # see Rate balancing mode and Utilization balancing mode. Not available if the # backend's balancingMode is CONNECTION. # Corresponds to the JSON property `maxRatePerInstance` # @return [Float] attr_accessor :max_rate_per_instance # Optional parameter to define a target capacity for the UTILIZATIONbalancing # mode. The valid range is [0.0, 1.0]. For usage guidelines, see Utilization # balancing mode. # Corresponds to the JSON property `maxUtilization` # @return [Float] attr_accessor :max_utilization def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @balancing_mode = args[:balancing_mode] if args.key?(:balancing_mode) @capacity_scaler = args[:capacity_scaler] if args.key?(:capacity_scaler) @description = args[:description] if args.key?(:description) @failover = args[:failover] if args.key?(:failover) @group = args[:group] if args.key?(:group) @max_connections = args[:max_connections] if args.key?(:max_connections) @max_connections_per_endpoint = args[:max_connections_per_endpoint] if args.key?(:max_connections_per_endpoint) @max_connections_per_instance = args[:max_connections_per_instance] if args.key?(:max_connections_per_instance) @max_rate = args[:max_rate] if args.key?(:max_rate) @max_rate_per_endpoint = args[:max_rate_per_endpoint] if args.key?(:max_rate_per_endpoint) @max_rate_per_instance = args[:max_rate_per_instance] if args.key?(:max_rate_per_instance) @max_utilization = args[:max_utilization] if args.key?(:max_utilization) end end # Represents a Cloud Storage Bucket resource. This Cloud Storage bucket resource # is referenced by a URL map of a load balancer. For more information, read # Backend Buckets. class BackendBucket include Google::Apis::Core::Hashable # Cloud Storage bucket name. # Corresponds to the JSON property `bucketName` # @return [String] attr_accessor :bucket_name # Message containing Cloud CDN configuration for a backend bucket. # Corresponds to the JSON property `cdnPolicy` # @return [Google::Apis::ComputeAlpha::BackendBucketCdnPolicy] attr_accessor :cdn_policy # Compress text responses using Brotli or gzip compression, based on the client' # s Accept-Encoding header. # Corresponds to the JSON property `compressionMode` # @return [String] attr_accessor :compression_mode # [Output Only] Creation timestamp in RFC3339 text format. # Corresponds to the JSON property `creationTimestamp` # @return [String] attr_accessor :creation_timestamp # Headers that the HTTP/S load balancer should add to proxied responses. # Corresponds to the JSON property `customResponseHeaders` # @return [Array] attr_accessor :custom_response_headers # An optional textual description of the resource; provided by the client when # the resource is created. # Corresponds to the JSON property `description` # @return [String] attr_accessor :description # [Output Only] The resource URL for the edge security policy associated with # this backend bucket. # Corresponds to the JSON property `edgeSecurityPolicy` # @return [String] attr_accessor :edge_security_policy # If true, enable Cloud CDN for this BackendBucket. # Corresponds to the JSON property `enableCdn` # @return [Boolean] attr_accessor :enable_cdn alias_method :enable_cdn?, :enable_cdn # [Output Only] Unique identifier for the resource; defined by the server. # Corresponds to the JSON property `id` # @return [Fixnum] attr_accessor :id # Type of the resource. # Corresponds to the JSON property `kind` # @return [String] attr_accessor :kind # Name of the resource. Provided by the client when the resource is created. The # name must be 1-63 characters long, and comply with RFC1035. Specifically, the # name must be 1-63 characters long and match the regular expression `[a-z]([-a- # z0-9]*[a-z0-9])?` which means the first character must be a lowercase letter, # and all following characters must be a dash, lowercase letter, or digit, # except the last character, which cannot be a dash. # Corresponds to the JSON property `name` # @return [String] attr_accessor :name # [Output Only] Server-defined URL for the resource. # Corresponds to the JSON property `selfLink` # @return [String] attr_accessor :self_link # [Output Only] Server-defined URL for this resource with the resource id. # Corresponds to the JSON property `selfLinkWithId` # @return [String] attr_accessor :self_link_with_id def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @bucket_name = args[:bucket_name] if args.key?(:bucket_name) @cdn_policy = args[:cdn_policy] if args.key?(:cdn_policy) @compression_mode = args[:compression_mode] if args.key?(:compression_mode) @creation_timestamp = args[:creation_timestamp] if args.key?(:creation_timestamp) @custom_response_headers = args[:custom_response_headers] if args.key?(:custom_response_headers) @description = args[:description] if args.key?(:description) @edge_security_policy = args[:edge_security_policy] if args.key?(:edge_security_policy) @enable_cdn = args[:enable_cdn] if args.key?(:enable_cdn) @id = args[:id] if args.key?(:id) @kind = args[:kind] if args.key?(:kind) @name = args[:name] if args.key?(:name) @self_link = args[:self_link] if args.key?(:self_link) @self_link_with_id = args[:self_link_with_id] if args.key?(:self_link_with_id) end end # Message containing Cloud CDN configuration for a backend bucket. class BackendBucketCdnPolicy include Google::Apis::Core::Hashable # Bypass the cache when the specified request headers are matched - e.g. Pragma # or Authorization headers. Up to 5 headers can be specified. The cache is # bypassed for all cdnPolicy.cacheMode settings. # Corresponds to the JSON property `bypassCacheOnRequestHeaders` # @return [Array] attr_accessor :bypass_cache_on_request_headers # Message containing what to include in the cache key for a request for Cloud # CDN. # Corresponds to the JSON property `cacheKeyPolicy` # @return [Google::Apis::ComputeAlpha::BackendBucketCdnPolicyCacheKeyPolicy] attr_accessor :cache_key_policy # Specifies the cache setting for all responses from this backend. The possible # values are: USE_ORIGIN_HEADERS Requires the origin to set valid caching # headers to cache content. Responses without these headers will not be cached # at Google's edge, and will require a full trip to the origin on every request, # potentially impacting performance and increasing load on the origin server. # FORCE_CACHE_ALL Cache all content, ignoring any "private", "no-store" or "no- # cache" directives in Cache-Control response headers. Warning: this may result # in Cloud CDN caching private, per-user (user identifiable) content. # CACHE_ALL_STATIC Automatically cache static content, including common image # formats, media (video and audio), and web assets (JavaScript and CSS). # Requests and responses that are marked as uncacheable, as well as dynamic # content (including HTML), will not be cached. # Corresponds to the JSON property `cacheMode` # @return [String] attr_accessor :cache_mode # Specifies a separate client (e.g. browser client) maximum TTL. This is used to # clamp the max-age (or Expires) value sent to the client. With FORCE_CACHE_ALL, # the lesser of client_ttl and default_ttl is used for the response max-age # directive, along with a "public" directive. For cacheable content in # CACHE_ALL_STATIC mode, client_ttl clamps the max-age from the origin (if # specified), or else sets the response max-age directive to the lesser of the # client_ttl and default_ttl, and also ensures a "public" cache-control # directive is present. If a client TTL is not specified, a default value (1 # hour) will be used. The maximum allowed value is 31,622,400s (1 year). # Corresponds to the JSON property `clientTtl` # @return [Fixnum] attr_accessor :client_ttl # Specifies the default TTL for cached content served by this origin for # responses that do not have an existing valid TTL (max-age or s-max-age). # Setting a TTL of "0" means "always revalidate". The value of defaultTTL cannot # be set to a value greater than that of maxTTL, but can be equal. When the # cacheMode is set to FORCE_CACHE_ALL, the defaultTTL will overwrite the TTL set # in all responses. The maximum allowed value is 31,622,400s (1 year), noting # that infrequently accessed objects may be evicted from the cache before the # defined TTL. # Corresponds to the JSON property `defaultTtl` # @return [Fixnum] attr_accessor :default_ttl # Specifies the maximum allowed TTL for cached content served by this origin. # Cache directives that attempt to set a max-age or s-maxage higher than this, # or an Expires header more than maxTTL seconds in the future will be capped at # the value of maxTTL, as if it were the value of an s-maxage Cache-Control # directive. Headers sent to the client will not be modified. Setting a TTL of " # 0" means "always revalidate". The maximum allowed value is 31,622,400s (1 year) # , noting that infrequently accessed objects may be evicted from the cache # before the defined TTL. # Corresponds to the JSON property `maxTtl` # @return [Fixnum] attr_accessor :max_ttl # Negative caching allows per-status code TTLs to be set, in order to apply fine- # grained caching for common errors or redirects. This can reduce the load on # your origin and improve end-user experience by reducing response latency. When # the cache mode is set to CACHE_ALL_STATIC or USE_ORIGIN_HEADERS, negative # caching applies to responses with the specified response code that lack any # Cache-Control, Expires, or Pragma: no-cache directives. When the cache mode is # set to FORCE_CACHE_ALL, negative caching applies to all responses with the # specified response code, and override any caching headers. By default, Cloud # CDN will apply the following default TTLs to these status codes: HTTP 300 ( # Multiple Choice), 301, 308 (Permanent Redirects): 10m HTTP 404 (Not Found), # 410 (Gone), 451 (Unavailable For Legal Reasons): 120s HTTP 405 (Method Not # Found), 421 (Misdirected Request), 501 (Not Implemented): 60s. These defaults # can be overridden in negative_caching_policy. # Corresponds to the JSON property `negativeCaching` # @return [Boolean] attr_accessor :negative_caching alias_method :negative_caching?, :negative_caching # Sets a cache TTL for the specified HTTP status code. negative_caching must be # enabled to configure negative_caching_policy. Omitting the policy and leaving # negative_caching enabled will use Cloud CDN's default cache TTLs. Note that # when specifying an explicit negative_caching_policy, you should take care to # specify a cache TTL for all response codes that you wish to cache. Cloud CDN # will not apply any default negative caching when a policy exists. # Corresponds to the JSON property `negativeCachingPolicy` # @return [Array] attr_accessor :negative_caching_policy # If true then Cloud CDN will combine multiple concurrent cache fill requests # into a small number of requests to the origin. # Corresponds to the JSON property `requestCoalescing` # @return [Boolean] attr_accessor :request_coalescing alias_method :request_coalescing?, :request_coalescing # Serve existing content from the cache (if available) when revalidating content # with the origin, or when an error is encountered when refreshing the cache. # This setting defines the default "max-stale" duration for any cached responses # that do not specify a max-stale directive. Stale responses that exceed the TTL # configured here will not be served. The default limit (max-stale) is 86400s (1 # day), which will allow stale content to be served up to this limit beyond the # max-age (or s-max-age) of a cached response. The maximum allowed value is # 604800 (1 week). Set this to zero (0) to disable serve-while-stale. # Corresponds to the JSON property `serveWhileStale` # @return [Fixnum] attr_accessor :serve_while_stale # Maximum number of seconds the response to a signed URL request will be # considered fresh. After this time period, the response will be revalidated # before being served. Defaults to 1hr (3600s). When serving responses to signed # URL requests, Cloud CDN will internally behave as though all responses from # this backend had a "Cache-Control: public, max-age=[TTL]" header, regardless # of any existing Cache-Control header. The actual headers served in responses # will not be altered. # Corresponds to the JSON property `signedUrlCacheMaxAgeSec` # @return [Fixnum] attr_accessor :signed_url_cache_max_age_sec # [Output Only] Names of the keys for signing request URLs. # Corresponds to the JSON property `signedUrlKeyNames` # @return [Array] attr_accessor :signed_url_key_names def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @bypass_cache_on_request_headers = args[:bypass_cache_on_request_headers] if args.key?(:bypass_cache_on_request_headers) @cache_key_policy = args[:cache_key_policy] if args.key?(:cache_key_policy) @cache_mode = args[:cache_mode] if args.key?(:cache_mode) @client_ttl = args[:client_ttl] if args.key?(:client_ttl) @default_ttl = args[:default_ttl] if args.key?(:default_ttl) @max_ttl = args[:max_ttl] if args.key?(:max_ttl) @negative_caching = args[:negative_caching] if args.key?(:negative_caching) @negative_caching_policy = args[:negative_caching_policy] if args.key?(:negative_caching_policy) @request_coalescing = args[:request_coalescing] if args.key?(:request_coalescing) @serve_while_stale = args[:serve_while_stale] if args.key?(:serve_while_stale) @signed_url_cache_max_age_sec = args[:signed_url_cache_max_age_sec] if args.key?(:signed_url_cache_max_age_sec) @signed_url_key_names = args[:signed_url_key_names] if args.key?(:signed_url_key_names) end end # Bypass the cache when the specified request headers are present, e.g. Pragma # or Authorization headers. Values are case insensitive. The presence of such a # header overrides the cache_mode setting. class BackendBucketCdnPolicyBypassCacheOnRequestHeader include Google::Apis::Core::Hashable # The header field name to match on when bypassing cache. Values are case- # insensitive. # Corresponds to the JSON property `headerName` # @return [String] attr_accessor :header_name def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @header_name = args[:header_name] if args.key?(:header_name) end end # Message containing what to include in the cache key for a request for Cloud # CDN. class BackendBucketCdnPolicyCacheKeyPolicy include Google::Apis::Core::Hashable # Allows HTTP request headers (by name) to be used in the cache key. # Corresponds to the JSON property `includeHttpHeaders` # @return [Array] attr_accessor :include_http_headers # Names of query string parameters to include in cache keys. All other # parameters will be excluded. '&' and '=' will be percent encoded and not # treated as delimiters. # Corresponds to the JSON property `queryStringWhitelist` # @return [Array] attr_accessor :query_string_whitelist def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @include_http_headers = args[:include_http_headers] if args.key?(:include_http_headers) @query_string_whitelist = args[:query_string_whitelist] if args.key?(:query_string_whitelist) end end # Specify CDN TTLs for response error codes. class BackendBucketCdnPolicyNegativeCachingPolicy include Google::Apis::Core::Hashable # The HTTP status code to define a TTL against. Only HTTP status codes 300, 301, # 302, 307, 308, 404, 405, 410, 421, 451 and 501 are can be specified as values, # and you cannot specify a status code more than once. # Corresponds to the JSON property `code` # @return [Fixnum] attr_accessor :code # The TTL (in seconds) for which to cache responses with the corresponding # status code. The maximum allowed value is 1800s (30 minutes), noting that # infrequently accessed objects may be evicted from the cache before the defined # TTL. # Corresponds to the JSON property `ttl` # @return [Fixnum] attr_accessor :ttl def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @code = args[:code] if args.key?(:code) @ttl = args[:ttl] if args.key?(:ttl) end end # Contains a list of BackendBucket resources. class BackendBucketList include Google::Apis::Core::Hashable # [Output Only] Unique identifier for the resource; defined by the server. # Corresponds to the JSON property `id` # @return [String] attr_accessor :id # A list of BackendBucket resources. # Corresponds to the JSON property `items` # @return [Array] attr_accessor :items # Type of resource. # Corresponds to the JSON property `kind` # @return [String] attr_accessor :kind # [Output Only] This token allows you to get the next page of results for list # requests. If the number of results is larger than maxResults, use the # nextPageToken as a value for the query parameter pageToken in the next list # request. Subsequent list requests will have their own nextPageToken to # continue paging through the results. # Corresponds to the JSON property `nextPageToken` # @return [String] attr_accessor :next_page_token # [Output Only] Server-defined URL for this resource. # Corresponds to the JSON property `selfLink` # @return [String] attr_accessor :self_link # [Output Only] Informational warning message. # Corresponds to the JSON property `warning` # @return [Google::Apis::ComputeAlpha::BackendBucketList::Warning] attr_accessor :warning def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @id = args[:id] if args.key?(:id) @items = args[:items] if args.key?(:items) @kind = args[:kind] if args.key?(:kind) @next_page_token = args[:next_page_token] if args.key?(:next_page_token) @self_link = args[:self_link] if args.key?(:self_link) @warning = args[:warning] if args.key?(:warning) end # [Output Only] Informational warning message. class Warning include Google::Apis::Core::Hashable # [Output Only] A warning code, if applicable. For example, Compute Engine # returns NO_RESULTS_ON_PAGE if there are no results in the response. # Corresponds to the JSON property `code` # @return [String] attr_accessor :code # [Output Only] Metadata about this warning in key: value format. For example: " # data": [ ` "key": "scope", "value": "zones/us-east1-d" ` # Corresponds to the JSON property `data` # @return [Array] attr_accessor :data # [Output Only] A human-readable description of the warning code. # Corresponds to the JSON property `message` # @return [String] attr_accessor :message def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @code = args[:code] if args.key?(:code) @data = args[:data] if args.key?(:data) @message = args[:message] if args.key?(:message) end # class Datum include Google::Apis::Core::Hashable # [Output Only] A key that provides more detail on the warning being returned. # For example, for warnings where there are no results in a list request for a # particular zone, this key might be scope and the key value might be the zone # name. Other examples might be a key indicating a deprecated resource and a # suggested replacement, or a warning about invalid network settings (for # example, if an instance attempts to perform IP forwarding but is not enabled # for IP forwarding). # Corresponds to the JSON property `key` # @return [String] attr_accessor :key # [Output Only] A warning data value corresponding to the key. # 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 end end # Represents a Backend Service resource. A backend service defines how Google # Cloud load balancers distribute traffic. The backend service configuration # contains a set of values, such as the protocol used to connect to backends, # various distribution and session settings, health checks, and timeouts. These # settings provide fine-grained control over how your load balancer behaves. # Most of the settings have default values that allow for easy configuration if # you need to get started quickly. Backend services in Google Compute Engine can # be either regionally or globally scoped. * [Global](https://cloud.google.com/ # compute/docs/reference/rest/alpha/backendServices) * [Regional](https://cloud. # google.com/compute/docs/reference/rest/alpha/regionBackendServices) For more # information, see Backend Services. class BackendService include Google::Apis::Core::Hashable # Lifetime of cookies in seconds. This setting is applicable to external and # internal HTTP(S) load balancers and Traffic Director and requires # GENERATED_COOKIE or HTTP_COOKIE session affinity. If set to 0, the cookie is # non-persistent and lasts only until the end of the browser session (or # equivalent). The maximum allowed value is one day (86,400). Not supported when # the backend service is referenced by a URL map that is bound to target gRPC # proxy that has validateForProxyless field set to true. # Corresponds to the JSON property `affinityCookieTtlSec` # @return [Fixnum] attr_accessor :affinity_cookie_ttl_sec # The list of backends that serve this BackendService. # Corresponds to the JSON property `backends` # @return [Array] attr_accessor :backends # Message containing Cloud CDN configuration for a backend service. # Corresponds to the JSON property `cdnPolicy` # @return [Google::Apis::ComputeAlpha::BackendServiceCdnPolicy] attr_accessor :cdn_policy # Settings controlling the volume of requests, connections and retries to this # backend service. # Corresponds to the JSON property `circuitBreakers` # @return [Google::Apis::ComputeAlpha::CircuitBreakers] attr_accessor :circuit_breakers # Compress text responses using Brotli or gzip compression, based on the client' # s Accept-Encoding header. # Corresponds to the JSON property `compressionMode` # @return [String] attr_accessor :compression_mode # Message containing connection draining configuration. # Corresponds to the JSON property `connectionDraining` # @return [Google::Apis::ComputeAlpha::ConnectionDraining] attr_accessor :connection_draining # Connection Tracking configuration for this BackendService. # Corresponds to the JSON property `connectionTrackingPolicy` # @return [Google::Apis::ComputeAlpha::BackendServiceConnectionTrackingPolicy] attr_accessor :connection_tracking_policy # This message defines settings for a consistent hash style load balancer. # Corresponds to the JSON property `consistentHash` # @return [Google::Apis::ComputeAlpha::ConsistentHashLoadBalancerSettings] attr_accessor :consistent_hash # [Output Only] Creation timestamp in RFC3339 text format. # Corresponds to the JSON property `creationTimestamp` # @return [String] attr_accessor :creation_timestamp # Headers that the load balancer adds to proxied requests. See [Creating custom # headers](https://cloud.google.com/load-balancing/docs/custom-headers). # Corresponds to the JSON property `customRequestHeaders` # @return [Array] attr_accessor :custom_request_headers # Headers that the load balancer adds to proxied responses. See [Creating custom # headers](https://cloud.google.com/load-balancing/docs/custom-headers). # Corresponds to the JSON property `customResponseHeaders` # @return [Array] attr_accessor :custom_response_headers # An optional description of this resource. Provide this property when you # create the resource. # Corresponds to the JSON property `description` # @return [String] attr_accessor :description # [Output Only] The resource URL for the edge security policy associated with # this backend service. # Corresponds to the JSON property `edgeSecurityPolicy` # @return [String] attr_accessor :edge_security_policy # If true, enables Cloud CDN for the backend service of an external HTTP(S) load # balancer. # Corresponds to the JSON property `enableCDN` # @return [Boolean] attr_accessor :enable_cdn alias_method :enable_cdn?, :enable_cdn # For load balancers that have configurable failover: [Internal TCP/UDP Load # Balancing](https://cloud.google.com/load-balancing/docs/internal/failover- # overview) and [external TCP/UDP Load Balancing](https://cloud.google.com/load- # balancing/docs/network/networklb-failover-overview). On failover or failback, # this field indicates whether connection draining will be honored. Google Cloud # has a fixed connection draining timeout of 10 minutes. A setting of true # terminates existing TCP connections to the active pool during failover and # failback, immediately draining traffic. A setting of false allows existing TCP # connections to persist, even on VMs no longer in the active pool, for up to # the duration of the connection draining timeout (10 minutes). # Corresponds to the JSON property `failoverPolicy` # @return [Google::Apis::ComputeAlpha::BackendServiceFailoverPolicy] attr_accessor :failover_policy # Fingerprint of this resource. A hash of the contents stored in this object. # This field is used in optimistic locking. This field will be ignored when # inserting a BackendService. An up-to-date fingerprint must be provided in # order to update the BackendService, otherwise the request will fail with error # 412 conditionNotMet. To see the latest fingerprint, make a get() request to # retrieve a BackendService. # Corresponds to the JSON property `fingerprint` # NOTE: Values are automatically base64 encoded/decoded in the client library. # @return [String] attr_accessor :fingerprint # The list of URLs to the healthChecks, httpHealthChecks (legacy), or # httpsHealthChecks (legacy) resource for health checking this backend service. # Not all backend services support legacy health checks. See Load balancer guide. # Currently, at most one health check can be specified for each backend service. # Backend services with instance group or zonal NEG backends must have a health # check. Backend services with internet or serverless NEG backends must not have # a health check. # Corresponds to the JSON property `healthChecks` # @return [Array] attr_accessor :health_checks # Identity-Aware Proxy # Corresponds to the JSON property `iap` # @return [Google::Apis::ComputeAlpha::BackendServiceIap] attr_accessor :iap # [Output Only] The unique identifier for the resource. This identifier is # defined by the server. # Corresponds to the JSON property `id` # @return [Fixnum] attr_accessor :id # [Output Only] Type of resource. Always compute#backendService for backend # services. # Corresponds to the JSON property `kind` # @return [String] attr_accessor :kind # Specifies the load balancer type. A backend service created for one type of # load balancer cannot be used with another. For more information, refer to # Choosing a load balancer. # Corresponds to the JSON property `loadBalancingScheme` # @return [String] attr_accessor :load_balancing_scheme # A list of locality load balancing policies to be used in order of preference. # Either the policy or the customPolicy field should be set. Overrides any value # set in the localityLbPolicy field. localityLbPolicies is only supported when # the BackendService is referenced by a URL Map that is referenced by a target # gRPC proxy that has the validateForProxyless field set to true. # Corresponds to the JSON property `localityLbPolicies` # @return [Array] attr_accessor :locality_lb_policies # The load balancing algorithm used within the scope of the locality. The # possible values are: - ROUND_ROBIN: This is a simple policy in which each # healthy backend is selected in round robin order. This is the default. - # LEAST_REQUEST: An O(1) algorithm which selects two random healthy hosts and # picks the host which has fewer active requests. - RING_HASH: The ring/modulo # hash load balancer implements consistent hashing to backends. The algorithm # has the property that the addition/removal of a host from a set of N hosts # only affects 1/N of the requests. - RANDOM: The load balancer selects a random # healthy host. - ORIGINAL_DESTINATION: Backend host is selected based on the # client connection metadata, i.e., connections are opened to the same address # as the destination address of the incoming connection before the connection # was redirected to the load balancer. - MAGLEV: used as a drop in replacement # for the ring hash load balancer. Maglev is not as stable as ring hash but has # faster table lookup build times and host selection times. For more information # about Maglev, see https://ai.google/research/pubs/pub44824 This field is # applicable to either: - A regional backend service with the service_protocol # set to HTTP, HTTPS, or HTTP2, and load_balancing_scheme set to # INTERNAL_MANAGED. - A global backend service with the load_balancing_scheme # set to INTERNAL_SELF_MANAGED. If sessionAffinity is not NONE, and this field # is not set to MAGLEV or RING_HASH, session affinity settings will not take # effect. Only ROUND_ROBIN and RING_HASH are supported when the backend service # is referenced by a URL map that is bound to target gRPC proxy that has # validateForProxyless field set to true. # Corresponds to the JSON property `localityLbPolicy` # @return [String] attr_accessor :locality_lb_policy # The available logging options for the load balancer traffic served by this # backend service. # Corresponds to the JSON property `logConfig` # @return [Google::Apis::ComputeAlpha::BackendServiceLogConfig] attr_accessor :log_config # A Duration represents a fixed-length span of time represented as a count of # seconds and fractions of seconds at nanosecond resolution. It is independent # of any calendar and concepts like "day" or "month". Range is approximately 10, # 000 years. # Corresponds to the JSON property `maxStreamDuration` # @return [Google::Apis::ComputeAlpha::Duration] attr_accessor :max_stream_duration # Name of the resource. Provided by the client when the resource is created. The # name must be 1-63 characters long, and comply with RFC1035. Specifically, the # name must be 1-63 characters long and match the regular expression `[a-z]([-a- # z0-9]*[a-z0-9])?` which means the first character must be a lowercase letter, # and all following characters must be a dash, lowercase letter, or digit, # except the last character, which cannot be a dash. # Corresponds to the JSON property `name` # @return [String] attr_accessor :name # The URL of the network to which this backend service belongs. This field can # only be specified when the load balancing scheme is set to INTERNAL. # Corresponds to the JSON property `network` # @return [String] attr_accessor :network # Settings controlling the eviction of unhealthy hosts from the load balancing # pool for the backend service. # Corresponds to the JSON property `outlierDetection` # @return [Google::Apis::ComputeAlpha::OutlierDetection] attr_accessor :outlier_detection # Deprecated in favor of portName. The TCP port to connect on the backend. The # default value is 80. For Internal TCP/UDP Load Balancing and Network Load # Balancing, omit port. # Corresponds to the JSON property `port` # @return [Fixnum] attr_accessor :port # A named port on a backend instance group representing the port for # communication to the backend VMs in that group. The named port must be [ # defined on each backend instance group](https://cloud.google.com/load- # balancing/docs/backend-service#named_ports). This parameter has no meaning if # the backends are NEGs. For Internal TCP/UDP Load Balancing and Network Load # Balancing, omit port_name. # Corresponds to the JSON property `portName` # @return [String] attr_accessor :port_name # The protocol this BackendService uses to communicate with backends. Possible # values are HTTP, HTTPS, HTTP2, TCP, SSL, UDP or GRPC. depending on the chosen # load balancer or Traffic Director configuration. Refer to the documentation # for the load balancers or for Traffic Director for more information. Must be # set to GRPC when the backend service is referenced by a URL map that is bound # to target gRPC proxy. # Corresponds to the JSON property `protocol` # @return [String] attr_accessor :protocol # [Output Only] URL of the region where the regional backend service resides. # This field is not applicable to global backend services. You must specify this # field as part of the HTTP request URL. It is not settable as a field in the # request body. # Corresponds to the JSON property `region` # @return [String] attr_accessor :region # [Output Only] The resource URL for the security policy associated with this # backend service. # Corresponds to the JSON property `securityPolicy` # @return [String] attr_accessor :security_policy # The authentication and authorization settings for a BackendService. # Corresponds to the JSON property `securitySettings` # @return [Google::Apis::ComputeAlpha::SecuritySettings] attr_accessor :security_settings # [Output Only] Server-defined URL for the resource. # Corresponds to the JSON property `selfLink` # @return [String] attr_accessor :self_link # [Output Only] Server-defined URL for this resource with the resource id. # Corresponds to the JSON property `selfLinkWithId` # @return [String] attr_accessor :self_link_with_id # URLs of networkservices.ServiceBinding resources. Can only be set if load # balancing scheme is INTERNAL_SELF_MANAGED. If set, lists of backends and # health checks must be both empty. # Corresponds to the JSON property `serviceBindings` # @return [Array] attr_accessor :service_bindings # URL to networkservices.ServiceLbPolicy resource. Can only be set if load # balancing scheme is EXTERNAL, INTERNAL_MANAGED or INTERNAL_SELF_MANAGED. If # used with a backend service, must reference a global policy. If used with a # regional backend service, must reference a regional policy. # Corresponds to the JSON property `serviceLbPolicy` # @return [String] attr_accessor :service_lb_policy # Type of session affinity to use. The default is NONE. Only NONE and # HEADER_FIELD are supported when the backend service is referenced by a URL map # that is bound to target gRPC proxy that has validateForProxyless field set to # true. For more details, see: [Session Affinity](https://cloud.google.com/load- # balancing/docs/backend-service#session_affinity). # Corresponds to the JSON property `sessionAffinity` # @return [String] attr_accessor :session_affinity # Subsetting configuration for this BackendService. Currently this is applicable # only for Internal TCP/UDP load balancing, Internal HTTP(S) load balancing and # Traffic Director. # Corresponds to the JSON property `subsetting` # @return [Google::Apis::ComputeAlpha::Subsetting] attr_accessor :subsetting # The backend service timeout has a different meaning depending on the type of # load balancer. For more information see, Backend service settings. The default # is 30 seconds. The full range of timeout values allowed goes from 1 through 2, # 147,483,647 seconds. This value can be overridden in the PathMatcher # configuration of the UrlMap that references this backend service. Not # supported when the backend service is referenced by a URL map that is bound to # target gRPC proxy that has validateForProxyless field set to true. Instead, # use maxStreamDuration. # Corresponds to the JSON property `timeoutSec` # @return [Fixnum] attr_accessor :timeout_sec def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @affinity_cookie_ttl_sec = args[:affinity_cookie_ttl_sec] if args.key?(:affinity_cookie_ttl_sec) @backends = args[:backends] if args.key?(:backends) @cdn_policy = args[:cdn_policy] if args.key?(:cdn_policy) @circuit_breakers = args[:circuit_breakers] if args.key?(:circuit_breakers) @compression_mode = args[:compression_mode] if args.key?(:compression_mode) @connection_draining = args[:connection_draining] if args.key?(:connection_draining) @connection_tracking_policy = args[:connection_tracking_policy] if args.key?(:connection_tracking_policy) @consistent_hash = args[:consistent_hash] if args.key?(:consistent_hash) @creation_timestamp = args[:creation_timestamp] if args.key?(:creation_timestamp) @custom_request_headers = args[:custom_request_headers] if args.key?(:custom_request_headers) @custom_response_headers = args[:custom_response_headers] if args.key?(:custom_response_headers) @description = args[:description] if args.key?(:description) @edge_security_policy = args[:edge_security_policy] if args.key?(:edge_security_policy) @enable_cdn = args[:enable_cdn] if args.key?(:enable_cdn) @failover_policy = args[:failover_policy] if args.key?(:failover_policy) @fingerprint = args[:fingerprint] if args.key?(:fingerprint) @health_checks = args[:health_checks] if args.key?(:health_checks) @iap = args[:iap] if args.key?(:iap) @id = args[:id] if args.key?(:id) @kind = args[:kind] if args.key?(:kind) @load_balancing_scheme = args[:load_balancing_scheme] if args.key?(:load_balancing_scheme) @locality_lb_policies = args[:locality_lb_policies] if args.key?(:locality_lb_policies) @locality_lb_policy = args[:locality_lb_policy] if args.key?(:locality_lb_policy) @log_config = args[:log_config] if args.key?(:log_config) @max_stream_duration = args[:max_stream_duration] if args.key?(:max_stream_duration) @name = args[:name] if args.key?(:name) @network = args[:network] if args.key?(:network) @outlier_detection = args[:outlier_detection] if args.key?(:outlier_detection) @port = args[:port] if args.key?(:port) @port_name = args[:port_name] if args.key?(:port_name) @protocol = args[:protocol] if args.key?(:protocol) @region = args[:region] if args.key?(:region) @security_policy = args[:security_policy] if args.key?(:security_policy) @security_settings = args[:security_settings] if args.key?(:security_settings) @self_link = args[:self_link] if args.key?(:self_link) @self_link_with_id = args[:self_link_with_id] if args.key?(:self_link_with_id) @service_bindings = args[:service_bindings] if args.key?(:service_bindings) @service_lb_policy = args[:service_lb_policy] if args.key?(:service_lb_policy) @session_affinity = args[:session_affinity] if args.key?(:session_affinity) @subsetting = args[:subsetting] if args.key?(:subsetting) @timeout_sec = args[:timeout_sec] if args.key?(:timeout_sec) end end # Contains a list of BackendServicesScopedList. class BackendServiceAggregatedList include Google::Apis::Core::Hashable # [Output Only] Unique identifier for the resource; defined by the server. # Corresponds to the JSON property `id` # @return [String] attr_accessor :id # A list of BackendServicesScopedList resources. # Corresponds to the JSON property `items` # @return [Hash] attr_accessor :items # Type of resource. # Corresponds to the JSON property `kind` # @return [String] attr_accessor :kind # [Output Only] This token allows you to get the next page of results for list # requests. If the number of results is larger than maxResults, use the # nextPageToken as a value for the query parameter pageToken in the next list # request. Subsequent list requests will have their own nextPageToken to # continue paging through the results. # Corresponds to the JSON property `nextPageToken` # @return [String] attr_accessor :next_page_token # [Output Only] Server-defined URL for this resource. # Corresponds to the JSON property `selfLink` # @return [String] attr_accessor :self_link # [Output Only] Unreachable resources. # Corresponds to the JSON property `unreachables` # @return [Array] attr_accessor :unreachables # [Output Only] Informational warning message. # Corresponds to the JSON property `warning` # @return [Google::Apis::ComputeAlpha::BackendServiceAggregatedList::Warning] attr_accessor :warning def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @id = args[:id] if args.key?(:id) @items = args[:items] if args.key?(:items) @kind = args[:kind] if args.key?(:kind) @next_page_token = args[:next_page_token] if args.key?(:next_page_token) @self_link = args[:self_link] if args.key?(:self_link) @unreachables = args[:unreachables] if args.key?(:unreachables) @warning = args[:warning] if args.key?(:warning) end # [Output Only] Informational warning message. class Warning include Google::Apis::Core::Hashable # [Output Only] A warning code, if applicable. For example, Compute Engine # returns NO_RESULTS_ON_PAGE if there are no results in the response. # Corresponds to the JSON property `code` # @return [String] attr_accessor :code # [Output Only] Metadata about this warning in key: value format. For example: " # data": [ ` "key": "scope", "value": "zones/us-east1-d" ` # Corresponds to the JSON property `data` # @return [Array] attr_accessor :data # [Output Only] A human-readable description of the warning code. # Corresponds to the JSON property `message` # @return [String] attr_accessor :message def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @code = args[:code] if args.key?(:code) @data = args[:data] if args.key?(:data) @message = args[:message] if args.key?(:message) end # class Datum include Google::Apis::Core::Hashable # [Output Only] A key that provides more detail on the warning being returned. # For example, for warnings where there are no results in a list request for a # particular zone, this key might be scope and the key value might be the zone # name. Other examples might be a key indicating a deprecated resource and a # suggested replacement, or a warning about invalid network settings (for # example, if an instance attempts to perform IP forwarding but is not enabled # for IP forwarding). # Corresponds to the JSON property `key` # @return [String] attr_accessor :key # [Output Only] A warning data value corresponding to the key. # 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 end end # Message containing Cloud CDN configuration for a backend service. class BackendServiceCdnPolicy include Google::Apis::Core::Hashable # Bypass the cache when the specified request headers are matched - e.g. Pragma # or Authorization headers. Up to 5 headers can be specified. The cache is # bypassed for all cdnPolicy.cacheMode settings. # Corresponds to the JSON property `bypassCacheOnRequestHeaders` # @return [Array] attr_accessor :bypass_cache_on_request_headers # Message containing what to include in the cache key for a request for Cloud # CDN. # Corresponds to the JSON property `cacheKeyPolicy` # @return [Google::Apis::ComputeAlpha::CacheKeyPolicy] attr_accessor :cache_key_policy # Specifies the cache setting for all responses from this backend. The possible # values are: USE_ORIGIN_HEADERS Requires the origin to set valid caching # headers to cache content. Responses without these headers will not be cached # at Google's edge, and will require a full trip to the origin on every request, # potentially impacting performance and increasing load on the origin server. # FORCE_CACHE_ALL Cache all content, ignoring any "private", "no-store" or "no- # cache" directives in Cache-Control response headers. Warning: this may result # in Cloud CDN caching private, per-user (user identifiable) content. # CACHE_ALL_STATIC Automatically cache static content, including common image # formats, media (video and audio), and web assets (JavaScript and CSS). # Requests and responses that are marked as uncacheable, as well as dynamic # content (including HTML), will not be cached. # Corresponds to the JSON property `cacheMode` # @return [String] attr_accessor :cache_mode # Specifies a separate client (e.g. browser client) maximum TTL. This is used to # clamp the max-age (or Expires) value sent to the client. With FORCE_CACHE_ALL, # the lesser of client_ttl and default_ttl is used for the response max-age # directive, along with a "public" directive. For cacheable content in # CACHE_ALL_STATIC mode, client_ttl clamps the max-age from the origin (if # specified), or else sets the response max-age directive to the lesser of the # client_ttl and default_ttl, and also ensures a "public" cache-control # directive is present. If a client TTL is not specified, a default value (1 # hour) will be used. The maximum allowed value is 31,622,400s (1 year). # Corresponds to the JSON property `clientTtl` # @return [Fixnum] attr_accessor :client_ttl # Specifies the default TTL for cached content served by this origin for # responses that do not have an existing valid TTL (max-age or s-max-age). # Setting a TTL of "0" means "always revalidate". The value of defaultTTL cannot # be set to a value greater than that of maxTTL, but can be equal. When the # cacheMode is set to FORCE_CACHE_ALL, the defaultTTL will overwrite the TTL set # in all responses. The maximum allowed value is 31,622,400s (1 year), noting # that infrequently accessed objects may be evicted from the cache before the # defined TTL. # Corresponds to the JSON property `defaultTtl` # @return [Fixnum] attr_accessor :default_ttl # Specifies the maximum allowed TTL for cached content served by this origin. # Cache directives that attempt to set a max-age or s-maxage higher than this, # or an Expires header more than maxTTL seconds in the future will be capped at # the value of maxTTL, as if it were the value of an s-maxage Cache-Control # directive. Headers sent to the client will not be modified. Setting a TTL of " # 0" means "always revalidate". The maximum allowed value is 31,622,400s (1 year) # , noting that infrequently accessed objects may be evicted from the cache # before the defined TTL. # Corresponds to the JSON property `maxTtl` # @return [Fixnum] attr_accessor :max_ttl # Negative caching allows per-status code TTLs to be set, in order to apply fine- # grained caching for common errors or redirects. This can reduce the load on # your origin and improve end-user experience by reducing response latency. When # the cache mode is set to CACHE_ALL_STATIC or USE_ORIGIN_HEADERS, negative # caching applies to responses with the specified response code that lack any # Cache-Control, Expires, or Pragma: no-cache directives. When the cache mode is # set to FORCE_CACHE_ALL, negative caching applies to all responses with the # specified response code, and override any caching headers. By default, Cloud # CDN will apply the following default TTLs to these status codes: HTTP 300 ( # Multiple Choice), 301, 308 (Permanent Redirects): 10m HTTP 404 (Not Found), # 410 (Gone), 451 (Unavailable For Legal Reasons): 120s HTTP 405 (Method Not # Found), 421 (Misdirected Request), 501 (Not Implemented): 60s. These defaults # can be overridden in negative_caching_policy. # Corresponds to the JSON property `negativeCaching` # @return [Boolean] attr_accessor :negative_caching alias_method :negative_caching?, :negative_caching # Sets a cache TTL for the specified HTTP status code. negative_caching must be # enabled to configure negative_caching_policy. Omitting the policy and leaving # negative_caching enabled will use Cloud CDN's default cache TTLs. Note that # when specifying an explicit negative_caching_policy, you should take care to # specify a cache TTL for all response codes that you wish to cache. Cloud CDN # will not apply any default negative caching when a policy exists. # Corresponds to the JSON property `negativeCachingPolicy` # @return [Array] attr_accessor :negative_caching_policy # If true then Cloud CDN will combine multiple concurrent cache fill requests # into a small number of requests to the origin. # Corresponds to the JSON property `requestCoalescing` # @return [Boolean] attr_accessor :request_coalescing alias_method :request_coalescing?, :request_coalescing # Serve existing content from the cache (if available) when revalidating content # with the origin, or when an error is encountered when refreshing the cache. # This setting defines the default "max-stale" duration for any cached responses # that do not specify a max-stale directive. Stale responses that exceed the TTL # configured here will not be served. The default limit (max-stale) is 86400s (1 # day), which will allow stale content to be served up to this limit beyond the # max-age (or s-max-age) of a cached response. The maximum allowed value is # 604800 (1 week). Set this to zero (0) to disable serve-while-stale. # Corresponds to the JSON property `serveWhileStale` # @return [Fixnum] attr_accessor :serve_while_stale # Maximum number of seconds the response to a signed URL request will be # considered fresh. After this time period, the response will be revalidated # before being served. Defaults to 1hr (3600s). When serving responses to signed # URL requests, Cloud CDN will internally behave as though all responses from # this backend had a "Cache-Control: public, max-age=[TTL]" header, regardless # of any existing Cache-Control header. The actual headers served in responses # will not be altered. # Corresponds to the JSON property `signedUrlCacheMaxAgeSec` # @return [Fixnum] attr_accessor :signed_url_cache_max_age_sec # [Output Only] Names of the keys for signing request URLs. # Corresponds to the JSON property `signedUrlKeyNames` # @return [Array] attr_accessor :signed_url_key_names def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @bypass_cache_on_request_headers = args[:bypass_cache_on_request_headers] if args.key?(:bypass_cache_on_request_headers) @cache_key_policy = args[:cache_key_policy] if args.key?(:cache_key_policy) @cache_mode = args[:cache_mode] if args.key?(:cache_mode) @client_ttl = args[:client_ttl] if args.key?(:client_ttl) @default_ttl = args[:default_ttl] if args.key?(:default_ttl) @max_ttl = args[:max_ttl] if args.key?(:max_ttl) @negative_caching = args[:negative_caching] if args.key?(:negative_caching) @negative_caching_policy = args[:negative_caching_policy] if args.key?(:negative_caching_policy) @request_coalescing = args[:request_coalescing] if args.key?(:request_coalescing) @serve_while_stale = args[:serve_while_stale] if args.key?(:serve_while_stale) @signed_url_cache_max_age_sec = args[:signed_url_cache_max_age_sec] if args.key?(:signed_url_cache_max_age_sec) @signed_url_key_names = args[:signed_url_key_names] if args.key?(:signed_url_key_names) end end # Bypass the cache when the specified request headers are present, e.g. Pragma # or Authorization headers. Values are case insensitive. The presence of such a # header overrides the cache_mode setting. class BackendServiceCdnPolicyBypassCacheOnRequestHeader include Google::Apis::Core::Hashable # The header field name to match on when bypassing cache. Values are case- # insensitive. # Corresponds to the JSON property `headerName` # @return [String] attr_accessor :header_name def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @header_name = args[:header_name] if args.key?(:header_name) end end # Specify CDN TTLs for response error codes. class BackendServiceCdnPolicyNegativeCachingPolicy include Google::Apis::Core::Hashable # The HTTP status code to define a TTL against. Only HTTP status codes 300, 301, # 302, 307, 308, 404, 405, 410, 421, 451 and 501 are can be specified as values, # and you cannot specify a status code more than once. # Corresponds to the JSON property `code` # @return [Fixnum] attr_accessor :code # The TTL (in seconds) for which to cache responses with the corresponding # status code. The maximum allowed value is 1800s (30 minutes), noting that # infrequently accessed objects may be evicted from the cache before the defined # TTL. # Corresponds to the JSON property `ttl` # @return [Fixnum] attr_accessor :ttl def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @code = args[:code] if args.key?(:code) @ttl = args[:ttl] if args.key?(:ttl) end end # Connection Tracking configuration for this BackendService. class BackendServiceConnectionTrackingPolicy include Google::Apis::Core::Hashable # Specifies connection persistence when backends are unhealthy. The default # value is DEFAULT_FOR_PROTOCOL. If set to DEFAULT_FOR_PROTOCOL, the existing # connections persist on unhealthy backends only for connection-oriented # protocols (TCP and SCTP) and only if the Tracking Mode is PER_CONNECTION ( # default tracking mode) or the Session Affinity is configured for 5-tuple. They # do not persist for UDP. If set to NEVER_PERSIST, after a backend becomes # unhealthy, the existing connections on the unhealthy backend are never # persisted on the unhealthy backend. They are always diverted to newly selected # healthy backends (unless all backends are unhealthy). If set to ALWAYS_PERSIST, # existing connections always persist on unhealthy backends regardless of # protocol and session affinity. It is generally not recommended to use this # mode overriding the default. For more details, see [Connection Persistence for # Network Load Balancing](https://cloud.google.com/load-balancing/docs/network/ # networklb-backend-service#connection-persistence) and [Connection Persistence # for Internal TCP/UDP Load Balancing](https://cloud.google.com/load-balancing/ # docs/internal#connection-persistence). # Corresponds to the JSON property `connectionPersistenceOnUnhealthyBackends` # @return [String] attr_accessor :connection_persistence_on_unhealthy_backends # Enable Strong Session Affinity for Network Load Balancing. This option is not # available publicly. # Corresponds to the JSON property `enableStrongAffinity` # @return [Boolean] attr_accessor :enable_strong_affinity alias_method :enable_strong_affinity?, :enable_strong_affinity # Specifies how long to keep a Connection Tracking entry while there is no # matching traffic (in seconds). For Internal TCP/UDP Load Balancing: - The # minimum (default) is 10 minutes and the maximum is 16 hours. - It can be set # only if Connection Tracking is less than 5-tuple (i.e. Session Affinity is # CLIENT_IP_NO_DESTINATION, CLIENT_IP or CLIENT_IP_PROTO, and Tracking Mode is # PER_SESSION). For Network Load Balancer the default is 60 seconds. This option # is not available publicly. # Corresponds to the JSON property `idleTimeoutSec` # @return [Fixnum] attr_accessor :idle_timeout_sec # Specifies the key used for connection tracking. There are two options: - # PER_CONNECTION: This is the default mode. The Connection Tracking is performed # as per the Connection Key (default Hash Method) for the specific protocol. - # PER_SESSION: The Connection Tracking is performed as per the configured # Session Affinity. It matches the configured Session Affinity. For more details, # see [Tracking Mode for Network Load Balancing](https://cloud.google.com/load- # balancing/docs/network/networklb-backend-service#tracking-mode) and [Tracking # Mode for Internal TCP/UDP Load Balancing](https://cloud.google.com/load- # balancing/docs/internal#tracking-mode). # Corresponds to the JSON property `trackingMode` # @return [String] attr_accessor :tracking_mode def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @connection_persistence_on_unhealthy_backends = args[:connection_persistence_on_unhealthy_backends] if args.key?(:connection_persistence_on_unhealthy_backends) @enable_strong_affinity = args[:enable_strong_affinity] if args.key?(:enable_strong_affinity) @idle_timeout_sec = args[:idle_timeout_sec] if args.key?(:idle_timeout_sec) @tracking_mode = args[:tracking_mode] if args.key?(:tracking_mode) end end # For load balancers that have configurable failover: [Internal TCP/UDP Load # Balancing](https://cloud.google.com/load-balancing/docs/internal/failover- # overview) and [external TCP/UDP Load Balancing](https://cloud.google.com/load- # balancing/docs/network/networklb-failover-overview). On failover or failback, # this field indicates whether connection draining will be honored. Google Cloud # has a fixed connection draining timeout of 10 minutes. A setting of true # terminates existing TCP connections to the active pool during failover and # failback, immediately draining traffic. A setting of false allows existing TCP # connections to persist, even on VMs no longer in the active pool, for up to # the duration of the connection draining timeout (10 minutes). class BackendServiceFailoverPolicy include Google::Apis::Core::Hashable # This can be set to true only if the protocol is TCP. The default is false. # Corresponds to the JSON property `disableConnectionDrainOnFailover` # @return [Boolean] attr_accessor :disable_connection_drain_on_failover alias_method :disable_connection_drain_on_failover?, :disable_connection_drain_on_failover # If set to true, connections to the load balancer are dropped when all primary # and all backup backend VMs are unhealthy.If set to false, connections are # distributed among all primary VMs when all primary and all backup backend VMs # are unhealthy. For load balancers that have configurable failover: [Internal # TCP/UDP Load Balancing](https://cloud.google.com/load-balancing/docs/internal/ # failover-overview) and [external TCP/UDP Load Balancing](https://cloud.google. # com/load-balancing/docs/network/networklb-failover-overview). The default is # false. # Corresponds to the JSON property `dropTrafficIfUnhealthy` # @return [Boolean] attr_accessor :drop_traffic_if_unhealthy alias_method :drop_traffic_if_unhealthy?, :drop_traffic_if_unhealthy # The value of the field must be in the range [0, 1]. If the value is 0, the # load balancer performs a failover when the number of healthy primary VMs # equals zero. For all other values, the load balancer performs a failover when # the total number of healthy primary VMs is less than this ratio. For load # balancers that have configurable failover: [Internal TCP/UDP Load Balancing]( # https://cloud.google.com/load-balancing/docs/internal/failover-overview) and [ # external TCP/UDP Load Balancing](https://cloud.google.com/load-balancing/docs/ # network/networklb-failover-overview). # Corresponds to the JSON property `failoverRatio` # @return [Float] attr_accessor :failover_ratio def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @disable_connection_drain_on_failover = args[:disable_connection_drain_on_failover] if args.key?(:disable_connection_drain_on_failover) @drop_traffic_if_unhealthy = args[:drop_traffic_if_unhealthy] if args.key?(:drop_traffic_if_unhealthy) @failover_ratio = args[:failover_ratio] if args.key?(:failover_ratio) end end # class BackendServiceGroupHealth include Google::Apis::Core::Hashable # Metadata defined as annotations on the network endpoint group. # Corresponds to the JSON property `annotations` # @return [Hash] attr_accessor :annotations # Health state of the backend instances or endpoints in requested instance or # network endpoint group, determined based on configured health checks. # Corresponds to the JSON property `healthStatus` # @return [Array] attr_accessor :health_status # [Output Only] Type of resource. Always compute#backendServiceGroupHealth for # the health of backend services. # Corresponds to the JSON property `kind` # @return [String] attr_accessor :kind def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @annotations = args[:annotations] if args.key?(:annotations) @health_status = args[:health_status] if args.key?(:health_status) @kind = args[:kind] if args.key?(:kind) end end # Identity-Aware Proxy class BackendServiceIap include Google::Apis::Core::Hashable # Whether the serving infrastructure will authenticate and authorize all # incoming requests. If true, the oauth2ClientId and oauth2ClientSecret fields # must be non-empty. # Corresponds to the JSON property `enabled` # @return [Boolean] attr_accessor :enabled alias_method :enabled?, :enabled # OAuth2 client ID to use for the authentication flow. # Corresponds to the JSON property `oauth2ClientId` # @return [String] attr_accessor :oauth2_client_id # [Input Only] OAuth client info required to generate client id to be used for # IAP. # Corresponds to the JSON property `oauth2ClientInfo` # @return [Google::Apis::ComputeAlpha::BackendServiceIapoAuth2ClientInfo] attr_accessor :oauth2_client_info # OAuth2 client secret to use for the authentication flow. For security reasons, # this value cannot be retrieved via the API. Instead, the SHA-256 hash of the # value is returned in the oauth2ClientSecretSha256 field. @InputOnly # Corresponds to the JSON property `oauth2ClientSecret` # @return [String] attr_accessor :oauth2_client_secret # [Output Only] SHA256 hash value for the field oauth2_client_secret above. # Corresponds to the JSON property `oauth2ClientSecretSha256` # @return [String] attr_accessor :oauth2_client_secret_sha256 def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @enabled = args[:enabled] if args.key?(:enabled) @oauth2_client_id = args[:oauth2_client_id] if args.key?(:oauth2_client_id) @oauth2_client_info = args[:oauth2_client_info] if args.key?(:oauth2_client_info) @oauth2_client_secret = args[:oauth2_client_secret] if args.key?(:oauth2_client_secret) @oauth2_client_secret_sha256 = args[:oauth2_client_secret_sha256] if args.key?(:oauth2_client_secret_sha256) end end # class BackendServiceIapoAuth2ClientInfo include Google::Apis::Core::Hashable # Application name to be used in OAuth consent screen. # Corresponds to the JSON property `applicationName` # @return [String] attr_accessor :application_name # Name of the client to be generated. Optional - If not provided, the name will # be autogenerated by the backend. # Corresponds to the JSON property `clientName` # @return [String] attr_accessor :client_name # Developer's information to be used in OAuth consent screen. # Corresponds to the JSON property `developerEmailAddress` # @return [String] attr_accessor :developer_email_address def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @application_name = args[:application_name] if args.key?(:application_name) @client_name = args[:client_name] if args.key?(:client_name) @developer_email_address = args[:developer_email_address] if args.key?(:developer_email_address) end end # Contains a list of BackendService resources. class BackendServiceList include Google::Apis::Core::Hashable # [Output Only] Unique identifier for the resource; defined by the server. # Corresponds to the JSON property `id` # @return [String] attr_accessor :id # A list of BackendService resources. # Corresponds to the JSON property `items` # @return [Array] attr_accessor :items # [Output Only] Type of resource. Always compute#backendServiceList for lists of # backend services. # Corresponds to the JSON property `kind` # @return [String] attr_accessor :kind # [Output Only] This token allows you to get the next page of results for list # requests. If the number of results is larger than maxResults, use the # nextPageToken as a value for the query parameter pageToken in the next list # request. Subsequent list requests will have their own nextPageToken to # continue paging through the results. # Corresponds to the JSON property `nextPageToken` # @return [String] attr_accessor :next_page_token # [Output Only] Server-defined URL for this resource. # Corresponds to the JSON property `selfLink` # @return [String] attr_accessor :self_link # [Output Only] Informational warning message. # Corresponds to the JSON property `warning` # @return [Google::Apis::ComputeAlpha::BackendServiceList::Warning] attr_accessor :warning def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @id = args[:id] if args.key?(:id) @items = args[:items] if args.key?(:items) @kind = args[:kind] if args.key?(:kind) @next_page_token = args[:next_page_token] if args.key?(:next_page_token) @self_link = args[:self_link] if args.key?(:self_link) @warning = args[:warning] if args.key?(:warning) end # [Output Only] Informational warning message. class Warning include Google::Apis::Core::Hashable # [Output Only] A warning code, if applicable. For example, Compute Engine # returns NO_RESULTS_ON_PAGE if there are no results in the response. # Corresponds to the JSON property `code` # @return [String] attr_accessor :code # [Output Only] Metadata about this warning in key: value format. For example: " # data": [ ` "key": "scope", "value": "zones/us-east1-d" ` # Corresponds to the JSON property `data` # @return [Array] attr_accessor :data # [Output Only] A human-readable description of the warning code. # Corresponds to the JSON property `message` # @return [String] attr_accessor :message def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @code = args[:code] if args.key?(:code) @data = args[:data] if args.key?(:data) @message = args[:message] if args.key?(:message) end # class Datum include Google::Apis::Core::Hashable # [Output Only] A key that provides more detail on the warning being returned. # For example, for warnings where there are no results in a list request for a # particular zone, this key might be scope and the key value might be the zone # name. Other examples might be a key indicating a deprecated resource and a # suggested replacement, or a warning about invalid network settings (for # example, if an instance attempts to perform IP forwarding but is not enabled # for IP forwarding). # Corresponds to the JSON property `key` # @return [String] attr_accessor :key # [Output Only] A warning data value corresponding to the key. # 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 end end # Container for either a built-in LB policy supported by gRPC or Envoy or a # custom one implemented by the end user. class BackendServiceLocalityLoadBalancingPolicyConfig include Google::Apis::Core::Hashable # The configuration for a custom policy implemented by the user and deployed # with the client. # Corresponds to the JSON property `customPolicy` # @return [Google::Apis::ComputeAlpha::BackendServiceLocalityLoadBalancingPolicyConfigCustomPolicy] attr_accessor :custom_policy # The configuration for a built-in load balancing policy. # Corresponds to the JSON property `policy` # @return [Google::Apis::ComputeAlpha::BackendServiceLocalityLoadBalancingPolicyConfigPolicy] attr_accessor :policy def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @custom_policy = args[:custom_policy] if args.key?(:custom_policy) @policy = args[:policy] if args.key?(:policy) end end # The configuration for a custom policy implemented by the user and deployed # with the client. class BackendServiceLocalityLoadBalancingPolicyConfigCustomPolicy include Google::Apis::Core::Hashable # An optional, arbitrary JSON object with configuration data, understood by a # locally installed custom policy implementation. # Corresponds to the JSON property `data` # @return [String] attr_accessor :data # Identifies the custom policy. The value should match the type the custom # implementation is registered with on the gRPC clients. It should follow # protocol buffer message naming conventions and include the full path (e.g. # myorg.CustomLbPolicy). The maximum length is 256 characters. Note that # specifying the same custom policy more than once for a backend is not a valid # configuration and will be rejected. # 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) @data = args[:data] if args.key?(:data) @name = args[:name] if args.key?(:name) end end # The configuration for a built-in load balancing policy. class BackendServiceLocalityLoadBalancingPolicyConfigPolicy include Google::Apis::Core::Hashable # The name of a locality load balancer policy to be used. The value should be # one of the predefined ones as supported by localityLbPolicy, although at the # moment only ROUND_ROBIN is supported. This field should only be populated when # the customPolicy field is not used. Note that specifying the same policy more # than once for a backend is not a valid configuration and will be rejected. # 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) @name = args[:name] if args.key?(:name) end end # The available logging options for the load balancer traffic served by this # backend service. class BackendServiceLogConfig include Google::Apis::Core::Hashable # This field denotes whether to enable logging for the load balancer traffic # served by this backend service. # Corresponds to the JSON property `enable` # @return [Boolean] attr_accessor :enable alias_method :enable?, :enable # This field can only be specified if logging is enabled for this backend # service. The value of the field must be in [0, 1]. This configures the # sampling rate of requests to the load balancer where 1.0 means all logged # requests are reported and 0.0 means no logged requests are reported. The # default value is 1.0. # Corresponds to the JSON property `sampleRate` # @return [Float] attr_accessor :sample_rate def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @enable = args[:enable] if args.key?(:enable) @sample_rate = args[:sample_rate] if args.key?(:sample_rate) end end # class BackendServiceReference include Google::Apis::Core::Hashable # # Corresponds to the JSON property `backendService` # @return [String] attr_accessor :backend_service def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @backend_service = args[:backend_service] if args.key?(:backend_service) end end # class BackendServicesScopedList include Google::Apis::Core::Hashable # A list of BackendServices contained in this scope. # Corresponds to the JSON property `backendServices` # @return [Array] attr_accessor :backend_services # Informational warning which replaces the list of backend services when the # list is empty. # Corresponds to the JSON property `warning` # @return [Google::Apis::ComputeAlpha::BackendServicesScopedList::Warning] attr_accessor :warning def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @backend_services = args[:backend_services] if args.key?(:backend_services) @warning = args[:warning] if args.key?(:warning) end # Informational warning which replaces the list of backend services when the # list is empty. class Warning include Google::Apis::Core::Hashable # [Output Only] A warning code, if applicable. For example, Compute Engine # returns NO_RESULTS_ON_PAGE if there are no results in the response. # Corresponds to the JSON property `code` # @return [String] attr_accessor :code # [Output Only] Metadata about this warning in key: value format. For example: " # data": [ ` "key": "scope", "value": "zones/us-east1-d" ` # Corresponds to the JSON property `data` # @return [Array] attr_accessor :data # [Output Only] A human-readable description of the warning code. # Corresponds to the JSON property `message` # @return [String] attr_accessor :message def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @code = args[:code] if args.key?(:code) @data = args[:data] if args.key?(:data) @message = args[:message] if args.key?(:message) end # class Datum include Google::Apis::Core::Hashable # [Output Only] A key that provides more detail on the warning being returned. # For example, for warnings where there are no results in a list request for a # particular zone, this key might be scope and the key value might be the zone # name. Other examples might be a key indicating a deprecated resource and a # suggested replacement, or a warning about invalid network settings (for # example, if an instance attempts to perform IP forwarding but is not enabled # for IP forwarding). # Corresponds to the JSON property `key` # @return [String] attr_accessor :key # [Output Only] A warning data value corresponding to the key. # 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 end end # class BfdPacket include Google::Apis::Core::Hashable # The Authentication Present bit of the BFD packet. This is specified in section # 4.1 of RFC5880 # Corresponds to the JSON property `authenticationPresent` # @return [Boolean] attr_accessor :authentication_present alias_method :authentication_present?, :authentication_present # The Control Plane Independent bit of the BFD packet. This is specified in # section 4.1 of RFC5880 # Corresponds to the JSON property `controlPlaneIndependent` # @return [Boolean] attr_accessor :control_plane_independent alias_method :control_plane_independent?, :control_plane_independent # The demand bit of the BFD packet. This is specified in section 4.1 of RFC5880 # Corresponds to the JSON property `demand` # @return [Boolean] attr_accessor :demand alias_method :demand?, :demand # The diagnostic code specifies the local system's reason for the last change in # session state. This allows remote systems to determine the reason that the # previous session failed, for example. These diagnostic codes are specified in # section 4.1 of RFC5880 # Corresponds to the JSON property `diagnostic` # @return [String] attr_accessor :diagnostic # The Final bit of the BFD packet. This is specified in section 4.1 of RFC5880 # Corresponds to the JSON property `final` # @return [Boolean] attr_accessor :final alias_method :final?, :final # The length of the BFD Control packet in bytes. This is specified in section 4. # 1 of RFC5880 # Corresponds to the JSON property `length` # @return [Fixnum] attr_accessor :length # The Required Min Echo RX Interval value in the BFD packet. This is specified # in section 4.1 of RFC5880 # Corresponds to the JSON property `minEchoRxIntervalMs` # @return [Fixnum] attr_accessor :min_echo_rx_interval_ms # The Required Min RX Interval value in the BFD packet. This is specified in # section 4.1 of RFC5880 # Corresponds to the JSON property `minRxIntervalMs` # @return [Fixnum] attr_accessor :min_rx_interval_ms # The Desired Min TX Interval value in the BFD packet. This is specified in # section 4.1 of RFC5880 # Corresponds to the JSON property `minTxIntervalMs` # @return [Fixnum] attr_accessor :min_tx_interval_ms # The detection time multiplier of the BFD packet. This is specified in section # 4.1 of RFC5880 # Corresponds to the JSON property `multiplier` # @return [Fixnum] attr_accessor :multiplier # The multipoint bit of the BFD packet. This is specified in section 4.1 of # RFC5880 # Corresponds to the JSON property `multipoint` # @return [Boolean] attr_accessor :multipoint alias_method :multipoint?, :multipoint # The My Discriminator value in the BFD packet. This is specified in section 4.1 # of RFC5880 # Corresponds to the JSON property `myDiscriminator` # @return [Fixnum] attr_accessor :my_discriminator # The Poll bit of the BFD packet. This is specified in section 4.1 of RFC5880 # Corresponds to the JSON property `poll` # @return [Boolean] attr_accessor :poll alias_method :poll?, :poll # The current BFD session state as seen by the transmitting system. These states # are specified in section 4.1 of RFC5880 # Corresponds to the JSON property `state` # @return [String] attr_accessor :state # The version number of the BFD protocol, as specified in section 4.1 of RFC5880. # Corresponds to the JSON property `version` # @return [Fixnum] attr_accessor :version # The Your Discriminator value in the BFD packet. This is specified in section 4. # 1 of RFC5880 # Corresponds to the JSON property `yourDiscriminator` # @return [Fixnum] attr_accessor :your_discriminator def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @authentication_present = args[:authentication_present] if args.key?(:authentication_present) @control_plane_independent = args[:control_plane_independent] if args.key?(:control_plane_independent) @demand = args[:demand] if args.key?(:demand) @diagnostic = args[:diagnostic] if args.key?(:diagnostic) @final = args[:final] if args.key?(:final) @length = args[:length] if args.key?(:length) @min_echo_rx_interval_ms = args[:min_echo_rx_interval_ms] if args.key?(:min_echo_rx_interval_ms) @min_rx_interval_ms = args[:min_rx_interval_ms] if args.key?(:min_rx_interval_ms) @min_tx_interval_ms = args[:min_tx_interval_ms] if args.key?(:min_tx_interval_ms) @multiplier = args[:multiplier] if args.key?(:multiplier) @multipoint = args[:multipoint] if args.key?(:multipoint) @my_discriminator = args[:my_discriminator] if args.key?(:my_discriminator) @poll = args[:poll] if args.key?(:poll) @state = args[:state] if args.key?(:state) @version = args[:version] if args.key?(:version) @your_discriminator = args[:your_discriminator] if args.key?(:your_discriminator) end end # Next free: 15 class BfdStatus include Google::Apis::Core::Hashable # The BFD session initialization mode for this BGP peer. If set to ACTIVE, the # Cloud Router will initiate the BFD session for this BGP peer. If set to # PASSIVE, the Cloud Router will wait for the peer router to initiate the BFD # session for this BGP peer. If set to DISABLED, BFD is disabled for this BGP # peer. # Corresponds to the JSON property `bfdSessionInitializationMode` # @return [String] attr_accessor :bfd_session_initialization_mode # Unix timestamp of the most recent config update. # Corresponds to the JSON property `configUpdateTimestampMicros` # @return [Fixnum] attr_accessor :config_update_timestamp_micros # Control packet counts for the current BFD session. # Corresponds to the JSON property `controlPacketCounts` # @return [Google::Apis::ComputeAlpha::BfdStatusPacketCounts] attr_accessor :control_packet_counts # Inter-packet time interval statistics for control packets. # Corresponds to the JSON property `controlPacketIntervals` # @return [Array] attr_accessor :control_packet_intervals # Echo packet counts for the current BFD session. # Corresponds to the JSON property `echoPacketCounts` # @return [Google::Apis::ComputeAlpha::BfdStatusPacketCounts] attr_accessor :echo_packet_counts # Inter-packet time interval statistics for echo packets. # Corresponds to the JSON property `echoPacketIntervals` # @return [Array] attr_accessor :echo_packet_intervals # The diagnostic code specifies the local system's reason for the last change in # session state. This allows remote systems to determine the reason that the # previous session failed, for example. These diagnostic codes are specified in # section 4.1 of RFC5880 # Corresponds to the JSON property `localDiagnostic` # @return [String] attr_accessor :local_diagnostic # The current BFD session state as seen by the transmitting system. These states # are specified in section 4.1 of RFC5880 # Corresponds to the JSON property `localState` # @return [String] attr_accessor :local_state # Negotiated transmit interval for control packets. # Corresponds to the JSON property `negotiatedLocalControlTxIntervalMs` # @return [Fixnum] attr_accessor :negotiated_local_control_tx_interval_ms # Negotiated transmit interval for echo packets. # Corresponds to the JSON property `negotiatedLocalEchoTxIntervalMs` # @return [Fixnum] attr_accessor :negotiated_local_echo_tx_interval_ms # The most recent Rx control packet for this BFD session. # Corresponds to the JSON property `rxPacket` # @return [Google::Apis::ComputeAlpha::BfdPacket] attr_accessor :rx_packet # The most recent Tx control packet for this BFD session. # Corresponds to the JSON property `txPacket` # @return [Google::Apis::ComputeAlpha::BfdPacket] attr_accessor :tx_packet # Session uptime in milliseconds. Value will be 0 if session is not up. # Corresponds to the JSON property `uptimeMs` # @return [Fixnum] attr_accessor :uptime_ms # Indicates if echo mode is currently being used. # Corresponds to the JSON property `usingEchoMode` # @return [Boolean] attr_accessor :using_echo_mode alias_method :using_echo_mode?, :using_echo_mode def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @bfd_session_initialization_mode = args[:bfd_session_initialization_mode] if args.key?(:bfd_session_initialization_mode) @config_update_timestamp_micros = args[:config_update_timestamp_micros] if args.key?(:config_update_timestamp_micros) @control_packet_counts = args[:control_packet_counts] if args.key?(:control_packet_counts) @control_packet_intervals = args[:control_packet_intervals] if args.key?(:control_packet_intervals) @echo_packet_counts = args[:echo_packet_counts] if args.key?(:echo_packet_counts) @echo_packet_intervals = args[:echo_packet_intervals] if args.key?(:echo_packet_intervals) @local_diagnostic = args[:local_diagnostic] if args.key?(:local_diagnostic) @local_state = args[:local_state] if args.key?(:local_state) @negotiated_local_control_tx_interval_ms = args[:negotiated_local_control_tx_interval_ms] if args.key?(:negotiated_local_control_tx_interval_ms) @negotiated_local_echo_tx_interval_ms = args[:negotiated_local_echo_tx_interval_ms] if args.key?(:negotiated_local_echo_tx_interval_ms) @rx_packet = args[:rx_packet] if args.key?(:rx_packet) @tx_packet = args[:tx_packet] if args.key?(:tx_packet) @uptime_ms = args[:uptime_ms] if args.key?(:uptime_ms) @using_echo_mode = args[:using_echo_mode] if args.key?(:using_echo_mode) end end # class BfdStatusPacketCounts include Google::Apis::Core::Hashable # Number of packets received since the beginning of the current BFD session. # Corresponds to the JSON property `numRx` # @return [Fixnum] attr_accessor :num_rx # Number of packets received that were rejected because of errors since the # beginning of the current BFD session. # Corresponds to the JSON property `numRxRejected` # @return [Fixnum] attr_accessor :num_rx_rejected # Number of packets received that were successfully processed since the # beginning of the current BFD session. # Corresponds to the JSON property `numRxSuccessful` # @return [Fixnum] attr_accessor :num_rx_successful # Number of packets transmitted since the beginning of the current BFD session. # Corresponds to the JSON property `numTx` # @return [Fixnum] attr_accessor :num_tx def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @num_rx = args[:num_rx] if args.key?(:num_rx) @num_rx_rejected = args[:num_rx_rejected] if args.key?(:num_rx_rejected) @num_rx_successful = args[:num_rx_successful] if args.key?(:num_rx_successful) @num_tx = args[:num_tx] if args.key?(:num_tx) end end # Associates `members`, or principals, with a `role`. class Binding include Google::Apis::Core::Hashable # This is deprecated and has no effect. Do not use. # Corresponds to the JSON property `bindingId` # @return [String] attr_accessor :binding_id # Represents a textual expression in the Common Expression Language (CEL) syntax. # CEL is a C-like expression language. The syntax and semantics of CEL are # documented at https://github.com/google/cel-spec. Example (Comparison): title: # "Summary size limit" description: "Determines if a summary is less than 100 # chars" expression: "document.summary.size() < 100" Example (Equality): title: " # Requestor is owner" description: "Determines if requestor is the document # owner" expression: "document.owner == request.auth.claims.email" Example ( # Logic): title: "Public documents" description: "Determine whether the document # should be publicly visible" expression: "document.type != 'private' && # document.type != 'internal'" Example (Data Manipulation): title: "Notification # string" description: "Create a notification string with a timestamp." # expression: "'New message received at ' + string(document.create_time)" The # exact variables and functions that may be referenced within an expression are # determined by the service that evaluates it. See the service documentation for # additional information. # Corresponds to the JSON property `condition` # @return [Google::Apis::ComputeAlpha::Expr] attr_accessor :condition # Specifies the principals requesting access for a Cloud Platform resource. ` # members` can have the following values: * `allUsers`: A special identifier # that represents anyone who is on the internet; with or without a Google # account. * `allAuthenticatedUsers`: A special identifier that represents # anyone who is authenticated with a Google account or a service account. * ` # user:`emailid``: An email address that represents a specific Google account. # For example, `alice@example.com` . * `serviceAccount:`emailid``: An email # address that represents a service account. For example, `my-other-app@appspot. # gserviceaccount.com`. * `group:`emailid``: An email address that represents a # Google group. For example, `admins@example.com`. * `deleted:user:`emailid`?uid= # `uniqueid``: An email address (plus unique identifier) representing a user # that has been recently deleted. For example, `alice@example.com?uid= # 123456789012345678901`. If the user is recovered, this value reverts to `user:` # emailid`` and the recovered user retains the role in the binding. * `deleted: # serviceAccount:`emailid`?uid=`uniqueid``: An email address (plus unique # identifier) representing a service account that has been recently deleted. For # example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. # If the service account is undeleted, this value reverts to `serviceAccount:` # emailid`` and the undeleted service account retains the role in the binding. * # `deleted:group:`emailid`?uid=`uniqueid``: An email address (plus unique # identifier) representing a Google group that has been recently deleted. For # example, `admins@example.com?uid=123456789012345678901`. If the group is # recovered, this value reverts to `group:`emailid`` and the recovered group # retains the role in the binding. * `domain:`domain``: The G Suite domain ( # primary) that represents all the users of that domain. For example, `google. # com` or `example.com`. # Corresponds to the JSON property `members` # @return [Array] attr_accessor :members # Role that is assigned to the list of `members`, or principals. For example, ` # roles/viewer`, `roles/editor`, or `roles/owner`. # Corresponds to the JSON property `role` # @return [String] attr_accessor :role def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @binding_id = args[:binding_id] if args.key?(:binding_id) @condition = args[:condition] if args.key?(:condition) @members = args[:members] if args.key?(:members) @role = args[:role] if args.key?(:role) end end # A transient resource used in compute.instances.bulkInsert and compute. # regionInstances.bulkInsert . This resource is not persisted anywhere, it is # used only for processing the requests. class BulkInsertInstanceResource include Google::Apis::Core::Hashable # The maximum number of instances to create. # Corresponds to the JSON property `count` # @return [Fixnum] attr_accessor :count # Represents an Instance resource. An instance is a virtual machine that is # hosted on Google Cloud Platform. For more information, read Virtual Machine # Instances. # Corresponds to the JSON property `instance` # @return [Google::Apis::ComputeAlpha::Instance] attr_accessor :instance # The instance properties defining the VM instances to be created. Required if # sourceInstanceTemplate is not provided. # Corresponds to the JSON property `instanceProperties` # @return [Google::Apis::ComputeAlpha::InstanceProperties] attr_accessor :instance_properties # Configuration for location policy among multiple possible locations (e.g. # preferences for zone selection among zones in a single region). # Corresponds to the JSON property `locationPolicy` # @return [Google::Apis::ComputeAlpha::LocationPolicy] attr_accessor :location_policy # The minimum number of instances to create. If no min_count is specified then # count is used as the default value. If min_count instances cannot be created, # then no instances will be created and instances already created will be # deleted. # Corresponds to the JSON property `minCount` # @return [Fixnum] attr_accessor :min_count # The string pattern used for the names of the VMs. Either name_pattern or # per_instance_properties must be set. The pattern must contain one continuous # sequence of placeholder hash characters (#) with each character corresponding # to one digit of the generated instance name. Example: a name_pattern of inst-## # ## generates instance names such as inst-0001 and inst-0002. If existing # instances in the same project and zone have names that match the name pattern # then the generated instance numbers start after the biggest existing number. # For example, if there exists an instance with name inst-0050, then instance # names generated using the pattern inst-#### begin with inst-0051. The name # pattern placeholder #...# can contain up to 18 characters. # Corresponds to the JSON property `namePattern` # @return [String] attr_accessor :name_pattern # Per-instance properties to be set on individual instances. Keys of this map # specify requested instance names. Can be empty if name_pattern is used. # Corresponds to the JSON property `perInstanceProperties` # @return [Hash] attr_accessor :per_instance_properties # Specifies the instance template from which to create instances. You may # combine sourceInstanceTemplate with instanceProperties to override specific # values from an existing instance template. Bulk API follows the semantics of # JSON Merge Patch described by RFC 7396. It can be a full or partial URL. For # example, the following are all valid URLs to an instance template: - https:// # www.googleapis.com/compute/v1/projects/project /global/instanceTemplates/ # instanceTemplate - projects/project/global/instanceTemplates/instanceTemplate - # global/instanceTemplates/instanceTemplate This field is optional. # Corresponds to the JSON property `sourceInstanceTemplate` # @return [String] attr_accessor :source_instance_template def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @count = args[:count] if args.key?(:count) @instance = args[:instance] if args.key?(:instance) @instance_properties = args[:instance_properties] if args.key?(:instance_properties) @location_policy = args[:location_policy] if args.key?(:location_policy) @min_count = args[:min_count] if args.key?(:min_count) @name_pattern = args[:name_pattern] if args.key?(:name_pattern) @per_instance_properties = args[:per_instance_properties] if args.key?(:per_instance_properties) @source_instance_template = args[:source_instance_template] if args.key?(:source_instance_template) end end # Per-instance properties to be set on individual instances. To be extended in # the future. class BulkInsertInstanceResourcePerInstanceProperties include Google::Apis::Core::Hashable # This field is only temporary. It will be removed. Do not use it. # 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) @name = args[:name] if args.key?(:name) end end # class CacheInvalidationRule include Google::Apis::Core::Hashable # If set, this invalidation rule will only apply to requests with a Host header # matching host. # Corresponds to the JSON property `host` # @return [String] attr_accessor :host # # Corresponds to the JSON property `path` # @return [String] attr_accessor :path def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @host = args[:host] if args.key?(:host) @path = args[:path] if args.key?(:path) end end # Message containing what to include in the cache key for a request for Cloud # CDN. class CacheKeyPolicy include Google::Apis::Core::Hashable # If true, requests to different hosts will be cached separately. # Corresponds to the JSON property `includeHost` # @return [Boolean] attr_accessor :include_host alias_method :include_host?, :include_host # Allows HTTP request headers (by name) to be used in the cache key. # Corresponds to the JSON property `includeHttpHeaders` # @return [Array] attr_accessor :include_http_headers # Allows HTTP cookies (by name) to be used in the cache key. The name=value pair # will be used in the cache key Cloud CDN generates. # Corresponds to the JSON property `includeNamedCookies` # @return [Array] attr_accessor :include_named_cookies # If true, http and https requests will be cached separately. # Corresponds to the JSON property `includeProtocol` # @return [Boolean] attr_accessor :include_protocol alias_method :include_protocol?, :include_protocol # If true, include query string parameters in the cache key according to # query_string_whitelist and query_string_blacklist. If neither is set, the # entire query string will be included. If false, the query string will be # excluded from the cache key entirely. # Corresponds to the JSON property `includeQueryString` # @return [Boolean] attr_accessor :include_query_string alias_method :include_query_string?, :include_query_string # Names of query string parameters to exclude in cache keys. All other # parameters will be included. Either specify query_string_whitelist or # query_string_blacklist, not both. '&' and '=' will be percent encoded and not # treated as delimiters. # Corresponds to the JSON property `queryStringBlacklist` # @return [Array] attr_accessor :query_string_blacklist # Names of query string parameters to include in cache keys. All other # parameters will be excluded. Either specify query_string_whitelist or # query_string_blacklist, not both. '&' and '=' will be percent encoded and not # treated as delimiters. # Corresponds to the JSON property `queryStringWhitelist` # @return [Array] attr_accessor :query_string_whitelist def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @include_host = args[:include_host] if args.key?(:include_host) @include_http_headers = args[:include_http_headers] if args.key?(:include_http_headers) @include_named_cookies = args[:include_named_cookies] if args.key?(:include_named_cookies) @include_protocol = args[:include_protocol] if args.key?(:include_protocol) @include_query_string = args[:include_query_string] if args.key?(:include_query_string) @query_string_blacklist = args[:query_string_blacklist] if args.key?(:query_string_blacklist) @query_string_whitelist = args[:query_string_whitelist] if args.key?(:query_string_whitelist) end end # [Deprecated] gRPC call credentials to access the SDS server. gRPC call # credentials to access the SDS server. class CallCredentials include Google::Apis::Core::Hashable # The type of call credentials to use for GRPC requests to the SDS server. This # field can be set to one of the following: - GCE_VM: The local GCE VM service # account credentials are used to access the SDS server. - FROM_PLUGIN: Custom # authenticator credentials are used to access the SDS server. # Corresponds to the JSON property `callCredentialType` # @return [String] attr_accessor :call_credential_type # [Deprecated] Custom authenticator credentials. Custom authenticator # credentials. # Corresponds to the JSON property `fromPlugin` # @return [Google::Apis::ComputeAlpha::MetadataCredentialsFromPlugin] attr_accessor :from_plugin def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @call_credential_type = args[:call_credential_type] if args.key?(:call_credential_type) @from_plugin = args[:from_plugin] if args.key?(:from_plugin) end end # [Deprecated] gRPC channel credentials to access the SDS server. gRPC channel # credentials to access the SDS server. class ChannelCredentials include Google::Apis::Core::Hashable # [Deprecated] The paths to the mounted TLS Certificates and private key. The # paths to the mounted TLS Certificates and private key. # Corresponds to the JSON property `certificates` # @return [Google::Apis::ComputeAlpha::TlsCertificatePaths] attr_accessor :certificates # The channel credentials to access the SDS server. This field can be set to one # of the following: CERTIFICATES: Use TLS certificates to access the SDS server. # GCE_VM: Use local GCE VM credentials to access the SDS server. # Corresponds to the JSON property `channelCredentialType` # @return [String] attr_accessor :channel_credential_type def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @certificates = args[:certificates] if args.key?(:certificates) @channel_credential_type = args[:channel_credential_type] if args.key?(:channel_credential_type) end end # Settings controlling the volume of requests, connections and retries to this # backend service. class CircuitBreakers include Google::Apis::Core::Hashable # A Duration represents a fixed-length span of time represented as a count of # seconds and fractions of seconds at nanosecond resolution. It is independent # of any calendar and concepts like "day" or "month". Range is approximately 10, # 000 years. # Corresponds to the JSON property `connectTimeout` # @return [Google::Apis::ComputeAlpha::Duration] attr_accessor :connect_timeout # The maximum number of connections to the backend service. If not specified, # there is no limit. Not supported when the backend service is referenced by a # URL map that is bound to target gRPC proxy that has validateForProxyless field # set to true. # Corresponds to the JSON property `maxConnections` # @return [Fixnum] attr_accessor :max_connections # The maximum number of pending requests allowed to the backend service. If not # specified, there is no limit. Not supported when the backend service is # referenced by a URL map that is bound to target gRPC proxy that has # validateForProxyless field set to true. # Corresponds to the JSON property `maxPendingRequests` # @return [Fixnum] attr_accessor :max_pending_requests # The maximum number of parallel requests that allowed to the backend service. # If not specified, there is no limit. # Corresponds to the JSON property `maxRequests` # @return [Fixnum] attr_accessor :max_requests # Maximum requests for a single connection to the backend service. This # parameter is respected by both the HTTP/1.1 and HTTP/2 implementations. If not # specified, there is no limit. Setting this parameter to 1 will effectively # disable keep alive. Not supported when the backend service is referenced by a # URL map that is bound to target gRPC proxy that has validateForProxyless field # set to true. # Corresponds to the JSON property `maxRequestsPerConnection` # @return [Fixnum] attr_accessor :max_requests_per_connection # The maximum number of parallel retries allowed to the backend cluster. If not # specified, the default is 1. Not supported when the backend service is # referenced by a URL map that is bound to target gRPC proxy that has # validateForProxyless field set to true. # Corresponds to the JSON property `maxRetries` # @return [Fixnum] attr_accessor :max_retries def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @connect_timeout = args[:connect_timeout] if args.key?(:connect_timeout) @max_connections = args[:max_connections] if args.key?(:max_connections) @max_pending_requests = args[:max_pending_requests] if args.key?(:max_pending_requests) @max_requests = args[:max_requests] if args.key?(:max_requests) @max_requests_per_connection = args[:max_requests_per_connection] if args.key?(:max_requests_per_connection) @max_retries = args[:max_retries] if args.key?(:max_retries) end end # [Deprecated] The client side authentication settings for connection # originating from the backend service. the backend service. class ClientTlsSettings include Google::Apis::Core::Hashable # [Deprecated] The TLS settings for the client or server. The TLS settings for # the client or server. # Corresponds to the JSON property `clientTlsContext` # @return [Google::Apis::ComputeAlpha::TlsContext] attr_accessor :client_tls_context # Indicates whether connections to this port should be secured using TLS. The # value of this field determines how TLS is enforced. This can be set to one of # the following values: DISABLE: Do not setup a TLS connection to the backends. # SIMPLE: Originate a TLS connection to the backends. MUTUAL: Secure connections # to the backends using mutual TLS by presenting client certificates for # authentication. # Corresponds to the JSON property `mode` # @return [String] attr_accessor :mode # SNI string to present to the server during TLS handshake. This field is # applicable only when mode is SIMPLE or MUTUAL. # Corresponds to the JSON property `sni` # @return [String] attr_accessor :sni # A list of alternate names to verify the subject identity in the certificate.If # specified, the proxy will verify that the server certificate's subject alt # name matches one of the specified values. This field is applicable only when # mode is SIMPLE or MUTUAL. # Corresponds to the JSON property `subjectAltNames` # @return [Array] attr_accessor :subject_alt_names def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @client_tls_context = args[:client_tls_context] if args.key?(:client_tls_context) @mode = args[:mode] if args.key?(:mode) @sni = args[:sni] if args.key?(:sni) @subject_alt_names = args[:subject_alt_names] if args.key?(:subject_alt_names) end end # Represents a regional Commitment resource. Creating a commitment resource # means that you are purchasing a committed use contract with an explicit start # and end time. You can create commitments based on vCPUs and memory usage and # receive discounted rates. For full details, read Signing Up for Committed Use # Discounts. class Commitment include Google::Apis::Core::Hashable # Specifies whether to enable automatic renewal for the commitment. The default # value is false if not specified. The field can be updated until the day of the # commitment expiration at 12:00am PST. If the field is set to true, the # commitment will be automatically renewed for either one or three years # according to the terms of the existing commitment. # Corresponds to the JSON property `autoRenew` # @return [Boolean] attr_accessor :auto_renew alias_method :auto_renew?, :auto_renew # The category of the commitment. Category MACHINE specifies commitments # composed of machine resources such as VCPU or MEMORY, listed in resources. # Category LICENSE specifies commitments composed of software licenses, listed # in licenseResources. Note that only MACHINE commitments should have a Type # specified. # Corresponds to the JSON property `category` # @return [String] attr_accessor :category # [Output Only] Creation timestamp in RFC3339 text format. # Corresponds to the JSON property `creationTimestamp` # @return [String] attr_accessor :creation_timestamp # An optional description of this resource. Provide this property when you # create the resource. # Corresponds to the JSON property `description` # @return [String] attr_accessor :description # [Output Only] Commitment end time in RFC3339 text format. # Corresponds to the JSON property `endTimestamp` # @return [String] attr_accessor :end_timestamp # [Output Only] The unique identifier for the resource. This identifier is # defined by the server. # Corresponds to the JSON property `id` # @return [Fixnum] attr_accessor :id # [Output Only] Type of the resource. Always compute#commitment for commitments. # Corresponds to the JSON property `kind` # @return [String] attr_accessor :kind # Commitment for a particular license resource. # Corresponds to the JSON property `licenseResource` # @return [Google::Apis::ComputeAlpha::LicenseResourceCommitment] attr_accessor :license_resource # List of source commitments to be merged into a new commitment. # Corresponds to the JSON property `mergeSourceCommitments` # @return [Array] attr_accessor :merge_source_commitments # Name of the resource. Provided by the client when the resource is created. The # name must be 1-63 characters long, and comply with RFC1035. Specifically, the # name must be 1-63 characters long and match the regular expression `[a-z]([-a- # z0-9]*[a-z0-9])?` which means the first character must be a lowercase letter, # and all following characters must be a dash, lowercase letter, or digit, # except the last character, which cannot be a dash. # Corresponds to the JSON property `name` # @return [String] attr_accessor :name # The plan for this commitment, which determines duration and discount rate. The # currently supported plans are TWELVE_MONTH (1 year), and THIRTY_SIX_MONTH (3 # years). # Corresponds to the JSON property `plan` # @return [String] attr_accessor :plan # [Output Only] URL of the region where this commitment may be used. # Corresponds to the JSON property `region` # @return [String] attr_accessor :region # List of reservations in this commitment. # Corresponds to the JSON property `reservations` # @return [Array] attr_accessor :reservations # A list of commitment amounts for particular resources. Note that VCPU and # MEMORY resource commitments must occur together. # Corresponds to the JSON property `resources` # @return [Array] attr_accessor :resources # [Output Only] Server-defined URL for the resource. # Corresponds to the JSON property `selfLink` # @return [String] attr_accessor :self_link # [Output Only] Server-defined URL for this resource with the resource id. # Corresponds to the JSON property `selfLinkWithId` # @return [String] attr_accessor :self_link_with_id # Source commitment to be splitted into a new commitment. # Corresponds to the JSON property `splitSourceCommitment` # @return [String] attr_accessor :split_source_commitment # [Output Only] Commitment start time in RFC3339 text format. # Corresponds to the JSON property `startTimestamp` # @return [String] attr_accessor :start_timestamp # [Output Only] Status of the commitment with regards to eventual expiration ( # each commitment has an end date defined). One of the following values: # NOT_YET_ACTIVE, ACTIVE, EXPIRED. # Corresponds to the JSON property `status` # @return [String] attr_accessor :status # [Output Only] An optional, human-readable explanation of the status. # Corresponds to the JSON property `statusMessage` # @return [String] attr_accessor :status_message # The type of commitment, which affects the discount rate and the eligible # resources. Type MEMORY_OPTIMIZED specifies a commitment that will only apply # to memory optimized machines. Type ACCELERATOR_OPTIMIZED specifies a # commitment that will only apply to accelerator optimized machines. # 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) @auto_renew = args[:auto_renew] if args.key?(:auto_renew) @category = args[:category] if args.key?(:category) @creation_timestamp = args[:creation_timestamp] if args.key?(:creation_timestamp) @description = args[:description] if args.key?(:description) @end_timestamp = args[:end_timestamp] if args.key?(:end_timestamp) @id = args[:id] if args.key?(:id) @kind = args[:kind] if args.key?(:kind) @license_resource = args[:license_resource] if args.key?(:license_resource) @merge_source_commitments = args[:merge_source_commitments] if args.key?(:merge_source_commitments) @name = args[:name] if args.key?(:name) @plan = args[:plan] if args.key?(:plan) @region = args[:region] if args.key?(:region) @reservations = args[:reservations] if args.key?(:reservations) @resources = args[:resources] if args.key?(:resources) @self_link = args[:self_link] if args.key?(:self_link) @self_link_with_id = args[:self_link_with_id] if args.key?(:self_link_with_id) @split_source_commitment = args[:split_source_commitment] if args.key?(:split_source_commitment) @start_timestamp = args[:start_timestamp] if args.key?(:start_timestamp) @status = args[:status] if args.key?(:status) @status_message = args[:status_message] if args.key?(:status_message) @type = args[:type] if args.key?(:type) end end # class CommitmentAggregatedList include Google::Apis::Core::Hashable # [Output Only] Unique identifier for the resource; defined by the server. # Corresponds to the JSON property `id` # @return [String] attr_accessor :id # A list of CommitmentsScopedList resources. # Corresponds to the JSON property `items` # @return [Hash] attr_accessor :items # [Output Only] Type of resource. Always compute#commitmentAggregatedList for # aggregated lists of commitments. # Corresponds to the JSON property `kind` # @return [String] attr_accessor :kind # [Output Only] This token allows you to get the next page of results for list # requests. If the number of results is larger than maxResults, use the # nextPageToken as a value for the query parameter pageToken in the next list # request. Subsequent list requests will have their own nextPageToken to # continue paging through the results. # Corresponds to the JSON property `nextPageToken` # @return [String] attr_accessor :next_page_token # [Output Only] Server-defined URL for this resource. # Corresponds to the JSON property `selfLink` # @return [String] attr_accessor :self_link # [Output Only] Unreachable resources. # Corresponds to the JSON property `unreachables` # @return [Array] attr_accessor :unreachables # [Output Only] Informational warning message. # Corresponds to the JSON property `warning` # @return [Google::Apis::ComputeAlpha::CommitmentAggregatedList::Warning] attr_accessor :warning def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @id = args[:id] if args.key?(:id) @items = args[:items] if args.key?(:items) @kind = args[:kind] if args.key?(:kind) @next_page_token = args[:next_page_token] if args.key?(:next_page_token) @self_link = args[:self_link] if args.key?(:self_link) @unreachables = args[:unreachables] if args.key?(:unreachables) @warning = args[:warning] if args.key?(:warning) end # [Output Only] Informational warning message. class Warning include Google::Apis::Core::Hashable # [Output Only] A warning code, if applicable. For example, Compute Engine # returns NO_RESULTS_ON_PAGE if there are no results in the response. # Corresponds to the JSON property `code` # @return [String] attr_accessor :code # [Output Only] Metadata about this warning in key: value format. For example: " # data": [ ` "key": "scope", "value": "zones/us-east1-d" ` # Corresponds to the JSON property `data` # @return [Array] attr_accessor :data # [Output Only] A human-readable description of the warning code. # Corresponds to the JSON property `message` # @return [String] attr_accessor :message def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @code = args[:code] if args.key?(:code) @data = args[:data] if args.key?(:data) @message = args[:message] if args.key?(:message) end # class Datum include Google::Apis::Core::Hashable # [Output Only] A key that provides more detail on the warning being returned. # For example, for warnings where there are no results in a list request for a # particular zone, this key might be scope and the key value might be the zone # name. Other examples might be a key indicating a deprecated resource and a # suggested replacement, or a warning about invalid network settings (for # example, if an instance attempts to perform IP forwarding but is not enabled # for IP forwarding). # Corresponds to the JSON property `key` # @return [String] attr_accessor :key # [Output Only] A warning data value corresponding to the key. # 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 end end # Contains a list of Commitment resources. class CommitmentList include Google::Apis::Core::Hashable # [Output Only] Unique identifier for the resource; defined by the server. # Corresponds to the JSON property `id` # @return [String] attr_accessor :id # A list of Commitment resources. # Corresponds to the JSON property `items` # @return [Array] attr_accessor :items # [Output Only] Type of resource. Always compute#commitmentList for lists of # commitments. # Corresponds to the JSON property `kind` # @return [String] attr_accessor :kind # [Output Only] This token allows you to get the next page of results for list # requests. If the number of results is larger than maxResults, use the # nextPageToken as a value for the query parameter pageToken in the next list # request. Subsequent list requests will have their own nextPageToken to # continue paging through the results. # Corresponds to the JSON property `nextPageToken` # @return [String] attr_accessor :next_page_token # [Output Only] Server-defined URL for this resource. # Corresponds to the JSON property `selfLink` # @return [String] attr_accessor :self_link # [Output Only] Informational warning message. # Corresponds to the JSON property `warning` # @return [Google::Apis::ComputeAlpha::CommitmentList::Warning] attr_accessor :warning def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @id = args[:id] if args.key?(:id) @items = args[:items] if args.key?(:items) @kind = args[:kind] if args.key?(:kind) @next_page_token = args[:next_page_token] if args.key?(:next_page_token) @self_link = args[:self_link] if args.key?(:self_link) @warning = args[:warning] if args.key?(:warning) end # [Output Only] Informational warning message. class Warning include Google::Apis::Core::Hashable # [Output Only] A warning code, if applicable. For example, Compute Engine # returns NO_RESULTS_ON_PAGE if there are no results in the response. # Corresponds to the JSON property `code` # @return [String] attr_accessor :code # [Output Only] Metadata about this warning in key: value format. For example: " # data": [ ` "key": "scope", "value": "zones/us-east1-d" ` # Corresponds to the JSON property `data` # @return [Array] attr_accessor :data # [Output Only] A human-readable description of the warning code. # Corresponds to the JSON property `message` # @return [String] attr_accessor :message def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @code = args[:code] if args.key?(:code) @data = args[:data] if args.key?(:data) @message = args[:message] if args.key?(:message) end # class Datum include Google::Apis::Core::Hashable # [Output Only] A key that provides more detail on the warning being returned. # For example, for warnings where there are no results in a list request for a # particular zone, this key might be scope and the key value might be the zone # name. Other examples might be a key indicating a deprecated resource and a # suggested replacement, or a warning about invalid network settings (for # example, if an instance attempts to perform IP forwarding but is not enabled # for IP forwarding). # Corresponds to the JSON property `key` # @return [String] attr_accessor :key # [Output Only] A warning data value corresponding to the key. # 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 end end # class CommitmentsScopedList include Google::Apis::Core::Hashable # [Output Only] A list of commitments contained in this scope. # Corresponds to the JSON property `commitments` # @return [Array] attr_accessor :commitments # [Output Only] Informational warning which replaces the list of commitments # when the list is empty. # Corresponds to the JSON property `warning` # @return [Google::Apis::ComputeAlpha::CommitmentsScopedList::Warning] attr_accessor :warning def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @commitments = args[:commitments] if args.key?(:commitments) @warning = args[:warning] if args.key?(:warning) end # [Output Only] Informational warning which replaces the list of commitments # when the list is empty. class Warning include Google::Apis::Core::Hashable # [Output Only] A warning code, if applicable. For example, Compute Engine # returns NO_RESULTS_ON_PAGE if there are no results in the response. # Corresponds to the JSON property `code` # @return [String] attr_accessor :code # [Output Only] Metadata about this warning in key: value format. For example: " # data": [ ` "key": "scope", "value": "zones/us-east1-d" ` # Corresponds to the JSON property `data` # @return [Array] attr_accessor :data # [Output Only] A human-readable description of the warning code. # Corresponds to the JSON property `message` # @return [String] attr_accessor :message def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @code = args[:code] if args.key?(:code) @data = args[:data] if args.key?(:data) @message = args[:message] if args.key?(:message) end # class Datum include Google::Apis::Core::Hashable # [Output Only] A key that provides more detail on the warning being returned. # For example, for warnings where there are no results in a list request for a # particular zone, this key might be scope and the key value might be the zone # name. Other examples might be a key indicating a deprecated resource and a # suggested replacement, or a warning about invalid network settings (for # example, if an instance attempts to perform IP forwarding but is not enabled # for IP forwarding). # Corresponds to the JSON property `key` # @return [String] attr_accessor :key # [Output Only] A warning data value corresponding to the key. # 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 end end # This is deprecated and has no effect. Do not use. class Condition include Google::Apis::Core::Hashable # This is deprecated and has no effect. Do not use. # Corresponds to the JSON property `iam` # @return [String] attr_accessor :iam # This is deprecated and has no effect. Do not use. # Corresponds to the JSON property `op` # @return [String] attr_accessor :op # This is deprecated and has no effect. Do not use. # Corresponds to the JSON property `svc` # @return [String] attr_accessor :svc # This is deprecated and has no effect. Do not use. # Corresponds to the JSON property `sys` # @return [String] attr_accessor :sys # This is deprecated and has no effect. Do not use. # Corresponds to the JSON property `values` # @return [Array] attr_accessor :values def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @iam = args[:iam] if args.key?(:iam) @op = args[:op] if args.key?(:op) @svc = args[:svc] if args.key?(:svc) @sys = args[:sys] if args.key?(:sys) @values = args[:values] if args.key?(:values) end end # A set of Confidential Instance options. class ConfidentialInstanceConfig include Google::Apis::Core::Hashable # Defines whether the instance should have confidential compute enabled. # Corresponds to the JSON property `enableConfidentialCompute` # @return [Boolean] attr_accessor :enable_confidential_compute alias_method :enable_confidential_compute?, :enable_confidential_compute def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @enable_confidential_compute = args[:enable_confidential_compute] if args.key?(:enable_confidential_compute) end end # Message containing connection draining configuration. class ConnectionDraining include Google::Apis::Core::Hashable # Configures a duration timeout for existing requests on a removed backend # instance. For supported load balancers and protocols, as described in Enabling # connection draining. # Corresponds to the JSON property `drainingTimeoutSec` # @return [Fixnum] attr_accessor :draining_timeout_sec def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @draining_timeout_sec = args[:draining_timeout_sec] if args.key?(:draining_timeout_sec) end end # This message defines settings for a consistent hash style load balancer. class ConsistentHashLoadBalancerSettings include Google::Apis::Core::Hashable # The information about the HTTP Cookie on which the hash function is based for # load balancing policies that use a consistent hash. # Corresponds to the JSON property `httpCookie` # @return [Google::Apis::ComputeAlpha::ConsistentHashLoadBalancerSettingsHttpCookie] attr_accessor :http_cookie # The hash based on the value of the specified header field. This field is # applicable if the sessionAffinity is set to HEADER_FIELD. # Corresponds to the JSON property `httpHeaderName` # @return [String] attr_accessor :http_header_name # The minimum number of virtual nodes to use for the hash ring. Defaults to 1024. # Larger ring sizes result in more granular load distributions. If the number # of hosts in the load balancing pool is larger than the ring size, each host # will be assigned a single virtual node. # Corresponds to the JSON property `minimumRingSize` # @return [Fixnum] attr_accessor :minimum_ring_size def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @http_cookie = args[:http_cookie] if args.key?(:http_cookie) @http_header_name = args[:http_header_name] if args.key?(:http_header_name) @minimum_ring_size = args[:minimum_ring_size] if args.key?(:minimum_ring_size) end end # The information about the HTTP Cookie on which the hash function is based for # load balancing policies that use a consistent hash. class ConsistentHashLoadBalancerSettingsHttpCookie include Google::Apis::Core::Hashable # Name of the cookie. # Corresponds to the JSON property `name` # @return [String] attr_accessor :name # Path to set for the cookie. # Corresponds to the JSON property `path` # @return [String] attr_accessor :path # A Duration represents a fixed-length span of time represented as a count of # seconds and fractions of seconds at nanosecond resolution. It is independent # of any calendar and concepts like "day" or "month". Range is approximately 10, # 000 years. # Corresponds to the JSON property `ttl` # @return [Google::Apis::ComputeAlpha::Duration] attr_accessor :ttl def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @name = args[:name] if args.key?(:name) @path = args[:path] if args.key?(:path) @ttl = args[:ttl] if args.key?(:ttl) end end # The specification for allowing client-side cross-origin requests. For more # information about the W3C recommendation for cross-origin resource sharing ( # CORS), see Fetch API Living Standard. class CorsPolicy include Google::Apis::Core::Hashable # In response to a preflight request, setting this to true indicates that the # actual request can include user credentials. This field translates to the # Access-Control-Allow-Credentials header. Default is false. # Corresponds to the JSON property `allowCredentials` # @return [Boolean] attr_accessor :allow_credentials alias_method :allow_credentials?, :allow_credentials # Specifies the content for the Access-Control-Allow-Headers header. # Corresponds to the JSON property `allowHeaders` # @return [Array] attr_accessor :allow_headers # Specifies the content for the Access-Control-Allow-Methods header. # Corresponds to the JSON property `allowMethods` # @return [Array] attr_accessor :allow_methods # Specifies a regular expression that matches allowed origins. For more # information about the regular expression syntax, see Syntax. An origin is # allowed if it matches either an item in allowOrigins or an item in # allowOriginRegexes. # Corresponds to the JSON property `allowOriginRegexes` # @return [Array] attr_accessor :allow_origin_regexes # Specifies the list of origins that is allowed to do CORS requests. An origin # is allowed if it matches either an item in allowOrigins or an item in # allowOriginRegexes. # Corresponds to the JSON property `allowOrigins` # @return [Array] attr_accessor :allow_origins # If true, the setting specifies the CORS policy is disabled. The default value # of false, which indicates that the CORS policy is in effect. # Corresponds to the JSON property `disabled` # @return [Boolean] attr_accessor :disabled alias_method :disabled?, :disabled # Specifies the content for the Access-Control-Expose-Headers header. # Corresponds to the JSON property `exposeHeaders` # @return [Array] attr_accessor :expose_headers # Specifies how long results of a preflight request can be cached in seconds. # This field translates to the Access-Control-Max-Age header. # Corresponds to the JSON property `maxAge` # @return [Fixnum] attr_accessor :max_age def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @allow_credentials = args[:allow_credentials] if args.key?(:allow_credentials) @allow_headers = args[:allow_headers] if args.key?(:allow_headers) @allow_methods = args[:allow_methods] if args.key?(:allow_methods) @allow_origin_regexes = args[:allow_origin_regexes] if args.key?(:allow_origin_regexes) @allow_origins = args[:allow_origins] if args.key?(:allow_origins) @disabled = args[:disabled] if args.key?(:disabled) @expose_headers = args[:expose_headers] if args.key?(:expose_headers) @max_age = args[:max_age] if args.key?(:max_age) end end # class CustomerEncryptionKey include Google::Apis::Core::Hashable # The name of the encryption key that is stored in Google Cloud KMS. For example: # "kmsKeyName": "projects/kms_project_id/locations/region/keyRings/ key_region/ # cryptoKeys/key # Corresponds to the JSON property `kmsKeyName` # @return [String] attr_accessor :kms_key_name # The service account being used for the encryption request for the given KMS # key. If absent, the Compute Engine default service account is used. For # example: "kmsKeyServiceAccount": "name@project_id.iam.gserviceaccount.com/ # Corresponds to the JSON property `kmsKeyServiceAccount` # @return [String] attr_accessor :kms_key_service_account # Specifies a 256-bit customer-supplied encryption key, encoded in RFC 4648 # base64 to either encrypt or decrypt this resource. You can provide either the # rawKey or the rsaEncryptedKey. For example: "rawKey": " # SGVsbG8gZnJvbSBHb29nbGUgQ2xvdWQgUGxhdGZvcm0=" # Corresponds to the JSON property `rawKey` # @return [String] attr_accessor :raw_key # Specifies an RFC 4648 base64 encoded, RSA-wrapped 2048-bit customer-supplied # encryption key to either encrypt or decrypt this resource. You can provide # either the rawKey or the rsaEncryptedKey. For example: "rsaEncryptedKey": " # ieCx/NcW06PcT7Ep1X6LUTc/hLvUDYyzSZPPVCVPTVEohpeHASqC8uw5TzyO9U+Fka9JFH # z0mBibXUInrC/jEk014kCK/NPjYgEMOyssZ4ZINPKxlUh2zn1bV+MCaTICrdmuSBTWlUUiFoD # D6PYznLwh8ZNdaheCeZ8ewEXgFQ8V+sDroLaN3Xs3MDTXQEMMoNUXMCZEIpg9Vtp9x2oe==" The # key must meet the following requirements before you can provide it to Compute # Engine: 1. The key is wrapped using a RSA public key certificate provided by # Google. 2. After being wrapped, the key must be encoded in RFC 4648 base64 # encoding. Gets the RSA public key certificate provided by Google at: https:// # cloud-certs.storage.googleapis.com/google-cloud-csek-ingress.pem # Corresponds to the JSON property `rsaEncryptedKey` # @return [String] attr_accessor :rsa_encrypted_key # [Output only] The RFC 4648 base64 encoded SHA-256 hash of the customer- # supplied encryption key that protects this resource. # Corresponds to the JSON property `sha256` # @return [String] attr_accessor :sha256 def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @kms_key_name = args[:kms_key_name] if args.key?(:kms_key_name) @kms_key_service_account = args[:kms_key_service_account] if args.key?(:kms_key_service_account) @raw_key = args[:raw_key] if args.key?(:raw_key) @rsa_encrypted_key = args[:rsa_encrypted_key] if args.key?(:rsa_encrypted_key) @sha256 = args[:sha256] if args.key?(:sha256) end end # class CustomerEncryptionKeyProtectedDisk include Google::Apis::Core::Hashable # Decrypts data associated with the disk with a customer-supplied encryption key. # Corresponds to the JSON property `diskEncryptionKey` # @return [Google::Apis::ComputeAlpha::CustomerEncryptionKey] attr_accessor :disk_encryption_key # Specifies a valid partial or full URL to an existing Persistent Disk resource. # This field is only applicable for persistent disks. For example: "source": "/ # compute/v1/projects/project_id/zones/zone/disks/ disk_name # 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) @disk_encryption_key = args[:disk_encryption_key] if args.key?(:disk_encryption_key) @source = args[:source] if args.key?(:source) end end # Deprecation status for a public resource. class DeprecationStatus include Google::Apis::Core::Hashable # An optional RFC3339 timestamp on or after which the state of this resource is # intended to change to DELETED. This is only informational and the status will # not change unless the client explicitly changes it. # Corresponds to the JSON property `deleted` # @return [String] attr_accessor :deleted # An optional RFC3339 timestamp on or after which the state of this resource is # intended to change to DEPRECATED. This is only informational and the status # will not change unless the client explicitly changes it. # Corresponds to the JSON property `deprecated` # @return [String] attr_accessor :deprecated # An optional RFC3339 timestamp on or after which the state of this resource is # intended to change to OBSOLETE. This is only informational and the status will # not change unless the client explicitly changes it. # Corresponds to the JSON property `obsolete` # @return [String] attr_accessor :obsolete # The URL of the suggested replacement for a deprecated resource. The suggested # replacement resource must be the same kind of resource as the deprecated # resource. # Corresponds to the JSON property `replacement` # @return [String] attr_accessor :replacement # The deprecation state of this resource. This can be ACTIVE, DEPRECATED, # OBSOLETE, or DELETED. Operations which communicate the end of life date for an # image, can use ACTIVE. Operations which create a new resource using a # DEPRECATED resource will return successfully, but with a warning indicating # the deprecated resource and recommending its replacement. Operations which use # OBSOLETE or DELETED resources will be rejected and result in an error. # Corresponds to the JSON property `state` # @return [String] attr_accessor :state # A rollout policy configuration. # Corresponds to the JSON property `stateOverride` # @return [Google::Apis::ComputeAlpha::RolloutPolicy] attr_accessor :state_override def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @deleted = args[:deleted] if args.key?(:deleted) @deprecated = args[:deprecated] if args.key?(:deprecated) @obsolete = args[:obsolete] if args.key?(:obsolete) @replacement = args[:replacement] if args.key?(:replacement) @state = args[:state] if args.key?(:state) @state_override = args[:state_override] if args.key?(:state_override) end end # Represents a Persistent Disk resource. Google Compute Engine has two Disk # resources: * [Zonal](/compute/docs/reference/rest/alpha/disks) * [Regional](/ # compute/docs/reference/rest/alpha/regionDisks) Persistent disks are required # for running your VM instances. Create both boot and non-boot (data) persistent # disks. For more information, read Persistent Disks. For more storage options, # read Storage options. The disks resource represents a zonal persistent disk. # For more information, read Zonal persistent disks. The regionDisks resource # represents a regional persistent disk. For more information, read Regional # resources. class Disk include Google::Apis::Core::Hashable # The architecture of the disk. Valid values are ARM64 or X86_64. # Corresponds to the JSON property `architecture` # @return [String] attr_accessor :architecture # Disk asynchronously replicated into this disk. # Corresponds to the JSON property `asyncPrimaryDisk` # @return [Google::Apis::ComputeAlpha::DiskAsyncReplication] attr_accessor :async_primary_disk # [Output Only] A list of disks this disk is asynchronously replicated to. # Corresponds to the JSON property `asyncSecondaryDisks` # @return [Hash] attr_accessor :async_secondary_disks # [Output Only] Creation timestamp in RFC3339 text format. # Corresponds to the JSON property `creationTimestamp` # @return [String] attr_accessor :creation_timestamp # An optional description of this resource. Provide this property when you # create the resource. # Corresponds to the JSON property `description` # @return [String] attr_accessor :description # Encrypts the disk using a customer-supplied encryption key or a customer- # managed encryption key. Encryption keys do not protect access to metadata of # the disk. After you encrypt a disk with a customer-supplied key, you must # provide the same key if you use the disk later. For example, to create a disk # snapshot, to create a disk image, to create a machine image, or to attach the # disk to a virtual machine. After you encrypt a disk with a customer-managed # key, the diskEncryptionKey.kmsKeyName is set to a key *version* name once the # disk is created. The disk is encrypted with this version of the key. In the # response, diskEncryptionKey.kmsKeyName appears in the following format: " # diskEncryptionKey.kmsKeyName": "projects/kms_project_id/locations/region/ # keyRings/ key_region/cryptoKeys/key /cryptoKeysVersions/version If you do not # provide an encryption key when creating the disk, then the disk is encrypted # using an automatically generated key and you don't need to provide a key to # use the disk later. # Corresponds to the JSON property `diskEncryptionKey` # @return [Google::Apis::ComputeAlpha::CustomerEncryptionKey] attr_accessor :disk_encryption_key # Specifies whether the disk restored from a source snapshot should erase # Windows specific VSS signature. # Corresponds to the JSON property `eraseWindowsVssSignature` # @return [Boolean] attr_accessor :erase_windows_vss_signature alias_method :erase_windows_vss_signature?, :erase_windows_vss_signature # A list of features to enable on the guest operating system. Applicable only # for bootable images. Read Enabling guest operating system features to see a # list of available options. # Corresponds to the JSON property `guestOsFeatures` # @return [Array] attr_accessor :guest_os_features # [Output Only] The unique identifier for the resource. This identifier is # defined by the server. # Corresponds to the JSON property `id` # @return [Fixnum] attr_accessor :id # [Deprecated] Specifies the disk interface to use for attaching this disk, # which is either SCSI or NVME. The default is SCSI. # Corresponds to the JSON property `interface` # @return [String] attr_accessor :interface # [Output Only] Type of the resource. Always compute#disk for disks. # Corresponds to the JSON property `kind` # @return [String] attr_accessor :kind # A fingerprint for the labels being applied to this disk, which is essentially # a hash of the labels set used for optimistic locking. The fingerprint is # initially generated by Compute Engine and changes after every request to # modify or update labels. You must always provide an up-to-date fingerprint # hash in order to update or change labels, otherwise the request will fail with # error 412 conditionNotMet. To see the latest fingerprint, make a get() request # to retrieve a disk. # Corresponds to the JSON property `labelFingerprint` # NOTE: Values are automatically base64 encoded/decoded in the client library. # @return [String] attr_accessor :label_fingerprint # Labels to apply to this disk. These can be later modified by the setLabels # method. # Corresponds to the JSON property `labels` # @return [Hash] attr_accessor :labels # [Output Only] Last attach timestamp in RFC3339 text format. # Corresponds to the JSON property `lastAttachTimestamp` # @return [String] attr_accessor :last_attach_timestamp # [Output Only] Last detach timestamp in RFC3339 text format. # Corresponds to the JSON property `lastDetachTimestamp` # @return [String] attr_accessor :last_detach_timestamp # Integer license codes indicating which licenses are attached to this disk. # Corresponds to the JSON property `licenseCodes` # @return [Array] attr_accessor :license_codes # A list of publicly visible licenses. Reserved for Google's use. # Corresponds to the JSON property `licenses` # @return [Array] attr_accessor :licenses # An opaque location hint used to place the disk close to other resources. This # field is for use by internal tools that use the public API. # Corresponds to the JSON property `locationHint` # @return [String] attr_accessor :location_hint # [Output Only] The field indicates if the disk is created from a locked source # image. Attachment of a disk created from a locked source image will cause the # following operations to become irreversibly prohibited: - R/W or R/O disk # attachment to any other instance - Disk detachment. And the disk can only be # deleted when the instance is deleted - Creation of images or snapshots - Disk # cloning Furthermore, the instance with at least one disk with locked flag set # to true will be prohibited from performing the operations below: - Further # attachment of secondary disks. - Detachment of any disks - Create machine # images - Create instance template - Delete the instance with --keep-disk # parameter set to true for locked disks - Attach a locked disk with --auto- # delete parameter set to false # Corresponds to the JSON property `locked` # @return [Boolean] attr_accessor :locked alias_method :locked?, :locked # Indicates whether or not the disk can be read/write attached to more than one # instance. # Corresponds to the JSON property `multiWriter` # @return [Boolean] attr_accessor :multi_writer alias_method :multi_writer?, :multi_writer # Name of the resource. Provided by the client when the resource is created. The # name must be 1-63 characters long, and comply with RFC1035. Specifically, the # name must be 1-63 characters long and match the regular expression `[a-z]([-a- # z0-9]*[a-z0-9])?` which means the first character must be a lowercase letter, # and all following characters must be a dash, lowercase letter, or digit, # except the last character, which cannot be a dash. # Corresponds to the JSON property `name` # @return [String] attr_accessor :name # Internal use only. # Corresponds to the JSON property `options` # @return [String] attr_accessor :options # Physical block size of the persistent disk, in bytes. If not present in a # request, a default value is used. The currently supported size is 4096, other # sizes may be added in the future. If an unsupported value is requested, the # error message will list the supported values for the caller's project. # Corresponds to the JSON property `physicalBlockSizeBytes` # @return [Fixnum] attr_accessor :physical_block_size_bytes # Indicates how many IOPS to provision for the disk. This sets the number of I/O # operations per second that the disk can handle. Values must be between 10,000 # and 120,000. For more details, see the Extreme persistent disk documentation. # Corresponds to the JSON property `provisionedIops` # @return [Fixnum] attr_accessor :provisioned_iops # [Output Only] URL of the region where the disk resides. Only applicable for # regional resources. You must specify this field as part of the HTTP request # URL. It is not settable as a field in the request body. # Corresponds to the JSON property `region` # @return [String] attr_accessor :region # URLs of the zones where the disk should be replicated to. Only applicable for # regional resources. # Corresponds to the JSON property `replicaZones` # @return [Array] attr_accessor :replica_zones # Resource policies applied to this disk for automatic snapshot creations. # Corresponds to the JSON property `resourcePolicies` # @return [Array] attr_accessor :resource_policies # [Output Only] Status information for the disk resource. # Corresponds to the JSON property `resourceStatus` # @return [Google::Apis::ComputeAlpha::DiskResourceStatus] attr_accessor :resource_status # [Output Only] Reserved for future use. # Corresponds to the JSON property `satisfiesPzs` # @return [Boolean] attr_accessor :satisfies_pzs alias_method :satisfies_pzs?, :satisfies_pzs # [Output Only] Server-defined fully-qualified URL for this resource. # Corresponds to the JSON property `selfLink` # @return [String] attr_accessor :self_link # [Output Only] Server-defined URL for this resource's resource id. # Corresponds to the JSON property `selfLinkWithId` # @return [String] attr_accessor :self_link_with_id # Size, in GB, of the persistent disk. You can specify this field when creating # a persistent disk using the sourceImage, sourceSnapshot, or sourceDisk # parameter, or specify it alone to create an empty persistent disk. If you # specify this field along with a source, the value of sizeGb must not be less # than the size of the source. Acceptable values are 1 to 65536, inclusive. # Corresponds to the JSON property `sizeGb` # @return [Fixnum] attr_accessor :size_gb # [Output Only] URL of the DiskConsistencyGroupPolicy for a secondary disk that # was created using a consistency group. # Corresponds to the JSON property `sourceConsistencyGroupPolicy` # @return [String] attr_accessor :source_consistency_group_policy # [Output Only] ID of the DiskConsistencyGroupPolicy for a secondary disk that # was created using a consistency group. # Corresponds to the JSON property `sourceConsistencyGroupPolicyId` # @return [String] attr_accessor :source_consistency_group_policy_id # The source disk used to create this disk. You can provide this as a partial or # full URL to the resource. For example, the following are valid values: - https: # //www.googleapis.com/compute/v1/projects/project/zones/zone /disks/disk - # https://www.googleapis.com/compute/v1/projects/project/regions/region /disks/ # disk - projects/project/zones/zone/disks/disk - projects/project/regions/ # region/disks/disk - zones/zone/disks/disk - regions/region/disks/disk # Corresponds to the JSON property `sourceDisk` # @return [String] attr_accessor :source_disk # [Output Only] The unique ID of the disk used to create this disk. This value # identifies the exact disk that was used to create this persistent disk. For # example, if you created the persistent disk from a disk that was later deleted # and recreated under the same name, the source disk ID would identify the exact # version of the disk that was used. # Corresponds to the JSON property `sourceDiskId` # @return [String] attr_accessor :source_disk_id # The source image used to create this disk. If the source image is deleted, # this field will not be set. To create a disk with one of the public operating # system images, specify the image by its family name. For example, specify # family/debian-9 to use the latest Debian 9 image: projects/debian-cloud/global/ # images/family/debian-9 Alternatively, use a specific version of a public # operating system image: projects/debian-cloud/global/images/debian-9-stretch- # vYYYYMMDD To create a disk with a custom image that you created, specify the # image name in the following format: global/images/my-custom-image You can also # specify a custom image by its image family, which returns the latest version # of the image in that family. Replace the image name with family/family-name: # global/images/family/my-image-family # Corresponds to the JSON property `sourceImage` # @return [String] attr_accessor :source_image # The customer-supplied encryption key of the source image. Required if the # source image is protected by a customer-supplied encryption key. # Corresponds to the JSON property `sourceImageEncryptionKey` # @return [Google::Apis::ComputeAlpha::CustomerEncryptionKey] attr_accessor :source_image_encryption_key # [Output Only] The ID value of the image used to create this disk. This value # identifies the exact image that was used to create this persistent disk. For # example, if you created the persistent disk from an image that was later # deleted and recreated under the same name, the source image ID would identify # the exact version of the image that was used. # Corresponds to the JSON property `sourceImageId` # @return [String] attr_accessor :source_image_id # The source instant snapshot used to create this disk. You can provide this as # a partial or full URL to the resource. For example, the following are valid # values: - https://www.googleapis.com/compute/v1/projects/project/zones/zone / # instantSnapshots/instantSnapshot - projects/project/zones/zone/ # instantSnapshots/instantSnapshot - zones/zone/instantSnapshots/instantSnapshot # Corresponds to the JSON property `sourceInstantSnapshot` # @return [String] attr_accessor :source_instant_snapshot # [Output Only] The unique ID of the instant snapshot used to create this disk. # This value identifies the exact instant snapshot that was used to create this # persistent disk. For example, if you created the persistent disk from an # instant snapshot that was later deleted and recreated under the same name, the # source instant snapshot ID would identify the exact version of the instant # snapshot that was used. # Corresponds to the JSON property `sourceInstantSnapshotId` # @return [String] attr_accessor :source_instant_snapshot_id # The source snapshot used to create this disk. You can provide this as a # partial or full URL to the resource. For example, the following are valid # values: - https://www.googleapis.com/compute/v1/projects/project /global/ # snapshots/snapshot - projects/project/global/snapshots/snapshot - global/ # snapshots/snapshot # Corresponds to the JSON property `sourceSnapshot` # @return [String] attr_accessor :source_snapshot # The customer-supplied encryption key of the source snapshot. Required if the # source snapshot is protected by a customer-supplied encryption key. # Corresponds to the JSON property `sourceSnapshotEncryptionKey` # @return [Google::Apis::ComputeAlpha::CustomerEncryptionKey] attr_accessor :source_snapshot_encryption_key # [Output Only] The unique ID of the snapshot used to create this disk. This # value identifies the exact snapshot that was used to create this persistent # disk. For example, if you created the persistent disk from a snapshot that was # later deleted and recreated under the same name, the source snapshot ID would # identify the exact version of the snapshot that was used. # Corresponds to the JSON property `sourceSnapshotId` # @return [String] attr_accessor :source_snapshot_id # The full Google Cloud Storage URI where the disk image is stored. This file # must be a gzip-compressed tarball whose name ends in .tar.gz or virtual # machine disk whose name ends in vmdk. Valid URIs may start with gs:// or https: # //storage.googleapis.com/. This flag is not optimized for creating multiple # disks from a source storage object. To create many disks from a source storage # object, use gcloud compute images import instead. # Corresponds to the JSON property `sourceStorageObject` # @return [String] attr_accessor :source_storage_object # [Output Only] The status of disk creation. - CREATING: Disk is provisioning. - # RESTORING: Source data is being copied into the disk. - FAILED: Disk creation # failed. - READY: Disk is ready for use. - DELETING: Disk is deleting. # Corresponds to the JSON property `status` # @return [String] attr_accessor :status # [Deprecated] Storage type of the persistent disk. # Corresponds to the JSON property `storageType` # @return [String] attr_accessor :storage_type # URL of the disk type resource describing which disk type to use to create the # disk. Provide this when creating the disk. For example: projects/project / # zones/zone/diskTypes/pd-ssd . See Persistent disk types. # Corresponds to the JSON property `type` # @return [String] attr_accessor :type # A list of publicly visible user-licenses. Unlike regular licenses, user # provided licenses can be modified after the disk is created. This includes a # list of URLs to the license resource. For example, to provide a debian license: # https://www.googleapis.com/compute/v1/projects/debian-cloud/global/licenses/ # debian-9-stretch # Corresponds to the JSON property `userLicenses` # @return [Array] attr_accessor :user_licenses # [Output Only] Links to the users of the disk (attached instances) in form: # projects/project/zones/zone/instances/instance # Corresponds to the JSON property `users` # @return [Array] attr_accessor :users # [Output Only] URL of the zone where the disk resides. You must specify this # field as part of the HTTP request URL. It is not settable as a field in the # request body. # 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) @architecture = args[:architecture] if args.key?(:architecture) @async_primary_disk = args[:async_primary_disk] if args.key?(:async_primary_disk) @async_secondary_disks = args[:async_secondary_disks] if args.key?(:async_secondary_disks) @creation_timestamp = args[:creation_timestamp] if args.key?(:creation_timestamp) @description = args[:description] if args.key?(:description) @disk_encryption_key = args[:disk_encryption_key] if args.key?(:disk_encryption_key) @erase_windows_vss_signature = args[:erase_windows_vss_signature] if args.key?(:erase_windows_vss_signature) @guest_os_features = args[:guest_os_features] if args.key?(:guest_os_features) @id = args[:id] if args.key?(:id) @interface = args[:interface] if args.key?(:interface) @kind = args[:kind] if args.key?(:kind) @label_fingerprint = args[:label_fingerprint] if args.key?(:label_fingerprint) @labels = args[:labels] if args.key?(:labels) @last_attach_timestamp = args[:last_attach_timestamp] if args.key?(:last_attach_timestamp) @last_detach_timestamp = args[:last_detach_timestamp] if args.key?(:last_detach_timestamp) @license_codes = args[:license_codes] if args.key?(:license_codes) @licenses = args[:licenses] if args.key?(:licenses) @location_hint = args[:location_hint] if args.key?(:location_hint) @locked = args[:locked] if args.key?(:locked) @multi_writer = args[:multi_writer] if args.key?(:multi_writer) @name = args[:name] if args.key?(:name) @options = args[:options] if args.key?(:options) @physical_block_size_bytes = args[:physical_block_size_bytes] if args.key?(:physical_block_size_bytes) @provisioned_iops = args[:provisioned_iops] if args.key?(:provisioned_iops) @region = args[:region] if args.key?(:region) @replica_zones = args[:replica_zones] if args.key?(:replica_zones) @resource_policies = args[:resource_policies] if args.key?(:resource_policies) @resource_status = args[:resource_status] if args.key?(:resource_status) @satisfies_pzs = args[:satisfies_pzs] if args.key?(:satisfies_pzs) @self_link = args[:self_link] if args.key?(:self_link) @self_link_with_id = args[:self_link_with_id] if args.key?(:self_link_with_id) @size_gb = args[:size_gb] if args.key?(:size_gb) @source_consistency_group_policy = args[:source_consistency_group_policy] if args.key?(:source_consistency_group_policy) @source_consistency_group_policy_id = args[:source_consistency_group_policy_id] if args.key?(:source_consistency_group_policy_id) @source_disk = args[:source_disk] if args.key?(:source_disk) @source_disk_id = args[:source_disk_id] if args.key?(:source_disk_id) @source_image = args[:source_image] if args.key?(:source_image) @source_image_encryption_key = args[:source_image_encryption_key] if args.key?(:source_image_encryption_key) @source_image_id = args[:source_image_id] if args.key?(:source_image_id) @source_instant_snapshot = args[:source_instant_snapshot] if args.key?(:source_instant_snapshot) @source_instant_snapshot_id = args[:source_instant_snapshot_id] if args.key?(:source_instant_snapshot_id) @source_snapshot = args[:source_snapshot] if args.key?(:source_snapshot) @source_snapshot_encryption_key = args[:source_snapshot_encryption_key] if args.key?(:source_snapshot_encryption_key) @source_snapshot_id = args[:source_snapshot_id] if args.key?(:source_snapshot_id) @source_storage_object = args[:source_storage_object] if args.key?(:source_storage_object) @status = args[:status] if args.key?(:status) @storage_type = args[:storage_type] if args.key?(:storage_type) @type = args[:type] if args.key?(:type) @user_licenses = args[:user_licenses] if args.key?(:user_licenses) @users = args[:users] if args.key?(:users) @zone = args[:zone] if args.key?(:zone) end end # class DiskAggregatedList include Google::Apis::Core::Hashable # [Output Only] Unique identifier for the resource; defined by the server. # Corresponds to the JSON property `id` # @return [String] attr_accessor :id # A list of DisksScopedList resources. # Corresponds to the JSON property `items` # @return [Hash] attr_accessor :items # [Output Only] Type of resource. Always compute#diskAggregatedList for # aggregated lists of persistent disks. # Corresponds to the JSON property `kind` # @return [String] attr_accessor :kind # [Output Only] This token allows you to get the next page of results for list # requests. If the number of results is larger than maxResults, use the # nextPageToken as a value for the query parameter pageToken in the next list # request. Subsequent list requests will have their own nextPageToken to # continue paging through the results. # Corresponds to the JSON property `nextPageToken` # @return [String] attr_accessor :next_page_token # [Output Only] Server-defined URL for this resource. # Corresponds to the JSON property `selfLink` # @return [String] attr_accessor :self_link # [Output Only] Unreachable resources. # Corresponds to the JSON property `unreachables` # @return [Array] attr_accessor :unreachables # [Output Only] Informational warning message. # Corresponds to the JSON property `warning` # @return [Google::Apis::ComputeAlpha::DiskAggregatedList::Warning] attr_accessor :warning def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @id = args[:id] if args.key?(:id) @items = args[:items] if args.key?(:items) @kind = args[:kind] if args.key?(:kind) @next_page_token = args[:next_page_token] if args.key?(:next_page_token) @self_link = args[:self_link] if args.key?(:self_link) @unreachables = args[:unreachables] if args.key?(:unreachables) @warning = args[:warning] if args.key?(:warning) end # [Output Only] Informational warning message. class Warning include Google::Apis::Core::Hashable # [Output Only] A warning code, if applicable. For example, Compute Engine # returns NO_RESULTS_ON_PAGE if there are no results in the response. # Corresponds to the JSON property `code` # @return [String] attr_accessor :code # [Output Only] Metadata about this warning in key: value format. For example: " # data": [ ` "key": "scope", "value": "zones/us-east1-d" ` # Corresponds to the JSON property `data` # @return [Array] attr_accessor :data # [Output Only] A human-readable description of the warning code. # Corresponds to the JSON property `message` # @return [String] attr_accessor :message def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @code = args[:code] if args.key?(:code) @data = args[:data] if args.key?(:data) @message = args[:message] if args.key?(:message) end # class Datum include Google::Apis::Core::Hashable # [Output Only] A key that provides more detail on the warning being returned. # For example, for warnings where there are no results in a list request for a # particular zone, this key might be scope and the key value might be the zone # name. Other examples might be a key indicating a deprecated resource and a # suggested replacement, or a warning about invalid network settings (for # example, if an instance attempts to perform IP forwarding but is not enabled # for IP forwarding). # Corresponds to the JSON property `key` # @return [String] attr_accessor :key # [Output Only] A warning data value corresponding to the key. # 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 end end # class DiskAsyncReplication include Google::Apis::Core::Hashable # The other disk asynchronously replicated to or from the current disk. You can # provide this as a partial or full URL to the resource. For example, the # following are valid values: - https://www.googleapis.com/compute/v1/projects/ # project/zones/zone /disks/disk - projects/project/zones/zone/disks/disk - # zones/zone/disks/disk # Corresponds to the JSON property `disk` # @return [String] attr_accessor :disk # [Output Only] The unique ID of the other disk asynchronously replicated to or # from the current disk. This value identifies the exact disk that was used to # create this replication. For example, if you started replicating the # persistent disk from a disk that was later deleted and recreated under the # same name, the disk ID would identify the exact version of the disk that was # used. # Corresponds to the JSON property `diskId` # @return [String] attr_accessor :disk_id def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @disk = args[:disk] if args.key?(:disk) @disk_id = args[:disk_id] if args.key?(:disk_id) end end # class DiskAsyncReplicationList include Google::Apis::Core::Hashable # # Corresponds to the JSON property `asyncReplicationDisk` # @return [Google::Apis::ComputeAlpha::DiskAsyncReplication] attr_accessor :async_replication_disk def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @async_replication_disk = args[:async_replication_disk] if args.key?(:async_replication_disk) end end # A specification of the desired way to instantiate a disk in the instance # template when its created from a source instance. class DiskInstantiationConfig include Google::Apis::Core::Hashable # Specifies whether the disk will be auto-deleted when the instance is deleted ( # but not when the disk is detached from the instance). # Corresponds to the JSON property `autoDelete` # @return [Boolean] attr_accessor :auto_delete alias_method :auto_delete?, :auto_delete # The custom source image to be used to restore this disk when instantiating # this instance template. # Corresponds to the JSON property `customImage` # @return [String] attr_accessor :custom_image # Specifies the device name of the disk to which the configurations apply to. # Corresponds to the JSON property `deviceName` # @return [String] attr_accessor :device_name # Specifies whether to include the disk and what image to use. Possible values # are: - source-image: to use the same image that was used to create the source # instance's corresponding disk. Applicable to the boot disk and additional read- # write disks. - source-image-family: to use the same image family that was used # to create the source instance's corresponding disk. Applicable to the boot # disk and additional read-write disks. - custom-image: to use a user-provided # image url for disk creation. Applicable to the boot disk and additional read- # write disks. - attach-read-only: to attach a read-only disk. Applicable to # read-only disks. - do-not-include: to exclude a disk from the template. # Applicable to additional read-write disks, local SSDs, and read-only disks. # Corresponds to the JSON property `instantiateFrom` # @return [String] attr_accessor :instantiate_from def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @auto_delete = args[:auto_delete] if args.key?(:auto_delete) @custom_image = args[:custom_image] if args.key?(:custom_image) @device_name = args[:device_name] if args.key?(:device_name) @instantiate_from = args[:instantiate_from] if args.key?(:instantiate_from) end end # A list of Disk resources. class DiskList include Google::Apis::Core::Hashable # [Output Only] Unique identifier for the resource; defined by the server. # Corresponds to the JSON property `id` # @return [String] attr_accessor :id # A list of Disk resources. # Corresponds to the JSON property `items` # @return [Array] attr_accessor :items # [Output Only] Type of resource. Always compute#diskList for lists of disks. # Corresponds to the JSON property `kind` # @return [String] attr_accessor :kind # [Output Only] This token allows you to get the next page of results for list # requests. If the number of results is larger than maxResults, use the # nextPageToken as a value for the query parameter pageToken in the next list # request. Subsequent list requests will have their own nextPageToken to # continue paging through the results. # Corresponds to the JSON property `nextPageToken` # @return [String] attr_accessor :next_page_token # [Output Only] Server-defined URL for this resource. # Corresponds to the JSON property `selfLink` # @return [String] attr_accessor :self_link # [Output Only] Informational warning message. # Corresponds to the JSON property `warning` # @return [Google::Apis::ComputeAlpha::DiskList::Warning] attr_accessor :warning def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @id = args[:id] if args.key?(:id) @items = args[:items] if args.key?(:items) @kind = args[:kind] if args.key?(:kind) @next_page_token = args[:next_page_token] if args.key?(:next_page_token) @self_link = args[:self_link] if args.key?(:self_link) @warning = args[:warning] if args.key?(:warning) end # [Output Only] Informational warning message. class Warning include Google::Apis::Core::Hashable # [Output Only] A warning code, if applicable. For example, Compute Engine # returns NO_RESULTS_ON_PAGE if there are no results in the response. # Corresponds to the JSON property `code` # @return [String] attr_accessor :code # [Output Only] Metadata about this warning in key: value format. For example: " # data": [ ` "key": "scope", "value": "zones/us-east1-d" ` # Corresponds to the JSON property `data` # @return [Array] attr_accessor :data # [Output Only] A human-readable description of the warning code. # Corresponds to the JSON property `message` # @return [String] attr_accessor :message def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @code = args[:code] if args.key?(:code) @data = args[:data] if args.key?(:data) @message = args[:message] if args.key?(:message) end # class Datum include Google::Apis::Core::Hashable # [Output Only] A key that provides more detail on the warning being returned. # For example, for warnings where there are no results in a list request for a # particular zone, this key might be scope and the key value might be the zone # name. Other examples might be a key indicating a deprecated resource and a # suggested replacement, or a warning about invalid network settings (for # example, if an instance attempts to perform IP forwarding but is not enabled # for IP forwarding). # Corresponds to the JSON property `key` # @return [String] attr_accessor :key # [Output Only] A warning data value corresponding to the key. # 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 end end # class DiskMoveRequest include Google::Apis::Core::Hashable # The URL of the destination zone to move the disk. This can be a full or # partial URL. For example, the following are all valid URLs to a zone: - https:/ # /www.googleapis.com/compute/v1/projects/project/zones/zone - projects/project/ # zones/zone - zones/zone # Corresponds to the JSON property `destinationZone` # @return [String] attr_accessor :destination_zone # The URL of the target disk to move. This can be a full or partial URL. For # example, the following are all valid URLs to a disk: - https://www.googleapis. # com/compute/v1/projects/project/zones/zone /disks/disk - projects/project/ # zones/zone/disks/disk - zones/zone/disks/disk # Corresponds to the JSON property `targetDisk` # @return [String] attr_accessor :target_disk def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @destination_zone = args[:destination_zone] if args.key?(:destination_zone) @target_disk = args[:target_disk] if args.key?(:target_disk) end end # class DiskResourceStatus include Google::Apis::Core::Hashable # # Corresponds to the JSON property `asyncPrimaryDisk` # @return [Google::Apis::ComputeAlpha::DiskResourceStatusAsyncReplicationStatus] attr_accessor :async_primary_disk # Key: disk, value: AsyncReplicationStatus message # Corresponds to the JSON property `asyncSecondaryDisks` # @return [Hash] attr_accessor :async_secondary_disks def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @async_primary_disk = args[:async_primary_disk] if args.key?(:async_primary_disk) @async_secondary_disks = args[:async_secondary_disks] if args.key?(:async_secondary_disks) end end # class DiskResourceStatusAsyncReplicationStatus include Google::Apis::Core::Hashable # # Corresponds to the JSON property `state` # @return [String] attr_accessor :state def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @state = args[:state] if args.key?(:state) end end # Represents a Disk Type resource. Google Compute Engine has two Disk Type # resources: * [Regional](/compute/docs/reference/rest/alpha/regionDiskTypes) * [ # Zonal](/compute/docs/reference/rest/alpha/diskTypes) You can choose from a # variety of disk types based on your needs. For more information, read Storage # options. The diskTypes resource represents disk types for a zonal persistent # disk. For more information, read Zonal persistent disks. The regionDiskTypes # resource represents disk types for a regional persistent disk. For more # information, read Regional persistent disks. class DiskType include Google::Apis::Core::Hashable # [Output Only] Creation timestamp in RFC3339 text format. # Corresponds to the JSON property `creationTimestamp` # @return [String] attr_accessor :creation_timestamp # [Output Only] Server-defined default disk size in GB. # Corresponds to the JSON property `defaultDiskSizeGb` # @return [Fixnum] attr_accessor :default_disk_size_gb # Deprecation status for a public resource. # Corresponds to the JSON property `deprecated` # @return [Google::Apis::ComputeAlpha::DeprecationStatus] attr_accessor :deprecated # [Output Only] An optional description of this resource. # Corresponds to the JSON property `description` # @return [String] attr_accessor :description # [Output Only] The unique identifier for the resource. This identifier is # defined by the server. # Corresponds to the JSON property `id` # @return [Fixnum] attr_accessor :id # [Output Only] Type of the resource. Always compute#diskType for disk types. # Corresponds to the JSON property `kind` # @return [String] attr_accessor :kind # [Output Only] Name of the resource. # Corresponds to the JSON property `name` # @return [String] attr_accessor :name # [Output Only] URL of the region where the disk type resides. Only applicable # for regional resources. You must specify this field as part of the HTTP # request URL. It is not settable as a field in the request body. # Corresponds to the JSON property `region` # @return [String] attr_accessor :region # [Output Only] Server-defined URL for the resource. # Corresponds to the JSON property `selfLink` # @return [String] attr_accessor :self_link # [Output Only] Server-defined URL for this resource with the resource id. # Corresponds to the JSON property `selfLinkWithId` # @return [String] attr_accessor :self_link_with_id # [Output Only] An optional textual description of the valid disk size, such as " # 10GB-10TB". # Corresponds to the JSON property `validDiskSize` # @return [String] attr_accessor :valid_disk_size # [Output Only] URL of the zone where the disk type resides. You must specify # this field as part of the HTTP request URL. It is not settable as a field in # the request body. # 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) @creation_timestamp = args[:creation_timestamp] if args.key?(:creation_timestamp) @default_disk_size_gb = args[:default_disk_size_gb] if args.key?(:default_disk_size_gb) @deprecated = args[:deprecated] if args.key?(:deprecated) @description = args[:description] if args.key?(:description) @id = args[:id] if args.key?(:id) @kind = args[:kind] if args.key?(:kind) @name = args[:name] if args.key?(:name) @region = args[:region] if args.key?(:region) @self_link = args[:self_link] if args.key?(:self_link) @self_link_with_id = args[:self_link_with_id] if args.key?(:self_link_with_id) @valid_disk_size = args[:valid_disk_size] if args.key?(:valid_disk_size) @zone = args[:zone] if args.key?(:zone) end end # class DiskTypeAggregatedList include Google::Apis::Core::Hashable # [Output Only] Unique identifier for the resource; defined by the server. # Corresponds to the JSON property `id` # @return [String] attr_accessor :id # A list of DiskTypesScopedList resources. # Corresponds to the JSON property `items` # @return [Hash] attr_accessor :items # [Output Only] Type of resource. Always compute#diskTypeAggregatedList. # Corresponds to the JSON property `kind` # @return [String] attr_accessor :kind # [Output Only] This token allows you to get the next page of results for list # requests. If the number of results is larger than maxResults, use the # nextPageToken as a value for the query parameter pageToken in the next list # request. Subsequent list requests will have their own nextPageToken to # continue paging through the results. # Corresponds to the JSON property `nextPageToken` # @return [String] attr_accessor :next_page_token # [Output Only] Server-defined URL for this resource. # Corresponds to the JSON property `selfLink` # @return [String] attr_accessor :self_link # [Output Only] Unreachable resources. # Corresponds to the JSON property `unreachables` # @return [Array] attr_accessor :unreachables # [Output Only] Informational warning message. # Corresponds to the JSON property `warning` # @return [Google::Apis::ComputeAlpha::DiskTypeAggregatedList::Warning] attr_accessor :warning def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @id = args[:id] if args.key?(:id) @items = args[:items] if args.key?(:items) @kind = args[:kind] if args.key?(:kind) @next_page_token = args[:next_page_token] if args.key?(:next_page_token) @self_link = args[:self_link] if args.key?(:self_link) @unreachables = args[:unreachables] if args.key?(:unreachables) @warning = args[:warning] if args.key?(:warning) end # [Output Only] Informational warning message. class Warning include Google::Apis::Core::Hashable # [Output Only] A warning code, if applicable. For example, Compute Engine # returns NO_RESULTS_ON_PAGE if there are no results in the response. # Corresponds to the JSON property `code` # @return [String] attr_accessor :code # [Output Only] Metadata about this warning in key: value format. For example: " # data": [ ` "key": "scope", "value": "zones/us-east1-d" ` # Corresponds to the JSON property `data` # @return [Array] attr_accessor :data # [Output Only] A human-readable description of the warning code. # Corresponds to the JSON property `message` # @return [String] attr_accessor :message def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @code = args[:code] if args.key?(:code) @data = args[:data] if args.key?(:data) @message = args[:message] if args.key?(:message) end # class Datum include Google::Apis::Core::Hashable # [Output Only] A key that provides more detail on the warning being returned. # For example, for warnings where there are no results in a list request for a # particular zone, this key might be scope and the key value might be the zone # name. Other examples might be a key indicating a deprecated resource and a # suggested replacement, or a warning about invalid network settings (for # example, if an instance attempts to perform IP forwarding but is not enabled # for IP forwarding). # Corresponds to the JSON property `key` # @return [String] attr_accessor :key # [Output Only] A warning data value corresponding to the key. # 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 end end # Contains a list of disk types. class DiskTypeList include Google::Apis::Core::Hashable # [Output Only] Unique identifier for the resource; defined by the server. # Corresponds to the JSON property `id` # @return [String] attr_accessor :id # A list of DiskType resources. # Corresponds to the JSON property `items` # @return [Array] attr_accessor :items # [Output Only] Type of resource. Always compute#diskTypeList for disk types. # Corresponds to the JSON property `kind` # @return [String] attr_accessor :kind # [Output Only] This token allows you to get the next page of results for list # requests. If the number of results is larger than maxResults, use the # nextPageToken as a value for the query parameter pageToken in the next list # request. Subsequent list requests will have their own nextPageToken to # continue paging through the results. # Corresponds to the JSON property `nextPageToken` # @return [String] attr_accessor :next_page_token # [Output Only] Server-defined URL for this resource. # Corresponds to the JSON property `selfLink` # @return [String] attr_accessor :self_link # [Output Only] Informational warning message. # Corresponds to the JSON property `warning` # @return [Google::Apis::ComputeAlpha::DiskTypeList::Warning] attr_accessor :warning def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @id = args[:id] if args.key?(:id) @items = args[:items] if args.key?(:items) @kind = args[:kind] if args.key?(:kind) @next_page_token = args[:next_page_token] if args.key?(:next_page_token) @self_link = args[:self_link] if args.key?(:self_link) @warning = args[:warning] if args.key?(:warning) end # [Output Only] Informational warning message. class Warning include Google::Apis::Core::Hashable # [Output Only] A warning code, if applicable. For example, Compute Engine # returns NO_RESULTS_ON_PAGE if there are no results in the response. # Corresponds to the JSON property `code` # @return [String] attr_accessor :code # [Output Only] Metadata about this warning in key: value format. For example: " # data": [ ` "key": "scope", "value": "zones/us-east1-d" ` # Corresponds to the JSON property `data` # @return [Array] attr_accessor :data # [Output Only] A human-readable description of the warning code. # Corresponds to the JSON property `message` # @return [String] attr_accessor :message def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @code = args[:code] if args.key?(:code) @data = args[:data] if args.key?(:data) @message = args[:message] if args.key?(:message) end # class Datum include Google::Apis::Core::Hashable # [Output Only] A key that provides more detail on the warning being returned. # For example, for warnings where there are no results in a list request for a # particular zone, this key might be scope and the key value might be the zone # name. Other examples might be a key indicating a deprecated resource and a # suggested replacement, or a warning about invalid network settings (for # example, if an instance attempts to perform IP forwarding but is not enabled # for IP forwarding). # Corresponds to the JSON property `key` # @return [String] attr_accessor :key # [Output Only] A warning data value corresponding to the key. # 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 end end # class DiskTypesScopedList include Google::Apis::Core::Hashable # [Output Only] A list of disk types contained in this scope. # Corresponds to the JSON property `diskTypes` # @return [Array] attr_accessor :disk_types # [Output Only] Informational warning which replaces the list of disk types when # the list is empty. # Corresponds to the JSON property `warning` # @return [Google::Apis::ComputeAlpha::DiskTypesScopedList::Warning] attr_accessor :warning def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @disk_types = args[:disk_types] if args.key?(:disk_types) @warning = args[:warning] if args.key?(:warning) end # [Output Only] Informational warning which replaces the list of disk types when # the list is empty. class Warning include Google::Apis::Core::Hashable # [Output Only] A warning code, if applicable. For example, Compute Engine # returns NO_RESULTS_ON_PAGE if there are no results in the response. # Corresponds to the JSON property `code` # @return [String] attr_accessor :code # [Output Only] Metadata about this warning in key: value format. For example: " # data": [ ` "key": "scope", "value": "zones/us-east1-d" ` # Corresponds to the JSON property `data` # @return [Array] attr_accessor :data # [Output Only] A human-readable description of the warning code. # Corresponds to the JSON property `message` # @return [String] attr_accessor :message def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @code = args[:code] if args.key?(:code) @data = args[:data] if args.key?(:data) @message = args[:message] if args.key?(:message) end # class Datum include Google::Apis::Core::Hashable # [Output Only] A key that provides more detail on the warning being returned. # For example, for warnings where there are no results in a list request for a # particular zone, this key might be scope and the key value might be the zone # name. Other examples might be a key indicating a deprecated resource and a # suggested replacement, or a warning about invalid network settings (for # example, if an instance attempts to perform IP forwarding but is not enabled # for IP forwarding). # Corresponds to the JSON property `key` # @return [String] attr_accessor :key # [Output Only] A warning data value corresponding to the key. # 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 end end # class DisksAddResourcePoliciesRequest include Google::Apis::Core::Hashable # Full or relative path to the resource policy to be added to this disk. You can # only specify one resource policy. # Corresponds to the JSON property `resourcePolicies` # @return [Array] attr_accessor :resource_policies def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @resource_policies = args[:resource_policies] if args.key?(:resource_policies) end end # class DisksRemoveResourcePoliciesRequest include Google::Apis::Core::Hashable # Resource policies to be removed from this disk. # Corresponds to the JSON property `resourcePolicies` # @return [Array] attr_accessor :resource_policies def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @resource_policies = args[:resource_policies] if args.key?(:resource_policies) end end # class DisksResizeRequest include Google::Apis::Core::Hashable # The new size of the persistent disk, which is specified in GB. # Corresponds to the JSON property `sizeGb` # @return [Fixnum] attr_accessor :size_gb def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @size_gb = args[:size_gb] if args.key?(:size_gb) end end # class DisksScopedList include Google::Apis::Core::Hashable # [Output Only] A list of disks contained in this scope. # Corresponds to the JSON property `disks` # @return [Array] attr_accessor :disks # [Output Only] Informational warning which replaces the list of disks when the # list is empty. # Corresponds to the JSON property `warning` # @return [Google::Apis::ComputeAlpha::DisksScopedList::Warning] attr_accessor :warning def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @disks = args[:disks] if args.key?(:disks) @warning = args[:warning] if args.key?(:warning) end # [Output Only] Informational warning which replaces the list of disks when the # list is empty. class Warning include Google::Apis::Core::Hashable # [Output Only] A warning code, if applicable. For example, Compute Engine # returns NO_RESULTS_ON_PAGE if there are no results in the response. # Corresponds to the JSON property `code` # @return [String] attr_accessor :code # [Output Only] Metadata about this warning in key: value format. For example: " # data": [ ` "key": "scope", "value": "zones/us-east1-d" ` # Corresponds to the JSON property `data` # @return [Array] attr_accessor :data # [Output Only] A human-readable description of the warning code. # Corresponds to the JSON property `message` # @return [String] attr_accessor :message def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @code = args[:code] if args.key?(:code) @data = args[:data] if args.key?(:data) @message = args[:message] if args.key?(:message) end # class Datum include Google::Apis::Core::Hashable # [Output Only] A key that provides more detail on the warning being returned. # For example, for warnings where there are no results in a list request for a # particular zone, this key might be scope and the key value might be the zone # name. Other examples might be a key indicating a deprecated resource and a # suggested replacement, or a warning about invalid network settings (for # example, if an instance attempts to perform IP forwarding but is not enabled # for IP forwarding). # Corresponds to the JSON property `key` # @return [String] attr_accessor :key # [Output Only] A warning data value corresponding to the key. # 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 end end # class DisksStartAsyncReplicationRequest include Google::Apis::Core::Hashable # The secondary disk to start asynchronous replication to. You can provide this # as a partial or full URL to the resource. For example, the following are valid # values: - https://www.googleapis.com/compute/v1/projects/project/zones/zone / # disks/disk - https://www.googleapis.com/compute/v1/projects/project/regions/ # region /disks/disk - projects/project/zones/zone/disks/disk - projects/project/ # regions/region/disks/disk - zones/zone/disks/disk - regions/region/disks/disk # Corresponds to the JSON property `asyncSecondaryDisk` # @return [String] attr_accessor :async_secondary_disk def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @async_secondary_disk = args[:async_secondary_disk] if args.key?(:async_secondary_disk) end end # class DisksStopAsyncReplicationRequest include Google::Apis::Core::Hashable # The secondary disk to stop asynchronous replication to. Supplied if and only # if the target disk is a primary disk in an asynchronously replicated pair. You # can provide this as a partial or full URL to the resource. For example, the # following are valid values: - https://www.googleapis.com/compute/v1/projects/ # project/zones/zone /disks/disk - https://www.googleapis.com/compute/v1/ # projects/project/regions/region /disks/disk - projects/project/zones/zone/ # disks/disk - projects/project/regions/region/disks/disk - zones/zone/disks/ # disk - regions/region/disks/disk # Corresponds to the JSON property `asyncSecondaryDisk` # @return [String] attr_accessor :async_secondary_disk def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @async_secondary_disk = args[:async_secondary_disk] if args.key?(:async_secondary_disk) end end # class DisksStopGroupAsyncReplicationRequest include Google::Apis::Core::Hashable # The URL of the DiskConsistencyGroupPolicy for the group of disks to stop. This # may be a full or partial URL, such as: - https://www.googleapis.com/compute/v1/ # projects/project/regions/region /resourcePolicies/resourcePolicy - projects/ # project/regions/region/resourcePolicies/resourcePolicy - regions/region/ # resourcePolicies/resourcePolicy # Corresponds to the JSON property `resourcePolicy` # @return [String] attr_accessor :resource_policy def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @resource_policy = args[:resource_policy] if args.key?(:resource_policy) end end # A set of Display Device options class DisplayDevice include Google::Apis::Core::Hashable # Defines whether the instance has Display enabled. # Corresponds to the JSON property `enableDisplay` # @return [Boolean] attr_accessor :enable_display alias_method :enable_display?, :enable_display def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @enable_display = args[:enable_display] if args.key?(:enable_display) end end # class DistributionPolicy include Google::Apis::Core::Hashable # The distribution shape to which the group converges either proactively or on # resize events (depending on the value set in updatePolicy. # instanceRedistributionType). # Corresponds to the JSON property `targetShape` # @return [String] attr_accessor :target_shape # Zones where the regional managed instance group will create and manage its # instances. # Corresponds to the JSON property `zones` # @return [Array] attr_accessor :zones def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @target_shape = args[:target_shape] if args.key?(:target_shape) @zones = args[:zones] if args.key?(:zones) end end # class DistributionPolicyZoneConfiguration include Google::Apis::Core::Hashable # The URL of the zone. The zone must exist in the region where the managed # instance group is located. # 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) @zone = args[:zone] if args.key?(:zone) end end # A Duration represents a fixed-length span of time represented as a count of # seconds and fractions of seconds at nanosecond resolution. It is independent # of any calendar and concepts like "day" or "month". Range is approximately 10, # 000 years. class Duration include Google::Apis::Core::Hashable # Span of time that's a fraction of a second at nanosecond resolution. Durations # less than one second are represented with a 0 `seconds` field and a positive ` # nanos` field. Must be from 0 to 999,999,999 inclusive. # Corresponds to the JSON property `nanos` # @return [Fixnum] attr_accessor :nanos # Span of time at a resolution of a second. Must be from 0 to 315,576,000,000 # inclusive. Note: these bounds are computed from: 60 sec/min * 60 min/hr * 24 # hr/day * 365.25 days/year * 10000 years # Corresponds to the JSON property `seconds` # @return [Fixnum] attr_accessor :seconds def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @nanos = args[:nanos] if args.key?(:nanos) @seconds = args[:seconds] if args.key?(:seconds) end end # class ExchangedPeeringRoute include Google::Apis::Core::Hashable # The destination range of the route. # Corresponds to the JSON property `destRange` # @return [String] attr_accessor :dest_range # True if the peering route has been imported from a peer. The actual import # happens if the field networkPeering.importCustomRoutes is true for this # network, and networkPeering.exportCustomRoutes is true for the peer network, # and the import does not result in a route conflict. # Corresponds to the JSON property `imported` # @return [Boolean] attr_accessor :imported alias_method :imported?, :imported # The region of peering route next hop, only applies to dynamic routes. # Corresponds to the JSON property `nextHopRegion` # @return [String] attr_accessor :next_hop_region # The priority of the peering route. # Corresponds to the JSON property `priority` # @return [Fixnum] attr_accessor :priority # The type of the peering route. # 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) @dest_range = args[:dest_range] if args.key?(:dest_range) @imported = args[:imported] if args.key?(:imported) @next_hop_region = args[:next_hop_region] if args.key?(:next_hop_region) @priority = args[:priority] if args.key?(:priority) @type = args[:type] if args.key?(:type) end end # class ExchangedPeeringRoutesList include Google::Apis::Core::Hashable # [Output Only] Unique identifier for the resource; defined by the server. # Corresponds to the JSON property `id` # @return [String] attr_accessor :id # A list of ExchangedPeeringRoute resources. # Corresponds to the JSON property `items` # @return [Array] attr_accessor :items # [Output Only] Type of resource. Always compute#exchangedPeeringRoutesList for # exchanged peering routes lists. # Corresponds to the JSON property `kind` # @return [String] attr_accessor :kind # [Output Only] This token allows you to get the next page of results for list # requests. If the number of results is larger than maxResults, use the # nextPageToken as a value for the query parameter pageToken in the next list # request. Subsequent list requests will have their own nextPageToken to # continue paging through the results. # Corresponds to the JSON property `nextPageToken` # @return [String] attr_accessor :next_page_token # [Output Only] Server-defined URL for this resource. # Corresponds to the JSON property `selfLink` # @return [String] attr_accessor :self_link # [Output Only] Informational warning message. # Corresponds to the JSON property `warning` # @return [Google::Apis::ComputeAlpha::ExchangedPeeringRoutesList::Warning] attr_accessor :warning def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @id = args[:id] if args.key?(:id) @items = args[:items] if args.key?(:items) @kind = args[:kind] if args.key?(:kind) @next_page_token = args[:next_page_token] if args.key?(:next_page_token) @self_link = args[:self_link] if args.key?(:self_link) @warning = args[:warning] if args.key?(:warning) end # [Output Only] Informational warning message. class Warning include Google::Apis::Core::Hashable # [Output Only] A warning code, if applicable. For example, Compute Engine # returns NO_RESULTS_ON_PAGE if there are no results in the response. # Corresponds to the JSON property `code` # @return [String] attr_accessor :code # [Output Only] Metadata about this warning in key: value format. For example: " # data": [ ` "key": "scope", "value": "zones/us-east1-d" ` # Corresponds to the JSON property `data` # @return [Array] attr_accessor :data # [Output Only] A human-readable description of the warning code. # Corresponds to the JSON property `message` # @return [String] attr_accessor :message def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @code = args[:code] if args.key?(:code) @data = args[:data] if args.key?(:data) @message = args[:message] if args.key?(:message) end # class Datum include Google::Apis::Core::Hashable # [Output Only] A key that provides more detail on the warning being returned. # For example, for warnings where there are no results in a list request for a # particular zone, this key might be scope and the key value might be the zone # name. Other examples might be a key indicating a deprecated resource and a # suggested replacement, or a warning about invalid network settings (for # example, if an instance attempts to perform IP forwarding but is not enabled # for IP forwarding). # Corresponds to the JSON property `key` # @return [String] attr_accessor :key # [Output Only] A warning data value corresponding to the key. # 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 end end # Represents a textual expression in the Common Expression Language (CEL) syntax. # CEL is a C-like expression language. The syntax and semantics of CEL are # documented at https://github.com/google/cel-spec. Example (Comparison): title: # "Summary size limit" description: "Determines if a summary is less than 100 # chars" expression: "document.summary.size() < 100" Example (Equality): title: " # Requestor is owner" description: "Determines if requestor is the document # owner" expression: "document.owner == request.auth.claims.email" Example ( # Logic): title: "Public documents" description: "Determine whether the document # should be publicly visible" expression: "document.type != 'private' && # document.type != 'internal'" Example (Data Manipulation): title: "Notification # string" description: "Create a notification string with a timestamp." # expression: "'New message received at ' + string(document.create_time)" The # exact variables and functions that may be referenced within an expression are # determined by the service that evaluates it. See the service documentation for # additional information. class Expr include Google::Apis::Core::Hashable # Optional. Description of the expression. This is a longer text which describes # the expression, e.g. when hovered over it in a UI. # Corresponds to the JSON property `description` # @return [String] attr_accessor :description # Textual representation of an expression in Common Expression Language syntax. # Corresponds to the JSON property `expression` # @return [String] attr_accessor :expression # Optional. String indicating the location of the expression for error reporting, # e.g. a file name and a position in the file. # Corresponds to the JSON property `location` # @return [String] attr_accessor :location # Optional. Title for the expression, i.e. a short string describing its purpose. # This can be used e.g. in UIs which allow to enter the expression. # Corresponds to the JSON property `title` # @return [String] attr_accessor :title def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @description = args[:description] if args.key?(:description) @expression = args[:expression] if args.key?(:expression) @location = args[:location] if args.key?(:location) @title = args[:title] if args.key?(:title) end end # Represents an external VPN gateway. External VPN gateway is the on-premises # VPN gateway(s) or another cloud provider's VPN gateway that connects to your # Google Cloud VPN gateway. To create a highly available VPN from Google Cloud # Platform to your VPN gateway or another cloud provider's VPN gateway, you must # create a external VPN gateway resource with information about the other # gateway. For more information about using external VPN gateways, see Creating # an HA VPN gateway and tunnel pair to a peer VPN. class ExternalVpnGateway include Google::Apis::Core::Hashable # [Output Only] Creation timestamp in RFC3339 text format. # Corresponds to the JSON property `creationTimestamp` # @return [String] attr_accessor :creation_timestamp # An optional description of this resource. Provide this property when you # create the resource. # Corresponds to the JSON property `description` # @return [String] attr_accessor :description # [Output Only] The unique identifier for the resource. This identifier is # defined by the server. # Corresponds to the JSON property `id` # @return [Fixnum] attr_accessor :id # A list of interfaces for this external VPN gateway. If your peer-side gateway # is an on-premises gateway and non-AWS cloud providers' gateway, at most two # interfaces can be provided for an external VPN gateway. If your peer side is # an AWS virtual private gateway, four interfaces should be provided for an # external VPN gateway. # Corresponds to the JSON property `interfaces` # @return [Array] attr_accessor :interfaces # [Output Only] Type of the resource. Always compute#externalVpnGateway for # externalVpnGateways. # Corresponds to the JSON property `kind` # @return [String] attr_accessor :kind # A fingerprint for the labels being applied to this ExternalVpnGateway, which # is essentially a hash of the labels set used for optimistic locking. The # fingerprint is initially generated by Compute Engine and changes after every # request to modify or update labels. You must always provide an up-to-date # fingerprint hash in order to update or change labels, otherwise the request # will fail with error 412 conditionNotMet. To see the latest fingerprint, make # a get() request to retrieve an ExternalVpnGateway. # Corresponds to the JSON property `labelFingerprint` # NOTE: Values are automatically base64 encoded/decoded in the client library. # @return [String] attr_accessor :label_fingerprint # Labels for this resource. These can only be added or modified by the setLabels # method. Each label key/value pair must comply with RFC1035. Label values may # be empty. # Corresponds to the JSON property `labels` # @return [Hash] attr_accessor :labels # Name of the resource. Provided by the client when the resource is created. The # name must be 1-63 characters long, and comply with RFC1035. Specifically, the # name must be 1-63 characters long and match the regular expression `[a-z]([-a- # z0-9]*[a-z0-9])?` which means the first character must be a lowercase letter, # and all following characters must be a dash, lowercase letter, or digit, # except the last character, which cannot be a dash. # Corresponds to the JSON property `name` # @return [String] attr_accessor :name # Indicates the user-supplied redundancy type of this external VPN gateway. # Corresponds to the JSON property `redundancyType` # @return [String] attr_accessor :redundancy_type # [Output Only] Server-defined URL for the resource. # Corresponds to the JSON property `selfLink` # @return [String] attr_accessor :self_link def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @creation_timestamp = args[:creation_timestamp] if args.key?(:creation_timestamp) @description = args[:description] if args.key?(:description) @id = args[:id] if args.key?(:id) @interfaces = args[:interfaces] if args.key?(:interfaces) @kind = args[:kind] if args.key?(:kind) @label_fingerprint = args[:label_fingerprint] if args.key?(:label_fingerprint) @labels = args[:labels] if args.key?(:labels) @name = args[:name] if args.key?(:name) @redundancy_type = args[:redundancy_type] if args.key?(:redundancy_type) @self_link = args[:self_link] if args.key?(:self_link) end end # The interface for the external VPN gateway. class ExternalVpnGatewayInterface include Google::Apis::Core::Hashable # The numeric ID of this interface. The allowed input values for this id for # different redundancy types of external VPN gateway: - # SINGLE_IP_INTERNALLY_REDUNDANT - 0 - TWO_IPS_REDUNDANCY - 0, 1 - # FOUR_IPS_REDUNDANCY - 0, 1, 2, 3 # Corresponds to the JSON property `id` # @return [Fixnum] attr_accessor :id # IP address of the interface in the external VPN gateway. Only IPv4 is # supported. This IP address can be either from your on-premise gateway or # another Cloud provider's VPN gateway, it cannot be an IP address from Google # Compute Engine. # Corresponds to the JSON property `ipAddress` # @return [String] attr_accessor :ip_address def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @id = args[:id] if args.key?(:id) @ip_address = args[:ip_address] if args.key?(:ip_address) end end # Response to the list request, and contains a list of externalVpnGateways. class ExternalVpnGatewayList include Google::Apis::Core::Hashable # # Corresponds to the JSON property `etag` # @return [String] attr_accessor :etag # [Output Only] Unique identifier for the resource; defined by the server. # Corresponds to the JSON property `id` # @return [String] attr_accessor :id # A list of ExternalVpnGateway resources. # Corresponds to the JSON property `items` # @return [Array] attr_accessor :items # [Output Only] Type of resource. Always compute#externalVpnGatewayList for # lists of externalVpnGateways. # Corresponds to the JSON property `kind` # @return [String] attr_accessor :kind # [Output Only] This token allows you to get the next page of results for list # requests. If the number of results is larger than maxResults, use the # nextPageToken as a value for the query parameter pageToken in the next list # request. Subsequent list requests will have their own nextPageToken to # continue paging through the results. # Corresponds to the JSON property `nextPageToken` # @return [String] attr_accessor :next_page_token # [Output Only] Server-defined URL for this resource. # Corresponds to the JSON property `selfLink` # @return [String] attr_accessor :self_link # [Output Only] Informational warning message. # Corresponds to the JSON property `warning` # @return [Google::Apis::ComputeAlpha::ExternalVpnGatewayList::Warning] attr_accessor :warning def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @etag = args[:etag] if args.key?(:etag) @id = args[:id] if args.key?(:id) @items = args[:items] if args.key?(:items) @kind = args[:kind] if args.key?(:kind) @next_page_token = args[:next_page_token] if args.key?(:next_page_token) @self_link = args[:self_link] if args.key?(:self_link) @warning = args[:warning] if args.key?(:warning) end # [Output Only] Informational warning message. class Warning include Google::Apis::Core::Hashable # [Output Only] A warning code, if applicable. For example, Compute Engine # returns NO_RESULTS_ON_PAGE if there are no results in the response. # Corresponds to the JSON property `code` # @return [String] attr_accessor :code # [Output Only] Metadata about this warning in key: value format. For example: " # data": [ ` "key": "scope", "value": "zones/us-east1-d" ` # Corresponds to the JSON property `data` # @return [Array] attr_accessor :data # [Output Only] A human-readable description of the warning code. # Corresponds to the JSON property `message` # @return [String] attr_accessor :message def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @code = args[:code] if args.key?(:code) @data = args[:data] if args.key?(:data) @message = args[:message] if args.key?(:message) end # class Datum include Google::Apis::Core::Hashable # [Output Only] A key that provides more detail on the warning being returned. # For example, for warnings where there are no results in a list request for a # particular zone, this key might be scope and the key value might be the zone # name. Other examples might be a key indicating a deprecated resource and a # suggested replacement, or a warning about invalid network settings (for # example, if an instance attempts to perform IP forwarding but is not enabled # for IP forwarding). # Corresponds to the JSON property `key` # @return [String] attr_accessor :key # [Output Only] A warning data value corresponding to the key. # 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 end end # class FileContentBuffer include Google::Apis::Core::Hashable # The raw content in the secure keys file. # Corresponds to the JSON property `content` # NOTE: Values are automatically base64 encoded/decoded in the client library. # @return [String] attr_accessor :content # The file type of source file. # Corresponds to the JSON property `fileType` # @return [String] attr_accessor :file_type def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @content = args[:content] if args.key?(:content) @file_type = args[:file_type] if args.key?(:file_type) end end # Represents a Firewall Rule resource. Firewall rules allow or deny ingress # traffic to, and egress traffic from your instances. For more information, read # Firewall rules. class Firewall include Google::Apis::Core::Hashable # The list of ALLOW rules specified by this firewall. Each rule specifies a # protocol and port-range tuple that describes a permitted connection. # Corresponds to the JSON property `allowed` # @return [Array] attr_accessor :allowed # [Output Only] Creation timestamp in RFC3339 text format. # Corresponds to the JSON property `creationTimestamp` # @return [String] attr_accessor :creation_timestamp # The list of DENY rules specified by this firewall. Each rule specifies a # protocol and port-range tuple that describes a denied connection. # Corresponds to the JSON property `denied` # @return [Array] attr_accessor :denied # An optional description of this resource. Provide this field when you create # the resource. # Corresponds to the JSON property `description` # @return [String] attr_accessor :description # If destination ranges are specified, the firewall rule applies only to traffic # that has destination IP address in these ranges. These ranges must be # expressed in CIDR format. Both IPv4 and IPv6 are supported. # Corresponds to the JSON property `destinationRanges` # @return [Array] attr_accessor :destination_ranges # Direction of traffic to which this firewall applies, either `INGRESS` or ` # EGRESS`. The default is `INGRESS`. For `INGRESS` traffic, you cannot specify # the destinationRanges field, and for `EGRESS` traffic, you cannot specify the # sourceRanges or sourceTags fields. # Corresponds to the JSON property `direction` # @return [String] attr_accessor :direction # Denotes whether the firewall rule is disabled. When set to true, the firewall # rule is not enforced and the network behaves as if it did not exist. If this # is unspecified, the firewall rule will be enabled. # Corresponds to the JSON property `disabled` # @return [Boolean] attr_accessor :disabled alias_method :disabled?, :disabled # Deprecated in favor of enable in LogConfig. This field denotes whether to # enable logging for a particular firewall rule. If logging is enabled, logs # will be exported t Cloud Logging. # Corresponds to the JSON property `enableLogging` # @return [Boolean] attr_accessor :enable_logging alias_method :enable_logging?, :enable_logging # [Output Only] The unique identifier for the resource. This identifier is # defined by the server. # Corresponds to the JSON property `id` # @return [Fixnum] attr_accessor :id # [Output Only] Type of the resource. Always compute#firewall for firewall rules. # Corresponds to the JSON property `kind` # @return [String] attr_accessor :kind # The available logging options for a firewall rule. # Corresponds to the JSON property `logConfig` # @return [Google::Apis::ComputeAlpha::FirewallLogConfig] attr_accessor :log_config # Name of the resource; provided by the client when the resource is created. The # name must be 1-63 characters long, and comply with RFC1035. Specifically, the # name must be 1-63 characters long and match the regular expression `[a-z]([-a- # z0-9]*[a-z0-9])?`. The first character must be a lowercase letter, and all # following characters (except for the last character) must be a dash, lowercase # letter, or digit. The last character must be a lowercase letter or digit. # Corresponds to the JSON property `name` # @return [String] attr_accessor :name # URL of the network resource for this firewall rule. If not specified when # creating a firewall rule, the default network is used: global/networks/default # If you choose to specify this field, you can specify the network as a full or # partial URL. For example, the following are all valid URLs: - https://www. # googleapis.com/compute/v1/projects/myproject/global/networks/my-network - # projects/myproject/global/networks/my-network - global/networks/default # Corresponds to the JSON property `network` # @return [String] attr_accessor :network # Priority for this rule. This is an integer between `0` and `65535`, both # inclusive. The default value is `1000`. Relative priorities determine which # rule takes effect if multiple rules apply. Lower values indicate higher # priority. For example, a rule with priority `0` has higher precedence than a # rule with priority `1`. DENY rules take precedence over ALLOW rules if they # have equal priority. Note that VPC networks have implied rules with a priority # of `65535`. To avoid conflicts with the implied rules, use a priority number # less than `65535`. # Corresponds to the JSON property `priority` # @return [Fixnum] attr_accessor :priority # [Output Only] Server-defined URL for the resource. # Corresponds to the JSON property `selfLink` # @return [String] attr_accessor :self_link # [Output Only] Server-defined URL for this resource with the resource id. # Corresponds to the JSON property `selfLinkWithId` # @return [String] attr_accessor :self_link_with_id # If source ranges are specified, the firewall rule applies only to traffic that # has a source IP address in these ranges. These ranges must be expressed in # CIDR format. One or both of sourceRanges and sourceTags may be set. If both # fields are set, the rule applies to traffic that has a source IP address # within sourceRanges OR a source IP from a resource with a matching tag listed # in the sourceTags field. The connection does not need to match both fields for # the rule to apply. Both IPv4 and IPv6 are supported. # Corresponds to the JSON property `sourceRanges` # @return [Array] attr_accessor :source_ranges # If source service accounts are specified, the firewall rules apply only to # traffic originating from an instance with a service account in this list. # Source service accounts cannot be used to control traffic to an instance's # external IP address because service accounts are associated with an instance, # not an IP address. sourceRanges can be set at the same time as # sourceServiceAccounts. If both are set, the firewall applies to traffic that # has a source IP address within the sourceRanges OR a source IP that belongs to # an instance with service account listed in sourceServiceAccount. The # connection does not need to match both fields for the firewall to apply. # sourceServiceAccounts cannot be used at the same time as sourceTags or # targetTags. # Corresponds to the JSON property `sourceServiceAccounts` # @return [Array] attr_accessor :source_service_accounts # If source tags are specified, the firewall rule applies only to traffic with # source IPs that match the primary network interfaces of VM instances that have # the tag and are in the same VPC network. Source tags cannot be used to control # traffic to an instance's external IP address, it only applies to traffic # between instances in the same virtual network. Because tags are associated # with instances, not IP addresses. One or both of sourceRanges and sourceTags # may be set. If both fields are set, the firewall applies to traffic that has a # source IP address within sourceRanges OR a source IP from a resource with a # matching tag listed in the sourceTags field. The connection does not need to # match both fields for the firewall to apply. # Corresponds to the JSON property `sourceTags` # @return [Array] attr_accessor :source_tags # A list of service accounts indicating sets of instances located in the network # that may make network connections as specified in allowed[]. # targetServiceAccounts cannot be used at the same time as targetTags or # sourceTags. If neither targetServiceAccounts nor targetTags are specified, the # firewall rule applies to all instances on the specified network. # Corresponds to the JSON property `targetServiceAccounts` # @return [Array] attr_accessor :target_service_accounts # A list of tags that controls which instances the firewall rule applies to. If # targetTags are specified, then the firewall rule applies only to instances in # the VPC network that have one of those tags. If no targetTags are specified, # the firewall rule applies to all instances on the specified network. # 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) @creation_timestamp = args[:creation_timestamp] if args.key?(:creation_timestamp) @denied = args[:denied] if args.key?(:denied) @description = args[:description] if args.key?(:description) @destination_ranges = args[:destination_ranges] if args.key?(:destination_ranges) @direction = args[:direction] if args.key?(:direction) @disabled = args[:disabled] if args.key?(:disabled) @enable_logging = args[:enable_logging] if args.key?(:enable_logging) @id = args[:id] if args.key?(:id) @kind = args[:kind] if args.key?(:kind) @log_config = args[:log_config] if args.key?(:log_config) @name = args[:name] if args.key?(:name) @network = args[:network] if args.key?(:network) @priority = args[:priority] if args.key?(:priority) @self_link = args[:self_link] if args.key?(:self_link) @self_link_with_id = args[:self_link_with_id] if args.key?(:self_link_with_id) @source_ranges = args[:source_ranges] if args.key?(:source_ranges) @source_service_accounts = args[:source_service_accounts] if args.key?(:source_service_accounts) @source_tags = args[:source_tags] if args.key?(:source_tags) @target_service_accounts = args[:target_service_accounts] if args.key?(:target_service_accounts) @target_tags = args[:target_tags] if args.key?(:target_tags) end # class Allowed include Google::Apis::Core::Hashable # The IP protocol to which this rule applies. The protocol type is required when # creating a firewall rule. This value can either be one of the following well # known protocol strings (tcp, udp, icmp, esp, ah, ipip, sctp) or the IP # protocol number. # Corresponds to the JSON property `IPProtocol` # @return [String] attr_accessor :ip_protocol # An optional list of ports to which this rule applies. This field is only # applicable for the UDP or TCP protocol. Each entry must be either an integer # or a range. If not specified, this rule applies to connections through any # port. Example inputs include: ["22"], ["80","443"], and ["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 Denied include Google::Apis::Core::Hashable # The IP protocol to which this rule applies. The protocol type is required when # creating a firewall rule. This value can either be one of the following well # known protocol strings (tcp, udp, icmp, esp, ah, ipip, sctp) or the IP # protocol number. # Corresponds to the JSON property `IPProtocol` # @return [String] attr_accessor :ip_protocol # An optional list of ports to which this rule applies. This field is only # applicable for the UDP or TCP protocol. Each entry must be either an integer # or a range. If not specified, this rule applies to connections through any # port. Example inputs include: ["22"], ["80","443"], and ["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 end # Contains a list of firewalls. class FirewallList include Google::Apis::Core::Hashable # [Output Only] Unique identifier for the resource; defined by the server. # Corresponds to the JSON property `id` # @return [String] attr_accessor :id # A list of Firewall resources. # Corresponds to the JSON property `items` # @return [Array] attr_accessor :items # [Output Only] Type of resource. Always compute#firewallList for lists of # firewalls. # Corresponds to the JSON property `kind` # @return [String] attr_accessor :kind # [Output Only] This token allows you to get the next page of results for list # requests. If the number of results is larger than maxResults, use the # nextPageToken as a value for the query parameter pageToken in the next list # request. Subsequent list requests will have their own nextPageToken to # continue paging through the results. # Corresponds to the JSON property `nextPageToken` # @return [String] attr_accessor :next_page_token # [Output Only] Server-defined URL for this resource. # Corresponds to the JSON property `selfLink` # @return [String] attr_accessor :self_link # [Output Only] Informational warning message. # Corresponds to the JSON property `warning` # @return [Google::Apis::ComputeAlpha::FirewallList::Warning] attr_accessor :warning def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @id = args[:id] if args.key?(:id) @items = args[:items] if args.key?(:items) @kind = args[:kind] if args.key?(:kind) @next_page_token = args[:next_page_token] if args.key?(:next_page_token) @self_link = args[:self_link] if args.key?(:self_link) @warning = args[:warning] if args.key?(:warning) end # [Output Only] Informational warning message. class Warning include Google::Apis::Core::Hashable # [Output Only] A warning code, if applicable. For example, Compute Engine # returns NO_RESULTS_ON_PAGE if there are no results in the response. # Corresponds to the JSON property `code` # @return [String] attr_accessor :code # [Output Only] Metadata about this warning in key: value format. For example: " # data": [ ` "key": "scope", "value": "zones/us-east1-d" ` # Corresponds to the JSON property `data` # @return [Array] attr_accessor :data # [Output Only] A human-readable description of the warning code. # Corresponds to the JSON property `message` # @return [String] attr_accessor :message def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @code = args[:code] if args.key?(:code) @data = args[:data] if args.key?(:data) @message = args[:message] if args.key?(:message) end # class Datum include Google::Apis::Core::Hashable # [Output Only] A key that provides more detail on the warning being returned. # For example, for warnings where there are no results in a list request for a # particular zone, this key might be scope and the key value might be the zone # name. Other examples might be a key indicating a deprecated resource and a # suggested replacement, or a warning about invalid network settings (for # example, if an instance attempts to perform IP forwarding but is not enabled # for IP forwarding). # Corresponds to the JSON property `key` # @return [String] attr_accessor :key # [Output Only] A warning data value corresponding to the key. # 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 end end # The available logging options for a firewall rule. class FirewallLogConfig include Google::Apis::Core::Hashable # This field denotes whether to enable logging for a particular firewall rule. # Corresponds to the JSON property `enable` # @return [Boolean] attr_accessor :enable alias_method :enable?, :enable # This field can only be specified for a particular firewall rule if logging is # enabled for that rule. This field denotes whether to include or exclude # metadata for firewall logs. # Corresponds to the JSON property `metadata` # @return [String] attr_accessor :metadata def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @enable = args[:enable] if args.key?(:enable) @metadata = args[:metadata] if args.key?(:metadata) end end # class FirewallPoliciesListAssociationsResponse include Google::Apis::Core::Hashable # A list of associations. # Corresponds to the JSON property `associations` # @return [Array] attr_accessor :associations # [Output Only] Type of firewallPolicy associations. Always compute# # FirewallPoliciesListAssociations for lists of firewallPolicy associations. # Corresponds to the JSON property `kind` # @return [String] attr_accessor :kind def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @associations = args[:associations] if args.key?(:associations) @kind = args[:kind] if args.key?(:kind) end end # Represents a Firewall Policy resource. class FirewallPolicy include Google::Apis::Core::Hashable # A list of associations that belong to this firewall policy. # Corresponds to the JSON property `associations` # @return [Array] attr_accessor :associations # [Output Only] Creation timestamp in RFC3339 text format. # Corresponds to the JSON property `creationTimestamp` # @return [String] attr_accessor :creation_timestamp # An optional description of this resource. Provide this property when you # create the resource. # Corresponds to the JSON property `description` # @return [String] attr_accessor :description # Deprecated, please use short name instead. User-provided name of the # Organization firewall policy. The name should be unique in the organization in # which the firewall policy is created. This name must be set on creation and # cannot be changed. The name must be 1-63 characters long, and comply with # RFC1035. Specifically, the name must be 1-63 characters long and match the # regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first # character must be a lowercase letter, and all following characters must be a # dash, lowercase letter, or digit, except the last character, which cannot be a # dash. # Corresponds to the JSON property `displayName` # @return [String] attr_accessor :display_name # Specifies a fingerprint for this resource, which is essentially a hash of the # metadata's contents and used for optimistic locking. The fingerprint is # initially generated by Compute Engine and changes after every request to # modify or update metadata. You must always provide an up-to-date fingerprint # hash in order to update or change metadata, otherwise the request will fail # with error 412 conditionNotMet. To see the latest fingerprint, make get() # request to the firewall policy. # Corresponds to the JSON property `fingerprint` # NOTE: Values are automatically base64 encoded/decoded in the client library. # @return [String] attr_accessor :fingerprint # [Output Only] The unique identifier for the resource. This identifier is # defined by the server. # Corresponds to the JSON property `id` # @return [Fixnum] attr_accessor :id # [Output only] Type of the resource. Always compute#firewallPolicyfor firewall # policies # Corresponds to the JSON property `kind` # @return [String] attr_accessor :kind # [Output Only] Name of the resource. It is a numeric ID allocated by GCP which # uniquely identifies the Firewall Policy. # Corresponds to the JSON property `name` # @return [String] attr_accessor :name # [Output Only] The parent of the firewall policy. # Corresponds to the JSON property `parent` # @return [String] attr_accessor :parent # [Output Only] URL of the region where the regional firewall policy resides. # This field is not applicable to global firewall policies. You must specify # this field as part of the HTTP request URL. It is not settable as a field in # the request body. # Corresponds to the JSON property `region` # @return [String] attr_accessor :region # [Output Only] Total count of all firewall policy rule tuples. A firewall # policy can not exceed a set number of tuples. # Corresponds to the JSON property `ruleTupleCount` # @return [Fixnum] attr_accessor :rule_tuple_count # A list of rules that belong to this policy. There must always be a default # rule (rule with priority 2147483647 and match "*"). If no rules are provided # when creating a firewall policy, a default rule with action "allow" will be # added. # Corresponds to the JSON property `rules` # @return [Array] attr_accessor :rules # [Output Only] Server-defined URL for the resource. # Corresponds to the JSON property `selfLink` # @return [String] attr_accessor :self_link # [Output Only] Server-defined URL for this resource with the resource id. # Corresponds to the JSON property `selfLinkWithId` # @return [String] attr_accessor :self_link_with_id # User-provided name of the Organization firewall plicy. The name should be # unique in the organization in which the firewall policy is created. This name # must be set on creation and cannot be changed. The name must be 1-63 # characters long, and comply with RFC1035. Specifically, the name must be 1-63 # characters long and match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` # which means the first character must be a lowercase letter, and all following # characters must be a dash, lowercase letter, or digit, except the last # character, which cannot be a dash. # Corresponds to the JSON property `shortName` # @return [String] attr_accessor :short_name # The scope of networks allowed to be associated with the firewall policy. This # field can be either GLOBAL_VPC_NETWORK or REGIONAL_VPC_NETWORK. A firewall # policy with the VPC scope set to GLOBAL_VPC_NETWORK is allowed to be attached # only to global networks. When the VPC scope is set to REGIONAL_VPC_NETWORK the # firewall policy is allowed to be attached only to regional networks in the # same scope as the firewall policy. Note: if not specified then # GLOBAL_VPC_NETWORK will be used. # Corresponds to the JSON property `vpcNetworkScope` # @return [String] attr_accessor :vpc_network_scope def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @associations = args[:associations] if args.key?(:associations) @creation_timestamp = args[:creation_timestamp] if args.key?(:creation_timestamp) @description = args[:description] if args.key?(:description) @display_name = args[:display_name] if args.key?(:display_name) @fingerprint = args[:fingerprint] if args.key?(:fingerprint) @id = args[:id] if args.key?(:id) @kind = args[:kind] if args.key?(:kind) @name = args[:name] if args.key?(:name) @parent = args[:parent] if args.key?(:parent) @region = args[:region] if args.key?(:region) @rule_tuple_count = args[:rule_tuple_count] if args.key?(:rule_tuple_count) @rules = args[:rules] if args.key?(:rules) @self_link = args[:self_link] if args.key?(:self_link) @self_link_with_id = args[:self_link_with_id] if args.key?(:self_link_with_id) @short_name = args[:short_name] if args.key?(:short_name) @vpc_network_scope = args[:vpc_network_scope] if args.key?(:vpc_network_scope) end end # class FirewallPolicyAssociation include Google::Apis::Core::Hashable # The target that the firewall policy is attached to. # Corresponds to the JSON property `attachmentTarget` # @return [String] attr_accessor :attachment_target # [Output Only] Deprecated, please use short name instead. The display name of # the firewall policy of the association. # Corresponds to the JSON property `displayName` # @return [String] attr_accessor :display_name # [Output Only] The firewall policy ID of the association. # Corresponds to the JSON property `firewallPolicyId` # @return [String] attr_accessor :firewall_policy_id # The name for an association. # Corresponds to the JSON property `name` # @return [String] attr_accessor :name # [Output Only] The short name of the firewall policy of the association. # Corresponds to the JSON property `shortName` # @return [String] attr_accessor :short_name def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @attachment_target = args[:attachment_target] if args.key?(:attachment_target) @display_name = args[:display_name] if args.key?(:display_name) @firewall_policy_id = args[:firewall_policy_id] if args.key?(:firewall_policy_id) @name = args[:name] if args.key?(:name) @short_name = args[:short_name] if args.key?(:short_name) end end # class FirewallPolicyList include Google::Apis::Core::Hashable # [Output Only] Unique identifier for the resource; defined by the server. # Corresponds to the JSON property `id` # @return [String] attr_accessor :id # A list of FirewallPolicy resources. # Corresponds to the JSON property `items` # @return [Array] attr_accessor :items # [Output Only] Type of resource. Always compute#firewallPolicyList for listsof # FirewallPolicies # Corresponds to the JSON property `kind` # @return [String] attr_accessor :kind # [Output Only] This token allows you to get the next page of results for list # requests. If the number of results is larger than maxResults, use the # nextPageToken as a value for the query parameter pageToken in the next list # request. Subsequent list requests will have their own nextPageToken to # continue paging through the results. # Corresponds to the JSON property `nextPageToken` # @return [String] attr_accessor :next_page_token # [Output Only] Informational warning message. # Corresponds to the JSON property `warning` # @return [Google::Apis::ComputeAlpha::FirewallPolicyList::Warning] attr_accessor :warning def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @id = args[:id] if args.key?(:id) @items = args[:items] if args.key?(:items) @kind = args[:kind] if args.key?(:kind) @next_page_token = args[:next_page_token] if args.key?(:next_page_token) @warning = args[:warning] if args.key?(:warning) end # [Output Only] Informational warning message. class Warning include Google::Apis::Core::Hashable # [Output Only] A warning code, if applicable. For example, Compute Engine # returns NO_RESULTS_ON_PAGE if there are no results in the response. # Corresponds to the JSON property `code` # @return [String] attr_accessor :code # [Output Only] Metadata about this warning in key: value format. For example: " # data": [ ` "key": "scope", "value": "zones/us-east1-d" ` # Corresponds to the JSON property `data` # @return [Array] attr_accessor :data # [Output Only] A human-readable description of the warning code. # Corresponds to the JSON property `message` # @return [String] attr_accessor :message def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @code = args[:code] if args.key?(:code) @data = args[:data] if args.key?(:data) @message = args[:message] if args.key?(:message) end # class Datum include Google::Apis::Core::Hashable # [Output Only] A key that provides more detail on the warning being returned. # For example, for warnings where there are no results in a list request for a # particular zone, this key might be scope and the key value might be the zone # name. Other examples might be a key indicating a deprecated resource and a # suggested replacement, or a warning about invalid network settings (for # example, if an instance attempts to perform IP forwarding but is not enabled # for IP forwarding). # Corresponds to the JSON property `key` # @return [String] attr_accessor :key # [Output Only] A warning data value corresponding to the key. # 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 end end # Represents a rule that describes one or more match conditions along with the # action to be taken when traffic matches this condition (allow or deny). class FirewallPolicyRule include Google::Apis::Core::Hashable # The Action to perform when the client connection triggers the rule. Can # currently be either "allow" or "deny()" where valid values for status are 403, # 404, and 502. # Corresponds to the JSON property `action` # @return [String] attr_accessor :action # An optional description for this resource. # Corresponds to the JSON property `description` # @return [String] attr_accessor :description # The direction in which this rule applies. # Corresponds to the JSON property `direction` # @return [String] attr_accessor :direction # Denotes whether the firewall policy rule is disabled. When set to true, the # firewall policy rule is not enforced and traffic behaves as if it did not # exist. If this is unspecified, the firewall policy rule will be enabled. # Corresponds to the JSON property `disabled` # @return [Boolean] attr_accessor :disabled alias_method :disabled?, :disabled # Denotes whether to enable logging for a particular rule. If logging is enabled, # logs will be exported to the configured export destination in Stackdriver. # Logs may be exported to BigQuery or Pub/Sub. Note: you cannot enable logging # on "goto_next" rules. # Corresponds to the JSON property `enableLogging` # @return [Boolean] attr_accessor :enable_logging alias_method :enable_logging?, :enable_logging # [Output only] Type of the resource. Always compute#firewallPolicyRule for # firewall policy rules # Corresponds to the JSON property `kind` # @return [String] attr_accessor :kind # Represents a match condition that incoming traffic is evaluated against. # Exactly one field must be specified. # Corresponds to the JSON property `match` # @return [Google::Apis::ComputeAlpha::FirewallPolicyRuleMatcher] attr_accessor :match # An integer indicating the priority of a rule in the list. The priority must be # a positive value between 0 and 2147483647. Rules are evaluated from highest to # lowest priority where 0 is the highest priority and 2147483647 is the lowest # prority. # Corresponds to the JSON property `priority` # @return [Fixnum] attr_accessor :priority # An optional name for the rule. This field is not a unique identifier and can # be updated. # Corresponds to the JSON property `ruleName` # @return [String] attr_accessor :rule_name # [Output Only] Calculation of the complexity of a single firewall policy rule. # Corresponds to the JSON property `ruleTupleCount` # @return [Fixnum] attr_accessor :rule_tuple_count # A list of network resource URLs to which this rule applies. This field allows # you to control which network's VMs get this rule. If this field is left blank, # all VMs within the organization will receive the rule. # Corresponds to the JSON property `targetResources` # @return [Array] attr_accessor :target_resources # A list of secure tags that controls which instances the firewall rule applies # to. If targetSecureTag are specified, then the firewall rule applies only to # instances in the VPC network that have one of those EFFECTIVE secure tags, if # all the target_secure_tag are in INEFFECTIVE state, then this rule will be # ignored. targetSecureTag may not be set at the same time as # targetServiceAccounts. If neither targetServiceAccounts nor targetSecureTag # are specified, the firewall rule applies to all instances on the specified # network. Maximum number of target label tags allowed is 256. # Corresponds to the JSON property `targetSecureTags` # @return [Array] attr_accessor :target_secure_tags # A list of service accounts indicating the sets of instances that are applied # with this rule. # Corresponds to the JSON property `targetServiceAccounts` # @return [Array] attr_accessor :target_service_accounts def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @action = args[:action] if args.key?(:action) @description = args[:description] if args.key?(:description) @direction = args[:direction] if args.key?(:direction) @disabled = args[:disabled] if args.key?(:disabled) @enable_logging = args[:enable_logging] if args.key?(:enable_logging) @kind = args[:kind] if args.key?(:kind) @match = args[:match] if args.key?(:match) @priority = args[:priority] if args.key?(:priority) @rule_name = args[:rule_name] if args.key?(:rule_name) @rule_tuple_count = args[:rule_tuple_count] if args.key?(:rule_tuple_count) @target_resources = args[:target_resources] if args.key?(:target_resources) @target_secure_tags = args[:target_secure_tags] if args.key?(:target_secure_tags) @target_service_accounts = args[:target_service_accounts] if args.key?(:target_service_accounts) end end # Represents a match condition that incoming traffic is evaluated against. # Exactly one field must be specified. class FirewallPolicyRuleMatcher include Google::Apis::Core::Hashable # Address groups which should be matched against the traffic destination. # Maximum number of destination address groups is 10. # Corresponds to the JSON property `destAddressGroups` # @return [Array] attr_accessor :dest_address_groups # Fully Qualified Domain Name (FQDN) which should be matched against traffic # destination. Maximum number of destination fqdn allowed is 1000. # Corresponds to the JSON property `destFqdns` # @return [Array] attr_accessor :dest_fqdns # CIDR IP address range. Maximum number of destination CIDR IP ranges allowed is # 5000. # Corresponds to the JSON property `destIpRanges` # @return [Array] attr_accessor :dest_ip_ranges # Region codes whose IP addresses will be used to match for destination of # traffic. Should be specified as 2 letter country code defined as per ISO 3166 # alpha-2 country codes. ex."US" Maximum number of dest region codes allowed is # 5000. # Corresponds to the JSON property `destRegionCodes` # @return [Array] attr_accessor :dest_region_codes # Names of Network Threat Intelligence lists. The IPs in these lists will be # matched against traffic destination. # Corresponds to the JSON property `destThreatIntelligences` # @return [Array] attr_accessor :dest_threat_intelligences # Pairs of IP protocols and ports that the rule should match. # Corresponds to the JSON property `layer4Configs` # @return [Array] attr_accessor :layer4_configs # Address groups which should be matched against the traffic source. Maximum # number of source address groups is 10. # Corresponds to the JSON property `srcAddressGroups` # @return [Array] attr_accessor :src_address_groups # Fully Qualified Domain Name (FQDN) which should be matched against traffic # source. Maximum number of source fqdn allowed is 1000. # Corresponds to the JSON property `srcFqdns` # @return [Array] attr_accessor :src_fqdns # CIDR IP address range. Maximum number of source CIDR IP ranges allowed is 5000. # Corresponds to the JSON property `srcIpRanges` # @return [Array] attr_accessor :src_ip_ranges # Region codes whose IP addresses will be used to match for source of traffic. # Should be specified as 2 letter country code defined as per ISO 3166 alpha-2 # country codes. ex."US" Maximum number of source region codes allowed is 5000. # Corresponds to the JSON property `srcRegionCodes` # @return [Array] attr_accessor :src_region_codes # List of secure tag values, which should be matched at the source of the # traffic. For INGRESS rule, if all the srcSecureTag are INEFFECTIVE, and there # is no srcIpRange, this rule will be ignored. Maximum number of source tag # values allowed is 256. # Corresponds to the JSON property `srcSecureTags` # @return [Array] attr_accessor :src_secure_tags # Names of Network Threat Intelligence lists. The IPs in these lists will be # matched against traffic source. # Corresponds to the JSON property `srcThreatIntelligences` # @return [Array] attr_accessor :src_threat_intelligences def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @dest_address_groups = args[:dest_address_groups] if args.key?(:dest_address_groups) @dest_fqdns = args[:dest_fqdns] if args.key?(:dest_fqdns) @dest_ip_ranges = args[:dest_ip_ranges] if args.key?(:dest_ip_ranges) @dest_region_codes = args[:dest_region_codes] if args.key?(:dest_region_codes) @dest_threat_intelligences = args[:dest_threat_intelligences] if args.key?(:dest_threat_intelligences) @layer4_configs = args[:layer4_configs] if args.key?(:layer4_configs) @src_address_groups = args[:src_address_groups] if args.key?(:src_address_groups) @src_fqdns = args[:src_fqdns] if args.key?(:src_fqdns) @src_ip_ranges = args[:src_ip_ranges] if args.key?(:src_ip_ranges) @src_region_codes = args[:src_region_codes] if args.key?(:src_region_codes) @src_secure_tags = args[:src_secure_tags] if args.key?(:src_secure_tags) @src_threat_intelligences = args[:src_threat_intelligences] if args.key?(:src_threat_intelligences) end end # class FirewallPolicyRuleMatcherLayer4Config include Google::Apis::Core::Hashable # The IP protocol to which this rule applies. The protocol type is required when # creating a firewall rule. This value can either be one of the following well # known protocol strings (tcp, udp, icmp, esp, ah, ipip, sctp), or the IP # protocol number. # Corresponds to the JSON property `ipProtocol` # @return [String] attr_accessor :ip_protocol # An optional list of ports to which this rule applies. This field is only # applicable for UDP or TCP protocol. Each entry must be either an integer or a # range. If not specified, this rule applies to connections through any port. # Example inputs include: ["22"], ["80","443"], and ["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 FirewallPolicyRuleSecureTag include Google::Apis::Core::Hashable # Name of the secure tag, created with TagManager's TagValue API. # Corresponds to the JSON property `name` # @return [String] attr_accessor :name # [Output Only] State of the secure tag, either `EFFECTIVE` or `INEFFECTIVE`. A # secure tag is `INEFFECTIVE` when it is deleted or its network is deleted. # Corresponds to the JSON property `state` # @return [String] attr_accessor :state def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @name = args[:name] if args.key?(:name) @state = args[:state] if args.key?(:state) end end # Encapsulates numeric value that can be either absolute or relative. class FixedOrPercent include Google::Apis::Core::Hashable # [Output Only] Absolute value of VM instances calculated based on the specific # mode. - If the value is fixed, then the calculated value is equal to the fixed # value. - If the value is a percent, then the calculated value is percent/100 * # targetSize. For example, the calculated value of a 80% of a managed instance # group with 150 instances would be (80/100 * 150) = 120 VM instances. If there # is a remainder, the number is rounded. # Corresponds to the JSON property `calculated` # @return [Fixnum] attr_accessor :calculated # Specifies a fixed number of VM instances. This must be a positive integer. # Corresponds to the JSON property `fixed` # @return [Fixnum] attr_accessor :fixed # Specifies a percentage of instances between 0 to 100%, inclusive. For example, # specify 80 for 80%. # Corresponds to the JSON property `percent` # @return [Fixnum] attr_accessor :percent def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @calculated = args[:calculated] if args.key?(:calculated) @fixed = args[:fixed] if args.key?(:fixed) @percent = args[:percent] if args.key?(:percent) end end # Represents a Forwarding Rule resource. Forwarding rule resources in Google # Cloud can be either regional or global in scope: * [Global](https://cloud. # google.com/compute/docs/reference/rest/alpha/globalForwardingRules) * [ # Regional](https://cloud.google.com/compute/docs/reference/rest/alpha/ # forwardingRules) A forwarding rule and its corresponding IP address represent # the frontend configuration of a Google Cloud Platform load balancer. # Forwarding rules can also reference target instances and Cloud VPN Classic # gateways (targetVpnGateway). For more information, read Forwarding rule # concepts and Using protocol forwarding. class ForwardingRule include Google::Apis::Core::Hashable # IP address that this forwarding rule serves. When a client sends traffic to # this IP address, the forwarding rule directs the traffic to the target that # you specify in the forwarding rule. If you don't specify a reserved IP address, # an ephemeral IP address is assigned. Methods for specifying an IP address: * # IPv4 dotted decimal, as in `100.1.2.3` * Full URL, as in https://www. # googleapis.com/compute/v1/projects/project_id/regions/region /addresses/ # address-name * Partial URL or by name, as in: - projects/project_id/regions/ # region/addresses/address-name - regions/region/addresses/address-name - global/ # addresses/address-name - address-name The loadBalancingScheme and the # forwarding rule's target determine the type of IP address that you can use. # For detailed information, see [IP address specifications](https://cloud.google. # com/load-balancing/docs/forwarding-rule-concepts#ip_address_specifications). # Must be set to `0.0.0.0` when the target is targetGrpcProxy that has # validateForProxyless field set to true. For Private Service Connect forwarding # rules that forward traffic to Google APIs, IP address must be provided. # Corresponds to the JSON property `IPAddress` # @return [String] attr_accessor :ip_address # The IP protocol to which this rule applies. For protocol forwarding, valid # options are TCP, UDP, ESP, AH, SCTP, ICMP and L3_DEFAULT. The valid IP # protocols are different for different load balancing products as described in [ # Load balancing features](https://cloud.google.com/load-balancing/docs/features# # protocols_from_the_load_balancer_to_the_backends). # Corresponds to the JSON property `IPProtocol` # @return [String] attr_accessor :ip_protocol # This field is used along with the backend_service field for Internal TCP/UDP # Load Balancing or Network Load Balancing, or with the target field for # internal and external TargetInstance. You can only use one of ports and # port_range, or allPorts. The three are mutually exclusive. For TCP, UDP and # SCTP traffic, packets addressed to any ports will be forwarded to the target # or backendService. # Corresponds to the JSON property `allPorts` # @return [Boolean] attr_accessor :all_ports alias_method :all_ports?, :all_ports # This field is used along with the backend_service field for internal load # balancing or with the target field for internal TargetInstance. If the field # is set to TRUE, clients can access ILB from all regions. Otherwise only allows # access from clients in the same region as the internal load balancer. # Corresponds to the JSON property `allowGlobalAccess` # @return [Boolean] attr_accessor :allow_global_access alias_method :allow_global_access?, :allow_global_access # This is used in PSC consumer ForwardingRule to control whether the PSC # endpoint can be accessed from another region. # Corresponds to the JSON property `allowPscGlobalAccess` # @return [Boolean] attr_accessor :allow_psc_global_access alias_method :allow_psc_global_access?, :allow_psc_global_access # Identifies the backend service to which the forwarding rule sends traffic. # Required for Internal TCP/UDP Load Balancing and Network Load Balancing; must # be omitted for all other load balancer types. # Corresponds to the JSON property `backendService` # @return [String] attr_accessor :backend_service # [Output Only] Creation timestamp in RFC3339 text format. # Corresponds to the JSON property `creationTimestamp` # @return [String] attr_accessor :creation_timestamp # An optional description of this resource. Provide this property when you # create the resource. # Corresponds to the JSON property `description` # @return [String] attr_accessor :description # Fingerprint of this resource. A hash of the contents stored in this object. # This field is used in optimistic locking. This field will be ignored when # inserting a ForwardingRule. Include the fingerprint in patch request to ensure # that you do not overwrite changes that were applied from another concurrent # request. To see the latest fingerprint, make a get() request to retrieve a # ForwardingRule. # Corresponds to the JSON property `fingerprint` # NOTE: Values are automatically base64 encoded/decoded in the client library. # @return [String] attr_accessor :fingerprint # [Output Only] The unique identifier for the resource. This identifier is # defined by the server. # Corresponds to the JSON property `id` # @return [Fixnum] attr_accessor :id # The IP Version that will be used by this forwarding rule. Valid options are # IPV4 or IPV6. This can only be specified for an external global forwarding # rule. # Corresponds to the JSON property `ipVersion` # @return [String] attr_accessor :ip_version # Indicates whether or not this load balancer can be used as a collector for # packet mirroring. To prevent mirroring loops, instances behind this load # balancer will not have their traffic mirrored even if a PacketMirroring rule # applies to them. This can only be set to true for load balancers that have # their loadBalancingScheme set to INTERNAL. # Corresponds to the JSON property `isMirroringCollector` # @return [Boolean] attr_accessor :is_mirroring_collector alias_method :is_mirroring_collector?, :is_mirroring_collector # [Output Only] Type of the resource. Always compute#forwardingRule for # Forwarding Rule resources. # Corresponds to the JSON property `kind` # @return [String] attr_accessor :kind # A fingerprint for the labels being applied to this resource, which is # essentially a hash of the labels set used for optimistic locking. The # fingerprint is initially generated by Compute Engine and changes after every # request to modify or update labels. You must always provide an up-to-date # fingerprint hash in order to update or change labels, otherwise the request # will fail with error 412 conditionNotMet. To see the latest fingerprint, make # a get() request to retrieve a ForwardingRule. # Corresponds to the JSON property `labelFingerprint` # NOTE: Values are automatically base64 encoded/decoded in the client library. # @return [String] attr_accessor :label_fingerprint # Labels for this resource. These can only be added or modified by the setLabels # method. Each label key/value pair must comply with RFC1035. Label values may # be empty. # Corresponds to the JSON property `labels` # @return [Hash] attr_accessor :labels # Specifies the forwarding rule type. For more information about forwarding # rules, refer to Forwarding rule concepts. # Corresponds to the JSON property `loadBalancingScheme` # @return [String] attr_accessor :load_balancing_scheme # Opaque filter criteria used by load balancer to restrict routing configuration # to a limited set of xDS compliant clients. In their xDS requests to load # balancer, xDS clients present node metadata. When there is a match, the # relevant configuration is made available to those proxies. Otherwise, all the # resources (e.g. TargetHttpProxy, UrlMap) referenced by the ForwardingRule are # not visible to those proxies. For each metadataFilter in this list, if its # filterMatchCriteria is set to MATCH_ANY, at least one of the filterLabels must # match the corresponding label provided in the metadata. If its # filterMatchCriteria is set to MATCH_ALL, then all of its filterLabels must # match with corresponding labels provided in the metadata. If multiple # metadataFilters are specified, all of them need to be satisfied in order to be # considered a match. metadataFilters specified here will be applifed before # those specified in the UrlMap that this ForwardingRule references. # metadataFilters only applies to Loadbalancers that have their # loadBalancingScheme set to INTERNAL_SELF_MANAGED. # Corresponds to the JSON property `metadataFilters` # @return [Array] attr_accessor :metadata_filters # Name of the resource; provided by the client when the resource is created. The # name must be 1-63 characters long, and comply with RFC1035. Specifically, the # name must be 1-63 characters long and match the regular expression `[a-z]([-a- # z0-9]*[a-z0-9])?` which means the first character must be a lowercase letter, # and all following characters must be a dash, lowercase letter, or digit, # except the last character, which cannot be a dash. For Private Service Connect # forwarding rules that forward traffic to Google APIs, the forwarding rule name # must be a 1-20 characters string with lowercase letters and numbers and must # start with a letter. # Corresponds to the JSON property `name` # @return [String] attr_accessor :name # This field is not used for external load balancing. For Internal TCP/UDP Load # Balancing, this field identifies the network that the load balanced IP should # belong to for this Forwarding Rule. If this field is not specified, the # default network will be used. For Private Service Connect forwarding rules # that forward traffic to Google APIs, a network must be provided. # Corresponds to the JSON property `network` # @return [String] attr_accessor :network # This signifies the networking tier used for configuring this load balancer and # can only take the following values: PREMIUM, STANDARD. For regional # ForwardingRule, the valid values are PREMIUM and STANDARD. For # GlobalForwardingRule, the valid value is PREMIUM. If this field is not # specified, it is assumed to be PREMIUM. If IPAddress is specified, this value # must be equal to the networkTier of the Address. # Corresponds to the JSON property `networkTier` # @return [String] attr_accessor :network_tier # This is used in PSC consumer ForwardingRule to control whether it should try # to auto-generate a DNS zone or not. Non-PSC forwarding rules do not use this # field. # Corresponds to the JSON property `noAutomateDnsZone` # @return [Boolean] attr_accessor :no_automate_dns_zone alias_method :no_automate_dns_zone?, :no_automate_dns_zone # This field can be used only if: - Load balancing scheme is one of EXTERNAL, # INTERNAL_SELF_MANAGED or INTERNAL_MANAGED - IPProtocol is one of TCP, UDP, or # SCTP. Packets addressed to ports in the specified range will be forwarded to # target or backend_service. You can only use one of ports, port_range, or # allPorts. The three are mutually exclusive. Forwarding rules with the same [ # IPAddress, IPProtocol] pair must have disjoint ports. Some types of forwarding # target have constraints on the acceptable ports. For more information, see [ # Port specifications](https://cloud.google.com/load-balancing/docs/forwarding- # rule-concepts#port_specifications). @pattern: \\d+(?:-\\d+)? # Corresponds to the JSON property `portRange` # @return [String] attr_accessor :port_range # The ports field is only supported when the forwarding rule references a # backend_service directly. Only packets addressed to the [specified list of # ports]((https://cloud.google.com/load-balancing/docs/forwarding-rule-concepts# # port_specifications)) are forwarded to backends. You can only use one of ports # and port_range, or allPorts. The three are mutually exclusive. You can specify # a list of up to five ports, which can be non-contiguous. Forwarding rules with # the same [IPAddress, IPProtocol] pair must have disjoint ports. @pattern: \\d+( # ?:-\\d+)? # Corresponds to the JSON property `ports` # @return [Array] attr_accessor :ports # [Output Only] The PSC connection id of the PSC Forwarding Rule. # Corresponds to the JSON property `pscConnectionId` # @return [Fixnum] attr_accessor :psc_connection_id # # Corresponds to the JSON property `pscConnectionStatus` # @return [String] attr_accessor :psc_connection_status # [Output Only] URL of the region where the regional forwarding rule resides. # This field is not applicable to global forwarding rules. You must specify this # field as part of the HTTP request URL. It is not settable as a field in the # request body. # Corresponds to the JSON property `region` # @return [String] attr_accessor :region # [Output Only] Server-defined URL for the resource. # Corresponds to the JSON property `selfLink` # @return [String] attr_accessor :self_link # [Output Only] Server-defined URL for this resource with the resource id. # Corresponds to the JSON property `selfLinkWithId` # @return [String] attr_accessor :self_link_with_id # Service Directory resources to register this forwarding rule with. Currently, # only supports a single Service Directory resource. # Corresponds to the JSON property `serviceDirectoryRegistrations` # @return [Array] attr_accessor :service_directory_registrations # An optional prefix to the service name for this Forwarding Rule. If specified, # the prefix is the first label of the fully qualified service name. The label # must be 1-63 characters long, and comply with RFC1035. Specifically, the label # must be 1-63 characters long and match the regular expression `[a-z]([-a-z0-9]* # [a-z0-9])?` which means the first character must be a lowercase letter, and # all following characters must be a dash, lowercase letter, or digit, except # the last character, which cannot be a dash. This field is only used for # internal load balancing. # Corresponds to the JSON property `serviceLabel` # @return [String] attr_accessor :service_label # [Output Only] The internal fully qualified service name for this Forwarding # Rule. This field is only used for internal load balancing. # Corresponds to the JSON property `serviceName` # @return [String] attr_accessor :service_name # If not empty, this Forwarding Rule will only forward the traffic when the # source IP address matches one of the IP addresses or CIDR ranges set here. # Note that a Forwarding Rule can only have up to 64 source IP ranges, and this # field can only be used with a regional Forwarding Rule whose scheme is # EXTERNAL. Each source_ip_range entry should be either an IP address (for # example, 1.2.3.4) or a CIDR range (for example, 1.2.3.0/24). # Corresponds to the JSON property `sourceIpRanges` # @return [Array] attr_accessor :source_ip_ranges # This field identifies the subnetwork that the load balanced IP should belong # to for this Forwarding Rule, used in internal load balancing and network load # balancing with IPv6. If the network specified is in auto subnet mode, this # field is optional. However, a subnetwork must be specified if the network is # in custom subnet mode or when creating external forwarding rule with IPv6. # Corresponds to the JSON property `subnetwork` # @return [String] attr_accessor :subnetwork # # Corresponds to the JSON property `target` # @return [String] attr_accessor :target def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @ip_address = args[:ip_address] if args.key?(:ip_address) @ip_protocol = args[:ip_protocol] if args.key?(:ip_protocol) @all_ports = args[:all_ports] if args.key?(:all_ports) @allow_global_access = args[:allow_global_access] if args.key?(:allow_global_access) @allow_psc_global_access = args[:allow_psc_global_access] if args.key?(:allow_psc_global_access) @backend_service = args[:backend_service] if args.key?(:backend_service) @creation_timestamp = args[:creation_timestamp] if args.key?(:creation_timestamp) @description = args[:description] if args.key?(:description) @fingerprint = args[:fingerprint] if args.key?(:fingerprint) @id = args[:id] if args.key?(:id) @ip_version = args[:ip_version] if args.key?(:ip_version) @is_mirroring_collector = args[:is_mirroring_collector] if args.key?(:is_mirroring_collector) @kind = args[:kind] if args.key?(:kind) @label_fingerprint = args[:label_fingerprint] if args.key?(:label_fingerprint) @labels = args[:labels] if args.key?(:labels) @load_balancing_scheme = args[:load_balancing_scheme] if args.key?(:load_balancing_scheme) @metadata_filters = args[:metadata_filters] if args.key?(:metadata_filters) @name = args[:name] if args.key?(:name) @network = args[:network] if args.key?(:network) @network_tier = args[:network_tier] if args.key?(:network_tier) @no_automate_dns_zone = args[:no_automate_dns_zone] if args.key?(:no_automate_dns_zone) @port_range = args[:port_range] if args.key?(:port_range) @ports = args[:ports] if args.key?(:ports) @psc_connection_id = args[:psc_connection_id] if args.key?(:psc_connection_id) @psc_connection_status = args[:psc_connection_status] if args.key?(:psc_connection_status) @region = args[:region] if args.key?(:region) @self_link = args[:self_link] if args.key?(:self_link) @self_link_with_id = args[:self_link_with_id] if args.key?(:self_link_with_id) @service_directory_registrations = args[:service_directory_registrations] if args.key?(:service_directory_registrations) @service_label = args[:service_label] if args.key?(:service_label) @service_name = args[:service_name] if args.key?(:service_name) @source_ip_ranges = args[:source_ip_ranges] if args.key?(:source_ip_ranges) @subnetwork = args[:subnetwork] if args.key?(:subnetwork) @target = args[:target] if args.key?(:target) end end # class ForwardingRuleAggregatedList include Google::Apis::Core::Hashable # [Output Only] Unique identifier for the resource; defined by the server. # Corresponds to the JSON property `id` # @return [String] attr_accessor :id # A list of ForwardingRulesScopedList resources. # Corresponds to the JSON property `items` # @return [Hash] attr_accessor :items # [Output Only] Type of resource. Always compute#forwardingRuleAggregatedList # for lists of forwarding rules. # Corresponds to the JSON property `kind` # @return [String] attr_accessor :kind # [Output Only] This token allows you to get the next page of results for list # requests. If the number of results is larger than maxResults, use the # nextPageToken as a value for the query parameter pageToken in the next list # request. Subsequent list requests will have their own nextPageToken to # continue paging through the results. # Corresponds to the JSON property `nextPageToken` # @return [String] attr_accessor :next_page_token # [Output Only] Server-defined URL for this resource. # Corresponds to the JSON property `selfLink` # @return [String] attr_accessor :self_link # [Output Only] Unreachable resources. # Corresponds to the JSON property `unreachables` # @return [Array] attr_accessor :unreachables # [Output Only] Informational warning message. # Corresponds to the JSON property `warning` # @return [Google::Apis::ComputeAlpha::ForwardingRuleAggregatedList::Warning] attr_accessor :warning def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @id = args[:id] if args.key?(:id) @items = args[:items] if args.key?(:items) @kind = args[:kind] if args.key?(:kind) @next_page_token = args[:next_page_token] if args.key?(:next_page_token) @self_link = args[:self_link] if args.key?(:self_link) @unreachables = args[:unreachables] if args.key?(:unreachables) @warning = args[:warning] if args.key?(:warning) end # [Output Only] Informational warning message. class Warning include Google::Apis::Core::Hashable # [Output Only] A warning code, if applicable. For example, Compute Engine # returns NO_RESULTS_ON_PAGE if there are no results in the response. # Corresponds to the JSON property `code` # @return [String] attr_accessor :code # [Output Only] Metadata about this warning in key: value format. For example: " # data": [ ` "key": "scope", "value": "zones/us-east1-d" ` # Corresponds to the JSON property `data` # @return [Array] attr_accessor :data # [Output Only] A human-readable description of the warning code. # Corresponds to the JSON property `message` # @return [String] attr_accessor :message def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @code = args[:code] if args.key?(:code) @data = args[:data] if args.key?(:data) @message = args[:message] if args.key?(:message) end # class Datum include Google::Apis::Core::Hashable # [Output Only] A key that provides more detail on the warning being returned. # For example, for warnings where there are no results in a list request for a # particular zone, this key might be scope and the key value might be the zone # name. Other examples might be a key indicating a deprecated resource and a # suggested replacement, or a warning about invalid network settings (for # example, if an instance attempts to perform IP forwarding but is not enabled # for IP forwarding). # Corresponds to the JSON property `key` # @return [String] attr_accessor :key # [Output Only] A warning data value corresponding to the key. # 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 end end # Contains a list of ForwardingRule resources. class ForwardingRuleList include Google::Apis::Core::Hashable # [Output Only] Unique identifier for the resource; defined by the server. # Corresponds to the JSON property `id` # @return [String] attr_accessor :id # A list of ForwardingRule resources. # Corresponds to the JSON property `items` # @return [Array] attr_accessor :items # Type of resource. # Corresponds to the JSON property `kind` # @return [String] attr_accessor :kind # [Output Only] This token allows you to get the next page of results for list # requests. If the number of results is larger than maxResults, use the # nextPageToken as a value for the query parameter pageToken in the next list # request. Subsequent list requests will have their own nextPageToken to # continue paging through the results. # Corresponds to the JSON property `nextPageToken` # @return [String] attr_accessor :next_page_token # [Output Only] Server-defined URL for this resource. # Corresponds to the JSON property `selfLink` # @return [String] attr_accessor :self_link # [Output Only] Informational warning message. # Corresponds to the JSON property `warning` # @return [Google::Apis::ComputeAlpha::ForwardingRuleList::Warning] attr_accessor :warning def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @id = args[:id] if args.key?(:id) @items = args[:items] if args.key?(:items) @kind = args[:kind] if args.key?(:kind) @next_page_token = args[:next_page_token] if args.key?(:next_page_token) @self_link = args[:self_link] if args.key?(:self_link) @warning = args[:warning] if args.key?(:warning) end # [Output Only] Informational warning message. class Warning include Google::Apis::Core::Hashable # [Output Only] A warning code, if applicable. For example, Compute Engine # returns NO_RESULTS_ON_PAGE if there are no results in the response. # Corresponds to the JSON property `code` # @return [String] attr_accessor :code # [Output Only] Metadata about this warning in key: value format. For example: " # data": [ ` "key": "scope", "value": "zones/us-east1-d" ` # Corresponds to the JSON property `data` # @return [Array] attr_accessor :data # [Output Only] A human-readable description of the warning code. # Corresponds to the JSON property `message` # @return [String] attr_accessor :message def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @code = args[:code] if args.key?(:code) @data = args[:data] if args.key?(:data) @message = args[:message] if args.key?(:message) end # class Datum include Google::Apis::Core::Hashable # [Output Only] A key that provides more detail on the warning being returned. # For example, for warnings where there are no results in a list request for a # particular zone, this key might be scope and the key value might be the zone # name. Other examples might be a key indicating a deprecated resource and a # suggested replacement, or a warning about invalid network settings (for # example, if an instance attempts to perform IP forwarding but is not enabled # for IP forwarding). # Corresponds to the JSON property `key` # @return [String] attr_accessor :key # [Output Only] A warning data value corresponding to the key. # 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 end end # class ForwardingRuleReference include Google::Apis::Core::Hashable # # Corresponds to the JSON property `forwardingRule` # @return [String] attr_accessor :forwarding_rule def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @forwarding_rule = args[:forwarding_rule] if args.key?(:forwarding_rule) end end # Describes the auto-registration of the Forwarding Rule to Service Directory. # The region and project of the Service Directory resource generated from this # registration will be the same as this Forwarding Rule. class ForwardingRuleServiceDirectoryRegistration include Google::Apis::Core::Hashable # Service Directory namespace to register the forwarding rule under. # Corresponds to the JSON property `namespace` # @return [String] attr_accessor :namespace # Service Directory service to register the forwarding rule under. # Corresponds to the JSON property `service` # @return [String] attr_accessor :service # [Optional] Service Directory region to register this global forwarding rule # under. Default to "us-central1". Only used for PSC for Google APIs. All PSC # for Google APIs Forwarding Rules on the same network should use the same # Service Directory region. # Corresponds to the JSON property `serviceDirectoryRegion` # @return [String] attr_accessor :service_directory_region def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @namespace = args[:namespace] if args.key?(:namespace) @service = args[:service] if args.key?(:service) @service_directory_region = args[:service_directory_region] if args.key?(:service_directory_region) end end # class ForwardingRulesScopedList include Google::Apis::Core::Hashable # A list of forwarding rules contained in this scope. # Corresponds to the JSON property `forwardingRules` # @return [Array] attr_accessor :forwarding_rules # Informational warning which replaces the list of forwarding rules when the # list is empty. # Corresponds to the JSON property `warning` # @return [Google::Apis::ComputeAlpha::ForwardingRulesScopedList::Warning] attr_accessor :warning def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @forwarding_rules = args[:forwarding_rules] if args.key?(:forwarding_rules) @warning = args[:warning] if args.key?(:warning) end # Informational warning which replaces the list of forwarding rules when the # list is empty. class Warning include Google::Apis::Core::Hashable # [Output Only] A warning code, if applicable. For example, Compute Engine # returns NO_RESULTS_ON_PAGE if there are no results in the response. # Corresponds to the JSON property `code` # @return [String] attr_accessor :code # [Output Only] Metadata about this warning in key: value format. For example: " # data": [ ` "key": "scope", "value": "zones/us-east1-d" ` # Corresponds to the JSON property `data` # @return [Array] attr_accessor :data # [Output Only] A human-readable description of the warning code. # Corresponds to the JSON property `message` # @return [String] attr_accessor :message def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @code = args[:code] if args.key?(:code) @data = args[:data] if args.key?(:data) @message = args[:message] if args.key?(:message) end # class Datum include Google::Apis::Core::Hashable # [Output Only] A key that provides more detail on the warning being returned. # For example, for warnings where there are no results in a list request for a # particular zone, this key might be scope and the key value might be the zone # name. Other examples might be a key indicating a deprecated resource and a # suggested replacement, or a warning about invalid network settings (for # example, if an instance attempts to perform IP forwarding but is not enabled # for IP forwarding). # Corresponds to the JSON property `key` # @return [String] attr_accessor :key # [Output Only] A warning data value corresponding to the key. # 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 end end # class FutureReservation include Google::Apis::Core::Hashable # [Output Only] The creation timestamp for this future reservation in RFC3339 # text format. # Corresponds to the JSON property `creationTimestamp` # @return [String] attr_accessor :creation_timestamp # An optional description of this resource. Provide this property when you # create the future reservation. # Corresponds to the JSON property `description` # @return [String] attr_accessor :description # [Output Only] A unique identifier for this future reservation. The server # defines this identifier. # Corresponds to the JSON property `id` # @return [Fixnum] attr_accessor :id # [Output Only] Type of the resource. Always compute#futureReservation for # future reservations. # Corresponds to the JSON property `kind` # @return [String] attr_accessor :kind # The name of the resource, provided by the client when initially creating the # resource. The resource name must be 1-63 characters long, and comply with # RFC1035. Specifically, the name must be 1-63 characters long and match the # regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first # character must be a lowercase letter, and all following characters must be a # dash, lowercase letter, or digit, except the last character, which cannot be a # dash. # Corresponds to the JSON property `name` # @return [String] attr_accessor :name # Name prefix for the reservations to be created at the time of delivery. The # name prefix must comply with RFC1035. Maximum allowed length for name prefix # is 20. Automatically created reservations name format will be -date-####. # Corresponds to the JSON property `namePrefix` # @return [String] attr_accessor :name_prefix # [Output Only] Server-defined fully-qualified URL for this resource. # Corresponds to the JSON property `selfLink` # @return [String] attr_accessor :self_link # [Output Only] Server-defined URL for this resource with the resource id. # Corresponds to the JSON property `selfLinkWithId` # @return [String] attr_accessor :self_link_with_id # The share setting for reservations and sole tenancy node groups. # Corresponds to the JSON property `shareSettings` # @return [Google::Apis::ComputeAlpha::ShareSettings] attr_accessor :share_settings # Future Reservation configuration to indicate instance properties and total # count. # Corresponds to the JSON property `specificSkuProperties` # @return [Google::Apis::ComputeAlpha::FutureReservationSpecificSkuProperties] attr_accessor :specific_sku_properties # [Output only] Represents status related to the future reservation. # Corresponds to the JSON property `status` # @return [Google::Apis::ComputeAlpha::FutureReservationStatus] attr_accessor :status # Time window for this Future Reservation. # Corresponds to the JSON property `timeWindow` # @return [Google::Apis::ComputeAlpha::FutureReservationTimeWindow] attr_accessor :time_window # [Output Only] URL of the Zone where this future reservation resides. # 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) @creation_timestamp = args[:creation_timestamp] if args.key?(:creation_timestamp) @description = args[:description] if args.key?(:description) @id = args[:id] if args.key?(:id) @kind = args[:kind] if args.key?(:kind) @name = args[:name] if args.key?(:name) @name_prefix = args[:name_prefix] if args.key?(:name_prefix) @self_link = args[:self_link] if args.key?(:self_link) @self_link_with_id = args[:self_link_with_id] if args.key?(:self_link_with_id) @share_settings = args[:share_settings] if args.key?(:share_settings) @specific_sku_properties = args[:specific_sku_properties] if args.key?(:specific_sku_properties) @status = args[:status] if args.key?(:status) @time_window = args[:time_window] if args.key?(:time_window) @zone = args[:zone] if args.key?(:zone) end end # class FutureReservationSpecificSkuProperties include Google::Apis::Core::Hashable # Properties of the SKU instances being reserved. Next ID: 9 # Corresponds to the JSON property `instanceProperties` # @return [Google::Apis::ComputeAlpha::AllocationSpecificSkuAllocationReservedInstanceProperties] attr_accessor :instance_properties # Total number of instances for which capacity assurance is requested at a # future time period. # Corresponds to the JSON property `totalCount` # @return [Fixnum] attr_accessor :total_count def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @instance_properties = args[:instance_properties] if args.key?(:instance_properties) @total_count = args[:total_count] if args.key?(:total_count) end end # [Output only] Represents status related to the future reservation. class FutureReservationStatus include Google::Apis::Core::Hashable # Fully qualified urls of the automatically created reservations at start_time. # Corresponds to the JSON property `autoCreatedReservations` # @return [Array] attr_accessor :auto_created_reservations # This count indicates the fulfilled capacity so far. This is set during " # PROVISIONING" state. This count also includes capacity delivered as part of # existing matching reservations. # Corresponds to the JSON property `fulfilledCount` # @return [Fixnum] attr_accessor :fulfilled_count # Time when Future Reservation would become LOCKED, after which no modifications # to Future Reservation will be allowed. Applicable only after the Future # Reservation is in the APPROVED state. The lock_time is an RFC3339 string. The # procurement_status will transition to PROCURING state at this time. # Corresponds to the JSON property `lockTime` # @return [String] attr_accessor :lock_time # Current state of this Future Reservation # Corresponds to the JSON property `procurementStatus` # @return [String] attr_accessor :procurement_status def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @auto_created_reservations = args[:auto_created_reservations] if args.key?(:auto_created_reservations) @fulfilled_count = args[:fulfilled_count] if args.key?(:fulfilled_count) @lock_time = args[:lock_time] if args.key?(:lock_time) @procurement_status = args[:procurement_status] if args.key?(:procurement_status) end end # class FutureReservationTimeWindow include Google::Apis::Core::Hashable # A Duration represents a fixed-length span of time represented as a count of # seconds and fractions of seconds at nanosecond resolution. It is independent # of any calendar and concepts like "day" or "month". Range is approximately 10, # 000 years. # Corresponds to the JSON property `duration` # @return [Google::Apis::ComputeAlpha::Duration] attr_accessor :duration # # Corresponds to the JSON property `endTime` # @return [String] attr_accessor :end_time # Start time of the Future Reservation. The start_time is an RFC3339 string. # Corresponds to the JSON property `startTime` # @return [String] attr_accessor :start_time def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @duration = args[:duration] if args.key?(:duration) @end_time = args[:end_time] if args.key?(:end_time) @start_time = args[:start_time] if args.key?(:start_time) end end # Contains a list of future reservations. class FutureReservationsAggregatedListResponse include Google::Apis::Core::Hashable # # Corresponds to the JSON property `etag` # @return [String] attr_accessor :etag # [Output Only] Unique identifier for the resource; defined by the server. # Corresponds to the JSON property `id` # @return [String] attr_accessor :id # A list of Future reservation resources. # Corresponds to the JSON property `items` # @return [Hash] attr_accessor :items # [Output Only] Type of resource. Always compute# # futureReservationsAggregatedListResponse for future resevation aggregated list # response. # Corresponds to the JSON property `kind` # @return [String] attr_accessor :kind # [Output Only] This token allows you to get the next page of results for list # requests. If the number of results is larger than maxResults, use the # nextPageToken as a value for the query parameter pageToken in the next list # request. Subsequent list requests will have their own nextPageToken to # continue paging through the results. # Corresponds to the JSON property `nextPageToken` # @return [String] attr_accessor :next_page_token # [Output Only] Server-defined URL for this resource. # Corresponds to the JSON property `selfLink` # @return [String] attr_accessor :self_link # [Output Only] Unreachable resources. # Corresponds to the JSON property `unreachables` # @return [Array] attr_accessor :unreachables # [Output Only] Informational warning message. # Corresponds to the JSON property `warning` # @return [Google::Apis::ComputeAlpha::FutureReservationsAggregatedListResponse::Warning] attr_accessor :warning def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @etag = args[:etag] if args.key?(:etag) @id = args[:id] if args.key?(:id) @items = args[:items] if args.key?(:items) @kind = args[:kind] if args.key?(:kind) @next_page_token = args[:next_page_token] if args.key?(:next_page_token) @self_link = args[:self_link] if args.key?(:self_link) @unreachables = args[:unreachables] if args.key?(:unreachables) @warning = args[:warning] if args.key?(:warning) end # [Output Only] Informational warning message. class Warning include Google::Apis::Core::Hashable # [Output Only] A warning code, if applicable. For example, Compute Engine # returns NO_RESULTS_ON_PAGE if there are no results in the response. # Corresponds to the JSON property `code` # @return [String] attr_accessor :code # [Output Only] Metadata about this warning in key: value format. For example: " # data": [ ` "key": "scope", "value": "zones/us-east1-d" ` # Corresponds to the JSON property `data` # @return [Array] attr_accessor :data # [Output Only] A human-readable description of the warning code. # Corresponds to the JSON property `message` # @return [String] attr_accessor :message def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @code = args[:code] if args.key?(:code) @data = args[:data] if args.key?(:data) @message = args[:message] if args.key?(:message) end # class Datum include Google::Apis::Core::Hashable # [Output Only] A key that provides more detail on the warning being returned. # For example, for warnings where there are no results in a list request for a # particular zone, this key might be scope and the key value might be the zone # name. Other examples might be a key indicating a deprecated resource and a # suggested replacement, or a warning about invalid network settings (for # example, if an instance attempts to perform IP forwarding but is not enabled # for IP forwarding). # Corresponds to the JSON property `key` # @return [String] attr_accessor :key # [Output Only] A warning data value corresponding to the key. # 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 end end # class FutureReservationsListResponse include Google::Apis::Core::Hashable # # Corresponds to the JSON property `etag` # @return [String] attr_accessor :etag # [Output Only] The unique identifier for the resource. This identifier is # defined by the server. # Corresponds to the JSON property `id` # @return [String] attr_accessor :id # [Output Only] A list of future reservation resources. # Corresponds to the JSON property `items` # @return [Array] attr_accessor :items # [Output Only] Type of resource.Always compute#FutureReservationsListResponse # for lists of reservations # Corresponds to the JSON property `kind` # @return [String] attr_accessor :kind # [Output Only] This token allows you to get the next page of results for list # requests. If the number of results is larger than maxResults, use the # nextPageToken as a value for the query parameter pageToken in the next list # request. Subsequent list requests will have their own nextPageToken to # continue paging through the results. # Corresponds to the JSON property `nextPageToken` # @return [String] attr_accessor :next_page_token # [Output Only] Server-defined URL for this resource. # Corresponds to the JSON property `selfLink` # @return [String] attr_accessor :self_link # [Output Only] Unreachable resources. # Corresponds to the JSON property `unreachables` # @return [Array] attr_accessor :unreachables # [Output Only] Informational warning message. # Corresponds to the JSON property `warning` # @return [Google::Apis::ComputeAlpha::FutureReservationsListResponse::Warning] attr_accessor :warning def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @etag = args[:etag] if args.key?(:etag) @id = args[:id] if args.key?(:id) @items = args[:items] if args.key?(:items) @kind = args[:kind] if args.key?(:kind) @next_page_token = args[:next_page_token] if args.key?(:next_page_token) @self_link = args[:self_link] if args.key?(:self_link) @unreachables = args[:unreachables] if args.key?(:unreachables) @warning = args[:warning] if args.key?(:warning) end # [Output Only] Informational warning message. class Warning include Google::Apis::Core::Hashable # [Output Only] A warning code, if applicable. For example, Compute Engine # returns NO_RESULTS_ON_PAGE if there are no results in the response. # Corresponds to the JSON property `code` # @return [String] attr_accessor :code # [Output Only] Metadata about this warning in key: value format. For example: " # data": [ ` "key": "scope", "value": "zones/us-east1-d" ` # Corresponds to the JSON property `data` # @return [Array] attr_accessor :data # [Output Only] A human-readable description of the warning code. # Corresponds to the JSON property `message` # @return [String] attr_accessor :message def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @code = args[:code] if args.key?(:code) @data = args[:data] if args.key?(:data) @message = args[:message] if args.key?(:message) end # class Datum include Google::Apis::Core::Hashable # [Output Only] A key that provides more detail on the warning being returned. # For example, for warnings where there are no results in a list request for a # particular zone, this key might be scope and the key value might be the zone # name. Other examples might be a key indicating a deprecated resource and a # suggested replacement, or a warning about invalid network settings (for # example, if an instance attempts to perform IP forwarding but is not enabled # for IP forwarding). # Corresponds to the JSON property `key` # @return [String] attr_accessor :key # [Output Only] A warning data value corresponding to the key. # 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 end end # class FutureReservationsScopedList include Google::Apis::Core::Hashable # A list of future reservations contained in this scope. # Corresponds to the JSON property `futureReservations` # @return [Array] attr_accessor :future_reservations # Informational warning which replaces the list of future reservations when the # list is empty. # Corresponds to the JSON property `warning` # @return [Google::Apis::ComputeAlpha::FutureReservationsScopedList::Warning] attr_accessor :warning def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @future_reservations = args[:future_reservations] if args.key?(:future_reservations) @warning = args[:warning] if args.key?(:warning) end # Informational warning which replaces the list of future reservations when the # list is empty. class Warning include Google::Apis::Core::Hashable # [Output Only] A warning code, if applicable. For example, Compute Engine # returns NO_RESULTS_ON_PAGE if there are no results in the response. # Corresponds to the JSON property `code` # @return [String] attr_accessor :code # [Output Only] Metadata about this warning in key: value format. For example: " # data": [ ` "key": "scope", "value": "zones/us-east1-d" ` # Corresponds to the JSON property `data` # @return [Array] attr_accessor :data # [Output Only] A human-readable description of the warning code. # Corresponds to the JSON property `message` # @return [String] attr_accessor :message def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @code = args[:code] if args.key?(:code) @data = args[:data] if args.key?(:data) @message = args[:message] if args.key?(:message) end # class Datum include Google::Apis::Core::Hashable # [Output Only] A key that provides more detail on the warning being returned. # For example, for warnings where there are no results in a list request for a # particular zone, this key might be scope and the key value might be the zone # name. Other examples might be a key indicating a deprecated resource and a # suggested replacement, or a warning about invalid network settings (for # example, if an instance attempts to perform IP forwarding but is not enabled # for IP forwarding). # Corresponds to the JSON property `key` # @return [String] attr_accessor :key # [Output Only] A warning data value corresponding to the key. # 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 end end # class GrpcHealthCheck include Google::Apis::Core::Hashable # The gRPC service name for the health check. This field is optional. The value # of grpc_service_name has the following meanings by convention: - Empty # service_name means the overall status of all services at the backend. - Non- # empty service_name means the health of that gRPC service, as defined by the # owner of the service. The grpc_service_name can only be ASCII. # Corresponds to the JSON property `grpcServiceName` # @return [String] attr_accessor :grpc_service_name # The port number for the health check request. Must be specified if port_name # and port_specification are not set or if port_specification is USE_FIXED_PORT. # Valid values are 1 through 65535. # Corresponds to the JSON property `port` # @return [Fixnum] attr_accessor :port # Port name as defined in InstanceGroup#NamedPort#name. If both port and # port_name are defined, port takes precedence. The port_name should conform to # RFC1035. # Corresponds to the JSON property `portName` # @return [String] attr_accessor :port_name # Specifies how port is selected for health checking, can be one of following # values: USE_FIXED_PORT: The port number in port is used for health checking. # USE_NAMED_PORT: The portName is used for health checking. USE_SERVING_PORT: # For NetworkEndpointGroup, the port specified for each network endpoint is used # for health checking. For other backends, the port or named port specified in # the Backend Service is used for health checking. If not specified, gRPC health # check follows behavior specified in port and portName fields. # Corresponds to the JSON property `portSpecification` # @return [String] attr_accessor :port_specification def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @grpc_service_name = args[:grpc_service_name] if args.key?(:grpc_service_name) @port = args[:port] if args.key?(:port) @port_name = args[:port_name] if args.key?(:port_name) @port_specification = args[:port_specification] if args.key?(:port_specification) end end # class GetOwnerInstanceResponse include Google::Apis::Core::Hashable # Full instance resource URL. # Corresponds to the JSON property `instance` # @return [String] attr_accessor :instance def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @instance = args[:instance] if args.key?(:instance) end end # class GlobalNetworkEndpointGroupsAttachEndpointsRequest include Google::Apis::Core::Hashable # The list of network endpoints to be attached. # Corresponds to the JSON property `networkEndpoints` # @return [Array] attr_accessor :network_endpoints def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @network_endpoints = args[:network_endpoints] if args.key?(:network_endpoints) end end # class GlobalNetworkEndpointGroupsDetachEndpointsRequest include Google::Apis::Core::Hashable # The list of network endpoints to be detached. # Corresponds to the JSON property `networkEndpoints` # @return [Array] attr_accessor :network_endpoints def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @network_endpoints = args[:network_endpoints] if args.key?(:network_endpoints) end end # class GlobalOrganizationSetPolicyRequest include Google::Apis::Core::Hashable # Flatten Policy to create a backward compatible wire-format. Deprecated. Use ' # policy' to specify bindings. # Corresponds to the JSON property `bindings` # @return [Array] attr_accessor :bindings # Flatten Policy to create a backward compatible wire-format. Deprecated. Use ' # policy' to specify the etag. # Corresponds to the JSON property `etag` # NOTE: Values are automatically base64 encoded/decoded in the client library. # @return [String] attr_accessor :etag # An Identity and Access Management (IAM) policy, which specifies access # controls for Google Cloud resources. A `Policy` is a collection of `bindings`. # A `binding` binds one or more `members`, or principals, to a single `role`. # Principals can be user accounts, service accounts, Google groups, and domains ( # such as G Suite). A `role` is a named list of permissions; each `role` can be # an IAM predefined role or a user-created custom role. For some types of Google # Cloud resources, a `binding` can also specify a `condition`, which is a # logical expression that allows access to a resource only if the expression # evaluates to `true`. A condition can add constraints based on attributes of # the request, the resource, or both. To learn which resources support # conditions in their IAM policies, see the [IAM documentation](https://cloud. # google.com/iam/help/conditions/resource-policies). **JSON example:** ` " # bindings": [ ` "role": "roles/resourcemanager.organizationAdmin", "members": [ # "user:mike@example.com", "group:admins@example.com", "domain:google.com", " # serviceAccount:my-project-id@appspot.gserviceaccount.com" ] `, ` "role": " # roles/resourcemanager.organizationViewer", "members": [ "user:eve@example.com" # ], "condition": ` "title": "expirable access", "description": "Does not grant # access after Sep 2020", "expression": "request.time < timestamp('2020-10-01T00: # 00:00.000Z')", ` ` ], "etag": "BwWWja0YfJA=", "version": 3 ` **YAML example:** # bindings: - members: - user:mike@example.com - group:admins@example.com - # domain:google.com - serviceAccount:my-project-id@appspot.gserviceaccount.com # role: roles/resourcemanager.organizationAdmin - members: - user:eve@example. # com role: roles/resourcemanager.organizationViewer condition: title: expirable # access description: Does not grant access after Sep 2020 expression: request. # time < timestamp('2020-10-01T00:00:00.000Z') etag: BwWWja0YfJA= version: 3 For # a description of IAM and its features, see the [IAM documentation](https:// # cloud.google.com/iam/docs/). # Corresponds to the JSON property `policy` # @return [Google::Apis::ComputeAlpha::Policy] attr_accessor :policy def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @bindings = args[:bindings] if args.key?(:bindings) @etag = args[:etag] if args.key?(:etag) @policy = args[:policy] if args.key?(:policy) end end # class GlobalSetLabelsRequest include Google::Apis::Core::Hashable # The fingerprint of the previous set of labels for this resource, used to # detect conflicts. The fingerprint is initially generated by Compute Engine and # changes after every request to modify or update labels. You must always # provide an up-to-date fingerprint hash when updating or changing labels, # otherwise the request will fail with error 412 conditionNotMet. Make a get() # request to the resource to get the latest fingerprint. # Corresponds to the JSON property `labelFingerprint` # NOTE: Values are automatically base64 encoded/decoded in the client library. # @return [String] attr_accessor :label_fingerprint # A list of labels to apply for this resource. Each label must comply with the # requirements for labels. For example, "webserver-frontend": "images". A label # value can also be empty (e.g. "my-label": ""). # Corresponds to the JSON property `labels` # @return [Hash] attr_accessor :labels def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @label_fingerprint = args[:label_fingerprint] if args.key?(:label_fingerprint) @labels = args[:labels] if args.key?(:labels) end end # class GlobalSetPolicyRequest include Google::Apis::Core::Hashable # Flatten Policy to create a backward compatible wire-format. Deprecated. Use ' # policy' to specify bindings. # Corresponds to the JSON property `bindings` # @return [Array] attr_accessor :bindings # Flatten Policy to create a backward compatible wire-format. Deprecated. Use ' # policy' to specify the etag. # Corresponds to the JSON property `etag` # NOTE: Values are automatically base64 encoded/decoded in the client library. # @return [String] attr_accessor :etag # An Identity and Access Management (IAM) policy, which specifies access # controls for Google Cloud resources. A `Policy` is a collection of `bindings`. # A `binding` binds one or more `members`, or principals, to a single `role`. # Principals can be user accounts, service accounts, Google groups, and domains ( # such as G Suite). A `role` is a named list of permissions; each `role` can be # an IAM predefined role or a user-created custom role. For some types of Google # Cloud resources, a `binding` can also specify a `condition`, which is a # logical expression that allows access to a resource only if the expression # evaluates to `true`. A condition can add constraints based on attributes of # the request, the resource, or both. To learn which resources support # conditions in their IAM policies, see the [IAM documentation](https://cloud. # google.com/iam/help/conditions/resource-policies). **JSON example:** ` " # bindings": [ ` "role": "roles/resourcemanager.organizationAdmin", "members": [ # "user:mike@example.com", "group:admins@example.com", "domain:google.com", " # serviceAccount:my-project-id@appspot.gserviceaccount.com" ] `, ` "role": " # roles/resourcemanager.organizationViewer", "members": [ "user:eve@example.com" # ], "condition": ` "title": "expirable access", "description": "Does not grant # access after Sep 2020", "expression": "request.time < timestamp('2020-10-01T00: # 00:00.000Z')", ` ` ], "etag": "BwWWja0YfJA=", "version": 3 ` **YAML example:** # bindings: - members: - user:mike@example.com - group:admins@example.com - # domain:google.com - serviceAccount:my-project-id@appspot.gserviceaccount.com # role: roles/resourcemanager.organizationAdmin - members: - user:eve@example. # com role: roles/resourcemanager.organizationViewer condition: title: expirable # access description: Does not grant access after Sep 2020 expression: request. # time < timestamp('2020-10-01T00:00:00.000Z') etag: BwWWja0YfJA= version: 3 For # a description of IAM and its features, see the [IAM documentation](https:// # cloud.google.com/iam/docs/). # Corresponds to the JSON property `policy` # @return [Google::Apis::ComputeAlpha::Policy] attr_accessor :policy def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @bindings = args[:bindings] if args.key?(:bindings) @etag = args[:etag] if args.key?(:etag) @policy = args[:policy] if args.key?(:policy) end end # [Deprecated] gRPC config to access the SDS server. gRPC config to access the # SDS server. class GrpcServiceConfig include Google::Apis::Core::Hashable # [Deprecated] gRPC call credentials to access the SDS server. gRPC call # credentials to access the SDS server. # Corresponds to the JSON property `callCredentials` # @return [Google::Apis::ComputeAlpha::CallCredentials] attr_accessor :call_credentials # [Deprecated] gRPC channel credentials to access the SDS server. gRPC channel # credentials to access the SDS server. # Corresponds to the JSON property `channelCredentials` # @return [Google::Apis::ComputeAlpha::ChannelCredentials] attr_accessor :channel_credentials # The target URI of the SDS server. # Corresponds to the JSON property `targetUri` # @return [String] attr_accessor :target_uri def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @call_credentials = args[:call_credentials] if args.key?(:call_credentials) @channel_credentials = args[:channel_credentials] if args.key?(:channel_credentials) @target_uri = args[:target_uri] if args.key?(:target_uri) end end # A guest attributes entry. class GuestAttributes include Google::Apis::Core::Hashable # [Output Only] Type of the resource. Always compute#guestAttributes for guest # attributes entry. # Corresponds to the JSON property `kind` # @return [String] attr_accessor :kind # The path to be queried. This can be the default namespace ('') or a nested # namespace ('\/') or a specified key ('\/\'). # Corresponds to the JSON property `queryPath` # @return [String] attr_accessor :query_path # Array of guest attribute namespace/key/value tuples. # Corresponds to the JSON property `queryValue` # @return [Google::Apis::ComputeAlpha::GuestAttributesValue] attr_accessor :query_value # [Output Only] Server-defined URL for this resource. # Corresponds to the JSON property `selfLink` # @return [String] attr_accessor :self_link # The key to search for. # Corresponds to the JSON property `variableKey` # @return [String] attr_accessor :variable_key # [Output Only] The value found for the requested key. # Corresponds to the JSON property `variableValue` # @return [String] attr_accessor :variable_value def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @kind = args[:kind] if args.key?(:kind) @query_path = args[:query_path] if args.key?(:query_path) @query_value = args[:query_value] if args.key?(:query_value) @self_link = args[:self_link] if args.key?(:self_link) @variable_key = args[:variable_key] if args.key?(:variable_key) @variable_value = args[:variable_value] if args.key?(:variable_value) end end # A guest attributes namespace/key/value entry. class GuestAttributesEntry include Google::Apis::Core::Hashable # Key for the guest attribute entry. # Corresponds to the JSON property `key` # @return [String] attr_accessor :key # Namespace for the guest attribute entry. # Corresponds to the JSON property `namespace` # @return [String] attr_accessor :namespace # Value for the guest attribute entry. # 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) @namespace = args[:namespace] if args.key?(:namespace) @value = args[:value] if args.key?(:value) end end # Array of guest attribute namespace/key/value tuples. class GuestAttributesValue include Google::Apis::Core::Hashable # # 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) @items = args[:items] if args.key?(:items) end end # Guest OS features. class GuestOsFeature include Google::Apis::Core::Hashable # The ID of a supported feature. To add multiple values, use commas to separate # values. Set to one or more of the following values: - VIRTIO_SCSI_MULTIQUEUE - # WINDOWS - MULTI_IP_SUBNET - UEFI_COMPATIBLE - GVNIC - SEV_CAPABLE - # SUSPEND_RESUME_COMPATIBLE - SEV_SNP_CAPABLE For more information, see Enabling # guest operating system features. # 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) @type = args[:type] if args.key?(:type) end end # class Http2HealthCheck include Google::Apis::Core::Hashable # The value of the host header in the HTTP/2 health check request. If left empty # (default value), the IP on behalf of which this health check is performed will # be used. # Corresponds to the JSON property `host` # @return [String] attr_accessor :host # The TCP port number for the health check request. The default value is 443. # Valid values are 1 through 65535. # Corresponds to the JSON property `port` # @return [Fixnum] attr_accessor :port # Port name as defined in InstanceGroup#NamedPort#name. If both port and # port_name are defined, port takes precedence. # Corresponds to the JSON property `portName` # @return [String] attr_accessor :port_name # Specifies how port is selected for health checking, can be one of following # values: USE_FIXED_PORT: The port number in port is used for health checking. # USE_NAMED_PORT: The portName is used for health checking. USE_SERVING_PORT: # For NetworkEndpointGroup, the port specified for each network endpoint is used # for health checking. For other backends, the port or named port specified in # the Backend Service is used for health checking. If not specified, HTTP2 # health check follows behavior specified in port and portName fields. # Corresponds to the JSON property `portSpecification` # @return [String] attr_accessor :port_specification # Specifies the type of proxy header to append before sending data to the # backend, either NONE or PROXY_V1. The default is NONE. # Corresponds to the JSON property `proxyHeader` # @return [String] attr_accessor :proxy_header # The request path of the HTTP/2 health check request. The default value is /. # Corresponds to the JSON property `requestPath` # @return [String] attr_accessor :request_path # The string to match anywhere in the first 1024 bytes of the response body. If # left empty (the default value), the status code determines health. The # response data can only be ASCII. # Corresponds to the JSON property `response` # @return [String] attr_accessor :response # Weight report mode. used for weighted Load Balancing. # Corresponds to the JSON property `weightReportMode` # @return [String] attr_accessor :weight_report_mode def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @host = args[:host] if args.key?(:host) @port = args[:port] if args.key?(:port) @port_name = args[:port_name] if args.key?(:port_name) @port_specification = args[:port_specification] if args.key?(:port_specification) @proxy_header = args[:proxy_header] if args.key?(:proxy_header) @request_path = args[:request_path] if args.key?(:request_path) @response = args[:response] if args.key?(:response) @weight_report_mode = args[:weight_report_mode] if args.key?(:weight_report_mode) end end # class HttpHealthCheck include Google::Apis::Core::Hashable # The value of the host header in the HTTP health check request. If left empty ( # default value), the IP on behalf of which this health check is performed will # be used. # Corresponds to the JSON property `host` # @return [String] attr_accessor :host # The TCP port number for the health check request. The default value is 80. # Valid values are 1 through 65535. # Corresponds to the JSON property `port` # @return [Fixnum] attr_accessor :port # Port name as defined in InstanceGroup#NamedPort#name. If both port and # port_name are defined, port takes precedence. # Corresponds to the JSON property `portName` # @return [String] attr_accessor :port_name # Specifies how port is selected for health checking, can be one of following # values: USE_FIXED_PORT: The port number in port is used for health checking. # USE_NAMED_PORT: The portName is used for health checking. USE_SERVING_PORT: # For NetworkEndpointGroup, the port specified for each network endpoint is used # for health checking. For other backends, the port or named port specified in # the Backend Service is used for health checking. If not specified, HTTP health # check follows behavior specified in port and portName fields. # Corresponds to the JSON property `portSpecification` # @return [String] attr_accessor :port_specification # Specifies the type of proxy header to append before sending data to the # backend, either NONE or PROXY_V1. The default is NONE. # Corresponds to the JSON property `proxyHeader` # @return [String] attr_accessor :proxy_header # The request path of the HTTP health check request. The default value is /. # Corresponds to the JSON property `requestPath` # @return [String] attr_accessor :request_path # The string to match anywhere in the first 1024 bytes of the response body. If # left empty (the default value), the status code determines health. The # response data can only be ASCII. # Corresponds to the JSON property `response` # @return [String] attr_accessor :response # Weight report mode. used for weighted Load Balancing. # Corresponds to the JSON property `weightReportMode` # @return [String] attr_accessor :weight_report_mode def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @host = args[:host] if args.key?(:host) @port = args[:port] if args.key?(:port) @port_name = args[:port_name] if args.key?(:port_name) @port_specification = args[:port_specification] if args.key?(:port_specification) @proxy_header = args[:proxy_header] if args.key?(:proxy_header) @request_path = args[:request_path] if args.key?(:request_path) @response = args[:response] if args.key?(:response) @weight_report_mode = args[:weight_report_mode] if args.key?(:weight_report_mode) end end # class HttpsHealthCheck include Google::Apis::Core::Hashable # The value of the host header in the HTTPS health check request. If left empty ( # default value), the IP on behalf of which this health check is performed will # be used. # Corresponds to the JSON property `host` # @return [String] attr_accessor :host # The TCP port number for the health check request. The default value is 443. # Valid values are 1 through 65535. # Corresponds to the JSON property `port` # @return [Fixnum] attr_accessor :port # Port name as defined in InstanceGroup#NamedPort#name. If both port and # port_name are defined, port takes precedence. # Corresponds to the JSON property `portName` # @return [String] attr_accessor :port_name # Specifies how port is selected for health checking, can be one of following # values: USE_FIXED_PORT: The port number in port is used for health checking. # USE_NAMED_PORT: The portName is used for health checking. USE_SERVING_PORT: # For NetworkEndpointGroup, the port specified for each network endpoint is used # for health checking. For other backends, the port or named port specified in # the Backend Service is used for health checking. If not specified, HTTPS # health check follows behavior specified in port and portName fields. # Corresponds to the JSON property `portSpecification` # @return [String] attr_accessor :port_specification # Specifies the type of proxy header to append before sending data to the # backend, either NONE or PROXY_V1. The default is NONE. # Corresponds to the JSON property `proxyHeader` # @return [String] attr_accessor :proxy_header # The request path of the HTTPS health check request. The default value is /. # Corresponds to the JSON property `requestPath` # @return [String] attr_accessor :request_path # The string to match anywhere in the first 1024 bytes of the response body. If # left empty (the default value), the status code determines health. The # response data can only be ASCII. # Corresponds to the JSON property `response` # @return [String] attr_accessor :response # Weight report mode. used for weighted Load Balancing. # Corresponds to the JSON property `weightReportMode` # @return [String] attr_accessor :weight_report_mode def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @host = args[:host] if args.key?(:host) @port = args[:port] if args.key?(:port) @port_name = args[:port_name] if args.key?(:port_name) @port_specification = args[:port_specification] if args.key?(:port_specification) @proxy_header = args[:proxy_header] if args.key?(:proxy_header) @request_path = args[:request_path] if args.key?(:request_path) @response = args[:response] if args.key?(:response) @weight_report_mode = args[:weight_report_mode] if args.key?(:weight_report_mode) end end # Represents a Health Check resource. Google Compute Engine has two Health Check # resources: * [Global](/compute/docs/reference/rest/alpha/healthChecks) * [ # Regional](/compute/docs/reference/rest/alpha/regionHealthChecks) Internal HTTP( # S) load balancers must use regional health checks (`compute.v1. # regionHealthChecks`). Traffic Director must use global health checks (`compute. # v1.HealthChecks`). Internal TCP/UDP load balancers can use either regional or # global health checks (`compute.v1.regionHealthChecks` or `compute.v1. # HealthChecks`). External HTTP(S), TCP proxy, and SSL proxy load balancers as # well as managed instance group auto-healing must use global health checks (` # compute.v1.HealthChecks`). Backend service-based network load balancers must # use regional health checks (`compute.v1.regionHealthChecks`). Target pool- # based network load balancers must use legacy HTTP health checks (`compute.v1. # httpHealthChecks`). For more information, see Health checks overview. class HealthCheck include Google::Apis::Core::Hashable # How often (in seconds) to send a health check. The default value is 5 seconds. # Corresponds to the JSON property `checkIntervalSec` # @return [Fixnum] attr_accessor :check_interval_sec # [Output Only] Creation timestamp in 3339 text format. # Corresponds to the JSON property `creationTimestamp` # @return [String] attr_accessor :creation_timestamp # An optional description of this resource. Provide this property when you # create the resource. # Corresponds to the JSON property `description` # @return [String] attr_accessor :description # # Corresponds to the JSON property `grpcHealthCheck` # @return [Google::Apis::ComputeAlpha::GrpcHealthCheck] attr_accessor :grpc_health_check # A so-far unhealthy instance will be marked healthy after this many consecutive # successes. The default value is 2. # Corresponds to the JSON property `healthyThreshold` # @return [Fixnum] attr_accessor :healthy_threshold # # Corresponds to the JSON property `http2HealthCheck` # @return [Google::Apis::ComputeAlpha::Http2HealthCheck] attr_accessor :http2_health_check # # Corresponds to the JSON property `httpHealthCheck` # @return [Google::Apis::ComputeAlpha::HttpHealthCheck] attr_accessor :http_health_check # # Corresponds to the JSON property `httpsHealthCheck` # @return [Google::Apis::ComputeAlpha::HttpsHealthCheck] attr_accessor :https_health_check # [Output Only] The unique identifier for the resource. This identifier is # defined by the server. # Corresponds to the JSON property `id` # @return [Fixnum] attr_accessor :id # Type of the resource. # Corresponds to the JSON property `kind` # @return [String] attr_accessor :kind # Configuration of logging on a health check. If logging is enabled, logs will # be exported to Stackdriver. # Corresponds to the JSON property `logConfig` # @return [Google::Apis::ComputeAlpha::HealthCheckLogConfig] attr_accessor :log_config # Name of the resource. Provided by the client when the resource is created. The # name must be 1-63 characters long, and comply with RFC1035. For example, a # name that is 1-63 characters long, matches the regular expression `[a-z]([-a- # z0-9]*[a-z0-9])?`, and otherwise complies with RFC1035. This regular # expression describes a name where the first character is a lowercase letter, # and all following characters are a dash, lowercase letter, or digit, except # the last character, which isn't a dash. # Corresponds to the JSON property `name` # @return [String] attr_accessor :name # [Output Only] Region where the health check resides. Not applicable to global # health checks. # Corresponds to the JSON property `region` # @return [String] attr_accessor :region # [Output Only] Server-defined URL for the resource. # Corresponds to the JSON property `selfLink` # @return [String] attr_accessor :self_link # [Output Only] Server-defined URL for this resource with the resource id. # Corresponds to the JSON property `selfLinkWithId` # @return [String] attr_accessor :self_link_with_id # # Corresponds to the JSON property `sslHealthCheck` # @return [Google::Apis::ComputeAlpha::SslHealthCheck] attr_accessor :ssl_health_check # # Corresponds to the JSON property `tcpHealthCheck` # @return [Google::Apis::ComputeAlpha::TcpHealthCheck] attr_accessor :tcp_health_check # How long (in seconds) to wait before claiming failure. The default value is 5 # seconds. It is invalid for timeoutSec to have greater value than # checkIntervalSec. # Corresponds to the JSON property `timeoutSec` # @return [Fixnum] attr_accessor :timeout_sec # Specifies the type of the healthCheck, either TCP, SSL, HTTP, HTTPS or HTTP2. # Exactly one of the protocol-specific health check field must be specified, # which must match type field. # Corresponds to the JSON property `type` # @return [String] attr_accessor :type # # Corresponds to the JSON property `udpHealthCheck` # @return [Google::Apis::ComputeAlpha::UdpHealthCheck] attr_accessor :udp_health_check # A so-far healthy instance will be marked unhealthy after this many consecutive # failures. The default value is 2. # 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) @creation_timestamp = args[:creation_timestamp] if args.key?(:creation_timestamp) @description = args[:description] if args.key?(:description) @grpc_health_check = args[:grpc_health_check] if args.key?(:grpc_health_check) @healthy_threshold = args[:healthy_threshold] if args.key?(:healthy_threshold) @http2_health_check = args[:http2_health_check] if args.key?(:http2_health_check) @http_health_check = args[:http_health_check] if args.key?(:http_health_check) @https_health_check = args[:https_health_check] if args.key?(:https_health_check) @id = args[:id] if args.key?(:id) @kind = args[:kind] if args.key?(:kind) @log_config = args[:log_config] if args.key?(:log_config) @name = args[:name] if args.key?(:name) @region = args[:region] if args.key?(:region) @self_link = args[:self_link] if args.key?(:self_link) @self_link_with_id = args[:self_link_with_id] if args.key?(:self_link_with_id) @ssl_health_check = args[:ssl_health_check] if args.key?(:ssl_health_check) @tcp_health_check = args[:tcp_health_check] if args.key?(:tcp_health_check) @timeout_sec = args[:timeout_sec] if args.key?(:timeout_sec) @type = args[:type] if args.key?(:type) @udp_health_check = args[:udp_health_check] if args.key?(:udp_health_check) @unhealthy_threshold = args[:unhealthy_threshold] if args.key?(:unhealthy_threshold) end end # Contains a list of HealthCheck resources. class HealthCheckList include Google::Apis::Core::Hashable # [Output Only] Unique identifier for the resource; defined by the server. # Corresponds to the JSON property `id` # @return [String] attr_accessor :id # A list of HealthCheck resources. # Corresponds to the JSON property `items` # @return [Array] attr_accessor :items # Type of resource. # Corresponds to the JSON property `kind` # @return [String] attr_accessor :kind # [Output Only] This token allows you to get the next page of results for list # requests. If the number of results is larger than maxResults, use the # nextPageToken as a value for the query parameter pageToken in the next list # request. Subsequent list requests will have their own nextPageToken to # continue paging through the results. # Corresponds to the JSON property `nextPageToken` # @return [String] attr_accessor :next_page_token # [Output Only] Server-defined URL for this resource. # Corresponds to the JSON property `selfLink` # @return [String] attr_accessor :self_link # [Output Only] Informational warning message. # Corresponds to the JSON property `warning` # @return [Google::Apis::ComputeAlpha::HealthCheckList::Warning] attr_accessor :warning def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @id = args[:id] if args.key?(:id) @items = args[:items] if args.key?(:items) @kind = args[:kind] if args.key?(:kind) @next_page_token = args[:next_page_token] if args.key?(:next_page_token) @self_link = args[:self_link] if args.key?(:self_link) @warning = args[:warning] if args.key?(:warning) end # [Output Only] Informational warning message. class Warning include Google::Apis::Core::Hashable # [Output Only] A warning code, if applicable. For example, Compute Engine # returns NO_RESULTS_ON_PAGE if there are no results in the response. # Corresponds to the JSON property `code` # @return [String] attr_accessor :code # [Output Only] Metadata about this warning in key: value format. For example: " # data": [ ` "key": "scope", "value": "zones/us-east1-d" ` # Corresponds to the JSON property `data` # @return [Array] attr_accessor :data # [Output Only] A human-readable description of the warning code. # Corresponds to the JSON property `message` # @return [String] attr_accessor :message def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @code = args[:code] if args.key?(:code) @data = args[:data] if args.key?(:data) @message = args[:message] if args.key?(:message) end # class Datum include Google::Apis::Core::Hashable # [Output Only] A key that provides more detail on the warning being returned. # For example, for warnings where there are no results in a list request for a # particular zone, this key might be scope and the key value might be the zone # name. Other examples might be a key indicating a deprecated resource and a # suggested replacement, or a warning about invalid network settings (for # example, if an instance attempts to perform IP forwarding but is not enabled # for IP forwarding). # Corresponds to the JSON property `key` # @return [String] attr_accessor :key # [Output Only] A warning data value corresponding to the key. # 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 end end # Configuration of logging on a health check. If logging is enabled, logs will # be exported to Stackdriver. class HealthCheckLogConfig include Google::Apis::Core::Hashable # Indicates whether or not to export logs. This is false by default, which means # no health check logging will be done. # Corresponds to the JSON property `enable` # @return [Boolean] attr_accessor :enable alias_method :enable?, :enable def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @enable = args[:enable] if args.key?(:enable) end end # A full or valid partial URL to a health check. For example, the following are # valid URLs: - https://www.googleapis.com/compute/beta/projects/project-id/ # global/httpHealthChecks/health-check - projects/project-id/global/ # httpHealthChecks/health-check - global/httpHealthChecks/health-check class HealthCheckReference include Google::Apis::Core::Hashable # # Corresponds to the JSON property `healthCheck` # @return [String] attr_accessor :health_check def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @health_check = args[:health_check] if args.key?(:health_check) end end # Represents a Health-Check as a Service resource. class HealthCheckService include Google::Apis::Core::Hashable # [Output Only] Creation timestamp in RFC3339 text format. # Corresponds to the JSON property `creationTimestamp` # @return [String] attr_accessor :creation_timestamp # An optional description of this resource. Provide this property when you # create the resource. # Corresponds to the JSON property `description` # @return [String] attr_accessor :description # Fingerprint of this resource. A hash of the contents stored in this object. # This field is used in optimistic locking. This field will be ignored when # inserting a HealthCheckService. An up-to-date fingerprint must be provided in # order to patch/update the HealthCheckService; Otherwise, the request will fail # with error 412 conditionNotMet. To see the latest fingerprint, make a get() # request to retrieve the HealthCheckService. # Corresponds to the JSON property `fingerprint` # NOTE: Values are automatically base64 encoded/decoded in the client library. # @return [String] attr_accessor :fingerprint # A list of URLs to the HealthCheck resources. Must have at least one # HealthCheck, and not more than 10. HealthCheck resources must have # portSpecification=USE_SERVING_PORT or portSpecification=USE_FIXED_PORT. For # regional HealthCheckService, the HealthCheck must be regional and in the same # region. For global HealthCheckService, HealthCheck must be global. Mix of # regional and global HealthChecks is not supported. Multiple regional # HealthChecks must belong to the same region. Regional HealthChecks must belong # to the same region as zones of NEGs. # Corresponds to the JSON property `healthChecks` # @return [Array] attr_accessor :health_checks # Optional. Policy for how the results from multiple health checks for the same # endpoint are aggregated. Defaults to NO_AGGREGATION if unspecified. - # NO_AGGREGATION. An EndpointHealth message is returned for each pair in the # health check service. - AND. If any health check of an endpoint reports # UNHEALTHY, then UNHEALTHY is the HealthState of the endpoint. If all health # checks report HEALTHY, the HealthState of the endpoint is HEALTHY. . # Corresponds to the JSON property `healthStatusAggregationPolicy` # @return [String] attr_accessor :health_status_aggregation_policy # This field is deprecated. Use health_status_aggregation_policy instead. Policy # for how the results from multiple health checks for the same endpoint are # aggregated. - NO_AGGREGATION. An EndpointHealth message is returned for each # backend in the health check service. - AND. If any backend's health check # reports UNHEALTHY, then UNHEALTHY is the HealthState of the entire health # check service. If all backend's are healthy, the HealthState of the health # check service is HEALTHY. . # Corresponds to the JSON property `healthStatusAggregationStrategy` # @return [String] attr_accessor :health_status_aggregation_strategy # [Output Only] The unique identifier for the resource. This identifier is # defined by the server. # Corresponds to the JSON property `id` # @return [Fixnum] attr_accessor :id # [Output only] Type of the resource. Always compute#healthCheckServicefor # health check services. # Corresponds to the JSON property `kind` # @return [String] attr_accessor :kind # Name of the resource. The name must be 1-63 characters long, and comply with # RFC1035. Specifically, the name must be 1-63 characters long and match the # regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first # character must be a lowercase letter, and all following characters must be a # dash, lowercase letter, or digit, except the last character, which cannot be a # dash. # Corresponds to the JSON property `name` # @return [String] attr_accessor :name # A list of URLs to the NetworkEndpointGroup resources. Must not have more than # 100. For regional HealthCheckService, NEGs must be in zones in the region of # the HealthCheckService. # Corresponds to the JSON property `networkEndpointGroups` # @return [Array] attr_accessor :network_endpoint_groups # A list of URLs to the NotificationEndpoint resources. Must not have more than # 10. A list of endpoints for receiving notifications of change in health status. # For regional HealthCheckService, NotificationEndpoint must be regional and in # the same region. For global HealthCheckService, NotificationEndpoint must be # global. # Corresponds to the JSON property `notificationEndpoints` # @return [Array] attr_accessor :notification_endpoints # [Output Only] URL of the region where the health check service resides. This # field is not applicable to global health check services. You must specify this # field as part of the HTTP request URL. It is not settable as a field in the # request body. # Corresponds to the JSON property `region` # @return [String] attr_accessor :region # [Output Only] Server-defined URL for the resource. # Corresponds to the JSON property `selfLink` # @return [String] attr_accessor :self_link # [Output Only] Server-defined URL with id for the resource. # Corresponds to the JSON property `selfLinkWithId` # @return [String] attr_accessor :self_link_with_id def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @creation_timestamp = args[:creation_timestamp] if args.key?(:creation_timestamp) @description = args[:description] if args.key?(:description) @fingerprint = args[:fingerprint] if args.key?(:fingerprint) @health_checks = args[:health_checks] if args.key?(:health_checks) @health_status_aggregation_policy = args[:health_status_aggregation_policy] if args.key?(:health_status_aggregation_policy) @health_status_aggregation_strategy = args[:health_status_aggregation_strategy] if args.key?(:health_status_aggregation_strategy) @id = args[:id] if args.key?(:id) @kind = args[:kind] if args.key?(:kind) @name = args[:name] if args.key?(:name) @network_endpoint_groups = args[:network_endpoint_groups] if args.key?(:network_endpoint_groups) @notification_endpoints = args[:notification_endpoints] if args.key?(:notification_endpoints) @region = args[:region] if args.key?(:region) @self_link = args[:self_link] if args.key?(:self_link) @self_link_with_id = args[:self_link_with_id] if args.key?(:self_link_with_id) end end # Contains a list of HealthCheckServicesScopedList. class HealthCheckServiceAggregatedList include Google::Apis::Core::Hashable # [Output Only] Unique identifier for the resource; defined by the server. # Corresponds to the JSON property `id` # @return [String] attr_accessor :id # A list of HealthCheckServicesScopedList resources. # Corresponds to the JSON property `items` # @return [Hash] attr_accessor :items # Type of resource. # Corresponds to the JSON property `kind` # @return [String] attr_accessor :kind # [Output Only] This token allows you to get the next page of results for list # requests. If the number of results is larger than maxResults, use the # nextPageToken as a value for the query parameter pageToken in the next list # request. Subsequent list requests will have their own nextPageToken to # continue paging through the results. # Corresponds to the JSON property `nextPageToken` # @return [String] attr_accessor :next_page_token # [Output Only] Server-defined URL for this resource. # Corresponds to the JSON property `selfLink` # @return [String] attr_accessor :self_link # [Output Only] Unreachable resources. # Corresponds to the JSON property `unreachables` # @return [Array] attr_accessor :unreachables # [Output Only] Informational warning message. # Corresponds to the JSON property `warning` # @return [Google::Apis::ComputeAlpha::HealthCheckServiceAggregatedList::Warning] attr_accessor :warning def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @id = args[:id] if args.key?(:id) @items = args[:items] if args.key?(:items) @kind = args[:kind] if args.key?(:kind) @next_page_token = args[:next_page_token] if args.key?(:next_page_token) @self_link = args[:self_link] if args.key?(:self_link) @unreachables = args[:unreachables] if args.key?(:unreachables) @warning = args[:warning] if args.key?(:warning) end # [Output Only] Informational warning message. class Warning include Google::Apis::Core::Hashable # [Output Only] A warning code, if applicable. For example, Compute Engine # returns NO_RESULTS_ON_PAGE if there are no results in the response. # Corresponds to the JSON property `code` # @return [String] attr_accessor :code # [Output Only] Metadata about this warning in key: value format. For example: " # data": [ ` "key": "scope", "value": "zones/us-east1-d" ` # Corresponds to the JSON property `data` # @return [Array] attr_accessor :data # [Output Only] A human-readable description of the warning code. # Corresponds to the JSON property `message` # @return [String] attr_accessor :message def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @code = args[:code] if args.key?(:code) @data = args[:data] if args.key?(:data) @message = args[:message] if args.key?(:message) end # class Datum include Google::Apis::Core::Hashable # [Output Only] A key that provides more detail on the warning being returned. # For example, for warnings where there are no results in a list request for a # particular zone, this key might be scope and the key value might be the zone # name. Other examples might be a key indicating a deprecated resource and a # suggested replacement, or a warning about invalid network settings (for # example, if an instance attempts to perform IP forwarding but is not enabled # for IP forwarding). # Corresponds to the JSON property `key` # @return [String] attr_accessor :key # [Output Only] A warning data value corresponding to the key. # 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 end end # A full or valid partial URL to a health check service. For example, the # following are valid URLs: - https://www.googleapis.com/compute/beta/projects/ # project-id/regions/us-west1/healthCheckServices/health-check-service - # projects/project-id/regions/us-west1/healthCheckServices/health-check-service - # regions/us-west1/healthCheckServices/health-check-service class HealthCheckServiceReference include Google::Apis::Core::Hashable # # Corresponds to the JSON property `healthCheckService` # @return [String] attr_accessor :health_check_service def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @health_check_service = args[:health_check_service] if args.key?(:health_check_service) end end # class HealthCheckServicesList include Google::Apis::Core::Hashable # [Output Only] Unique identifier for the resource; defined by the server. # Corresponds to the JSON property `id` # @return [String] attr_accessor :id # A list of HealthCheckService resources. # Corresponds to the JSON property `items` # @return [Array] attr_accessor :items # [Output Only] Type of the resource. Always compute#healthCheckServicesList for # lists of HealthCheckServices. # Corresponds to the JSON property `kind` # @return [String] attr_accessor :kind # [Output Only] This token allows you to get the next page of results for list # requests. If the number of results is larger than maxResults, use the # nextPageToken as a value for the query parameter pageToken in the next list # request. Subsequent list requests will have their own nextPageToken to # continue paging through the results. # Corresponds to the JSON property `nextPageToken` # @return [String] attr_accessor :next_page_token # [Output Only] Server-defined URL for this resource. # Corresponds to the JSON property `selfLink` # @return [String] attr_accessor :self_link # [Output Only] Informational warning message. # Corresponds to the JSON property `warning` # @return [Google::Apis::ComputeAlpha::HealthCheckServicesList::Warning] attr_accessor :warning def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @id = args[:id] if args.key?(:id) @items = args[:items] if args.key?(:items) @kind = args[:kind] if args.key?(:kind) @next_page_token = args[:next_page_token] if args.key?(:next_page_token) @self_link = args[:self_link] if args.key?(:self_link) @warning = args[:warning] if args.key?(:warning) end # [Output Only] Informational warning message. class Warning include Google::Apis::Core::Hashable # [Output Only] A warning code, if applicable. For example, Compute Engine # returns NO_RESULTS_ON_PAGE if there are no results in the response. # Corresponds to the JSON property `code` # @return [String] attr_accessor :code # [Output Only] Metadata about this warning in key: value format. For example: " # data": [ ` "key": "scope", "value": "zones/us-east1-d" ` # Corresponds to the JSON property `data` # @return [Array] attr_accessor :data # [Output Only] A human-readable description of the warning code. # Corresponds to the JSON property `message` # @return [String] attr_accessor :message def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @code = args[:code] if args.key?(:code) @data = args[:data] if args.key?(:data) @message = args[:message] if args.key?(:message) end # class Datum include Google::Apis::Core::Hashable # [Output Only] A key that provides more detail on the warning being returned. # For example, for warnings where there are no results in a list request for a # particular zone, this key might be scope and the key value might be the zone # name. Other examples might be a key indicating a deprecated resource and a # suggested replacement, or a warning about invalid network settings (for # example, if an instance attempts to perform IP forwarding but is not enabled # for IP forwarding). # Corresponds to the JSON property `key` # @return [String] attr_accessor :key # [Output Only] A warning data value corresponding to the key. # 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 end end # class HealthCheckServicesScopedList include Google::Apis::Core::Hashable # A list of HealthCheckServices contained in this scope. # Corresponds to the JSON property `resources` # @return [Array] attr_accessor :resources # Informational warning which replaces the list of backend services when the # list is empty. # Corresponds to the JSON property `warning` # @return [Google::Apis::ComputeAlpha::HealthCheckServicesScopedList::Warning] attr_accessor :warning def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @resources = args[:resources] if args.key?(:resources) @warning = args[:warning] if args.key?(:warning) end # Informational warning which replaces the list of backend services when the # list is empty. class Warning include Google::Apis::Core::Hashable # [Output Only] A warning code, if applicable. For example, Compute Engine # returns NO_RESULTS_ON_PAGE if there are no results in the response. # Corresponds to the JSON property `code` # @return [String] attr_accessor :code # [Output Only] Metadata about this warning in key: value format. For example: " # data": [ ` "key": "scope", "value": "zones/us-east1-d" ` # Corresponds to the JSON property `data` # @return [Array] attr_accessor :data # [Output Only] A human-readable description of the warning code. # Corresponds to the JSON property `message` # @return [String] attr_accessor :message def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @code = args[:code] if args.key?(:code) @data = args[:data] if args.key?(:data) @message = args[:message] if args.key?(:message) end # class Datum include Google::Apis::Core::Hashable # [Output Only] A key that provides more detail on the warning being returned. # For example, for warnings where there are no results in a list request for a # particular zone, this key might be scope and the key value might be the zone # name. Other examples might be a key indicating a deprecated resource and a # suggested replacement, or a warning about invalid network settings (for # example, if an instance attempts to perform IP forwarding but is not enabled # for IP forwarding). # Corresponds to the JSON property `key` # @return [String] attr_accessor :key # [Output Only] A warning data value corresponding to the key. # 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 end end # class HealthChecksAggregatedList include Google::Apis::Core::Hashable # [Output Only] Unique identifier for the resource; defined by the server. # Corresponds to the JSON property `id` # @return [String] attr_accessor :id # A list of HealthChecksScopedList resources. # Corresponds to the JSON property `items` # @return [Hash] attr_accessor :items # Type of resource. # Corresponds to the JSON property `kind` # @return [String] attr_accessor :kind # [Output Only] This token allows you to get the next page of results for list # requests. If the number of results is larger than maxResults, use the # nextPageToken as a value for the query parameter pageToken in the next list # request. Subsequent list requests will have their own nextPageToken to # continue paging through the results. # Corresponds to the JSON property `nextPageToken` # @return [String] attr_accessor :next_page_token # [Output Only] Server-defined URL for this resource. # Corresponds to the JSON property `selfLink` # @return [String] attr_accessor :self_link # [Output Only] Unreachable resources. # Corresponds to the JSON property `unreachables` # @return [Array] attr_accessor :unreachables # [Output Only] Informational warning message. # Corresponds to the JSON property `warning` # @return [Google::Apis::ComputeAlpha::HealthChecksAggregatedList::Warning] attr_accessor :warning def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @id = args[:id] if args.key?(:id) @items = args[:items] if args.key?(:items) @kind = args[:kind] if args.key?(:kind) @next_page_token = args[:next_page_token] if args.key?(:next_page_token) @self_link = args[:self_link] if args.key?(:self_link) @unreachables = args[:unreachables] if args.key?(:unreachables) @warning = args[:warning] if args.key?(:warning) end # [Output Only] Informational warning message. class Warning include Google::Apis::Core::Hashable # [Output Only] A warning code, if applicable. For example, Compute Engine # returns NO_RESULTS_ON_PAGE if there are no results in the response. # Corresponds to the JSON property `code` # @return [String] attr_accessor :code # [Output Only] Metadata about this warning in key: value format. For example: " # data": [ ` "key": "scope", "value": "zones/us-east1-d" ` # Corresponds to the JSON property `data` # @return [Array] attr_accessor :data # [Output Only] A human-readable description of the warning code. # Corresponds to the JSON property `message` # @return [String] attr_accessor :message def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @code = args[:code] if args.key?(:code) @data = args[:data] if args.key?(:data) @message = args[:message] if args.key?(:message) end # class Datum include Google::Apis::Core::Hashable # [Output Only] A key that provides more detail on the warning being returned. # For example, for warnings where there are no results in a list request for a # particular zone, this key might be scope and the key value might be the zone # name. Other examples might be a key indicating a deprecated resource and a # suggested replacement, or a warning about invalid network settings (for # example, if an instance attempts to perform IP forwarding but is not enabled # for IP forwarding). # Corresponds to the JSON property `key` # @return [String] attr_accessor :key # [Output Only] A warning data value corresponding to the key. # 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 end end # class HealthChecksScopedList include Google::Apis::Core::Hashable # A list of HealthChecks contained in this scope. # Corresponds to the JSON property `healthChecks` # @return [Array] attr_accessor :health_checks # Informational warning which replaces the list of backend services when the # list is empty. # Corresponds to the JSON property `warning` # @return [Google::Apis::ComputeAlpha::HealthChecksScopedList::Warning] attr_accessor :warning def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @health_checks = args[:health_checks] if args.key?(:health_checks) @warning = args[:warning] if args.key?(:warning) end # Informational warning which replaces the list of backend services when the # list is empty. class Warning include Google::Apis::Core::Hashable # [Output Only] A warning code, if applicable. For example, Compute Engine # returns NO_RESULTS_ON_PAGE if there are no results in the response. # Corresponds to the JSON property `code` # @return [String] attr_accessor :code # [Output Only] Metadata about this warning in key: value format. For example: " # data": [ ` "key": "scope", "value": "zones/us-east1-d" ` # Corresponds to the JSON property `data` # @return [Array] attr_accessor :data # [Output Only] A human-readable description of the warning code. # Corresponds to the JSON property `message` # @return [String] attr_accessor :message def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @code = args[:code] if args.key?(:code) @data = args[:data] if args.key?(:data) @message = args[:message] if args.key?(:message) end # class Datum include Google::Apis::Core::Hashable # [Output Only] A key that provides more detail on the warning being returned. # For example, for warnings where there are no results in a list request for a # particular zone, this key might be scope and the key value might be the zone # name. Other examples might be a key indicating a deprecated resource and a # suggested replacement, or a warning about invalid network settings (for # example, if an instance attempts to perform IP forwarding but is not enabled # for IP forwarding). # Corresponds to the JSON property `key` # @return [String] attr_accessor :key # [Output Only] A warning data value corresponding to the key. # 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 end end # class HealthStatus include Google::Apis::Core::Hashable # Metadata defined as annotations for network endpoint. # Corresponds to the JSON property `annotations` # @return [Hash] attr_accessor :annotations # URL of the forwarding rule associated with the health status of the instance. # Corresponds to the JSON property `forwardingRule` # @return [String] attr_accessor :forwarding_rule # A forwarding rule IP address assigned to this instance. # Corresponds to the JSON property `forwardingRuleIp` # @return [String] attr_accessor :forwarding_rule_ip # Health state of the instance. # Corresponds to the JSON property `healthState` # @return [String] attr_accessor :health_state # URL of the instance resource. # Corresponds to the JSON property `instance` # @return [String] attr_accessor :instance # For target pool based Network Load Balancing, it indicates the forwarding rule' # s IP address assigned to this instance. For other types of load balancing, the # field indicates VM internal ip. # Corresponds to the JSON property `ipAddress` # @return [String] attr_accessor :ip_address # The named port of the instance group, not necessarily the port that is health- # checked. # Corresponds to the JSON property `port` # @return [Fixnum] attr_accessor :port # # Corresponds to the JSON property `weight` # @return [String] attr_accessor :weight # # Corresponds to the JSON property `weightError` # @return [String] attr_accessor :weight_error def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @annotations = args[:annotations] if args.key?(:annotations) @forwarding_rule = args[:forwarding_rule] if args.key?(:forwarding_rule) @forwarding_rule_ip = args[:forwarding_rule_ip] if args.key?(:forwarding_rule_ip) @health_state = args[:health_state] if args.key?(:health_state) @instance = args[:instance] if args.key?(:instance) @ip_address = args[:ip_address] if args.key?(:ip_address) @port = args[:port] if args.key?(:port) @weight = args[:weight] if args.key?(:weight) @weight_error = args[:weight_error] if args.key?(:weight_error) end end # class HealthStatusForNetworkEndpoint include Google::Apis::Core::Hashable # URL of the backend service associated with the health state of the network # endpoint. # Corresponds to the JSON property `backendService` # @return [Google::Apis::ComputeAlpha::BackendServiceReference] attr_accessor :backend_service # URL of the forwarding rule associated with the health state of the network # endpoint. # Corresponds to the JSON property `forwardingRule` # @return [Google::Apis::ComputeAlpha::ForwardingRuleReference] attr_accessor :forwarding_rule # A full or valid partial URL to a health check. For example, the following are # valid URLs: - https://www.googleapis.com/compute/beta/projects/project-id/ # global/httpHealthChecks/health-check - projects/project-id/global/ # httpHealthChecks/health-check - global/httpHealthChecks/health-check # Corresponds to the JSON property `healthCheck` # @return [Google::Apis::ComputeAlpha::HealthCheckReference] attr_accessor :health_check # A full or valid partial URL to a health check service. For example, the # following are valid URLs: - https://www.googleapis.com/compute/beta/projects/ # project-id/regions/us-west1/healthCheckServices/health-check-service - # projects/project-id/regions/us-west1/healthCheckServices/health-check-service - # regions/us-west1/healthCheckServices/health-check-service # Corresponds to the JSON property `healthCheckService` # @return [Google::Apis::ComputeAlpha::HealthCheckServiceReference] attr_accessor :health_check_service # Health state of the network endpoint determined based on the health checks # configured. # Corresponds to the JSON property `healthState` # @return [String] attr_accessor :health_state def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @backend_service = args[:backend_service] if args.key?(:backend_service) @forwarding_rule = args[:forwarding_rule] if args.key?(:forwarding_rule) @health_check = args[:health_check] if args.key?(:health_check) @health_check_service = args[:health_check_service] if args.key?(:health_check_service) @health_state = args[:health_state] if args.key?(:health_state) end end # UrlMaps A host-matching rule for a URL. If matched, will use the named # PathMatcher to select the BackendService. class HostRule include Google::Apis::Core::Hashable # An optional description of this resource. Provide this property when you # create the resource. # Corresponds to the JSON property `description` # @return [String] attr_accessor :description # The list of host patterns to match. They must be valid hostnames with optional # port numbers in the format host:port. * matches any string of ([a-z0-9-.]*). # In that case, * must be the first character and must be followed in the # pattern by either - or .. * based matching is not supported when the URL map # is bound to a target gRPC proxy that has the validateForProxyless field set to # true. # Corresponds to the JSON property `hosts` # @return [Array] attr_accessor :hosts # The name of the PathMatcher to use to match the path portion of the URL if the # hostRule matches the URL's host portion. # Corresponds to the JSON property `pathMatcher` # @return [String] attr_accessor :path_matcher def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @description = args[:description] if args.key?(:description) @hosts = args[:hosts] if args.key?(:hosts) @path_matcher = args[:path_matcher] if args.key?(:path_matcher) end end # Specification for how requests are aborted as part of fault injection. class HttpFaultAbort include Google::Apis::Core::Hashable # The HTTP status code used to abort the request. The value must be from 200 to # 599 inclusive. For gRPC protocol, the gRPC status code is mapped to HTTP # status code according to this mapping table. HTTP status 200 is mapped to gRPC # status UNKNOWN. Injecting an OK status is currently not supported by Traffic # Director. # Corresponds to the JSON property `httpStatus` # @return [Fixnum] attr_accessor :http_status # The percentage of traffic for connections, operations, or requests that is # aborted as part of fault injection. The value must be from 0.0 to 100.0 # inclusive. # Corresponds to the JSON property `percentage` # @return [Float] attr_accessor :percentage def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @http_status = args[:http_status] if args.key?(:http_status) @percentage = args[:percentage] if args.key?(:percentage) end end # Specifies the delay introduced by the load balancer before forwarding the # request to the backend service as part of fault injection. class HttpFaultDelay include Google::Apis::Core::Hashable # A Duration represents a fixed-length span of time represented as a count of # seconds and fractions of seconds at nanosecond resolution. It is independent # of any calendar and concepts like "day" or "month". Range is approximately 10, # 000 years. # Corresponds to the JSON property `fixedDelay` # @return [Google::Apis::ComputeAlpha::Duration] attr_accessor :fixed_delay # The percentage of traffic for connections, operations, or requests for which a # delay is introduced as part of fault injection. The value must be from 0.0 to # 100.0 inclusive. # Corresponds to the JSON property `percentage` # @return [Float] attr_accessor :percentage def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @fixed_delay = args[:fixed_delay] if args.key?(:fixed_delay) @percentage = args[:percentage] if args.key?(:percentage) end end # The specification for fault injection introduced into traffic to test the # resiliency of clients to backend service failure. As part of fault injection, # when clients send requests to a backend service, delays can be introduced by # the load balancer on a percentage of requests before sending those request to # the backend service. Similarly requests from clients can be aborted by the # load balancer for a percentage of requests. class HttpFaultInjection include Google::Apis::Core::Hashable # Specification for how requests are aborted as part of fault injection. # Corresponds to the JSON property `abort` # @return [Google::Apis::ComputeAlpha::HttpFaultAbort] attr_accessor :abort # Specifies the delay introduced by the load balancer before forwarding the # request to the backend service as part of fault injection. # Corresponds to the JSON property `delay` # @return [Google::Apis::ComputeAlpha::HttpFaultDelay] attr_accessor :delay def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @abort = args[:abort] if args.key?(:abort) @delay = args[:delay] if args.key?(:delay) end end # HttpFilterConfiguration supplies additional contextual settings for # networkservices.HttpFilter resources enabled by Traffic Director. class HttpFilterConfig include Google::Apis::Core::Hashable # The configuration needed to enable the networkservices.HttpFilter resource. # The configuration must be YAML formatted and only contain fields defined in # the protobuf identified in configTypeUrl # Corresponds to the JSON property `config` # @return [String] attr_accessor :config # The fully qualified versioned proto3 type url of the protobuf that the filter # expects for its contextual settings, for example: type.googleapis.com/google. # protobuf.Struct # Corresponds to the JSON property `configTypeUrl` # @return [String] attr_accessor :config_type_url # Name of the networkservices.HttpFilter resource this configuration belongs to. # This name must be known to the xDS client. Example: envoy.wasm # Corresponds to the JSON property `filterName` # @return [String] attr_accessor :filter_name def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @config = args[:config] if args.key?(:config) @config_type_url = args[:config_type_url] if args.key?(:config_type_url) @filter_name = args[:filter_name] if args.key?(:filter_name) end end # The request and response header transformations that take effect before the # request is passed along to the selected backendService. class HttpHeaderAction include Google::Apis::Core::Hashable # Headers to add to a matching request before forwarding the request to the # backendService. # Corresponds to the JSON property `requestHeadersToAdd` # @return [Array] attr_accessor :request_headers_to_add # A list of header names for headers that need to be removed from the request # before forwarding the request to the backendService. # Corresponds to the JSON property `requestHeadersToRemove` # @return [Array] attr_accessor :request_headers_to_remove # Headers to add the response before sending the response back to the client. # Corresponds to the JSON property `responseHeadersToAdd` # @return [Array] attr_accessor :response_headers_to_add # A list of header names for headers that need to be removed from the response # before sending the response back to the client. # Corresponds to the JSON property `responseHeadersToRemove` # @return [Array] attr_accessor :response_headers_to_remove def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @request_headers_to_add = args[:request_headers_to_add] if args.key?(:request_headers_to_add) @request_headers_to_remove = args[:request_headers_to_remove] if args.key?(:request_headers_to_remove) @response_headers_to_add = args[:response_headers_to_add] if args.key?(:response_headers_to_add) @response_headers_to_remove = args[:response_headers_to_remove] if args.key?(:response_headers_to_remove) end end # matchRule criteria for request header matches. class HttpHeaderMatch include Google::Apis::Core::Hashable # The value should exactly match contents of exactMatch. Only one of exactMatch, # prefixMatch, suffixMatch, regexMatch, presentMatch or rangeMatch must be set. # Corresponds to the JSON property `exactMatch` # @return [String] attr_accessor :exact_match # The name of the HTTP header to match. For matching against the HTTP request's # authority, use a headerMatch with the header name ":authority". For matching a # request's method, use the headerName ":method". When the URL map is bound to a # target gRPC proxy that has the validateForProxyless field set to true, only # non-binary user-specified custom metadata and the `content-type` header are # supported. The following transport-level headers cannot be used in header # matching rules: `:authority`, `:method`, `:path`, `:scheme`, `user-agent`, ` # accept-encoding`, `content-encoding`, `grpc-accept-encoding`, `grpc-encoding`, # `grpc-previous-rpc-attempts`, `grpc-tags-bin`, `grpc-timeout` and `grpc-trace- # bin`. # Corresponds to the JSON property `headerName` # @return [String] attr_accessor :header_name # If set to false, the headerMatch is considered a match if the preceding match # criteria are met. If set to true, the headerMatch is considered a match if the # preceding match criteria are NOT met. The default setting is false. # Corresponds to the JSON property `invertMatch` # @return [Boolean] attr_accessor :invert_match alias_method :invert_match?, :invert_match # The value of the header must start with the contents of prefixMatch. Only one # of exactMatch, prefixMatch, suffixMatch, regexMatch, presentMatch or # rangeMatch must be set. # Corresponds to the JSON property `prefixMatch` # @return [String] attr_accessor :prefix_match # A header with the contents of headerName must exist. The match takes place # whether or not the request's header has a value. Only one of exactMatch, # prefixMatch, suffixMatch, regexMatch, presentMatch or rangeMatch must be set. # Corresponds to the JSON property `presentMatch` # @return [Boolean] attr_accessor :present_match alias_method :present_match?, :present_match # HttpRouteRuleMatch criteria for field values that must stay within the # specified integer range. # Corresponds to the JSON property `rangeMatch` # @return [Google::Apis::ComputeAlpha::Int64RangeMatch] attr_accessor :range_match # The value of the header must match the regular expression specified in # regexMatch. For more information about regular expression syntax, see Syntax. # For matching against a port specified in the HTTP request, use a headerMatch # with headerName set to PORT and a regular expression that satisfies the # RFC2616 Host header's port specifier. Only one of exactMatch, prefixMatch, # suffixMatch, regexMatch, presentMatch or rangeMatch must be set. regexMatch # only applies to load balancers that have loadBalancingScheme set to # INTERNAL_SELF_MANAGED. # Corresponds to the JSON property `regexMatch` # @return [String] attr_accessor :regex_match # The value of the header must end with the contents of suffixMatch. Only one of # exactMatch, prefixMatch, suffixMatch, regexMatch, presentMatch or rangeMatch # must be set. # Corresponds to the JSON property `suffixMatch` # @return [String] attr_accessor :suffix_match def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @exact_match = args[:exact_match] if args.key?(:exact_match) @header_name = args[:header_name] if args.key?(:header_name) @invert_match = args[:invert_match] if args.key?(:invert_match) @prefix_match = args[:prefix_match] if args.key?(:prefix_match) @present_match = args[:present_match] if args.key?(:present_match) @range_match = args[:range_match] if args.key?(:range_match) @regex_match = args[:regex_match] if args.key?(:regex_match) @suffix_match = args[:suffix_match] if args.key?(:suffix_match) end end # Specification determining how headers are added to requests or responses. class HttpHeaderOption include Google::Apis::Core::Hashable # The name of the header. # Corresponds to the JSON property `headerName` # @return [String] attr_accessor :header_name # The value of the header to add. # Corresponds to the JSON property `headerValue` # @return [String] attr_accessor :header_value # If false, headerValue is appended to any values that already exist for the # header. If true, headerValue is set for the header, discarding any values that # were set for that header. The default value is false. # Corresponds to the JSON property `replace` # @return [Boolean] attr_accessor :replace alias_method :replace?, :replace def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @header_name = args[:header_name] if args.key?(:header_name) @header_value = args[:header_value] if args.key?(:header_value) @replace = args[:replace] if args.key?(:replace) end end # Represents a legacy HTTP Health Check resource. Legacy HTTP health checks are # now only required by target pool-based network load balancers. For all other # load balancers, including backend service-based network load balancers, and # for managed instance group auto-healing, you must use modern (non-legacy) # health checks. For more information, see Health checks overview . class HttpHealthCheck include Google::Apis::Core::Hashable # How often (in seconds) to send a health check. The default value is 5 seconds. # Corresponds to the JSON property `checkIntervalSec` # @return [Fixnum] attr_accessor :check_interval_sec # [Output Only] Creation timestamp in RFC3339 text format. # Corresponds to the JSON property `creationTimestamp` # @return [String] attr_accessor :creation_timestamp # An optional description of this resource. Provide this property when you # create the resource. # Corresponds to the JSON property `description` # @return [String] attr_accessor :description # A so-far unhealthy instance will be marked healthy after this many consecutive # successes. The default value is 2. # Corresponds to the JSON property `healthyThreshold` # @return [Fixnum] attr_accessor :healthy_threshold # The value of the host header in the HTTP health check request. If left empty ( # default value), the public IP on behalf of which this health check is # performed will be used. # Corresponds to the JSON property `host` # @return [String] attr_accessor :host # [Output Only] The unique identifier for the resource. This identifier is # defined by the server. # Corresponds to the JSON property `id` # @return [Fixnum] attr_accessor :id # [Output Only] Type of the resource. Always compute#httpHealthCheck for HTTP # health checks. # Corresponds to the JSON property `kind` # @return [String] attr_accessor :kind # Name of the resource. Provided by the client when the resource is created. The # name must be 1-63 characters long, and comply with RFC1035. Specifically, the # name must be 1-63 characters long and match the regular expression `[a-z]([-a- # z0-9]*[a-z0-9])?` which means the first character must be a lowercase letter, # and all following characters must be a dash, lowercase letter, or digit, # except the last character, which cannot be a dash. # Corresponds to the JSON property `name` # @return [String] attr_accessor :name # The TCP port number for the HTTP health check request. The default value is 80. # Corresponds to the JSON property `port` # @return [Fixnum] attr_accessor :port # The request path of the HTTP health check request. The default value is /. # This field does not support query parameters. # Corresponds to the JSON property `requestPath` # @return [String] attr_accessor :request_path # [Output Only] Server-defined URL for the resource. # Corresponds to the JSON property `selfLink` # @return [String] attr_accessor :self_link # [Output Only] Server-defined URL for this resource with the resource id. # Corresponds to the JSON property `selfLinkWithId` # @return [String] attr_accessor :self_link_with_id # How long (in seconds) to wait before claiming failure. The default value is 5 # seconds. It is invalid for timeoutSec to have greater value than # checkIntervalSec. # Corresponds to the JSON property `timeoutSec` # @return [Fixnum] attr_accessor :timeout_sec # A so-far healthy instance will be marked unhealthy after this many consecutive # failures. The default value is 2. # 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) @creation_timestamp = args[:creation_timestamp] if args.key?(:creation_timestamp) @description = args[:description] if args.key?(:description) @healthy_threshold = args[:healthy_threshold] if args.key?(:healthy_threshold) @host = args[:host] if args.key?(:host) @id = args[:id] if args.key?(:id) @kind = args[:kind] if args.key?(:kind) @name = args[:name] if args.key?(:name) @port = args[:port] if args.key?(:port) @request_path = args[:request_path] if args.key?(:request_path) @self_link = args[:self_link] if args.key?(:self_link) @self_link_with_id = args[:self_link_with_id] if args.key?(:self_link_with_id) @timeout_sec = args[:timeout_sec] if args.key?(:timeout_sec) @unhealthy_threshold = args[:unhealthy_threshold] if args.key?(:unhealthy_threshold) end end # Contains a list of HttpHealthCheck resources. class HttpHealthCheckList include Google::Apis::Core::Hashable # [Output Only] Unique identifier for the resource; defined by the server. # Corresponds to the JSON property `id` # @return [String] attr_accessor :id # A list of HttpHealthCheck resources. # Corresponds to the JSON property `items` # @return [Array] attr_accessor :items # Type of resource. # Corresponds to the JSON property `kind` # @return [String] attr_accessor :kind # [Output Only] This token allows you to get the next page of results for list # requests. If the number of results is larger than maxResults, use the # nextPageToken as a value for the query parameter pageToken in the next list # request. Subsequent list requests will have their own nextPageToken to # continue paging through the results. # Corresponds to the JSON property `nextPageToken` # @return [String] attr_accessor :next_page_token # [Output Only] Server-defined URL for this resource. # Corresponds to the JSON property `selfLink` # @return [String] attr_accessor :self_link # [Output Only] Informational warning message. # Corresponds to the JSON property `warning` # @return [Google::Apis::ComputeAlpha::HttpHealthCheckList::Warning] attr_accessor :warning def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @id = args[:id] if args.key?(:id) @items = args[:items] if args.key?(:items) @kind = args[:kind] if args.key?(:kind) @next_page_token = args[:next_page_token] if args.key?(:next_page_token) @self_link = args[:self_link] if args.key?(:self_link) @warning = args[:warning] if args.key?(:warning) end # [Output Only] Informational warning message. class Warning include Google::Apis::Core::Hashable # [Output Only] A warning code, if applicable. For example, Compute Engine # returns NO_RESULTS_ON_PAGE if there are no results in the response. # Corresponds to the JSON property `code` # @return [String] attr_accessor :code # [Output Only] Metadata about this warning in key: value format. For example: " # data": [ ` "key": "scope", "value": "zones/us-east1-d" ` # Corresponds to the JSON property `data` # @return [Array] attr_accessor :data # [Output Only] A human-readable description of the warning code. # Corresponds to the JSON property `message` # @return [String] attr_accessor :message def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @code = args[:code] if args.key?(:code) @data = args[:data] if args.key?(:data) @message = args[:message] if args.key?(:message) end # class Datum include Google::Apis::Core::Hashable # [Output Only] A key that provides more detail on the warning being returned. # For example, for warnings where there are no results in a list request for a # particular zone, this key might be scope and the key value might be the zone # name. Other examples might be a key indicating a deprecated resource and a # suggested replacement, or a warning about invalid network settings (for # example, if an instance attempts to perform IP forwarding but is not enabled # for IP forwarding). # Corresponds to the JSON property `key` # @return [String] attr_accessor :key # [Output Only] A warning data value corresponding to the key. # 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 end end # HttpRouteRuleMatch criteria for a request's query parameter. class HttpQueryParameterMatch include Google::Apis::Core::Hashable # The queryParameterMatch matches if the value of the parameter exactly matches # the contents of exactMatch. Only one of presentMatch, exactMatch, or # regexMatch must be set. # Corresponds to the JSON property `exactMatch` # @return [String] attr_accessor :exact_match # The name of the query parameter to match. The query parameter must exist in # the request, in the absence of which the request match fails. # Corresponds to the JSON property `name` # @return [String] attr_accessor :name # Specifies that the queryParameterMatch matches if the request contains the # query parameter, irrespective of whether the parameter has a value or not. # Only one of presentMatch, exactMatch, or regexMatch must be set. # Corresponds to the JSON property `presentMatch` # @return [Boolean] attr_accessor :present_match alias_method :present_match?, :present_match # The queryParameterMatch matches if the value of the parameter matches the # regular expression specified by regexMatch. For more information about regular # expression syntax, see Syntax. Only one of presentMatch, exactMatch, or # regexMatch must be set. regexMatch only applies when the loadBalancingScheme # is set to INTERNAL_SELF_MANAGED. # Corresponds to the JSON property `regexMatch` # @return [String] attr_accessor :regex_match def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @exact_match = args[:exact_match] if args.key?(:exact_match) @name = args[:name] if args.key?(:name) @present_match = args[:present_match] if args.key?(:present_match) @regex_match = args[:regex_match] if args.key?(:regex_match) end end # Specifies settings for an HTTP redirect. class HttpRedirectAction include Google::Apis::Core::Hashable # The host that is used in the redirect response instead of the one that was # supplied in the request. The value must be from 1 to 255 characters. # Corresponds to the JSON property `hostRedirect` # @return [String] attr_accessor :host_redirect # If set to true, the URL scheme in the redirected request is set to HTTPS. If # set to false, the URL scheme of the redirected request remains the same as # that of the request. This must only be set for URL maps used in # TargetHttpProxys. Setting this true for TargetHttpsProxy is not permitted. The # default is set to false. # Corresponds to the JSON property `httpsRedirect` # @return [Boolean] attr_accessor :https_redirect alias_method :https_redirect?, :https_redirect # The path that is used in the redirect response instead of the one that was # supplied in the request. pathRedirect cannot be supplied together with # prefixRedirect. Supply one alone or neither. If neither is supplied, the path # of the original request is used for the redirect. The value must be from 1 to # 1024 characters. # Corresponds to the JSON property `pathRedirect` # @return [String] attr_accessor :path_redirect # The prefix that replaces the prefixMatch specified in the HttpRouteRuleMatch, # retaining the remaining portion of the URL before redirecting the request. # prefixRedirect cannot be supplied together with pathRedirect. Supply one alone # or neither. If neither is supplied, the path of the original request is used # for the redirect. The value must be from 1 to 1024 characters. # Corresponds to the JSON property `prefixRedirect` # @return [String] attr_accessor :prefix_redirect # The HTTP Status code to use for this RedirectAction. Supported values are: - # MOVED_PERMANENTLY_DEFAULT, which is the default value and corresponds to 301. - # FOUND, which corresponds to 302. - SEE_OTHER which corresponds to 303. - # TEMPORARY_REDIRECT, which corresponds to 307. In this case, the request method # is retained. - PERMANENT_REDIRECT, which corresponds to 308. In this case, the # request method is retained. # Corresponds to the JSON property `redirectResponseCode` # @return [String] attr_accessor :redirect_response_code # If set to true, any accompanying query portion of the original URL is removed # before redirecting the request. If set to false, the query portion of the # original URL is retained. The default is set to false. # Corresponds to the JSON property `stripQuery` # @return [Boolean] attr_accessor :strip_query alias_method :strip_query?, :strip_query def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @host_redirect = args[:host_redirect] if args.key?(:host_redirect) @https_redirect = args[:https_redirect] if args.key?(:https_redirect) @path_redirect = args[:path_redirect] if args.key?(:path_redirect) @prefix_redirect = args[:prefix_redirect] if args.key?(:prefix_redirect) @redirect_response_code = args[:redirect_response_code] if args.key?(:redirect_response_code) @strip_query = args[:strip_query] if args.key?(:strip_query) end end # The retry policy associates with HttpRouteRule class HttpRetryPolicy include Google::Apis::Core::Hashable # Specifies the allowed number retries. This number must be > 0. If not # specified, defaults to 1. # Corresponds to the JSON property `numRetries` # @return [Fixnum] attr_accessor :num_retries # A Duration represents a fixed-length span of time represented as a count of # seconds and fractions of seconds at nanosecond resolution. It is independent # of any calendar and concepts like "day" or "month". Range is approximately 10, # 000 years. # Corresponds to the JSON property `perTryTimeout` # @return [Google::Apis::ComputeAlpha::Duration] attr_accessor :per_try_timeout # Specifies one or more conditions when this retry policy applies. Valid values # are: - 5xx: retry is attempted if the instance or endpoint responds with any # 5xx response code, or if the instance or endpoint does not respond at all. For # example, disconnects, reset, read timeout, connection failure, and refused # streams. - gateway-error: Similar to 5xx, but only applies to response codes # 502, 503 or 504. - connect-failure: a retry is attempted on failures # connecting to the instance or endpoint. For example, connection timeouts. - # retriable-4xx: a retry is attempted if the instance or endpoint responds with # a 4xx response code. The only error that you can retry is error code 409. - # refused-stream: a retry is attempted if the instance or endpoint resets the # stream with a REFUSED_STREAM error code. This reset type indicates that it is # safe to retry. - cancelled: a retry is attempted if the gRPC status code in # the response header is set to cancelled. - deadline-exceeded: a retry is # attempted if the gRPC status code in the response header is set to deadline- # exceeded. - internal: a retry is attempted if the gRPC status code in the # response header is set to internal. - resource-exhausted: a retry is attempted # if the gRPC status code in the response header is set to resource-exhausted. - # unavailable: a retry is attempted if the gRPC status code in the response # header is set to unavailable. Only the following codes are supported when the # URL map is bound to target gRPC proxy that has validateForProxyless field set # to true. - cancelled - deadline-exceeded - internal - resource-exhausted - # unavailable # Corresponds to the JSON property `retryConditions` # @return [Array] attr_accessor :retry_conditions def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @num_retries = args[:num_retries] if args.key?(:num_retries) @per_try_timeout = args[:per_try_timeout] if args.key?(:per_try_timeout) @retry_conditions = args[:retry_conditions] if args.key?(:retry_conditions) end end # class HttpRouteAction include Google::Apis::Core::Hashable # The specification for allowing client-side cross-origin requests. For more # information about the W3C recommendation for cross-origin resource sharing ( # CORS), see Fetch API Living Standard. # Corresponds to the JSON property `corsPolicy` # @return [Google::Apis::ComputeAlpha::CorsPolicy] attr_accessor :cors_policy # The specification for fault injection introduced into traffic to test the # resiliency of clients to backend service failure. As part of fault injection, # when clients send requests to a backend service, delays can be introduced by # the load balancer on a percentage of requests before sending those request to # the backend service. Similarly requests from clients can be aborted by the # load balancer for a percentage of requests. # Corresponds to the JSON property `faultInjectionPolicy` # @return [Google::Apis::ComputeAlpha::HttpFaultInjection] attr_accessor :fault_injection_policy # A Duration represents a fixed-length span of time represented as a count of # seconds and fractions of seconds at nanosecond resolution. It is independent # of any calendar and concepts like "day" or "month". Range is approximately 10, # 000 years. # Corresponds to the JSON property `maxStreamDuration` # @return [Google::Apis::ComputeAlpha::Duration] attr_accessor :max_stream_duration # A policy that specifies how requests intended for the route's backends are # shadowed to a separate mirrored backend service. The load balancer doesn't # wait for responses from the shadow service. Before sending traffic to the # shadow service, the host or authority header is suffixed with -shadow. # Corresponds to the JSON property `requestMirrorPolicy` # @return [Google::Apis::ComputeAlpha::RequestMirrorPolicy] attr_accessor :request_mirror_policy # The retry policy associates with HttpRouteRule # Corresponds to the JSON property `retryPolicy` # @return [Google::Apis::ComputeAlpha::HttpRetryPolicy] attr_accessor :retry_policy # A Duration represents a fixed-length span of time represented as a count of # seconds and fractions of seconds at nanosecond resolution. It is independent # of any calendar and concepts like "day" or "month". Range is approximately 10, # 000 years. # Corresponds to the JSON property `timeout` # @return [Google::Apis::ComputeAlpha::Duration] attr_accessor :timeout # The spec for modifying the path before sending the request to the matched # backend service. # Corresponds to the JSON property `urlRewrite` # @return [Google::Apis::ComputeAlpha::UrlRewrite] attr_accessor :url_rewrite # A list of weighted backend services to send traffic to when a route match # occurs. The weights determine the fraction of traffic that flows to their # corresponding backend service. If all traffic needs to go to a single backend # service, there must be one weightedBackendService with weight set to a non- # zero number. After a backend service is identified and before forwarding the # request to the backend service, advanced routing actions such as URL rewrites # and header transformations are applied depending on additional settings # specified in this HttpRouteAction. # Corresponds to the JSON property `weightedBackendServices` # @return [Array] attr_accessor :weighted_backend_services def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @cors_policy = args[:cors_policy] if args.key?(:cors_policy) @fault_injection_policy = args[:fault_injection_policy] if args.key?(:fault_injection_policy) @max_stream_duration = args[:max_stream_duration] if args.key?(:max_stream_duration) @request_mirror_policy = args[:request_mirror_policy] if args.key?(:request_mirror_policy) @retry_policy = args[:retry_policy] if args.key?(:retry_policy) @timeout = args[:timeout] if args.key?(:timeout) @url_rewrite = args[:url_rewrite] if args.key?(:url_rewrite) @weighted_backend_services = args[:weighted_backend_services] if args.key?(:weighted_backend_services) end end # The HttpRouteRule setting specifies how to match an HTTP request and the # corresponding routing action that load balancing proxies perform. class HttpRouteRule include Google::Apis::Core::Hashable # The short description conveying the intent of this routeRule. The description # can have a maximum length of 1024 characters. # Corresponds to the JSON property `description` # @return [String] attr_accessor :description # The request and response header transformations that take effect before the # request is passed along to the selected backendService. # Corresponds to the JSON property `headerAction` # @return [Google::Apis::ComputeAlpha::HttpHeaderAction] attr_accessor :header_action # Outbound route specific configuration for networkservices.HttpFilter resources # enabled by Traffic Director. httpFilterConfigs only applies for load balancers # with loadBalancingScheme set to INTERNAL_SELF_MANAGED. See ForwardingRule for # more details. Not supported when the URL map is bound to a target gRPC proxy # that has validateForProxyless field set to true. # Corresponds to the JSON property `httpFilterConfigs` # @return [Array] attr_accessor :http_filter_configs # Outbound route specific metadata supplied to networkservices.HttpFilter # resources enabled by Traffic Director. httpFilterMetadata only applies for # load balancers with loadBalancingScheme set to INTERNAL_SELF_MANAGED. See # ForwardingRule for more details. The only configTypeUrl supported is type. # googleapis.com/google.protobuf.Struct Not supported when the URL map is bound # to a target gRPC proxy that has validateForProxyless field set to true. # Corresponds to the JSON property `httpFilterMetadata` # @return [Array] attr_accessor :http_filter_metadata # The list of criteria for matching attributes of a request to this routeRule. # This list has OR semantics: the request matches this routeRule when any of the # matchRules are satisfied. However predicates within a given matchRule have AND # semantics. All predicates within a matchRule must match for the request to # match the rule. # Corresponds to the JSON property `matchRules` # @return [Array] attr_accessor :match_rules # For routeRules within a given pathMatcher, priority determines the order in # which a load balancer interprets routeRules. RouteRules are evaluated in order # of priority, from the lowest to highest number. The priority of a rule # decreases as its number increases (1, 2, 3, N+1). The first rule that matches # the request is applied. You cannot configure two or more routeRules with the # same priority. Priority for each rule must be set to a number from 0 to # 2147483647 inclusive. Priority numbers can have gaps, which enable you to add # or remove rules in the future without affecting the rest of the rules. For # example, 1, 2, 3, 4, 5, 9, 12, 16 is a valid series of priority numbers to # which you could add rules numbered from 6 to 8, 10 to 11, and 13 to 15 in the # future without any impact on existing rules. # Corresponds to the JSON property `priority` # @return [Fixnum] attr_accessor :priority # In response to a matching matchRule, the load balancer performs advanced # routing actions, such as URL rewrites and header transformations, before # forwarding the request to the selected backend. If routeAction specifies any # weightedBackendServices, service must not be set. Conversely if service is set, # routeAction cannot contain any weightedBackendServices. Only one of # urlRedirect, service or routeAction.weightedBackendService must be set. # UrlMaps for external HTTP(S) load balancers support only the urlRewrite action # within a route rule's routeAction. # Corresponds to the JSON property `routeAction` # @return [Google::Apis::ComputeAlpha::HttpRouteAction] attr_accessor :route_action # The full or partial URL of the backend service resource to which traffic is # directed if this rule is matched. If routeAction is also specified, advanced # routing actions, such as URL rewrites, take effect before sending the request # to the backend. However, if service is specified, routeAction cannot contain # any weightedBackendServices. Conversely, if routeAction specifies any # weightedBackendServices, service must not be specified. Only one of # urlRedirect, service or routeAction.weightedBackendService must be set. # Corresponds to the JSON property `service` # @return [String] attr_accessor :service # Specifies settings for an HTTP redirect. # Corresponds to the JSON property `urlRedirect` # @return [Google::Apis::ComputeAlpha::HttpRedirectAction] attr_accessor :url_redirect def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @description = args[:description] if args.key?(:description) @header_action = args[:header_action] if args.key?(:header_action) @http_filter_configs = args[:http_filter_configs] if args.key?(:http_filter_configs) @http_filter_metadata = args[:http_filter_metadata] if args.key?(:http_filter_metadata) @match_rules = args[:match_rules] if args.key?(:match_rules) @priority = args[:priority] if args.key?(:priority) @route_action = args[:route_action] if args.key?(:route_action) @service = args[:service] if args.key?(:service) @url_redirect = args[:url_redirect] if args.key?(:url_redirect) end end # HttpRouteRuleMatch specifies a set of criteria for matching requests to an # HttpRouteRule. All specified criteria must be satisfied for a match to occur. class HttpRouteRuleMatch include Google::Apis::Core::Hashable # For satisfying the matchRule condition, the path of the request must exactly # match the value specified in fullPathMatch after removing any query parameters # and anchor that may be part of the original URL. fullPathMatch must be from 1 # to 1024 characters. Only one of prefixMatch, fullPathMatch or regexMatch must # be specified. # Corresponds to the JSON property `fullPathMatch` # @return [String] attr_accessor :full_path_match # Specifies a list of header match criteria, all of which must match # corresponding headers in the request. # Corresponds to the JSON property `headerMatches` # @return [Array] attr_accessor :header_matches # Specifies that prefixMatch and fullPathMatch matches are case sensitive. The # default value is false. ignoreCase must not be used with regexMatch. Not # supported when the URL map is bound to a target gRPC proxy. # Corresponds to the JSON property `ignoreCase` # @return [Boolean] attr_accessor :ignore_case alias_method :ignore_case?, :ignore_case # Opaque filter criteria used by the load balancer to restrict routing # configuration to a limited set of xDS compliant clients. In their xDS requests # to the load balancer, xDS clients present node metadata. When there is a match, # the relevant routing configuration is made available to those proxies. For # each metadataFilter in this list, if its filterMatchCriteria is set to # MATCH_ANY, at least one of the filterLabels must match the corresponding label # provided in the metadata. If its filterMatchCriteria is set to MATCH_ALL, then # all of its filterLabels must match with corresponding labels provided in the # metadata. If multiple metadata filters are specified, all of them need to be # satisfied in order to be considered a match. metadataFilters specified here is # applied after those specified in ForwardingRule that refers to the UrlMap this # HttpRouteRuleMatch belongs to. metadataFilters only applies to load balancers # that have loadBalancingScheme set to INTERNAL_SELF_MANAGED. Not supported when # the URL map is bound to a target gRPC proxy that has validateForProxyless # field set to true. # Corresponds to the JSON property `metadataFilters` # @return [Array] attr_accessor :metadata_filters # For satisfying the matchRule condition, the request's path must begin with the # specified prefixMatch. prefixMatch must begin with a /. The value must be from # 1 to 1024 characters. Only one of prefixMatch, fullPathMatch or regexMatch # must be specified. # Corresponds to the JSON property `prefixMatch` # @return [String] attr_accessor :prefix_match # Specifies a list of query parameter match criteria, all of which must match # corresponding query parameters in the request. Not supported when the URL map # is bound to a target gRPC proxy. # Corresponds to the JSON property `queryParameterMatches` # @return [Array] attr_accessor :query_parameter_matches # For satisfying the matchRule condition, the path of the request must satisfy # the regular expression specified in regexMatch after removing any query # parameters and anchor supplied with the original URL. For more information # about regular expression syntax, see Syntax. Only one of prefixMatch, # fullPathMatch or regexMatch must be specified. regexMatch only applies to load # balancers that have loadBalancingScheme set to INTERNAL_SELF_MANAGED. # Corresponds to the JSON property `regexMatch` # @return [String] attr_accessor :regex_match def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @full_path_match = args[:full_path_match] if args.key?(:full_path_match) @header_matches = args[:header_matches] if args.key?(:header_matches) @ignore_case = args[:ignore_case] if args.key?(:ignore_case) @metadata_filters = args[:metadata_filters] if args.key?(:metadata_filters) @prefix_match = args[:prefix_match] if args.key?(:prefix_match) @query_parameter_matches = args[:query_parameter_matches] if args.key?(:query_parameter_matches) @regex_match = args[:regex_match] if args.key?(:regex_match) end end # Represents a legacy HTTPS Health Check resource. Legacy HTTPS health checks # have been deprecated. If you are using a target pool-based network load # balancer, you must use a legacy HTTP (not HTTPS) health check. For all other # load balancers, including backend service-based network load balancers, and # for managed instance group auto-healing, you must use modern (non-legacy) # health checks. For more information, see Health checks overview . class HttpsHealthCheck include Google::Apis::Core::Hashable # How often (in seconds) to send a health check. The default value is 5 seconds. # Corresponds to the JSON property `checkIntervalSec` # @return [Fixnum] attr_accessor :check_interval_sec # [Output Only] Creation timestamp in RFC3339 text format. # Corresponds to the JSON property `creationTimestamp` # @return [String] attr_accessor :creation_timestamp # An optional description of this resource. Provide this property when you # create the resource. # Corresponds to the JSON property `description` # @return [String] attr_accessor :description # A so-far unhealthy instance will be marked healthy after this many consecutive # successes. The default value is 2. # Corresponds to the JSON property `healthyThreshold` # @return [Fixnum] attr_accessor :healthy_threshold # The value of the host header in the HTTPS health check request. If left empty ( # default value), the public IP on behalf of which this health check is # performed will be used. # Corresponds to the JSON property `host` # @return [String] attr_accessor :host # [Output Only] The unique identifier for the resource. This identifier is # defined by the server. # Corresponds to the JSON property `id` # @return [Fixnum] attr_accessor :id # Type of the resource. # Corresponds to the JSON property `kind` # @return [String] attr_accessor :kind # Name of the resource. Provided by the client when the resource is created. The # name must be 1-63 characters long, and comply with RFC1035. Specifically, the # name must be 1-63 characters long and match the regular expression `[a-z]([-a- # z0-9]*[a-z0-9])?` which means the first character must be a lowercase letter, # and all following characters must be a dash, lowercase letter, or digit, # except the last character, which cannot be a dash. # Corresponds to the JSON property `name` # @return [String] attr_accessor :name # The TCP port number for the HTTPS health check request. The default value is # 443. # Corresponds to the JSON property `port` # @return [Fixnum] attr_accessor :port # The request path of the HTTPS health check request. The default value is "/". # Corresponds to the JSON property `requestPath` # @return [String] attr_accessor :request_path # [Output Only] Server-defined URL for the resource. # Corresponds to the JSON property `selfLink` # @return [String] attr_accessor :self_link # [Output Only] Server-defined URL for this resource with the resource id. # Corresponds to the JSON property `selfLinkWithId` # @return [String] attr_accessor :self_link_with_id # How long (in seconds) to wait before claiming failure. The default value is 5 # seconds. It is invalid for timeoutSec to have a greater value than # checkIntervalSec. # Corresponds to the JSON property `timeoutSec` # @return [Fixnum] attr_accessor :timeout_sec # A so-far healthy instance will be marked unhealthy after this many consecutive # failures. The default value is 2. # 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) @creation_timestamp = args[:creation_timestamp] if args.key?(:creation_timestamp) @description = args[:description] if args.key?(:description) @healthy_threshold = args[:healthy_threshold] if args.key?(:healthy_threshold) @host = args[:host] if args.key?(:host) @id = args[:id] if args.key?(:id) @kind = args[:kind] if args.key?(:kind) @name = args[:name] if args.key?(:name) @port = args[:port] if args.key?(:port) @request_path = args[:request_path] if args.key?(:request_path) @self_link = args[:self_link] if args.key?(:self_link) @self_link_with_id = args[:self_link_with_id] if args.key?(:self_link_with_id) @timeout_sec = args[:timeout_sec] if args.key?(:timeout_sec) @unhealthy_threshold = args[:unhealthy_threshold] if args.key?(:unhealthy_threshold) end end # Contains a list of HttpsHealthCheck resources. class HttpsHealthCheckList include Google::Apis::Core::Hashable # [Output Only] Unique identifier for the resource; defined by the server. # Corresponds to the JSON property `id` # @return [String] attr_accessor :id # A list of HttpsHealthCheck resources. # Corresponds to the JSON property `items` # @return [Array] attr_accessor :items # Type of resource. # Corresponds to the JSON property `kind` # @return [String] attr_accessor :kind # [Output Only] This token allows you to get the next page of results for list # requests. If the number of results is larger than maxResults, use the # nextPageToken as a value for the query parameter pageToken in the next list # request. Subsequent list requests will have their own nextPageToken to # continue paging through the results. # Corresponds to the JSON property `nextPageToken` # @return [String] attr_accessor :next_page_token # [Output Only] Server-defined URL for this resource. # Corresponds to the JSON property `selfLink` # @return [String] attr_accessor :self_link # [Output Only] Informational warning message. # Corresponds to the JSON property `warning` # @return [Google::Apis::ComputeAlpha::HttpsHealthCheckList::Warning] attr_accessor :warning def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @id = args[:id] if args.key?(:id) @items = args[:items] if args.key?(:items) @kind = args[:kind] if args.key?(:kind) @next_page_token = args[:next_page_token] if args.key?(:next_page_token) @self_link = args[:self_link] if args.key?(:self_link) @warning = args[:warning] if args.key?(:warning) end # [Output Only] Informational warning message. class Warning include Google::Apis::Core::Hashable # [Output Only] A warning code, if applicable. For example, Compute Engine # returns NO_RESULTS_ON_PAGE if there are no results in the response. # Corresponds to the JSON property `code` # @return [String] attr_accessor :code # [Output Only] Metadata about this warning in key: value format. For example: " # data": [ ` "key": "scope", "value": "zones/us-east1-d" ` # Corresponds to the JSON property `data` # @return [Array] attr_accessor :data # [Output Only] A human-readable description of the warning code. # Corresponds to the JSON property `message` # @return [String] attr_accessor :message def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @code = args[:code] if args.key?(:code) @data = args[:data] if args.key?(:data) @message = args[:message] if args.key?(:message) end # class Datum include Google::Apis::Core::Hashable # [Output Only] A key that provides more detail on the warning being returned. # For example, for warnings where there are no results in a list request for a # particular zone, this key might be scope and the key value might be the zone # name. Other examples might be a key indicating a deprecated resource and a # suggested replacement, or a warning about invalid network settings (for # example, if an instance attempts to perform IP forwarding but is not enabled # for IP forwarding). # Corresponds to the JSON property `key` # @return [String] attr_accessor :key # [Output Only] A warning data value corresponding to the key. # 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 end end # Represents an Image resource. You can use images to create boot disks for your # VM instances. For more information, read Images. class Image include Google::Apis::Core::Hashable # The architecture of the image. Valid values are ARM64 or X86_64. # Corresponds to the JSON property `architecture` # @return [String] attr_accessor :architecture # Size of the image tar.gz archive stored in Google Cloud Storage (in bytes). # Corresponds to the JSON property `archiveSizeBytes` # @return [Fixnum] attr_accessor :archive_size_bytes # [Output Only] Creation timestamp in RFC3339 text format. # Corresponds to the JSON property `creationTimestamp` # @return [String] attr_accessor :creation_timestamp # Deprecation status for a public resource. # Corresponds to the JSON property `deprecated` # @return [Google::Apis::ComputeAlpha::DeprecationStatus] attr_accessor :deprecated # An optional description of this resource. Provide this property when you # create the resource. # Corresponds to the JSON property `description` # @return [String] attr_accessor :description # Size of the image when restored onto a persistent disk (in GB). # Corresponds to the JSON property `diskSizeGb` # @return [Fixnum] attr_accessor :disk_size_gb # The name of the image family to which this image belongs. You can create disks # by specifying an image family instead of a specific image name. The image # family always returns its latest image that is not deprecated. The name of the # image family must comply with RFC1035. # Corresponds to the JSON property `family` # @return [String] attr_accessor :family # A list of features to enable on the guest operating system. Applicable only # for bootable images. To see a list of available options, see the # guestOSfeatures[].type parameter. # Corresponds to the JSON property `guestOsFeatures` # @return [Array] attr_accessor :guest_os_features # [Output Only] The unique identifier for the resource. This identifier is # defined by the server. # Corresponds to the JSON property `id` # @return [Fixnum] attr_accessor :id # Encrypts the image using a customer-supplied encryption key. After you encrypt # an image with a customer-supplied key, you must provide the same key if you # use the image later (e.g. to create a disk from the image). Customer-supplied # encryption keys do not protect access to metadata of the disk. If you do not # provide an encryption key when creating the image, then the disk will be # encrypted using an automatically generated key and you do not need to provide # a key to use the image later. # Corresponds to the JSON property `imageEncryptionKey` # @return [Google::Apis::ComputeAlpha::CustomerEncryptionKey] attr_accessor :image_encryption_key # [Output Only] Type of the resource. Always compute#image for images. # Corresponds to the JSON property `kind` # @return [String] attr_accessor :kind # A fingerprint for the labels being applied to this image, which is essentially # a hash of the labels used for optimistic locking. The fingerprint is initially # generated by Compute Engine and changes after every request to modify or # update labels. You must always provide an up-to-date fingerprint hash in order # to update or change labels, otherwise the request will fail with error 412 # conditionNotMet. To see the latest fingerprint, make a get() request to # retrieve an image. # Corresponds to the JSON property `labelFingerprint` # NOTE: Values are automatically base64 encoded/decoded in the client library. # @return [String] attr_accessor :label_fingerprint # Labels to apply to this image. These can be later modified by the setLabels # method. # Corresponds to the JSON property `labels` # @return [Hash] attr_accessor :labels # Integer license codes indicating which licenses are attached to this image. # Corresponds to the JSON property `licenseCodes` # @return [Array] attr_accessor :license_codes # Any applicable license URI. # Corresponds to the JSON property `licenses` # @return [Array] attr_accessor :licenses # A flag for marketplace VM disk created from the image, which is designed for # marketplace VM disk to prevent the proprietary data on the disk from being # accessed unwantedly. The flag will be inherited by the disk created from the # image. The disk with locked flag set to true will be prohibited from # performing the operations below: - R/W or R/O disk attach - Disk detach, if # disk is created via create-on-create - Create images - Create snapshots - # Create disk clone (create disk from the current disk) The image with the # locked field set to true will be prohibited from performing the operations # below: - Create images from the current image - Update the locked field for # the current image The instance with at least one disk with locked flag set to # true will be prohibited from performing the operations below: - Secondary disk # attach - Create instant snapshot - Create machine images - Create instance # template - Delete the instance with --keep-disk parameter set to true # Corresponds to the JSON property `locked` # @return [Boolean] attr_accessor :locked alias_method :locked?, :locked # Name of the resource; provided by the client when the resource is created. The # name must be 1-63 characters long, and comply with RFC1035. Specifically, the # name must be 1-63 characters long and match the regular expression `[a-z]([-a- # z0-9]*[a-z0-9])?` which means the first character must be a lowercase letter, # and all following characters must be a dash, lowercase letter, or digit, # except the last character, which cannot be a dash. # Corresponds to the JSON property `name` # @return [String] attr_accessor :name # The parameters of the raw disk image. # Corresponds to the JSON property `rawDisk` # @return [Google::Apis::ComputeAlpha::Image::RawDisk] attr_accessor :raw_disk # A rollout policy configuration. # Corresponds to the JSON property `rolloutOverride` # @return [Google::Apis::ComputeAlpha::RolloutPolicy] attr_accessor :rollout_override # [Output Only] Reserved for future use. # Corresponds to the JSON property `satisfiesPzs` # @return [Boolean] attr_accessor :satisfies_pzs alias_method :satisfies_pzs?, :satisfies_pzs # [Output Only] Server-defined URL for the resource. # Corresponds to the JSON property `selfLink` # @return [String] attr_accessor :self_link # [Output Only] Server-defined URL for this resource's resource id. # Corresponds to the JSON property `selfLinkWithId` # @return [String] attr_accessor :self_link_with_id # Initial State for shielded instance, these are public keys which are safe to # store in public # Corresponds to the JSON property `shieldedInstanceInitialState` # @return [Google::Apis::ComputeAlpha::InitialStateConfig] attr_accessor :shielded_instance_initial_state # URL of the source disk used to create this image. For example, the following # are valid values: - https://www.googleapis.com/compute/v1/projects/project/ # zones/zone /disks/disk - projects/project/zones/zone/disks/disk - zones/zone/ # disks/disk In order to create an image, you must provide the full or partial # URL of one of the following: - The rawDisk.source URL - The sourceDisk URL - # The sourceImage URL - The sourceSnapshot URL # Corresponds to the JSON property `sourceDisk` # @return [String] attr_accessor :source_disk # The customer-supplied encryption key of the source disk. Required if the # source disk is protected by a customer-supplied encryption key. # Corresponds to the JSON property `sourceDiskEncryptionKey` # @return [Google::Apis::ComputeAlpha::CustomerEncryptionKey] attr_accessor :source_disk_encryption_key # [Output Only] The ID value of the disk used to create this image. This value # may be used to determine whether the image was taken from the current or a # previous instance of a given disk name. # Corresponds to the JSON property `sourceDiskId` # @return [String] attr_accessor :source_disk_id # URL of the source image used to create this image. The following are valid # formats for the URL: - https://www.googleapis.com/compute/v1/projects/ # project_id/global/ images/image_name - projects/project_id/global/images/ # image_name In order to create an image, you must provide the full or partial # URL of one of the following: - The rawDisk.source URL - The sourceDisk URL - # The sourceImage URL - The sourceSnapshot URL # Corresponds to the JSON property `sourceImage` # @return [String] attr_accessor :source_image # The customer-supplied encryption key of the source image. Required if the # source image is protected by a customer-supplied encryption key. # Corresponds to the JSON property `sourceImageEncryptionKey` # @return [Google::Apis::ComputeAlpha::CustomerEncryptionKey] attr_accessor :source_image_encryption_key # [Output Only] The ID value of the image used to create this image. This value # may be used to determine whether the image was taken from the current or a # previous instance of a given image name. # Corresponds to the JSON property `sourceImageId` # @return [String] attr_accessor :source_image_id # URL of the source snapshot used to create this image. The following are valid # formats for the URL: - https://www.googleapis.com/compute/v1/projects/ # project_id/global/ snapshots/snapshot_name - projects/project_id/global/ # snapshots/snapshot_name In order to create an image, you must provide the full # or partial URL of one of the following: - The rawDisk.source URL - The # sourceDisk URL - The sourceImage URL - The sourceSnapshot URL # Corresponds to the JSON property `sourceSnapshot` # @return [String] attr_accessor :source_snapshot # The customer-supplied encryption key of the source snapshot. Required if the # source snapshot is protected by a customer-supplied encryption key. # Corresponds to the JSON property `sourceSnapshotEncryptionKey` # @return [Google::Apis::ComputeAlpha::CustomerEncryptionKey] attr_accessor :source_snapshot_encryption_key # [Output Only] The ID value of the snapshot used to create this image. This # value may be used to determine whether the snapshot was taken from the current # or a previous instance of a given snapshot name. # Corresponds to the JSON property `sourceSnapshotId` # @return [String] attr_accessor :source_snapshot_id # The type of the image used to create this disk. The default and only value is # RAW # Corresponds to the JSON property `sourceType` # @return [String] attr_accessor :source_type # [Output Only] The status of the image. An image can be used to create other # resources, such as instances, only after the image has been successfully # created and the status is set to READY. Possible values are FAILED, PENDING, # or READY. # Corresponds to the JSON property `status` # @return [String] attr_accessor :status # Cloud Storage bucket storage location of the image (regional or multi-regional) # . # Corresponds to the JSON property `storageLocations` # @return [Array] attr_accessor :storage_locations # A list of publicly visible user-licenses. Unlike regular licenses, user # provided licenses can be modified after the disk is created. This includes a # list of URLs to the license resource. For example, to provide a debian license: # https://www.googleapis.com/compute/v1/projects/debian-cloud/global/licenses/ # debian-9-stretch # Corresponds to the JSON property `userLicenses` # @return [Array] attr_accessor :user_licenses def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @architecture = args[:architecture] if args.key?(:architecture) @archive_size_bytes = args[:archive_size_bytes] if args.key?(:archive_size_bytes) @creation_timestamp = args[:creation_timestamp] if args.key?(:creation_timestamp) @deprecated = args[:deprecated] if args.key?(:deprecated) @description = args[:description] if args.key?(:description) @disk_size_gb = args[:disk_size_gb] if args.key?(:disk_size_gb) @family = args[:family] if args.key?(:family) @guest_os_features = args[:guest_os_features] if args.key?(:guest_os_features) @id = args[:id] if args.key?(:id) @image_encryption_key = args[:image_encryption_key] if args.key?(:image_encryption_key) @kind = args[:kind] if args.key?(:kind) @label_fingerprint = args[:label_fingerprint] if args.key?(:label_fingerprint) @labels = args[:labels] if args.key?(:labels) @license_codes = args[:license_codes] if args.key?(:license_codes) @licenses = args[:licenses] if args.key?(:licenses) @locked = args[:locked] if args.key?(:locked) @name = args[:name] if args.key?(:name) @raw_disk = args[:raw_disk] if args.key?(:raw_disk) @rollout_override = args[:rollout_override] if args.key?(:rollout_override) @satisfies_pzs = args[:satisfies_pzs] if args.key?(:satisfies_pzs) @self_link = args[:self_link] if args.key?(:self_link) @self_link_with_id = args[:self_link_with_id] if args.key?(:self_link_with_id) @shielded_instance_initial_state = args[:shielded_instance_initial_state] if args.key?(:shielded_instance_initial_state) @source_disk = args[:source_disk] if args.key?(:source_disk) @source_disk_encryption_key = args[:source_disk_encryption_key] if args.key?(:source_disk_encryption_key) @source_disk_id = args[:source_disk_id] if args.key?(:source_disk_id) @source_image = args[:source_image] if args.key?(:source_image) @source_image_encryption_key = args[:source_image_encryption_key] if args.key?(:source_image_encryption_key) @source_image_id = args[:source_image_id] if args.key?(:source_image_id) @source_snapshot = args[:source_snapshot] if args.key?(:source_snapshot) @source_snapshot_encryption_key = args[:source_snapshot_encryption_key] if args.key?(:source_snapshot_encryption_key) @source_snapshot_id = args[:source_snapshot_id] if args.key?(:source_snapshot_id) @source_type = args[:source_type] if args.key?(:source_type) @status = args[:status] if args.key?(:status) @storage_locations = args[:storage_locations] if args.key?(:storage_locations) @user_licenses = args[:user_licenses] if args.key?(:user_licenses) end # The parameters of the raw disk image. class RawDisk include Google::Apis::Core::Hashable # The format used to encode and transmit the block device, which should be TAR. # This is just a container and transmission format and not a runtime format. # Provided by the client when the disk image is created. # Corresponds to the JSON property `containerType` # @return [String] attr_accessor :container_type # [Deprecated] This field is deprecated. An optional SHA1 checksum of the disk # image before unpackaging provided by the client when the disk image is created. # Corresponds to the JSON property `sha1Checksum` # @return [String] attr_accessor :sha1_checksum # The full Google Cloud Storage URL where the raw disk image archive is stored. # The following are valid formats for the URL: - https://storage.googleapis.com/ # bucket_name/image_archive_name - https://storage.googleapis.com/bucket_name/ # folder_name/ image_archive_name In order to create an image, you must provide # the full or partial URL of one of the following: - The rawDisk.source URL - # The sourceDisk URL - The sourceImage URL - The sourceSnapshot URL # 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) @container_type = args[:container_type] if args.key?(:container_type) @sha1_checksum = args[:sha1_checksum] if args.key?(:sha1_checksum) @source = args[:source] if args.key?(:source) end end end # class ImageFamilyView include Google::Apis::Core::Hashable # Represents an Image resource. You can use images to create boot disks for your # VM instances. For more information, read Images. # Corresponds to the JSON property `image` # @return [Google::Apis::ComputeAlpha::Image] attr_accessor :image def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @image = args[:image] if args.key?(:image) end end # Contains a list of images. class ImageList include Google::Apis::Core::Hashable # [Output Only] Unique identifier for the resource; defined by the server. # Corresponds to the JSON property `id` # @return [String] attr_accessor :id # A list of Image resources. # Corresponds to the JSON property `items` # @return [Array] attr_accessor :items # Type of resource. # Corresponds to the JSON property `kind` # @return [String] attr_accessor :kind # [Output Only] This token allows you to get the next page of results for list # requests. If the number of results is larger than maxResults, use the # nextPageToken as a value for the query parameter pageToken in the next list # request. Subsequent list requests will have their own nextPageToken to # continue paging through the results. # Corresponds to the JSON property `nextPageToken` # @return [String] attr_accessor :next_page_token # [Output Only] Server-defined URL for this resource. # Corresponds to the JSON property `selfLink` # @return [String] attr_accessor :self_link # [Output Only] Informational warning message. # Corresponds to the JSON property `warning` # @return [Google::Apis::ComputeAlpha::ImageList::Warning] attr_accessor :warning def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @id = args[:id] if args.key?(:id) @items = args[:items] if args.key?(:items) @kind = args[:kind] if args.key?(:kind) @next_page_token = args[:next_page_token] if args.key?(:next_page_token) @self_link = args[:self_link] if args.key?(:self_link) @warning = args[:warning] if args.key?(:warning) end # [Output Only] Informational warning message. class Warning include Google::Apis::Core::Hashable # [Output Only] A warning code, if applicable. For example, Compute Engine # returns NO_RESULTS_ON_PAGE if there are no results in the response. # Corresponds to the JSON property `code` # @return [String] attr_accessor :code # [Output Only] Metadata about this warning in key: value format. For example: " # data": [ ` "key": "scope", "value": "zones/us-east1-d" ` # Corresponds to the JSON property `data` # @return [Array] attr_accessor :data # [Output Only] A human-readable description of the warning code. # Corresponds to the JSON property `message` # @return [String] attr_accessor :message def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @code = args[:code] if args.key?(:code) @data = args[:data] if args.key?(:data) @message = args[:message] if args.key?(:message) end # class Datum include Google::Apis::Core::Hashable # [Output Only] A key that provides more detail on the warning being returned. # For example, for warnings where there are no results in a list request for a # particular zone, this key might be scope and the key value might be the zone # name. Other examples might be a key indicating a deprecated resource and a # suggested replacement, or a warning about invalid network settings (for # example, if an instance attempts to perform IP forwarding but is not enabled # for IP forwarding). # Corresponds to the JSON property `key` # @return [String] attr_accessor :key # [Output Only] A warning data value corresponding to the key. # 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 end end # Initial State for shielded instance, these are public keys which are safe to # store in public class InitialStateConfig include Google::Apis::Core::Hashable # The Key Database (db). # Corresponds to the JSON property `dbs` # @return [Array] attr_accessor :dbs # The forbidden key database (dbx). # Corresponds to the JSON property `dbxs` # @return [Array] attr_accessor :dbxs # The Key Exchange Key (KEK). # Corresponds to the JSON property `keks` # @return [Array] attr_accessor :keks # The Platform Key (PK). # Corresponds to the JSON property `pk` # @return [Google::Apis::ComputeAlpha::FileContentBuffer] attr_accessor :pk def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @dbs = args[:dbs] if args.key?(:dbs) @dbxs = args[:dbxs] if args.key?(:dbxs) @keks = args[:keks] if args.key?(:keks) @pk = args[:pk] if args.key?(:pk) end end # Represents an Instance resource. An instance is a virtual machine that is # hosted on Google Cloud Platform. For more information, read Virtual Machine # Instances. class Instance include Google::Apis::Core::Hashable # Specifies options for controlling advanced machine features. Options that # would traditionally be configured in a BIOS belong here. Features that require # operating system support may have corresponding entries in the GuestOsFeatures # of an Image (e.g., whether or not the OS in the Image supports nested # virtualization being enabled or disabled). # Corresponds to the JSON property `advancedMachineFeatures` # @return [Google::Apis::ComputeAlpha::AdvancedMachineFeatures] attr_accessor :advanced_machine_features # Allows this instance to send and receive packets with non-matching destination # or source IPs. This is required if you plan to use this instance to forward # routes. For more information, see Enabling IP Forwarding . # Corresponds to the JSON property `canIpForward` # @return [Boolean] attr_accessor :can_ip_forward alias_method :can_ip_forward?, :can_ip_forward # A set of Confidential Instance options. # Corresponds to the JSON property `confidentialInstanceConfig` # @return [Google::Apis::ComputeAlpha::ConfidentialInstanceConfig] attr_accessor :confidential_instance_config # [Output Only] The CPU platform used by this instance. # Corresponds to the JSON property `cpuPlatform` # @return [String] attr_accessor :cpu_platform # [Output Only] Creation timestamp in RFC3339 text format. # Corresponds to the JSON property `creationTimestamp` # @return [String] attr_accessor :creation_timestamp # Whether the resource should be protected against deletion. # Corresponds to the JSON property `deletionProtection` # @return [Boolean] attr_accessor :deletion_protection alias_method :deletion_protection?, :deletion_protection # An optional description of this resource. Provide this property when you # create the resource. # Corresponds to the JSON property `description` # @return [String] attr_accessor :description # Array of disks associated with this instance. Persistent disks must be created # before you can assign them. # Corresponds to the JSON property `disks` # @return [Array] attr_accessor :disks # A set of Display Device options # Corresponds to the JSON property `displayDevice` # @return [Google::Apis::ComputeAlpha::DisplayDevice] attr_accessor :display_device # Specifies whether the disks restored from source snapshots or source machine # image should erase Windows specific VSS signature. # Corresponds to the JSON property `eraseWindowsVssSignature` # @return [Boolean] attr_accessor :erase_windows_vss_signature alias_method :erase_windows_vss_signature?, :erase_windows_vss_signature # Specifies a fingerprint for this resource, which is essentially a hash of the # instance's contents and used for optimistic locking. The fingerprint is # initially generated by Compute Engine and changes after every request to # modify or update the instance. You must always provide an up-to-date # fingerprint hash in order to update the instance. To see the latest # fingerprint, make get() request to the instance. # Corresponds to the JSON property `fingerprint` # NOTE: Values are automatically base64 encoded/decoded in the client library. # @return [String] attr_accessor :fingerprint # A list of the type and count of accelerator cards attached to the instance. # Corresponds to the JSON property `guestAccelerators` # @return [Array] attr_accessor :guest_accelerators # Specifies the hostname of the instance. The specified hostname must be RFC1035 # compliant. If hostname is not specified, the default hostname is [ # INSTANCE_NAME].c.[PROJECT_ID].internal when using the global DNS, and [ # INSTANCE_NAME].[ZONE].c.[PROJECT_ID].internal when using zonal DNS. # Corresponds to the JSON property `hostname` # @return [String] attr_accessor :hostname # [Output Only] The unique identifier for the resource. This identifier is # defined by the server. # Corresponds to the JSON property `id` # @return [Fixnum] attr_accessor :id # Encrypts or decrypts data for an instance with a customer-supplied encryption # key. If you are creating a new instance, this field encrypts the local SSD and # in-memory contents of the instance using a key that you provide. If you are # restarting an instance protected with a customer-supplied encryption key, you # must provide the correct key in order to successfully restart the instance. If # you do not provide an encryption key when creating the instance, then the # local SSD and in-memory contents will be encrypted using an automatically # generated key and you do not need to provide a key to start the instance later. # Instance templates do not store customer-supplied encryption keys, so you # cannot use your own keys to encrypt local SSDs and in-memory content in a # managed instance group. # Corresponds to the JSON property `instanceEncryptionKey` # @return [Google::Apis::ComputeAlpha::CustomerEncryptionKey] attr_accessor :instance_encryption_key # KeyRevocationActionType of the instance. Supported options are "STOP" and " # NONE". The default value is "NONE" if it is not specified. # Corresponds to the JSON property `keyRevocationActionType` # @return [String] attr_accessor :key_revocation_action_type # [Output Only] Type of the resource. Always compute#instance for instances. # Corresponds to the JSON property `kind` # @return [String] attr_accessor :kind # A fingerprint for this request, which is essentially a hash of the label's # contents and used for optimistic locking. The fingerprint is initially # generated by Compute Engine and changes after every request to modify or # update labels. You must always provide an up-to-date fingerprint hash in order # to update or change labels. To see the latest fingerprint, make get() request # to the instance. # Corresponds to the JSON property `labelFingerprint` # NOTE: Values are automatically base64 encoded/decoded in the client library. # @return [String] attr_accessor :label_fingerprint # Labels to apply to this instance. These can be later modified by the setLabels # method. # Corresponds to the JSON property `labels` # @return [Hash] attr_accessor :labels # [Output Only] Last start timestamp in RFC3339 text format. # Corresponds to the JSON property `lastStartTimestamp` # @return [String] attr_accessor :last_start_timestamp # [Output Only] Last stop timestamp in RFC3339 text format. # Corresponds to the JSON property `lastStopTimestamp` # @return [String] attr_accessor :last_stop_timestamp # [Output Only] Last suspended timestamp in RFC3339 text format. # Corresponds to the JSON property `lastSuspendedTimestamp` # @return [String] attr_accessor :last_suspended_timestamp # Full or partial URL of the machine type resource to use for this instance, in # the format: zones/zone/machineTypes/machine-type. This is provided by the # client when the instance is created. For example, the following is a valid # partial url to a predefined machine type: zones/us-central1-f/machineTypes/n1- # standard-1 To create a custom machine type, provide a URL to a machine type in # the following format, where CPUS is 1 or an even number up to 32 (2, 4, 6, ... # 24, etc), and MEMORY is the total memory for this instance. Memory must be a # multiple of 256 MB and must be supplied in MB (e.g. 5 GB of memory is 5120 MB): # zones/zone/machineTypes/custom-CPUS-MEMORY For example: zones/us-central1-f/ # machineTypes/custom-4-5120 For a full list of restrictions, read the # Specifications for custom machine types. # Corresponds to the JSON property `machineType` # @return [String] attr_accessor :machine_type # A metadata key/value entry. # Corresponds to the JSON property `metadata` # @return [Google::Apis::ComputeAlpha::Metadata] attr_accessor :metadata # Specifies a minimum CPU platform for the VM instance. Applicable values are # the friendly names of CPU platforms, such as minCpuPlatform: "Intel Haswell" # or minCpuPlatform: "Intel Sandy Bridge". # Corresponds to the JSON property `minCpuPlatform` # @return [String] attr_accessor :min_cpu_platform # The name of the resource, provided by the client when initially creating the # resource. The resource name must be 1-63 characters long, and comply with # RFC1035. Specifically, the name must be 1-63 characters long and match the # regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first # character must be a lowercase letter, and all following characters must be a # dash, lowercase letter, or digit, except the last character, which cannot be a # dash. # Corresponds to the JSON property `name` # @return [String] attr_accessor :name # An array of network configurations for this instance. These specify how # interfaces are configured to interact with other network services, such as # connecting to the internet. Multiple interfaces are supported per instance. # Corresponds to the JSON property `networkInterfaces` # @return [Array] attr_accessor :network_interfaces # # Corresponds to the JSON property `networkPerformanceConfig` # @return [Google::Apis::ComputeAlpha::NetworkPerformanceConfig] attr_accessor :network_performance_config # Additional instance params. # Corresponds to the JSON property `params` # @return [Google::Apis::ComputeAlpha::InstanceParams] attr_accessor :params # PostKeyRevocationActionType of the instance. # Corresponds to the JSON property `postKeyRevocationActionType` # @return [String] attr_accessor :post_key_revocation_action_type # Total amount of preserved state for SUSPENDED instances. Read-only in the api. # Corresponds to the JSON property `preservedStateSizeGb` # @return [Fixnum] attr_accessor :preserved_state_size_gb # The private IPv6 google access type for the VM. If not specified, use # INHERIT_FROM_SUBNETWORK as default. # Corresponds to the JSON property `privateIpv6GoogleAccess` # @return [String] attr_accessor :private_ipv6_google_access # Specifies the reservations that this instance can consume from. # Corresponds to the JSON property `reservationAffinity` # @return [Google::Apis::ComputeAlpha::ReservationAffinity] attr_accessor :reservation_affinity # Resource policies applied to this instance. # Corresponds to the JSON property `resourcePolicies` # @return [Array] attr_accessor :resource_policies # Contains output only fields. Use this sub-message for actual values set on # Instance attributes as compared to the value requested by the user (intent) in # their instance CRUD calls. # Corresponds to the JSON property `resourceStatus` # @return [Google::Apis::ComputeAlpha::ResourceStatus] attr_accessor :resource_status # [Output Only] Reserved for future use. # Corresponds to the JSON property `satisfiesPzs` # @return [Boolean] attr_accessor :satisfies_pzs alias_method :satisfies_pzs?, :satisfies_pzs # Sets the scheduling options for an Instance. NextID: 21 # Corresponds to the JSON property `scheduling` # @return [Google::Apis::ComputeAlpha::Scheduling] attr_accessor :scheduling # [Input Only] Secure tags to apply to this instance. These can be later # modified by the update method. Maximum number of secure tags allowed is 50. # Corresponds to the JSON property `secureTags` # @return [Array] attr_accessor :secure_tags # [Output Only] Server-defined URL for this resource. # Corresponds to the JSON property `selfLink` # @return [String] attr_accessor :self_link # [Output Only] Server-defined URL for this resource with the resource id. # Corresponds to the JSON property `selfLinkWithId` # @return [String] attr_accessor :self_link_with_id # A list of service accounts, with their specified scopes, authorized for this # instance. Only one service account per VM instance is supported. Service # accounts generate access tokens that can be accessed through the metadata # server and used to authenticate applications on the instance. See Service # Accounts for more information. # Corresponds to the JSON property `serviceAccounts` # @return [Array] attr_accessor :service_accounts # A set of Shielded Instance options. # Corresponds to the JSON property `shieldedInstanceConfig` # @return [Google::Apis::ComputeAlpha::ShieldedInstanceConfig] attr_accessor :shielded_instance_config # The policy describes the baseline against which Instance boot integrity is # measured. # Corresponds to the JSON property `shieldedInstanceIntegrityPolicy` # @return [Google::Apis::ComputeAlpha::ShieldedInstanceIntegrityPolicy] attr_accessor :shielded_instance_integrity_policy # A set of Shielded VM options. # Corresponds to the JSON property `shieldedVmConfig` # @return [Google::Apis::ComputeAlpha::ShieldedVmConfig] attr_accessor :shielded_vm_config # The policy describes the baseline against which VM instance boot integrity is # measured. # Corresponds to the JSON property `shieldedVmIntegrityPolicy` # @return [Google::Apis::ComputeAlpha::ShieldedVmIntegrityPolicy] attr_accessor :shielded_vm_integrity_policy # Source machine image # Corresponds to the JSON property `sourceMachineImage` # @return [String] attr_accessor :source_machine_image # Source machine image encryption key when creating an instance from a machine # image. # Corresponds to the JSON property `sourceMachineImageEncryptionKey` # @return [Google::Apis::ComputeAlpha::CustomerEncryptionKey] attr_accessor :source_machine_image_encryption_key # [Output Only] Whether a VM has been restricted for start because Compute # Engine has detected suspicious activity. # Corresponds to the JSON property `startRestricted` # @return [Boolean] attr_accessor :start_restricted alias_method :start_restricted?, :start_restricted # [Output Only] The status of the instance. One of the following values: # PROVISIONING, STAGING, RUNNING, STOPPING, SUSPENDING, SUSPENDED, REPAIRING, # and TERMINATED. For more information about the status of the instance, see # Instance life cycle. # Corresponds to the JSON property `status` # @return [String] attr_accessor :status # [Output Only] An optional, human-readable explanation of the status. # Corresponds to the JSON property `statusMessage` # @return [String] attr_accessor :status_message # A set of instance tags. # Corresponds to the JSON property `tags` # @return [Google::Apis::ComputeAlpha::Tags] attr_accessor :tags # Upcoming Maintenance notification information. TODO(b/196881882) Deprecate # this proto once it's fully migrated to be under proto ResourceStatus. # UpcomingMaintenance. # Corresponds to the JSON property `upcomingMaintenance` # @return [Google::Apis::ComputeAlpha::UpcomingMaintenance] attr_accessor :upcoming_maintenance # [Output Only] URL of the zone where the instance resides. You must specify # this field as part of the HTTP request URL. It is not settable as a field in # the request body. # 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) @advanced_machine_features = args[:advanced_machine_features] if args.key?(:advanced_machine_features) @can_ip_forward = args[:can_ip_forward] if args.key?(:can_ip_forward) @confidential_instance_config = args[:confidential_instance_config] if args.key?(:confidential_instance_config) @cpu_platform = args[:cpu_platform] if args.key?(:cpu_platform) @creation_timestamp = args[:creation_timestamp] if args.key?(:creation_timestamp) @deletion_protection = args[:deletion_protection] if args.key?(:deletion_protection) @description = args[:description] if args.key?(:description) @disks = args[:disks] if args.key?(:disks) @display_device = args[:display_device] if args.key?(:display_device) @erase_windows_vss_signature = args[:erase_windows_vss_signature] if args.key?(:erase_windows_vss_signature) @fingerprint = args[:fingerprint] if args.key?(:fingerprint) @guest_accelerators = args[:guest_accelerators] if args.key?(:guest_accelerators) @hostname = args[:hostname] if args.key?(:hostname) @id = args[:id] if args.key?(:id) @instance_encryption_key = args[:instance_encryption_key] if args.key?(:instance_encryption_key) @key_revocation_action_type = args[:key_revocation_action_type] if args.key?(:key_revocation_action_type) @kind = args[:kind] if args.key?(:kind) @label_fingerprint = args[:label_fingerprint] if args.key?(:label_fingerprint) @labels = args[:labels] if args.key?(:labels) @last_start_timestamp = args[:last_start_timestamp] if args.key?(:last_start_timestamp) @last_stop_timestamp = args[:last_stop_timestamp] if args.key?(:last_stop_timestamp) @last_suspended_timestamp = args[:last_suspended_timestamp] if args.key?(:last_suspended_timestamp) @machine_type = args[:machine_type] if args.key?(:machine_type) @metadata = args[:metadata] if args.key?(:metadata) @min_cpu_platform = args[:min_cpu_platform] if args.key?(:min_cpu_platform) @name = args[:name] if args.key?(:name) @network_interfaces = args[:network_interfaces] if args.key?(:network_interfaces) @network_performance_config = args[:network_performance_config] if args.key?(:network_performance_config) @params = args[:params] if args.key?(:params) @post_key_revocation_action_type = args[:post_key_revocation_action_type] if args.key?(:post_key_revocation_action_type) @preserved_state_size_gb = args[:preserved_state_size_gb] if args.key?(:preserved_state_size_gb) @private_ipv6_google_access = args[:private_ipv6_google_access] if args.key?(:private_ipv6_google_access) @reservation_affinity = args[:reservation_affinity] if args.key?(:reservation_affinity) @resource_policies = args[:resource_policies] if args.key?(:resource_policies) @resource_status = args[:resource_status] if args.key?(:resource_status) @satisfies_pzs = args[:satisfies_pzs] if args.key?(:satisfies_pzs) @scheduling = args[:scheduling] if args.key?(:scheduling) @secure_tags = args[:secure_tags] if args.key?(:secure_tags) @self_link = args[:self_link] if args.key?(:self_link) @self_link_with_id = args[:self_link_with_id] if args.key?(:self_link_with_id) @service_accounts = args[:service_accounts] if args.key?(:service_accounts) @shielded_instance_config = args[:shielded_instance_config] if args.key?(:shielded_instance_config) @shielded_instance_integrity_policy = args[:shielded_instance_integrity_policy] if args.key?(:shielded_instance_integrity_policy) @shielded_vm_config = args[:shielded_vm_config] if args.key?(:shielded_vm_config) @shielded_vm_integrity_policy = args[:shielded_vm_integrity_policy] if args.key?(:shielded_vm_integrity_policy) @source_machine_image = args[:source_machine_image] if args.key?(:source_machine_image) @source_machine_image_encryption_key = args[:source_machine_image_encryption_key] if args.key?(:source_machine_image_encryption_key) @start_restricted = args[:start_restricted] if args.key?(:start_restricted) @status = args[:status] if args.key?(:status) @status_message = args[:status_message] if args.key?(:status_message) @tags = args[:tags] if args.key?(:tags) @upcoming_maintenance = args[:upcoming_maintenance] if args.key?(:upcoming_maintenance) @zone = args[:zone] if args.key?(:zone) end end # class InstanceAggregatedList include Google::Apis::Core::Hashable # [Output Only] Unique identifier for the resource; defined by the server. # Corresponds to the JSON property `id` # @return [String] attr_accessor :id # An object that contains a list of instances scoped by zone. # Corresponds to the JSON property `items` # @return [Hash] attr_accessor :items # [Output Only] Type of resource. Always compute#instanceAggregatedList for # aggregated lists of Instance resources. # Corresponds to the JSON property `kind` # @return [String] attr_accessor :kind # [Output Only] This token allows you to get the next page of results for list # requests. If the number of results is larger than maxResults, use the # nextPageToken as a value for the query parameter pageToken in the next list # request. Subsequent list requests will have their own nextPageToken to # continue paging through the results. # Corresponds to the JSON property `nextPageToken` # @return [String] attr_accessor :next_page_token # [Output Only] Server-defined URL for this resource. # Corresponds to the JSON property `selfLink` # @return [String] attr_accessor :self_link # [Output Only] Unreachable resources. # Corresponds to the JSON property `unreachables` # @return [Array] attr_accessor :unreachables # [Output Only] Informational warning message. # Corresponds to the JSON property `warning` # @return [Google::Apis::ComputeAlpha::InstanceAggregatedList::Warning] attr_accessor :warning def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @id = args[:id] if args.key?(:id) @items = args[:items] if args.key?(:items) @kind = args[:kind] if args.key?(:kind) @next_page_token = args[:next_page_token] if args.key?(:next_page_token) @self_link = args[:self_link] if args.key?(:self_link) @unreachables = args[:unreachables] if args.key?(:unreachables) @warning = args[:warning] if args.key?(:warning) end # [Output Only] Informational warning message. class Warning include Google::Apis::Core::Hashable # [Output Only] A warning code, if applicable. For example, Compute Engine # returns NO_RESULTS_ON_PAGE if there are no results in the response. # Corresponds to the JSON property `code` # @return [String] attr_accessor :code # [Output Only] Metadata about this warning in key: value format. For example: " # data": [ ` "key": "scope", "value": "zones/us-east1-d" ` # Corresponds to the JSON property `data` # @return [Array] attr_accessor :data # [Output Only] A human-readable description of the warning code. # Corresponds to the JSON property `message` # @return [String] attr_accessor :message def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @code = args[:code] if args.key?(:code) @data = args[:data] if args.key?(:data) @message = args[:message] if args.key?(:message) end # class Datum include Google::Apis::Core::Hashable # [Output Only] A key that provides more detail on the warning being returned. # For example, for warnings where there are no results in a list request for a # particular zone, this key might be scope and the key value might be the zone # name. Other examples might be a key indicating a deprecated resource and a # suggested replacement, or a warning about invalid network settings (for # example, if an instance attempts to perform IP forwarding but is not enabled # for IP forwarding). # Corresponds to the JSON property `key` # @return [String] attr_accessor :key # [Output Only] A warning data value corresponding to the key. # 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 end end # class InstanceConsumptionData include Google::Apis::Core::Hashable # Resources consumed by the instance. # Corresponds to the JSON property `consumptionInfo` # @return [Google::Apis::ComputeAlpha::InstanceConsumptionInfo] attr_accessor :consumption_info # Server-defined URL for the instance. # Corresponds to the JSON property `instance` # @return [String] attr_accessor :instance def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @consumption_info = args[:consumption_info] if args.key?(:consumption_info) @instance = args[:instance] if args.key?(:instance) end end # class InstanceConsumptionInfo include Google::Apis::Core::Hashable # The number of virtual CPUs that are available to the instance. # Corresponds to the JSON property `guestCpus` # @return [Fixnum] attr_accessor :guest_cpus # The amount of local SSD storage available to the instance, defined in GiB. # Corresponds to the JSON property `localSsdGb` # @return [Fixnum] attr_accessor :local_ssd_gb # The amount of physical memory available to the instance, defined in MiB. # Corresponds to the JSON property `memoryMb` # @return [Fixnum] attr_accessor :memory_mb # The minimal guaranteed number of virtual CPUs that are reserved. # Corresponds to the JSON property `minNodeCpus` # @return [Fixnum] attr_accessor :min_node_cpus def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @guest_cpus = args[:guest_cpus] if args.key?(:guest_cpus) @local_ssd_gb = args[:local_ssd_gb] if args.key?(:local_ssd_gb) @memory_mb = args[:memory_mb] if args.key?(:memory_mb) @min_node_cpus = args[:min_node_cpus] if args.key?(:min_node_cpus) end end # Represents an Instance Group resource. Instance Groups can be used to # configure a target for load balancing. Instance groups can either be managed # or unmanaged. To create managed instance groups, use the instanceGroupManager # or regionInstanceGroupManager resource instead. Use zonal unmanaged instance # groups if you need to apply load balancing to groups of heterogeneous # instances or if you need to manage the instances yourself. You cannot create # regional unmanaged instance groups. For more information, read Instance groups. class InstanceGroup include Google::Apis::Core::Hashable # [Output Only] The creation timestamp for this instance group in RFC3339 text # format. # Corresponds to the JSON property `creationTimestamp` # @return [String] attr_accessor :creation_timestamp # An optional description of this resource. Provide this property when you # create the resource. # Corresponds to the JSON property `description` # @return [String] attr_accessor :description # [Output Only] The fingerprint of the named ports. The system uses this # fingerprint to detect conflicts when multiple users change the named ports # concurrently. # Corresponds to the JSON property `fingerprint` # NOTE: Values are automatically base64 encoded/decoded in the client library. # @return [String] attr_accessor :fingerprint # [Output Only] A unique identifier for this instance group, generated by the # server. # Corresponds to the JSON property `id` # @return [Fixnum] attr_accessor :id # [Output Only] The resource type, which is always compute#instanceGroup for # instance groups. # Corresponds to the JSON property `kind` # @return [String] attr_accessor :kind # The name of the instance group. The name must be 1-63 characters long, and # comply with RFC1035. # Corresponds to the JSON property `name` # @return [String] attr_accessor :name # Assigns a name to a port number. For example: `name: "http", port: 80` This # allows the system to reference ports by the assigned name instead of a port # number. Named ports can also contain multiple ports. For example: [`name: " # app1", port: 8080`, `name: "app1", port: 8081`, `name: "app2", port: 8082`] # Named ports apply to all instances in this instance group. # Corresponds to the JSON property `namedPorts` # @return [Array] attr_accessor :named_ports # [Output Only] The URL of the network to which all instances in the instance # group belong. If your instance has multiple network interfaces, then the # network and subnetwork fields only refer to the network and subnet used by # your primary interface (nic0). # Corresponds to the JSON property `network` # @return [String] attr_accessor :network # [Output Only] The URL of the region where the instance group is located (for # regional resources). # Corresponds to the JSON property `region` # @return [String] attr_accessor :region # [Output Only] The URL for this instance group. The server generates this URL. # Corresponds to the JSON property `selfLink` # @return [String] attr_accessor :self_link # [Output Only] Server-defined URL for this resource with the resource id. # Corresponds to the JSON property `selfLinkWithId` # @return [String] attr_accessor :self_link_with_id # [Output Only] The total number of instances in the instance group. # Corresponds to the JSON property `size` # @return [Fixnum] attr_accessor :size # [Output Only] The URL of the subnetwork to which all instances in the instance # group belong. If your instance has multiple network interfaces, then the # network and subnetwork fields only refer to the network and subnet used by # your primary interface (nic0). # Corresponds to the JSON property `subnetwork` # @return [String] attr_accessor :subnetwork # [Output Only] The URL of the zone where the instance group is located (for # zonal resources). # 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) @creation_timestamp = args[:creation_timestamp] if args.key?(:creation_timestamp) @description = args[:description] if args.key?(:description) @fingerprint = args[:fingerprint] if args.key?(:fingerprint) @id = args[:id] if args.key?(:id) @kind = args[:kind] if args.key?(:kind) @name = args[:name] if args.key?(:name) @named_ports = args[:named_ports] if args.key?(:named_ports) @network = args[:network] if args.key?(:network) @region = args[:region] if args.key?(:region) @self_link = args[:self_link] if args.key?(:self_link) @self_link_with_id = args[:self_link_with_id] if args.key?(:self_link_with_id) @size = args[:size] if args.key?(:size) @subnetwork = args[:subnetwork] if args.key?(:subnetwork) @zone = args[:zone] if args.key?(:zone) end end # class InstanceGroupAggregatedList include Google::Apis::Core::Hashable # [Output Only] Unique identifier for the resource; defined by the server. # Corresponds to the JSON property `id` # @return [String] attr_accessor :id # A list of InstanceGroupsScopedList resources. # Corresponds to the JSON property `items` # @return [Hash] attr_accessor :items # [Output Only] The resource type, which is always compute# # instanceGroupAggregatedList for aggregated lists of instance groups. # Corresponds to the JSON property `kind` # @return [String] attr_accessor :kind # [Output Only] This token allows you to get the next page of results for list # requests. If the number of results is larger than maxResults, use the # nextPageToken as a value for the query parameter pageToken in the next list # request. Subsequent list requests will have their own nextPageToken to # continue paging through the results. # Corresponds to the JSON property `nextPageToken` # @return [String] attr_accessor :next_page_token # [Output Only] Server-defined URL for this resource. # Corresponds to the JSON property `selfLink` # @return [String] attr_accessor :self_link # [Output Only] Unreachable resources. # Corresponds to the JSON property `unreachables` # @return [Array] attr_accessor :unreachables # [Output Only] Informational warning message. # Corresponds to the JSON property `warning` # @return [Google::Apis::ComputeAlpha::InstanceGroupAggregatedList::Warning] attr_accessor :warning def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @id = args[:id] if args.key?(:id) @items = args[:items] if args.key?(:items) @kind = args[:kind] if args.key?(:kind) @next_page_token = args[:next_page_token] if args.key?(:next_page_token) @self_link = args[:self_link] if args.key?(:self_link) @unreachables = args[:unreachables] if args.key?(:unreachables) @warning = args[:warning] if args.key?(:warning) end # [Output Only] Informational warning message. class Warning include Google::Apis::Core::Hashable # [Output Only] A warning code, if applicable. For example, Compute Engine # returns NO_RESULTS_ON_PAGE if there are no results in the response. # Corresponds to the JSON property `code` # @return [String] attr_accessor :code # [Output Only] Metadata about this warning in key: value format. For example: " # data": [ ` "key": "scope", "value": "zones/us-east1-d" ` # Corresponds to the JSON property `data` # @return [Array] attr_accessor :data # [Output Only] A human-readable description of the warning code. # Corresponds to the JSON property `message` # @return [String] attr_accessor :message def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @code = args[:code] if args.key?(:code) @data = args[:data] if args.key?(:data) @message = args[:message] if args.key?(:message) end # class Datum include Google::Apis::Core::Hashable # [Output Only] A key that provides more detail on the warning being returned. # For example, for warnings where there are no results in a list request for a # particular zone, this key might be scope and the key value might be the zone # name. Other examples might be a key indicating a deprecated resource and a # suggested replacement, or a warning about invalid network settings (for # example, if an instance attempts to perform IP forwarding but is not enabled # for IP forwarding). # Corresponds to the JSON property `key` # @return [String] attr_accessor :key # [Output Only] A warning data value corresponding to the key. # 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 end end # A list of InstanceGroup resources. class InstanceGroupList include Google::Apis::Core::Hashable # [Output Only] Unique identifier for the resource; defined by the server. # Corresponds to the JSON property `id` # @return [String] attr_accessor :id # A list of InstanceGroup resources. # Corresponds to the JSON property `items` # @return [Array] attr_accessor :items # [Output Only] The resource type, which is always compute#instanceGroupList for # instance group lists. # Corresponds to the JSON property `kind` # @return [String] attr_accessor :kind # [Output Only] This token allows you to get the next page of results for list # requests. If the number of results is larger than maxResults, use the # nextPageToken as a value for the query parameter pageToken in the next list # request. Subsequent list requests will have their own nextPageToken to # continue paging through the results. # Corresponds to the JSON property `nextPageToken` # @return [String] attr_accessor :next_page_token # [Output Only] Server-defined URL for this resource. # Corresponds to the JSON property `selfLink` # @return [String] attr_accessor :self_link # [Output Only] Informational warning message. # Corresponds to the JSON property `warning` # @return [Google::Apis::ComputeAlpha::InstanceGroupList::Warning] attr_accessor :warning def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @id = args[:id] if args.key?(:id) @items = args[:items] if args.key?(:items) @kind = args[:kind] if args.key?(:kind) @next_page_token = args[:next_page_token] if args.key?(:next_page_token) @self_link = args[:self_link] if args.key?(:self_link) @warning = args[:warning] if args.key?(:warning) end # [Output Only] Informational warning message. class Warning include Google::Apis::Core::Hashable # [Output Only] A warning code, if applicable. For example, Compute Engine # returns NO_RESULTS_ON_PAGE if there are no results in the response. # Corresponds to the JSON property `code` # @return [String] attr_accessor :code # [Output Only] Metadata about this warning in key: value format. For example: " # data": [ ` "key": "scope", "value": "zones/us-east1-d" ` # Corresponds to the JSON property `data` # @return [Array] attr_accessor :data # [Output Only] A human-readable description of the warning code. # Corresponds to the JSON property `message` # @return [String] attr_accessor :message def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @code = args[:code] if args.key?(:code) @data = args[:data] if args.key?(:data) @message = args[:message] if args.key?(:message) end # class Datum include Google::Apis::Core::Hashable # [Output Only] A key that provides more detail on the warning being returned. # For example, for warnings where there are no results in a list request for a # particular zone, this key might be scope and the key value might be the zone # name. Other examples might be a key indicating a deprecated resource and a # suggested replacement, or a warning about invalid network settings (for # example, if an instance attempts to perform IP forwarding but is not enabled # for IP forwarding). # Corresponds to the JSON property `key` # @return [String] attr_accessor :key # [Output Only] A warning data value corresponding to the key. # 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 end end # Represents a Managed Instance Group resource. An instance group is a # collection of VM instances that you can manage as a single entity. For more # information, read Instance groups. For zonal Managed Instance Group, use the # instanceGroupManagers resource. For regional Managed Instance Group, use the # regionInstanceGroupManagers resource. class InstanceGroupManager include Google::Apis::Core::Hashable # Specifies the instances configs overrides that should be applied for all # instances in the MIG. # Corresponds to the JSON property `allInstancesConfig` # @return [Google::Apis::ComputeAlpha::InstanceGroupManagerAllInstancesConfig] attr_accessor :all_instances_config # The autohealing policy for this managed instance group. You can specify only # one value. # Corresponds to the JSON property `autoHealingPolicies` # @return [Array] attr_accessor :auto_healing_policies # The base instance name to use for instances in this group. The value must be 1- # 58 characters long. Instances are named by appending a hyphen and a random # four-character string to the base instance name. The base instance name must # comply with RFC1035. # Corresponds to the JSON property `baseInstanceName` # @return [String] attr_accessor :base_instance_name # [Output Only] The creation timestamp for this managed instance group in # RFC3339 text format. # Corresponds to the JSON property `creationTimestamp` # @return [String] attr_accessor :creation_timestamp # [Output Only] The list of instance actions and the number of instances in this # managed instance group that are scheduled for each of those actions. # Corresponds to the JSON property `currentActions` # @return [Google::Apis::ComputeAlpha::InstanceGroupManagerActionsSummary] attr_accessor :current_actions # An optional description of this resource. # Corresponds to the JSON property `description` # @return [String] attr_accessor :description # Policy specifying the intended distribution of managed instances across zones # in a regional managed instance group. # Corresponds to the JSON property `distributionPolicy` # @return [Google::Apis::ComputeAlpha::DistributionPolicy] attr_accessor :distribution_policy # The action to perform in case of zone failure. Only one value is supported, # NO_FAILOVER. The default is NO_FAILOVER. # Corresponds to the JSON property `failoverAction` # @return [String] attr_accessor :failover_action # Fingerprint of this resource. This field may be used in optimistic locking. It # will be ignored when inserting an InstanceGroupManager. An up-to-date # fingerprint must be provided in order to update the InstanceGroupManager, # otherwise the request will fail with error 412 conditionNotMet. To see the # latest fingerprint, make a get() request to retrieve an InstanceGroupManager. # Corresponds to the JSON property `fingerprint` # NOTE: Values are automatically base64 encoded/decoded in the client library. # @return [String] attr_accessor :fingerprint # [Output Only] A unique identifier for this resource type. The server generates # this identifier. # Corresponds to the JSON property `id` # @return [Fixnum] attr_accessor :id # [Output Only] The URL of the Instance Group resource. # Corresponds to the JSON property `instanceGroup` # @return [String] attr_accessor :instance_group # Instance lifecycle policy for this Instance Group Manager. # Corresponds to the JSON property `instanceLifecyclePolicy` # @return [Google::Apis::ComputeAlpha::InstanceGroupManagerInstanceLifecyclePolicy] attr_accessor :instance_lifecycle_policy # The URL of the instance template that is specified for this managed instance # group. The group uses this template to create all new instances in the managed # instance group. The templates for existing instances in the group do not # change unless you run recreateInstances, run applyUpdatesToInstances, or set # the group's updatePolicy.type to PROACTIVE. # Corresponds to the JSON property `instanceTemplate` # @return [String] attr_accessor :instance_template # [Output Only] The resource type, which is always compute#instanceGroupManager # for managed instance groups. # Corresponds to the JSON property `kind` # @return [String] attr_accessor :kind # Pagination behavior of listManagedInstances API method for this Managed # Instance Group. # Corresponds to the JSON property `listManagedInstancesResults` # @return [String] attr_accessor :list_managed_instances_results # The name of the managed instance group. The name must be 1-63 characters long, # and comply with RFC1035. # Corresponds to the JSON property `name` # @return [String] attr_accessor :name # Named ports configured for the Instance Groups complementary to this Instance # Group Manager. # Corresponds to the JSON property `namedPorts` # @return [Array] attr_accessor :named_ports # [Output Only] The URL of the region where the managed instance group resides ( # for regional resources). # Corresponds to the JSON property `region` # @return [String] attr_accessor :region # [Output Only] The URL for this managed instance group. The server defines this # URL. # Corresponds to the JSON property `selfLink` # @return [String] attr_accessor :self_link # [Output Only] Server-defined URL for this resource with the resource id. # Corresponds to the JSON property `selfLinkWithId` # @return [String] attr_accessor :self_link_with_id # The service account to be used as credentials for all operations performed by # the managed instance group on instances. The service accounts needs all # permissions required to create and delete instances. By default, the service # account `projectNumber`@cloudservices.gserviceaccount.com is used. # Corresponds to the JSON property `serviceAccount` # @return [String] attr_accessor :service_account # Standby policy for stopped and suspended instances. # Corresponds to the JSON property `standbyPolicy` # @return [Google::Apis::ComputeAlpha::InstanceGroupManagerStandbyPolicy] attr_accessor :standby_policy # Stateful configuration for this Instanced Group Manager # Corresponds to the JSON property `statefulPolicy` # @return [Google::Apis::ComputeAlpha::StatefulPolicy] attr_accessor :stateful_policy # [Output Only] The status of this managed instance group. # Corresponds to the JSON property `status` # @return [Google::Apis::ComputeAlpha::InstanceGroupManagerStatus] attr_accessor :status # The URLs for all TargetPool resources to which instances in the instanceGroup # field are added. The target pools automatically apply to all of the instances # in the managed instance group. # Corresponds to the JSON property `targetPools` # @return [Array] attr_accessor :target_pools # The target number of running instances for this managed instance group. You # can reduce this number by using the instanceGroupManager deleteInstances or # abandonInstances methods. Resizing the group also changes this number. # Corresponds to the JSON property `targetSize` # @return [Fixnum] attr_accessor :target_size # The target number of stopped instances for this managed instance group. This # number changes when you: - Stop instance using the stopInstances method or # start instances using the startInstances method. - Manually change the # targetStoppedSize using the update method. # Corresponds to the JSON property `targetStoppedSize` # @return [Fixnum] attr_accessor :target_stopped_size # The target number of suspended instances for this managed instance group. This # number changes when you: - Suspend instance using the suspendInstances method # or resume instances using the resumeInstances method. - Manually change the # targetSuspendedSize using the update method. # Corresponds to the JSON property `targetSuspendedSize` # @return [Fixnum] attr_accessor :target_suspended_size # The update policy for this managed instance group. # Corresponds to the JSON property `updatePolicy` # @return [Google::Apis::ComputeAlpha::InstanceGroupManagerUpdatePolicy] attr_accessor :update_policy # Specifies the instance templates used by this managed instance group to create # instances. Each version is defined by an instanceTemplate and a name. Every # version can appear at most once per instance group. This field overrides the # top-level instanceTemplate field. Read more about the relationships between # these fields. Exactly one version must leave the targetSize field unset. That # version will be applied to all remaining instances. For more information, read # about canary updates. # Corresponds to the JSON property `versions` # @return [Array] attr_accessor :versions # [Output Only] The URL of a zone where the managed instance group is located ( # for zonal resources). # 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) @all_instances_config = args[:all_instances_config] if args.key?(:all_instances_config) @auto_healing_policies = args[:auto_healing_policies] if args.key?(:auto_healing_policies) @base_instance_name = args[:base_instance_name] if args.key?(:base_instance_name) @creation_timestamp = args[:creation_timestamp] if args.key?(:creation_timestamp) @current_actions = args[:current_actions] if args.key?(:current_actions) @description = args[:description] if args.key?(:description) @distribution_policy = args[:distribution_policy] if args.key?(:distribution_policy) @failover_action = args[:failover_action] if args.key?(:failover_action) @fingerprint = args[:fingerprint] if args.key?(:fingerprint) @id = args[:id] if args.key?(:id) @instance_group = args[:instance_group] if args.key?(:instance_group) @instance_lifecycle_policy = args[:instance_lifecycle_policy] if args.key?(:instance_lifecycle_policy) @instance_template = args[:instance_template] if args.key?(:instance_template) @kind = args[:kind] if args.key?(:kind) @list_managed_instances_results = args[:list_managed_instances_results] if args.key?(:list_managed_instances_results) @name = args[:name] if args.key?(:name) @named_ports = args[:named_ports] if args.key?(:named_ports) @region = args[:region] if args.key?(:region) @self_link = args[:self_link] if args.key?(:self_link) @self_link_with_id = args[:self_link_with_id] if args.key?(:self_link_with_id) @service_account = args[:service_account] if args.key?(:service_account) @standby_policy = args[:standby_policy] if args.key?(:standby_policy) @stateful_policy = args[:stateful_policy] if args.key?(:stateful_policy) @status = args[:status] if args.key?(:status) @target_pools = args[:target_pools] if args.key?(:target_pools) @target_size = args[:target_size] if args.key?(:target_size) @target_stopped_size = args[:target_stopped_size] if args.key?(:target_stopped_size) @target_suspended_size = args[:target_suspended_size] if args.key?(:target_suspended_size) @update_policy = args[:update_policy] if args.key?(:update_policy) @versions = args[:versions] if args.key?(:versions) @zone = args[:zone] if args.key?(:zone) end end # class InstanceGroupManagerActionsSummary include Google::Apis::Core::Hashable # [Output Only] The total number of instances in the managed instance group that # are scheduled to be abandoned. Abandoning an instance removes it from the # managed instance group without deleting it. # Corresponds to the JSON property `abandoning` # @return [Fixnum] attr_accessor :abandoning # [Output Only] The number of instances in the managed instance group that are # scheduled to be created or are currently being created. If the group fails to # create any of these instances, it tries again until it creates the instance # successfully. If you have disabled creation retries, this field will not be # populated; instead, the creatingWithoutRetries field will be populated. # Corresponds to the JSON property `creating` # @return [Fixnum] attr_accessor :creating # [Output Only] The number of instances that the managed instance group will # attempt to create. The group attempts to create each instance only once. If # the group fails to create any of these instances, it decreases the group's # targetSize value accordingly. # Corresponds to the JSON property `creatingWithoutRetries` # @return [Fixnum] attr_accessor :creating_without_retries # [Output Only] The number of instances in the managed instance group that are # scheduled to be deleted or are currently being deleted. # Corresponds to the JSON property `deleting` # @return [Fixnum] attr_accessor :deleting # [Output Only] The number of instances in the managed instance group that are # running and have no scheduled actions. # Corresponds to the JSON property `none` # @return [Fixnum] attr_accessor :none # [Output Only] The number of instances in the managed instance group that are # scheduled to be recreated or are currently being being recreated. Recreating # an instance deletes the existing root persistent disk and creates a new disk # from the image that is defined in the instance template. # Corresponds to the JSON property `recreating` # @return [Fixnum] attr_accessor :recreating # [Output Only] The number of instances in the managed instance group that are # being reconfigured with properties that do not require a restart or a recreate # action. For example, setting or removing target pools for the instance. # Corresponds to the JSON property `refreshing` # @return [Fixnum] attr_accessor :refreshing # [Output Only] The number of instances in the managed instance group that are # scheduled to be restarted or are currently being restarted. # Corresponds to the JSON property `restarting` # @return [Fixnum] attr_accessor :restarting # [Output Only] The number of instances in the managed instance group that are # scheduled to be resumed or are currently being resumed. # Corresponds to the JSON property `resuming` # @return [Fixnum] attr_accessor :resuming # [Output Only] The number of instances in the managed instance group that are # scheduled to be started or are currently being started. # Corresponds to the JSON property `starting` # @return [Fixnum] attr_accessor :starting # [Output Only] The number of instances in the managed instance group that are # scheduled to be stopped or are currently being stopped. # Corresponds to the JSON property `stopping` # @return [Fixnum] attr_accessor :stopping # [Output Only] The number of instances in the managed instance group that are # scheduled to be suspended or are currently being suspended. # Corresponds to the JSON property `suspending` # @return [Fixnum] attr_accessor :suspending # [Output Only] The number of instances in the managed instance group that are # being verified. See the managedInstances[].currentAction property in the # listManagedInstances method documentation. # Corresponds to the JSON property `verifying` # @return [Fixnum] attr_accessor :verifying def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @abandoning = args[:abandoning] if args.key?(:abandoning) @creating = args[:creating] if args.key?(:creating) @creating_without_retries = args[:creating_without_retries] if args.key?(:creating_without_retries) @deleting = args[:deleting] if args.key?(:deleting) @none = args[:none] if args.key?(:none) @recreating = args[:recreating] if args.key?(:recreating) @refreshing = args[:refreshing] if args.key?(:refreshing) @restarting = args[:restarting] if args.key?(:restarting) @resuming = args[:resuming] if args.key?(:resuming) @starting = args[:starting] if args.key?(:starting) @stopping = args[:stopping] if args.key?(:stopping) @suspending = args[:suspending] if args.key?(:suspending) @verifying = args[:verifying] if args.key?(:verifying) end end # class InstanceGroupManagerAggregatedList include Google::Apis::Core::Hashable # [Output Only] Unique identifier for the resource; defined by the server. # Corresponds to the JSON property `id` # @return [String] attr_accessor :id # A list of InstanceGroupManagersScopedList resources. # Corresponds to the JSON property `items` # @return [Hash] attr_accessor :items # [Output Only] The resource type, which is always compute# # instanceGroupManagerAggregatedList for an aggregated list of managed instance # groups. # Corresponds to the JSON property `kind` # @return [String] attr_accessor :kind # [Output Only] This token allows you to get the next page of results for list # requests. If the number of results is larger than maxResults, use the # nextPageToken as a value for the query parameter pageToken in the next list # request. Subsequent list requests will have their own nextPageToken to # continue paging through the results. # Corresponds to the JSON property `nextPageToken` # @return [String] attr_accessor :next_page_token # [Output Only] Server-defined URL for this resource. # Corresponds to the JSON property `selfLink` # @return [String] attr_accessor :self_link # [Output Only] Unreachable resources. # Corresponds to the JSON property `unreachables` # @return [Array] attr_accessor :unreachables # [Output Only] Informational warning message. # Corresponds to the JSON property `warning` # @return [Google::Apis::ComputeAlpha::InstanceGroupManagerAggregatedList::Warning] attr_accessor :warning def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @id = args[:id] if args.key?(:id) @items = args[:items] if args.key?(:items) @kind = args[:kind] if args.key?(:kind) @next_page_token = args[:next_page_token] if args.key?(:next_page_token) @self_link = args[:self_link] if args.key?(:self_link) @unreachables = args[:unreachables] if args.key?(:unreachables) @warning = args[:warning] if args.key?(:warning) end # [Output Only] Informational warning message. class Warning include Google::Apis::Core::Hashable # [Output Only] A warning code, if applicable. For example, Compute Engine # returns NO_RESULTS_ON_PAGE if there are no results in the response. # Corresponds to the JSON property `code` # @return [String] attr_accessor :code # [Output Only] Metadata about this warning in key: value format. For example: " # data": [ ` "key": "scope", "value": "zones/us-east1-d" ` # Corresponds to the JSON property `data` # @return [Array] attr_accessor :data # [Output Only] A human-readable description of the warning code. # Corresponds to the JSON property `message` # @return [String] attr_accessor :message def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @code = args[:code] if args.key?(:code) @data = args[:data] if args.key?(:data) @message = args[:message] if args.key?(:message) end # class Datum include Google::Apis::Core::Hashable # [Output Only] A key that provides more detail on the warning being returned. # For example, for warnings where there are no results in a list request for a # particular zone, this key might be scope and the key value might be the zone # name. Other examples might be a key indicating a deprecated resource and a # suggested replacement, or a warning about invalid network settings (for # example, if an instance attempts to perform IP forwarding but is not enabled # for IP forwarding). # Corresponds to the JSON property `key` # @return [String] attr_accessor :key # [Output Only] A warning data value corresponding to the key. # 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 end end # class InstanceGroupManagerAllInstancesConfig include Google::Apis::Core::Hashable # Represents the change that you want to make to the instance properties. # Corresponds to the JSON property `properties` # @return [Google::Apis::ComputeAlpha::InstancePropertiesPatch] attr_accessor :properties def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @properties = args[:properties] if args.key?(:properties) end end # class InstanceGroupManagerAutoHealingPolicy include Google::Apis::Core::Hashable # Restricts what triggers autohealing. # Corresponds to the JSON property `autoHealingTriggers` # @return [Google::Apis::ComputeAlpha::InstanceGroupManagerAutoHealingPolicyAutoHealingTriggers] attr_accessor :auto_healing_triggers # The URL for the health check that signals autohealing. # Corresponds to the JSON property `healthCheck` # @return [String] attr_accessor :health_check # The number of seconds that the managed instance group waits before it applies # autohealing policies to new instances or recently recreated instances. This # initial delay allows instances to initialize and run their startup scripts # before the instance group determines that they are UNHEALTHY. This prevents # the managed instance group from recreating its instances prematurely. This # value must be from range [0, 3600]. # Corresponds to the JSON property `initialDelaySec` # @return [Fixnum] attr_accessor :initial_delay_sec # Encapsulates numeric value that can be either absolute or relative. # Corresponds to the JSON property `maxUnavailable` # @return [Google::Apis::ComputeAlpha::FixedOrPercent] attr_accessor :max_unavailable # # Corresponds to the JSON property `updateInstances` # @return [String] attr_accessor :update_instances def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @auto_healing_triggers = args[:auto_healing_triggers] if args.key?(:auto_healing_triggers) @health_check = args[:health_check] if args.key?(:health_check) @initial_delay_sec = args[:initial_delay_sec] if args.key?(:initial_delay_sec) @max_unavailable = args[:max_unavailable] if args.key?(:max_unavailable) @update_instances = args[:update_instances] if args.key?(:update_instances) end end # class InstanceGroupManagerAutoHealingPolicyAutoHealingTriggers include Google::Apis::Core::Hashable # If you have configured an application-based health check for the group, this # field controls whether to trigger VM autohealing based on a failed health # check. Valid values are: - ON (default): The group recreates running VMs that # fail the application-based health check. - OFF: When set to OFF, you can still # observe instance health state, but the group does not recreate VMs that fail # the application-based health check. This is useful for troubleshooting and # setting up your health check configuration. # Corresponds to the JSON property `onHealthCheck` # @return [String] attr_accessor :on_health_check def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @on_health_check = args[:on_health_check] if args.key?(:on_health_check) end end # class InstanceGroupManagerInstanceLifecyclePolicy include Google::Apis::Core::Hashable # The configuration for metadata based readiness signal sent by the instance # during initialization when stopping / suspending an instance. The Instance # Group Manager will wait for a signal that indicates successful initialization # before stopping / suspending an instance. If a successful readiness signal is # not sent before timeout, the corresponding instance will not be stopped / # suspended. Instead, an error will be visible in the lastAttempt.errors field # of the managed instance in the listmanagedinstances method. If # metadataBasedReadinessSignal.timeoutSec is unset, the Instance Group Manager # will directly proceed to suspend / stop instances, skipping initialization on # them. # Corresponds to the JSON property `metadataBasedReadinessSignal` # @return [Google::Apis::ComputeAlpha::InstanceGroupManagerInstanceLifecyclePolicyMetadataBasedReadinessSignal] attr_accessor :metadata_based_readiness_signal def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @metadata_based_readiness_signal = args[:metadata_based_readiness_signal] if args.key?(:metadata_based_readiness_signal) end end # class InstanceGroupManagerInstanceLifecyclePolicyMetadataBasedReadinessSignal include Google::Apis::Core::Hashable # The number of seconds to wait for a readiness signal during initialization # before timing out. # Corresponds to the JSON property `timeoutSec` # @return [Fixnum] attr_accessor :timeout_sec def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @timeout_sec = args[:timeout_sec] if args.key?(:timeout_sec) end end # [Output Only] A list of managed instance groups. class InstanceGroupManagerList include Google::Apis::Core::Hashable # [Output Only] Unique identifier for the resource; defined by the server. # Corresponds to the JSON property `id` # @return [String] attr_accessor :id # A list of InstanceGroupManager resources. # Corresponds to the JSON property `items` # @return [Array] attr_accessor :items # [Output Only] The resource type, which is always compute# # instanceGroupManagerList for a list of managed instance groups. # Corresponds to the JSON property `kind` # @return [String] attr_accessor :kind # [Output Only] This token allows you to get the next page of results for list # requests. If the number of results is larger than maxResults, use the # nextPageToken as a value for the query parameter pageToken in the next list # request. Subsequent list requests will have their own nextPageToken to # continue paging through the results. # Corresponds to the JSON property `nextPageToken` # @return [String] attr_accessor :next_page_token # [Output Only] Server-defined URL for this resource. # Corresponds to the JSON property `selfLink` # @return [String] attr_accessor :self_link # [Output Only] Informational warning message. # Corresponds to the JSON property `warning` # @return [Google::Apis::ComputeAlpha::InstanceGroupManagerList::Warning] attr_accessor :warning def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @id = args[:id] if args.key?(:id) @items = args[:items] if args.key?(:items) @kind = args[:kind] if args.key?(:kind) @next_page_token = args[:next_page_token] if args.key?(:next_page_token) @self_link = args[:self_link] if args.key?(:self_link) @warning = args[:warning] if args.key?(:warning) end # [Output Only] Informational warning message. class Warning include Google::Apis::Core::Hashable # [Output Only] A warning code, if applicable. For example, Compute Engine # returns NO_RESULTS_ON_PAGE if there are no results in the response. # Corresponds to the JSON property `code` # @return [String] attr_accessor :code # [Output Only] Metadata about this warning in key: value format. For example: " # data": [ ` "key": "scope", "value": "zones/us-east1-d" ` # Corresponds to the JSON property `data` # @return [Array] attr_accessor :data # [Output Only] A human-readable description of the warning code. # Corresponds to the JSON property `message` # @return [String] attr_accessor :message def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @code = args[:code] if args.key?(:code) @data = args[:data] if args.key?(:data) @message = args[:message] if args.key?(:message) end # class Datum include Google::Apis::Core::Hashable # [Output Only] A key that provides more detail on the warning being returned. # For example, for warnings where there are no results in a list request for a # particular zone, this key might be scope and the key value might be the zone # name. Other examples might be a key indicating a deprecated resource and a # suggested replacement, or a warning about invalid network settings (for # example, if an instance attempts to perform IP forwarding but is not enabled # for IP forwarding). # Corresponds to the JSON property `key` # @return [String] attr_accessor :key # [Output Only] A warning data value corresponding to the key. # 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 end end # class InstanceGroupManagerStandbyPolicy include Google::Apis::Core::Hashable # # Corresponds to the JSON property `initialDelaySec` # @return [Fixnum] attr_accessor :initial_delay_sec def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @initial_delay_sec = args[:initial_delay_sec] if args.key?(:initial_delay_sec) end end # class InstanceGroupManagerStatus include Google::Apis::Core::Hashable # [Output Only] A status of consistency of Instances' config applied to # instances with Instances' config defined in managed instance group. # Corresponds to the JSON property `allInstancesConfig` # @return [Google::Apis::ComputeAlpha::InstanceGroupManagerStatusAllInstancesConfig] attr_accessor :all_instances_config # [Output Only] The URL of the Autoscaler that targets this instance group # manager. # Corresponds to the JSON property `autoscaler` # @return [String] attr_accessor :autoscaler # [Output Only] A bit indicating whether the managed instance group is in a # stable state. A stable state means that: none of the instances in the managed # instance group is currently undergoing any type of change (for example, # creation, restart, or deletion); no future changes are scheduled for instances # in the managed instance group; and the managed instance group itself is not # being modified. # Corresponds to the JSON property `isStable` # @return [Boolean] attr_accessor :is_stable alias_method :is_stable?, :is_stable # [Output Only] Stateful status of the given Instance Group Manager. # Corresponds to the JSON property `stateful` # @return [Google::Apis::ComputeAlpha::InstanceGroupManagerStatusStateful] attr_accessor :stateful # [Output Only] A status of consistency of Instances' versions with their target # version specified by version field on Instance Group Manager. # Corresponds to the JSON property `versionTarget` # @return [Google::Apis::ComputeAlpha::InstanceGroupManagerStatusVersionTarget] attr_accessor :version_target def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @all_instances_config = args[:all_instances_config] if args.key?(:all_instances_config) @autoscaler = args[:autoscaler] if args.key?(:autoscaler) @is_stable = args[:is_stable] if args.key?(:is_stable) @stateful = args[:stateful] if args.key?(:stateful) @version_target = args[:version_target] if args.key?(:version_target) end end # class InstanceGroupManagerStatusAllInstancesConfig include Google::Apis::Core::Hashable # [Output Only] Current instances' config revision. This value is in RFC3339 # text format. # Corresponds to the JSON property `currentRevision` # @return [String] attr_accessor :current_revision # [Output Only] A bit indicating whether instances' config has been applied to # all managed instances in managed instance group. # Corresponds to the JSON property `effective` # @return [Boolean] attr_accessor :effective alias_method :effective?, :effective def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @current_revision = args[:current_revision] if args.key?(:current_revision) @effective = args[:effective] if args.key?(:effective) end end # class InstanceGroupManagerStatusStateful include Google::Apis::Core::Hashable # [Output Only] A bit indicating whether the managed instance group has stateful # configuration, that is, if you have configured any items in a stateful policy # or in per-instance configs. The group might report that it has no stateful # config even when there is still some preserved state on a managed instance, # for example, if you have deleted all PICs but not yet applied those deletions. # Corresponds to the JSON property `hasStatefulConfig` # @return [Boolean] attr_accessor :has_stateful_config alias_method :has_stateful_config?, :has_stateful_config # [Output Only] A bit indicating whether the managed instance group has stateful # configuration, that is, if you have configured any items in a stateful policy # or in per-instance configs. The group might report that it has no stateful # config even when there is still some preserved state on a managed instance, # for example, if you have deleted all PICs but not yet applied those deletions. # This field is deprecated in favor of has_stateful_config. # Corresponds to the JSON property `isStateful` # @return [Boolean] attr_accessor :is_stateful alias_method :is_stateful?, :is_stateful # [Output Only] Status of per-instance configs on the instance. # Corresponds to the JSON property `perInstanceConfigs` # @return [Google::Apis::ComputeAlpha::InstanceGroupManagerStatusStatefulPerInstanceConfigs] attr_accessor :per_instance_configs def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @has_stateful_config = args[:has_stateful_config] if args.key?(:has_stateful_config) @is_stateful = args[:is_stateful] if args.key?(:is_stateful) @per_instance_configs = args[:per_instance_configs] if args.key?(:per_instance_configs) end end # class InstanceGroupManagerStatusStatefulPerInstanceConfigs include Google::Apis::Core::Hashable # A bit indicating if all of the group's per-instance configs (listed in the # output of a listPerInstanceConfigs API call) have status EFFECTIVE or there # are no per-instance-configs. # Corresponds to the JSON property `allEffective` # @return [Boolean] attr_accessor :all_effective alias_method :all_effective?, :all_effective def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @all_effective = args[:all_effective] if args.key?(:all_effective) end end # class InstanceGroupManagerStatusVersionTarget include Google::Apis::Core::Hashable # [Output Only] A bit indicating whether version target has been reached in this # managed instance group, i.e. all instances are in their target version. # Instances' target version are specified by version field on Instance Group # Manager. # Corresponds to the JSON property `isReached` # @return [Boolean] attr_accessor :is_reached alias_method :is_reached?, :is_reached def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @is_reached = args[:is_reached] if args.key?(:is_reached) end end # class InstanceGroupManagerUpdatePolicy include Google::Apis::Core::Hashable # The instance redistribution policy for regional managed instance groups. Valid # values are: - PROACTIVE (default): The group attempts to maintain an even # distribution of VM instances across zones in the region. - NONE: For non- # autoscaled groups, proactive redistribution is disabled. # Corresponds to the JSON property `instanceRedistributionType` # @return [String] attr_accessor :instance_redistribution_type # Encapsulates numeric value that can be either absolute or relative. # Corresponds to the JSON property `maxSurge` # @return [Google::Apis::ComputeAlpha::FixedOrPercent] attr_accessor :max_surge # Encapsulates numeric value that can be either absolute or relative. # Corresponds to the JSON property `maxUnavailable` # @return [Google::Apis::ComputeAlpha::FixedOrPercent] attr_accessor :max_unavailable # Minimum number of seconds to wait for after a newly created instance becomes # available. This value must be from range [0, 3600]. # Corresponds to the JSON property `minReadySec` # @return [Fixnum] attr_accessor :min_ready_sec # Minimal action to be taken on an instance. You can specify either RESTART to # restart existing instances or REPLACE to delete and create new instances from # the target template. If you specify a RESTART, the Updater will attempt to # perform that action only. However, if the Updater determines that the minimal # action you specify is not enough to perform the update, it might perform a # more disruptive action. # Corresponds to the JSON property `minimalAction` # @return [String] attr_accessor :minimal_action # Most disruptive action that is allowed to be taken on an instance. You can # specify either NONE to forbid any actions, REFRESH to allow actions that do # not need instance restart, RESTART to allow actions that can be applied # without instance replacing or REPLACE to allow all possible actions. If the # Updater determines that the minimal update action needed is more disruptive # than most disruptive allowed action you specify it will not perform the update # at all. # Corresponds to the JSON property `mostDisruptiveAllowedAction` # @return [String] attr_accessor :most_disruptive_allowed_action # What action should be used to replace instances. See minimal_action.REPLACE # Corresponds to the JSON property `replacementMethod` # @return [String] attr_accessor :replacement_method # The type of update process. You can specify either PROACTIVE so that the # instance group manager proactively executes actions in order to bring # instances to their target versions or OPPORTUNISTIC so that no action is # proactively executed but the update will be performed as part of other actions # (for example, resizes or recreateInstances calls). # 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) @instance_redistribution_type = args[:instance_redistribution_type] if args.key?(:instance_redistribution_type) @max_surge = args[:max_surge] if args.key?(:max_surge) @max_unavailable = args[:max_unavailable] if args.key?(:max_unavailable) @min_ready_sec = args[:min_ready_sec] if args.key?(:min_ready_sec) @minimal_action = args[:minimal_action] if args.key?(:minimal_action) @most_disruptive_allowed_action = args[:most_disruptive_allowed_action] if args.key?(:most_disruptive_allowed_action) @replacement_method = args[:replacement_method] if args.key?(:replacement_method) @type = args[:type] if args.key?(:type) end end # class InstanceGroupManagerVersion include Google::Apis::Core::Hashable # The URL of the instance template that is specified for this managed instance # group. The group uses this template to create new instances in the managed # instance group until the `targetSize` for this version is reached. The # templates for existing instances in the group do not change unless you run # recreateInstances, run applyUpdatesToInstances, or set the group's # updatePolicy.type to PROACTIVE; in those cases, existing instances are updated # until the `targetSize` for this version is reached. # Corresponds to the JSON property `instanceTemplate` # @return [String] attr_accessor :instance_template # Name of the version. Unique among all versions in the scope of this managed # instance group. # Corresponds to the JSON property `name` # @return [String] attr_accessor :name # Tag describing the version. Used to trigger rollout of a target version even # if instance_template remains unchanged. Deprecated in favor of 'name'. # Corresponds to the JSON property `tag` # @return [String] attr_accessor :tag # Encapsulates numeric value that can be either absolute or relative. # Corresponds to the JSON property `targetSize` # @return [Google::Apis::ComputeAlpha::FixedOrPercent] attr_accessor :target_size def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @instance_template = args[:instance_template] if args.key?(:instance_template) @name = args[:name] if args.key?(:name) @tag = args[:tag] if args.key?(:tag) @target_size = args[:target_size] if args.key?(:target_size) end end # class InstanceGroupManagersAbandonInstancesRequest include Google::Apis::Core::Hashable # The URLs of one or more instances to abandon. This can be a full URL or a # partial URL, such as zones/[ZONE]/instances/[INSTANCE_NAME]. # Corresponds to the JSON property `instances` # @return [Array] attr_accessor :instances def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @instances = args[:instances] if args.key?(:instances) end end # InstanceGroupManagers.applyUpdatesToInstances class InstanceGroupManagersApplyUpdatesRequest include Google::Apis::Core::Hashable # Flag to update all instances instead of specified list of “instances”. If the # flag is set to true then the instances may not be specified in the request. # Corresponds to the JSON property `allInstances` # @return [Boolean] attr_accessor :all_instances alias_method :all_instances?, :all_instances # The list of URLs of one or more instances for which you want to apply updates. # Each URL can be a full URL or a partial URL, such as zones/[ZONE]/instances/[ # INSTANCE_NAME]. # Corresponds to the JSON property `instances` # @return [Array] attr_accessor :instances # The maximal action that should be performed on the instances. By default # REPLACE. This field is deprecated, please use most_disruptive_allowed_action. # Corresponds to the JSON property `maximalAction` # @return [String] attr_accessor :maximal_action # The minimal action that you want to perform on each instance during the update: # - REPLACE: At minimum, delete the instance and create it again. - RESTART: # Stop the instance and start it again. - REFRESH: Do not stop the instance. - # NONE: Do not disrupt the instance at all. By default, the minimum action is # NONE. If your update requires a more disruptive action than you set with this # flag, the necessary action is performed to execute the update. # Corresponds to the JSON property `minimalAction` # @return [String] attr_accessor :minimal_action # The most disruptive action that you want to perform on each instance during # the update: - REPLACE: Delete the instance and create it again. - RESTART: # Stop the instance and start it again. - REFRESH: Do not stop the instance. - # NONE: Do not disrupt the instance at all. By default, the most disruptive # allowed action is REPLACE. If your update requires a more disruptive action # than you set with this flag, the update request will fail. # Corresponds to the JSON property `mostDisruptiveAllowedAction` # @return [String] attr_accessor :most_disruptive_allowed_action def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @all_instances = args[:all_instances] if args.key?(:all_instances) @instances = args[:instances] if args.key?(:instances) @maximal_action = args[:maximal_action] if args.key?(:maximal_action) @minimal_action = args[:minimal_action] if args.key?(:minimal_action) @most_disruptive_allowed_action = args[:most_disruptive_allowed_action] if args.key?(:most_disruptive_allowed_action) end end # InstanceGroupManagers.createInstances class InstanceGroupManagersCreateInstancesRequest include Google::Apis::Core::Hashable # [Required] List of specifications of per-instance configs. # Corresponds to the JSON property `instances` # @return [Array] attr_accessor :instances def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @instances = args[:instances] if args.key?(:instances) end end # class InstanceGroupManagersDeleteInstancesRequest include Google::Apis::Core::Hashable # The URLs of one or more instances to delete. This can be a full URL or a # partial URL, such as zones/[ZONE]/instances/[INSTANCE_NAME]. # Corresponds to the JSON property `instances` # @return [Array] attr_accessor :instances # Specifies whether the request should proceed despite the inclusion of # instances that are not members of the group or that are already in the process # of being deleted or abandoned. If this field is set to `false` and such an # instance is specified in the request, the operation fails. The operation # always fails if the request contains a malformed instance URL or a reference # to an instance that exists in a zone or region other than the group's zone or # region. # Corresponds to the JSON property `skipInstancesOnValidationError` # @return [Boolean] attr_accessor :skip_instances_on_validation_error alias_method :skip_instances_on_validation_error?, :skip_instances_on_validation_error def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @instances = args[:instances] if args.key?(:instances) @skip_instances_on_validation_error = args[:skip_instances_on_validation_error] if args.key?(:skip_instances_on_validation_error) end end # InstanceGroupManagers.deletePerInstanceConfigs class InstanceGroupManagersDeletePerInstanceConfigsReq include Google::Apis::Core::Hashable # The list of instance names for which we want to delete per-instance configs on # this managed instance group. # Corresponds to the JSON property `names` # @return [Array] attr_accessor :names def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @names = args[:names] if args.key?(:names) end end # class InstanceGroupManagersListErrorsResponse include Google::Apis::Core::Hashable # [Output Only] The list of errors of the managed instance group. # Corresponds to the JSON property `items` # @return [Array] attr_accessor :items # [Output Only] This token allows you to get the next page of results for list # requests. If the number of results is larger than maxResults, use the # nextPageToken as a value for the query parameter pageToken in the next list # request. Subsequent list requests will have their own nextPageToken to # continue paging through the results. # Corresponds to the JSON property `nextPageToken` # @return [String] attr_accessor :next_page_token def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @items = args[:items] if args.key?(:items) @next_page_token = args[:next_page_token] if args.key?(:next_page_token) end end # class InstanceGroupManagersListManagedInstancesResponse include Google::Apis::Core::Hashable # [Output Only] The list of instances in the managed instance group. # Corresponds to the JSON property `managedInstances` # @return [Array] attr_accessor :managed_instances # [Output Only] This token allows you to get the next page of results for list # requests. If the number of results is larger than maxResults, use the # nextPageToken as a value for the query parameter pageToken in the next list # request. Subsequent list requests will have their own nextPageToken to # continue paging through the results. # Corresponds to the JSON property `nextPageToken` # @return [String] attr_accessor :next_page_token def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @managed_instances = args[:managed_instances] if args.key?(:managed_instances) @next_page_token = args[:next_page_token] if args.key?(:next_page_token) end end # class InstanceGroupManagersListPerInstanceConfigsResp include Google::Apis::Core::Hashable # [Output Only] The list of PerInstanceConfig. # Corresponds to the JSON property `items` # @return [Array] attr_accessor :items # [Output Only] This token allows you to get the next page of results for list # requests. If the number of results is larger than maxResults, use the # nextPageToken as a value for the query parameter pageToken in the next list # request. Subsequent list requests will have their own nextPageToken to # continue paging through the results. # Corresponds to the JSON property `nextPageToken` # @return [String] attr_accessor :next_page_token # [Output Only] Informational warning message. # Corresponds to the JSON property `warning` # @return [Google::Apis::ComputeAlpha::InstanceGroupManagersListPerInstanceConfigsResp::Warning] attr_accessor :warning def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @items = args[:items] if args.key?(:items) @next_page_token = args[:next_page_token] if args.key?(:next_page_token) @warning = args[:warning] if args.key?(:warning) end # [Output Only] Informational warning message. class Warning include Google::Apis::Core::Hashable # [Output Only] A warning code, if applicable. For example, Compute Engine # returns NO_RESULTS_ON_PAGE if there are no results in the response. # Corresponds to the JSON property `code` # @return [String] attr_accessor :code # [Output Only] Metadata about this warning in key: value format. For example: " # data": [ ` "key": "scope", "value": "zones/us-east1-d" ` # Corresponds to the JSON property `data` # @return [Array] attr_accessor :data # [Output Only] A human-readable description of the warning code. # Corresponds to the JSON property `message` # @return [String] attr_accessor :message def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @code = args[:code] if args.key?(:code) @data = args[:data] if args.key?(:data) @message = args[:message] if args.key?(:message) end # class Datum include Google::Apis::Core::Hashable # [Output Only] A key that provides more detail on the warning being returned. # For example, for warnings where there are no results in a list request for a # particular zone, this key might be scope and the key value might be the zone # name. Other examples might be a key indicating a deprecated resource and a # suggested replacement, or a warning about invalid network settings (for # example, if an instance attempts to perform IP forwarding but is not enabled # for IP forwarding). # Corresponds to the JSON property `key` # @return [String] attr_accessor :key # [Output Only] A warning data value corresponding to the key. # 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 end end # InstanceGroupManagers.patchPerInstanceConfigs class InstanceGroupManagersPatchPerInstanceConfigsReq include Google::Apis::Core::Hashable # The list of per-instance configs to insert or patch on this managed instance # group. # Corresponds to the JSON property `perInstanceConfigs` # @return [Array] attr_accessor :per_instance_configs def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @per_instance_configs = args[:per_instance_configs] if args.key?(:per_instance_configs) end end # class InstanceGroupManagersRecreateInstancesRequest include Google::Apis::Core::Hashable # The URLs of one or more instances to recreate. This can be a full URL or a # partial URL, such as zones/[ZONE]/instances/[INSTANCE_NAME]. # Corresponds to the JSON property `instances` # @return [Array] attr_accessor :instances def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @instances = args[:instances] if args.key?(:instances) end end # class InstanceGroupManagersResizeAdvancedRequest include Google::Apis::Core::Hashable # If this flag is true, the managed instance group attempts to create all # instances initiated by this resize request only once. If there is an error # during creation, the managed instance group does not retry create this # instance, and we will decrease the targetSize of the request instead. If the # flag is false, the group attempts to recreate each instance continuously until # it succeeds. This flag matters only in the first attempt of creation of an # instance. After an instance is successfully created while this flag is enabled, # the instance behaves the same way as all the other instances created with a # regular resize request. In particular, if a running instance dies unexpectedly # at a later time and needs to be recreated, this mode does not affect the # recreation behavior in that scenario. This flag is applicable only to the # current resize request. It does not influence other resize requests in any way. # You can see which instances is being creating in which mode by calling the # get or listManagedInstances API. # Corresponds to the JSON property `noCreationRetries` # @return [Boolean] attr_accessor :no_creation_retries alias_method :no_creation_retries?, :no_creation_retries # The number of running instances that the managed instance group should # maintain at any given time. The group automatically adds or removes instances # to maintain the number of instances specified by this parameter. # Corresponds to the JSON property `targetSize` # @return [Fixnum] attr_accessor :target_size def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @no_creation_retries = args[:no_creation_retries] if args.key?(:no_creation_retries) @target_size = args[:target_size] if args.key?(:target_size) end end # class InstanceGroupManagersResumeInstancesRequest include Google::Apis::Core::Hashable # The URLs of one or more instances to resume. This can be a full URL or a # partial URL, such as zones/[ZONE]/instances/[INSTANCE_NAME]. # Corresponds to the JSON property `instances` # @return [Array] attr_accessor :instances def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @instances = args[:instances] if args.key?(:instances) end end # class InstanceGroupManagersScopedList include Google::Apis::Core::Hashable # [Output Only] The list of managed instance groups that are contained in the # specified project and zone. # Corresponds to the JSON property `instanceGroupManagers` # @return [Array] attr_accessor :instance_group_managers # [Output Only] The warning that replaces the list of managed instance groups # when the list is empty. # Corresponds to the JSON property `warning` # @return [Google::Apis::ComputeAlpha::InstanceGroupManagersScopedList::Warning] attr_accessor :warning def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @instance_group_managers = args[:instance_group_managers] if args.key?(:instance_group_managers) @warning = args[:warning] if args.key?(:warning) end # [Output Only] The warning that replaces the list of managed instance groups # when the list is empty. class Warning include Google::Apis::Core::Hashable # [Output Only] A warning code, if applicable. For example, Compute Engine # returns NO_RESULTS_ON_PAGE if there are no results in the response. # Corresponds to the JSON property `code` # @return [String] attr_accessor :code # [Output Only] Metadata about this warning in key: value format. For example: " # data": [ ` "key": "scope", "value": "zones/us-east1-d" ` # Corresponds to the JSON property `data` # @return [Array] attr_accessor :data # [Output Only] A human-readable description of the warning code. # Corresponds to the JSON property `message` # @return [String] attr_accessor :message def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @code = args[:code] if args.key?(:code) @data = args[:data] if args.key?(:data) @message = args[:message] if args.key?(:message) end # class Datum include Google::Apis::Core::Hashable # [Output Only] A key that provides more detail on the warning being returned. # For example, for warnings where there are no results in a list request for a # particular zone, this key might be scope and the key value might be the zone # name. Other examples might be a key indicating a deprecated resource and a # suggested replacement, or a warning about invalid network settings (for # example, if an instance attempts to perform IP forwarding but is not enabled # for IP forwarding). # Corresponds to the JSON property `key` # @return [String] attr_accessor :key # [Output Only] A warning data value corresponding to the key. # 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 end end # class InstanceGroupManagersSetAutoHealingRequest include Google::Apis::Core::Hashable # # Corresponds to the JSON property `autoHealingPolicies` # @return [Array] attr_accessor :auto_healing_policies def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @auto_healing_policies = args[:auto_healing_policies] if args.key?(:auto_healing_policies) end end # class InstanceGroupManagersSetInstanceTemplateRequest include Google::Apis::Core::Hashable # The URL of the instance template that is specified for this managed instance # group. The group uses this template to create all new instances in the managed # instance group. The templates for existing instances in the group do not # change unless you run recreateInstances, run applyUpdatesToInstances, or set # the group's updatePolicy.type to PROACTIVE. # Corresponds to the JSON property `instanceTemplate` # @return [String] attr_accessor :instance_template def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @instance_template = args[:instance_template] if args.key?(:instance_template) end end # class InstanceGroupManagersSetTargetPoolsRequest include Google::Apis::Core::Hashable # The fingerprint of the target pools information. Use this optional property to # prevent conflicts when multiple users change the target pools settings # concurrently. Obtain the fingerprint with the instanceGroupManagers.get method. # Then, include the fingerprint in your request to ensure that you do not # overwrite changes that were applied from another concurrent request. # Corresponds to the JSON property `fingerprint` # NOTE: Values are automatically base64 encoded/decoded in the client library. # @return [String] attr_accessor :fingerprint # The list of target pool URLs that instances in this managed instance group # belong to. The managed instance group applies these target pools to all of the # instances in the group. Existing instances and new instances in the group all # receive these target pool settings. # Corresponds to the JSON property `targetPools` # @return [Array] attr_accessor :target_pools def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @fingerprint = args[:fingerprint] if args.key?(:fingerprint) @target_pools = args[:target_pools] if args.key?(:target_pools) end end # class InstanceGroupManagersStartInstancesRequest include Google::Apis::Core::Hashable # The URLs of one or more instances to start. This can be a full URL or a # partial URL, such as zones/[ZONE]/instances/[INSTANCE_NAME]. # Corresponds to the JSON property `instances` # @return [Array] attr_accessor :instances def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @instances = args[:instances] if args.key?(:instances) end end # class InstanceGroupManagersStopInstancesRequest include Google::Apis::Core::Hashable # If this flag is set to true, the Instance Group Manager will proceed to stop # the instances, skipping initialization on them. # Corresponds to the JSON property `forceStop` # @return [Boolean] attr_accessor :force_stop alias_method :force_stop?, :force_stop # The URLs of one or more instances to stop. This can be a full URL or a partial # URL, such as zones/[ZONE]/instances/[INSTANCE_NAME]. # Corresponds to the JSON property `instances` # @return [Array] attr_accessor :instances def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @force_stop = args[:force_stop] if args.key?(:force_stop) @instances = args[:instances] if args.key?(:instances) end end # class InstanceGroupManagersSuspendInstancesRequest include Google::Apis::Core::Hashable # If this flag is set to true, the Instance Group Manager will proceed to # suspend the instances, skipping initialization on them. # Corresponds to the JSON property `forceSuspend` # @return [Boolean] attr_accessor :force_suspend alias_method :force_suspend?, :force_suspend # The URLs of one or more instances to suspend. This can be a full URL or a # partial URL, such as zones/[ZONE]/instances/[INSTANCE_NAME]. # Corresponds to the JSON property `instances` # @return [Array] attr_accessor :instances def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @force_suspend = args[:force_suspend] if args.key?(:force_suspend) @instances = args[:instances] if args.key?(:instances) end end # InstanceGroupManagers.updatePerInstanceConfigs class InstanceGroupManagersUpdatePerInstanceConfigsReq include Google::Apis::Core::Hashable # The list of per-instance configs to insert or patch on this managed instance # group. # Corresponds to the JSON property `perInstanceConfigs` # @return [Array] attr_accessor :per_instance_configs def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @per_instance_configs = args[:per_instance_configs] if args.key?(:per_instance_configs) end end # class InstanceGroupsAddInstancesRequest include Google::Apis::Core::Hashable # The list of instances to add to the instance group. # Corresponds to the JSON property `instances` # @return [Array] attr_accessor :instances def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @instances = args[:instances] if args.key?(:instances) end end # class InstanceGroupsListInstances include Google::Apis::Core::Hashable # [Output Only] Unique identifier for the resource; defined by the server. # Corresponds to the JSON property `id` # @return [String] attr_accessor :id # A list of InstanceWithNamedPorts resources. # Corresponds to the JSON property `items` # @return [Array] attr_accessor :items # [Output Only] The resource type, which is always compute# # instanceGroupsListInstances for the list of instances in the specified # instance group. # Corresponds to the JSON property `kind` # @return [String] attr_accessor :kind # [Output Only] This token allows you to get the next page of results for list # requests. If the number of results is larger than maxResults, use the # nextPageToken as a value for the query parameter pageToken in the next list # request. Subsequent list requests will have their own nextPageToken to # continue paging through the results. # Corresponds to the JSON property `nextPageToken` # @return [String] attr_accessor :next_page_token # [Output Only] Server-defined URL for this resource. # Corresponds to the JSON property `selfLink` # @return [String] attr_accessor :self_link # [Output Only] Informational warning message. # Corresponds to the JSON property `warning` # @return [Google::Apis::ComputeAlpha::InstanceGroupsListInstances::Warning] attr_accessor :warning def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @id = args[:id] if args.key?(:id) @items = args[:items] if args.key?(:items) @kind = args[:kind] if args.key?(:kind) @next_page_token = args[:next_page_token] if args.key?(:next_page_token) @self_link = args[:self_link] if args.key?(:self_link) @warning = args[:warning] if args.key?(:warning) end # [Output Only] Informational warning message. class Warning include Google::Apis::Core::Hashable # [Output Only] A warning code, if applicable. For example, Compute Engine # returns NO_RESULTS_ON_PAGE if there are no results in the response. # Corresponds to the JSON property `code` # @return [String] attr_accessor :code # [Output Only] Metadata about this warning in key: value format. For example: " # data": [ ` "key": "scope", "value": "zones/us-east1-d" ` # Corresponds to the JSON property `data` # @return [Array] attr_accessor :data # [Output Only] A human-readable description of the warning code. # Corresponds to the JSON property `message` # @return [String] attr_accessor :message def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @code = args[:code] if args.key?(:code) @data = args[:data] if args.key?(:data) @message = args[:message] if args.key?(:message) end # class Datum include Google::Apis::Core::Hashable # [Output Only] A key that provides more detail on the warning being returned. # For example, for warnings where there are no results in a list request for a # particular zone, this key might be scope and the key value might be the zone # name. Other examples might be a key indicating a deprecated resource and a # suggested replacement, or a warning about invalid network settings (for # example, if an instance attempts to perform IP forwarding but is not enabled # for IP forwarding). # Corresponds to the JSON property `key` # @return [String] attr_accessor :key # [Output Only] A warning data value corresponding to the key. # 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 end end # class InstanceGroupsListInstancesRequest include Google::Apis::Core::Hashable # A filter for the state of the instances in the instance group. Valid options # are ALL or RUNNING. If you do not specify this parameter the list includes all # instances regardless of their state. # Corresponds to the JSON property `instanceState` # @return [String] attr_accessor :instance_state def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @instance_state = args[:instance_state] if args.key?(:instance_state) end end # class InstanceGroupsRemoveInstancesRequest include Google::Apis::Core::Hashable # The list of instances to remove from the instance group. # Corresponds to the JSON property `instances` # @return [Array] attr_accessor :instances def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @instances = args[:instances] if args.key?(:instances) end end # class InstanceGroupsScopedList include Google::Apis::Core::Hashable # [Output Only] The list of instance groups that are contained in this scope. # Corresponds to the JSON property `instanceGroups` # @return [Array] attr_accessor :instance_groups # [Output Only] An informational warning that replaces the list of instance # groups when the list is empty. # Corresponds to the JSON property `warning` # @return [Google::Apis::ComputeAlpha::InstanceGroupsScopedList::Warning] attr_accessor :warning def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @instance_groups = args[:instance_groups] if args.key?(:instance_groups) @warning = args[:warning] if args.key?(:warning) end # [Output Only] An informational warning that replaces the list of instance # groups when the list is empty. class Warning include Google::Apis::Core::Hashable # [Output Only] A warning code, if applicable. For example, Compute Engine # returns NO_RESULTS_ON_PAGE if there are no results in the response. # Corresponds to the JSON property `code` # @return [String] attr_accessor :code # [Output Only] Metadata about this warning in key: value format. For example: " # data": [ ` "key": "scope", "value": "zones/us-east1-d" ` # Corresponds to the JSON property `data` # @return [Array] attr_accessor :data # [Output Only] A human-readable description of the warning code. # Corresponds to the JSON property `message` # @return [String] attr_accessor :message def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @code = args[:code] if args.key?(:code) @data = args[:data] if args.key?(:data) @message = args[:message] if args.key?(:message) end # class Datum include Google::Apis::Core::Hashable # [Output Only] A key that provides more detail on the warning being returned. # For example, for warnings where there are no results in a list request for a # particular zone, this key might be scope and the key value might be the zone # name. Other examples might be a key indicating a deprecated resource and a # suggested replacement, or a warning about invalid network settings (for # example, if an instance attempts to perform IP forwarding but is not enabled # for IP forwarding). # Corresponds to the JSON property `key` # @return [String] attr_accessor :key # [Output Only] A warning data value corresponding to the key. # 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 end end # class InstanceGroupsSetNamedPortsRequest include Google::Apis::Core::Hashable # The fingerprint of the named ports information for this instance group. Use # this optional property to prevent conflicts when multiple users change the # named ports settings concurrently. Obtain the fingerprint with the # instanceGroups.get method. Then, include the fingerprint in your request to # ensure that you do not overwrite changes that were applied from another # concurrent request. A request with an incorrect fingerprint will fail with # error 412 conditionNotMet. # Corresponds to the JSON property `fingerprint` # NOTE: Values are automatically base64 encoded/decoded in the client library. # @return [String] attr_accessor :fingerprint # The list of named ports to set for this instance group. # Corresponds to the JSON property `namedPorts` # @return [Array] attr_accessor :named_ports def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @fingerprint = args[:fingerprint] if args.key?(:fingerprint) @named_ports = args[:named_ports] if args.key?(:named_ports) end end # Contains a list of instances. class InstanceList include Google::Apis::Core::Hashable # [Output Only] Unique identifier for the resource; defined by the server. # Corresponds to the JSON property `id` # @return [String] attr_accessor :id # A list of Instance resources. # Corresponds to the JSON property `items` # @return [Array] attr_accessor :items # [Output Only] Type of resource. Always compute#instanceList for lists of # Instance resources. # Corresponds to the JSON property `kind` # @return [String] attr_accessor :kind # [Output Only] This token allows you to get the next page of results for list # requests. If the number of results is larger than maxResults, use the # nextPageToken as a value for the query parameter pageToken in the next list # request. Subsequent list requests will have their own nextPageToken to # continue paging through the results. # Corresponds to the JSON property `nextPageToken` # @return [String] attr_accessor :next_page_token # [Output Only] Server-defined URL for this resource. # Corresponds to the JSON property `selfLink` # @return [String] attr_accessor :self_link # [Output Only] Informational warning message. # Corresponds to the JSON property `warning` # @return [Google::Apis::ComputeAlpha::InstanceList::Warning] attr_accessor :warning def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @id = args[:id] if args.key?(:id) @items = args[:items] if args.key?(:items) @kind = args[:kind] if args.key?(:kind) @next_page_token = args[:next_page_token] if args.key?(:next_page_token) @self_link = args[:self_link] if args.key?(:self_link) @warning = args[:warning] if args.key?(:warning) end # [Output Only] Informational warning message. class Warning include Google::Apis::Core::Hashable # [Output Only] A warning code, if applicable. For example, Compute Engine # returns NO_RESULTS_ON_PAGE if there are no results in the response. # Corresponds to the JSON property `code` # @return [String] attr_accessor :code # [Output Only] Metadata about this warning in key: value format. For example: " # data": [ ` "key": "scope", "value": "zones/us-east1-d" ` # Corresponds to the JSON property `data` # @return [Array] attr_accessor :data # [Output Only] A human-readable description of the warning code. # Corresponds to the JSON property `message` # @return [String] attr_accessor :message def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @code = args[:code] if args.key?(:code) @data = args[:data] if args.key?(:data) @message = args[:message] if args.key?(:message) end # class Datum include Google::Apis::Core::Hashable # [Output Only] A key that provides more detail on the warning being returned. # For example, for warnings where there are no results in a list request for a # particular zone, this key might be scope and the key value might be the zone # name. Other examples might be a key indicating a deprecated resource and a # suggested replacement, or a warning about invalid network settings (for # example, if an instance attempts to perform IP forwarding but is not enabled # for IP forwarding). # Corresponds to the JSON property `key` # @return [String] attr_accessor :key # [Output Only] A warning data value corresponding to the key. # 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 end end # Contains a list of instance referrers. class InstanceListReferrers include Google::Apis::Core::Hashable # [Output Only] Unique identifier for the resource; defined by the server. # Corresponds to the JSON property `id` # @return [String] attr_accessor :id # A list of Reference resources. # Corresponds to the JSON property `items` # @return [Array] attr_accessor :items # [Output Only] Type of resource. Always compute#instanceListReferrers for lists # of Instance referrers. # Corresponds to the JSON property `kind` # @return [String] attr_accessor :kind # [Output Only] This token allows you to get the next page of results for list # requests. If the number of results is larger than maxResults, use the # nextPageToken as a value for the query parameter pageToken in the next list # request. Subsequent list requests will have their own nextPageToken to # continue paging through the results. # Corresponds to the JSON property `nextPageToken` # @return [String] attr_accessor :next_page_token # [Output Only] Server-defined URL for this resource. # Corresponds to the JSON property `selfLink` # @return [String] attr_accessor :self_link # [Output Only] Informational warning message. # Corresponds to the JSON property `warning` # @return [Google::Apis::ComputeAlpha::InstanceListReferrers::Warning] attr_accessor :warning def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @id = args[:id] if args.key?(:id) @items = args[:items] if args.key?(:items) @kind = args[:kind] if args.key?(:kind) @next_page_token = args[:next_page_token] if args.key?(:next_page_token) @self_link = args[:self_link] if args.key?(:self_link) @warning = args[:warning] if args.key?(:warning) end # [Output Only] Informational warning message. class Warning include Google::Apis::Core::Hashable # [Output Only] A warning code, if applicable. For example, Compute Engine # returns NO_RESULTS_ON_PAGE if there are no results in the response. # Corresponds to the JSON property `code` # @return [String] attr_accessor :code # [Output Only] Metadata about this warning in key: value format. For example: " # data": [ ` "key": "scope", "value": "zones/us-east1-d" ` # Corresponds to the JSON property `data` # @return [Array] attr_accessor :data # [Output Only] A human-readable description of the warning code. # Corresponds to the JSON property `message` # @return [String] attr_accessor :message def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @code = args[:code] if args.key?(:code) @data = args[:data] if args.key?(:data) @message = args[:message] if args.key?(:message) end # class Datum include Google::Apis::Core::Hashable # [Output Only] A key that provides more detail on the warning being returned. # For example, for warnings where there are no results in a list request for a # particular zone, this key might be scope and the key value might be the zone # name. Other examples might be a key indicating a deprecated resource and a # suggested replacement, or a warning about invalid network settings (for # example, if an instance attempts to perform IP forwarding but is not enabled # for IP forwarding). # Corresponds to the JSON property `key` # @return [String] attr_accessor :key # [Output Only] A warning data value corresponding to the key. # 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 end end # class InstanceManagedByIgmError include Google::Apis::Core::Hashable # [Output Only] Contents of the error. # Corresponds to the JSON property `error` # @return [Google::Apis::ComputeAlpha::InstanceManagedByIgmErrorManagedInstanceError] attr_accessor :error # [Output Only] Details of the instance action that triggered this error. May be # null, if the error was not caused by an action on an instance. This field is # optional. # Corresponds to the JSON property `instanceActionDetails` # @return [Google::Apis::ComputeAlpha::InstanceManagedByIgmErrorInstanceActionDetails] attr_accessor :instance_action_details # [Output Only] The time that this error occurred. This value is in RFC3339 text # format. # Corresponds to the JSON property `timestamp` # @return [String] attr_accessor :timestamp def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @error = args[:error] if args.key?(:error) @instance_action_details = args[:instance_action_details] if args.key?(:instance_action_details) @timestamp = args[:timestamp] if args.key?(:timestamp) end end # class InstanceManagedByIgmErrorInstanceActionDetails include Google::Apis::Core::Hashable # [Output Only] Action that managed instance group was executing on the instance # when the error occurred. Possible values: # Corresponds to the JSON property `action` # @return [String] attr_accessor :action # [Output Only] The URL of the instance. The URL can be set even if the instance # has not yet been created. # Corresponds to the JSON property `instance` # @return [String] attr_accessor :instance # [Output Only] Version this instance was created from, or was being created # from, but the creation failed. Corresponds to one of the versions that were # set on the Instance Group Manager resource at the time this instance was being # created. # Corresponds to the JSON property `version` # @return [Google::Apis::ComputeAlpha::ManagedInstanceVersion] attr_accessor :version def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @action = args[:action] if args.key?(:action) @instance = args[:instance] if args.key?(:instance) @version = args[:version] if args.key?(:version) end end # class InstanceManagedByIgmErrorManagedInstanceError include Google::Apis::Core::Hashable # [Output Only] Error code. # Corresponds to the JSON property `code` # @return [String] attr_accessor :code # [Output Only] Error message. # Corresponds to the JSON property `message` # @return [String] attr_accessor :message def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @code = args[:code] if args.key?(:code) @message = args[:message] if args.key?(:message) end end # class InstanceMoveRequest include Google::Apis::Core::Hashable # The URL of the destination zone to move the instance. This can be a full or # partial URL. For example, the following are all valid URLs to a zone: - https:/ # /www.googleapis.com/compute/v1/projects/project/zones/zone - projects/project/ # zones/zone - zones/zone # Corresponds to the JSON property `destinationZone` # @return [String] attr_accessor :destination_zone # The URL of the target instance to move. This can be a full or partial URL. For # example, the following are all valid URLs to an instance: - https://www. # googleapis.com/compute/v1/projects/project/zones/zone /instances/instance - # projects/project/zones/zone/instances/instance - zones/zone/instances/instance # Corresponds to the JSON property `targetInstance` # @return [String] attr_accessor :target_instance def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @destination_zone = args[:destination_zone] if args.key?(:destination_zone) @target_instance = args[:target_instance] if args.key?(:target_instance) end end # Additional instance params. class InstanceParams include Google::Apis::Core::Hashable # Resource manager tags to be bound to the instance. Tag keys and values have # the same definition as resource manager tags. Keys must be in the format ` # tagKeys/`tag_key_id``, and values are in the format `tagValues/456`. The field # is ignored (both PUT & PATCH) when empty. # Corresponds to the JSON property `resourceManagerTags` # @return [Hash] attr_accessor :resource_manager_tags def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @resource_manager_tags = args[:resource_manager_tags] if args.key?(:resource_manager_tags) end end # class InstanceProperties include Google::Apis::Core::Hashable # Specifies options for controlling advanced machine features. Options that # would traditionally be configured in a BIOS belong here. Features that require # operating system support may have corresponding entries in the GuestOsFeatures # of an Image (e.g., whether or not the OS in the Image supports nested # virtualization being enabled or disabled). # Corresponds to the JSON property `advancedMachineFeatures` # @return [Google::Apis::ComputeAlpha::AdvancedMachineFeatures] attr_accessor :advanced_machine_features # Enables instances created based on these properties to send packets with # source IP addresses other than their own and receive packets with destination # IP addresses other than their own. If these instances will be used as an IP # gateway or it will be set as the next-hop in a Route resource, specify true. # If unsure, leave this set to false. See the Enable IP forwarding documentation # for more information. # Corresponds to the JSON property `canIpForward` # @return [Boolean] attr_accessor :can_ip_forward alias_method :can_ip_forward?, :can_ip_forward # A set of Confidential Instance options. # Corresponds to the JSON property `confidentialInstanceConfig` # @return [Google::Apis::ComputeAlpha::ConfidentialInstanceConfig] attr_accessor :confidential_instance_config # An optional text description for the instances that are created from these # properties. # Corresponds to the JSON property `description` # @return [String] attr_accessor :description # An array of disks that are associated with the instances that are created from # these properties. # Corresponds to the JSON property `disks` # @return [Array] attr_accessor :disks # A set of Display Device options # Corresponds to the JSON property `displayDevice` # @return [Google::Apis::ComputeAlpha::DisplayDevice] attr_accessor :display_device # A list of guest accelerator cards' type and count to use for instances created # from these properties. # Corresponds to the JSON property `guestAccelerators` # @return [Array] attr_accessor :guest_accelerators # KeyRevocationActionType of the instance. Supported options are "STOP" and " # NONE". The default value is "NONE" if it is not specified. # Corresponds to the JSON property `keyRevocationActionType` # @return [String] attr_accessor :key_revocation_action_type # Labels to apply to instances that are created from these properties. # Corresponds to the JSON property `labels` # @return [Hash] attr_accessor :labels # The machine type to use for instances that are created from these properties. # Corresponds to the JSON property `machineType` # @return [String] attr_accessor :machine_type # A metadata key/value entry. # Corresponds to the JSON property `metadata` # @return [Google::Apis::ComputeAlpha::Metadata] attr_accessor :metadata # Minimum cpu/platform to be used by instances. The instance may be scheduled on # the specified or newer cpu/platform. Applicable values are the friendly names # of CPU platforms, such as minCpuPlatform: "Intel Haswell" or minCpuPlatform: " # Intel Sandy Bridge". For more information, read Specifying a Minimum CPU # Platform. # Corresponds to the JSON property `minCpuPlatform` # @return [String] attr_accessor :min_cpu_platform # An array of network access configurations for this interface. # Corresponds to the JSON property `networkInterfaces` # @return [Array] attr_accessor :network_interfaces # Note that for MachineImage, this is not supported yet. # Corresponds to the JSON property `networkPerformanceConfig` # @return [Google::Apis::ComputeAlpha::NetworkPerformanceConfig] attr_accessor :network_performance_config # PostKeyRevocationActionType of the instance. # Corresponds to the JSON property `postKeyRevocationActionType` # @return [String] attr_accessor :post_key_revocation_action_type # The private IPv6 google access type for VMs. If not specified, use # INHERIT_FROM_SUBNETWORK as default. Note that for MachineImage, this is not # supported yet. # Corresponds to the JSON property `privateIpv6GoogleAccess` # @return [String] attr_accessor :private_ipv6_google_access # Specifies the reservations that this instance can consume from. # Corresponds to the JSON property `reservationAffinity` # @return [Google::Apis::ComputeAlpha::ReservationAffinity] attr_accessor :reservation_affinity # Resource manager tags to be bound to the instance. Tag keys and values have # the same definition as resource manager tags. Keys must be in the format ` # tagKeys/`tag_key_id``, and values are in the format `tagValues/456`. The field # is ignored (both PUT & PATCH) when empty. # Corresponds to the JSON property `resourceManagerTags` # @return [Hash] attr_accessor :resource_manager_tags # Resource policies (names, not URLs) applied to instances created from these # properties. Note that for MachineImage, this is not supported yet. # Corresponds to the JSON property `resourcePolicies` # @return [Array] attr_accessor :resource_policies # Sets the scheduling options for an Instance. NextID: 21 # Corresponds to the JSON property `scheduling` # @return [Google::Apis::ComputeAlpha::Scheduling] attr_accessor :scheduling # [Input Only] Secure tags to apply to this instance. Maximum number of secure # tags allowed is 50. Note that for MachineImage, this is not supported yet. # Corresponds to the JSON property `secureTags` # @return [Array] attr_accessor :secure_tags # A list of service accounts with specified scopes. Access tokens for these # service accounts are available to the instances that are created from these # properties. Use metadata queries to obtain the access tokens for these # instances. # Corresponds to the JSON property `serviceAccounts` # @return [Array] attr_accessor :service_accounts # A set of Shielded Instance options. # Corresponds to the JSON property `shieldedInstanceConfig` # @return [Google::Apis::ComputeAlpha::ShieldedInstanceConfig] attr_accessor :shielded_instance_config # A set of Shielded VM options. # Corresponds to the JSON property `shieldedVmConfig` # @return [Google::Apis::ComputeAlpha::ShieldedVmConfig] attr_accessor :shielded_vm_config # A set of instance tags. # Corresponds to the JSON property `tags` # @return [Google::Apis::ComputeAlpha::Tags] attr_accessor :tags def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @advanced_machine_features = args[:advanced_machine_features] if args.key?(:advanced_machine_features) @can_ip_forward = args[:can_ip_forward] if args.key?(:can_ip_forward) @confidential_instance_config = args[:confidential_instance_config] if args.key?(:confidential_instance_config) @description = args[:description] if args.key?(:description) @disks = args[:disks] if args.key?(:disks) @display_device = args[:display_device] if args.key?(:display_device) @guest_accelerators = args[:guest_accelerators] if args.key?(:guest_accelerators) @key_revocation_action_type = args[:key_revocation_action_type] if args.key?(:key_revocation_action_type) @labels = args[:labels] if args.key?(:labels) @machine_type = args[:machine_type] if args.key?(:machine_type) @metadata = args[:metadata] if args.key?(:metadata) @min_cpu_platform = args[:min_cpu_platform] if args.key?(:min_cpu_platform) @network_interfaces = args[:network_interfaces] if args.key?(:network_interfaces) @network_performance_config = args[:network_performance_config] if args.key?(:network_performance_config) @post_key_revocation_action_type = args[:post_key_revocation_action_type] if args.key?(:post_key_revocation_action_type) @private_ipv6_google_access = args[:private_ipv6_google_access] if args.key?(:private_ipv6_google_access) @reservation_affinity = args[:reservation_affinity] if args.key?(:reservation_affinity) @resource_manager_tags = args[:resource_manager_tags] if args.key?(:resource_manager_tags) @resource_policies = args[:resource_policies] if args.key?(:resource_policies) @scheduling = args[:scheduling] if args.key?(:scheduling) @secure_tags = args[:secure_tags] if args.key?(:secure_tags) @service_accounts = args[:service_accounts] if args.key?(:service_accounts) @shielded_instance_config = args[:shielded_instance_config] if args.key?(:shielded_instance_config) @shielded_vm_config = args[:shielded_vm_config] if args.key?(:shielded_vm_config) @tags = args[:tags] if args.key?(:tags) end end # Represents the change that you want to make to the instance properties. class InstancePropertiesPatch include Google::Apis::Core::Hashable # The label key-value pairs that you want to patch onto the instance. # Corresponds to the JSON property `labels` # @return [Hash] attr_accessor :labels # The metadata key-value pairs that you want to patch onto the instance. For # more information, see Project and instance metadata. # Corresponds to the JSON property `metadata` # @return [Hash] attr_accessor :metadata def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @labels = args[:labels] if args.key?(:labels) @metadata = args[:metadata] if args.key?(:metadata) end end # class InstanceReference include Google::Apis::Core::Hashable # The URL for a specific instance. @required compute.instancegroups.addInstances/ # removeInstances # Corresponds to the JSON property `instance` # @return [String] attr_accessor :instance def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @instance = args[:instance] if args.key?(:instance) end end # Represents an Instance Template resource. You can use instance templates to # create VM instances and managed instance groups. For more information, read # Instance Templates. class InstanceTemplate include Google::Apis::Core::Hashable # [Output Only] The creation timestamp for this instance template in RFC3339 # text format. # Corresponds to the JSON property `creationTimestamp` # @return [String] attr_accessor :creation_timestamp # An optional description of this resource. Provide this property when you # create the resource. # Corresponds to the JSON property `description` # @return [String] attr_accessor :description # [Output Only] A unique identifier for this instance template. The server # defines this identifier. # Corresponds to the JSON property `id` # @return [Fixnum] attr_accessor :id # [Output Only] The resource type, which is always compute#instanceTemplate for # instance templates. # Corresponds to the JSON property `kind` # @return [String] attr_accessor :kind # Name of the resource; provided by the client when the resource is created. The # name must be 1-63 characters long, and comply with RFC1035. Specifically, the # name must be 1-63 characters long and match the regular expression `[a-z]([-a- # z0-9]*[a-z0-9])?` which means the first character must be a lowercase letter, # and all following characters must be a dash, lowercase letter, or digit, # except the last character, which cannot be a dash. # Corresponds to the JSON property `name` # @return [String] attr_accessor :name # The instance properties for this instance template. # Corresponds to the JSON property `properties` # @return [Google::Apis::ComputeAlpha::InstanceProperties] attr_accessor :properties # [Output Only] The URL for this instance template. The server defines this URL. # Corresponds to the JSON property `selfLink` # @return [String] attr_accessor :self_link # [Output Only] Server-defined URL for this resource with the resource id. # Corresponds to the JSON property `selfLinkWithId` # @return [String] attr_accessor :self_link_with_id # The source instance used to create the template. You can provide this as a # partial or full URL to the resource. For example, the following are valid # values: - https://www.googleapis.com/compute/v1/projects/project/zones/zone / # instances/instance - projects/project/zones/zone/instances/instance # Corresponds to the JSON property `sourceInstance` # @return [String] attr_accessor :source_instance # A specification of the parameters to use when creating the instance template # from a source instance. # Corresponds to the JSON property `sourceInstanceParams` # @return [Google::Apis::ComputeAlpha::SourceInstanceParams] attr_accessor :source_instance_params def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @creation_timestamp = args[:creation_timestamp] if args.key?(:creation_timestamp) @description = args[:description] if args.key?(:description) @id = args[:id] if args.key?(:id) @kind = args[:kind] if args.key?(:kind) @name = args[:name] if args.key?(:name) @properties = args[:properties] if args.key?(:properties) @self_link = args[:self_link] if args.key?(:self_link) @self_link_with_id = args[:self_link_with_id] if args.key?(:self_link_with_id) @source_instance = args[:source_instance] if args.key?(:source_instance) @source_instance_params = args[:source_instance_params] if args.key?(:source_instance_params) end end # A list of instance templates. class InstanceTemplateList include Google::Apis::Core::Hashable # [Output Only] Unique identifier for the resource; defined by the server. # Corresponds to the JSON property `id` # @return [String] attr_accessor :id # A list of InstanceTemplate resources. # Corresponds to the JSON property `items` # @return [Array] attr_accessor :items # [Output Only] The resource type, which is always compute# # instanceTemplatesListResponse for instance template lists. # Corresponds to the JSON property `kind` # @return [String] attr_accessor :kind # [Output Only] This token allows you to get the next page of results for list # requests. If the number of results is larger than maxResults, use the # nextPageToken as a value for the query parameter pageToken in the next list # request. Subsequent list requests will have their own nextPageToken to # continue paging through the results. # Corresponds to the JSON property `nextPageToken` # @return [String] attr_accessor :next_page_token # [Output Only] Server-defined URL for this resource. # Corresponds to the JSON property `selfLink` # @return [String] attr_accessor :self_link # [Output Only] Informational warning message. # Corresponds to the JSON property `warning` # @return [Google::Apis::ComputeAlpha::InstanceTemplateList::Warning] attr_accessor :warning def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @id = args[:id] if args.key?(:id) @items = args[:items] if args.key?(:items) @kind = args[:kind] if args.key?(:kind) @next_page_token = args[:next_page_token] if args.key?(:next_page_token) @self_link = args[:self_link] if args.key?(:self_link) @warning = args[:warning] if args.key?(:warning) end # [Output Only] Informational warning message. class Warning include Google::Apis::Core::Hashable # [Output Only] A warning code, if applicable. For example, Compute Engine # returns NO_RESULTS_ON_PAGE if there are no results in the response. # Corresponds to the JSON property `code` # @return [String] attr_accessor :code # [Output Only] Metadata about this warning in key: value format. For example: " # data": [ ` "key": "scope", "value": "zones/us-east1-d" ` # Corresponds to the JSON property `data` # @return [Array] attr_accessor :data # [Output Only] A human-readable description of the warning code. # Corresponds to the JSON property `message` # @return [String] attr_accessor :message def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @code = args[:code] if args.key?(:code) @data = args[:data] if args.key?(:data) @message = args[:message] if args.key?(:message) end # class Datum include Google::Apis::Core::Hashable # [Output Only] A key that provides more detail on the warning being returned. # For example, for warnings where there are no results in a list request for a # particular zone, this key might be scope and the key value might be the zone # name. Other examples might be a key indicating a deprecated resource and a # suggested replacement, or a warning about invalid network settings (for # example, if an instance attempts to perform IP forwarding but is not enabled # for IP forwarding). # Corresponds to the JSON property `key` # @return [String] attr_accessor :key # [Output Only] A warning data value corresponding to the key. # 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 end end # class InstanceWithNamedPorts include Google::Apis::Core::Hashable # [Output Only] The URL of the instance. # Corresponds to the JSON property `instance` # @return [String] attr_accessor :instance # [Output Only] The named ports that belong to this instance group. # Corresponds to the JSON property `namedPorts` # @return [Array] attr_accessor :named_ports # [Output Only] The status of the instance. # 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) @instance = args[:instance] if args.key?(:instance) @named_ports = args[:named_ports] if args.key?(:named_ports) @status = args[:status] if args.key?(:status) end end # class InstancesAddResourcePoliciesRequest include Google::Apis::Core::Hashable # Resource policies to be added to this instance. # Corresponds to the JSON property `resourcePolicies` # @return [Array] attr_accessor :resource_policies def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @resource_policies = args[:resource_policies] if args.key?(:resource_policies) end end # class InstancesGetEffectiveFirewallsResponse include Google::Apis::Core::Hashable # Effective firewalls from firewall policies. # Corresponds to the JSON property `firewallPolicys` # @return [Array] attr_accessor :firewall_policys # Effective firewalls on the instance. # Corresponds to the JSON property `firewalls` # @return [Array] attr_accessor :firewalls # Effective firewalls from organization policies. # Corresponds to the JSON property `organizationFirewalls` # @return [Array] attr_accessor :organization_firewalls def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @firewall_policys = args[:firewall_policys] if args.key?(:firewall_policys) @firewalls = args[:firewalls] if args.key?(:firewalls) @organization_firewalls = args[:organization_firewalls] if args.key?(:organization_firewalls) end end # class InstancesGetEffectiveFirewallsResponseEffectiveFirewallPolicy include Google::Apis::Core::Hashable # [Output Only] Deprecated, please use short name instead. The display name of # the firewall policy. # Corresponds to the JSON property `displayName` # @return [String] attr_accessor :display_name # [Output Only] The name of the firewall policy. # Corresponds to the JSON property `name` # @return [String] attr_accessor :name # The rules that apply to the network. # Corresponds to the JSON property `rules` # @return [Array] attr_accessor :rules # [Output Only] The short name of the firewall policy. # Corresponds to the JSON property `shortName` # @return [String] attr_accessor :short_name # [Output Only] The type of the firewall policy. Can be one of HIERARCHY, # NETWORK, NETWORK_REGIONAL. # 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) @display_name = args[:display_name] if args.key?(:display_name) @name = args[:name] if args.key?(:name) @rules = args[:rules] if args.key?(:rules) @short_name = args[:short_name] if args.key?(:short_name) @type = args[:type] if args.key?(:type) end end # A pruned SecurityPolicy containing ID and any applicable firewall rules. class InstancesGetEffectiveFirewallsResponseOrganizationFirewallPolicy include Google::Apis::Core::Hashable # The unique identifier for the security policy. This identifier is defined by # the server. # Corresponds to the JSON property `id` # @return [Fixnum] attr_accessor :id # The rules that apply to the network. # Corresponds to the JSON property `rules` # @return [Array] attr_accessor :rules def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @id = args[:id] if args.key?(:id) @rules = args[:rules] if args.key?(:rules) end end # class InstancesRemoveResourcePoliciesRequest include Google::Apis::Core::Hashable # Resource policies to be removed from this instance. # Corresponds to the JSON property `resourcePolicies` # @return [Array] attr_accessor :resource_policies def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @resource_policies = args[:resource_policies] if args.key?(:resource_policies) end end # class InstancesResumeRequest include Google::Apis::Core::Hashable # Array of disks associated with this instance that are protected with a # customer-supplied encryption key. In order to resume the instance, the disk # url and its corresponding key must be provided. If the disk is not protected # with a customer-supplied encryption key it should not be specified. # Corresponds to the JSON property `disks` # @return [Array] attr_accessor :disks # Decrypts data associated with an instance that is protected with a customer- # supplied encryption key. If the instance you are starting is protected with a # customer-supplied encryption key, the correct key must be provided otherwise # the instance resume will not succeed. # Corresponds to the JSON property `instanceEncryptionKey` # @return [Google::Apis::ComputeAlpha::CustomerEncryptionKey] attr_accessor :instance_encryption_key def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @disks = args[:disks] if args.key?(:disks) @instance_encryption_key = args[:instance_encryption_key] if args.key?(:instance_encryption_key) end end # class InstancesScopedList include Google::Apis::Core::Hashable # [Output Only] A list of instances contained in this scope. # Corresponds to the JSON property `instances` # @return [Array] attr_accessor :instances # [Output Only] Informational warning which replaces the list of instances when # the list is empty. # Corresponds to the JSON property `warning` # @return [Google::Apis::ComputeAlpha::InstancesScopedList::Warning] attr_accessor :warning def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @instances = args[:instances] if args.key?(:instances) @warning = args[:warning] if args.key?(:warning) end # [Output Only] Informational warning which replaces the list of instances when # the list is empty. class Warning include Google::Apis::Core::Hashable # [Output Only] A warning code, if applicable. For example, Compute Engine # returns NO_RESULTS_ON_PAGE if there are no results in the response. # Corresponds to the JSON property `code` # @return [String] attr_accessor :code # [Output Only] Metadata about this warning in key: value format. For example: " # data": [ ` "key": "scope", "value": "zones/us-east1-d" ` # Corresponds to the JSON property `data` # @return [Array] attr_accessor :data # [Output Only] A human-readable description of the warning code. # Corresponds to the JSON property `message` # @return [String] attr_accessor :message def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @code = args[:code] if args.key?(:code) @data = args[:data] if args.key?(:data) @message = args[:message] if args.key?(:message) end # class Datum include Google::Apis::Core::Hashable # [Output Only] A key that provides more detail on the warning being returned. # For example, for warnings where there are no results in a list request for a # particular zone, this key might be scope and the key value might be the zone # name. Other examples might be a key indicating a deprecated resource and a # suggested replacement, or a warning about invalid network settings (for # example, if an instance attempts to perform IP forwarding but is not enabled # for IP forwarding). # Corresponds to the JSON property `key` # @return [String] attr_accessor :key # [Output Only] A warning data value corresponding to the key. # 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 end end # class InstancesSetLabelsRequest include Google::Apis::Core::Hashable # Fingerprint of the previous set of labels for this resource, used to prevent # conflicts. Provide the latest fingerprint value when making a request to add # or change labels. # Corresponds to the JSON property `labelFingerprint` # NOTE: Values are automatically base64 encoded/decoded in the client library. # @return [String] attr_accessor :label_fingerprint # # Corresponds to the JSON property `labels` # @return [Hash] attr_accessor :labels def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @label_fingerprint = args[:label_fingerprint] if args.key?(:label_fingerprint) @labels = args[:labels] if args.key?(:labels) end end # class InstancesSetMachineResourcesRequest include Google::Apis::Core::Hashable # A list of the type and count of accelerator cards attached to the instance. # Corresponds to the JSON property `guestAccelerators` # @return [Array] attr_accessor :guest_accelerators def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @guest_accelerators = args[:guest_accelerators] if args.key?(:guest_accelerators) end end # class InstancesSetMachineTypeRequest include Google::Apis::Core::Hashable # Full or partial URL of the machine type resource. See Machine Types for a full # list of machine types. For example: zones/us-central1-f/machineTypes/n1- # standard-1 # Corresponds to the JSON property `machineType` # @return [String] attr_accessor :machine_type def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @machine_type = args[:machine_type] if args.key?(:machine_type) end end # class InstancesSetMinCpuPlatformRequest include Google::Apis::Core::Hashable # Minimum cpu/platform this instance should be started at. # Corresponds to the JSON property `minCpuPlatform` # @return [String] attr_accessor :min_cpu_platform def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @min_cpu_platform = args[:min_cpu_platform] if args.key?(:min_cpu_platform) end end # class InstancesSetNameRequest include Google::Apis::Core::Hashable # The current name of this resource, used to prevent conflicts. Provide the # latest name when making a request to change name. # Corresponds to the JSON property `currentName` # @return [String] attr_accessor :current_name # The name to be applied to the instance. Needs to be RFC 1035 compliant. # 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) @current_name = args[:current_name] if args.key?(:current_name) @name = args[:name] if args.key?(:name) end end # class InstancesSetServiceAccountRequest include Google::Apis::Core::Hashable # Email address of the service account. # Corresponds to the JSON property `email` # @return [String] attr_accessor :email # The list of scopes to be made available for this 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 # class InstancesStartWithEncryptionKeyRequest include Google::Apis::Core::Hashable # Array of disks associated with this instance that are protected with a # customer-supplied encryption key. In order to start the instance, the disk url # and its corresponding key must be provided. If the disk is not protected with # a customer-supplied encryption key it should not be specified. # Corresponds to the JSON property `disks` # @return [Array] attr_accessor :disks # Decrypts data associated with an instance that is protected with a customer- # supplied encryption key. If the instance you are starting is protected with a # customer-supplied encryption key, the correct key must be provided otherwise # the instance start will not succeed. # Corresponds to the JSON property `instanceEncryptionKey` # @return [Google::Apis::ComputeAlpha::CustomerEncryptionKey] attr_accessor :instance_encryption_key def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @disks = args[:disks] if args.key?(:disks) @instance_encryption_key = args[:instance_encryption_key] if args.key?(:instance_encryption_key) end end # Represents a InstantSnapshot resource. You can use instant snapshots to create # disk rollback points quickly.. class InstantSnapshot include Google::Apis::Core::Hashable # [Output Only] The architecture of the instant snapshot. Valid values are ARM64 # or X86_64. # Corresponds to the JSON property `architecture` # @return [String] attr_accessor :architecture # [Output Only] Creation timestamp in RFC3339 text format. # Corresponds to the JSON property `creationTimestamp` # @return [String] attr_accessor :creation_timestamp # An optional description of this resource. Provide this property when you # create the resource. # Corresponds to the JSON property `description` # @return [String] attr_accessor :description # [Output Only] Size of the source disk, specified in GB. # Corresponds to the JSON property `diskSizeGb` # @return [Fixnum] attr_accessor :disk_size_gb # Whether to attempt an application consistent instant snapshot by informing the # OS to prepare for the snapshot process. # Corresponds to the JSON property `guestFlush` # @return [Boolean] attr_accessor :guest_flush alias_method :guest_flush?, :guest_flush # [Output Only] The unique identifier for the resource. This identifier is # defined by the server. # Corresponds to the JSON property `id` # @return [Fixnum] attr_accessor :id # [Output Only] Type of the resource. Always compute#instantSnapshot for # InstantSnapshot resources. # Corresponds to the JSON property `kind` # @return [String] attr_accessor :kind # A fingerprint for the labels being applied to this InstantSnapshot, which is # essentially a hash of the labels set used for optimistic locking. The # fingerprint is initially generated by Compute Engine and changes after every # request to modify or update labels. You must always provide an up-to-date # fingerprint hash in order to update or change labels, otherwise the request # will fail with error 412 conditionNotMet. To see the latest fingerprint, make # a get() request to retrieve a InstantSnapshot. # Corresponds to the JSON property `labelFingerprint` # NOTE: Values are automatically base64 encoded/decoded in the client library. # @return [String] attr_accessor :label_fingerprint # Labels to apply to this InstantSnapshot. These can be later modified by the # setLabels method. Label values may be empty. # Corresponds to the JSON property `labels` # @return [Hash] attr_accessor :labels # Name of the resource; provided by the client when the resource is created. The # name must be 1-63 characters long, and comply with RFC1035. Specifically, the # name must be 1-63 characters long and match the regular expression `[a-z]([-a- # z0-9]*[a-z0-9])?` which means the first character must be a lowercase letter, # and all following characters must be a dash, lowercase letter, or digit, # except the last character, which cannot be a dash. # Corresponds to the JSON property `name` # @return [String] attr_accessor :name # [Output Only] URL of the region where the instant snapshot resides. You must # specify this field as part of the HTTP request URL. It is not settable as a # field in the request body. # Corresponds to the JSON property `region` # @return [String] attr_accessor :region # [Output Only] Status information for the instant snapshot resource. # Corresponds to the JSON property `resourceStatus` # @return [Google::Apis::ComputeAlpha::InstantSnapshotResourceStatus] attr_accessor :resource_status # [Output Only] Reserved for future use. # Corresponds to the JSON property `satisfiesPzs` # @return [Boolean] attr_accessor :satisfies_pzs alias_method :satisfies_pzs?, :satisfies_pzs # [Output Only] Server-defined URL for the resource. # Corresponds to the JSON property `selfLink` # @return [String] attr_accessor :self_link # [Output Only] Server-defined URL for this resource's resource id. # Corresponds to the JSON property `selfLinkWithId` # @return [String] attr_accessor :self_link_with_id # URL of the source disk used to create this instant snapshot. Note that the # source disk must be in the same zone/region as the instant snapshot to be # created. This can be a full or valid partial URL. For example, the following # are valid values: - https://www.googleapis.com/compute/v1/projects/project/ # zones/zone /disks/disk - https://www.googleapis.com/compute/v1/projects/ # project/regions/region /disks/disk - projects/project/zones/zone/disks/disk - # projects/project/regions/region/disks/disk - zones/zone/disks/disk - regions/ # region/disks/disk # Corresponds to the JSON property `sourceDisk` # @return [String] attr_accessor :source_disk # [Output Only] The ID value of the disk used to create this InstantSnapshot. # This value may be used to determine whether the InstantSnapshot was taken from # the current or a previous instance of a given disk name. # Corresponds to the JSON property `sourceDiskId` # @return [String] attr_accessor :source_disk_id # [Output Only] The status of the instantSnapshot. This can be CREATING, # DELETING, FAILED, or READY. # Corresponds to the JSON property `status` # @return [String] attr_accessor :status # [Output Only] URL of the zone where the instant snapshot resides. You must # specify this field as part of the HTTP request URL. It is not settable as a # field in the request body. # 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) @architecture = args[:architecture] if args.key?(:architecture) @creation_timestamp = args[:creation_timestamp] if args.key?(:creation_timestamp) @description = args[:description] if args.key?(:description) @disk_size_gb = args[:disk_size_gb] if args.key?(:disk_size_gb) @guest_flush = args[:guest_flush] if args.key?(:guest_flush) @id = args[:id] if args.key?(:id) @kind = args[:kind] if args.key?(:kind) @label_fingerprint = args[:label_fingerprint] if args.key?(:label_fingerprint) @labels = args[:labels] if args.key?(:labels) @name = args[:name] if args.key?(:name) @region = args[:region] if args.key?(:region) @resource_status = args[:resource_status] if args.key?(:resource_status) @satisfies_pzs = args[:satisfies_pzs] if args.key?(:satisfies_pzs) @self_link = args[:self_link] if args.key?(:self_link) @self_link_with_id = args[:self_link_with_id] if args.key?(:self_link_with_id) @source_disk = args[:source_disk] if args.key?(:source_disk) @source_disk_id = args[:source_disk_id] if args.key?(:source_disk_id) @status = args[:status] if args.key?(:status) @zone = args[:zone] if args.key?(:zone) end end # class InstantSnapshotAggregatedList include Google::Apis::Core::Hashable # [Output Only] Unique identifier for the resource; defined by the server. # Corresponds to the JSON property `id` # @return [String] attr_accessor :id # A list of InstantSnapshotsScopedList resources. # Corresponds to the JSON property `items` # @return [Hash] attr_accessor :items # [Output Only] Type of resource. Always compute#instantSnapshotAggregatedList # for aggregated lists of instantSnapshots. # Corresponds to the JSON property `kind` # @return [String] attr_accessor :kind # [Output Only] This token allows you to get the next page of results for list # requests. If the number of results is larger than maxResults, use the # nextPageToken as a value for the query parameter pageToken in the next list # request. Subsequent list requests will have their own nextPageToken to # continue paging through the results. # Corresponds to the JSON property `nextPageToken` # @return [String] attr_accessor :next_page_token # [Output Only] Server-defined URL for this resource. # Corresponds to the JSON property `selfLink` # @return [String] attr_accessor :self_link # [Output Only] Unreachable resources. # Corresponds to the JSON property `unreachables` # @return [Array] attr_accessor :unreachables # [Output Only] Informational warning message. # Corresponds to the JSON property `warning` # @return [Google::Apis::ComputeAlpha::InstantSnapshotAggregatedList::Warning] attr_accessor :warning def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @id = args[:id] if args.key?(:id) @items = args[:items] if args.key?(:items) @kind = args[:kind] if args.key?(:kind) @next_page_token = args[:next_page_token] if args.key?(:next_page_token) @self_link = args[:self_link] if args.key?(:self_link) @unreachables = args[:unreachables] if args.key?(:unreachables) @warning = args[:warning] if args.key?(:warning) end # [Output Only] Informational warning message. class Warning include Google::Apis::Core::Hashable # [Output Only] A warning code, if applicable. For example, Compute Engine # returns NO_RESULTS_ON_PAGE if there are no results in the response. # Corresponds to the JSON property `code` # @return [String] attr_accessor :code # [Output Only] Metadata about this warning in key: value format. For example: " # data": [ ` "key": "scope", "value": "zones/us-east1-d" ` # Corresponds to the JSON property `data` # @return [Array] attr_accessor :data # [Output Only] A human-readable description of the warning code. # Corresponds to the JSON property `message` # @return [String] attr_accessor :message def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @code = args[:code] if args.key?(:code) @data = args[:data] if args.key?(:data) @message = args[:message] if args.key?(:message) end # class Datum include Google::Apis::Core::Hashable # [Output Only] A key that provides more detail on the warning being returned. # For example, for warnings where there are no results in a list request for a # particular zone, this key might be scope and the key value might be the zone # name. Other examples might be a key indicating a deprecated resource and a # suggested replacement, or a warning about invalid network settings (for # example, if an instance attempts to perform IP forwarding but is not enabled # for IP forwarding). # Corresponds to the JSON property `key` # @return [String] attr_accessor :key # [Output Only] A warning data value corresponding to the key. # 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 end end # class InstantSnapshotExportParams include Google::Apis::Core::Hashable # An optional base instant snapshot that this resource is compared against. If # not specified, all blocks of this resource are exported. The base instant # snapshot and this resource must be created from the same disk. The base # instant snapshot must be created earlier in time than this resource. # Corresponds to the JSON property `baseInstantSnapshot` # @return [String] attr_accessor :base_instant_snapshot # The name of an existing bucket in Cloud Storage where the changed blocks will # be stored. The Google Service Account must have read and write access to this # bucket. The bucket has to be in the same region as this resource. # Corresponds to the JSON property `bucketName` # @return [String] attr_accessor :bucket_name # Encryption key used to encrypt the instant snapshot. # Corresponds to the JSON property `encryptionKey` # @return [Google::Apis::ComputeAlpha::CustomerEncryptionKey] attr_accessor :encryption_key # Name of the output Bigstore object storing the changed blocks. Object name # must be less than 1024 bytes in length. # Corresponds to the JSON property `objectName` # @return [String] attr_accessor :object_name # The format of the output file. # Corresponds to the JSON property `outputType` # @return [String] attr_accessor :output_type def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @base_instant_snapshot = args[:base_instant_snapshot] if args.key?(:base_instant_snapshot) @bucket_name = args[:bucket_name] if args.key?(:bucket_name) @encryption_key = args[:encryption_key] if args.key?(:encryption_key) @object_name = args[:object_name] if args.key?(:object_name) @output_type = args[:output_type] if args.key?(:output_type) end end # Contains a list of InstantSnapshot resources. class InstantSnapshotList include Google::Apis::Core::Hashable # [Output Only] Unique identifier for the resource; defined by the server. # Corresponds to the JSON property `id` # @return [String] attr_accessor :id # A list of InstantSnapshot resources. # Corresponds to the JSON property `items` # @return [Array] attr_accessor :items # Type of resource. # Corresponds to the JSON property `kind` # @return [String] attr_accessor :kind # [Output Only] This token allows you to get the next page of results for list # requests. If the number of results is larger than maxResults, use the # nextPageToken as a value for the query parameter pageToken in the next list # request. Subsequent list requests will have their own nextPageToken to # continue paging through the results. # Corresponds to the JSON property `nextPageToken` # @return [String] attr_accessor :next_page_token # [Output Only] Server-defined URL for this resource. # Corresponds to the JSON property `selfLink` # @return [String] attr_accessor :self_link # [Output Only] Informational warning message. # Corresponds to the JSON property `warning` # @return [Google::Apis::ComputeAlpha::InstantSnapshotList::Warning] attr_accessor :warning def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @id = args[:id] if args.key?(:id) @items = args[:items] if args.key?(:items) @kind = args[:kind] if args.key?(:kind) @next_page_token = args[:next_page_token] if args.key?(:next_page_token) @self_link = args[:self_link] if args.key?(:self_link) @warning = args[:warning] if args.key?(:warning) end # [Output Only] Informational warning message. class Warning include Google::Apis::Core::Hashable # [Output Only] A warning code, if applicable. For example, Compute Engine # returns NO_RESULTS_ON_PAGE if there are no results in the response. # Corresponds to the JSON property `code` # @return [String] attr_accessor :code # [Output Only] Metadata about this warning in key: value format. For example: " # data": [ ` "key": "scope", "value": "zones/us-east1-d" ` # Corresponds to the JSON property `data` # @return [Array] attr_accessor :data # [Output Only] A human-readable description of the warning code. # Corresponds to the JSON property `message` # @return [String] attr_accessor :message def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @code = args[:code] if args.key?(:code) @data = args[:data] if args.key?(:data) @message = args[:message] if args.key?(:message) end # class Datum include Google::Apis::Core::Hashable # [Output Only] A key that provides more detail on the warning being returned. # For example, for warnings where there are no results in a list request for a # particular zone, this key might be scope and the key value might be the zone # name. Other examples might be a key indicating a deprecated resource and a # suggested replacement, or a warning about invalid network settings (for # example, if an instance attempts to perform IP forwarding but is not enabled # for IP forwarding). # Corresponds to the JSON property `key` # @return [String] attr_accessor :key # [Output Only] A warning data value corresponding to the key. # 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 end end # class InstantSnapshotResourceStatus include Google::Apis::Core::Hashable # [Output Only] The storage size of this instant snapshot. # Corresponds to the JSON property `storageSizeBytes` # @return [Fixnum] attr_accessor :storage_size_bytes def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @storage_size_bytes = args[:storage_size_bytes] if args.key?(:storage_size_bytes) end end # class InstantSnapshotsExportRequest include Google::Apis::Core::Hashable # Parameters to export the changed blocks. # Corresponds to the JSON property `exportParams` # @return [Google::Apis::ComputeAlpha::InstantSnapshotExportParams] attr_accessor :export_params def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @export_params = args[:export_params] if args.key?(:export_params) end end # class InstantSnapshotsScopedList include Google::Apis::Core::Hashable # [Output Only] A list of instantSnapshots contained in this scope. # Corresponds to the JSON property `instantSnapshots` # @return [Array] attr_accessor :instant_snapshots # [Output Only] Informational warning which replaces the list of # instantSnapshots when the list is empty. # Corresponds to the JSON property `warning` # @return [Google::Apis::ComputeAlpha::InstantSnapshotsScopedList::Warning] attr_accessor :warning def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @instant_snapshots = args[:instant_snapshots] if args.key?(:instant_snapshots) @warning = args[:warning] if args.key?(:warning) end # [Output Only] Informational warning which replaces the list of # instantSnapshots when the list is empty. class Warning include Google::Apis::Core::Hashable # [Output Only] A warning code, if applicable. For example, Compute Engine # returns NO_RESULTS_ON_PAGE if there are no results in the response. # Corresponds to the JSON property `code` # @return [String] attr_accessor :code # [Output Only] Metadata about this warning in key: value format. For example: " # data": [ ` "key": "scope", "value": "zones/us-east1-d" ` # Corresponds to the JSON property `data` # @return [Array] attr_accessor :data # [Output Only] A human-readable description of the warning code. # Corresponds to the JSON property `message` # @return [String] attr_accessor :message def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @code = args[:code] if args.key?(:code) @data = args[:data] if args.key?(:data) @message = args[:message] if args.key?(:message) end # class Datum include Google::Apis::Core::Hashable # [Output Only] A key that provides more detail on the warning being returned. # For example, for warnings where there are no results in a list request for a # particular zone, this key might be scope and the key value might be the zone # name. Other examples might be a key indicating a deprecated resource and a # suggested replacement, or a warning about invalid network settings (for # example, if an instance attempts to perform IP forwarding but is not enabled # for IP forwarding). # Corresponds to the JSON property `key` # @return [String] attr_accessor :key # [Output Only] A warning data value corresponding to the key. # 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 end end # HttpRouteRuleMatch criteria for field values that must stay within the # specified integer range. class Int64RangeMatch include Google::Apis::Core::Hashable # The end of the range (exclusive) in signed long integer format. # Corresponds to the JSON property `rangeEnd` # @return [Fixnum] attr_accessor :range_end # The start of the range (inclusive) in signed long integer format. # Corresponds to the JSON property `rangeStart` # @return [Fixnum] attr_accessor :range_start def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @range_end = args[:range_end] if args.key?(:range_end) @range_start = args[:range_start] if args.key?(:range_start) end end # Represents an Interconnect resource. An Interconnect resource is a dedicated # connection between the GCP network and your on-premises network. For more # information, read the Dedicated Interconnect Overview. class Interconnect include Google::Apis::Core::Hashable # Administrative status of the interconnect. When this is set to true, the # Interconnect is functional and can carry traffic. When set to false, no # packets can be carried over the interconnect and no BGP routes are exchanged # over it. By default, the status is set to true. # Corresponds to the JSON property `adminEnabled` # @return [Boolean] attr_accessor :admin_enabled alias_method :admin_enabled?, :admin_enabled # [Output Only] A list of CircuitInfo objects, that describe the individual # circuits in this LAG. # Corresponds to the JSON property `circuitInfos` # @return [Array] attr_accessor :circuit_infos # [Output Only] Creation timestamp in RFC3339 text format. # Corresponds to the JSON property `creationTimestamp` # @return [String] attr_accessor :creation_timestamp # Customer name, to put in the Letter of Authorization as the party authorized # to request a crossconnect. # Corresponds to the JSON property `customerName` # @return [String] attr_accessor :customer_name # An optional description of this resource. Provide this property when you # create the resource. # Corresponds to the JSON property `description` # @return [String] attr_accessor :description # [Output Only] A list of outages expected for this Interconnect. # Corresponds to the JSON property `expectedOutages` # @return [Array] attr_accessor :expected_outages # [Output Only] IP address configured on the Google side of the Interconnect # link. This can be used only for ping tests. # Corresponds to the JSON property `googleIpAddress` # @return [String] attr_accessor :google_ip_address # [Output Only] Google reference ID to be used when raising support tickets with # Google or otherwise to debug backend connectivity issues. # Corresponds to the JSON property `googleReferenceId` # @return [String] attr_accessor :google_reference_id # [Output Only] The unique identifier for the resource. This identifier is # defined by the server. # Corresponds to the JSON property `id` # @return [Fixnum] attr_accessor :id # [Output Only] A list of the URLs of all InterconnectAttachments configured to # use this Interconnect. # Corresponds to the JSON property `interconnectAttachments` # @return [Array] attr_accessor :interconnect_attachments # Type of interconnect, which can take one of the following values: - PARTNER: A # partner-managed interconnection shared between customers though a partner. - # DEDICATED: A dedicated physical interconnection with the customer. Note that a # value IT_PRIVATE has been deprecated in favor of DEDICATED. # Corresponds to the JSON property `interconnectType` # @return [String] attr_accessor :interconnect_type # [Output Only] Type of the resource. Always compute#interconnect for # interconnects. # Corresponds to the JSON property `kind` # @return [String] attr_accessor :kind # A fingerprint for the labels being applied to this Interconnect, which is # essentially a hash of the labels set used for optimistic locking. The # fingerprint is initially generated by Compute Engine and changes after every # request to modify or update labels. You must always provide an up-to-date # fingerprint hash in order to update or change labels, otherwise the request # will fail with error 412 conditionNotMet. To see the latest fingerprint, make # a get() request to retrieve an Interconnect. # Corresponds to the JSON property `labelFingerprint` # NOTE: Values are automatically base64 encoded/decoded in the client library. # @return [String] attr_accessor :label_fingerprint # Labels for this resource. These can only be added or modified by the setLabels # method. Each label key/value pair must comply with RFC1035. Label values may # be empty. # Corresponds to the JSON property `labels` # @return [Hash] attr_accessor :labels # Type of link requested, which can take one of the following values: - # LINK_TYPE_ETHERNET_10G_LR: A 10G Ethernet with LR optics - # LINK_TYPE_ETHERNET_100G_LR: A 100G Ethernet with LR optics. Note that this # field indicates the speed of each of the links in the bundle, not the speed of # the entire bundle. # Corresponds to the JSON property `linkType` # @return [String] attr_accessor :link_type # URL of the InterconnectLocation object that represents where this connection # is to be provisioned. # Corresponds to the JSON property `location` # @return [String] attr_accessor :location # Configuration information for enabling Media Access Control security (Macsec) # on this Interconnect between Google and your on-premises router. # Corresponds to the JSON property `macsec` # @return [Google::Apis::ComputeAlpha::InterconnectMacsec] attr_accessor :macsec # Enable or disable MACsec on this Interconnect. MACsec enablement will fail if # the macsec object is not specified. # Corresponds to the JSON property `macsecEnabled` # @return [Boolean] attr_accessor :macsec_enabled alias_method :macsec_enabled?, :macsec_enabled # Name of the resource. Provided by the client when the resource is created. The # name must be 1-63 characters long, and comply with RFC1035. Specifically, the # name must be 1-63 characters long and match the regular expression `[a-z]([-a- # z0-9]*[a-z0-9])?` which means the first character must be a lowercase letter, # and all following characters must be a dash, lowercase letter, or digit, # except the last character, which cannot be a dash. # Corresponds to the JSON property `name` # @return [String] attr_accessor :name # Email address to contact the customer NOC for operations and maintenance # notifications regarding this Interconnect. If specified, this will be used for # notifications in addition to all other forms described, such as Stackdriver # logs alerting and Cloud Notifications. # Corresponds to the JSON property `nocContactEmail` # @return [String] attr_accessor :noc_contact_email # [Output Only] The current status of this Interconnect's functionality, which # can take one of the following values: - OS_ACTIVE: A valid Interconnect, which # is turned up and is ready to use. Attachments may be provisioned on this # Interconnect. - OS_UNPROVISIONED: An Interconnect that has not completed # turnup. No attachments may be provisioned on this Interconnect. - # OS_UNDER_MAINTENANCE: An Interconnect that is undergoing internal maintenance. # No attachments may be provisioned or updated on this Interconnect. # Corresponds to the JSON property `operationalStatus` # @return [String] attr_accessor :operational_status # [Output Only] IP address configured on the customer side of the Interconnect # link. The customer should configure this IP address during turnup when # prompted by Google NOC. This can be used only for ping tests. # Corresponds to the JSON property `peerIpAddress` # @return [String] attr_accessor :peer_ip_address # [Output Only] Number of links actually provisioned in this interconnect. # Corresponds to the JSON property `provisionedLinkCount` # @return [Fixnum] attr_accessor :provisioned_link_count # Target number of physical links in the link bundle, as requested by the # customer. # Corresponds to the JSON property `requestedLinkCount` # @return [Fixnum] attr_accessor :requested_link_count # [Output Only] Set to true if the resource satisfies the zone separation # organization policy constraints and false otherwise. Defaults to false if the # field is not present. # Corresponds to the JSON property `satisfiesPzs` # @return [Boolean] attr_accessor :satisfies_pzs alias_method :satisfies_pzs?, :satisfies_pzs # [Output Only] Server-defined URL for the resource. # Corresponds to the JSON property `selfLink` # @return [String] attr_accessor :self_link # [Output Only] Server-defined URL for this resource with the resource id. # Corresponds to the JSON property `selfLinkWithId` # @return [String] attr_accessor :self_link_with_id # [Output Only] The current state of Interconnect functionality, which can take # one of the following values: - ACTIVE: The Interconnect is valid, turned up # and ready to use. Attachments may be provisioned on this Interconnect. - # UNPROVISIONED: The Interconnect has not completed turnup. No attachments may # be provisioned on this Interconnect. - UNDER_MAINTENANCE: The Interconnect is # undergoing internal maintenance. No attachments may be provisioned or updated # on this Interconnect. # Corresponds to the JSON property `state` # @return [String] attr_accessor :state def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @admin_enabled = args[:admin_enabled] if args.key?(:admin_enabled) @circuit_infos = args[:circuit_infos] if args.key?(:circuit_infos) @creation_timestamp = args[:creation_timestamp] if args.key?(:creation_timestamp) @customer_name = args[:customer_name] if args.key?(:customer_name) @description = args[:description] if args.key?(:description) @expected_outages = args[:expected_outages] if args.key?(:expected_outages) @google_ip_address = args[:google_ip_address] if args.key?(:google_ip_address) @google_reference_id = args[:google_reference_id] if args.key?(:google_reference_id) @id = args[:id] if args.key?(:id) @interconnect_attachments = args[:interconnect_attachments] if args.key?(:interconnect_attachments) @interconnect_type = args[:interconnect_type] if args.key?(:interconnect_type) @kind = args[:kind] if args.key?(:kind) @label_fingerprint = args[:label_fingerprint] if args.key?(:label_fingerprint) @labels = args[:labels] if args.key?(:labels) @link_type = args[:link_type] if args.key?(:link_type) @location = args[:location] if args.key?(:location) @macsec = args[:macsec] if args.key?(:macsec) @macsec_enabled = args[:macsec_enabled] if args.key?(:macsec_enabled) @name = args[:name] if args.key?(:name) @noc_contact_email = args[:noc_contact_email] if args.key?(:noc_contact_email) @operational_status = args[:operational_status] if args.key?(:operational_status) @peer_ip_address = args[:peer_ip_address] if args.key?(:peer_ip_address) @provisioned_link_count = args[:provisioned_link_count] if args.key?(:provisioned_link_count) @requested_link_count = args[:requested_link_count] if args.key?(:requested_link_count) @satisfies_pzs = args[:satisfies_pzs] if args.key?(:satisfies_pzs) @self_link = args[:self_link] if args.key?(:self_link) @self_link_with_id = args[:self_link_with_id] if args.key?(:self_link_with_id) @state = args[:state] if args.key?(:state) end end # Represents an Interconnect Attachment (VLAN) resource. You can use # Interconnect attachments (VLANS) to connect your Virtual Private Cloud # networks to your on-premises networks through an Interconnect. For more # information, read Creating VLAN Attachments. class InterconnectAttachment include Google::Apis::Core::Hashable # Determines whether this Attachment will carry packets. Not present for # PARTNER_PROVIDER. # Corresponds to the JSON property `adminEnabled` # @return [Boolean] attr_accessor :admin_enabled alias_method :admin_enabled?, :admin_enabled # Provisioned bandwidth capacity for the interconnect attachment. For # attachments of type DEDICATED, the user can set the bandwidth. For attachments # of type PARTNER, the Google Partner that is operating the interconnect must # set the bandwidth. Output only for PARTNER type, mutable for PARTNER_PROVIDER # and DEDICATED, and can take one of the following values: - BPS_50M: 50 Mbit/s - # BPS_100M: 100 Mbit/s - BPS_200M: 200 Mbit/s - BPS_300M: 300 Mbit/s - BPS_400M: # 400 Mbit/s - BPS_500M: 500 Mbit/s - BPS_1G: 1 Gbit/s - BPS_2G: 2 Gbit/s - # BPS_5G: 5 Gbit/s - BPS_10G: 10 Gbit/s - BPS_20G: 20 Gbit/s - BPS_50G: 50 Gbit/ # s # Corresponds to the JSON property `bandwidth` # @return [String] attr_accessor :bandwidth # This field is not available. # Corresponds to the JSON property `candidateIpv6Subnets` # @return [Array] attr_accessor :candidate_ipv6_subnets # Up to 16 candidate prefixes that can be used to restrict the allocation of # cloudRouterIpAddress and customerRouterIpAddress for this attachment. All # prefixes must be within link-local address space (169.254.0.0/16) and must be / # 29 or shorter (/28, /27, etc). Google will attempt to select an unused /29 # from the supplied candidate prefix(es). The request will fail if all possible / # 29s are in use on Google's edge. If not supplied, Google will randomly select # an unused /29 from all of link-local space. # Corresponds to the JSON property `candidateSubnets` # @return [Array] attr_accessor :candidate_subnets # [Output Only] IPv4 address + prefix length to be configured on Cloud Router # Interface for this interconnect attachment. # Corresponds to the JSON property `cloudRouterIpAddress` # @return [String] attr_accessor :cloud_router_ip_address # [Output Only] IPv6 address + prefix length to be configured on Cloud Router # Interface for this interconnect attachment. # Corresponds to the JSON property `cloudRouterIpv6Address` # @return [String] attr_accessor :cloud_router_ipv6_address # This field is not available. # Corresponds to the JSON property `cloudRouterIpv6InterfaceId` # @return [String] attr_accessor :cloud_router_ipv6_interface_id # [Output Only] Creation timestamp in RFC3339 text format. # Corresponds to the JSON property `creationTimestamp` # @return [String] attr_accessor :creation_timestamp # [Output Only] IPv4 address + prefix length to be configured on the customer # router subinterface for this interconnect attachment. # Corresponds to the JSON property `customerRouterIpAddress` # @return [String] attr_accessor :customer_router_ip_address # [Output Only] IPv6 address + prefix length to be configured on the customer # router subinterface for this interconnect attachment. # Corresponds to the JSON property `customerRouterIpv6Address` # @return [String] attr_accessor :customer_router_ipv6_address # This field is not available. # Corresponds to the JSON property `customerRouterIpv6InterfaceId` # @return [String] attr_accessor :customer_router_ipv6_interface_id # [Output Only] Dataplane version for this InterconnectAttachment. This field is # only present for Dataplane version 2 and higher. Absence of this field in the # API output indicates that the Dataplane is version 1. # Corresponds to the JSON property `dataplaneVersion` # @return [Fixnum] attr_accessor :dataplane_version # An optional description of this resource. # Corresponds to the JSON property `description` # @return [String] attr_accessor :description # Desired availability domain for the attachment. Only available for type # PARTNER, at creation time, and can take one of the following values: - # AVAILABILITY_DOMAIN_ANY - AVAILABILITY_DOMAIN_1 - AVAILABILITY_DOMAIN_2 For # improved reliability, customers should configure a pair of attachments, one # per availability domain. The selected availability domain will be provided to # the Partner via the pairing key, so that the provisioned circuit will lie in # the specified domain. If not specified, the value will default to # AVAILABILITY_DOMAIN_ANY. # Corresponds to the JSON property `edgeAvailabilityDomain` # @return [String] attr_accessor :edge_availability_domain # Indicates the user-supplied encryption option of this VLAN attachment ( # interconnectAttachment). Can only be specified at attachment creation for # PARTNER or DEDICATED attachments. Possible values are: - NONE - This is the # default value, which means that the VLAN attachment carries unencrypted # traffic. VMs are able to send traffic to, or receive traffic from, such a VLAN # attachment. - IPSEC - The VLAN attachment carries only encrypted traffic that # is encrypted by an IPsec device, such as an HA VPN gateway or third-party # IPsec VPN. VMs cannot directly send traffic to, or receive traffic from, such # a VLAN attachment. To use *IPsec-encrypted Cloud Interconnect*, the VLAN # attachment must be created with this option. Not currently available publicly. # Corresponds to the JSON property `encryption` # @return [String] attr_accessor :encryption # [Output Only] Google reference ID, to be used when raising support tickets # with Google or otherwise to debug backend connectivity issues. [Deprecated] # This field is not used. # Corresponds to the JSON property `googleReferenceId` # @return [String] attr_accessor :google_reference_id # [Output Only] The unique identifier for the resource. This identifier is # defined by the server. # Corresponds to the JSON property `id` # @return [Fixnum] attr_accessor :id # URL of the underlying Interconnect object that this attachment's traffic will # traverse through. # Corresponds to the JSON property `interconnect` # @return [String] attr_accessor :interconnect # A list of URLs of addresses that have been reserved for the VLAN attachment. # Used only for the VLAN attachment that has the encryption option as IPSEC. The # addresses must be regional internal IP address ranges. When creating an HA VPN # gateway over the VLAN attachment, if the attachment is configured to use a # regional internal IP address, then the VPN gateway's IP address is allocated # from the IP address range specified here. For example, if the HA VPN gateway's # interface 0 is paired to this VLAN attachment, then a regional internal IP # address for the VPN gateway interface 0 will be allocated from the IP address # specified for this VLAN attachment. If this field is not specified when # creating the VLAN attachment, then later on when creating an HA VPN gateway on # this VLAN attachment, the HA VPN gateway's IP address is allocated from the # regional external IP address pool. Not currently available publicly. # Corresponds to the JSON property `ipsecInternalAddresses` # @return [Array] attr_accessor :ipsec_internal_addresses # [Output Only] Type of the resource. Always compute#interconnectAttachment for # interconnect attachments. # Corresponds to the JSON property `kind` # @return [String] attr_accessor :kind # A fingerprint for the labels being applied to this InterconnectAttachment, # which is essentially a hash of the labels set used for optimistic locking. The # fingerprint is initially generated by Compute Engine and changes after every # request to modify or update labels. You must always provide an up-to-date # fingerprint hash in order to update or change labels, otherwise the request # will fail with error 412 conditionNotMet. To see the latest fingerprint, make # a get() request to retrieve an InterconnectAttachment. # Corresponds to the JSON property `labelFingerprint` # NOTE: Values are automatically base64 encoded/decoded in the client library. # @return [String] attr_accessor :label_fingerprint # Labels for this resource. These can only be added or modified by the setLabels # method. Each label key/value pair must comply with RFC1035. Label values may # be empty. # Corresponds to the JSON property `labels` # @return [Hash] attr_accessor :labels # Maximum Transmission Unit (MTU), in bytes, of packets passing through this # interconnect attachment. Only 1440 and 1500 are allowed. If not specified, the # value will default to 1440. # Corresponds to the JSON property `mtu` # @return [Fixnum] attr_accessor :mtu # Name of the resource. Provided by the client when the resource is created. The # name must be 1-63 characters long, and comply with RFC1035. Specifically, the # name must be 1-63 characters long and match the regular expression `[a-z]([-a- # z0-9]*[a-z0-9])?` which means the first character must be a lowercase letter, # and all following characters must be a dash, lowercase letter, or digit, # except the last character, which cannot be a dash. # Corresponds to the JSON property `name` # @return [String] attr_accessor :name # [Output Only] The current status of whether or not this interconnect # attachment is functional, which can take one of the following values: - # OS_ACTIVE: The attachment has been turned up and is ready to use. - # OS_UNPROVISIONED: The attachment is not ready to use yet, because turnup is # not complete. # Corresponds to the JSON property `operationalStatus` # @return [String] attr_accessor :operational_status # [Output only for type PARTNER. Input only for PARTNER_PROVIDER. Not present # for DEDICATED]. The opaque identifier of an PARTNER attachment used to # initiate provisioning with a selected partner. Of the form "XXXXX/region/ # domain" # Corresponds to the JSON property `pairingKey` # @return [String] attr_accessor :pairing_key # Optional BGP ASN for the router supplied by a Layer 3 Partner if they # configured BGP on behalf of the customer. Output only for PARTNER type, input # only for PARTNER_PROVIDER, not available for DEDICATED. # Corresponds to the JSON property `partnerAsn` # @return [Fixnum] attr_accessor :partner_asn # Informational metadata about Partner attachments from Partners to display to # customers. These fields are propagated from PARTNER_PROVIDER attachments to # their corresponding PARTNER attachments. # Corresponds to the JSON property `partnerMetadata` # @return [Google::Apis::ComputeAlpha::InterconnectAttachmentPartnerMetadata] attr_accessor :partner_metadata # Information for an interconnect attachment when this belongs to an # interconnect of type DEDICATED. # Corresponds to the JSON property `privateInterconnectInfo` # @return [Google::Apis::ComputeAlpha::InterconnectAttachmentPrivateInfo] attr_accessor :private_interconnect_info # [Output Only] URL of the region where the regional interconnect attachment # resides. You must specify this field as part of the HTTP request URL. It is # not settable as a field in the request body. # Corresponds to the JSON property `region` # @return [String] attr_accessor :region # URL of the Cloud Router to be used for dynamic routing. This router must be in # the same region as this InterconnectAttachment. The InterconnectAttachment # will automatically connect the Interconnect to the network & region within # which the Cloud Router is configured. # Corresponds to the JSON property `router` # @return [String] attr_accessor :router # [Output Only] Set to true if the resource satisfies the zone separation # organization policy constraints and false otherwise. Defaults to false if the # field is not present. # Corresponds to the JSON property `satisfiesPzs` # @return [Boolean] attr_accessor :satisfies_pzs alias_method :satisfies_pzs?, :satisfies_pzs # [Output Only] Server-defined URL for the resource. # Corresponds to the JSON property `selfLink` # @return [String] attr_accessor :self_link # [Output Only] Server-defined URL for this resource with the resource id. # Corresponds to the JSON property `selfLinkWithId` # @return [String] attr_accessor :self_link_with_id # The stack type for this interconnect attachment to identify whether the IPv6 # feature is enabled or not. If not specified, IPV4_ONLY will be used. This # field can be both set at interconnect attachments creation and update # interconnect attachment operations. # Corresponds to the JSON property `stackType` # @return [String] attr_accessor :stack_type # [Output Only] The current state of this attachment's functionality. Enum # values ACTIVE and UNPROVISIONED are shared by DEDICATED/PRIVATE, PARTNER, and # PARTNER_PROVIDER interconnect attachments, while enum values PENDING_PARTNER, # PARTNER_REQUEST_RECEIVED, and PENDING_CUSTOMER are used for only PARTNER and # PARTNER_PROVIDER interconnect attachments. This state can take one of the # following values: - ACTIVE: The attachment has been turned up and is ready to # use. - UNPROVISIONED: The attachment is not ready to use yet, because turnup # is not complete. - PENDING_PARTNER: A newly-created PARTNER attachment that # has not yet been configured on the Partner side. - PARTNER_REQUEST_RECEIVED: A # PARTNER attachment is in the process of provisioning after a PARTNER_PROVIDER # attachment was created that references it. - PENDING_CUSTOMER: A PARTNER or # PARTNER_PROVIDER attachment that is waiting for a customer to activate it. - # DEFUNCT: The attachment was deleted externally and is no longer functional. # This could be because the associated Interconnect was removed, or because the # other side of a Partner attachment was deleted. # Corresponds to the JSON property `state` # @return [String] attr_accessor :state # The type of interconnect attachment this is, which can take one of the # following values: - DEDICATED: an attachment to a Dedicated Interconnect. - # PARTNER: an attachment to a Partner Interconnect, created by the customer. - # PARTNER_PROVIDER: an attachment to a Partner Interconnect, created by the # partner. # Corresponds to the JSON property `type` # @return [String] attr_accessor :type # The IEEE 802.1Q VLAN tag for this attachment, in the range 2-4094. Only # specified at creation time. # Corresponds to the JSON property `vlanTag8021q` # @return [Fixnum] attr_accessor :vlan_tag8021q def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @admin_enabled = args[:admin_enabled] if args.key?(:admin_enabled) @bandwidth = args[:bandwidth] if args.key?(:bandwidth) @candidate_ipv6_subnets = args[:candidate_ipv6_subnets] if args.key?(:candidate_ipv6_subnets) @candidate_subnets = args[:candidate_subnets] if args.key?(:candidate_subnets) @cloud_router_ip_address = args[:cloud_router_ip_address] if args.key?(:cloud_router_ip_address) @cloud_router_ipv6_address = args[:cloud_router_ipv6_address] if args.key?(:cloud_router_ipv6_address) @cloud_router_ipv6_interface_id = args[:cloud_router_ipv6_interface_id] if args.key?(:cloud_router_ipv6_interface_id) @creation_timestamp = args[:creation_timestamp] if args.key?(:creation_timestamp) @customer_router_ip_address = args[:customer_router_ip_address] if args.key?(:customer_router_ip_address) @customer_router_ipv6_address = args[:customer_router_ipv6_address] if args.key?(:customer_router_ipv6_address) @customer_router_ipv6_interface_id = args[:customer_router_ipv6_interface_id] if args.key?(:customer_router_ipv6_interface_id) @dataplane_version = args[:dataplane_version] if args.key?(:dataplane_version) @description = args[:description] if args.key?(:description) @edge_availability_domain = args[:edge_availability_domain] if args.key?(:edge_availability_domain) @encryption = args[:encryption] if args.key?(:encryption) @google_reference_id = args[:google_reference_id] if args.key?(:google_reference_id) @id = args[:id] if args.key?(:id) @interconnect = args[:interconnect] if args.key?(:interconnect) @ipsec_internal_addresses = args[:ipsec_internal_addresses] if args.key?(:ipsec_internal_addresses) @kind = args[:kind] if args.key?(:kind) @label_fingerprint = args[:label_fingerprint] if args.key?(:label_fingerprint) @labels = args[:labels] if args.key?(:labels) @mtu = args[:mtu] if args.key?(:mtu) @name = args[:name] if args.key?(:name) @operational_status = args[:operational_status] if args.key?(:operational_status) @pairing_key = args[:pairing_key] if args.key?(:pairing_key) @partner_asn = args[:partner_asn] if args.key?(:partner_asn) @partner_metadata = args[:partner_metadata] if args.key?(:partner_metadata) @private_interconnect_info = args[:private_interconnect_info] if args.key?(:private_interconnect_info) @region = args[:region] if args.key?(:region) @router = args[:router] if args.key?(:router) @satisfies_pzs = args[:satisfies_pzs] if args.key?(:satisfies_pzs) @self_link = args[:self_link] if args.key?(:self_link) @self_link_with_id = args[:self_link_with_id] if args.key?(:self_link_with_id) @stack_type = args[:stack_type] if args.key?(:stack_type) @state = args[:state] if args.key?(:state) @type = args[:type] if args.key?(:type) @vlan_tag8021q = args[:vlan_tag8021q] if args.key?(:vlan_tag8021q) end end # class InterconnectAttachmentAggregatedList include Google::Apis::Core::Hashable # [Output Only] Unique identifier for the resource; defined by the server. # Corresponds to the JSON property `id` # @return [String] attr_accessor :id # A list of InterconnectAttachmentsScopedList resources. # Corresponds to the JSON property `items` # @return [Hash] attr_accessor :items # [Output Only] Type of resource. Always compute# # interconnectAttachmentAggregatedList for aggregated lists of interconnect # attachments. # Corresponds to the JSON property `kind` # @return [String] attr_accessor :kind # [Output Only] This token allows you to get the next page of results for list # requests. If the number of results is larger than maxResults, use the # nextPageToken as a value for the query parameter pageToken in the next list # request. Subsequent list requests will have their own nextPageToken to # continue paging through the results. # Corresponds to the JSON property `nextPageToken` # @return [String] attr_accessor :next_page_token # [Output Only] Server-defined URL for this resource. # Corresponds to the JSON property `selfLink` # @return [String] attr_accessor :self_link # [Output Only] Unreachable resources. # Corresponds to the JSON property `unreachables` # @return [Array] attr_accessor :unreachables # [Output Only] Informational warning message. # Corresponds to the JSON property `warning` # @return [Google::Apis::ComputeAlpha::InterconnectAttachmentAggregatedList::Warning] attr_accessor :warning def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @id = args[:id] if args.key?(:id) @items = args[:items] if args.key?(:items) @kind = args[:kind] if args.key?(:kind) @next_page_token = args[:next_page_token] if args.key?(:next_page_token) @self_link = args[:self_link] if args.key?(:self_link) @unreachables = args[:unreachables] if args.key?(:unreachables) @warning = args[:warning] if args.key?(:warning) end # [Output Only] Informational warning message. class Warning include Google::Apis::Core::Hashable # [Output Only] A warning code, if applicable. For example, Compute Engine # returns NO_RESULTS_ON_PAGE if there are no results in the response. # Corresponds to the JSON property `code` # @return [String] attr_accessor :code # [Output Only] Metadata about this warning in key: value format. For example: " # data": [ ` "key": "scope", "value": "zones/us-east1-d" ` # Corresponds to the JSON property `data` # @return [Array] attr_accessor :data # [Output Only] A human-readable description of the warning code. # Corresponds to the JSON property `message` # @return [String] attr_accessor :message def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @code = args[:code] if args.key?(:code) @data = args[:data] if args.key?(:data) @message = args[:message] if args.key?(:message) end # class Datum include Google::Apis::Core::Hashable # [Output Only] A key that provides more detail on the warning being returned. # For example, for warnings where there are no results in a list request for a # particular zone, this key might be scope and the key value might be the zone # name. Other examples might be a key indicating a deprecated resource and a # suggested replacement, or a warning about invalid network settings (for # example, if an instance attempts to perform IP forwarding but is not enabled # for IP forwarding). # Corresponds to the JSON property `key` # @return [String] attr_accessor :key # [Output Only] A warning data value corresponding to the key. # 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 end end # Response to the list request, and contains a list of interconnect attachments. class InterconnectAttachmentList include Google::Apis::Core::Hashable # [Output Only] Unique identifier for the resource; defined by the server. # Corresponds to the JSON property `id` # @return [String] attr_accessor :id # A list of InterconnectAttachment resources. # Corresponds to the JSON property `items` # @return [Array] attr_accessor :items # [Output Only] Type of resource. Always compute#interconnectAttachmentList for # lists of interconnect attachments. # Corresponds to the JSON property `kind` # @return [String] attr_accessor :kind # [Output Only] This token allows you to get the next page of results for list # requests. If the number of results is larger than maxResults, use the # nextPageToken as a value for the query parameter pageToken in the next list # request. Subsequent list requests will have their own nextPageToken to # continue paging through the results. # Corresponds to the JSON property `nextPageToken` # @return [String] attr_accessor :next_page_token # [Output Only] Server-defined URL for this resource. # Corresponds to the JSON property `selfLink` # @return [String] attr_accessor :self_link # [Output Only] Informational warning message. # Corresponds to the JSON property `warning` # @return [Google::Apis::ComputeAlpha::InterconnectAttachmentList::Warning] attr_accessor :warning def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @id = args[:id] if args.key?(:id) @items = args[:items] if args.key?(:items) @kind = args[:kind] if args.key?(:kind) @next_page_token = args[:next_page_token] if args.key?(:next_page_token) @self_link = args[:self_link] if args.key?(:self_link) @warning = args[:warning] if args.key?(:warning) end # [Output Only] Informational warning message. class Warning include Google::Apis::Core::Hashable # [Output Only] A warning code, if applicable. For example, Compute Engine # returns NO_RESULTS_ON_PAGE if there are no results in the response. # Corresponds to the JSON property `code` # @return [String] attr_accessor :code # [Output Only] Metadata about this warning in key: value format. For example: " # data": [ ` "key": "scope", "value": "zones/us-east1-d" ` # Corresponds to the JSON property `data` # @return [Array] attr_accessor :data # [Output Only] A human-readable description of the warning code. # Corresponds to the JSON property `message` # @return [String] attr_accessor :message def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @code = args[:code] if args.key?(:code) @data = args[:data] if args.key?(:data) @message = args[:message] if args.key?(:message) end # class Datum include Google::Apis::Core::Hashable # [Output Only] A key that provides more detail on the warning being returned. # For example, for warnings where there are no results in a list request for a # particular zone, this key might be scope and the key value might be the zone # name. Other examples might be a key indicating a deprecated resource and a # suggested replacement, or a warning about invalid network settings (for # example, if an instance attempts to perform IP forwarding but is not enabled # for IP forwarding). # Corresponds to the JSON property `key` # @return [String] attr_accessor :key # [Output Only] A warning data value corresponding to the key. # 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 end end # Informational metadata about Partner attachments from Partners to display to # customers. These fields are propagated from PARTNER_PROVIDER attachments to # their corresponding PARTNER attachments. class InterconnectAttachmentPartnerMetadata include Google::Apis::Core::Hashable # Plain text name of the Interconnect this attachment is connected to, as # displayed in the Partner's portal. For instance "Chicago 1". This value may be # validated to match approved Partner values. # Corresponds to the JSON property `interconnectName` # @return [String] attr_accessor :interconnect_name # Plain text name of the Partner providing this attachment. This value may be # validated to match approved Partner values. # Corresponds to the JSON property `partnerName` # @return [String] attr_accessor :partner_name # URL of the Partner's portal for this Attachment. Partners may customise this # to be a deep link to the specific resource on the Partner portal. This value # may be validated to match approved Partner values. # Corresponds to the JSON property `portalUrl` # @return [String] attr_accessor :portal_url def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @interconnect_name = args[:interconnect_name] if args.key?(:interconnect_name) @partner_name = args[:partner_name] if args.key?(:partner_name) @portal_url = args[:portal_url] if args.key?(:portal_url) end end # Information for an interconnect attachment when this belongs to an # interconnect of type DEDICATED. class InterconnectAttachmentPrivateInfo include Google::Apis::Core::Hashable # [Output Only] 802.1q encapsulation tag to be used for traffic between Google # and the customer, going to and from this network and region. # Corresponds to the JSON property `tag8021q` # @return [Fixnum] attr_accessor :tag8021q def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @tag8021q = args[:tag8021q] if args.key?(:tag8021q) end end # class InterconnectAttachmentsScopedList include Google::Apis::Core::Hashable # A list of interconnect attachments contained in this scope. # Corresponds to the JSON property `interconnectAttachments` # @return [Array] attr_accessor :interconnect_attachments # Informational warning which replaces the list of addresses when the list is # empty. # Corresponds to the JSON property `warning` # @return [Google::Apis::ComputeAlpha::InterconnectAttachmentsScopedList::Warning] attr_accessor :warning def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @interconnect_attachments = args[:interconnect_attachments] if args.key?(:interconnect_attachments) @warning = args[:warning] if args.key?(:warning) end # Informational warning which replaces the list of addresses when the list is # empty. class Warning include Google::Apis::Core::Hashable # [Output Only] A warning code, if applicable. For example, Compute Engine # returns NO_RESULTS_ON_PAGE if there are no results in the response. # Corresponds to the JSON property `code` # @return [String] attr_accessor :code # [Output Only] Metadata about this warning in key: value format. For example: " # data": [ ` "key": "scope", "value": "zones/us-east1-d" ` # Corresponds to the JSON property `data` # @return [Array] attr_accessor :data # [Output Only] A human-readable description of the warning code. # Corresponds to the JSON property `message` # @return [String] attr_accessor :message def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @code = args[:code] if args.key?(:code) @data = args[:data] if args.key?(:data) @message = args[:message] if args.key?(:message) end # class Datum include Google::Apis::Core::Hashable # [Output Only] A key that provides more detail on the warning being returned. # For example, for warnings where there are no results in a list request for a # particular zone, this key might be scope and the key value might be the zone # name. Other examples might be a key indicating a deprecated resource and a # suggested replacement, or a warning about invalid network settings (for # example, if an instance attempts to perform IP forwarding but is not enabled # for IP forwarding). # Corresponds to the JSON property `key` # @return [String] attr_accessor :key # [Output Only] A warning data value corresponding to the key. # 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 end end # Describes a single physical circuit between the Customer and Google. # CircuitInfo objects are created by Google, so all fields are output only. class InterconnectCircuitInfo include Google::Apis::Core::Hashable # Customer-side demarc ID for this circuit. # Corresponds to the JSON property `customerDemarcId` # @return [String] attr_accessor :customer_demarc_id # Google-assigned unique ID for this circuit. Assigned at circuit turn-up. # Corresponds to the JSON property `googleCircuitId` # @return [String] attr_accessor :google_circuit_id # Google-side demarc ID for this circuit. Assigned at circuit turn-up and # provided by Google to the customer in the LOA. # Corresponds to the JSON property `googleDemarcId` # @return [String] attr_accessor :google_demarc_id def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @customer_demarc_id = args[:customer_demarc_id] if args.key?(:customer_demarc_id) @google_circuit_id = args[:google_circuit_id] if args.key?(:google_circuit_id) @google_demarc_id = args[:google_demarc_id] if args.key?(:google_demarc_id) end end # Diagnostics information about interconnect, contains detailed and current # technical information about Google's side of the connection. class InterconnectDiagnostics include Google::Apis::Core::Hashable # A list of InterconnectDiagnostics.ARPEntry objects, describing individual # neighbors currently seen by the Google router in the ARP cache for the # Interconnect. This will be empty when the Interconnect is not bundled. # Corresponds to the JSON property `arpCaches` # @return [Array] attr_accessor :arp_caches # A list of InterconnectDiagnostics.LinkStatus objects, describing the status # for each link on the Interconnect. # Corresponds to the JSON property `links` # @return [Array] attr_accessor :links # The MAC address of the Interconnect's bundle interface. # Corresponds to the JSON property `macAddress` # @return [String] attr_accessor :mac_address def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @arp_caches = args[:arp_caches] if args.key?(:arp_caches) @links = args[:links] if args.key?(:links) @mac_address = args[:mac_address] if args.key?(:mac_address) end end # Describing the ARP neighbor entries seen on this link class InterconnectDiagnosticsArpEntry include Google::Apis::Core::Hashable # The IP address of this ARP neighbor. # Corresponds to the JSON property `ipAddress` # @return [String] attr_accessor :ip_address # The MAC address of this ARP neighbor. # Corresponds to the JSON property `macAddress` # @return [String] attr_accessor :mac_address def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @ip_address = args[:ip_address] if args.key?(:ip_address) @mac_address = args[:mac_address] if args.key?(:mac_address) end end # class InterconnectDiagnosticsLinkLacpStatus include Google::Apis::Core::Hashable # System ID of the port on Google's side of the LACP exchange. # Corresponds to the JSON property `googleSystemId` # @return [String] attr_accessor :google_system_id # System ID of the port on the neighbor's side of the LACP exchange. # Corresponds to the JSON property `neighborSystemId` # @return [String] attr_accessor :neighbor_system_id # The state of a LACP link, which can take one of the following values: - ACTIVE: # The link is configured and active within the bundle. - DETACHED: The link is # not configured within the bundle. This means that the rest of the object # should be empty. # Corresponds to the JSON property `state` # @return [String] attr_accessor :state def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @google_system_id = args[:google_system_id] if args.key?(:google_system_id) @neighbor_system_id = args[:neighbor_system_id] if args.key?(:neighbor_system_id) @state = args[:state] if args.key?(:state) end end # class InterconnectDiagnosticsLinkOpticalPower include Google::Apis::Core::Hashable # The status of the current value when compared to the warning and alarm levels # for the receiving or transmitting transceiver. Possible states include: - OK: # The value has not crossed a warning threshold. - LOW_WARNING: The value has # crossed below the low warning threshold. - HIGH_WARNING: The value has crossed # above the high warning threshold. - LOW_ALARM: The value has crossed below the # low alarm threshold. - HIGH_ALARM: The value has crossed above the high alarm # threshold. # Corresponds to the JSON property `state` # @return [String] attr_accessor :state # Value of the current receiving or transmitting optical power, read in dBm. # Take a known good optical value, give it a 10% margin and trigger warnings # relative to that value. In general, a -7dBm warning and a -11dBm alarm are # good optical value estimates for most links. # Corresponds to the JSON property `value` # @return [Float] attr_accessor :value def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @state = args[:state] if args.key?(:state) @value = args[:value] if args.key?(:value) end end # class InterconnectDiagnosticsLinkStatus include Google::Apis::Core::Hashable # A list of InterconnectDiagnostics.ARPEntry objects, describing the ARP # neighbor entries seen on this link. This will be empty if the link is bundled # Corresponds to the JSON property `arpCaches` # @return [Array] attr_accessor :arp_caches # The unique ID for this link assigned during turn up by Google. # Corresponds to the JSON property `circuitId` # @return [String] attr_accessor :circuit_id # The Demarc address assigned by Google and provided in the LoA. # Corresponds to the JSON property `googleDemarc` # @return [String] attr_accessor :google_demarc # # Corresponds to the JSON property `lacpStatus` # @return [Google::Apis::ComputeAlpha::InterconnectDiagnosticsLinkLacpStatus] attr_accessor :lacp_status # Describes the status of MACsec encryption on the link. # Corresponds to the JSON property `macsec` # @return [Google::Apis::ComputeAlpha::InterconnectDiagnosticsMacsecStatus] attr_accessor :macsec # An InterconnectDiagnostics.LinkOpticalPower object, describing the current # value and status of the received light level. # Corresponds to the JSON property `receivingOpticalPower` # @return [Google::Apis::ComputeAlpha::InterconnectDiagnosticsLinkOpticalPower] attr_accessor :receiving_optical_power # An InterconnectDiagnostics.LinkOpticalPower object, describing the current # value and status of the transmitted light level. # Corresponds to the JSON property `transmittingOpticalPower` # @return [Google::Apis::ComputeAlpha::InterconnectDiagnosticsLinkOpticalPower] attr_accessor :transmitting_optical_power def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @arp_caches = args[:arp_caches] if args.key?(:arp_caches) @circuit_id = args[:circuit_id] if args.key?(:circuit_id) @google_demarc = args[:google_demarc] if args.key?(:google_demarc) @lacp_status = args[:lacp_status] if args.key?(:lacp_status) @macsec = args[:macsec] if args.key?(:macsec) @receiving_optical_power = args[:receiving_optical_power] if args.key?(:receiving_optical_power) @transmitting_optical_power = args[:transmitting_optical_power] if args.key?(:transmitting_optical_power) end end # Describes the status of MACsec encryption on the link. class InterconnectDiagnosticsMacsecStatus include Google::Apis::Core::Hashable # Indicates the Connectivity Association Key Name (CKN) currently being used if # MACsec is operational. # Corresponds to the JSON property `ckn` # @return [String] attr_accessor :ckn # Indicates whether or not MACsec is operational on this link. # Corresponds to the JSON property `operational` # @return [Boolean] attr_accessor :operational alias_method :operational?, :operational def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @ckn = args[:ckn] if args.key?(:ckn) @operational = args[:operational] if args.key?(:operational) end end # Response to the list request, and contains a list of interconnects. class InterconnectList include Google::Apis::Core::Hashable # [Output Only] Unique identifier for the resource; defined by the server. # Corresponds to the JSON property `id` # @return [String] attr_accessor :id # A list of Interconnect resources. # Corresponds to the JSON property `items` # @return [Array] attr_accessor :items # [Output Only] Type of resource. Always compute#interconnectList for lists of # interconnects. # Corresponds to the JSON property `kind` # @return [String] attr_accessor :kind # [Output Only] This token allows you to get the next page of results for list # requests. If the number of results is larger than maxResults, use the # nextPageToken as a value for the query parameter pageToken in the next list # request. Subsequent list requests will have their own nextPageToken to # continue paging through the results. # Corresponds to the JSON property `nextPageToken` # @return [String] attr_accessor :next_page_token # [Output Only] Server-defined URL for this resource. # Corresponds to the JSON property `selfLink` # @return [String] attr_accessor :self_link # [Output Only] Informational warning message. # Corresponds to the JSON property `warning` # @return [Google::Apis::ComputeAlpha::InterconnectList::Warning] attr_accessor :warning def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @id = args[:id] if args.key?(:id) @items = args[:items] if args.key?(:items) @kind = args[:kind] if args.key?(:kind) @next_page_token = args[:next_page_token] if args.key?(:next_page_token) @self_link = args[:self_link] if args.key?(:self_link) @warning = args[:warning] if args.key?(:warning) end # [Output Only] Informational warning message. class Warning include Google::Apis::Core::Hashable # [Output Only] A warning code, if applicable. For example, Compute Engine # returns NO_RESULTS_ON_PAGE if there are no results in the response. # Corresponds to the JSON property `code` # @return [String] attr_accessor :code # [Output Only] Metadata about this warning in key: value format. For example: " # data": [ ` "key": "scope", "value": "zones/us-east1-d" ` # Corresponds to the JSON property `data` # @return [Array] attr_accessor :data # [Output Only] A human-readable description of the warning code. # Corresponds to the JSON property `message` # @return [String] attr_accessor :message def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @code = args[:code] if args.key?(:code) @data = args[:data] if args.key?(:data) @message = args[:message] if args.key?(:message) end # class Datum include Google::Apis::Core::Hashable # [Output Only] A key that provides more detail on the warning being returned. # For example, for warnings where there are no results in a list request for a # particular zone, this key might be scope and the key value might be the zone # name. Other examples might be a key indicating a deprecated resource and a # suggested replacement, or a warning about invalid network settings (for # example, if an instance attempts to perform IP forwarding but is not enabled # for IP forwarding). # Corresponds to the JSON property `key` # @return [String] attr_accessor :key # [Output Only] A warning data value corresponding to the key. # 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 end end # Represents an Interconnect Attachment (VLAN) Location resource. You can use # this resource to find location details about an Interconnect attachment (VLAN). # For more information about interconnect attachments, read Creating VLAN # Attachments. class InterconnectLocation include Google::Apis::Core::Hashable # [Output Only] The postal address of the Point of Presence, each line in the # address is separated by a newline character. # Corresponds to the JSON property `address` # @return [String] attr_accessor :address # [Output Only] Availability zone for this InterconnectLocation. Within a # metropolitan area (metro), maintenance will not be simultaneously scheduled in # more than one availability zone. Example: "zone1" or "zone2". # Corresponds to the JSON property `availabilityZone` # @return [String] attr_accessor :availability_zone # [Output Only] Metropolitan area designator that indicates which city an # interconnect is located. For example: "Chicago, IL", "Amsterdam, Netherlands". # Corresponds to the JSON property `city` # @return [String] attr_accessor :city # [Output Only] Continent for this location, which can take one of the following # values: - AFRICA - ASIA_PAC - EUROPE - NORTH_AMERICA - SOUTH_AMERICA # Corresponds to the JSON property `continent` # @return [String] attr_accessor :continent # [Output Only] Creation timestamp in RFC3339 text format. # Corresponds to the JSON property `creationTimestamp` # @return [String] attr_accessor :creation_timestamp # [Output Only] An optional description of the resource. # Corresponds to the JSON property `description` # @return [String] attr_accessor :description # [Output Only] The name of the provider for this facility (e.g., EQUINIX). # Corresponds to the JSON property `facilityProvider` # @return [String] attr_accessor :facility_provider # [Output Only] A provider-assigned Identifier for this facility (e.g., Ashburn- # DC1). # Corresponds to the JSON property `facilityProviderFacilityId` # @return [String] attr_accessor :facility_provider_facility_id # [Output Only] The unique identifier for the resource. This identifier is # defined by the server. # Corresponds to the JSON property `id` # @return [Fixnum] attr_accessor :id # [Output Only] Type of the resource. Always compute#interconnectLocation for # interconnect locations. # Corresponds to the JSON property `kind` # @return [String] attr_accessor :kind # [Output Only] Name of the resource. # Corresponds to the JSON property `name` # @return [String] attr_accessor :name # [Output Only] The peeringdb identifier for this facility (corresponding with a # netfac type in peeringdb). # Corresponds to the JSON property `peeringdbFacilityId` # @return [String] attr_accessor :peeringdb_facility_id # [Output Only] A list of InterconnectLocation.RegionInfo objects, that describe # parameters pertaining to the relation between this InterconnectLocation and # various Google Cloud regions. # Corresponds to the JSON property `regionInfos` # @return [Array] attr_accessor :region_infos # [Output Only] Server-defined URL for the resource. # Corresponds to the JSON property `selfLink` # @return [String] attr_accessor :self_link # [Output Only] Server-defined URL for this resource with the resource id. # Corresponds to the JSON property `selfLinkWithId` # @return [String] attr_accessor :self_link_with_id # [Output Only] The status of this InterconnectLocation, which can take one of # the following values: - CLOSED: The InterconnectLocation is closed and is # unavailable for provisioning new Interconnects. - AVAILABLE: The # InterconnectLocation is available for provisioning new Interconnects. # Corresponds to the JSON property `status` # @return [String] attr_accessor :status # [Output Only] Set to true for locations that support physical zone separation. # Defaults to false if the field is not present. # Corresponds to the JSON property `supportsPzs` # @return [Boolean] attr_accessor :supports_pzs alias_method :supports_pzs?, :supports_pzs def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @address = args[:address] if args.key?(:address) @availability_zone = args[:availability_zone] if args.key?(:availability_zone) @city = args[:city] if args.key?(:city) @continent = args[:continent] if args.key?(:continent) @creation_timestamp = args[:creation_timestamp] if args.key?(:creation_timestamp) @description = args[:description] if args.key?(:description) @facility_provider = args[:facility_provider] if args.key?(:facility_provider) @facility_provider_facility_id = args[:facility_provider_facility_id] if args.key?(:facility_provider_facility_id) @id = args[:id] if args.key?(:id) @kind = args[:kind] if args.key?(:kind) @name = args[:name] if args.key?(:name) @peeringdb_facility_id = args[:peeringdb_facility_id] if args.key?(:peeringdb_facility_id) @region_infos = args[:region_infos] if args.key?(:region_infos) @self_link = args[:self_link] if args.key?(:self_link) @self_link_with_id = args[:self_link_with_id] if args.key?(:self_link_with_id) @status = args[:status] if args.key?(:status) @supports_pzs = args[:supports_pzs] if args.key?(:supports_pzs) end end # Response to the list request, and contains a list of interconnect locations. class InterconnectLocationList include Google::Apis::Core::Hashable # [Output Only] Unique identifier for the resource; defined by the server. # Corresponds to the JSON property `id` # @return [String] attr_accessor :id # A list of InterconnectLocation resources. # Corresponds to the JSON property `items` # @return [Array] attr_accessor :items # [Output Only] Type of resource. Always compute#interconnectLocationList for # lists of interconnect locations. # Corresponds to the JSON property `kind` # @return [String] attr_accessor :kind # [Output Only] This token allows you to get the next page of results for list # requests. If the number of results is larger than maxResults, use the # nextPageToken as a value for the query parameter pageToken in the next list # request. Subsequent list requests will have their own nextPageToken to # continue paging through the results. # Corresponds to the JSON property `nextPageToken` # @return [String] attr_accessor :next_page_token # [Output Only] Server-defined URL for this resource. # Corresponds to the JSON property `selfLink` # @return [String] attr_accessor :self_link # [Output Only] Informational warning message. # Corresponds to the JSON property `warning` # @return [Google::Apis::ComputeAlpha::InterconnectLocationList::Warning] attr_accessor :warning def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @id = args[:id] if args.key?(:id) @items = args[:items] if args.key?(:items) @kind = args[:kind] if args.key?(:kind) @next_page_token = args[:next_page_token] if args.key?(:next_page_token) @self_link = args[:self_link] if args.key?(:self_link) @warning = args[:warning] if args.key?(:warning) end # [Output Only] Informational warning message. class Warning include Google::Apis::Core::Hashable # [Output Only] A warning code, if applicable. For example, Compute Engine # returns NO_RESULTS_ON_PAGE if there are no results in the response. # Corresponds to the JSON property `code` # @return [String] attr_accessor :code # [Output Only] Metadata about this warning in key: value format. For example: " # data": [ ` "key": "scope", "value": "zones/us-east1-d" ` # Corresponds to the JSON property `data` # @return [Array] attr_accessor :data # [Output Only] A human-readable description of the warning code. # Corresponds to the JSON property `message` # @return [String] attr_accessor :message def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @code = args[:code] if args.key?(:code) @data = args[:data] if args.key?(:data) @message = args[:message] if args.key?(:message) end # class Datum include Google::Apis::Core::Hashable # [Output Only] A key that provides more detail on the warning being returned. # For example, for warnings where there are no results in a list request for a # particular zone, this key might be scope and the key value might be the zone # name. Other examples might be a key indicating a deprecated resource and a # suggested replacement, or a warning about invalid network settings (for # example, if an instance attempts to perform IP forwarding but is not enabled # for IP forwarding). # Corresponds to the JSON property `key` # @return [String] attr_accessor :key # [Output Only] A warning data value corresponding to the key. # 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 end end # Information about any potential InterconnectAttachments between an # Interconnect at a specific InterconnectLocation, and a specific Cloud Region. class InterconnectLocationRegionInfo include Google::Apis::Core::Hashable # Expected round-trip time in milliseconds, from this InterconnectLocation to a # VM in this region. # Corresponds to the JSON property `expectedRttMs` # @return [Fixnum] attr_accessor :expected_rtt_ms # Identifies the network presence of this location. # Corresponds to the JSON property `locationPresence` # @return [String] attr_accessor :location_presence # URL for the region of this location. # Corresponds to the JSON property `region` # @return [String] attr_accessor :region def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @expected_rtt_ms = args[:expected_rtt_ms] if args.key?(:expected_rtt_ms) @location_presence = args[:location_presence] if args.key?(:location_presence) @region = args[:region] if args.key?(:region) end end # Configuration information for enabling Media Access Control security (Macsec) # on this Interconnect between Google and your on-premises router. class InterconnectMacsec include Google::Apis::Core::Hashable # If set to true, the Interconnect will be configured with a should-secure # MACsec security policy, that allows the Google router to fallback to cleartext # traffic if the MKA session cannot be established. By default, the Interconnect # will be configured with a must-secure security policy that drops all traffic # if the MKA session cannot be established with your router. # Corresponds to the JSON property `failOpen` # @return [Boolean] attr_accessor :fail_open alias_method :fail_open?, :fail_open # Required. A keychain placeholder describing a set of named key objects along # with their start times. A MACsec CKN/CAK will be generated for each key in the # key chain. Google router will automatically pick the key with the most recent # startTime when establishing or re-establishing a MACsec secure link. # Corresponds to the JSON property `preSharedKeys` # @return [Array] attr_accessor :pre_shared_keys def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @fail_open = args[:fail_open] if args.key?(:fail_open) @pre_shared_keys = args[:pre_shared_keys] if args.key?(:pre_shared_keys) end end # MACsec configuration information for the Interconnect. Contains the generated # Connectivity Association Key Name (CKN) and the key (CAK) for this # Interconnect. class InterconnectMacsecConfig include Google::Apis::Core::Hashable # A keychain placeholder describing a set of named key objects along with their # start times. A MACsec CKN/CAK will be generated for each key in the key chain. # Google router will automatically pick the key with the most recent startTime # when establishing or re-establishing a MACsec secure link. # Corresponds to the JSON property `preSharedKeys` # @return [Array] attr_accessor :pre_shared_keys def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @pre_shared_keys = args[:pre_shared_keys] if args.key?(:pre_shared_keys) end end # Describes a pre-shared key used to setup MACsec in static connectivity # association key (CAK) mode. class InterconnectMacsecConfigPreSharedKey include Google::Apis::Core::Hashable # An auto-generated Connectivity Association Key (CAK) for this key. # Corresponds to the JSON property `cak` # @return [String] attr_accessor :cak # An auto-generated Connectivity Association Key Name (CKN) for this key. # Corresponds to the JSON property `ckn` # @return [String] attr_accessor :ckn # User provided name for this pre-shared key. # Corresponds to the JSON property `name` # @return [String] attr_accessor :name # User provided timestamp on or after which this key is valid. # Corresponds to the JSON property `startTime` # @return [String] attr_accessor :start_time def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @cak = args[:cak] if args.key?(:cak) @ckn = args[:ckn] if args.key?(:ckn) @name = args[:name] if args.key?(:name) @start_time = args[:start_time] if args.key?(:start_time) end end # Describes a pre-shared key used to setup MACsec in static connectivity # association key (CAK) mode. class InterconnectMacsecPreSharedKey include Google::Apis::Core::Hashable # Required. A name for this pre-shared key. The name must be 1-63 characters # long, and comply with RFC1035. Specifically, the name must be 1-63 characters # long and match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means # the first character must be a lowercase letter, and all following characters # must be a dash, lowercase letter, or digit, except the last character, which # cannot be a dash. # Corresponds to the JSON property `name` # @return [String] attr_accessor :name # A RFC3339 timestamp on or after which the key is valid. startTime can be in # the future. If the keychain has a single key, startTime can be omitted. If the # keychain has multiple keys, startTime is mandatory for each key. The start # times of keys must be in increasing order. The start times of two consecutive # keys must be at least 6 hours apart. # Corresponds to the JSON property `startTime` # @return [String] attr_accessor :start_time def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @name = args[:name] if args.key?(:name) @start_time = args[:start_time] if args.key?(:start_time) end end # Description of a planned outage on this Interconnect. class InterconnectOutageNotification include Google::Apis::Core::Hashable # If issue_type is IT_PARTIAL_OUTAGE, a list of the Google-side circuit IDs that # will be affected. # Corresponds to the JSON property `affectedCircuits` # @return [Array] attr_accessor :affected_circuits # A description about the purpose of the outage. # Corresponds to the JSON property `description` # @return [String] attr_accessor :description # Scheduled end time for the outage (milliseconds since Unix epoch). # Corresponds to the JSON property `endTime` # @return [Fixnum] attr_accessor :end_time # Form this outage is expected to take, which can take one of the following # values: - OUTAGE: The Interconnect may be completely out of service for some # or all of the specified window. - PARTIAL_OUTAGE: Some circuits comprising the # Interconnect as a whole should remain up, but with reduced bandwidth. Note # that the versions of this enum prefixed with "IT_" have been deprecated in # favor of the unprefixed values. # Corresponds to the JSON property `issueType` # @return [String] attr_accessor :issue_type # Unique identifier for this outage notification. # Corresponds to the JSON property `name` # @return [String] attr_accessor :name # The party that generated this notification, which can take the following value: # - GOOGLE: this notification as generated by Google. Note that the value of # NSRC_GOOGLE has been deprecated in favor of GOOGLE. # Corresponds to the JSON property `source` # @return [String] attr_accessor :source # Scheduled start time for the outage (milliseconds since Unix epoch). # Corresponds to the JSON property `startTime` # @return [Fixnum] attr_accessor :start_time # State of this notification, which can take one of the following values: - # ACTIVE: This outage notification is active. The event could be in the past, # present, or future. See start_time and end_time for scheduling. - CANCELLED: # The outage associated with this notification was cancelled before the outage # was due to start. - COMPLETED: The outage associated with this notification is # complete. Note that the versions of this enum prefixed with "NS_" have been # deprecated in favor of the unprefixed values. # Corresponds to the JSON property `state` # @return [String] attr_accessor :state def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @affected_circuits = args[:affected_circuits] if args.key?(:affected_circuits) @description = args[:description] if args.key?(:description) @end_time = args[:end_time] if args.key?(:end_time) @issue_type = args[:issue_type] if args.key?(:issue_type) @name = args[:name] if args.key?(:name) @source = args[:source] if args.key?(:source) @start_time = args[:start_time] if args.key?(:start_time) @state = args[:state] if args.key?(:state) end end # Response for the InterconnectsGetDiagnosticsRequest. class InterconnectsGetDiagnosticsResponse include Google::Apis::Core::Hashable # Diagnostics information about interconnect, contains detailed and current # technical information about Google's side of the connection. # Corresponds to the JSON property `result` # @return [Google::Apis::ComputeAlpha::InterconnectDiagnostics] attr_accessor :result def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @result = args[:result] if args.key?(:result) end end # Response for the InterconnectsGetMacsecConfigRequest. class InterconnectsGetMacsecConfigResponse include Google::Apis::Core::Hashable # end_interface: MixerGetResponseWithEtagBuilder # Corresponds to the JSON property `etag` # @return [String] attr_accessor :etag # MACsec configuration information for the Interconnect. Contains the generated # Connectivity Association Key Name (CKN) and the key (CAK) for this # Interconnect. # Corresponds to the JSON property `result` # @return [Google::Apis::ComputeAlpha::InterconnectMacsecConfig] attr_accessor :result def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @etag = args[:etag] if args.key?(:etag) @result = args[:result] if args.key?(:result) end end # class InternalIpAddress include Google::Apis::Core::Hashable # IP CIDR address or range. # Corresponds to the JSON property `cidr` # @return [String] attr_accessor :cidr # The owner of the internal IP address. # Corresponds to the JSON property `owner` # @return [String] attr_accessor :owner # The purpose of the internal IP address if applicable. # Corresponds to the JSON property `purpose` # @return [String] attr_accessor :purpose # The region of the internal IP address if applicable. # Corresponds to the JSON property `region` # @return [String] attr_accessor :region # The type of the internal IP address. # 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) @cidr = args[:cidr] if args.key?(:cidr) @owner = args[:owner] if args.key?(:owner) @purpose = args[:purpose] if args.key?(:purpose) @region = args[:region] if args.key?(:region) @type = args[:type] if args.key?(:type) end end # class InternalIpOwner include Google::Apis::Core::Hashable # IP CIDR range being owned. # Corresponds to the JSON property `ipCidrRange` # @return [String] attr_accessor :ip_cidr_range # URLs of the IP owners of the IP CIDR range. # Corresponds to the JSON property `owners` # @return [Array] attr_accessor :owners # Whether this IP CIDR range is reserved for system use. # Corresponds to the JSON property `systemOwned` # @return [Boolean] attr_accessor :system_owned alias_method :system_owned?, :system_owned def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @ip_cidr_range = args[:ip_cidr_range] if args.key?(:ip_cidr_range) @owners = args[:owners] if args.key?(:owners) @system_owned = args[:system_owned] if args.key?(:system_owned) end end # class IpAddressesList include Google::Apis::Core::Hashable # [Output Only] Unique identifier for the resource; defined by the server. # Corresponds to the JSON property `id` # @return [String] attr_accessor :id # A list of InternalIpAddress resources. # Corresponds to the JSON property `items` # @return [Array] attr_accessor :items # [Output Only] Type of resource. Always compute#ipAddressesList for IP # addresses lists. # Corresponds to the JSON property `kind` # @return [String] attr_accessor :kind # [Output Only] This token allows you to get the next page of results for list # requests. If the number of results is larger than maxResults, use the # nextPageToken as a value for the query parameter pageToken in the next list # request. Subsequent list requests will have their own nextPageToken to # continue paging through the results. # Corresponds to the JSON property `nextPageToken` # @return [String] attr_accessor :next_page_token # [Output Only] Server-defined URL for this resource. # Corresponds to the JSON property `selfLink` # @return [String] attr_accessor :self_link # [Output Only] Informational warning message. # Corresponds to the JSON property `warning` # @return [Google::Apis::ComputeAlpha::IpAddressesList::Warning] attr_accessor :warning def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @id = args[:id] if args.key?(:id) @items = args[:items] if args.key?(:items) @kind = args[:kind] if args.key?(:kind) @next_page_token = args[:next_page_token] if args.key?(:next_page_token) @self_link = args[:self_link] if args.key?(:self_link) @warning = args[:warning] if args.key?(:warning) end # [Output Only] Informational warning message. class Warning include Google::Apis::Core::Hashable # [Output Only] A warning code, if applicable. For example, Compute Engine # returns NO_RESULTS_ON_PAGE if there are no results in the response. # Corresponds to the JSON property `code` # @return [String] attr_accessor :code # [Output Only] Metadata about this warning in key: value format. For example: " # data": [ ` "key": "scope", "value": "zones/us-east1-d" ` # Corresponds to the JSON property `data` # @return [Array] attr_accessor :data # [Output Only] A human-readable description of the warning code. # Corresponds to the JSON property `message` # @return [String] attr_accessor :message def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @code = args[:code] if args.key?(:code) @data = args[:data] if args.key?(:data) @message = args[:message] if args.key?(:message) end # class Datum include Google::Apis::Core::Hashable # [Output Only] A key that provides more detail on the warning being returned. # For example, for warnings where there are no results in a list request for a # particular zone, this key might be scope and the key value might be the zone # name. Other examples might be a key indicating a deprecated resource and a # suggested replacement, or a warning about invalid network settings (for # example, if an instance attempts to perform IP forwarding but is not enabled # for IP forwarding). # Corresponds to the JSON property `key` # @return [String] attr_accessor :key # [Output Only] A warning data value corresponding to the key. # 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 end end # Contains a list of IP owners. class IpOwnerList include Google::Apis::Core::Hashable # [Output Only] Unique identifier for the resource; defined by the server. # Corresponds to the JSON property `id` # @return [String] attr_accessor :id # A list of InternalIpOwner resources. # Corresponds to the JSON property `items` # @return [Array] attr_accessor :items # [Output Only] Type of resource. Always compute#ipOwnerList for lists of IP # owners. # Corresponds to the JSON property `kind` # @return [String] attr_accessor :kind # [Output Only] This token allows you to get the next page of results for list # requests. If the number of results is larger than maxResults, use the # nextPageToken as a value for the query parameter pageToken in the next list # request. Subsequent list requests will have their own nextPageToken to # continue paging through the results. # Corresponds to the JSON property `nextPageToken` # @return [String] attr_accessor :next_page_token # [Output Only] Server-defined URL for this resource. # Corresponds to the JSON property `selfLink` # @return [String] attr_accessor :self_link # [Output Only] Informational warning message. # Corresponds to the JSON property `warning` # @return [Google::Apis::ComputeAlpha::IpOwnerList::Warning] attr_accessor :warning def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @id = args[:id] if args.key?(:id) @items = args[:items] if args.key?(:items) @kind = args[:kind] if args.key?(:kind) @next_page_token = args[:next_page_token] if args.key?(:next_page_token) @self_link = args[:self_link] if args.key?(:self_link) @warning = args[:warning] if args.key?(:warning) end # [Output Only] Informational warning message. class Warning include Google::Apis::Core::Hashable # [Output Only] A warning code, if applicable. For example, Compute Engine # returns NO_RESULTS_ON_PAGE if there are no results in the response. # Corresponds to the JSON property `code` # @return [String] attr_accessor :code # [Output Only] Metadata about this warning in key: value format. For example: " # data": [ ` "key": "scope", "value": "zones/us-east1-d" ` # Corresponds to the JSON property `data` # @return [Array] attr_accessor :data # [Output Only] A human-readable description of the warning code. # Corresponds to the JSON property `message` # @return [String] attr_accessor :message def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @code = args[:code] if args.key?(:code) @data = args[:data] if args.key?(:data) @message = args[:message] if args.key?(:message) end # class Datum include Google::Apis::Core::Hashable # [Output Only] A key that provides more detail on the warning being returned. # For example, for warnings where there are no results in a list request for a # particular zone, this key might be scope and the key value might be the zone # name. Other examples might be a key indicating a deprecated resource and a # suggested replacement, or a warning about invalid network settings (for # example, if an instance attempts to perform IP forwarding but is not enabled # for IP forwarding). # Corresponds to the JSON property `key` # @return [String] attr_accessor :key # [Output Only] A warning data value corresponding to the key. # 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 end end # [Deprecated] JWT configuration for origin authentication. JWT configuration # for origin authentication. class Jwt include Google::Apis::Core::Hashable # A JWT containing any of these audiences will be accepted. The service name # will be accepted if audiences is empty. Examples: bookstore_android.apps. # googleusercontent.com, bookstore_web.apps.googleusercontent.com # Corresponds to the JSON property `audiences` # @return [Array] attr_accessor :audiences # Identifies the issuer that issued the JWT, which is usually a URL or an email # address. Examples: https://securetoken.google.com, 1234567-compute@developer. # gserviceaccount.com # Corresponds to the JSON property `issuer` # @return [String] attr_accessor :issuer # The provider's public key set to validate the signature of the JWT. # Corresponds to the JSON property `jwksPublicKeys` # @return [String] attr_accessor :jwks_public_keys # jwt_headers and jwt_params define where to extract the JWT from an HTTP # request. If no explicit location is specified, the following default locations # are tried in order: 1. The Authorization header using the Bearer schema. See ` # here `_. Example: Authorization: Bearer . 2. `access_token` query parameter. # See `this `_ Multiple JWTs can be verified for a request. Each JWT has to be # extracted from the locations its issuer specified or from the default # locations. This field is set if JWT is sent in a request header. This field # specifies the header name. For example, if `header=x-goog-iap-jwt-assertion`, # the header format will be x-goog-iap-jwt-assertion: . # Corresponds to the JSON property `jwtHeaders` # @return [Array] attr_accessor :jwt_headers # This field is set if JWT is sent in a query parameter. This field specifies # the query parameter name. For example, if jwt_params[0] is jwt_token, the JWT # format in the query parameter is /path?jwt_token=. # Corresponds to the JSON property `jwtParams` # @return [Array] attr_accessor :jwt_params def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @audiences = args[:audiences] if args.key?(:audiences) @issuer = args[:issuer] if args.key?(:issuer) @jwks_public_keys = args[:jwks_public_keys] if args.key?(:jwks_public_keys) @jwt_headers = args[:jwt_headers] if args.key?(:jwt_headers) @jwt_params = args[:jwt_params] if args.key?(:jwt_params) end end # [Deprecated] This message specifies a header location to extract JWT token. # This message specifies a header location to extract JWT token. class JwtHeader include Google::Apis::Core::Hashable # The HTTP header name. # Corresponds to the JSON property `name` # @return [String] attr_accessor :name # The value prefix. The value format is "value_prefix" For example, for " # Authorization: Bearer ", value_prefix="Bearer " with a space at the end. # Corresponds to the JSON property `valuePrefix` # @return [String] attr_accessor :value_prefix def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @name = args[:name] if args.key?(:name) @value_prefix = args[:value_prefix] if args.key?(:value_prefix) end end # Represents a License resource. A License represents billing and aggregate # usage data for public and marketplace images. *Caution* This resource is # intended for use only by third-party partners who are creating Cloud # Marketplace images. class License include Google::Apis::Core::Hashable # [Output Only] Deprecated. This field no longer reflects whether a license # charges a usage fee. # Corresponds to the JSON property `chargesUseFee` # @return [Boolean] attr_accessor :charges_use_fee alias_method :charges_use_fee?, :charges_use_fee # [Output Only] Creation timestamp in RFC3339 text format. # Corresponds to the JSON property `creationTimestamp` # @return [String] attr_accessor :creation_timestamp # An optional textual description of the resource; provided by the client when # the resource is created. # Corresponds to the JSON property `description` # @return [String] attr_accessor :description # [Output Only] The unique identifier for the resource. This identifier is # defined by the server. # Corresponds to the JSON property `id` # @return [Fixnum] attr_accessor :id # [Output Only] Type of resource. Always compute#license for licenses. # Corresponds to the JSON property `kind` # @return [String] attr_accessor :kind # [Output Only] The unique code used to attach this license to images, snapshots, # and disks. # Corresponds to the JSON property `licenseCode` # @return [Fixnum] attr_accessor :license_code # Name of the resource. The name must be 1-63 characters long and comply with # RFC1035. # Corresponds to the JSON property `name` # @return [String] attr_accessor :name # # Corresponds to the JSON property `resourceRequirements` # @return [Google::Apis::ComputeAlpha::LicenseResourceRequirements] attr_accessor :resource_requirements # [Output Only] Server-defined URL for the resource. # Corresponds to the JSON property `selfLink` # @return [String] attr_accessor :self_link # [Output Only] Server-defined URL for this resource with the resource id. # Corresponds to the JSON property `selfLinkWithId` # @return [String] attr_accessor :self_link_with_id # If false, licenses will not be copied from the source resource when creating # an image from a disk, disk from snapshot, or snapshot from disk. # Corresponds to the JSON property `transferable` # @return [Boolean] attr_accessor :transferable alias_method :transferable?, :transferable def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @charges_use_fee = args[:charges_use_fee] if args.key?(:charges_use_fee) @creation_timestamp = args[:creation_timestamp] if args.key?(:creation_timestamp) @description = args[:description] if args.key?(:description) @id = args[:id] if args.key?(:id) @kind = args[:kind] if args.key?(:kind) @license_code = args[:license_code] if args.key?(:license_code) @name = args[:name] if args.key?(:name) @resource_requirements = args[:resource_requirements] if args.key?(:resource_requirements) @self_link = args[:self_link] if args.key?(:self_link) @self_link_with_id = args[:self_link_with_id] if args.key?(:self_link_with_id) @transferable = args[:transferable] if args.key?(:transferable) end end # Represents a License Code resource. A License Code is a unique identifier used # to represent a license resource. *Caution* This resource is intended for use # only by third-party partners who are creating Cloud Marketplace images. class LicenseCode include Google::Apis::Core::Hashable # [Output Only] Creation timestamp in RFC3339 text format. # Corresponds to the JSON property `creationTimestamp` # @return [String] attr_accessor :creation_timestamp # [Output Only] Description of this License Code. # Corresponds to the JSON property `description` # @return [String] attr_accessor :description # [Output Only] The unique identifier for the resource. This identifier is # defined by the server. # Corresponds to the JSON property `id` # @return [Fixnum] attr_accessor :id # [Output Only] Type of resource. Always compute#licenseCode for licenses. # Corresponds to the JSON property `kind` # @return [String] attr_accessor :kind # [Output Only] URL and description aliases of Licenses with the same License # Code. # Corresponds to the JSON property `licenseAlias` # @return [Array] attr_accessor :license_alias # [Output Only] Name of the resource. The name is 1-20 characters long and must # be a valid 64 bit integer. # Corresponds to the JSON property `name` # @return [String] attr_accessor :name # [Output Only] Server-defined URL for the resource. # Corresponds to the JSON property `selfLink` # @return [String] attr_accessor :self_link # [Output Only] Current state of this License Code. # Corresponds to the JSON property `state` # @return [String] attr_accessor :state # [Output Only] If true, the license will remain attached when creating images # or snapshots from disks. Otherwise, the license is not transferred. # Corresponds to the JSON property `transferable` # @return [Boolean] attr_accessor :transferable alias_method :transferable?, :transferable def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @creation_timestamp = args[:creation_timestamp] if args.key?(:creation_timestamp) @description = args[:description] if args.key?(:description) @id = args[:id] if args.key?(:id) @kind = args[:kind] if args.key?(:kind) @license_alias = args[:license_alias] if args.key?(:license_alias) @name = args[:name] if args.key?(:name) @self_link = args[:self_link] if args.key?(:self_link) @state = args[:state] if args.key?(:state) @transferable = args[:transferable] if args.key?(:transferable) end end # class LicenseCodeLicenseAlias include Google::Apis::Core::Hashable # [Output Only] Description of this License Code. # Corresponds to the JSON property `description` # @return [String] attr_accessor :description # [Output Only] URL of license corresponding to this License Code. # Corresponds to the JSON property `selfLink` # @return [String] attr_accessor :self_link def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @description = args[:description] if args.key?(:description) @self_link = args[:self_link] if args.key?(:self_link) end end # Commitment for a particular license resource. class LicenseResourceCommitment include Google::Apis::Core::Hashable # The number of licenses purchased. # Corresponds to the JSON property `amount` # @return [Fixnum] attr_accessor :amount # Specifies the core range of the instance for which this license applies. # Corresponds to the JSON property `coresPerLicense` # @return [String] attr_accessor :cores_per_license # Any applicable license URI. # Corresponds to the JSON property `license` # @return [String] attr_accessor :license def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @amount = args[:amount] if args.key?(:amount) @cores_per_license = args[:cores_per_license] if args.key?(:cores_per_license) @license = args[:license] if args.key?(:license) end end # class LicenseResourceRequirements include Google::Apis::Core::Hashable # Minimum number of guest cpus required to use the Instance. Enforced at # Instance creation and Instance start. # Corresponds to the JSON property `minGuestCpuCount` # @return [Fixnum] attr_accessor :min_guest_cpu_count # Minimum memory required to use the Instance. Enforced at Instance creation and # Instance start. # Corresponds to the JSON property `minMemoryMb` # @return [Fixnum] attr_accessor :min_memory_mb def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @min_guest_cpu_count = args[:min_guest_cpu_count] if args.key?(:min_guest_cpu_count) @min_memory_mb = args[:min_memory_mb] if args.key?(:min_memory_mb) end end # class LicensesListResponse include Google::Apis::Core::Hashable # [Output Only] Unique identifier for the resource; defined by the server. # Corresponds to the JSON property `id` # @return [String] attr_accessor :id # A list of License resources. # Corresponds to the JSON property `items` # @return [Array] attr_accessor :items # [Output Only] This token allows you to get the next page of results for list # requests. If the number of results is larger than maxResults, use the # nextPageToken as a value for the query parameter pageToken in the next list # request. Subsequent list requests will have their own nextPageToken to # continue paging through the results. # Corresponds to the JSON property `nextPageToken` # @return [String] attr_accessor :next_page_token # [Output Only] Server-defined URL for this resource. # Corresponds to the JSON property `selfLink` # @return [String] attr_accessor :self_link # [Output Only] Informational warning message. # Corresponds to the JSON property `warning` # @return [Google::Apis::ComputeAlpha::LicensesListResponse::Warning] attr_accessor :warning def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @id = args[:id] if args.key?(:id) @items = args[:items] if args.key?(:items) @next_page_token = args[:next_page_token] if args.key?(:next_page_token) @self_link = args[:self_link] if args.key?(:self_link) @warning = args[:warning] if args.key?(:warning) end # [Output Only] Informational warning message. class Warning include Google::Apis::Core::Hashable # [Output Only] A warning code, if applicable. For example, Compute Engine # returns NO_RESULTS_ON_PAGE if there are no results in the response. # Corresponds to the JSON property `code` # @return [String] attr_accessor :code # [Output Only] Metadata about this warning in key: value format. For example: " # data": [ ` "key": "scope", "value": "zones/us-east1-d" ` # Corresponds to the JSON property `data` # @return [Array] attr_accessor :data # [Output Only] A human-readable description of the warning code. # Corresponds to the JSON property `message` # @return [String] attr_accessor :message def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @code = args[:code] if args.key?(:code) @data = args[:data] if args.key?(:data) @message = args[:message] if args.key?(:message) end # class Datum include Google::Apis::Core::Hashable # [Output Only] A key that provides more detail on the warning being returned. # For example, for warnings where there are no results in a list request for a # particular zone, this key might be scope and the key value might be the zone # name. Other examples might be a key indicating a deprecated resource and a # suggested replacement, or a warning about invalid network settings (for # example, if an instance attempts to perform IP forwarding but is not enabled # for IP forwarding). # Corresponds to the JSON property `key` # @return [String] attr_accessor :key # [Output Only] A warning data value corresponding to the key. # 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 end end # class LocalDisk include Google::Apis::Core::Hashable # Specifies the number of such disks. # Corresponds to the JSON property `diskCount` # @return [Fixnum] attr_accessor :disk_count # Specifies the size of the disk in base-2 GB. # Corresponds to the JSON property `diskSizeGb` # @return [Fixnum] attr_accessor :disk_size_gb # Specifies the desired disk type on the node. This disk type must be a local # storage type (e.g.: local-ssd). Note that for nodeTemplates, this should be # the name of the disk type and not its URL. # Corresponds to the JSON property `diskType` # @return [String] attr_accessor :disk_type def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @disk_count = args[:disk_count] if args.key?(:disk_count) @disk_size_gb = args[:disk_size_gb] if args.key?(:disk_size_gb) @disk_type = args[:disk_type] if args.key?(:disk_type) end end # Configuration for location policy among multiple possible locations (e.g. # preferences for zone selection among zones in a single region). class LocationPolicy include Google::Apis::Core::Hashable # Location configurations mapped by location name. Currently only zone names are # supported and must be represented as valid internal URLs, such as zones/us- # central1-a. # Corresponds to the JSON property `locations` # @return [Hash] attr_accessor :locations # Strategy for distributing VMs across zones in a region. # Corresponds to the JSON property `targetShape` # @return [String] attr_accessor :target_shape def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @locations = args[:locations] if args.key?(:locations) @target_shape = args[:target_shape] if args.key?(:target_shape) end end # class LocationPolicyLocation include Google::Apis::Core::Hashable # Per-zone constraints on location policy for this zone. # Corresponds to the JSON property `constraints` # @return [Google::Apis::ComputeAlpha::LocationPolicyLocationConstraints] attr_accessor :constraints # Preference for a given location. # Corresponds to the JSON property `preference` # @return [String] attr_accessor :preference def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @constraints = args[:constraints] if args.key?(:constraints) @preference = args[:preference] if args.key?(:preference) end end # Per-zone constraints on location policy for this zone. class LocationPolicyLocationConstraints include Google::Apis::Core::Hashable # Maximum number of items that are allowed to be placed in this zone. The value # must be non-negative. # Corresponds to the JSON property `maxCount` # @return [Fixnum] attr_accessor :max_count def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @max_count = args[:max_count] if args.key?(:max_count) end end # This is deprecated and has no effect. Do not use. class LogConfig include Google::Apis::Core::Hashable # This is deprecated and has no effect. Do not use. # Corresponds to the JSON property `cloudAudit` # @return [Google::Apis::ComputeAlpha::LogConfigCloudAuditOptions] attr_accessor :cloud_audit # This is deprecated and has no effect. Do not use. # Corresponds to the JSON property `counter` # @return [Google::Apis::ComputeAlpha::LogConfigCounterOptions] attr_accessor :counter # This is deprecated and has no effect. Do not use. # Corresponds to the JSON property `dataAccess` # @return [Google::Apis::ComputeAlpha::LogConfigDataAccessOptions] attr_accessor :data_access def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @cloud_audit = args[:cloud_audit] if args.key?(:cloud_audit) @counter = args[:counter] if args.key?(:counter) @data_access = args[:data_access] if args.key?(:data_access) end end # This is deprecated and has no effect. Do not use. class LogConfigCloudAuditOptions include Google::Apis::Core::Hashable # This is deprecated and has no effect. Do not use. # Corresponds to the JSON property `authorizationLoggingOptions` # @return [Google::Apis::ComputeAlpha::AuthorizationLoggingOptions] attr_accessor :authorization_logging_options # This is deprecated and has no effect. Do not use. # Corresponds to the JSON property `logName` # @return [String] attr_accessor :log_name def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @authorization_logging_options = args[:authorization_logging_options] if args.key?(:authorization_logging_options) @log_name = args[:log_name] if args.key?(:log_name) end end # This is deprecated and has no effect. Do not use. class LogConfigCounterOptions include Google::Apis::Core::Hashable # This is deprecated and has no effect. Do not use. # Corresponds to the JSON property `customFields` # @return [Array] attr_accessor :custom_fields # This is deprecated and has no effect. Do not use. # Corresponds to the JSON property `field` # @return [String] attr_accessor :field # This is deprecated and has no effect. Do not use. # Corresponds to the JSON property `metric` # @return [String] attr_accessor :metric def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @custom_fields = args[:custom_fields] if args.key?(:custom_fields) @field = args[:field] if args.key?(:field) @metric = args[:metric] if args.key?(:metric) end end # This is deprecated and has no effect. Do not use. class LogConfigCounterOptionsCustomField include Google::Apis::Core::Hashable # This is deprecated and has no effect. Do not use. # Corresponds to the JSON property `name` # @return [String] attr_accessor :name # This is deprecated and has no effect. Do not use. # 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) @name = args[:name] if args.key?(:name) @value = args[:value] if args.key?(:value) end end # This is deprecated and has no effect. Do not use. class LogConfigDataAccessOptions include Google::Apis::Core::Hashable # This is deprecated and has no effect. Do not use. # Corresponds to the JSON property `logMode` # @return [String] attr_accessor :log_mode def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @log_mode = args[:log_mode] if args.key?(:log_mode) end end # Represents a machine image resource. A machine image is a Compute Engine # resource that stores all the configuration, metadata, permissions, and data # from one or more disks required to create a Virtual machine (VM) instance. For # more information, see Machine images. class MachineImage include Google::Apis::Core::Hashable # [Output Only] The creation timestamp for this machine image in RFC3339 text # format. # Corresponds to the JSON property `creationTimestamp` # @return [String] attr_accessor :creation_timestamp # An optional description of this resource. Provide this property when you # create the resource. # Corresponds to the JSON property `description` # @return [String] attr_accessor :description # [Input Only] Whether to attempt an application consistent machine image by # informing the OS to prepare for the snapshot process. # Corresponds to the JSON property `guestFlush` # @return [Boolean] attr_accessor :guest_flush alias_method :guest_flush?, :guest_flush # [Output Only] A unique identifier for this machine image. The server defines # this identifier. # Corresponds to the JSON property `id` # @return [Fixnum] attr_accessor :id # [Output Only] Properties of source instance # Corresponds to the JSON property `instanceProperties` # @return [Google::Apis::ComputeAlpha::InstanceProperties] attr_accessor :instance_properties # [Output Only] The resource type, which is always compute#machineImage for # machine image. # Corresponds to the JSON property `kind` # @return [String] attr_accessor :kind # Encrypts the machine image using a customer-supplied encryption key. After you # encrypt a machine image using a customer-supplied key, you must provide the # same key if you use the machine image later. For example, you must provide the # encryption key when you create an instance from the encrypted machine image in # a future request. Customer-supplied encryption keys do not protect access to # metadata of the machine image. If you do not provide an encryption key when # creating the machine image, then the machine image will be encrypted using an # automatically generated key and you do not need to provide a key to use the # machine image later. # Corresponds to the JSON property `machineImageEncryptionKey` # @return [Google::Apis::ComputeAlpha::CustomerEncryptionKey] attr_accessor :machine_image_encryption_key # Name of the resource; provided by the client when the resource is created. The # name must be 1-63 characters long, and comply with RFC1035. Specifically, the # name must be 1-63 characters long and match the regular expression `[a-z]([-a- # z0-9]*[a-z0-9])?` which means the first character must be a lowercase letter, # and all following characters must be a dash, lowercase letter, or digit, # except the last character, which cannot be a dash. # Corresponds to the JSON property `name` # @return [String] attr_accessor :name # [Output Only] Reserved for future use. # Corresponds to the JSON property `satisfiesPzs` # @return [Boolean] attr_accessor :satisfies_pzs alias_method :satisfies_pzs?, :satisfies_pzs # An array of Machine Image specific properties for disks attached to the source # instance # Corresponds to the JSON property `savedDisks` # @return [Array] attr_accessor :saved_disks # [Output Only] The URL for this machine image. The server defines this URL. # Corresponds to the JSON property `selfLink` # @return [String] attr_accessor :self_link # [Output Only] Server-defined URL for this resource with the resource id. # Corresponds to the JSON property `selfLinkWithId` # @return [String] attr_accessor :self_link_with_id # [Input Only] The customer-supplied encryption key of the disks attached to the # source instance. Required if the source disk is protected by a customer- # supplied encryption key. # Corresponds to the JSON property `sourceDiskEncryptionKeys` # @return [Array] attr_accessor :source_disk_encryption_keys # The source instance used to create the machine image. You can provide this as # a partial or full URL to the resource. For example, the following are valid # values: - https://www.googleapis.com/compute/v1/projects/project/zones/zone / # instances/instance - projects/project/zones/zone/instances/instance # Corresponds to the JSON property `sourceInstance` # @return [String] attr_accessor :source_instance # DEPRECATED: Please use compute#instanceProperties instead. New properties will # not be added to this field. # Corresponds to the JSON property `sourceInstanceProperties` # @return [Google::Apis::ComputeAlpha::SourceInstanceProperties] attr_accessor :source_instance_properties # [Output Only] The status of the machine image. One of the following values: # INVALID, CREATING, READY, DELETING, and UPLOADING. # Corresponds to the JSON property `status` # @return [String] attr_accessor :status # The regional or multi-regional Cloud Storage bucket location where the machine # image is stored. # Corresponds to the JSON property `storageLocations` # @return [Array] attr_accessor :storage_locations # [Output Only] Total size of the storage used by the machine image. # Corresponds to the JSON property `totalStorageBytes` # @return [Fixnum] attr_accessor :total_storage_bytes def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @creation_timestamp = args[:creation_timestamp] if args.key?(:creation_timestamp) @description = args[:description] if args.key?(:description) @guest_flush = args[:guest_flush] if args.key?(:guest_flush) @id = args[:id] if args.key?(:id) @instance_properties = args[:instance_properties] if args.key?(:instance_properties) @kind = args[:kind] if args.key?(:kind) @machine_image_encryption_key = args[:machine_image_encryption_key] if args.key?(:machine_image_encryption_key) @name = args[:name] if args.key?(:name) @satisfies_pzs = args[:satisfies_pzs] if args.key?(:satisfies_pzs) @saved_disks = args[:saved_disks] if args.key?(:saved_disks) @self_link = args[:self_link] if args.key?(:self_link) @self_link_with_id = args[:self_link_with_id] if args.key?(:self_link_with_id) @source_disk_encryption_keys = args[:source_disk_encryption_keys] if args.key?(:source_disk_encryption_keys) @source_instance = args[:source_instance] if args.key?(:source_instance) @source_instance_properties = args[:source_instance_properties] if args.key?(:source_instance_properties) @status = args[:status] if args.key?(:status) @storage_locations = args[:storage_locations] if args.key?(:storage_locations) @total_storage_bytes = args[:total_storage_bytes] if args.key?(:total_storage_bytes) end end # A list of machine images. class MachineImageList include Google::Apis::Core::Hashable # [Output Only] Unique identifier for the resource; defined by the server. # Corresponds to the JSON property `id` # @return [String] attr_accessor :id # A list of MachineImage resources. # Corresponds to the JSON property `items` # @return [Array] attr_accessor :items # [Output Only] The resource type, which is always compute# # machineImagesListResponse for machine image lists. # Corresponds to the JSON property `kind` # @return [String] attr_accessor :kind # [Output Only] This token allows you to get the next page of results for list # requests. If the number of results is larger than maxResults, use the # nextPageToken as a value for the query parameter pageToken in the next list # request. Subsequent list requests will have their own nextPageToken to # continue paging through the results. # Corresponds to the JSON property `nextPageToken` # @return [String] attr_accessor :next_page_token # [Output Only] Server-defined URL for this resource. # Corresponds to the JSON property `selfLink` # @return [String] attr_accessor :self_link # [Output Only] Informational warning message. # Corresponds to the JSON property `warning` # @return [Google::Apis::ComputeAlpha::MachineImageList::Warning] attr_accessor :warning def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @id = args[:id] if args.key?(:id) @items = args[:items] if args.key?(:items) @kind = args[:kind] if args.key?(:kind) @next_page_token = args[:next_page_token] if args.key?(:next_page_token) @self_link = args[:self_link] if args.key?(:self_link) @warning = args[:warning] if args.key?(:warning) end # [Output Only] Informational warning message. class Warning include Google::Apis::Core::Hashable # [Output Only] A warning code, if applicable. For example, Compute Engine # returns NO_RESULTS_ON_PAGE if there are no results in the response. # Corresponds to the JSON property `code` # @return [String] attr_accessor :code # [Output Only] Metadata about this warning in key: value format. For example: " # data": [ ` "key": "scope", "value": "zones/us-east1-d" ` # Corresponds to the JSON property `data` # @return [Array] attr_accessor :data # [Output Only] A human-readable description of the warning code. # Corresponds to the JSON property `message` # @return [String] attr_accessor :message def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @code = args[:code] if args.key?(:code) @data = args[:data] if args.key?(:data) @message = args[:message] if args.key?(:message) end # class Datum include Google::Apis::Core::Hashable # [Output Only] A key that provides more detail on the warning being returned. # For example, for warnings where there are no results in a list request for a # particular zone, this key might be scope and the key value might be the zone # name. Other examples might be a key indicating a deprecated resource and a # suggested replacement, or a warning about invalid network settings (for # example, if an instance attempts to perform IP forwarding but is not enabled # for IP forwarding). # Corresponds to the JSON property `key` # @return [String] attr_accessor :key # [Output Only] A warning data value corresponding to the key. # 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 end end # Represents a Machine Type resource. You can use specific machine types for # your VM instances based on performance and pricing requirements. For more # information, read Machine Types. class MachineType include Google::Apis::Core::Hashable # [Output Only] A list of accelerator configurations assigned to this machine # type. # Corresponds to the JSON property `accelerators` # @return [Array] attr_accessor :accelerators # [Output Only] The architecture of the machine type. # Corresponds to the JSON property `architecture` # @return [String] attr_accessor :architecture # [Output Only] Creation timestamp in RFC3339 text format. # Corresponds to the JSON property `creationTimestamp` # @return [String] attr_accessor :creation_timestamp # Deprecation status for a public resource. # Corresponds to the JSON property `deprecated` # @return [Google::Apis::ComputeAlpha::DeprecationStatus] attr_accessor :deprecated # [Output Only] An optional textual description of the resource. # Corresponds to the JSON property `description` # @return [String] attr_accessor :description # [Output Only] The number of virtual CPUs that are available to the instance. # Corresponds to the JSON property `guestCpus` # @return [Fixnum] attr_accessor :guest_cpus # [Output Only] The unique identifier for the resource. This identifier is # defined by the server. # Corresponds to the JSON property `id` # @return [Fixnum] attr_accessor :id # [Output Only] Whether this machine type has a shared CPU. See Shared-core # machine types for more information. # Corresponds to the JSON property `isSharedCpu` # @return [Boolean] attr_accessor :is_shared_cpu alias_method :is_shared_cpu?, :is_shared_cpu # [Output Only] The type of the resource. Always compute#machineType for machine # types. # Corresponds to the JSON property `kind` # @return [String] attr_accessor :kind # [Output Only] Maximum persistent disks allowed. # Corresponds to the JSON property `maximumPersistentDisks` # @return [Fixnum] attr_accessor :maximum_persistent_disks # [Output Only] Maximum total persistent disks size (GB) allowed. # Corresponds to the JSON property `maximumPersistentDisksSizeGb` # @return [Fixnum] attr_accessor :maximum_persistent_disks_size_gb # [Output Only] The amount of physical memory available to the instance, defined # in MB. # Corresponds to the JSON property `memoryMb` # @return [Fixnum] attr_accessor :memory_mb # [Output Only] Name of the resource. # Corresponds to the JSON property `name` # @return [String] attr_accessor :name # [Output Only] Server-defined URL for the resource. # Corresponds to the JSON property `selfLink` # @return [String] attr_accessor :self_link # [Output Only] Server-defined URL for this resource with the resource id. # Corresponds to the JSON property `selfLinkWithId` # @return [String] attr_accessor :self_link_with_id # [Output Only] The name of the zone where the machine type resides, such as us- # central1-a. # 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) @accelerators = args[:accelerators] if args.key?(:accelerators) @architecture = args[:architecture] if args.key?(:architecture) @creation_timestamp = args[:creation_timestamp] if args.key?(:creation_timestamp) @deprecated = args[:deprecated] if args.key?(:deprecated) @description = args[:description] if args.key?(:description) @guest_cpus = args[:guest_cpus] if args.key?(:guest_cpus) @id = args[:id] if args.key?(:id) @is_shared_cpu = args[:is_shared_cpu] if args.key?(:is_shared_cpu) @kind = args[:kind] if args.key?(:kind) @maximum_persistent_disks = args[:maximum_persistent_disks] if args.key?(:maximum_persistent_disks) @maximum_persistent_disks_size_gb = args[:maximum_persistent_disks_size_gb] if args.key?(:maximum_persistent_disks_size_gb) @memory_mb = args[:memory_mb] if args.key?(:memory_mb) @name = args[:name] if args.key?(:name) @self_link = args[:self_link] if args.key?(:self_link) @self_link_with_id = args[:self_link_with_id] if args.key?(:self_link_with_id) @zone = args[:zone] if args.key?(:zone) end # class Accelerator include Google::Apis::Core::Hashable # Number of accelerator cards exposed to the guest. # Corresponds to the JSON property `guestAcceleratorCount` # @return [Fixnum] attr_accessor :guest_accelerator_count # The accelerator type resource name, not a full URL, e.g. 'nvidia-tesla-k80'. # Corresponds to the JSON property `guestAcceleratorType` # @return [String] attr_accessor :guest_accelerator_type def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @guest_accelerator_count = args[:guest_accelerator_count] if args.key?(:guest_accelerator_count) @guest_accelerator_type = args[:guest_accelerator_type] if args.key?(:guest_accelerator_type) end end end # class MachineTypeAggregatedList include Google::Apis::Core::Hashable # [Output Only] Unique identifier for the resource; defined by the server. # Corresponds to the JSON property `id` # @return [String] attr_accessor :id # A list of MachineTypesScopedList resources. # Corresponds to the JSON property `items` # @return [Hash] attr_accessor :items # [Output Only] Type of resource. Always compute#machineTypeAggregatedList for # aggregated lists of machine types. # Corresponds to the JSON property `kind` # @return [String] attr_accessor :kind # [Output Only] This token allows you to get the next page of results for list # requests. If the number of results is larger than maxResults, use the # nextPageToken as a value for the query parameter pageToken in the next list # request. Subsequent list requests will have their own nextPageToken to # continue paging through the results. # Corresponds to the JSON property `nextPageToken` # @return [String] attr_accessor :next_page_token # [Output Only] Server-defined URL for this resource. # Corresponds to the JSON property `selfLink` # @return [String] attr_accessor :self_link # [Output Only] Unreachable resources. # Corresponds to the JSON property `unreachables` # @return [Array] attr_accessor :unreachables # [Output Only] Informational warning message. # Corresponds to the JSON property `warning` # @return [Google::Apis::ComputeAlpha::MachineTypeAggregatedList::Warning] attr_accessor :warning def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @id = args[:id] if args.key?(:id) @items = args[:items] if args.key?(:items) @kind = args[:kind] if args.key?(:kind) @next_page_token = args[:next_page_token] if args.key?(:next_page_token) @self_link = args[:self_link] if args.key?(:self_link) @unreachables = args[:unreachables] if args.key?(:unreachables) @warning = args[:warning] if args.key?(:warning) end # [Output Only] Informational warning message. class Warning include Google::Apis::Core::Hashable # [Output Only] A warning code, if applicable. For example, Compute Engine # returns NO_RESULTS_ON_PAGE if there are no results in the response. # Corresponds to the JSON property `code` # @return [String] attr_accessor :code # [Output Only] Metadata about this warning in key: value format. For example: " # data": [ ` "key": "scope", "value": "zones/us-east1-d" ` # Corresponds to the JSON property `data` # @return [Array] attr_accessor :data # [Output Only] A human-readable description of the warning code. # Corresponds to the JSON property `message` # @return [String] attr_accessor :message def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @code = args[:code] if args.key?(:code) @data = args[:data] if args.key?(:data) @message = args[:message] if args.key?(:message) end # class Datum include Google::Apis::Core::Hashable # [Output Only] A key that provides more detail on the warning being returned. # For example, for warnings where there are no results in a list request for a # particular zone, this key might be scope and the key value might be the zone # name. Other examples might be a key indicating a deprecated resource and a # suggested replacement, or a warning about invalid network settings (for # example, if an instance attempts to perform IP forwarding but is not enabled # for IP forwarding). # Corresponds to the JSON property `key` # @return [String] attr_accessor :key # [Output Only] A warning data value corresponding to the key. # 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 end end # Contains a list of machine types. class MachineTypeList include Google::Apis::Core::Hashable # [Output Only] Unique identifier for the resource; defined by the server. # Corresponds to the JSON property `id` # @return [String] attr_accessor :id # A list of MachineType resources. # Corresponds to the JSON property `items` # @return [Array] attr_accessor :items # [Output Only] Type of resource. Always compute#machineTypeList for lists of # machine types. # Corresponds to the JSON property `kind` # @return [String] attr_accessor :kind # [Output Only] This token allows you to get the next page of results for list # requests. If the number of results is larger than maxResults, use the # nextPageToken as a value for the query parameter pageToken in the next list # request. Subsequent list requests will have their own nextPageToken to # continue paging through the results. # Corresponds to the JSON property `nextPageToken` # @return [String] attr_accessor :next_page_token # [Output Only] Server-defined URL for this resource. # Corresponds to the JSON property `selfLink` # @return [String] attr_accessor :self_link # [Output Only] Informational warning message. # Corresponds to the JSON property `warning` # @return [Google::Apis::ComputeAlpha::MachineTypeList::Warning] attr_accessor :warning def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @id = args[:id] if args.key?(:id) @items = args[:items] if args.key?(:items) @kind = args[:kind] if args.key?(:kind) @next_page_token = args[:next_page_token] if args.key?(:next_page_token) @self_link = args[:self_link] if args.key?(:self_link) @warning = args[:warning] if args.key?(:warning) end # [Output Only] Informational warning message. class Warning include Google::Apis::Core::Hashable # [Output Only] A warning code, if applicable. For example, Compute Engine # returns NO_RESULTS_ON_PAGE if there are no results in the response. # Corresponds to the JSON property `code` # @return [String] attr_accessor :code # [Output Only] Metadata about this warning in key: value format. For example: " # data": [ ` "key": "scope", "value": "zones/us-east1-d" ` # Corresponds to the JSON property `data` # @return [Array] attr_accessor :data # [Output Only] A human-readable description of the warning code. # Corresponds to the JSON property `message` # @return [String] attr_accessor :message def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @code = args[:code] if args.key?(:code) @data = args[:data] if args.key?(:data) @message = args[:message] if args.key?(:message) end # class Datum include Google::Apis::Core::Hashable # [Output Only] A key that provides more detail on the warning being returned. # For example, for warnings where there are no results in a list request for a # particular zone, this key might be scope and the key value might be the zone # name. Other examples might be a key indicating a deprecated resource and a # suggested replacement, or a warning about invalid network settings (for # example, if an instance attempts to perform IP forwarding but is not enabled # for IP forwarding). # Corresponds to the JSON property `key` # @return [String] attr_accessor :key # [Output Only] A warning data value corresponding to the key. # 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 end end # class MachineTypesScopedList include Google::Apis::Core::Hashable # [Output Only] A list of machine types contained in this scope. # Corresponds to the JSON property `machineTypes` # @return [Array] attr_accessor :machine_types # [Output Only] An informational warning that appears when the machine types # list is empty. # Corresponds to the JSON property `warning` # @return [Google::Apis::ComputeAlpha::MachineTypesScopedList::Warning] attr_accessor :warning def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @machine_types = args[:machine_types] if args.key?(:machine_types) @warning = args[:warning] if args.key?(:warning) end # [Output Only] An informational warning that appears when the machine types # list is empty. class Warning include Google::Apis::Core::Hashable # [Output Only] A warning code, if applicable. For example, Compute Engine # returns NO_RESULTS_ON_PAGE if there are no results in the response. # Corresponds to the JSON property `code` # @return [String] attr_accessor :code # [Output Only] Metadata about this warning in key: value format. For example: " # data": [ ` "key": "scope", "value": "zones/us-east1-d" ` # Corresponds to the JSON property `data` # @return [Array] attr_accessor :data # [Output Only] A human-readable description of the warning code. # Corresponds to the JSON property `message` # @return [String] attr_accessor :message def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @code = args[:code] if args.key?(:code) @data = args[:data] if args.key?(:data) @message = args[:message] if args.key?(:message) end # class Datum include Google::Apis::Core::Hashable # [Output Only] A key that provides more detail on the warning being returned. # For example, for warnings where there are no results in a list request for a # particular zone, this key might be scope and the key value might be the zone # name. Other examples might be a key indicating a deprecated resource and a # suggested replacement, or a warning about invalid network settings (for # example, if an instance attempts to perform IP forwarding but is not enabled # for IP forwarding). # Corresponds to the JSON property `key` # @return [String] attr_accessor :key # [Output Only] A warning data value corresponding to the key. # 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 end end # A Managed Instance resource. class ManagedInstance include Google::Apis::Core::Hashable # [Output Only] Instances config revision applied to this instance. # Corresponds to the JSON property `allInstancesConfig` # @return [Google::Apis::ComputeAlpha::ManagedInstanceAllInstancesConfig] attr_accessor :all_instances_config # [Output Only] The current action that the managed instance group has scheduled # for the instance. Possible values: - NONE The instance is running, and the # managed instance group does not have any scheduled actions for this instance. - # CREATING The managed instance group is creating this instance. If the group # fails to create this instance, it will try again until it is successful. - # CREATING_WITHOUT_RETRIES The managed instance group is attempting to create # this instance only once. If the group fails to create this instance, it does # not try again and the group's targetSize value is decreased instead. - # RECREATING The managed instance group is recreating this instance. - DELETING # The managed instance group is permanently deleting this instance. - ABANDONING # The managed instance group is abandoning this instance. The instance will be # removed from the instance group and from any target pools that are associated # with this group. - RESTARTING The managed instance group is restarting the # instance. - REFRESHING The managed instance group is applying configuration # changes to the instance without stopping it. For example, the group can update # the target pool list for an instance without stopping that instance. - # VERIFYING The managed instance group has created the instance and it is in the # process of being verified. # Corresponds to the JSON property `currentAction` # @return [String] attr_accessor :current_action # [Output only] The unique identifier for this resource. This field is empty # when instance does not exist. # Corresponds to the JSON property `id` # @return [Fixnum] attr_accessor :id # [Output Only] The URL of the instance. The URL can exist even if the instance # has not yet been created. # Corresponds to the JSON property `instance` # @return [String] attr_accessor :instance # [Output Only] Health state of the instance per health-check. # Corresponds to the JSON property `instanceHealth` # @return [Array] attr_accessor :instance_health # [Output Only] The status of the instance. This field is empty when the # instance does not exist. # Corresponds to the JSON property `instanceStatus` # @return [String] attr_accessor :instance_status # [Output Only] The intended template of the instance. This field is empty when # current_action is one of ` DELETING, ABANDONING `. # Corresponds to the JSON property `instanceTemplate` # @return [String] attr_accessor :instance_template # [Output Only] Information about the last attempt to create or delete the # instance. # Corresponds to the JSON property `lastAttempt` # @return [Google::Apis::ComputeAlpha::ManagedInstanceLastAttempt] attr_accessor :last_attempt # Preserved state for a given instance. # Corresponds to the JSON property `preservedStateFromConfig` # @return [Google::Apis::ComputeAlpha::PreservedState] attr_accessor :preserved_state_from_config # Preserved state for a given instance. # Corresponds to the JSON property `preservedStateFromPolicy` # @return [Google::Apis::ComputeAlpha::PreservedState] attr_accessor :preserved_state_from_policy # [Output Only] Tag describing the version. # Corresponds to the JSON property `tag` # @return [String] attr_accessor :tag # [Output Only] The eventual status of the instance. The instance group manager # will not be identified as stable till each managed instance reaches its # targetStatus. # Corresponds to the JSON property `targetStatus` # @return [String] attr_accessor :target_status # [Output Only] Intended version of this instance. # Corresponds to the JSON property `version` # @return [Google::Apis::ComputeAlpha::ManagedInstanceVersion] attr_accessor :version def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @all_instances_config = args[:all_instances_config] if args.key?(:all_instances_config) @current_action = args[:current_action] if args.key?(:current_action) @id = args[:id] if args.key?(:id) @instance = args[:instance] if args.key?(:instance) @instance_health = args[:instance_health] if args.key?(:instance_health) @instance_status = args[:instance_status] if args.key?(:instance_status) @instance_template = args[:instance_template] if args.key?(:instance_template) @last_attempt = args[:last_attempt] if args.key?(:last_attempt) @preserved_state_from_config = args[:preserved_state_from_config] if args.key?(:preserved_state_from_config) @preserved_state_from_policy = args[:preserved_state_from_policy] if args.key?(:preserved_state_from_policy) @tag = args[:tag] if args.key?(:tag) @target_status = args[:target_status] if args.key?(:target_status) @version = args[:version] if args.key?(:version) end end # class ManagedInstanceAllInstancesConfig include Google::Apis::Core::Hashable # [Output Only] Instances config revision. This value is in RFC3339 text format. # Corresponds to the JSON property `revision` # @return [String] attr_accessor :revision def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @revision = args[:revision] if args.key?(:revision) end end # class ManagedInstanceInstanceHealth include Google::Apis::Core::Hashable # [Output Only] The current detailed instance health state. # Corresponds to the JSON property `detailedHealthState` # @return [String] attr_accessor :detailed_health_state # [Output Only] The URL for the health check that verifies whether the instance # is healthy. # Corresponds to the JSON property `healthCheck` # @return [String] attr_accessor :health_check # [Output Only] The current instance health state. This field will not get # promoted to beta/GA and might be removed from alpha APIs after 01/12/2019. # Please use detailed_health_state field instead. # Corresponds to the JSON property `healthState` # @return [String] attr_accessor :health_state def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @detailed_health_state = args[:detailed_health_state] if args.key?(:detailed_health_state) @health_check = args[:health_check] if args.key?(:health_check) @health_state = args[:health_state] if args.key?(:health_state) end end # class ManagedInstanceLastAttempt include Google::Apis::Core::Hashable # [Output Only] Encountered errors during the last attempt to create or delete # the instance. # Corresponds to the JSON property `errors` # @return [Google::Apis::ComputeAlpha::ManagedInstanceLastAttempt::Errors] attr_accessor :errors def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @errors = args[:errors] if args.key?(:errors) end # [Output Only] Encountered errors during the last attempt to create or delete # the instance. class Errors include Google::Apis::Core::Hashable # [Output Only] The array of errors encountered while processing this operation. # Corresponds to the JSON property `errors` # @return [Array] attr_accessor :errors def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @errors = args[:errors] if args.key?(:errors) end # class Error include Google::Apis::Core::Hashable # [Output Only] The error type identifier for this error. # Corresponds to the JSON property `code` # @return [String] attr_accessor :code # [Output Only] Indicates the field in the request that caused the error. This # property is optional. # Corresponds to the JSON property `location` # @return [String] attr_accessor :location # [Output Only] An optional, human-readable error message. # Corresponds to the JSON property `message` # @return [String] attr_accessor :message def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @code = args[:code] if args.key?(:code) @location = args[:location] if args.key?(:location) @message = args[:message] if args.key?(:message) end end end end # class ManagedInstanceVersion include Google::Apis::Core::Hashable # [Output Only] The intended template of the instance. This field is empty when # current_action is one of ` DELETING, ABANDONING `. # Corresponds to the JSON property `instanceTemplate` # @return [String] attr_accessor :instance_template # [Output Only] Name of the version. # 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) @instance_template = args[:instance_template] if args.key?(:instance_template) @name = args[:name] if args.key?(:name) end end # A metadata key/value entry. class Metadata include Google::Apis::Core::Hashable # Specifies a fingerprint for this request, which is essentially a hash of the # metadata's contents and used for optimistic locking. The fingerprint is # initially generated by Compute Engine and changes after every request to # modify or update metadata. You must always provide an up-to-date fingerprint # hash in order to update or change metadata, otherwise the request will fail # with error 412 conditionNotMet. To see the latest fingerprint, make a get() # request to retrieve the resource. # Corresponds to the JSON property `fingerprint` # NOTE: Values are automatically base64 encoded/decoded in the client library. # @return [String] attr_accessor :fingerprint # Array of key/value pairs. The total size of all keys and values must be less # than 512 KB. # Corresponds to the JSON property `items` # @return [Array] attr_accessor :items # [Output Only] Type of the resource. Always compute#metadata for metadata. # Corresponds to the JSON property `kind` # @return [String] attr_accessor :kind def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @fingerprint = args[:fingerprint] if args.key?(:fingerprint) @items = args[:items] if args.key?(:items) @kind = args[:kind] if args.key?(:kind) end # Metadata class Item include Google::Apis::Core::Hashable # Key for the metadata entry. Keys must conform to the following regexp: [a-zA- # Z0-9-_]+, and be less than 128 bytes in length. This is reflected as part of a # URL in the metadata server. Additionally, to avoid ambiguity, keys must not # conflict with any other metadata keys for the project. # Corresponds to the JSON property `key` # @return [String] attr_accessor :key # Value for the metadata entry. These are free-form strings, and only have # meaning as interpreted by the image running in the instance. The only # restriction placed on values is that their size must be less than or equal to # 262144 bytes (256 KiB). # 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 end # [Deprecated] Custom authenticator credentials. Custom authenticator # credentials. class MetadataCredentialsFromPlugin include Google::Apis::Core::Hashable # Plugin name. # Corresponds to the JSON property `name` # @return [String] attr_accessor :name # A text proto that conforms to a Struct type definition interpreted by the # plugin. # Corresponds to the JSON property `structConfig` # @return [String] attr_accessor :struct_config def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @name = args[:name] if args.key?(:name) @struct_config = args[:struct_config] if args.key?(:struct_config) end end # Opaque filter criteria used by load balancers to restrict routing # configuration to a limited set of load balancing proxies. Proxies and sidecars # involved in load balancing would typically present metadata to the load # balancers that need to match criteria specified here. If a match takes place, # the relevant configuration is made available to those proxies. For each # metadataFilter in this list, if its filterMatchCriteria is set to MATCH_ANY, # at least one of the filterLabels must match the corresponding label provided # in the metadata. If its filterMatchCriteria is set to MATCH_ALL, then all of # its filterLabels must match with corresponding labels provided in the metadata. # An example for using metadataFilters would be: if load balancing involves # Envoys, they receive routing configuration when values in metadataFilters # match values supplied in of their XDS requests to loadbalancers. class MetadataFilter include Google::Apis::Core::Hashable # The list of label value pairs that must match labels in the provided metadata # based on filterMatchCriteria This list must not be empty and can have at the # most 64 entries. # Corresponds to the JSON property `filterLabels` # @return [Array] attr_accessor :filter_labels # Specifies how individual filter label matches within the list of filterLabels # and contributes toward the overall metadataFilter match. Supported values are: # - MATCH_ANY: at least one of the filterLabels must have a matching label in # the provided metadata. - MATCH_ALL: all filterLabels must have matching labels # in the provided metadata. # Corresponds to the JSON property `filterMatchCriteria` # @return [String] attr_accessor :filter_match_criteria def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @filter_labels = args[:filter_labels] if args.key?(:filter_labels) @filter_match_criteria = args[:filter_match_criteria] if args.key?(:filter_match_criteria) end end # MetadataFilter label name value pairs that are expected to match corresponding # labels presented as metadata to the load balancer. class MetadataFilterLabelMatch include Google::Apis::Core::Hashable # Name of metadata label. The name can have a maximum length of 1024 characters # and must be at least 1 character long. # Corresponds to the JSON property `name` # @return [String] attr_accessor :name # The value of the label must match the specified value. value can have a # maximum length of 1024 characters. # 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) @name = args[:name] if args.key?(:name) @value = args[:value] if args.key?(:value) end end # [Deprecated] Configuration for the mutual Tls mode for peer authentication. # Configuration for the mutual Tls mode for peer authentication. class MutualTls include Google::Apis::Core::Hashable # Specifies if the server TLS is configured to be strict or permissive. This # field can be set to one of the following: STRICT: Client certificate must be # presented, connection is in TLS. PERMISSIVE: Client certificate can be omitted, # connection can be either plaintext or TLS. # Corresponds to the JSON property `mode` # @return [String] attr_accessor :mode def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @mode = args[:mode] if args.key?(:mode) end end # The named port. For example: <"http", 80>. class NamedPort include Google::Apis::Core::Hashable # The name for this named port. The name must be 1-63 characters long, and # comply with RFC1035. # Corresponds to the JSON property `name` # @return [String] attr_accessor :name # The port number, which can be a value between 1 and 65535. # Corresponds to the JSON property `port` # @return [Fixnum] attr_accessor :port def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @name = args[:name] if args.key?(:name) @port = args[:port] if args.key?(:port) end end # Represents a VPC Network resource. Networks connect resources to each other # and to the internet. For more information, read Virtual Private Cloud (VPC) # Network. class Network include Google::Apis::Core::Hashable # Deprecated in favor of subnet mode networks. The range of internal addresses # that are legal on this network. This range is a CIDR specification, for # example: 192.168.0.0/16. Provided by the client when the network is created. # Corresponds to the JSON property `IPv4Range` # @return [String] attr_accessor :i_pv4_range # Must be set to create a VPC network. If not set, a legacy network is created. # When set to true, the VPC network is created in auto mode. When set to false, # the VPC network is created in custom mode. An auto mode VPC network starts # with one subnet per region. Each subnet has a predetermined range as described # in Auto mode VPC network IP ranges. For custom mode VPC networks, you can add # subnets using the subnetworks insert method. # Corresponds to the JSON property `autoCreateSubnetworks` # @return [Boolean] attr_accessor :auto_create_subnetworks alias_method :auto_create_subnetworks?, :auto_create_subnetworks # [Output Only] Creation timestamp in RFC3339 text format. # Corresponds to the JSON property `creationTimestamp` # @return [String] attr_accessor :creation_timestamp # An optional description of this resource. Provide this field when you create # the resource. # Corresponds to the JSON property `description` # @return [String] attr_accessor :description # Enable ULA internal ipv6 on this network. Enabling this feature will assign a / # 48 from google defined ULA prefix fd20::/20. . # Corresponds to the JSON property `enableUlaInternalIpv6` # @return [Boolean] attr_accessor :enable_ula_internal_ipv6 alias_method :enable_ula_internal_ipv6?, :enable_ula_internal_ipv6 # [Output Only] URL of the firewall policy the network is associated with. # Corresponds to the JSON property `firewallPolicy` # @return [String] attr_accessor :firewall_policy # [Output Only] The gateway address for default routing out of the network, # selected by GCP. # Corresponds to the JSON property `gatewayIPv4` # @return [String] attr_accessor :gateway_i_pv4 # [Output Only] The unique identifier for the resource. This identifier is # defined by the server. # Corresponds to the JSON property `id` # @return [Fixnum] attr_accessor :id # When enabling ula internal ipv6, caller optionally can specify the /48 range # they want from the google defined ULA prefix fd20::/20. The input must be a # valid /48 ULA IPv6 address and must be within the fd20::/20. Operation will # fail if the speficied /48 is already in used by another resource. If the field # is not speficied, then a /48 range will be randomly allocated from fd20::/20 # and returned via this field. . # Corresponds to the JSON property `internalIpv6Range` # @return [String] attr_accessor :internal_ipv6_range # [Output Only] Type of the resource. Always compute#network for networks. # Corresponds to the JSON property `kind` # @return [String] attr_accessor :kind # Maximum Transmission Unit in bytes. The minimum value for this field is 1460 # and the maximum value is 1500 bytes. If unspecified, defaults to 1460. # Corresponds to the JSON property `mtu` # @return [Fixnum] attr_accessor :mtu # Name of the resource. Provided by the client when the resource is created. The # name must be 1-63 characters long, and comply with RFC1035. Specifically, the # name must be 1-63 characters long and match the regular expression `[a-z]([-a- # z0-9]*[a-z0-9])?`. The first character must be a lowercase letter, and all # following characters (except for the last character) must be a dash, lowercase # letter, or digit. The last character must be a lowercase letter or digit. # Corresponds to the JSON property `name` # @return [String] attr_accessor :name # The network firewall policy enforcement order. Can be either # AFTER_CLASSIC_FIREWALL or BEFORE_CLASSIC_FIREWALL. Defaults to # AFTER_CLASSIC_FIREWALL if the field is not specified. # Corresponds to the JSON property `networkFirewallPolicyEnforcementOrder` # @return [String] attr_accessor :network_firewall_policy_enforcement_order # [Output Only] A list of network peerings for the resource. # Corresponds to the JSON property `peerings` # @return [Array] attr_accessor :peerings # [Output Only] URL of the region where the regional network resides. This field # is not applicable to global network. You must specify this field as part of # the HTTP request URL. It is not settable as a field in the request body. # Corresponds to the JSON property `region` # @return [String] attr_accessor :region # A routing configuration attached to a network resource. The message includes # the list of routers associated with the network, and a flag indicating the # type of routing behavior to enforce network-wide. # Corresponds to the JSON property `routingConfig` # @return [Google::Apis::ComputeAlpha::NetworkRoutingConfig] attr_accessor :routing_config # [Output Only] Server-defined URL for the resource. # Corresponds to the JSON property `selfLink` # @return [String] attr_accessor :self_link # [Output Only] Server-defined URL for this resource with the resource id. # Corresponds to the JSON property `selfLinkWithId` # @return [String] attr_accessor :self_link_with_id # [Output Only] Server-defined fully-qualified URLs for all subnetworks in this # VPC network. # Corresponds to the JSON property `subnetworks` # @return [Array] attr_accessor :subnetworks 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) @auto_create_subnetworks = args[:auto_create_subnetworks] if args.key?(:auto_create_subnetworks) @creation_timestamp = args[:creation_timestamp] if args.key?(:creation_timestamp) @description = args[:description] if args.key?(:description) @enable_ula_internal_ipv6 = args[:enable_ula_internal_ipv6] if args.key?(:enable_ula_internal_ipv6) @firewall_policy = args[:firewall_policy] if args.key?(:firewall_policy) @gateway_i_pv4 = args[:gateway_i_pv4] if args.key?(:gateway_i_pv4) @id = args[:id] if args.key?(:id) @internal_ipv6_range = args[:internal_ipv6_range] if args.key?(:internal_ipv6_range) @kind = args[:kind] if args.key?(:kind) @mtu = args[:mtu] if args.key?(:mtu) @name = args[:name] if args.key?(:name) @network_firewall_policy_enforcement_order = args[:network_firewall_policy_enforcement_order] if args.key?(:network_firewall_policy_enforcement_order) @peerings = args[:peerings] if args.key?(:peerings) @region = args[:region] if args.key?(:region) @routing_config = args[:routing_config] if args.key?(:routing_config) @self_link = args[:self_link] if args.key?(:self_link) @self_link_with_id = args[:self_link_with_id] if args.key?(:self_link_with_id) @subnetworks = args[:subnetworks] if args.key?(:subnetworks) end end # Represents a Google Cloud Armor network edge security service resource. class NetworkEdgeSecurityService include Google::Apis::Core::Hashable # [Output Only] Creation timestamp in RFC3339 text format. # Corresponds to the JSON property `creationTimestamp` # @return [String] attr_accessor :creation_timestamp # An optional description of this resource. Provide this property when you # create the resource. # Corresponds to the JSON property `description` # @return [String] attr_accessor :description # Fingerprint of this resource. A hash of the contents stored in this object. # This field is used in optimistic locking. This field will be ignored when # inserting a NetworkEdgeSecurityService. An up-to-date fingerprint must be # provided in order to update the NetworkEdgeSecurityService, otherwise the # request will fail with error 412 conditionNotMet. To see the latest # fingerprint, make a get() request to retrieve a NetworkEdgeSecurityService. # Corresponds to the JSON property `fingerprint` # NOTE: Values are automatically base64 encoded/decoded in the client library. # @return [String] attr_accessor :fingerprint # [Output Only] The unique identifier for the resource. This identifier is # defined by the server. # Corresponds to the JSON property `id` # @return [Fixnum] attr_accessor :id # [Output only] Type of the resource. Always compute#networkEdgeSecurityService # for NetworkEdgeSecurityServices # Corresponds to the JSON property `kind` # @return [String] attr_accessor :kind # Name of the resource. Provided by the client when the resource is created. The # name must be 1-63 characters long, and comply with RFC1035. Specifically, the # name must be 1-63 characters long and match the regular expression `[a-z]([-a- # z0-9]*[a-z0-9])?` which means the first character must be a lowercase letter, # and all following characters must be a dash, lowercase letter, or digit, # except the last character, which cannot be a dash. # Corresponds to the JSON property `name` # @return [String] attr_accessor :name # [Output Only] URL of the region where the resource resides. You must specify # this field as part of the HTTP request URL. It is not settable as a field in # the request body. # Corresponds to the JSON property `region` # @return [String] attr_accessor :region # The resource URL for the network edge security service associated with this # network edge security service. # Corresponds to the JSON property `securityPolicy` # @return [String] attr_accessor :security_policy # [Output Only] Server-defined URL for the resource. # Corresponds to the JSON property `selfLink` # @return [String] attr_accessor :self_link # [Output Only] Server-defined URL for this resource with the resource id. # Corresponds to the JSON property `selfLinkWithId` # @return [String] attr_accessor :self_link_with_id def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @creation_timestamp = args[:creation_timestamp] if args.key?(:creation_timestamp) @description = args[:description] if args.key?(:description) @fingerprint = args[:fingerprint] if args.key?(:fingerprint) @id = args[:id] if args.key?(:id) @kind = args[:kind] if args.key?(:kind) @name = args[:name] if args.key?(:name) @region = args[:region] if args.key?(:region) @security_policy = args[:security_policy] if args.key?(:security_policy) @self_link = args[:self_link] if args.key?(:self_link) @self_link_with_id = args[:self_link_with_id] if args.key?(:self_link_with_id) end end # class NetworkEdgeSecurityServiceAggregatedList include Google::Apis::Core::Hashable # # Corresponds to the JSON property `etag` # @return [String] attr_accessor :etag # [Output Only] Unique identifier for the resource; defined by the server. # Corresponds to the JSON property `id` # @return [String] attr_accessor :id # A list of NetworkEdgeSecurityServicesScopedList resources. # Corresponds to the JSON property `items` # @return [Hash] attr_accessor :items # [Output Only] Type of resource. Always compute# # networkEdgeSecurityServiceAggregatedList for lists of Network Edge Security # Services. # Corresponds to the JSON property `kind` # @return [String] attr_accessor :kind # [Output Only] This token allows you to get the next page of results for list # requests. If the number of results is larger than maxResults, use the # nextPageToken as a value for the query parameter pageToken in the next list # request. Subsequent list requests will have their own nextPageToken to # continue paging through the results. # Corresponds to the JSON property `nextPageToken` # @return [String] attr_accessor :next_page_token # [Output Only] Server-defined URL for this resource. # Corresponds to the JSON property `selfLink` # @return [String] attr_accessor :self_link # [Output Only] Unreachable resources. # Corresponds to the JSON property `unreachables` # @return [Array] attr_accessor :unreachables # [Output Only] Informational warning message. # Corresponds to the JSON property `warning` # @return [Google::Apis::ComputeAlpha::NetworkEdgeSecurityServiceAggregatedList::Warning] attr_accessor :warning def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @etag = args[:etag] if args.key?(:etag) @id = args[:id] if args.key?(:id) @items = args[:items] if args.key?(:items) @kind = args[:kind] if args.key?(:kind) @next_page_token = args[:next_page_token] if args.key?(:next_page_token) @self_link = args[:self_link] if args.key?(:self_link) @unreachables = args[:unreachables] if args.key?(:unreachables) @warning = args[:warning] if args.key?(:warning) end # [Output Only] Informational warning message. class Warning include Google::Apis::Core::Hashable # [Output Only] A warning code, if applicable. For example, Compute Engine # returns NO_RESULTS_ON_PAGE if there are no results in the response. # Corresponds to the JSON property `code` # @return [String] attr_accessor :code # [Output Only] Metadata about this warning in key: value format. For example: " # data": [ ` "key": "scope", "value": "zones/us-east1-d" ` # Corresponds to the JSON property `data` # @return [Array] attr_accessor :data # [Output Only] A human-readable description of the warning code. # Corresponds to the JSON property `message` # @return [String] attr_accessor :message def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @code = args[:code] if args.key?(:code) @data = args[:data] if args.key?(:data) @message = args[:message] if args.key?(:message) end # class Datum include Google::Apis::Core::Hashable # [Output Only] A key that provides more detail on the warning being returned. # For example, for warnings where there are no results in a list request for a # particular zone, this key might be scope and the key value might be the zone # name. Other examples might be a key indicating a deprecated resource and a # suggested replacement, or a warning about invalid network settings (for # example, if an instance attempts to perform IP forwarding but is not enabled # for IP forwarding). # Corresponds to the JSON property `key` # @return [String] attr_accessor :key # [Output Only] A warning data value corresponding to the key. # 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 end end # class NetworkEdgeSecurityServicesScopedList include Google::Apis::Core::Hashable # A list of NetworkEdgeSecurityServices contained in this scope. # Corresponds to the JSON property `networkEdgeSecurityServices` # @return [Array] attr_accessor :network_edge_security_services # Informational warning which replaces the list of security policies when the # list is empty. # Corresponds to the JSON property `warning` # @return [Google::Apis::ComputeAlpha::NetworkEdgeSecurityServicesScopedList::Warning] attr_accessor :warning def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @network_edge_security_services = args[:network_edge_security_services] if args.key?(:network_edge_security_services) @warning = args[:warning] if args.key?(:warning) end # Informational warning which replaces the list of security policies when the # list is empty. class Warning include Google::Apis::Core::Hashable # [Output Only] A warning code, if applicable. For example, Compute Engine # returns NO_RESULTS_ON_PAGE if there are no results in the response. # Corresponds to the JSON property `code` # @return [String] attr_accessor :code # [Output Only] Metadata about this warning in key: value format. For example: " # data": [ ` "key": "scope", "value": "zones/us-east1-d" ` # Corresponds to the JSON property `data` # @return [Array] attr_accessor :data # [Output Only] A human-readable description of the warning code. # Corresponds to the JSON property `message` # @return [String] attr_accessor :message def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @code = args[:code] if args.key?(:code) @data = args[:data] if args.key?(:data) @message = args[:message] if args.key?(:message) end # class Datum include Google::Apis::Core::Hashable # [Output Only] A key that provides more detail on the warning being returned. # For example, for warnings where there are no results in a list request for a # particular zone, this key might be scope and the key value might be the zone # name. Other examples might be a key indicating a deprecated resource and a # suggested replacement, or a warning about invalid network settings (for # example, if an instance attempts to perform IP forwarding but is not enabled # for IP forwarding). # Corresponds to the JSON property `key` # @return [String] attr_accessor :key # [Output Only] A warning data value corresponding to the key. # 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 end end # The network endpoint. class NetworkEndpoint include Google::Apis::Core::Hashable # Metadata defined as annotations on the network endpoint. # Corresponds to the JSON property `annotations` # @return [Hash] attr_accessor :annotations # Optional fully qualified domain name of network endpoint. This can only be # specified when NetworkEndpointGroup.network_endpoint_type is NON_GCP_FQDN_PORT. # Corresponds to the JSON property `fqdn` # @return [String] attr_accessor :fqdn # The name for a specific VM instance that the IP address belongs to. This is # required for network endpoints of type GCE_VM_IP_PORT. The instance must be in # the same zone of network endpoint group. The name must be 1-63 characters long, # and comply with RFC1035. # Corresponds to the JSON property `instance` # @return [String] attr_accessor :instance # Optional IPv4 address of network endpoint. The IP address must belong to a VM # in Compute Engine (either the primary IP or as part of an aliased IP range). # If the IP address is not specified, then the primary IP address for the VM # instance in the network that the network endpoint group belongs to will be # used. # Corresponds to the JSON property `ipAddress` # @return [String] attr_accessor :ip_address # Optional port number of network endpoint. If not specified, the defaultPort # for the network endpoint group will be used. # Corresponds to the JSON property `port` # @return [Fixnum] attr_accessor :port def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @annotations = args[:annotations] if args.key?(:annotations) @fqdn = args[:fqdn] if args.key?(:fqdn) @instance = args[:instance] if args.key?(:instance) @ip_address = args[:ip_address] if args.key?(:ip_address) @port = args[:port] if args.key?(:port) end end # Represents a collection of network endpoints. A network endpoint group (NEG) # defines how a set of endpoints should be reached, whether they are reachable, # and where they are located. For more information about using NEGs, see Setting # up external HTTP(S) Load Balancing with internet NEGs, Setting up zonal NEGs, # or Setting up external HTTP(S) Load Balancing with serverless NEGs. class NetworkEndpointGroup include Google::Apis::Core::Hashable # Metadata defined as annotations on the network endpoint group. # Corresponds to the JSON property `annotations` # @return [Hash] attr_accessor :annotations # Configuration for an App Engine network endpoint group (NEG). The service is # optional, may be provided explicitly or in the URL mask. The version is # optional and can only be provided explicitly or in the URL mask when service # is present. Note: App Engine service must be in the same project and located # in the same region as the Serverless NEG. # Corresponds to the JSON property `appEngine` # @return [Google::Apis::ComputeAlpha::NetworkEndpointGroupAppEngine] attr_accessor :app_engine # Configuration for a Cloud Function network endpoint group (NEG). The function # must be provided explicitly or in the URL mask. Note: Cloud Function must be # in the same project and located in the same region as the Serverless NEG. # Corresponds to the JSON property `cloudFunction` # @return [Google::Apis::ComputeAlpha::NetworkEndpointGroupCloudFunction] attr_accessor :cloud_function # Configuration for a Cloud Run network endpoint group (NEG). The service must # be provided explicitly or in the URL mask. The tag is optional, may be # provided explicitly or in the URL mask. Note: Cloud Run service must be in the # same project and located in the same region as the Serverless NEG. # Corresponds to the JSON property `cloudRun` # @return [Google::Apis::ComputeAlpha::NetworkEndpointGroupCloudRun] attr_accessor :cloud_run # [Output Only] Creation timestamp in RFC3339 text format. # Corresponds to the JSON property `creationTimestamp` # @return [String] attr_accessor :creation_timestamp # The default port used if the port number is not specified in the network # endpoint. # Corresponds to the JSON property `defaultPort` # @return [Fixnum] attr_accessor :default_port # An optional description of this resource. Provide this property when you # create the resource. # Corresponds to the JSON property `description` # @return [String] attr_accessor :description # [Output Only] The unique identifier for the resource. This identifier is # defined by the server. # Corresponds to the JSON property `id` # @return [Fixnum] attr_accessor :id # [Output Only] Type of the resource. Always compute#networkEndpointGroup for # network endpoint group. # Corresponds to the JSON property `kind` # @return [String] attr_accessor :kind # Load balancing specific fields for network endpoint group. # Corresponds to the JSON property `loadBalancer` # @return [Google::Apis::ComputeAlpha::NetworkEndpointGroupLbNetworkEndpointGroup] attr_accessor :load_balancer # Name of the resource; provided by the client when the resource is created. The # name must be 1-63 characters long, and comply with RFC1035. Specifically, the # name must be 1-63 characters long and match the regular expression `[a-z]([-a- # z0-9]*[a-z0-9])?` which means the first character must be a lowercase letter, # and all following characters must be a dash, lowercase letter, or digit, # except the last character, which cannot be a dash. # Corresponds to the JSON property `name` # @return [String] attr_accessor :name # The URL of the network to which all network endpoints in the NEG belong. Uses " # default" project network if unspecified. # Corresponds to the JSON property `network` # @return [String] attr_accessor :network # Type of network endpoints in this network endpoint group. Can be one of # GCE_VM_IP, GCE_VM_IP_PORT, NON_GCP_PRIVATE_IP_PORT, INTERNET_FQDN_PORT, # INTERNET_IP_PORT, SERVERLESS, PRIVATE_SERVICE_CONNECT. # Corresponds to the JSON property `networkEndpointType` # @return [String] attr_accessor :network_endpoint_type # The target service url used to set up private service connection to a Google # API. An example value is: "asia-northeast3-cloudkms.googleapis.com" # Corresponds to the JSON property `pscTargetService` # @return [String] attr_accessor :psc_target_service # [Output Only] The URL of the region where the network endpoint group is # located. # Corresponds to the JSON property `region` # @return [String] attr_accessor :region # [Output Only] Server-defined URL for the resource. # Corresponds to the JSON property `selfLink` # @return [String] attr_accessor :self_link # [Output Only] Server-defined URL for this resource with the resource id. # Corresponds to the JSON property `selfLinkWithId` # @return [String] attr_accessor :self_link_with_id # Configuration for a serverless network endpoint group (NEG). The platform must # be provided. Note: The target backend service must be in the same project and # located in the same region as the Serverless NEG. # Corresponds to the JSON property `serverlessDeployment` # @return [Google::Apis::ComputeAlpha::NetworkEndpointGroupServerlessDeployment] attr_accessor :serverless_deployment # [Output only] Number of network endpoints in the network endpoint group. # Corresponds to the JSON property `size` # @return [Fixnum] attr_accessor :size # Optional URL of the subnetwork to which all network endpoints in the NEG # belong. # Corresponds to the JSON property `subnetwork` # @return [String] attr_accessor :subnetwork # Specify the type of this network endpoint group. Only LOAD_BALANCING is valid # for now. # Corresponds to the JSON property `type` # @return [String] attr_accessor :type # [Output Only] The URL of the zone where the network endpoint group is located. # 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) @annotations = args[:annotations] if args.key?(:annotations) @app_engine = args[:app_engine] if args.key?(:app_engine) @cloud_function = args[:cloud_function] if args.key?(:cloud_function) @cloud_run = args[:cloud_run] if args.key?(:cloud_run) @creation_timestamp = args[:creation_timestamp] if args.key?(:creation_timestamp) @default_port = args[:default_port] if args.key?(:default_port) @description = args[:description] if args.key?(:description) @id = args[:id] if args.key?(:id) @kind = args[:kind] if args.key?(:kind) @load_balancer = args[:load_balancer] if args.key?(:load_balancer) @name = args[:name] if args.key?(:name) @network = args[:network] if args.key?(:network) @network_endpoint_type = args[:network_endpoint_type] if args.key?(:network_endpoint_type) @psc_target_service = args[:psc_target_service] if args.key?(:psc_target_service) @region = args[:region] if args.key?(:region) @self_link = args[:self_link] if args.key?(:self_link) @self_link_with_id = args[:self_link_with_id] if args.key?(:self_link_with_id) @serverless_deployment = args[:serverless_deployment] if args.key?(:serverless_deployment) @size = args[:size] if args.key?(:size) @subnetwork = args[:subnetwork] if args.key?(:subnetwork) @type = args[:type] if args.key?(:type) @zone = args[:zone] if args.key?(:zone) end end # class NetworkEndpointGroupAggregatedList include Google::Apis::Core::Hashable # [Output Only] Unique identifier for the resource; defined by the server. # Corresponds to the JSON property `id` # @return [String] attr_accessor :id # A list of NetworkEndpointGroupsScopedList resources. # Corresponds to the JSON property `items` # @return [Hash] attr_accessor :items # [Output Only] The resource type, which is always compute# # networkEndpointGroupAggregatedList for aggregated lists of network endpoint # groups. # Corresponds to the JSON property `kind` # @return [String] attr_accessor :kind # [Output Only] This token allows you to get the next page of results for list # requests. If the number of results is larger than maxResults, use the # nextPageToken as a value for the query parameter pageToken in the next list # request. Subsequent list requests will have their own nextPageToken to # continue paging through the results. # Corresponds to the JSON property `nextPageToken` # @return [String] attr_accessor :next_page_token # [Output Only] Server-defined URL for this resource. # Corresponds to the JSON property `selfLink` # @return [String] attr_accessor :self_link # [Output Only] Unreachable resources. # Corresponds to the JSON property `unreachables` # @return [Array] attr_accessor :unreachables # [Output Only] Informational warning message. # Corresponds to the JSON property `warning` # @return [Google::Apis::ComputeAlpha::NetworkEndpointGroupAggregatedList::Warning] attr_accessor :warning def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @id = args[:id] if args.key?(:id) @items = args[:items] if args.key?(:items) @kind = args[:kind] if args.key?(:kind) @next_page_token = args[:next_page_token] if args.key?(:next_page_token) @self_link = args[:self_link] if args.key?(:self_link) @unreachables = args[:unreachables] if args.key?(:unreachables) @warning = args[:warning] if args.key?(:warning) end # [Output Only] Informational warning message. class Warning include Google::Apis::Core::Hashable # [Output Only] A warning code, if applicable. For example, Compute Engine # returns NO_RESULTS_ON_PAGE if there are no results in the response. # Corresponds to the JSON property `code` # @return [String] attr_accessor :code # [Output Only] Metadata about this warning in key: value format. For example: " # data": [ ` "key": "scope", "value": "zones/us-east1-d" ` # Corresponds to the JSON property `data` # @return [Array] attr_accessor :data # [Output Only] A human-readable description of the warning code. # Corresponds to the JSON property `message` # @return [String] attr_accessor :message def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @code = args[:code] if args.key?(:code) @data = args[:data] if args.key?(:data) @message = args[:message] if args.key?(:message) end # class Datum include Google::Apis::Core::Hashable # [Output Only] A key that provides more detail on the warning being returned. # For example, for warnings where there are no results in a list request for a # particular zone, this key might be scope and the key value might be the zone # name. Other examples might be a key indicating a deprecated resource and a # suggested replacement, or a warning about invalid network settings (for # example, if an instance attempts to perform IP forwarding but is not enabled # for IP forwarding). # Corresponds to the JSON property `key` # @return [String] attr_accessor :key # [Output Only] A warning data value corresponding to the key. # 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 end end # Configuration for an App Engine network endpoint group (NEG). The service is # optional, may be provided explicitly or in the URL mask. The version is # optional and can only be provided explicitly or in the URL mask when service # is present. Note: App Engine service must be in the same project and located # in the same region as the Serverless NEG. class NetworkEndpointGroupAppEngine include Google::Apis::Core::Hashable # Optional serving service. The service name is case-sensitive and must be 1-63 # characters long. Example value: "default", "my-service". # Corresponds to the JSON property `service` # @return [String] attr_accessor :service # A template to parse service and version fields from a request URL. URL mask # allows for routing to multiple App Engine services without having to create # multiple Network Endpoint Groups and backend services. For example, the # request URLs "foo1-dot-appname.appspot.com/v1" and "foo1-dot-appname.appspot. # com/v2" can be backed by the same Serverless NEG with URL mask "-dot-appname. # appspot.com/". The URL mask will parse them to ` service = "foo1", version = " # v1" ` and ` service = "foo1", version = "v2" ` respectively. # Corresponds to the JSON property `urlMask` # @return [String] attr_accessor :url_mask # Optional serving version. The version name is case-sensitive and must be 1-100 # characters long. Example value: "v1", "v2". # Corresponds to the JSON property `version` # @return [String] attr_accessor :version def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @service = args[:service] if args.key?(:service) @url_mask = args[:url_mask] if args.key?(:url_mask) @version = args[:version] if args.key?(:version) end end # Configuration for a Cloud Function network endpoint group (NEG). The function # must be provided explicitly or in the URL mask. Note: Cloud Function must be # in the same project and located in the same region as the Serverless NEG. class NetworkEndpointGroupCloudFunction include Google::Apis::Core::Hashable # A user-defined name of the Cloud Function. The function name is case-sensitive # and must be 1-63 characters long. Example value: "func1". # Corresponds to the JSON property `function` # @return [String] attr_accessor :function # A template to parse function field from a request URL. URL mask allows for # routing to multiple Cloud Functions without having to create multiple Network # Endpoint Groups and backend services. For example, request URLs " mydomain.com/ # function1" and "mydomain.com/function2" can be backed by the same Serverless # NEG with URL mask "/". The URL mask will parse them to ` function = "function1" # ` and ` function = "function2" ` respectively. # Corresponds to the JSON property `urlMask` # @return [String] attr_accessor :url_mask def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @function = args[:function] if args.key?(:function) @url_mask = args[:url_mask] if args.key?(:url_mask) end end # Configuration for a Cloud Run network endpoint group (NEG). The service must # be provided explicitly or in the URL mask. The tag is optional, may be # provided explicitly or in the URL mask. Note: Cloud Run service must be in the # same project and located in the same region as the Serverless NEG. class NetworkEndpointGroupCloudRun include Google::Apis::Core::Hashable # Cloud Run service is the main resource of Cloud Run. The service must be 1-63 # characters long, and comply with RFC1035. Example value: "run-service". # Corresponds to the JSON property `service` # @return [String] attr_accessor :service # Optional Cloud Run tag represents the "named-revision" to provide additional # fine-grained traffic routing information. The tag must be 1-63 characters long, # and comply with RFC1035. Example value: "revision-0010". # Corresponds to the JSON property `tag` # @return [String] attr_accessor :tag # A template to parse and fields from a request URL. URL mask # allows for routing to multiple Run services without having to create multiple # network endpoint groups and backend services. For example, request URLs "foo1. # domain.com/bar1" and "foo1.domain.com/bar2" can be backed by the same # Serverless Network Endpoint Group (NEG) with URL mask ".domain.com/< # service>". The URL mask will parse them to ` service="bar1", tag="foo1" ` and ` # service="bar2", tag="foo2" ` respectively. # Corresponds to the JSON property `urlMask` # @return [String] attr_accessor :url_mask def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @service = args[:service] if args.key?(:service) @tag = args[:tag] if args.key?(:tag) @url_mask = args[:url_mask] if args.key?(:url_mask) end end # Load balancing specific fields for network endpoint group. class NetworkEndpointGroupLbNetworkEndpointGroup include Google::Apis::Core::Hashable # The default port used if the port number is not specified in the network # endpoint. [Deprecated] This field is deprecated. # Corresponds to the JSON property `defaultPort` # @return [Fixnum] attr_accessor :default_port # The URL of the network to which all network endpoints in the NEG belong. Uses " # default" project network if unspecified. [Deprecated] This field is deprecated. # Corresponds to the JSON property `network` # @return [String] attr_accessor :network # Optional URL of the subnetwork to which all network endpoints in the NEG # belong. [Deprecated] This field is deprecated. # Corresponds to the JSON property `subnetwork` # @return [String] attr_accessor :subnetwork # [Output Only] The URL of the zone where the network endpoint group is located. # [Deprecated] This field is deprecated. # 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) @default_port = args[:default_port] if args.key?(:default_port) @network = args[:network] if args.key?(:network) @subnetwork = args[:subnetwork] if args.key?(:subnetwork) @zone = args[:zone] if args.key?(:zone) end end # class NetworkEndpointGroupList include Google::Apis::Core::Hashable # [Output Only] Unique identifier for the resource; defined by the server. # Corresponds to the JSON property `id` # @return [String] attr_accessor :id # A list of NetworkEndpointGroup resources. # Corresponds to the JSON property `items` # @return [Array] attr_accessor :items # [Output Only] The resource type, which is always compute# # networkEndpointGroupList for network endpoint group lists. # Corresponds to the JSON property `kind` # @return [String] attr_accessor :kind # [Output Only] This token allows you to get the next page of results for list # requests. If the number of results is larger than maxResults, use the # nextPageToken as a value for the query parameter pageToken in the next list # request. Subsequent list requests will have their own nextPageToken to # continue paging through the results. # Corresponds to the JSON property `nextPageToken` # @return [String] attr_accessor :next_page_token # [Output Only] Server-defined URL for this resource. # Corresponds to the JSON property `selfLink` # @return [String] attr_accessor :self_link # [Output Only] Informational warning message. # Corresponds to the JSON property `warning` # @return [Google::Apis::ComputeAlpha::NetworkEndpointGroupList::Warning] attr_accessor :warning def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @id = args[:id] if args.key?(:id) @items = args[:items] if args.key?(:items) @kind = args[:kind] if args.key?(:kind) @next_page_token = args[:next_page_token] if args.key?(:next_page_token) @self_link = args[:self_link] if args.key?(:self_link) @warning = args[:warning] if args.key?(:warning) end # [Output Only] Informational warning message. class Warning include Google::Apis::Core::Hashable # [Output Only] A warning code, if applicable. For example, Compute Engine # returns NO_RESULTS_ON_PAGE if there are no results in the response. # Corresponds to the JSON property `code` # @return [String] attr_accessor :code # [Output Only] Metadata about this warning in key: value format. For example: " # data": [ ` "key": "scope", "value": "zones/us-east1-d" ` # Corresponds to the JSON property `data` # @return [Array] attr_accessor :data # [Output Only] A human-readable description of the warning code. # Corresponds to the JSON property `message` # @return [String] attr_accessor :message def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @code = args[:code] if args.key?(:code) @data = args[:data] if args.key?(:data) @message = args[:message] if args.key?(:message) end # class Datum include Google::Apis::Core::Hashable # [Output Only] A key that provides more detail on the warning being returned. # For example, for warnings where there are no results in a list request for a # particular zone, this key might be scope and the key value might be the zone # name. Other examples might be a key indicating a deprecated resource and a # suggested replacement, or a warning about invalid network settings (for # example, if an instance attempts to perform IP forwarding but is not enabled # for IP forwarding). # Corresponds to the JSON property `key` # @return [String] attr_accessor :key # [Output Only] A warning data value corresponding to the key. # 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 end end # Configuration for a serverless network endpoint group (NEG). The platform must # be provided. Note: The target backend service must be in the same project and # located in the same region as the Serverless NEG. class NetworkEndpointGroupServerlessDeployment include Google::Apis::Core::Hashable # The platform of the backend target(s) of this NEG. The only supported value is # API Gateway: apigateway.googleapis.com. # Corresponds to the JSON property `platform` # @return [String] attr_accessor :platform # The user-defined name of the workload/instance. This value must be provided # explicitly or in the urlMask. The resource identified by this value is # platform-specific and is as follows: 1. API Gateway: The gateway ID 2. App # Engine: The service name 3. Cloud Functions: The function name 4. Cloud Run: # The service name # Corresponds to the JSON property `resource` # @return [String] attr_accessor :resource # A template to parse platform-specific fields from a request URL. URL mask # allows for routing to multiple resources on the same serverless platform # without having to create multiple Network Endpoint Groups and backend # resources. The fields parsed by this template are platform-specific and are as # follows: 1. API Gateway: The gateway ID 2. App Engine: The service and version # 3. Cloud Functions: The function name 4. Cloud Run: The service and tag # Corresponds to the JSON property `urlMask` # @return [String] attr_accessor :url_mask # The optional resource version. The version identified by this value is # platform-specific and is follows: 1. API Gateway: Unused 2. App Engine: The # service version 3. Cloud Functions: Unused 4. Cloud Run: The service tag # Corresponds to the JSON property `version` # @return [String] attr_accessor :version def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @platform = args[:platform] if args.key?(:platform) @resource = args[:resource] if args.key?(:resource) @url_mask = args[:url_mask] if args.key?(:url_mask) @version = args[:version] if args.key?(:version) end end # class NetworkEndpointGroupsAttachEndpointsRequest include Google::Apis::Core::Hashable # The list of network endpoints to be attached. # Corresponds to the JSON property `networkEndpoints` # @return [Array] attr_accessor :network_endpoints def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @network_endpoints = args[:network_endpoints] if args.key?(:network_endpoints) end end # class NetworkEndpointGroupsDetachEndpointsRequest include Google::Apis::Core::Hashable # The list of network endpoints to be detached. # Corresponds to the JSON property `networkEndpoints` # @return [Array] attr_accessor :network_endpoints def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @network_endpoints = args[:network_endpoints] if args.key?(:network_endpoints) end end # class NetworkEndpointGroupsListEndpointsRequest include Google::Apis::Core::Hashable # Optional list of endpoints to query. This is a more efficient but also limited # version of filter parameter. Endpoints in the filter must have ip_address and # port fields populated, other fields are not supported. # Corresponds to the JSON property `endpointFilters` # @return [Array] attr_accessor :endpoint_filters # Optional query parameter for showing the health status of each network # endpoint. Valid options are SKIP or SHOW. If you don't specify this parameter, # the health status of network endpoints will not be provided. # Corresponds to the JSON property `healthStatus` # @return [String] attr_accessor :health_status def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @endpoint_filters = args[:endpoint_filters] if args.key?(:endpoint_filters) @health_status = args[:health_status] if args.key?(:health_status) end end # class NetworkEndpointGroupsListEndpointsRequestNetworkEndpointFilter include Google::Apis::Core::Hashable # The network endpoint. # Corresponds to the JSON property `networkEndpoint` # @return [Google::Apis::ComputeAlpha::NetworkEndpoint] attr_accessor :network_endpoint def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @network_endpoint = args[:network_endpoint] if args.key?(:network_endpoint) end end # class NetworkEndpointGroupsListNetworkEndpoints include Google::Apis::Core::Hashable # [Output Only] Unique identifier for the resource; defined by the server. # Corresponds to the JSON property `id` # @return [String] attr_accessor :id # A list of NetworkEndpointWithHealthStatus resources. # Corresponds to the JSON property `items` # @return [Array] attr_accessor :items # [Output Only] The resource type, which is always compute# # networkEndpointGroupsListNetworkEndpoints for the list of network endpoints in # the specified network endpoint group. # Corresponds to the JSON property `kind` # @return [String] attr_accessor :kind # [Output Only] This token allows you to get the next page of results for list # requests. If the number of results is larger than maxResults, use the # nextPageToken as a value for the query parameter pageToken in the next list # request. Subsequent list requests will have their own nextPageToken to # continue paging through the results. # Corresponds to the JSON property `nextPageToken` # @return [String] attr_accessor :next_page_token # [Output Only] Informational warning message. # Corresponds to the JSON property `warning` # @return [Google::Apis::ComputeAlpha::NetworkEndpointGroupsListNetworkEndpoints::Warning] attr_accessor :warning def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @id = args[:id] if args.key?(:id) @items = args[:items] if args.key?(:items) @kind = args[:kind] if args.key?(:kind) @next_page_token = args[:next_page_token] if args.key?(:next_page_token) @warning = args[:warning] if args.key?(:warning) end # [Output Only] Informational warning message. class Warning include Google::Apis::Core::Hashable # [Output Only] A warning code, if applicable. For example, Compute Engine # returns NO_RESULTS_ON_PAGE if there are no results in the response. # Corresponds to the JSON property `code` # @return [String] attr_accessor :code # [Output Only] Metadata about this warning in key: value format. For example: " # data": [ ` "key": "scope", "value": "zones/us-east1-d" ` # Corresponds to the JSON property `data` # @return [Array] attr_accessor :data # [Output Only] A human-readable description of the warning code. # Corresponds to the JSON property `message` # @return [String] attr_accessor :message def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @code = args[:code] if args.key?(:code) @data = args[:data] if args.key?(:data) @message = args[:message] if args.key?(:message) end # class Datum include Google::Apis::Core::Hashable # [Output Only] A key that provides more detail on the warning being returned. # For example, for warnings where there are no results in a list request for a # particular zone, this key might be scope and the key value might be the zone # name. Other examples might be a key indicating a deprecated resource and a # suggested replacement, or a warning about invalid network settings (for # example, if an instance attempts to perform IP forwarding but is not enabled # for IP forwarding). # Corresponds to the JSON property `key` # @return [String] attr_accessor :key # [Output Only] A warning data value corresponding to the key. # 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 end end # class NetworkEndpointGroupsScopedList include Google::Apis::Core::Hashable # [Output Only] The list of network endpoint groups that are contained in this # scope. # Corresponds to the JSON property `networkEndpointGroups` # @return [Array] attr_accessor :network_endpoint_groups # [Output Only] An informational warning that replaces the list of network # endpoint groups when the list is empty. # Corresponds to the JSON property `warning` # @return [Google::Apis::ComputeAlpha::NetworkEndpointGroupsScopedList::Warning] attr_accessor :warning def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @network_endpoint_groups = args[:network_endpoint_groups] if args.key?(:network_endpoint_groups) @warning = args[:warning] if args.key?(:warning) end # [Output Only] An informational warning that replaces the list of network # endpoint groups when the list is empty. class Warning include Google::Apis::Core::Hashable # [Output Only] A warning code, if applicable. For example, Compute Engine # returns NO_RESULTS_ON_PAGE if there are no results in the response. # Corresponds to the JSON property `code` # @return [String] attr_accessor :code # [Output Only] Metadata about this warning in key: value format. For example: " # data": [ ` "key": "scope", "value": "zones/us-east1-d" ` # Corresponds to the JSON property `data` # @return [Array] attr_accessor :data # [Output Only] A human-readable description of the warning code. # Corresponds to the JSON property `message` # @return [String] attr_accessor :message def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @code = args[:code] if args.key?(:code) @data = args[:data] if args.key?(:data) @message = args[:message] if args.key?(:message) end # class Datum include Google::Apis::Core::Hashable # [Output Only] A key that provides more detail on the warning being returned. # For example, for warnings where there are no results in a list request for a # particular zone, this key might be scope and the key value might be the zone # name. Other examples might be a key indicating a deprecated resource and a # suggested replacement, or a warning about invalid network settings (for # example, if an instance attempts to perform IP forwarding but is not enabled # for IP forwarding). # Corresponds to the JSON property `key` # @return [String] attr_accessor :key # [Output Only] A warning data value corresponding to the key. # 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 end end # class NetworkEndpointWithHealthStatus include Google::Apis::Core::Hashable # [Output only] The health status of network endpoint; # Corresponds to the JSON property `healths` # @return [Array] attr_accessor :healths # The network endpoint. # Corresponds to the JSON property `networkEndpoint` # @return [Google::Apis::ComputeAlpha::NetworkEndpoint] attr_accessor :network_endpoint def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @healths = args[:healths] if args.key?(:healths) @network_endpoint = args[:network_endpoint] if args.key?(:network_endpoint) end end # A network interface resource attached to an instance. class NetworkInterface include Google::Apis::Core::Hashable # An array of configurations for this interface. Currently, only one access # config, ONE_TO_ONE_NAT, is supported. If there are no accessConfigs specified, # then this instance will have no external internet access. # Corresponds to the JSON property `accessConfigs` # @return [Array] attr_accessor :access_configs # An array of alias IP ranges for this network interface. You can only specify # this field for network interfaces in VPC networks. # Corresponds to the JSON property `aliasIpRanges` # @return [Array] attr_accessor :alias_ip_ranges # Fingerprint hash of contents stored in this network interface. This field will # be ignored when inserting an Instance or adding a NetworkInterface. An up-to- # date fingerprint must be provided in order to update the NetworkInterface. The # request will fail with error 400 Bad Request if the fingerprint is not # provided, or 412 Precondition Failed if the fingerprint is out of date. # Corresponds to the JSON property `fingerprint` # NOTE: Values are automatically base64 encoded/decoded in the client library. # @return [String] attr_accessor :fingerprint # The prefix length of the primary internal IPv6 range. # Corresponds to the JSON property `internalIpv6PrefixLength` # @return [Fixnum] attr_accessor :internal_ipv6_prefix_length # An array of IPv6 access configurations for this interface. Currently, only one # IPv6 access config, DIRECT_IPV6, is supported. If there is no ipv6AccessConfig # specified, then this instance will have no external IPv6 Internet access. # Corresponds to the JSON property `ipv6AccessConfigs` # @return [Array] attr_accessor :ipv6_access_configs # [Output Only] One of EXTERNAL, INTERNAL to indicate whether the IP can be # accessed from the Internet. This field is always inherited from its subnetwork. # Valid only if stackType is IPV4_IPV6. # Corresponds to the JSON property `ipv6AccessType` # @return [String] attr_accessor :ipv6_access_type # An IPv6 internal network address for this network interface. # Corresponds to the JSON property `ipv6Address` # @return [String] attr_accessor :ipv6_address # [Output Only] Type of the resource. Always compute#networkInterface for # network interfaces. # Corresponds to the JSON property `kind` # @return [String] attr_accessor :kind # [Output Only] The name of the network interface, which is generated by the # server. For a VM, the network interface uses the nicN naming format. Where N # is a value between 0 and 7. The default interface value is nic0. # Corresponds to the JSON property `name` # @return [String] attr_accessor :name # URL of the VPC network resource for this instance. When creating an instance, # if neither the network nor the subnetwork is specified, the default network # global/networks/default is used. If the selected project doesn't have the # default network, you must specify a network or subnet. If the network is not # specified but the subnetwork is specified, the network is inferred. If you # specify this property, you can specify the network as a full or partial URL. # For example, the following are all valid URLs: - https://www.googleapis.com/ # compute/v1/projects/project/global/networks/ network - projects/project/global/ # networks/network - global/networks/default # Corresponds to the JSON property `network` # @return [String] attr_accessor :network # An IPv4 internal IP address to assign to the instance for this network # interface. If not specified by the user, an unused internal IP is assigned by # the system. # Corresponds to the JSON property `networkIP` # @return [String] attr_accessor :network_ip # The type of vNIC to be used on this interface. This may be gVNIC or VirtioNet. # Corresponds to the JSON property `nicType` # @return [String] attr_accessor :nic_type # The networking queue count that's specified by users for the network interface. # Both Rx and Tx queues will be set to this number. It'll be empty if not # specified by the users. # Corresponds to the JSON property `queueCount` # @return [Fixnum] attr_accessor :queue_count # The stack type for this network interface to identify whether the IPv6 feature # is enabled or not. If not specified, IPV4_ONLY will be used. This field can be # both set at instance creation and update network interface operations. # Corresponds to the JSON property `stackType` # @return [String] attr_accessor :stack_type # SubInterfaces help enable L2 communication for the instance over subnetworks # that support L2. Every network interface will get a default untagged (vlan not # specified) subinterface. Users can specify additional tagged subinterfaces # which are sub-fields to the Network Interface. # Corresponds to the JSON property `subinterfaces` # @return [Array] attr_accessor :subinterfaces # The URL of the Subnetwork resource for this instance. If the network resource # is in legacy mode, do not specify this field. If the network is in auto subnet # mode, specifying the subnetwork is optional. If the network is in custom # subnet mode, specifying the subnetwork is required. If you specify this field, # you can specify the subnetwork as a full or partial URL. For example, the # following are all valid URLs: - https://www.googleapis.com/compute/v1/projects/ # project/regions/region /subnetworks/subnetwork - regions/region/subnetworks/ # subnetwork # Corresponds to the JSON property `subnetwork` # @return [String] attr_accessor :subnetwork def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @access_configs = args[:access_configs] if args.key?(:access_configs) @alias_ip_ranges = args[:alias_ip_ranges] if args.key?(:alias_ip_ranges) @fingerprint = args[:fingerprint] if args.key?(:fingerprint) @internal_ipv6_prefix_length = args[:internal_ipv6_prefix_length] if args.key?(:internal_ipv6_prefix_length) @ipv6_access_configs = args[:ipv6_access_configs] if args.key?(:ipv6_access_configs) @ipv6_access_type = args[:ipv6_access_type] if args.key?(:ipv6_access_type) @ipv6_address = args[:ipv6_address] if args.key?(:ipv6_address) @kind = args[:kind] if args.key?(:kind) @name = args[:name] if args.key?(:name) @network = args[:network] if args.key?(:network) @network_ip = args[:network_ip] if args.key?(:network_ip) @nic_type = args[:nic_type] if args.key?(:nic_type) @queue_count = args[:queue_count] if args.key?(:queue_count) @stack_type = args[:stack_type] if args.key?(:stack_type) @subinterfaces = args[:subinterfaces] if args.key?(:subinterfaces) @subnetwork = args[:subnetwork] if args.key?(:subnetwork) end end # class NetworkInterfaceSubInterface include Google::Apis::Core::Hashable # An IPv4 internal IP address to assign to the instance for this subinterface. # If specified, ip_allocation_mode should be set to ALLOCATE_IP. # Corresponds to the JSON property `ipAddress` # @return [String] attr_accessor :ip_address # # Corresponds to the JSON property `ipAllocationMode` # @return [String] attr_accessor :ip_allocation_mode # If specified, this subnetwork must belong to the same network as that of the # network interface. If not specified the subnet of network interface will be # used. If you specify this property, you can specify the subnetwork as a full # or partial URL. For example, the following are all valid URLs: - https://www. # googleapis.com/compute/v1/projects/project/regions/region /subnetworks/ # subnetwork - regions/region/subnetworks/subnetwork # Corresponds to the JSON property `subnetwork` # @return [String] attr_accessor :subnetwork # VLAN tag. Should match the VLAN(s) supported by the subnetwork to which this # subinterface is connecting. # Corresponds to the JSON property `vlan` # @return [Fixnum] attr_accessor :vlan def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @ip_address = args[:ip_address] if args.key?(:ip_address) @ip_allocation_mode = args[:ip_allocation_mode] if args.key?(:ip_allocation_mode) @subnetwork = args[:subnetwork] if args.key?(:subnetwork) @vlan = args[:vlan] if args.key?(:vlan) end end # Contains a list of networks. class NetworkList include Google::Apis::Core::Hashable # [Output Only] Unique identifier for the resource; defined by the server. # Corresponds to the JSON property `id` # @return [String] attr_accessor :id # A list of Network resources. # Corresponds to the JSON property `items` # @return [Array] attr_accessor :items # [Output Only] Type of resource. Always compute#networkList for lists of # networks. # Corresponds to the JSON property `kind` # @return [String] attr_accessor :kind # [Output Only] This token allows you to get the next page of results for list # requests. If the number of results is larger than maxResults, use the # nextPageToken as a value for the query parameter pageToken in the next list # request. Subsequent list requests will have their own nextPageToken to # continue paging through the results. # Corresponds to the JSON property `nextPageToken` # @return [String] attr_accessor :next_page_token # [Output Only] Server-defined URL for this resource. # Corresponds to the JSON property `selfLink` # @return [String] attr_accessor :self_link # [Output Only] Informational warning message. # Corresponds to the JSON property `warning` # @return [Google::Apis::ComputeAlpha::NetworkList::Warning] attr_accessor :warning def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @id = args[:id] if args.key?(:id) @items = args[:items] if args.key?(:items) @kind = args[:kind] if args.key?(:kind) @next_page_token = args[:next_page_token] if args.key?(:next_page_token) @self_link = args[:self_link] if args.key?(:self_link) @warning = args[:warning] if args.key?(:warning) end # [Output Only] Informational warning message. class Warning include Google::Apis::Core::Hashable # [Output Only] A warning code, if applicable. For example, Compute Engine # returns NO_RESULTS_ON_PAGE if there are no results in the response. # Corresponds to the JSON property `code` # @return [String] attr_accessor :code # [Output Only] Metadata about this warning in key: value format. For example: " # data": [ ` "key": "scope", "value": "zones/us-east1-d" ` # Corresponds to the JSON property `data` # @return [Array] attr_accessor :data # [Output Only] A human-readable description of the warning code. # Corresponds to the JSON property `message` # @return [String] attr_accessor :message def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @code = args[:code] if args.key?(:code) @data = args[:data] if args.key?(:data) @message = args[:message] if args.key?(:message) end # class Datum include Google::Apis::Core::Hashable # [Output Only] A key that provides more detail on the warning being returned. # For example, for warnings where there are no results in a list request for a # particular zone, this key might be scope and the key value might be the zone # name. Other examples might be a key indicating a deprecated resource and a # suggested replacement, or a warning about invalid network settings (for # example, if an instance attempts to perform IP forwarding but is not enabled # for IP forwarding). # Corresponds to the JSON property `key` # @return [String] attr_accessor :key # [Output Only] A warning data value corresponding to the key. # 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 end end # A network peering attached to a network resource. The message includes the # peering name, peer network, peering state, and a flag indicating whether # Google Compute Engine should automatically create routes for the peering. class NetworkPeering include Google::Apis::Core::Hashable # Whether Cloud Routers in this network can automatically advertise subnets from # the peer network. # Corresponds to the JSON property `advertisePeerSubnetsViaRouters` # @return [Boolean] attr_accessor :advertise_peer_subnets_via_routers alias_method :advertise_peer_subnets_via_routers?, :advertise_peer_subnets_via_routers # This field will be deprecated soon. Use the exchange_subnet_routes field # instead. Indicates whether full mesh connectivity is created and managed # automatically between peered networks. Currently this field should always be # true since Google Compute Engine will automatically create and manage # subnetwork routes between two networks when peering state is ACTIVE. # Corresponds to the JSON property `autoCreateRoutes` # @return [Boolean] attr_accessor :auto_create_routes alias_method :auto_create_routes?, :auto_create_routes # Indicates whether full mesh connectivity is created and managed automatically # between peered networks. Currently this field should always be true since # Google Compute Engine will automatically create and manage subnetwork routes # between two networks when peering state is ACTIVE. # Corresponds to the JSON property `exchangeSubnetRoutes` # @return [Boolean] attr_accessor :exchange_subnet_routes alias_method :exchange_subnet_routes?, :exchange_subnet_routes # Whether to export the custom routes to peer network. The default value is # false. # Corresponds to the JSON property `exportCustomRoutes` # @return [Boolean] attr_accessor :export_custom_routes alias_method :export_custom_routes?, :export_custom_routes # Whether subnet routes with public IP range are exported. The default value is # true, all subnet routes are exported. IPv4 special-use ranges are always # exported to peers and are not controlled by this field. # Corresponds to the JSON property `exportSubnetRoutesWithPublicIp` # @return [Boolean] attr_accessor :export_subnet_routes_with_public_ip alias_method :export_subnet_routes_with_public_ip?, :export_subnet_routes_with_public_ip # Whether to import the custom routes from peer network. The default value is # false. # Corresponds to the JSON property `importCustomRoutes` # @return [Boolean] attr_accessor :import_custom_routes alias_method :import_custom_routes?, :import_custom_routes # Whether subnet routes with public IP range are imported. The default value is # false. IPv4 special-use ranges are always imported from peers and are not # controlled by this field. # Corresponds to the JSON property `importSubnetRoutesWithPublicIp` # @return [Boolean] attr_accessor :import_subnet_routes_with_public_ip alias_method :import_subnet_routes_with_public_ip?, :import_subnet_routes_with_public_ip # Name of this peering. Provided by the client when the peering is created. The # name must comply with RFC1035. Specifically, the name must be 1-63 characters # long and match regular expression `[a-z]([-a-z0-9]*[a-z0-9])?`. The first # character must be a lowercase letter, and all the following characters must be # a dash, lowercase letter, or digit, except the last character, which cannot be # a dash. # Corresponds to the JSON property `name` # @return [String] attr_accessor :name # The URL of the peer network. It can be either full URL or partial URL. The # peer network may belong to a different project. If the partial URL does not # contain project, it is assumed that the peer network is in the same project as # the current network. # Corresponds to the JSON property `network` # @return [String] attr_accessor :network # Maximum Transmission Unit in bytes. # Corresponds to the JSON property `peerMtu` # @return [Fixnum] attr_accessor :peer_mtu # Which IP version(s) of traffic and routes are allowed to be imported or # exported between peer networks. The default value is IPV4_ONLY. # Corresponds to the JSON property `stackType` # @return [String] attr_accessor :stack_type # [Output Only] State for the peering, either `ACTIVE` or `INACTIVE`. The # peering is `ACTIVE` when there's a matching configuration in the peer network. # Corresponds to the JSON property `state` # @return [String] attr_accessor :state # [Output Only] Details about the current state of the peering. # Corresponds to the JSON property `stateDetails` # @return [String] attr_accessor :state_details def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @advertise_peer_subnets_via_routers = args[:advertise_peer_subnets_via_routers] if args.key?(:advertise_peer_subnets_via_routers) @auto_create_routes = args[:auto_create_routes] if args.key?(:auto_create_routes) @exchange_subnet_routes = args[:exchange_subnet_routes] if args.key?(:exchange_subnet_routes) @export_custom_routes = args[:export_custom_routes] if args.key?(:export_custom_routes) @export_subnet_routes_with_public_ip = args[:export_subnet_routes_with_public_ip] if args.key?(:export_subnet_routes_with_public_ip) @import_custom_routes = args[:import_custom_routes] if args.key?(:import_custom_routes) @import_subnet_routes_with_public_ip = args[:import_subnet_routes_with_public_ip] if args.key?(:import_subnet_routes_with_public_ip) @name = args[:name] if args.key?(:name) @network = args[:network] if args.key?(:network) @peer_mtu = args[:peer_mtu] if args.key?(:peer_mtu) @stack_type = args[:stack_type] if args.key?(:stack_type) @state = args[:state] if args.key?(:state) @state_details = args[:state_details] if args.key?(:state_details) end end # class NetworkPerformanceConfig include Google::Apis::Core::Hashable # # Corresponds to the JSON property `externalIpEgressBandwidthTier` # @return [String] attr_accessor :external_ip_egress_bandwidth_tier # # Corresponds to the JSON property `totalEgressBandwidthTier` # @return [String] attr_accessor :total_egress_bandwidth_tier def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @external_ip_egress_bandwidth_tier = args[:external_ip_egress_bandwidth_tier] if args.key?(:external_ip_egress_bandwidth_tier) @total_egress_bandwidth_tier = args[:total_egress_bandwidth_tier] if args.key?(:total_egress_bandwidth_tier) end end # A routing configuration attached to a network resource. The message includes # the list of routers associated with the network, and a flag indicating the # type of routing behavior to enforce network-wide. class NetworkRoutingConfig include Google::Apis::Core::Hashable # The network-wide routing mode to use. If set to REGIONAL, this network's Cloud # Routers will only advertise routes with subnets of this network in the same # region as the router. If set to GLOBAL, this network's Cloud Routers will # advertise routes with all subnets of this network, across regions. # Corresponds to the JSON property `routingMode` # @return [String] attr_accessor :routing_mode def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @routing_mode = args[:routing_mode] if args.key?(:routing_mode) end end # class NetworksAddPeeringRequest include Google::Apis::Core::Hashable # This field will be deprecated soon. Use exchange_subnet_routes in # network_peering instead. Indicates whether full mesh connectivity is created # and managed automatically between peered networks. Currently this field should # always be true since Google Compute Engine will automatically create and # manage subnetwork routes between two networks when peering state is ACTIVE. # Corresponds to the JSON property `autoCreateRoutes` # @return [Boolean] attr_accessor :auto_create_routes alias_method :auto_create_routes?, :auto_create_routes # This field will be deprecated soon. Use export_custom_routes in # network_peering instead. Whether to export the custom routes to peer network. # Corresponds to the JSON property `exportCustomRoutes` # @return [Boolean] attr_accessor :export_custom_routes alias_method :export_custom_routes?, :export_custom_routes # This field will be deprecated soon. Use import_custom_routes in # network_peering instead. Whether to import the custom routes from peer network. # Corresponds to the JSON property `importCustomRoutes` # @return [Boolean] attr_accessor :import_custom_routes alias_method :import_custom_routes?, :import_custom_routes # Name of the peering, which should conform to RFC1035. # Corresponds to the JSON property `name` # @return [String] attr_accessor :name # A network peering attached to a network resource. The message includes the # peering name, peer network, peering state, and a flag indicating whether # Google Compute Engine should automatically create routes for the peering. # Corresponds to the JSON property `networkPeering` # @return [Google::Apis::ComputeAlpha::NetworkPeering] attr_accessor :network_peering # URL of the peer network. It can be either full URL or partial URL. The peer # network may belong to a different project. If the partial URL does not contain # project, it is assumed that the peer network is in the same project as the # current network. # Corresponds to the JSON property `peerNetwork` # @return [String] attr_accessor :peer_network def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @auto_create_routes = args[:auto_create_routes] if args.key?(:auto_create_routes) @export_custom_routes = args[:export_custom_routes] if args.key?(:export_custom_routes) @import_custom_routes = args[:import_custom_routes] if args.key?(:import_custom_routes) @name = args[:name] if args.key?(:name) @network_peering = args[:network_peering] if args.key?(:network_peering) @peer_network = args[:peer_network] if args.key?(:peer_network) end end # class NetworksGetEffectiveFirewallsResponse include Google::Apis::Core::Hashable # Effective firewalls from firewall policy. # Corresponds to the JSON property `firewallPolicys` # @return [Array] attr_accessor :firewall_policys # Effective firewalls on the network. # Corresponds to the JSON property `firewalls` # @return [Array] attr_accessor :firewalls # Effective firewalls from organization policies. # Corresponds to the JSON property `organizationFirewalls` # @return [Array] attr_accessor :organization_firewalls def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @firewall_policys = args[:firewall_policys] if args.key?(:firewall_policys) @firewalls = args[:firewalls] if args.key?(:firewalls) @organization_firewalls = args[:organization_firewalls] if args.key?(:organization_firewalls) end end # class NetworksGetEffectiveFirewallsResponseEffectiveFirewallPolicy include Google::Apis::Core::Hashable # [Output Only] Deprecated, please use short name instead. The display name of # the firewall policy. # Corresponds to the JSON property `displayName` # @return [String] attr_accessor :display_name # [Output Only] The name of the firewall policy. # Corresponds to the JSON property `name` # @return [String] attr_accessor :name # The rules that apply to the network. # Corresponds to the JSON property `rules` # @return [Array] attr_accessor :rules # [Output Only] The short name of the firewall policy. # Corresponds to the JSON property `shortName` # @return [String] attr_accessor :short_name # [Output Only] The type of the firewall policy. # 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) @display_name = args[:display_name] if args.key?(:display_name) @name = args[:name] if args.key?(:name) @rules = args[:rules] if args.key?(:rules) @short_name = args[:short_name] if args.key?(:short_name) @type = args[:type] if args.key?(:type) end end # A pruned SecurityPolicy containing ID and any applicable firewall rules. class NetworksGetEffectiveFirewallsResponseOrganizationFirewallPolicy include Google::Apis::Core::Hashable # [Output Only] The unique identifier for the security policy. This identifier # is defined by the server. # Corresponds to the JSON property `id` # @return [Fixnum] attr_accessor :id # The rules that apply to the network. # Corresponds to the JSON property `rules` # @return [Array] attr_accessor :rules def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @id = args[:id] if args.key?(:id) @rules = args[:rules] if args.key?(:rules) end end # class NetworksRemovePeeringRequest include Google::Apis::Core::Hashable # Name of the peering, which should conform to RFC1035. # 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) @name = args[:name] if args.key?(:name) end end # class NetworksUpdatePeeringRequest include Google::Apis::Core::Hashable # A network peering attached to a network resource. The message includes the # peering name, peer network, peering state, and a flag indicating whether # Google Compute Engine should automatically create routes for the peering. # Corresponds to the JSON property `networkPeering` # @return [Google::Apis::ComputeAlpha::NetworkPeering] attr_accessor :network_peering def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @network_peering = args[:network_peering] if args.key?(:network_peering) end end # Represents a sole-tenant Node Group resource. A sole-tenant node is a physical # server that is dedicated to hosting VM instances only for your specific # project. Use sole-tenant nodes to keep your instances physically separated # from instances in other projects, or to group your instances together on the # same host hardware. For more information, read Sole-tenant nodes. class NodeGroup include Google::Apis::Core::Hashable # Specifies how autoscaling should behave. # Corresponds to the JSON property `autoscalingPolicy` # @return [Google::Apis::ComputeAlpha::NodeGroupAutoscalingPolicy] attr_accessor :autoscaling_policy # [Output Only] Creation timestamp in RFC3339 text format. # Corresponds to the JSON property `creationTimestamp` # @return [String] attr_accessor :creation_timestamp # An optional description of this resource. Provide this property when you # create the resource. # Corresponds to the JSON property `description` # @return [String] attr_accessor :description # # Corresponds to the JSON property `fingerprint` # NOTE: Values are automatically base64 encoded/decoded in the client library. # @return [String] attr_accessor :fingerprint # [Output Only] The unique identifier for the resource. This identifier is # defined by the server. # Corresponds to the JSON property `id` # @return [Fixnum] attr_accessor :id # [Output Only] The type of the resource. Always compute#nodeGroup for node # group. # Corresponds to the JSON property `kind` # @return [String] attr_accessor :kind # An opaque location hint used to place the Node close to other resources. This # field is for use by internal tools that use the public API. The location hint # here on the NodeGroup overrides any location_hint present in the NodeTemplate. # Corresponds to the JSON property `locationHint` # @return [String] attr_accessor :location_hint # Specifies how to handle instances when a node in the group undergoes # maintenance. Set to one of: DEFAULT, RESTART_IN_PLACE, or # MIGRATE_WITHIN_NODE_GROUP. The default value is DEFAULT. For more information, # see Maintenance policies. # Corresponds to the JSON property `maintenancePolicy` # @return [String] attr_accessor :maintenance_policy # Time window specified for daily maintenance operations. GCE's internal # maintenance will be performed within this window. # Corresponds to the JSON property `maintenanceWindow` # @return [Google::Apis::ComputeAlpha::NodeGroupMaintenanceWindow] attr_accessor :maintenance_window # The name of the resource, provided by the client when initially creating the # resource. The resource name must be 1-63 characters long, and comply with # RFC1035. Specifically, the name must be 1-63 characters long and match the # regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first # character must be a lowercase letter, and all following characters must be a # dash, lowercase letter, or digit, except the last character, which cannot be a # dash. # Corresponds to the JSON property `name` # @return [String] attr_accessor :name # URL of the node template to create the node group from. # Corresponds to the JSON property `nodeTemplate` # @return [String] attr_accessor :node_template # [Output Only] Server-defined URL for the resource. # Corresponds to the JSON property `selfLink` # @return [String] attr_accessor :self_link # [Output Only] Server-defined URL for this resource with the resource id. # Corresponds to the JSON property `selfLinkWithId` # @return [String] attr_accessor :self_link_with_id # The share setting for reservations and sole tenancy node groups. # Corresponds to the JSON property `shareSettings` # @return [Google::Apis::ComputeAlpha::ShareSettings] attr_accessor :share_settings # [Output Only] The total number of nodes in the node group. # Corresponds to the JSON property `size` # @return [Fixnum] attr_accessor :size # # Corresponds to the JSON property `status` # @return [String] attr_accessor :status # [Output Only] The name of the zone where the node group resides, such as us- # central1-a. # 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) @autoscaling_policy = args[:autoscaling_policy] if args.key?(:autoscaling_policy) @creation_timestamp = args[:creation_timestamp] if args.key?(:creation_timestamp) @description = args[:description] if args.key?(:description) @fingerprint = args[:fingerprint] if args.key?(:fingerprint) @id = args[:id] if args.key?(:id) @kind = args[:kind] if args.key?(:kind) @location_hint = args[:location_hint] if args.key?(:location_hint) @maintenance_policy = args[:maintenance_policy] if args.key?(:maintenance_policy) @maintenance_window = args[:maintenance_window] if args.key?(:maintenance_window) @name = args[:name] if args.key?(:name) @node_template = args[:node_template] if args.key?(:node_template) @self_link = args[:self_link] if args.key?(:self_link) @self_link_with_id = args[:self_link_with_id] if args.key?(:self_link_with_id) @share_settings = args[:share_settings] if args.key?(:share_settings) @size = args[:size] if args.key?(:size) @status = args[:status] if args.key?(:status) @zone = args[:zone] if args.key?(:zone) end end # class NodeGroupAggregatedList include Google::Apis::Core::Hashable # [Output Only] Unique identifier for the resource; defined by the server. # Corresponds to the JSON property `id` # @return [String] attr_accessor :id # A list of NodeGroupsScopedList resources. # Corresponds to the JSON property `items` # @return [Hash] attr_accessor :items # [Output Only] Type of resource.Always compute#nodeGroupAggregatedList for # aggregated lists of node groups. # Corresponds to the JSON property `kind` # @return [String] attr_accessor :kind # [Output Only] This token allows you to get the next page of results for list # requests. If the number of results is larger than maxResults, use the # nextPageToken as a value for the query parameter pageToken in the next list # request. Subsequent list requests will have their own nextPageToken to # continue paging through the results. # Corresponds to the JSON property `nextPageToken` # @return [String] attr_accessor :next_page_token # [Output Only] Server-defined URL for this resource. # Corresponds to the JSON property `selfLink` # @return [String] attr_accessor :self_link # [Output Only] Unreachable resources. # Corresponds to the JSON property `unreachables` # @return [Array] attr_accessor :unreachables # [Output Only] Informational warning message. # Corresponds to the JSON property `warning` # @return [Google::Apis::ComputeAlpha::NodeGroupAggregatedList::Warning] attr_accessor :warning def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @id = args[:id] if args.key?(:id) @items = args[:items] if args.key?(:items) @kind = args[:kind] if args.key?(:kind) @next_page_token = args[:next_page_token] if args.key?(:next_page_token) @self_link = args[:self_link] if args.key?(:self_link) @unreachables = args[:unreachables] if args.key?(:unreachables) @warning = args[:warning] if args.key?(:warning) end # [Output Only] Informational warning message. class Warning include Google::Apis::Core::Hashable # [Output Only] A warning code, if applicable. For example, Compute Engine # returns NO_RESULTS_ON_PAGE if there are no results in the response. # Corresponds to the JSON property `code` # @return [String] attr_accessor :code # [Output Only] Metadata about this warning in key: value format. For example: " # data": [ ` "key": "scope", "value": "zones/us-east1-d" ` # Corresponds to the JSON property `data` # @return [Array] attr_accessor :data # [Output Only] A human-readable description of the warning code. # Corresponds to the JSON property `message` # @return [String] attr_accessor :message def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @code = args[:code] if args.key?(:code) @data = args[:data] if args.key?(:data) @message = args[:message] if args.key?(:message) end # class Datum include Google::Apis::Core::Hashable # [Output Only] A key that provides more detail on the warning being returned. # For example, for warnings where there are no results in a list request for a # particular zone, this key might be scope and the key value might be the zone # name. Other examples might be a key indicating a deprecated resource and a # suggested replacement, or a warning about invalid network settings (for # example, if an instance attempts to perform IP forwarding but is not enabled # for IP forwarding). # Corresponds to the JSON property `key` # @return [String] attr_accessor :key # [Output Only] A warning data value corresponding to the key. # 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 end end # class NodeGroupAutoscalingPolicy include Google::Apis::Core::Hashable # The maximum number of nodes that the group should have. Must be set if # autoscaling is enabled. Maximum value allowed is 100. # Corresponds to the JSON property `maxNodes` # @return [Fixnum] attr_accessor :max_nodes # The minimum number of nodes that the group should have. # Corresponds to the JSON property `minNodes` # @return [Fixnum] attr_accessor :min_nodes # The autoscaling mode. Set to one of: ON, OFF, or ONLY_SCALE_OUT. For more # information, see Autoscaler modes. # Corresponds to the JSON property `mode` # @return [String] attr_accessor :mode def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @max_nodes = args[:max_nodes] if args.key?(:max_nodes) @min_nodes = args[:min_nodes] if args.key?(:min_nodes) @mode = args[:mode] if args.key?(:mode) end end # Contains a list of nodeGroups. class NodeGroupList include Google::Apis::Core::Hashable # [Output Only] Unique identifier for the resource; defined by the server. # Corresponds to the JSON property `id` # @return [String] attr_accessor :id # A list of NodeGroup resources. # Corresponds to the JSON property `items` # @return [Array] attr_accessor :items # [Output Only] Type of resource.Always compute#nodeGroupList for lists of node # groups. # Corresponds to the JSON property `kind` # @return [String] attr_accessor :kind # [Output Only] This token allows you to get the next page of results for list # requests. If the number of results is larger than maxResults, use the # nextPageToken as a value for the query parameter pageToken in the next list # request. Subsequent list requests will have their own nextPageToken to # continue paging through the results. # Corresponds to the JSON property `nextPageToken` # @return [String] attr_accessor :next_page_token # [Output Only] Server-defined URL for this resource. # Corresponds to the JSON property `selfLink` # @return [String] attr_accessor :self_link # [Output Only] Informational warning message. # Corresponds to the JSON property `warning` # @return [Google::Apis::ComputeAlpha::NodeGroupList::Warning] attr_accessor :warning def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @id = args[:id] if args.key?(:id) @items = args[:items] if args.key?(:items) @kind = args[:kind] if args.key?(:kind) @next_page_token = args[:next_page_token] if args.key?(:next_page_token) @self_link = args[:self_link] if args.key?(:self_link) @warning = args[:warning] if args.key?(:warning) end # [Output Only] Informational warning message. class Warning include Google::Apis::Core::Hashable # [Output Only] A warning code, if applicable. For example, Compute Engine # returns NO_RESULTS_ON_PAGE if there are no results in the response. # Corresponds to the JSON property `code` # @return [String] attr_accessor :code # [Output Only] Metadata about this warning in key: value format. For example: " # data": [ ` "key": "scope", "value": "zones/us-east1-d" ` # Corresponds to the JSON property `data` # @return [Array] attr_accessor :data # [Output Only] A human-readable description of the warning code. # Corresponds to the JSON property `message` # @return [String] attr_accessor :message def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @code = args[:code] if args.key?(:code) @data = args[:data] if args.key?(:data) @message = args[:message] if args.key?(:message) end # class Datum include Google::Apis::Core::Hashable # [Output Only] A key that provides more detail on the warning being returned. # For example, for warnings where there are no results in a list request for a # particular zone, this key might be scope and the key value might be the zone # name. Other examples might be a key indicating a deprecated resource and a # suggested replacement, or a warning about invalid network settings (for # example, if an instance attempts to perform IP forwarding but is not enabled # for IP forwarding). # Corresponds to the JSON property `key` # @return [String] attr_accessor :key # [Output Only] A warning data value corresponding to the key. # 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 end end # Time window specified for daily maintenance operations. GCE's internal # maintenance will be performed within this window. class NodeGroupMaintenanceWindow include Google::Apis::Core::Hashable # [Output only] A predetermined duration for the window, automatically chosen to # be the smallest possible in the given scenario. # Corresponds to the JSON property `duration` # @return [String] attr_accessor :duration # A Duration represents a fixed-length span of time represented as a count of # seconds and fractions of seconds at nanosecond resolution. It is independent # of any calendar and concepts like "day" or "month". Range is approximately 10, # 000 years. # Corresponds to the JSON property `maintenanceDuration` # @return [Google::Apis::ComputeAlpha::Duration] attr_accessor :maintenance_duration # Start time of the window. This must be in UTC format that resolves to one of # 00:00, 04:00, 08:00, 12:00, 16:00, or 20:00. For example, both 13:00-5 and 08: # 00 are valid. # Corresponds to the JSON property `startTime` # @return [String] attr_accessor :start_time def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @duration = args[:duration] if args.key?(:duration) @maintenance_duration = args[:maintenance_duration] if args.key?(:maintenance_duration) @start_time = args[:start_time] if args.key?(:start_time) end end # class NodeGroupNode include Google::Apis::Core::Hashable # Accelerators for this node. # Corresponds to the JSON property `accelerators` # @return [Array] attr_accessor :accelerators # Node resources that are reserved by all instances. # Corresponds to the JSON property `consumedResources` # @return [Google::Apis::ComputeAlpha::InstanceConsumptionInfo] attr_accessor :consumed_resources # CPU overcommit. # Corresponds to the JSON property `cpuOvercommitType` # @return [String] attr_accessor :cpu_overcommit_type # Local disk configurations. # Corresponds to the JSON property `disks` # @return [Array] attr_accessor :disks # Instance data that shows consumed resources on the node. # Corresponds to the JSON property `instanceConsumptionData` # @return [Array] attr_accessor :instance_consumption_data # Instances scheduled on this node. # Corresponds to the JSON property `instances` # @return [Array] attr_accessor :instances # The name of the node. # Corresponds to the JSON property `name` # @return [String] attr_accessor :name # The type of this node. # Corresponds to the JSON property `nodeType` # @return [String] attr_accessor :node_type # [Output Only] Reserved for future use. # Corresponds to the JSON property `satisfiesPzs` # @return [Boolean] attr_accessor :satisfies_pzs alias_method :satisfies_pzs?, :satisfies_pzs # Binding properties for the physical server. # Corresponds to the JSON property `serverBinding` # @return [Google::Apis::ComputeAlpha::ServerBinding] attr_accessor :server_binding # Server ID associated with this node. # Corresponds to the JSON property `serverId` # @return [String] attr_accessor :server_id # # Corresponds to the JSON property `status` # @return [String] attr_accessor :status # Total amount of available resources on the node. # Corresponds to the JSON property `totalResources` # @return [Google::Apis::ComputeAlpha::InstanceConsumptionInfo] attr_accessor :total_resources def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @accelerators = args[:accelerators] if args.key?(:accelerators) @consumed_resources = args[:consumed_resources] if args.key?(:consumed_resources) @cpu_overcommit_type = args[:cpu_overcommit_type] if args.key?(:cpu_overcommit_type) @disks = args[:disks] if args.key?(:disks) @instance_consumption_data = args[:instance_consumption_data] if args.key?(:instance_consumption_data) @instances = args[:instances] if args.key?(:instances) @name = args[:name] if args.key?(:name) @node_type = args[:node_type] if args.key?(:node_type) @satisfies_pzs = args[:satisfies_pzs] if args.key?(:satisfies_pzs) @server_binding = args[:server_binding] if args.key?(:server_binding) @server_id = args[:server_id] if args.key?(:server_id) @status = args[:status] if args.key?(:status) @total_resources = args[:total_resources] if args.key?(:total_resources) end end # class NodeGroupsAddNodesRequest include Google::Apis::Core::Hashable # Count of additional nodes to be added to the node group. # Corresponds to the JSON property `additionalNodeCount` # @return [Fixnum] attr_accessor :additional_node_count def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @additional_node_count = args[:additional_node_count] if args.key?(:additional_node_count) end end # class NodeGroupsDeleteNodesRequest include Google::Apis::Core::Hashable # Names of the nodes to delete. # Corresponds to the JSON property `nodes` # @return [Array] attr_accessor :nodes def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @nodes = args[:nodes] if args.key?(:nodes) end end # class NodeGroupsListNodes include Google::Apis::Core::Hashable # [Output Only] Unique identifier for the resource; defined by the server. # Corresponds to the JSON property `id` # @return [String] attr_accessor :id # A list of Node resources. # Corresponds to the JSON property `items` # @return [Array] attr_accessor :items # [Output Only] The resource type, which is always compute.nodeGroupsListNodes # for the list of nodes in the specified node group. # Corresponds to the JSON property `kind` # @return [String] attr_accessor :kind # [Output Only] This token allows you to get the next page of results for list # requests. If the number of results is larger than maxResults, use the # nextPageToken as a value for the query parameter pageToken in the next list # request. Subsequent list requests will have their own nextPageToken to # continue paging through the results. # Corresponds to the JSON property `nextPageToken` # @return [String] attr_accessor :next_page_token # [Output Only] Server-defined URL for this resource. # Corresponds to the JSON property `selfLink` # @return [String] attr_accessor :self_link # [Output Only] Informational warning message. # Corresponds to the JSON property `warning` # @return [Google::Apis::ComputeAlpha::NodeGroupsListNodes::Warning] attr_accessor :warning def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @id = args[:id] if args.key?(:id) @items = args[:items] if args.key?(:items) @kind = args[:kind] if args.key?(:kind) @next_page_token = args[:next_page_token] if args.key?(:next_page_token) @self_link = args[:self_link] if args.key?(:self_link) @warning = args[:warning] if args.key?(:warning) end # [Output Only] Informational warning message. class Warning include Google::Apis::Core::Hashable # [Output Only] A warning code, if applicable. For example, Compute Engine # returns NO_RESULTS_ON_PAGE if there are no results in the response. # Corresponds to the JSON property `code` # @return [String] attr_accessor :code # [Output Only] Metadata about this warning in key: value format. For example: " # data": [ ` "key": "scope", "value": "zones/us-east1-d" ` # Corresponds to the JSON property `data` # @return [Array] attr_accessor :data # [Output Only] A human-readable description of the warning code. # Corresponds to the JSON property `message` # @return [String] attr_accessor :message def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @code = args[:code] if args.key?(:code) @data = args[:data] if args.key?(:data) @message = args[:message] if args.key?(:message) end # class Datum include Google::Apis::Core::Hashable # [Output Only] A key that provides more detail on the warning being returned. # For example, for warnings where there are no results in a list request for a # particular zone, this key might be scope and the key value might be the zone # name. Other examples might be a key indicating a deprecated resource and a # suggested replacement, or a warning about invalid network settings (for # example, if an instance attempts to perform IP forwarding but is not enabled # for IP forwarding). # Corresponds to the JSON property `key` # @return [String] attr_accessor :key # [Output Only] A warning data value corresponding to the key. # 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 end end # class NodeGroupsScopedList include Google::Apis::Core::Hashable # [Output Only] A list of node groups contained in this scope. # Corresponds to the JSON property `nodeGroups` # @return [Array] attr_accessor :node_groups # [Output Only] An informational warning that appears when the nodeGroup list is # empty. # Corresponds to the JSON property `warning` # @return [Google::Apis::ComputeAlpha::NodeGroupsScopedList::Warning] attr_accessor :warning def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @node_groups = args[:node_groups] if args.key?(:node_groups) @warning = args[:warning] if args.key?(:warning) end # [Output Only] An informational warning that appears when the nodeGroup list is # empty. class Warning include Google::Apis::Core::Hashable # [Output Only] A warning code, if applicable. For example, Compute Engine # returns NO_RESULTS_ON_PAGE if there are no results in the response. # Corresponds to the JSON property `code` # @return [String] attr_accessor :code # [Output Only] Metadata about this warning in key: value format. For example: " # data": [ ` "key": "scope", "value": "zones/us-east1-d" ` # Corresponds to the JSON property `data` # @return [Array] attr_accessor :data # [Output Only] A human-readable description of the warning code. # Corresponds to the JSON property `message` # @return [String] attr_accessor :message def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @code = args[:code] if args.key?(:code) @data = args[:data] if args.key?(:data) @message = args[:message] if args.key?(:message) end # class Datum include Google::Apis::Core::Hashable # [Output Only] A key that provides more detail on the warning being returned. # For example, for warnings where there are no results in a list request for a # particular zone, this key might be scope and the key value might be the zone # name. Other examples might be a key indicating a deprecated resource and a # suggested replacement, or a warning about invalid network settings (for # example, if an instance attempts to perform IP forwarding but is not enabled # for IP forwarding). # Corresponds to the JSON property `key` # @return [String] attr_accessor :key # [Output Only] A warning data value corresponding to the key. # 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 end end # class NodeGroupsSetNodeTemplateRequest include Google::Apis::Core::Hashable # Full or partial URL of the node template resource to be updated for this node # group. # Corresponds to the JSON property `nodeTemplate` # @return [String] attr_accessor :node_template def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @node_template = args[:node_template] if args.key?(:node_template) end end # Represent a sole-tenant Node Template resource. You can use a template to # define properties for nodes in a node group. For more information, read # Creating node groups and instances. class NodeTemplate include Google::Apis::Core::Hashable # # Corresponds to the JSON property `accelerators` # @return [Array] attr_accessor :accelerators # CPU overcommit. # Corresponds to the JSON property `cpuOvercommitType` # @return [String] attr_accessor :cpu_overcommit_type # [Output Only] Creation timestamp in RFC3339 text format. # Corresponds to the JSON property `creationTimestamp` # @return [String] attr_accessor :creation_timestamp # An optional description of this resource. Provide this property when you # create the resource. # Corresponds to the JSON property `description` # @return [String] attr_accessor :description # # Corresponds to the JSON property `disks` # @return [Array] attr_accessor :disks # [Output Only] The unique identifier for the resource. This identifier is # defined by the server. # Corresponds to the JSON property `id` # @return [Fixnum] attr_accessor :id # [Output Only] The type of the resource. Always compute#nodeTemplate for node # templates. # Corresponds to the JSON property `kind` # @return [String] attr_accessor :kind # The name of the resource, provided by the client when initially creating the # resource. The resource name must be 1-63 characters long, and comply with # RFC1035. Specifically, the name must be 1-63 characters long and match the # regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first # character must be a lowercase letter, and all following characters must be a # dash, lowercase letter, or digit, except the last character, which cannot be a # dash. # Corresponds to the JSON property `name` # @return [String] attr_accessor :name # Labels to use for node affinity, which will be used in instance scheduling. # Corresponds to the JSON property `nodeAffinityLabels` # @return [Hash] attr_accessor :node_affinity_labels # The node type to use for nodes group that are created from this template. # Corresponds to the JSON property `nodeType` # @return [String] attr_accessor :node_type # The flexible properties of the desired node type. Node groups that use this # node template will create nodes of a type that matches these properties. This # field is mutually exclusive with the node_type property; you can only define # one or the other, but not both. # Corresponds to the JSON property `nodeTypeFlexibility` # @return [Google::Apis::ComputeAlpha::NodeTemplateNodeTypeFlexibility] attr_accessor :node_type_flexibility # [Output Only] The name of the region where the node template resides, such as # us-central1. # Corresponds to the JSON property `region` # @return [String] attr_accessor :region # [Output Only] Server-defined URL for the resource. # Corresponds to the JSON property `selfLink` # @return [String] attr_accessor :self_link # [Output Only] Server-defined URL for this resource with the resource id. # Corresponds to the JSON property `selfLinkWithId` # @return [String] attr_accessor :self_link_with_id # Sets the binding properties for the physical server. Valid values include: - *[ # Default]* RESTART_NODE_ON_ANY_SERVER: Restarts VMs on any available physical # server - RESTART_NODE_ON_MINIMAL_SERVER: Restarts VMs on the same physical # server whenever possible See Sole-tenant node options for more information. # Corresponds to the JSON property `serverBinding` # @return [Google::Apis::ComputeAlpha::ServerBinding] attr_accessor :server_binding # [Output Only] The status of the node template. One of the following values: # CREATING, READY, and DELETING. # Corresponds to the JSON property `status` # @return [String] attr_accessor :status # [Output Only] An optional, human-readable explanation of the status. # Corresponds to the JSON property `statusMessage` # @return [String] attr_accessor :status_message def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @accelerators = args[:accelerators] if args.key?(:accelerators) @cpu_overcommit_type = args[:cpu_overcommit_type] if args.key?(:cpu_overcommit_type) @creation_timestamp = args[:creation_timestamp] if args.key?(:creation_timestamp) @description = args[:description] if args.key?(:description) @disks = args[:disks] if args.key?(:disks) @id = args[:id] if args.key?(:id) @kind = args[:kind] if args.key?(:kind) @name = args[:name] if args.key?(:name) @node_affinity_labels = args[:node_affinity_labels] if args.key?(:node_affinity_labels) @node_type = args[:node_type] if args.key?(:node_type) @node_type_flexibility = args[:node_type_flexibility] if args.key?(:node_type_flexibility) @region = args[:region] if args.key?(:region) @self_link = args[:self_link] if args.key?(:self_link) @self_link_with_id = args[:self_link_with_id] if args.key?(:self_link_with_id) @server_binding = args[:server_binding] if args.key?(:server_binding) @status = args[:status] if args.key?(:status) @status_message = args[:status_message] if args.key?(:status_message) end end # class NodeTemplateAggregatedList include Google::Apis::Core::Hashable # [Output Only] Unique identifier for the resource; defined by the server. # Corresponds to the JSON property `id` # @return [String] attr_accessor :id # A list of NodeTemplatesScopedList resources. # Corresponds to the JSON property `items` # @return [Hash] attr_accessor :items # [Output Only] Type of resource.Always compute#nodeTemplateAggregatedList for # aggregated lists of node templates. # Corresponds to the JSON property `kind` # @return [String] attr_accessor :kind # [Output Only] This token allows you to get the next page of results for list # requests. If the number of results is larger than maxResults, use the # nextPageToken as a value for the query parameter pageToken in the next list # request. Subsequent list requests will have their own nextPageToken to # continue paging through the results. # Corresponds to the JSON property `nextPageToken` # @return [String] attr_accessor :next_page_token # [Output Only] Server-defined URL for this resource. # Corresponds to the JSON property `selfLink` # @return [String] attr_accessor :self_link # [Output Only] Unreachable resources. # Corresponds to the JSON property `unreachables` # @return [Array] attr_accessor :unreachables # [Output Only] Informational warning message. # Corresponds to the JSON property `warning` # @return [Google::Apis::ComputeAlpha::NodeTemplateAggregatedList::Warning] attr_accessor :warning def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @id = args[:id] if args.key?(:id) @items = args[:items] if args.key?(:items) @kind = args[:kind] if args.key?(:kind) @next_page_token = args[:next_page_token] if args.key?(:next_page_token) @self_link = args[:self_link] if args.key?(:self_link) @unreachables = args[:unreachables] if args.key?(:unreachables) @warning = args[:warning] if args.key?(:warning) end # [Output Only] Informational warning message. class Warning include Google::Apis::Core::Hashable # [Output Only] A warning code, if applicable. For example, Compute Engine # returns NO_RESULTS_ON_PAGE if there are no results in the response. # Corresponds to the JSON property `code` # @return [String] attr_accessor :code # [Output Only] Metadata about this warning in key: value format. For example: " # data": [ ` "key": "scope", "value": "zones/us-east1-d" ` # Corresponds to the JSON property `data` # @return [Array] attr_accessor :data # [Output Only] A human-readable description of the warning code. # Corresponds to the JSON property `message` # @return [String] attr_accessor :message def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @code = args[:code] if args.key?(:code) @data = args[:data] if args.key?(:data) @message = args[:message] if args.key?(:message) end # class Datum include Google::Apis::Core::Hashable # [Output Only] A key that provides more detail on the warning being returned. # For example, for warnings where there are no results in a list request for a # particular zone, this key might be scope and the key value might be the zone # name. Other examples might be a key indicating a deprecated resource and a # suggested replacement, or a warning about invalid network settings (for # example, if an instance attempts to perform IP forwarding but is not enabled # for IP forwarding). # Corresponds to the JSON property `key` # @return [String] attr_accessor :key # [Output Only] A warning data value corresponding to the key. # 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 end end # Contains a list of node templates. class NodeTemplateList include Google::Apis::Core::Hashable # [Output Only] Unique identifier for the resource; defined by the server. # Corresponds to the JSON property `id` # @return [String] attr_accessor :id # A list of NodeTemplate resources. # Corresponds to the JSON property `items` # @return [Array] attr_accessor :items # [Output Only] Type of resource.Always compute#nodeTemplateList for lists of # node templates. # Corresponds to the JSON property `kind` # @return [String] attr_accessor :kind # [Output Only] This token allows you to get the next page of results for list # requests. If the number of results is larger than maxResults, use the # nextPageToken as a value for the query parameter pageToken in the next list # request. Subsequent list requests will have their own nextPageToken to # continue paging through the results. # Corresponds to the JSON property `nextPageToken` # @return [String] attr_accessor :next_page_token # [Output Only] Server-defined URL for this resource. # Corresponds to the JSON property `selfLink` # @return [String] attr_accessor :self_link # [Output Only] Informational warning message. # Corresponds to the JSON property `warning` # @return [Google::Apis::ComputeAlpha::NodeTemplateList::Warning] attr_accessor :warning def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @id = args[:id] if args.key?(:id) @items = args[:items] if args.key?(:items) @kind = args[:kind] if args.key?(:kind) @next_page_token = args[:next_page_token] if args.key?(:next_page_token) @self_link = args[:self_link] if args.key?(:self_link) @warning = args[:warning] if args.key?(:warning) end # [Output Only] Informational warning message. class Warning include Google::Apis::Core::Hashable # [Output Only] A warning code, if applicable. For example, Compute Engine # returns NO_RESULTS_ON_PAGE if there are no results in the response. # Corresponds to the JSON property `code` # @return [String] attr_accessor :code # [Output Only] Metadata about this warning in key: value format. For example: " # data": [ ` "key": "scope", "value": "zones/us-east1-d" ` # Corresponds to the JSON property `data` # @return [Array] attr_accessor :data # [Output Only] A human-readable description of the warning code. # Corresponds to the JSON property `message` # @return [String] attr_accessor :message def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @code = args[:code] if args.key?(:code) @data = args[:data] if args.key?(:data) @message = args[:message] if args.key?(:message) end # class Datum include Google::Apis::Core::Hashable # [Output Only] A key that provides more detail on the warning being returned. # For example, for warnings where there are no results in a list request for a # particular zone, this key might be scope and the key value might be the zone # name. Other examples might be a key indicating a deprecated resource and a # suggested replacement, or a warning about invalid network settings (for # example, if an instance attempts to perform IP forwarding but is not enabled # for IP forwarding). # Corresponds to the JSON property `key` # @return [String] attr_accessor :key # [Output Only] A warning data value corresponding to the key. # 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 end end # class NodeTemplateNodeTypeFlexibility include Google::Apis::Core::Hashable # # Corresponds to the JSON property `cpus` # @return [String] attr_accessor :cpus # # Corresponds to the JSON property `localSsd` # @return [String] attr_accessor :local_ssd # # Corresponds to the JSON property `memory` # @return [String] attr_accessor :memory def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @cpus = args[:cpus] if args.key?(:cpus) @local_ssd = args[:local_ssd] if args.key?(:local_ssd) @memory = args[:memory] if args.key?(:memory) end end # class NodeTemplatesScopedList include Google::Apis::Core::Hashable # [Output Only] A list of node templates contained in this scope. # Corresponds to the JSON property `nodeTemplates` # @return [Array] attr_accessor :node_templates # [Output Only] An informational warning that appears when the node templates # list is empty. # Corresponds to the JSON property `warning` # @return [Google::Apis::ComputeAlpha::NodeTemplatesScopedList::Warning] attr_accessor :warning def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @node_templates = args[:node_templates] if args.key?(:node_templates) @warning = args[:warning] if args.key?(:warning) end # [Output Only] An informational warning that appears when the node templates # list is empty. class Warning include Google::Apis::Core::Hashable # [Output Only] A warning code, if applicable. For example, Compute Engine # returns NO_RESULTS_ON_PAGE if there are no results in the response. # Corresponds to the JSON property `code` # @return [String] attr_accessor :code # [Output Only] Metadata about this warning in key: value format. For example: " # data": [ ` "key": "scope", "value": "zones/us-east1-d" ` # Corresponds to the JSON property `data` # @return [Array] attr_accessor :data # [Output Only] A human-readable description of the warning code. # Corresponds to the JSON property `message` # @return [String] attr_accessor :message def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @code = args[:code] if args.key?(:code) @data = args[:data] if args.key?(:data) @message = args[:message] if args.key?(:message) end # class Datum include Google::Apis::Core::Hashable # [Output Only] A key that provides more detail on the warning being returned. # For example, for warnings where there are no results in a list request for a # particular zone, this key might be scope and the key value might be the zone # name. Other examples might be a key indicating a deprecated resource and a # suggested replacement, or a warning about invalid network settings (for # example, if an instance attempts to perform IP forwarding but is not enabled # for IP forwarding). # Corresponds to the JSON property `key` # @return [String] attr_accessor :key # [Output Only] A warning data value corresponding to the key. # 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 end end # Represent a sole-tenant Node Type resource. Each node within a node group must # have a node type. A node type specifies the total amount of cores and memory # for that node. Currently, the only available node type is n1-node-96-624 node # type that has 96 vCPUs and 624 GB of memory, available in multiple zones. For # more information read Node types. class NodeType include Google::Apis::Core::Hashable # [Output Only] The CPU platform used by this node type. # Corresponds to the JSON property `cpuPlatform` # @return [String] attr_accessor :cpu_platform # [Output Only] Creation timestamp in RFC3339 text format. # Corresponds to the JSON property `creationTimestamp` # @return [String] attr_accessor :creation_timestamp # Deprecation status for a public resource. # Corresponds to the JSON property `deprecated` # @return [Google::Apis::ComputeAlpha::DeprecationStatus] attr_accessor :deprecated # [Output Only] An optional textual description of the resource. # Corresponds to the JSON property `description` # @return [String] attr_accessor :description # [Output Only] The number of virtual CPUs that are available to the node type. # Corresponds to the JSON property `guestCpus` # @return [Fixnum] attr_accessor :guest_cpus # [Output Only] The unique identifier for the resource. This identifier is # defined by the server. # Corresponds to the JSON property `id` # @return [Fixnum] attr_accessor :id # [Output Only] The type of the resource. Always compute#nodeType for node types. # Corresponds to the JSON property `kind` # @return [String] attr_accessor :kind # [Output Only] Local SSD available to the node type, defined in GB. # Corresponds to the JSON property `localSsdGb` # @return [Fixnum] attr_accessor :local_ssd_gb # [Output Only] The amount of physical memory available to the node type, # defined in MB. # Corresponds to the JSON property `memoryMb` # @return [Fixnum] attr_accessor :memory_mb # [Output Only] Name of the resource. # Corresponds to the JSON property `name` # @return [String] attr_accessor :name # [Output Only] Server-defined URL for the resource. # Corresponds to the JSON property `selfLink` # @return [String] attr_accessor :self_link # [Output Only] Server-defined URL for this resource with the resource id. # Corresponds to the JSON property `selfLinkWithId` # @return [String] attr_accessor :self_link_with_id # [Output Only] The name of the zone where the node type resides, such as us- # central1-a. # 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) @cpu_platform = args[:cpu_platform] if args.key?(:cpu_platform) @creation_timestamp = args[:creation_timestamp] if args.key?(:creation_timestamp) @deprecated = args[:deprecated] if args.key?(:deprecated) @description = args[:description] if args.key?(:description) @guest_cpus = args[:guest_cpus] if args.key?(:guest_cpus) @id = args[:id] if args.key?(:id) @kind = args[:kind] if args.key?(:kind) @local_ssd_gb = args[:local_ssd_gb] if args.key?(:local_ssd_gb) @memory_mb = args[:memory_mb] if args.key?(:memory_mb) @name = args[:name] if args.key?(:name) @self_link = args[:self_link] if args.key?(:self_link) @self_link_with_id = args[:self_link_with_id] if args.key?(:self_link_with_id) @zone = args[:zone] if args.key?(:zone) end end # class NodeTypeAggregatedList include Google::Apis::Core::Hashable # [Output Only] Unique identifier for the resource; defined by the server. # Corresponds to the JSON property `id` # @return [String] attr_accessor :id # A list of NodeTypesScopedList resources. # Corresponds to the JSON property `items` # @return [Hash] attr_accessor :items # [Output Only] Type of resource.Always compute#nodeTypeAggregatedList for # aggregated lists of node types. # Corresponds to the JSON property `kind` # @return [String] attr_accessor :kind # [Output Only] This token allows you to get the next page of results for list # requests. If the number of results is larger than maxResults, use the # nextPageToken as a value for the query parameter pageToken in the next list # request. Subsequent list requests will have their own nextPageToken to # continue paging through the results. # Corresponds to the JSON property `nextPageToken` # @return [String] attr_accessor :next_page_token # [Output Only] Server-defined URL for this resource. # Corresponds to the JSON property `selfLink` # @return [String] attr_accessor :self_link # [Output Only] Unreachable resources. # Corresponds to the JSON property `unreachables` # @return [Array] attr_accessor :unreachables # [Output Only] Informational warning message. # Corresponds to the JSON property `warning` # @return [Google::Apis::ComputeAlpha::NodeTypeAggregatedList::Warning] attr_accessor :warning def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @id = args[:id] if args.key?(:id) @items = args[:items] if args.key?(:items) @kind = args[:kind] if args.key?(:kind) @next_page_token = args[:next_page_token] if args.key?(:next_page_token) @self_link = args[:self_link] if args.key?(:self_link) @unreachables = args[:unreachables] if args.key?(:unreachables) @warning = args[:warning] if args.key?(:warning) end # [Output Only] Informational warning message. class Warning include Google::Apis::Core::Hashable # [Output Only] A warning code, if applicable. For example, Compute Engine # returns NO_RESULTS_ON_PAGE if there are no results in the response. # Corresponds to the JSON property `code` # @return [String] attr_accessor :code # [Output Only] Metadata about this warning in key: value format. For example: " # data": [ ` "key": "scope", "value": "zones/us-east1-d" ` # Corresponds to the JSON property `data` # @return [Array] attr_accessor :data # [Output Only] A human-readable description of the warning code. # Corresponds to the JSON property `message` # @return [String] attr_accessor :message def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @code = args[:code] if args.key?(:code) @data = args[:data] if args.key?(:data) @message = args[:message] if args.key?(:message) end # class Datum include Google::Apis::Core::Hashable # [Output Only] A key that provides more detail on the warning being returned. # For example, for warnings where there are no results in a list request for a # particular zone, this key might be scope and the key value might be the zone # name. Other examples might be a key indicating a deprecated resource and a # suggested replacement, or a warning about invalid network settings (for # example, if an instance attempts to perform IP forwarding but is not enabled # for IP forwarding). # Corresponds to the JSON property `key` # @return [String] attr_accessor :key # [Output Only] A warning data value corresponding to the key. # 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 end end # Contains a list of node types. class NodeTypeList include Google::Apis::Core::Hashable # [Output Only] Unique identifier for the resource; defined by the server. # Corresponds to the JSON property `id` # @return [String] attr_accessor :id # A list of NodeType resources. # Corresponds to the JSON property `items` # @return [Array] attr_accessor :items # [Output Only] Type of resource.Always compute#nodeTypeList for lists of node # types. # Corresponds to the JSON property `kind` # @return [String] attr_accessor :kind # [Output Only] This token allows you to get the next page of results for list # requests. If the number of results is larger than maxResults, use the # nextPageToken as a value for the query parameter pageToken in the next list # request. Subsequent list requests will have their own nextPageToken to # continue paging through the results. # Corresponds to the JSON property `nextPageToken` # @return [String] attr_accessor :next_page_token # [Output Only] Server-defined URL for this resource. # Corresponds to the JSON property `selfLink` # @return [String] attr_accessor :self_link # [Output Only] Informational warning message. # Corresponds to the JSON property `warning` # @return [Google::Apis::ComputeAlpha::NodeTypeList::Warning] attr_accessor :warning def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @id = args[:id] if args.key?(:id) @items = args[:items] if args.key?(:items) @kind = args[:kind] if args.key?(:kind) @next_page_token = args[:next_page_token] if args.key?(:next_page_token) @self_link = args[:self_link] if args.key?(:self_link) @warning = args[:warning] if args.key?(:warning) end # [Output Only] Informational warning message. class Warning include Google::Apis::Core::Hashable # [Output Only] A warning code, if applicable. For example, Compute Engine # returns NO_RESULTS_ON_PAGE if there are no results in the response. # Corresponds to the JSON property `code` # @return [String] attr_accessor :code # [Output Only] Metadata about this warning in key: value format. For example: " # data": [ ` "key": "scope", "value": "zones/us-east1-d" ` # Corresponds to the JSON property `data` # @return [Array] attr_accessor :data # [Output Only] A human-readable description of the warning code. # Corresponds to the JSON property `message` # @return [String] attr_accessor :message def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @code = args[:code] if args.key?(:code) @data = args[:data] if args.key?(:data) @message = args[:message] if args.key?(:message) end # class Datum include Google::Apis::Core::Hashable # [Output Only] A key that provides more detail on the warning being returned. # For example, for warnings where there are no results in a list request for a # particular zone, this key might be scope and the key value might be the zone # name. Other examples might be a key indicating a deprecated resource and a # suggested replacement, or a warning about invalid network settings (for # example, if an instance attempts to perform IP forwarding but is not enabled # for IP forwarding). # Corresponds to the JSON property `key` # @return [String] attr_accessor :key # [Output Only] A warning data value corresponding to the key. # 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 end end # class NodeTypesScopedList include Google::Apis::Core::Hashable # [Output Only] A list of node types contained in this scope. # Corresponds to the JSON property `nodeTypes` # @return [Array] attr_accessor :node_types # [Output Only] An informational warning that appears when the node types list # is empty. # Corresponds to the JSON property `warning` # @return [Google::Apis::ComputeAlpha::NodeTypesScopedList::Warning] attr_accessor :warning def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @node_types = args[:node_types] if args.key?(:node_types) @warning = args[:warning] if args.key?(:warning) end # [Output Only] An informational warning that appears when the node types list # is empty. class Warning include Google::Apis::Core::Hashable # [Output Only] A warning code, if applicable. For example, Compute Engine # returns NO_RESULTS_ON_PAGE if there are no results in the response. # Corresponds to the JSON property `code` # @return [String] attr_accessor :code # [Output Only] Metadata about this warning in key: value format. For example: " # data": [ ` "key": "scope", "value": "zones/us-east1-d" ` # Corresponds to the JSON property `data` # @return [Array] attr_accessor :data # [Output Only] A human-readable description of the warning code. # Corresponds to the JSON property `message` # @return [String] attr_accessor :message def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @code = args[:code] if args.key?(:code) @data = args[:data] if args.key?(:data) @message = args[:message] if args.key?(:message) end # class Datum include Google::Apis::Core::Hashable # [Output Only] A key that provides more detail on the warning being returned. # For example, for warnings where there are no results in a list request for a # particular zone, this key might be scope and the key value might be the zone # name. Other examples might be a key indicating a deprecated resource and a # suggested replacement, or a warning about invalid network settings (for # example, if an instance attempts to perform IP forwarding but is not enabled # for IP forwarding). # Corresponds to the JSON property `key` # @return [String] attr_accessor :key # [Output Only] A warning data value corresponding to the key. # 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 end end # Represents a notification endpoint. A notification endpoint resource defines # an endpoint to receive notifications when there are status changes detected by # the associated health check service. For more information, see Health checks # overview. class NotificationEndpoint include Google::Apis::Core::Hashable # [Output Only] Creation timestamp in RFC3339 text format. # Corresponds to the JSON property `creationTimestamp` # @return [String] attr_accessor :creation_timestamp # An optional description of this resource. Provide this property when you # create the resource. # Corresponds to the JSON property `description` # @return [String] attr_accessor :description # Represents a gRPC setting that describes one gRPC notification endpoint and # the retry duration attempting to send notification to this endpoint. # Corresponds to the JSON property `grpcSettings` # @return [Google::Apis::ComputeAlpha::NotificationEndpointGrpcSettings] attr_accessor :grpc_settings # [Output Only] A unique identifier for this resource type. The server generates # this identifier. # Corresponds to the JSON property `id` # @return [Fixnum] attr_accessor :id # [Output Only] Type of the resource. Always compute#notificationEndpoint for # notification endpoints. # Corresponds to the JSON property `kind` # @return [String] attr_accessor :kind # Name of the resource. Provided by the client when the resource is created. The # name must be 1-63 characters long, and comply with RFC1035. Specifically, the # name must be 1-63 characters long and match the regular expression `[a-z]([-a- # z0-9]*[a-z0-9])?` which means the first character must be a lowercase letter, # and all following characters must be a dash, lowercase letter, or digit, # except the last character, which cannot be a dash. # Corresponds to the JSON property `name` # @return [String] attr_accessor :name # [Output Only] URL of the region where the notification endpoint resides. This # field applies only to the regional resource. You must specify this field as # part of the HTTP request URL. It is not settable as a field in the request # body. # Corresponds to the JSON property `region` # @return [String] attr_accessor :region # [Output Only] Server-defined URL for the resource. # Corresponds to the JSON property `selfLink` # @return [String] attr_accessor :self_link def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @creation_timestamp = args[:creation_timestamp] if args.key?(:creation_timestamp) @description = args[:description] if args.key?(:description) @grpc_settings = args[:grpc_settings] if args.key?(:grpc_settings) @id = args[:id] if args.key?(:id) @kind = args[:kind] if args.key?(:kind) @name = args[:name] if args.key?(:name) @region = args[:region] if args.key?(:region) @self_link = args[:self_link] if args.key?(:self_link) end end # Contains a list of NotificationEndpointsScopedList. class NotificationEndpointAggregatedList include Google::Apis::Core::Hashable # [Output Only] Unique identifier for the resource; defined by the server. # Corresponds to the JSON property `id` # @return [String] attr_accessor :id # A list of NotificationEndpointsScopedList resources. # Corresponds to the JSON property `items` # @return [Hash] attr_accessor :items # Type of resource. # Corresponds to the JSON property `kind` # @return [String] attr_accessor :kind # [Output Only] This token allows you to get the next page of results for list # requests. If the number of results is larger than maxResults, use the # nextPageToken as a value for the query parameter pageToken in the next list # request. Subsequent list requests will have their own nextPageToken to # continue paging through the results. # Corresponds to the JSON property `nextPageToken` # @return [String] attr_accessor :next_page_token # [Output Only] Server-defined URL for this resource. # Corresponds to the JSON property `selfLink` # @return [String] attr_accessor :self_link # [Output Only] Unreachable resources. # Corresponds to the JSON property `unreachables` # @return [Array] attr_accessor :unreachables # [Output Only] Informational warning message. # Corresponds to the JSON property `warning` # @return [Google::Apis::ComputeAlpha::NotificationEndpointAggregatedList::Warning] attr_accessor :warning def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @id = args[:id] if args.key?(:id) @items = args[:items] if args.key?(:items) @kind = args[:kind] if args.key?(:kind) @next_page_token = args[:next_page_token] if args.key?(:next_page_token) @self_link = args[:self_link] if args.key?(:self_link) @unreachables = args[:unreachables] if args.key?(:unreachables) @warning = args[:warning] if args.key?(:warning) end # [Output Only] Informational warning message. class Warning include Google::Apis::Core::Hashable # [Output Only] A warning code, if applicable. For example, Compute Engine # returns NO_RESULTS_ON_PAGE if there are no results in the response. # Corresponds to the JSON property `code` # @return [String] attr_accessor :code # [Output Only] Metadata about this warning in key: value format. For example: " # data": [ ` "key": "scope", "value": "zones/us-east1-d" ` # Corresponds to the JSON property `data` # @return [Array] attr_accessor :data # [Output Only] A human-readable description of the warning code. # Corresponds to the JSON property `message` # @return [String] attr_accessor :message def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @code = args[:code] if args.key?(:code) @data = args[:data] if args.key?(:data) @message = args[:message] if args.key?(:message) end # class Datum include Google::Apis::Core::Hashable # [Output Only] A key that provides more detail on the warning being returned. # For example, for warnings where there are no results in a list request for a # particular zone, this key might be scope and the key value might be the zone # name. Other examples might be a key indicating a deprecated resource and a # suggested replacement, or a warning about invalid network settings (for # example, if an instance attempts to perform IP forwarding but is not enabled # for IP forwarding). # Corresponds to the JSON property `key` # @return [String] attr_accessor :key # [Output Only] A warning data value corresponding to the key. # 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 end end # Represents a gRPC setting that describes one gRPC notification endpoint and # the retry duration attempting to send notification to this endpoint. class NotificationEndpointGrpcSettings include Google::Apis::Core::Hashable # Optional. If specified, this field is used to set the authority header by the # sender of notifications. See https://tools.ietf.org/html/rfc7540#section-8.1.2. # 3 # Corresponds to the JSON property `authority` # @return [String] attr_accessor :authority # Endpoint to which gRPC notifications are sent. This must be a valid gRPCLB DNS # name. # Corresponds to the JSON property `endpoint` # @return [String] attr_accessor :endpoint # Optional. If specified, this field is used to populate the "name" field in # gRPC requests. # Corresponds to the JSON property `payloadName` # @return [String] attr_accessor :payload_name # A Duration represents a fixed-length span of time represented as a count of # seconds and fractions of seconds at nanosecond resolution. It is independent # of any calendar and concepts like "day" or "month". Range is approximately 10, # 000 years. # Corresponds to the JSON property `resendInterval` # @return [Google::Apis::ComputeAlpha::Duration] attr_accessor :resend_interval # How much time (in seconds) is spent attempting notification retries until a # successful response is received. Default is 30s. Limit is 20m (1200s). Must be # a positive number. # Corresponds to the JSON property `retryDurationSec` # @return [Fixnum] attr_accessor :retry_duration_sec def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @authority = args[:authority] if args.key?(:authority) @endpoint = args[:endpoint] if args.key?(:endpoint) @payload_name = args[:payload_name] if args.key?(:payload_name) @resend_interval = args[:resend_interval] if args.key?(:resend_interval) @retry_duration_sec = args[:retry_duration_sec] if args.key?(:retry_duration_sec) end end # class NotificationEndpointList include Google::Apis::Core::Hashable # [Output Only] Unique identifier for the resource; defined by the server. # Corresponds to the JSON property `id` # @return [String] attr_accessor :id # A list of NotificationEndpoint resources. # Corresponds to the JSON property `items` # @return [Array] attr_accessor :items # [Output Only] Type of the resource. Always compute#notificationEndpoint for # notification endpoints. # Corresponds to the JSON property `kind` # @return [String] attr_accessor :kind # [Output Only] This token allows you to get the next page of results for list # requests. If the number of results is larger than maxResults, use the # nextPageToken as a value for the query parameter pageToken in the next list # request. Subsequent list requests will have their own nextPageToken to # continue paging through the results. # Corresponds to the JSON property `nextPageToken` # @return [String] attr_accessor :next_page_token # [Output Only] Server-defined URL for this resource. # Corresponds to the JSON property `selfLink` # @return [String] attr_accessor :self_link # [Output Only] Informational warning message. # Corresponds to the JSON property `warning` # @return [Google::Apis::ComputeAlpha::NotificationEndpointList::Warning] attr_accessor :warning def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @id = args[:id] if args.key?(:id) @items = args[:items] if args.key?(:items) @kind = args[:kind] if args.key?(:kind) @next_page_token = args[:next_page_token] if args.key?(:next_page_token) @self_link = args[:self_link] if args.key?(:self_link) @warning = args[:warning] if args.key?(:warning) end # [Output Only] Informational warning message. class Warning include Google::Apis::Core::Hashable # [Output Only] A warning code, if applicable. For example, Compute Engine # returns NO_RESULTS_ON_PAGE if there are no results in the response. # Corresponds to the JSON property `code` # @return [String] attr_accessor :code # [Output Only] Metadata about this warning in key: value format. For example: " # data": [ ` "key": "scope", "value": "zones/us-east1-d" ` # Corresponds to the JSON property `data` # @return [Array] attr_accessor :data # [Output Only] A human-readable description of the warning code. # Corresponds to the JSON property `message` # @return [String] attr_accessor :message def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @code = args[:code] if args.key?(:code) @data = args[:data] if args.key?(:data) @message = args[:message] if args.key?(:message) end # class Datum include Google::Apis::Core::Hashable # [Output Only] A key that provides more detail on the warning being returned. # For example, for warnings where there are no results in a list request for a # particular zone, this key might be scope and the key value might be the zone # name. Other examples might be a key indicating a deprecated resource and a # suggested replacement, or a warning about invalid network settings (for # example, if an instance attempts to perform IP forwarding but is not enabled # for IP forwarding). # Corresponds to the JSON property `key` # @return [String] attr_accessor :key # [Output Only] A warning data value corresponding to the key. # 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 end end # class NotificationEndpointsScopedList include Google::Apis::Core::Hashable # A list of NotificationEndpoints contained in this scope. # Corresponds to the JSON property `resources` # @return [Array] attr_accessor :resources # Informational warning which replaces the list of notification endpoints when # the list is empty. # Corresponds to the JSON property `warning` # @return [Google::Apis::ComputeAlpha::NotificationEndpointsScopedList::Warning] attr_accessor :warning def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @resources = args[:resources] if args.key?(:resources) @warning = args[:warning] if args.key?(:warning) end # Informational warning which replaces the list of notification endpoints when # the list is empty. class Warning include Google::Apis::Core::Hashable # [Output Only] A warning code, if applicable. For example, Compute Engine # returns NO_RESULTS_ON_PAGE if there are no results in the response. # Corresponds to the JSON property `code` # @return [String] attr_accessor :code # [Output Only] Metadata about this warning in key: value format. For example: " # data": [ ` "key": "scope", "value": "zones/us-east1-d" ` # Corresponds to the JSON property `data` # @return [Array] attr_accessor :data # [Output Only] A human-readable description of the warning code. # Corresponds to the JSON property `message` # @return [String] attr_accessor :message def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @code = args[:code] if args.key?(:code) @data = args[:data] if args.key?(:data) @message = args[:message] if args.key?(:message) end # class Datum include Google::Apis::Core::Hashable # [Output Only] A key that provides more detail on the warning being returned. # For example, for warnings where there are no results in a list request for a # particular zone, this key might be scope and the key value might be the zone # name. Other examples might be a key indicating a deprecated resource and a # suggested replacement, or a warning about invalid network settings (for # example, if an instance attempts to perform IP forwarding but is not enabled # for IP forwarding). # Corresponds to the JSON property `key` # @return [String] attr_accessor :key # [Output Only] A warning data value corresponding to the key. # 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 end end # Represents an Operation resource. Google Compute Engine has three Operation # resources: * [Global](/compute/docs/reference/rest/alpha/globalOperations) * [ # Regional](/compute/docs/reference/rest/alpha/regionOperations) * [Zonal](/ # compute/docs/reference/rest/alpha/zoneOperations) You can use an operation # resource to manage asynchronous API requests. For more information, read # Handling API responses. Operations can be global, regional or zonal. - For # global operations, use the `globalOperations` resource. - For regional # operations, use the `regionOperations` resource. - For zonal operations, use # the `zonalOperations` resource. For more information, read Global, Regional, # and Zonal Resources. class Operation include Google::Apis::Core::Hashable # [Output Only] The value of `requestId` if you provided it in the request. Not # present otherwise. # Corresponds to the JSON property `clientOperationId` # @return [String] attr_accessor :client_operation_id # [Deprecated] This field is deprecated. # Corresponds to the JSON property `creationTimestamp` # @return [String] attr_accessor :creation_timestamp # [Output Only] A textual description of the operation, which is set when the # operation is created. # Corresponds to the JSON property `description` # @return [String] attr_accessor :description # [Output Only] The time that this operation was completed. This value is in # RFC3339 text format. # Corresponds to the JSON property `endTime` # @return [String] attr_accessor :end_time # [Output Only] If errors are generated during processing of the operation, this # field will be populated. # Corresponds to the JSON property `error` # @return [Google::Apis::ComputeAlpha::Operation::Error] attr_accessor :error # [Output Only] If the operation fails, this field contains the HTTP error # message that was returned, such as `NOT FOUND`. # Corresponds to the JSON property `httpErrorMessage` # @return [String] attr_accessor :http_error_message # [Output Only] If the operation fails, this field contains the HTTP error # status code that was returned. For example, a `404` means the resource was not # found. # Corresponds to the JSON property `httpErrorStatusCode` # @return [Fixnum] attr_accessor :http_error_status_code # [Output Only] The unique identifier for the operation. This identifier is # defined by the server. # Corresponds to the JSON property `id` # @return [Fixnum] attr_accessor :id # [Output Only] The time that this operation was requested. This value is in # RFC3339 text format. # Corresponds to the JSON property `insertTime` # @return [String] attr_accessor :insert_time # [Output Only] Type of the resource. Always `compute#operation` for Operation # resources. # Corresponds to the JSON property `kind` # @return [String] attr_accessor :kind # [Output Only] Service-specific metadata attached to this operation. # Corresponds to the JSON property `metadata` # @return [Hash] attr_accessor :metadata # [Output Only] Name of the operation. # Corresponds to the JSON property `name` # @return [String] attr_accessor :name # [Output Only] An ID that represents a group of operations, such as when a # group of operations results from a `bulkInsert` API request. # Corresponds to the JSON property `operationGroupId` # @return [String] attr_accessor :operation_group_id # [Output Only] The type of operation, such as `insert`, `update`, or `delete`, # and so on. # Corresponds to the JSON property `operationType` # @return [String] attr_accessor :operation_type # [Output Only] An optional progress indicator that ranges from 0 to 100. There # is no requirement that this be linear or support any granularity of operations. # This should not be used to guess when the operation will be complete. This # number should monotonically increase as the operation progresses. # Corresponds to the JSON property `progress` # @return [Fixnum] attr_accessor :progress # [Output Only] The URL of the region where the operation resides. Only # applicable when performing regional operations. # Corresponds to the JSON property `region` # @return [String] attr_accessor :region # [Output Only] Server-defined URL for the resource. # Corresponds to the JSON property `selfLink` # @return [String] attr_accessor :self_link # [Output Only] Server-defined URL for this resource with the resource id. # Corresponds to the JSON property `selfLinkWithId` # @return [String] attr_accessor :self_link_with_id # [Output Only] The time that this operation was started by the server. This # value is in RFC3339 text format. # Corresponds to the JSON property `startTime` # @return [String] attr_accessor :start_time # [Output Only] The status of the operation, which can be one of the following: ` # PENDING`, `RUNNING`, or `DONE`. # Corresponds to the JSON property `status` # @return [String] attr_accessor :status # [Output Only] An optional textual description of the current status of the # operation. # Corresponds to the JSON property `statusMessage` # @return [String] attr_accessor :status_message # [Output Only] The unique target ID, which identifies a specific incarnation of # the target resource. # Corresponds to the JSON property `targetId` # @return [Fixnum] attr_accessor :target_id # [Output Only] The URL of the resource that the operation modifies. For # operations related to creating a snapshot, this points to the persistent disk # that the snapshot was created from. # Corresponds to the JSON property `targetLink` # @return [String] attr_accessor :target_link # [Output Only] User who requested the operation, for example: `user@example.com` # . # Corresponds to the JSON property `user` # @return [String] attr_accessor :user # [Output Only] If warning messages are generated during processing of the # operation, this field will be populated. # Corresponds to the JSON property `warnings` # @return [Array] attr_accessor :warnings # [Output Only] The URL of the zone where the operation resides. Only applicable # when performing per-zone operations. # 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) @client_operation_id = args[:client_operation_id] if args.key?(:client_operation_id) @creation_timestamp = args[:creation_timestamp] if args.key?(:creation_timestamp) @description = args[:description] if args.key?(:description) @end_time = args[:end_time] if args.key?(:end_time) @error = args[:error] if args.key?(:error) @http_error_message = args[:http_error_message] if args.key?(:http_error_message) @http_error_status_code = args[:http_error_status_code] if args.key?(:http_error_status_code) @id = args[:id] if args.key?(:id) @insert_time = args[:insert_time] if args.key?(:insert_time) @kind = args[:kind] if args.key?(:kind) @metadata = args[:metadata] if args.key?(:metadata) @name = args[:name] if args.key?(:name) @operation_group_id = args[:operation_group_id] if args.key?(:operation_group_id) @operation_type = args[:operation_type] if args.key?(:operation_type) @progress = args[:progress] if args.key?(:progress) @region = args[:region] if args.key?(:region) @self_link = args[:self_link] if args.key?(:self_link) @self_link_with_id = args[:self_link_with_id] if args.key?(:self_link_with_id) @start_time = args[:start_time] if args.key?(:start_time) @status = args[:status] if args.key?(:status) @status_message = args[:status_message] if args.key?(:status_message) @target_id = args[:target_id] if args.key?(:target_id) @target_link = args[:target_link] if args.key?(:target_link) @user = args[:user] if args.key?(:user) @warnings = args[:warnings] if args.key?(:warnings) @zone = args[:zone] if args.key?(:zone) end # [Output Only] If errors are generated during processing of the operation, this # field will be populated. class Error include Google::Apis::Core::Hashable # [Output Only] The array of errors encountered while processing this operation. # Corresponds to the JSON property `errors` # @return [Array] attr_accessor :errors def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @errors = args[:errors] if args.key?(:errors) end # class Error include Google::Apis::Core::Hashable # [Output Only] The error type identifier for this error. # Corresponds to the JSON property `code` # @return [String] attr_accessor :code # [Output Only] Indicates the field in the request that caused the error. This # property is optional. # Corresponds to the JSON property `location` # @return [String] attr_accessor :location # [Output Only] An optional, human-readable error message. # Corresponds to the JSON property `message` # @return [String] attr_accessor :message def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @code = args[:code] if args.key?(:code) @location = args[:location] if args.key?(:location) @message = args[:message] if args.key?(:message) end end end # class Warning include Google::Apis::Core::Hashable # [Output Only] A warning code, if applicable. For example, Compute Engine # returns NO_RESULTS_ON_PAGE if there are no results in the response. # Corresponds to the JSON property `code` # @return [String] attr_accessor :code # [Output Only] Metadata about this warning in key: value format. For example: " # data": [ ` "key": "scope", "value": "zones/us-east1-d" ` # Corresponds to the JSON property `data` # @return [Array] attr_accessor :data # [Output Only] A human-readable description of the warning code. # Corresponds to the JSON property `message` # @return [String] attr_accessor :message def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @code = args[:code] if args.key?(:code) @data = args[:data] if args.key?(:data) @message = args[:message] if args.key?(:message) end # class Datum include Google::Apis::Core::Hashable # [Output Only] A key that provides more detail on the warning being returned. # For example, for warnings where there are no results in a list request for a # particular zone, this key might be scope and the key value might be the zone # name. Other examples might be a key indicating a deprecated resource and a # suggested replacement, or a warning about invalid network settings (for # example, if an instance attempts to perform IP forwarding but is not enabled # for IP forwarding). # Corresponds to the JSON property `key` # @return [String] attr_accessor :key # [Output Only] A warning data value corresponding to the key. # 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 end end # class OperationAggregatedList include Google::Apis::Core::Hashable # [Output Only] The unique identifier for the resource. This identifier is # defined by the server. # Corresponds to the JSON property `id` # @return [String] attr_accessor :id # [Output Only] A map of scoped operation lists. # Corresponds to the JSON property `items` # @return [Hash] attr_accessor :items # [Output Only] Type of resource. Always `compute#operationAggregatedList` for # aggregated lists of operations. # Corresponds to the JSON property `kind` # @return [String] attr_accessor :kind # [Output Only] This token allows you to get the next page of results for list # requests. If the number of results is larger than `maxResults`, use the ` # nextPageToken` as a value for the query parameter `pageToken` in the next list # request. Subsequent list requests will have their own `nextPageToken` to # continue paging through the results. # Corresponds to the JSON property `nextPageToken` # @return [String] attr_accessor :next_page_token # [Output Only] Server-defined URL for this resource. # Corresponds to the JSON property `selfLink` # @return [String] attr_accessor :self_link # [Output Only] Unreachable resources. # Corresponds to the JSON property `unreachables` # @return [Array] attr_accessor :unreachables # [Output Only] Informational warning message. # Corresponds to the JSON property `warning` # @return [Google::Apis::ComputeAlpha::OperationAggregatedList::Warning] attr_accessor :warning def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @id = args[:id] if args.key?(:id) @items = args[:items] if args.key?(:items) @kind = args[:kind] if args.key?(:kind) @next_page_token = args[:next_page_token] if args.key?(:next_page_token) @self_link = args[:self_link] if args.key?(:self_link) @unreachables = args[:unreachables] if args.key?(:unreachables) @warning = args[:warning] if args.key?(:warning) end # [Output Only] Informational warning message. class Warning include Google::Apis::Core::Hashable # [Output Only] A warning code, if applicable. For example, Compute Engine # returns NO_RESULTS_ON_PAGE if there are no results in the response. # Corresponds to the JSON property `code` # @return [String] attr_accessor :code # [Output Only] Metadata about this warning in key: value format. For example: " # data": [ ` "key": "scope", "value": "zones/us-east1-d" ` # Corresponds to the JSON property `data` # @return [Array] attr_accessor :data # [Output Only] A human-readable description of the warning code. # Corresponds to the JSON property `message` # @return [String] attr_accessor :message def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @code = args[:code] if args.key?(:code) @data = args[:data] if args.key?(:data) @message = args[:message] if args.key?(:message) end # class Datum include Google::Apis::Core::Hashable # [Output Only] A key that provides more detail on the warning being returned. # For example, for warnings where there are no results in a list request for a # particular zone, this key might be scope and the key value might be the zone # name. Other examples might be a key indicating a deprecated resource and a # suggested replacement, or a warning about invalid network settings (for # example, if an instance attempts to perform IP forwarding but is not enabled # for IP forwarding). # Corresponds to the JSON property `key` # @return [String] attr_accessor :key # [Output Only] A warning data value corresponding to the key. # 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 end end # Contains a list of Operation resources. class OperationList include Google::Apis::Core::Hashable # [Output Only] The unique identifier for the resource. This identifier is # defined by the server. # Corresponds to the JSON property `id` # @return [String] attr_accessor :id # [Output Only] A list of Operation resources. # Corresponds to the JSON property `items` # @return [Array] attr_accessor :items # [Output Only] Type of resource. Always `compute#operations` for Operations # resource. # Corresponds to the JSON property `kind` # @return [String] attr_accessor :kind # [Output Only] This token allows you to get the next page of results for list # requests. If the number of results is larger than `maxResults`, use the ` # nextPageToken` as a value for the query parameter `pageToken` in the next list # request. Subsequent list requests will have their own `nextPageToken` to # continue paging through the results. # Corresponds to the JSON property `nextPageToken` # @return [String] attr_accessor :next_page_token # [Output Only] Server-defined URL for this resource. # Corresponds to the JSON property `selfLink` # @return [String] attr_accessor :self_link # [Output Only] Informational warning message. # Corresponds to the JSON property `warning` # @return [Google::Apis::ComputeAlpha::OperationList::Warning] attr_accessor :warning def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @id = args[:id] if args.key?(:id) @items = args[:items] if args.key?(:items) @kind = args[:kind] if args.key?(:kind) @next_page_token = args[:next_page_token] if args.key?(:next_page_token) @self_link = args[:self_link] if args.key?(:self_link) @warning = args[:warning] if args.key?(:warning) end # [Output Only] Informational warning message. class Warning include Google::Apis::Core::Hashable # [Output Only] A warning code, if applicable. For example, Compute Engine # returns NO_RESULTS_ON_PAGE if there are no results in the response. # Corresponds to the JSON property `code` # @return [String] attr_accessor :code # [Output Only] Metadata about this warning in key: value format. For example: " # data": [ ` "key": "scope", "value": "zones/us-east1-d" ` # Corresponds to the JSON property `data` # @return [Array] attr_accessor :data # [Output Only] A human-readable description of the warning code. # Corresponds to the JSON property `message` # @return [String] attr_accessor :message def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @code = args[:code] if args.key?(:code) @data = args[:data] if args.key?(:data) @message = args[:message] if args.key?(:message) end # class Datum include Google::Apis::Core::Hashable # [Output Only] A key that provides more detail on the warning being returned. # For example, for warnings where there are no results in a list request for a # particular zone, this key might be scope and the key value might be the zone # name. Other examples might be a key indicating a deprecated resource and a # suggested replacement, or a warning about invalid network settings (for # example, if an instance attempts to perform IP forwarding but is not enabled # for IP forwarding). # Corresponds to the JSON property `key` # @return [String] attr_accessor :key # [Output Only] A warning data value corresponding to the key. # 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 end end # class OperationsScopedList include Google::Apis::Core::Hashable # [Output Only] A list of operations contained in this scope. # Corresponds to the JSON property `operations` # @return [Array] attr_accessor :operations # [Output Only] Informational warning which replaces the list of operations when # the list is empty. # Corresponds to the JSON property `warning` # @return [Google::Apis::ComputeAlpha::OperationsScopedList::Warning] attr_accessor :warning def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @operations = args[:operations] if args.key?(:operations) @warning = args[:warning] if args.key?(:warning) end # [Output Only] Informational warning which replaces the list of operations when # the list is empty. class Warning include Google::Apis::Core::Hashable # [Output Only] A warning code, if applicable. For example, Compute Engine # returns NO_RESULTS_ON_PAGE if there are no results in the response. # Corresponds to the JSON property `code` # @return [String] attr_accessor :code # [Output Only] Metadata about this warning in key: value format. For example: " # data": [ ` "key": "scope", "value": "zones/us-east1-d" ` # Corresponds to the JSON property `data` # @return [Array] attr_accessor :data # [Output Only] A human-readable description of the warning code. # Corresponds to the JSON property `message` # @return [String] attr_accessor :message def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @code = args[:code] if args.key?(:code) @data = args[:data] if args.key?(:data) @message = args[:message] if args.key?(:message) end # class Datum include Google::Apis::Core::Hashable # [Output Only] A key that provides more detail on the warning being returned. # For example, for warnings where there are no results in a list request for a # particular zone, this key might be scope and the key value might be the zone # name. Other examples might be a key indicating a deprecated resource and a # suggested replacement, or a warning about invalid network settings (for # example, if an instance attempts to perform IP forwarding but is not enabled # for IP forwarding). # Corresponds to the JSON property `key` # @return [String] attr_accessor :key # [Output Only] A warning data value corresponding to the key. # 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 end end # class OrganizationSecurityPoliciesListAssociationsResponse include Google::Apis::Core::Hashable # A list of associations. # Corresponds to the JSON property `associations` # @return [Array] attr_accessor :associations # [Output Only] Type of securityPolicy associations. Always compute# # organizationSecurityPoliciesListAssociations for lists of securityPolicy # associations. # Corresponds to the JSON property `kind` # @return [String] attr_accessor :kind def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @associations = args[:associations] if args.key?(:associations) @kind = args[:kind] if args.key?(:kind) end end # [Deprecated] Configuration for the origin authentication method. Configuration # for the origin authentication method. class OriginAuthenticationMethod include Google::Apis::Core::Hashable # [Deprecated] JWT configuration for origin authentication. JWT configuration # for origin authentication. # Corresponds to the JSON property `jwt` # @return [Google::Apis::ComputeAlpha::Jwt] attr_accessor :jwt def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @jwt = args[:jwt] if args.key?(:jwt) end end # Settings controlling the eviction of unhealthy hosts from the load balancing # pool for the backend service. class OutlierDetection include Google::Apis::Core::Hashable # A Duration represents a fixed-length span of time represented as a count of # seconds and fractions of seconds at nanosecond resolution. It is independent # of any calendar and concepts like "day" or "month". Range is approximately 10, # 000 years. # Corresponds to the JSON property `baseEjectionTime` # @return [Google::Apis::ComputeAlpha::Duration] attr_accessor :base_ejection_time # Number of errors before a host is ejected from the connection pool. When the # backend host is accessed over HTTP, a 5xx return code qualifies as an error. # Defaults to 5. # Corresponds to the JSON property `consecutiveErrors` # @return [Fixnum] attr_accessor :consecutive_errors # The number of consecutive gateway failures (502, 503, 504 status or connection # errors that are mapped to one of those status codes) before a consecutive # gateway failure ejection occurs. Defaults to 3. # Corresponds to the JSON property `consecutiveGatewayFailure` # @return [Fixnum] attr_accessor :consecutive_gateway_failure # The percentage chance that a host will be actually ejected when an outlier # status is detected through consecutive 5xx. This setting can be used to # disable ejection or to ramp it up slowly. Defaults to 0. # Corresponds to the JSON property `enforcingConsecutiveErrors` # @return [Fixnum] attr_accessor :enforcing_consecutive_errors # The percentage chance that a host will be actually ejected when an outlier # status is detected through consecutive gateway failures. This setting can be # used to disable ejection or to ramp it up slowly. Defaults to 100. # Corresponds to the JSON property `enforcingConsecutiveGatewayFailure` # @return [Fixnum] attr_accessor :enforcing_consecutive_gateway_failure # The percentage chance that a host will be actually ejected when an outlier # status is detected through success rate statistics. This setting can be used # to disable ejection or to ramp it up slowly. Defaults to 100. # Corresponds to the JSON property `enforcingSuccessRate` # @return [Fixnum] attr_accessor :enforcing_success_rate # A Duration represents a fixed-length span of time represented as a count of # seconds and fractions of seconds at nanosecond resolution. It is independent # of any calendar and concepts like "day" or "month". Range is approximately 10, # 000 years. # Corresponds to the JSON property `interval` # @return [Google::Apis::ComputeAlpha::Duration] attr_accessor :interval # Maximum percentage of hosts in the load balancing pool for the backend service # that can be ejected. Defaults to 50%. # Corresponds to the JSON property `maxEjectionPercent` # @return [Fixnum] attr_accessor :max_ejection_percent # The number of hosts in a cluster that must have enough request volume to # detect success rate outliers. If the number of hosts is less than this setting, # outlier detection via success rate statistics is not performed for any host # in the cluster. Defaults to 5. # Corresponds to the JSON property `successRateMinimumHosts` # @return [Fixnum] attr_accessor :success_rate_minimum_hosts # The minimum number of total requests that must be collected in one interval ( # as defined by the interval duration above) to include this host in success # rate based outlier detection. If the volume is lower than this setting, # outlier detection via success rate statistics is not performed for that host. # Defaults to 100. # Corresponds to the JSON property `successRateRequestVolume` # @return [Fixnum] attr_accessor :success_rate_request_volume # This factor is used to determine the ejection threshold for success rate # outlier ejection. The ejection threshold is the difference between the mean # success rate, and the product of this factor and the standard deviation of the # mean success rate: mean - (stdev * success_rate_stdev_factor). This factor is # divided by a thousand to get a double. That is, if the desired factor is 1.9, # the runtime value should be 1900. Defaults to 1900. # Corresponds to the JSON property `successRateStdevFactor` # @return [Fixnum] attr_accessor :success_rate_stdev_factor def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @base_ejection_time = args[:base_ejection_time] if args.key?(:base_ejection_time) @consecutive_errors = args[:consecutive_errors] if args.key?(:consecutive_errors) @consecutive_gateway_failure = args[:consecutive_gateway_failure] if args.key?(:consecutive_gateway_failure) @enforcing_consecutive_errors = args[:enforcing_consecutive_errors] if args.key?(:enforcing_consecutive_errors) @enforcing_consecutive_gateway_failure = args[:enforcing_consecutive_gateway_failure] if args.key?(:enforcing_consecutive_gateway_failure) @enforcing_success_rate = args[:enforcing_success_rate] if args.key?(:enforcing_success_rate) @interval = args[:interval] if args.key?(:interval) @max_ejection_percent = args[:max_ejection_percent] if args.key?(:max_ejection_percent) @success_rate_minimum_hosts = args[:success_rate_minimum_hosts] if args.key?(:success_rate_minimum_hosts) @success_rate_request_volume = args[:success_rate_request_volume] if args.key?(:success_rate_request_volume) @success_rate_stdev_factor = args[:success_rate_stdev_factor] if args.key?(:success_rate_stdev_factor) end end # Next free: 7 class PacketIntervals include Google::Apis::Core::Hashable # Average observed inter-packet interval in milliseconds. # Corresponds to the JSON property `avgMs` # @return [Fixnum] attr_accessor :avg_ms # From how long ago in the past these intervals were observed. # Corresponds to the JSON property `duration` # @return [String] attr_accessor :duration # Maximum observed inter-packet interval in milliseconds. # Corresponds to the JSON property `maxMs` # @return [Fixnum] attr_accessor :max_ms # Minimum observed inter-packet interval in milliseconds. # Corresponds to the JSON property `minMs` # @return [Fixnum] attr_accessor :min_ms # Number of inter-packet intervals from which these statistics were derived. # Corresponds to the JSON property `numIntervals` # @return [Fixnum] attr_accessor :num_intervals # The type of packets for which inter-packet intervals were computed. # 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) @avg_ms = args[:avg_ms] if args.key?(:avg_ms) @duration = args[:duration] if args.key?(:duration) @max_ms = args[:max_ms] if args.key?(:max_ms) @min_ms = args[:min_ms] if args.key?(:min_ms) @num_intervals = args[:num_intervals] if args.key?(:num_intervals) @type = args[:type] if args.key?(:type) end end # Represents a Packet Mirroring resource. Packet Mirroring clones the traffic of # specified instances in your Virtual Private Cloud (VPC) network and forwards # it to a collector destination, such as an instance group of an internal TCP/ # UDP load balancer, for analysis or examination. For more information about # setting up Packet Mirroring, see Using Packet Mirroring. class PacketMirroring include Google::Apis::Core::Hashable # The Forwarding Rule resource of type loadBalancingScheme=INTERNAL that will be # used as collector for mirrored traffic. The specified forwarding rule must # have isMirroringCollector set to true. # Corresponds to the JSON property `collectorIlb` # @return [Google::Apis::ComputeAlpha::PacketMirroringForwardingRuleInfo] attr_accessor :collector_ilb # [Output Only] Creation timestamp in RFC3339 text format. # Corresponds to the JSON property `creationTimestamp` # @return [String] attr_accessor :creation_timestamp # An optional description of this resource. Provide this property when you # create the resource. # Corresponds to the JSON property `description` # @return [String] attr_accessor :description # Indicates whether or not this packet mirroring takes effect. If set to FALSE, # this packet mirroring policy will not be enforced on the network. The default # is TRUE. # Corresponds to the JSON property `enable` # @return [String] attr_accessor :enable # Filter for mirrored traffic. If unspecified, all traffic is mirrored. # Corresponds to the JSON property `filter` # @return [Google::Apis::ComputeAlpha::PacketMirroringFilter] attr_accessor :filter # [Output Only] The unique identifier for the resource. This identifier is # defined by the server. # Corresponds to the JSON property `id` # @return [Fixnum] attr_accessor :id # [Output Only] Type of the resource. Always compute#packetMirroring for packet # mirrorings. # Corresponds to the JSON property `kind` # @return [String] attr_accessor :kind # PacketMirroring mirroredResourceInfos. MirroredResourceInfo specifies a set of # mirrored VM instances, subnetworks and/or tags for which traffic from/to all # VM instances will be mirrored. # Corresponds to the JSON property `mirroredResources` # @return [Google::Apis::ComputeAlpha::PacketMirroringMirroredResourceInfo] attr_accessor :mirrored_resources # Name of the resource; provided by the client when the resource is created. The # name must be 1-63 characters long, and comply with RFC1035. Specifically, the # name must be 1-63 characters long and match the regular expression `[a-z]([-a- # z0-9]*[a-z0-9])?` which means the first character must be a lowercase letter, # and all following characters must be a dash, lowercase letter, or digit, # except the last character, which cannot be a dash. # Corresponds to the JSON property `name` # @return [String] attr_accessor :name # Specifies the mirrored VPC network. Only packets in this network will be # mirrored. All mirrored VMs should have a NIC in the given network. All # mirrored subnetworks should belong to the given network. # Corresponds to the JSON property `network` # @return [Google::Apis::ComputeAlpha::PacketMirroringNetworkInfo] attr_accessor :network # The priority of applying this configuration. Priority is used to break ties in # cases where there is more than one matching rule. In the case of two rules # that apply for a given Instance, the one with the lowest-numbered priority # value wins. Default value is 1000. Valid range is 0 through 65535. # Corresponds to the JSON property `priority` # @return [Fixnum] attr_accessor :priority # [Output Only] URI of the region where the packetMirroring resides. # Corresponds to the JSON property `region` # @return [String] attr_accessor :region # [Output Only] Server-defined URL for the resource. # Corresponds to the JSON property `selfLink` # @return [String] attr_accessor :self_link # [Output Only] Server-defined URL for this resource with the resource id. # Corresponds to the JSON property `selfLinkWithId` # @return [String] attr_accessor :self_link_with_id def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @collector_ilb = args[:collector_ilb] if args.key?(:collector_ilb) @creation_timestamp = args[:creation_timestamp] if args.key?(:creation_timestamp) @description = args[:description] if args.key?(:description) @enable = args[:enable] if args.key?(:enable) @filter = args[:filter] if args.key?(:filter) @id = args[:id] if args.key?(:id) @kind = args[:kind] if args.key?(:kind) @mirrored_resources = args[:mirrored_resources] if args.key?(:mirrored_resources) @name = args[:name] if args.key?(:name) @network = args[:network] if args.key?(:network) @priority = args[:priority] if args.key?(:priority) @region = args[:region] if args.key?(:region) @self_link = args[:self_link] if args.key?(:self_link) @self_link_with_id = args[:self_link_with_id] if args.key?(:self_link_with_id) end end # Contains a list of packetMirrorings. class PacketMirroringAggregatedList include Google::Apis::Core::Hashable # [Output Only] Unique identifier for the resource; defined by the server. # Corresponds to the JSON property `id` # @return [String] attr_accessor :id # A list of PacketMirroring resources. # Corresponds to the JSON property `items` # @return [Hash] attr_accessor :items # Type of resource. # Corresponds to the JSON property `kind` # @return [String] attr_accessor :kind # [Output Only] This token allows you to get the next page of results for list # requests. If the number of results is larger than maxResults, use the # nextPageToken as a value for the query parameter pageToken in the next list # request. Subsequent list requests will have their own nextPageToken to # continue paging through the results. # Corresponds to the JSON property `nextPageToken` # @return [String] attr_accessor :next_page_token # [Output Only] Server-defined URL for this resource. # Corresponds to the JSON property `selfLink` # @return [String] attr_accessor :self_link # [Output Only] Unreachable resources. # Corresponds to the JSON property `unreachables` # @return [Array] attr_accessor :unreachables # [Output Only] Informational warning message. # Corresponds to the JSON property `warning` # @return [Google::Apis::ComputeAlpha::PacketMirroringAggregatedList::Warning] attr_accessor :warning def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @id = args[:id] if args.key?(:id) @items = args[:items] if args.key?(:items) @kind = args[:kind] if args.key?(:kind) @next_page_token = args[:next_page_token] if args.key?(:next_page_token) @self_link = args[:self_link] if args.key?(:self_link) @unreachables = args[:unreachables] if args.key?(:unreachables) @warning = args[:warning] if args.key?(:warning) end # [Output Only] Informational warning message. class Warning include Google::Apis::Core::Hashable # [Output Only] A warning code, if applicable. For example, Compute Engine # returns NO_RESULTS_ON_PAGE if there are no results in the response. # Corresponds to the JSON property `code` # @return [String] attr_accessor :code # [Output Only] Metadata about this warning in key: value format. For example: " # data": [ ` "key": "scope", "value": "zones/us-east1-d" ` # Corresponds to the JSON property `data` # @return [Array] attr_accessor :data # [Output Only] A human-readable description of the warning code. # Corresponds to the JSON property `message` # @return [String] attr_accessor :message def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @code = args[:code] if args.key?(:code) @data = args[:data] if args.key?(:data) @message = args[:message] if args.key?(:message) end # class Datum include Google::Apis::Core::Hashable # [Output Only] A key that provides more detail on the warning being returned. # For example, for warnings where there are no results in a list request for a # particular zone, this key might be scope and the key value might be the zone # name. Other examples might be a key indicating a deprecated resource and a # suggested replacement, or a warning about invalid network settings (for # example, if an instance attempts to perform IP forwarding but is not enabled # for IP forwarding). # Corresponds to the JSON property `key` # @return [String] attr_accessor :key # [Output Only] A warning data value corresponding to the key. # 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 end end # class PacketMirroringFilter include Google::Apis::Core::Hashable # Protocols that apply as filter on mirrored traffic. If no protocols are # specified, all traffic that matches the specified CIDR ranges is mirrored. If # neither cidrRanges nor IPProtocols is specified, all traffic is mirrored. # Corresponds to the JSON property `IPProtocols` # @return [Array] attr_accessor :ip_protocols # IP CIDR ranges that apply as filter on the source (ingress) or destination ( # egress) IP in the IP header. Only IPv4 is supported. If no ranges are # specified, all traffic that matches the specified IPProtocols is mirrored. If # neither cidrRanges nor IPProtocols is specified, all traffic is mirrored. # Corresponds to the JSON property `cidrRanges` # @return [Array] attr_accessor :cidr_ranges # Direction of traffic to mirror, either INGRESS, EGRESS, or BOTH. The default # is BOTH. # Corresponds to the JSON property `direction` # @return [String] attr_accessor :direction def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @ip_protocols = args[:ip_protocols] if args.key?(:ip_protocols) @cidr_ranges = args[:cidr_ranges] if args.key?(:cidr_ranges) @direction = args[:direction] if args.key?(:direction) end end # class PacketMirroringForwardingRuleInfo include Google::Apis::Core::Hashable # [Output Only] Unique identifier for the forwarding rule; defined by the server. # Corresponds to the JSON property `canonicalUrl` # @return [String] attr_accessor :canonical_url # Resource URL to the forwarding rule representing the ILB configured as # destination of the mirrored traffic. # Corresponds to the JSON property `url` # @return [String] attr_accessor :url def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @canonical_url = args[:canonical_url] if args.key?(:canonical_url) @url = args[:url] if args.key?(:url) end end # Contains a list of PacketMirroring resources. class PacketMirroringList include Google::Apis::Core::Hashable # [Output Only] Unique identifier for the resource; defined by the server. # Corresponds to the JSON property `id` # @return [String] attr_accessor :id # A list of PacketMirroring resources. # Corresponds to the JSON property `items` # @return [Array] attr_accessor :items # [Output Only] Type of resource. Always compute#packetMirroring for # packetMirrorings. # Corresponds to the JSON property `kind` # @return [String] attr_accessor :kind # [Output Only] This token allows you to get the next page of results for list # requests. If the number of results is larger than maxResults, use the # nextPageToken as a value for the query parameter pageToken in the next list # request. Subsequent list requests will have their own nextPageToken to # continue paging through the results. # Corresponds to the JSON property `nextPageToken` # @return [String] attr_accessor :next_page_token # [Output Only] Server-defined URL for this resource. # Corresponds to the JSON property `selfLink` # @return [String] attr_accessor :self_link # [Output Only] Informational warning message. # Corresponds to the JSON property `warning` # @return [Google::Apis::ComputeAlpha::PacketMirroringList::Warning] attr_accessor :warning def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @id = args[:id] if args.key?(:id) @items = args[:items] if args.key?(:items) @kind = args[:kind] if args.key?(:kind) @next_page_token = args[:next_page_token] if args.key?(:next_page_token) @self_link = args[:self_link] if args.key?(:self_link) @warning = args[:warning] if args.key?(:warning) end # [Output Only] Informational warning message. class Warning include Google::Apis::Core::Hashable # [Output Only] A warning code, if applicable. For example, Compute Engine # returns NO_RESULTS_ON_PAGE if there are no results in the response. # Corresponds to the JSON property `code` # @return [String] attr_accessor :code # [Output Only] Metadata about this warning in key: value format. For example: " # data": [ ` "key": "scope", "value": "zones/us-east1-d" ` # Corresponds to the JSON property `data` # @return [Array] attr_accessor :data # [Output Only] A human-readable description of the warning code. # Corresponds to the JSON property `message` # @return [String] attr_accessor :message def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @code = args[:code] if args.key?(:code) @data = args[:data] if args.key?(:data) @message = args[:message] if args.key?(:message) end # class Datum include Google::Apis::Core::Hashable # [Output Only] A key that provides more detail on the warning being returned. # For example, for warnings where there are no results in a list request for a # particular zone, this key might be scope and the key value might be the zone # name. Other examples might be a key indicating a deprecated resource and a # suggested replacement, or a warning about invalid network settings (for # example, if an instance attempts to perform IP forwarding but is not enabled # for IP forwarding). # Corresponds to the JSON property `key` # @return [String] attr_accessor :key # [Output Only] A warning data value corresponding to the key. # 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 end end # class PacketMirroringMirroredResourceInfo include Google::Apis::Core::Hashable # A set of virtual machine instances that are being mirrored. They must live in # zones contained in the same region as this packetMirroring. Note that this # config will apply only to those network interfaces of the Instances that # belong to the network specified in this packetMirroring. You may specify a # maximum of 50 Instances. # Corresponds to the JSON property `instances` # @return [Array] attr_accessor :instances # A set of subnetworks for which traffic from/to all VM instances will be # mirrored. They must live in the same region as this packetMirroring. You may # specify a maximum of 5 subnetworks. # Corresponds to the JSON property `subnetworks` # @return [Array] attr_accessor :subnetworks # A set of mirrored tags. Traffic from/to all VM instances that have one or more # of these tags will be mirrored. # Corresponds to the JSON property `tags` # @return [Array] attr_accessor :tags def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @instances = args[:instances] if args.key?(:instances) @subnetworks = args[:subnetworks] if args.key?(:subnetworks) @tags = args[:tags] if args.key?(:tags) end end # class PacketMirroringMirroredResourceInfoInstanceInfo include Google::Apis::Core::Hashable # [Output Only] Unique identifier for the instance; defined by the server. # Corresponds to the JSON property `canonicalUrl` # @return [String] attr_accessor :canonical_url # Resource URL to the virtual machine instance which is being mirrored. # Corresponds to the JSON property `url` # @return [String] attr_accessor :url def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @canonical_url = args[:canonical_url] if args.key?(:canonical_url) @url = args[:url] if args.key?(:url) end end # class PacketMirroringMirroredResourceInfoSubnetInfo include Google::Apis::Core::Hashable # [Output Only] Unique identifier for the subnetwork; defined by the server. # Corresponds to the JSON property `canonicalUrl` # @return [String] attr_accessor :canonical_url # Resource URL to the subnetwork for which traffic from/to all VM instances will # be mirrored. # Corresponds to the JSON property `url` # @return [String] attr_accessor :url def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @canonical_url = args[:canonical_url] if args.key?(:canonical_url) @url = args[:url] if args.key?(:url) end end # class PacketMirroringNetworkInfo include Google::Apis::Core::Hashable # [Output Only] Unique identifier for the network; defined by the server. # Corresponds to the JSON property `canonicalUrl` # @return [String] attr_accessor :canonical_url # URL of the network resource. # Corresponds to the JSON property `url` # @return [String] attr_accessor :url def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @canonical_url = args[:canonical_url] if args.key?(:canonical_url) @url = args[:url] if args.key?(:url) end end # class PacketMirroringsScopedList include Google::Apis::Core::Hashable # A list of packetMirrorings contained in this scope. # Corresponds to the JSON property `packetMirrorings` # @return [Array] attr_accessor :packet_mirrorings # Informational warning which replaces the list of packetMirrorings when the # list is empty. # Corresponds to the JSON property `warning` # @return [Google::Apis::ComputeAlpha::PacketMirroringsScopedList::Warning] attr_accessor :warning def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @packet_mirrorings = args[:packet_mirrorings] if args.key?(:packet_mirrorings) @warning = args[:warning] if args.key?(:warning) end # Informational warning which replaces the list of packetMirrorings when the # list is empty. class Warning include Google::Apis::Core::Hashable # [Output Only] A warning code, if applicable. For example, Compute Engine # returns NO_RESULTS_ON_PAGE if there are no results in the response. # Corresponds to the JSON property `code` # @return [String] attr_accessor :code # [Output Only] Metadata about this warning in key: value format. For example: " # data": [ ` "key": "scope", "value": "zones/us-east1-d" ` # Corresponds to the JSON property `data` # @return [Array] attr_accessor :data # [Output Only] A human-readable description of the warning code. # Corresponds to the JSON property `message` # @return [String] attr_accessor :message def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @code = args[:code] if args.key?(:code) @data = args[:data] if args.key?(:data) @message = args[:message] if args.key?(:message) end # class Datum include Google::Apis::Core::Hashable # [Output Only] A key that provides more detail on the warning being returned. # For example, for warnings where there are no results in a list request for a # particular zone, this key might be scope and the key value might be the zone # name. Other examples might be a key indicating a deprecated resource and a # suggested replacement, or a warning about invalid network settings (for # example, if an instance attempts to perform IP forwarding but is not enabled # for IP forwarding). # Corresponds to the JSON property `key` # @return [String] attr_accessor :key # [Output Only] A warning data value corresponding to the key. # 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 end end # A matcher for the path portion of the URL. The BackendService from the longest- # matched rule will serve the URL. If no rule was matched, the default service # is used. class PathMatcher include Google::Apis::Core::Hashable # defaultRouteAction takes effect when none of the pathRules or routeRules match. # The load balancer performs advanced routing actions, such as URL rewrites and # header transformations, before forwarding the request to the selected backend. # If defaultRouteAction specifies any weightedBackendServices, defaultService # must not be set. Conversely if defaultService is set, defaultRouteAction # cannot contain any weightedBackendServices. Only one of defaultRouteAction or # defaultUrlRedirect must be set. UrlMaps for external HTTP(S) load balancers # support only the urlRewrite action within a path matcher's defaultRouteAction. # Corresponds to the JSON property `defaultRouteAction` # @return [Google::Apis::ComputeAlpha::HttpRouteAction] attr_accessor :default_route_action # The full or partial URL to the BackendService resource. This URL is used if # none of the pathRules or routeRules defined by this PathMatcher are matched. # For example, the following are all valid URLs to a BackendService resource: - # https://www.googleapis.com/compute/v1/projects/project /global/backendServices/ # backendService - compute/v1/projects/project/global/backendServices/ # backendService - global/backendServices/backendService If defaultRouteAction # is also specified, advanced routing actions, such as URL rewrites, take effect # before sending the request to the backend. However, if defaultService is # specified, defaultRouteAction cannot contain any weightedBackendServices. # Conversely, if defaultRouteAction specifies any weightedBackendServices, # defaultService must not be specified. Only one of defaultService, # defaultUrlRedirect , or defaultRouteAction.weightedBackendService must be set. # Authorization requires one or more of the following Google IAM permissions on # the specified resource default_service: - compute.backendBuckets.use - compute. # backendServices.use # Corresponds to the JSON property `defaultService` # @return [String] attr_accessor :default_service # Specifies settings for an HTTP redirect. # Corresponds to the JSON property `defaultUrlRedirect` # @return [Google::Apis::ComputeAlpha::HttpRedirectAction] attr_accessor :default_url_redirect # An optional description of this resource. Provide this property when you # create the resource. # Corresponds to the JSON property `description` # @return [String] attr_accessor :description # The request and response header transformations that take effect before the # request is passed along to the selected backendService. # Corresponds to the JSON property `headerAction` # @return [Google::Apis::ComputeAlpha::HttpHeaderAction] attr_accessor :header_action # The name to which this PathMatcher is referred by the HostRule. # Corresponds to the JSON property `name` # @return [String] attr_accessor :name # The list of path rules. Use this list instead of routeRules when routing based # on simple path matching is all that's required. The order by which path rules # are specified does not matter. Matches are always done on the longest-path- # first basis. For example: a pathRule with a path /a/b/c/* will match before /a/ # b/* irrespective of the order in which those paths appear in this list. Within # a given pathMatcher, only one of pathRules or routeRules must be set. # Corresponds to the JSON property `pathRules` # @return [Array] attr_accessor :path_rules # The list of HTTP route rules. Use this list instead of pathRules when advanced # route matching and routing actions are desired. routeRules are evaluated in # order of priority, from the lowest to highest number. Within a given # pathMatcher, you can set only one of pathRules or routeRules. # Corresponds to the JSON property `routeRules` # @return [Array] attr_accessor :route_rules def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @default_route_action = args[:default_route_action] if args.key?(:default_route_action) @default_service = args[:default_service] if args.key?(:default_service) @default_url_redirect = args[:default_url_redirect] if args.key?(:default_url_redirect) @description = args[:description] if args.key?(:description) @header_action = args[:header_action] if args.key?(:header_action) @name = args[:name] if args.key?(:name) @path_rules = args[:path_rules] if args.key?(:path_rules) @route_rules = args[:route_rules] if args.key?(:route_rules) end end # A path-matching rule for a URL. If matched, will use the specified # BackendService to handle the traffic arriving at this URL. class PathRule include Google::Apis::Core::Hashable # The list of path patterns to match. Each must start with / and the only place # a * is allowed is at the end following a /. The string fed to the path matcher # does not include any text after the first ? or #, and those chars are not # allowed here. # Corresponds to the JSON property `paths` # @return [Array] attr_accessor :paths # In response to a matching path, the load balancer performs advanced routing # actions, such as URL rewrites and header transformations, before forwarding # the request to the selected backend. If routeAction specifies any # weightedBackendServices, service must not be set. Conversely if service is set, # routeAction cannot contain any weightedBackendServices. Only one of # routeAction or urlRedirect must be set. URL maps for external HTTP(S) load # balancers support only the urlRewrite action within a path rule's routeAction. # Corresponds to the JSON property `routeAction` # @return [Google::Apis::ComputeAlpha::HttpRouteAction] attr_accessor :route_action # The full or partial URL of the backend service resource to which traffic is # directed if this rule is matched. If routeAction is also specified, advanced # routing actions, such as URL rewrites, take effect before sending the request # to the backend. However, if service is specified, routeAction cannot contain # any weightedBackendServices. Conversely, if routeAction specifies any # weightedBackendServices, service must not be specified. Only one of # urlRedirect, service or routeAction.weightedBackendService must be set. # Corresponds to the JSON property `service` # @return [String] attr_accessor :service # Specifies settings for an HTTP redirect. # Corresponds to the JSON property `urlRedirect` # @return [Google::Apis::ComputeAlpha::HttpRedirectAction] attr_accessor :url_redirect def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @paths = args[:paths] if args.key?(:paths) @route_action = args[:route_action] if args.key?(:route_action) @service = args[:service] if args.key?(:service) @url_redirect = args[:url_redirect] if args.key?(:url_redirect) end end # [Deprecated] Configuration for the peer authentication method. Configuration # for the peer authentication method. class PeerAuthenticationMethod include Google::Apis::Core::Hashable # [Deprecated] Configuration for the mutual Tls mode for peer authentication. # Configuration for the mutual Tls mode for peer authentication. # Corresponds to the JSON property `mtls` # @return [Google::Apis::ComputeAlpha::MutualTls] attr_accessor :mtls def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @mtls = args[:mtls] if args.key?(:mtls) end end # class PerInstanceConfig include Google::Apis::Core::Hashable # Fingerprint of this per-instance config. This field can be used in optimistic # locking. It is ignored when inserting a per-instance config. An up-to-date # fingerprint must be provided in order to update an existing per-instance # config or the field needs to be unset. # Corresponds to the JSON property `fingerprint` # NOTE: Values are automatically base64 encoded/decoded in the client library. # @return [String] attr_accessor :fingerprint # The name of a per-instance config and its corresponding instance. Serves as a # merge key during UpdatePerInstanceConfigs operations, that is, if a per- # instance config with the same name exists then it will be updated, otherwise a # new one will be created for the VM instance with the same name. An attempt to # create a per-instance config for a VM instance that either doesn't exist or is # not part of the group will result in an error. # Corresponds to the JSON property `name` # @return [String] attr_accessor :name # Preserved state for a given instance. # Corresponds to the JSON property `preservedState` # @return [Google::Apis::ComputeAlpha::PreservedState] attr_accessor :preserved_state # The status of applying this per-instance config on the corresponding managed # instance. # 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) @fingerprint = args[:fingerprint] if args.key?(:fingerprint) @name = args[:name] if args.key?(:name) @preserved_state = args[:preserved_state] if args.key?(:preserved_state) @status = args[:status] if args.key?(:status) end end # [Deprecated] All fields defined in a permission are ANDed. class Permission include Google::Apis::Core::Hashable # Extra custom constraints. The constraints are ANDed together. # Corresponds to the JSON property `constraints` # @return [Array] attr_accessor :constraints # Used in Ingress or Egress Gateway cases to specify hosts that the policy # applies to. Exact match, prefix match, and suffix match are supported. # Corresponds to the JSON property `hosts` # @return [Array] attr_accessor :hosts # HTTP method. # Corresponds to the JSON property `methods` # @return [Array] attr_accessor :methods_prop # Negate of hosts. Specifies exclusions. # Corresponds to the JSON property `notHosts` # @return [Array] attr_accessor :not_hosts # Negate of methods. Specifies exclusions. # Corresponds to the JSON property `notMethods` # @return [Array] attr_accessor :not_methods # Negate of paths. Specifies exclusions. # Corresponds to the JSON property `notPaths` # @return [Array] attr_accessor :not_paths # Negate of ports. Specifies exclusions. # Corresponds to the JSON property `notPorts` # @return [Array] attr_accessor :not_ports # HTTP request paths or gRPC methods. Exact match, prefix match, and suffix # match are supported. # Corresponds to the JSON property `paths` # @return [Array] attr_accessor :paths # Port names or numbers. # 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) @constraints = args[:constraints] if args.key?(:constraints) @hosts = args[:hosts] if args.key?(:hosts) @methods_prop = args[:methods_prop] if args.key?(:methods_prop) @not_hosts = args[:not_hosts] if args.key?(:not_hosts) @not_methods = args[:not_methods] if args.key?(:not_methods) @not_paths = args[:not_paths] if args.key?(:not_paths) @not_ports = args[:not_ports] if args.key?(:not_ports) @paths = args[:paths] if args.key?(:paths) @ports = args[:ports] if args.key?(:ports) end end # Custom constraint that specifies a key and a list of allowed values for Istio # attributes. class PermissionConstraint include Google::Apis::Core::Hashable # Key of the constraint. # Corresponds to the JSON property `key` # @return [String] attr_accessor :key # A list of allowed values. # Corresponds to the JSON property `values` # @return [Array] attr_accessor :values def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @key = args[:key] if args.key?(:key) @values = args[:values] if args.key?(:values) end end # An Identity and Access Management (IAM) policy, which specifies access # controls for Google Cloud resources. A `Policy` is a collection of `bindings`. # A `binding` binds one or more `members`, or principals, to a single `role`. # Principals can be user accounts, service accounts, Google groups, and domains ( # such as G Suite). A `role` is a named list of permissions; each `role` can be # an IAM predefined role or a user-created custom role. For some types of Google # Cloud resources, a `binding` can also specify a `condition`, which is a # logical expression that allows access to a resource only if the expression # evaluates to `true`. A condition can add constraints based on attributes of # the request, the resource, or both. To learn which resources support # conditions in their IAM policies, see the [IAM documentation](https://cloud. # google.com/iam/help/conditions/resource-policies). **JSON example:** ` " # bindings": [ ` "role": "roles/resourcemanager.organizationAdmin", "members": [ # "user:mike@example.com", "group:admins@example.com", "domain:google.com", " # serviceAccount:my-project-id@appspot.gserviceaccount.com" ] `, ` "role": " # roles/resourcemanager.organizationViewer", "members": [ "user:eve@example.com" # ], "condition": ` "title": "expirable access", "description": "Does not grant # access after Sep 2020", "expression": "request.time < timestamp('2020-10-01T00: # 00:00.000Z')", ` ` ], "etag": "BwWWja0YfJA=", "version": 3 ` **YAML example:** # bindings: - members: - user:mike@example.com - group:admins@example.com - # domain:google.com - serviceAccount:my-project-id@appspot.gserviceaccount.com # role: roles/resourcemanager.organizationAdmin - members: - user:eve@example. # com role: roles/resourcemanager.organizationViewer condition: title: expirable # access description: Does not grant access after Sep 2020 expression: request. # time < timestamp('2020-10-01T00:00:00.000Z') etag: BwWWja0YfJA= version: 3 For # a description of IAM and its features, see the [IAM documentation](https:// # cloud.google.com/iam/docs/). class Policy include Google::Apis::Core::Hashable # Specifies cloud audit logging configuration for this policy. # Corresponds to the JSON property `auditConfigs` # @return [Array] attr_accessor :audit_configs # Associates a list of `members`, or principals, with a `role`. Optionally, may # specify a `condition` that determines how and when the `bindings` are applied. # Each of the `bindings` must contain at least one principal. The `bindings` in # a `Policy` can refer to up to 1,500 principals; up to 250 of these principals # can be Google groups. Each occurrence of a principal counts towards these # limits. For example, if the `bindings` grant 50 different roles to `user:alice@ # example.com`, and not to any other principal, then you can add another 1,450 # principals to the `bindings` in the `Policy`. # Corresponds to the JSON property `bindings` # @return [Array] attr_accessor :bindings # `etag` is used for optimistic concurrency control as a way to help prevent # simultaneous updates of a policy from overwriting each other. It is strongly # suggested that systems make use of the `etag` in the read-modify-write cycle # to perform policy updates in order to avoid race conditions: An `etag` is # returned in the response to `getIamPolicy`, and systems are expected to put # that etag in the request to `setIamPolicy` to ensure that their change will be # applied to the same version of the policy. **Important:** If you use IAM # Conditions, you must include the `etag` field whenever you call `setIamPolicy`. # If you omit this field, then IAM allows you to overwrite a version `3` policy # with a version `1` policy, and all of the conditions in the version `3` policy # are lost. # Corresponds to the JSON property `etag` # NOTE: Values are automatically base64 encoded/decoded in the client library. # @return [String] attr_accessor :etag # This is deprecated and has no effect. Do not use. # Corresponds to the JSON property `rules` # @return [Array] attr_accessor :rules # Specifies the format of the policy. Valid values are `0`, `1`, and `3`. # Requests that specify an invalid value are rejected. Any operation that # affects conditional role bindings must specify version `3`. This requirement # applies to the following operations: * Getting a policy that includes a # conditional role binding * Adding a conditional role binding to a policy * # Changing a conditional role binding in a policy * Removing any role binding, # with or without a condition, from a policy that includes conditions ** # Important:** If you use IAM Conditions, you must include the `etag` field # whenever you call `setIamPolicy`. If you omit this field, then IAM allows you # to overwrite a version `3` policy with a version `1` policy, and all of the # conditions in the version `3` policy are lost. If a policy does not include # any conditions, operations on that policy may specify any valid version or # leave the field unset. To learn which resources support conditions in their # IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/ # conditions/resource-policies). # Corresponds to the JSON property `version` # @return [Fixnum] attr_accessor :version def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @audit_configs = args[:audit_configs] if args.key?(:audit_configs) @bindings = args[:bindings] if args.key?(:bindings) @etag = args[:etag] if args.key?(:etag) @rules = args[:rules] if args.key?(:rules) @version = args[:version] if args.key?(:version) end end # class PreconfiguredWafSet include Google::Apis::Core::Hashable # List of entities that are currently supported for WAF rules. # Corresponds to the JSON property `expressionSets` # @return [Array] attr_accessor :expression_sets def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @expression_sets = args[:expression_sets] if args.key?(:expression_sets) end end # Preserved state for a given instance. class PreservedState include Google::Apis::Core::Hashable # Preserved disks defined for this instance. This map is keyed with the device # names of the disks. # Corresponds to the JSON property `disks` # @return [Hash] attr_accessor :disks # Preserved external IPs defined for this instance. This map is keyed with the # name of the network interface. # Corresponds to the JSON property `externalIPs` # @return [Hash] attr_accessor :external_i_ps # Preserved internal IPs defined for this instance. This map is keyed with the # name of the network interface. # Corresponds to the JSON property `internalIPs` # @return [Hash] attr_accessor :internal_i_ps # Preserved metadata defined for this instance. # Corresponds to the JSON property `metadata` # @return [Hash] attr_accessor :metadata def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @disks = args[:disks] if args.key?(:disks) @external_i_ps = args[:external_i_ps] if args.key?(:external_i_ps) @internal_i_ps = args[:internal_i_ps] if args.key?(:internal_i_ps) @metadata = args[:metadata] if args.key?(:metadata) end end # class PreservedStatePreservedDisk include Google::Apis::Core::Hashable # These stateful disks will never be deleted during autohealing, update, # instance recreate operations. This flag is used to configure if the disk # should be deleted after it is no longer used by the group, e.g. when the given # instance or the whole MIG is deleted. Note: disks attached in READ_ONLY mode # cannot be auto-deleted. # Corresponds to the JSON property `autoDelete` # @return [String] attr_accessor :auto_delete # The mode in which to attach this disk, either READ_WRITE or READ_ONLY. If not # specified, the default is to attach the disk in READ_WRITE mode. # Corresponds to the JSON property `mode` # @return [String] attr_accessor :mode # The URL of the disk resource that is stateful and should be attached to the VM # instance. # 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) @auto_delete = args[:auto_delete] if args.key?(:auto_delete) @mode = args[:mode] if args.key?(:mode) @source = args[:source] if args.key?(:source) end end # class PreservedStatePreservedNetworkIp include Google::Apis::Core::Hashable # These stateful IPs will never be released during autohealing, update or VM # instance recreate operations. This flag is used to configure if the IP # reservation should be deleted after it is no longer used by the group, e.g. # when the given instance or the whole group is deleted. # Corresponds to the JSON property `autoDelete` # @return [String] attr_accessor :auto_delete # Ip address representation # Corresponds to the JSON property `ipAddress` # @return [Google::Apis::ComputeAlpha::PreservedStatePreservedNetworkIpIpAddress] attr_accessor :ip_address def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @auto_delete = args[:auto_delete] if args.key?(:auto_delete) @ip_address = args[:ip_address] if args.key?(:ip_address) end end # class PreservedStatePreservedNetworkIpIpAddress include Google::Apis::Core::Hashable # The URL of the reservation for this IP address. # Corresponds to the JSON property `address` # @return [String] attr_accessor :address # An IPv4 internal network address to assign to the instance for this network # interface. # Corresponds to the JSON property `literal` # @return [String] attr_accessor :literal def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @address = args[:address] if args.key?(:address) @literal = args[:literal] if args.key?(:literal) end end # [Deprecated] All fields defined in a principal are ANDed. class Principal include Google::Apis::Core::Hashable # An expression to specify custom condition. # Corresponds to the JSON property `condition` # @return [String] attr_accessor :condition # The groups the principal belongs to. Exact match, prefix match, and suffix # match are supported. # Corresponds to the JSON property `groups` # @return [Array] attr_accessor :groups # IPv4 or IPv6 address or range (In CIDR format) # Corresponds to the JSON property `ips` # @return [Array] attr_accessor :ips # The namespaces. Exact match, prefix match, and suffix match are supported. # Corresponds to the JSON property `namespaces` # @return [Array] attr_accessor :namespaces # Negate of groups. Specifies exclusions. # Corresponds to the JSON property `notGroups` # @return [Array] attr_accessor :not_groups # Negate of IPs. Specifies exclusions. # Corresponds to the JSON property `notIps` # @return [Array] attr_accessor :not_ips # Negate of namespaces. Specifies exclusions. # Corresponds to the JSON property `notNamespaces` # @return [Array] attr_accessor :not_namespaces # Negate of users. Specifies exclusions. # Corresponds to the JSON property `notUsers` # @return [Array] attr_accessor :not_users # A map of Istio attribute to expected values. Exact match, prefix match, and # suffix match are supported for values. For example, `request.headers[version]: # "v1"`. The properties are ANDed together. # Corresponds to the JSON property `properties` # @return [Hash] attr_accessor :properties # The user names/IDs or service accounts. Exact match, prefix match, and suffix # match are supported. # Corresponds to the JSON property `users` # @return [Array] attr_accessor :users def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @condition = args[:condition] if args.key?(:condition) @groups = args[:groups] if args.key?(:groups) @ips = args[:ips] if args.key?(:ips) @namespaces = args[:namespaces] if args.key?(:namespaces) @not_groups = args[:not_groups] if args.key?(:not_groups) @not_ips = args[:not_ips] if args.key?(:not_ips) @not_namespaces = args[:not_namespaces] if args.key?(:not_namespaces) @not_users = args[:not_users] if args.key?(:not_users) @properties = args[:properties] if args.key?(:properties) @users = args[:users] if args.key?(:users) end end # Represents a Project resource. A project is used to organize resources in a # Google Cloud Platform environment. For more information, read about the # Resource Hierarchy. class Project include Google::Apis::Core::Hashable # A metadata key/value entry. # Corresponds to the JSON property `commonInstanceMetadata` # @return [Google::Apis::ComputeAlpha::Metadata] attr_accessor :common_instance_metadata # [Output Only] Creation timestamp in RFC3339 text format. # Corresponds to the JSON property `creationTimestamp` # @return [String] attr_accessor :creation_timestamp # This signifies the default network tier used for configuring resources of the # project and can only take the following values: PREMIUM, STANDARD. Initially # the default network tier is PREMIUM. # Corresponds to the JSON property `defaultNetworkTier` # @return [String] attr_accessor :default_network_tier # [Output Only] Default service account used by VMs running in this project. # Corresponds to the JSON property `defaultServiceAccount` # @return [String] attr_accessor :default_service_account # An optional textual description of the resource. # Corresponds to the JSON property `description` # @return [String] attr_accessor :description # Restricted features enabled for use on this project. # Corresponds to the JSON property `enabledFeatures` # @return [Array] attr_accessor :enabled_features # [Output Only] The unique identifier for the resource. This identifier is # defined by the server. This is *not* the project ID, and is just a unique ID # used by Compute Engine to identify resources. # Corresponds to the JSON property `id` # @return [Fixnum] attr_accessor :id # [Output Only] Type of the resource. Always compute#project for projects. # Corresponds to the JSON property `kind` # @return [String] attr_accessor :kind # The project ID. For example: my-example-project. Use the project ID to make # requests to Compute Engine. # Corresponds to the JSON property `name` # @return [String] attr_accessor :name # [Output Only] Quotas assigned to this project. # Corresponds to the JSON property `quotas` # @return [Array] attr_accessor :quotas # [Output Only] Server-defined URL for the resource. # Corresponds to the JSON property `selfLink` # @return [String] attr_accessor :self_link # The location in Cloud Storage and naming method of the daily usage report. # Contains bucket_name and report_name prefix. # Corresponds to the JSON property `usageExportLocation` # @return [Google::Apis::ComputeAlpha::UsageExportLocation] attr_accessor :usage_export_location # [Output Only] The role this project has in a shared VPC configuration. # Currently, only projects with the host role, which is specified by the value # HOST, are differentiated. # Corresponds to the JSON property `xpnProjectStatus` # @return [String] attr_accessor :xpn_project_status def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @common_instance_metadata = args[:common_instance_metadata] if args.key?(:common_instance_metadata) @creation_timestamp = args[:creation_timestamp] if args.key?(:creation_timestamp) @default_network_tier = args[:default_network_tier] if args.key?(:default_network_tier) @default_service_account = args[:default_service_account] if args.key?(:default_service_account) @description = args[:description] if args.key?(:description) @enabled_features = args[:enabled_features] if args.key?(:enabled_features) @id = args[:id] if args.key?(:id) @kind = args[:kind] if args.key?(:kind) @name = args[:name] if args.key?(:name) @quotas = args[:quotas] if args.key?(:quotas) @self_link = args[:self_link] if args.key?(:self_link) @usage_export_location = args[:usage_export_location] if args.key?(:usage_export_location) @xpn_project_status = args[:xpn_project_status] if args.key?(:xpn_project_status) end end # class ProjectsDisableXpnResourceRequest include Google::Apis::Core::Hashable # Service resource (a.k.a service project) ID. # Corresponds to the JSON property `xpnResource` # @return [Google::Apis::ComputeAlpha::XpnResourceId] attr_accessor :xpn_resource def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @xpn_resource = args[:xpn_resource] if args.key?(:xpn_resource) end end # class ProjectsEnableXpnResourceRequest include Google::Apis::Core::Hashable # Service resource (a.k.a service project) ID. # Corresponds to the JSON property `xpnResource` # @return [Google::Apis::ComputeAlpha::XpnResourceId] attr_accessor :xpn_resource def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @xpn_resource = args[:xpn_resource] if args.key?(:xpn_resource) end end # class ProjectsGetXpnResources include Google::Apis::Core::Hashable # [Output Only] Type of resource. Always compute#projectsGetXpnResources for # lists of service resources (a.k.a service projects) # Corresponds to the JSON property `kind` # @return [String] attr_accessor :kind # [Output Only] This token allows you to get the next page of results for list # requests. If the number of results is larger than maxResults, use the # nextPageToken as a value for the query parameter pageToken in the next list # request. Subsequent list requests will have their own nextPageToken to # continue paging through the results. # Corresponds to the JSON property `nextPageToken` # @return [String] attr_accessor :next_page_token # Service resources (a.k.a service projects) attached to this project as their # shared VPC host. # 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) @kind = args[:kind] if args.key?(:kind) @next_page_token = args[:next_page_token] if args.key?(:next_page_token) @resources = args[:resources] if args.key?(:resources) end end # class ProjectsListXpnHostsRequest include Google::Apis::Core::Hashable # Optional organization ID managed by Cloud Resource Manager, for which to list # shared VPC host projects. If not specified, the organization will be inferred # from the project. # Corresponds to the JSON property `organization` # @return [String] attr_accessor :organization # Opt-in for partial page behavior which provides a partial filled page (number # of items on which may be smaller than maxResults) within the API deadline. If # opt-in, then the user should rely on if nextPageToken is empty in the response # to determine if there is a next page. Empty page is also valid and possible. # The default value is false. # Corresponds to the JSON property `returnPartialPage` # @return [Boolean] attr_accessor :return_partial_page alias_method :return_partial_page?, :return_partial_page def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @organization = args[:organization] if args.key?(:organization) @return_partial_page = args[:return_partial_page] if args.key?(:return_partial_page) end end # class ProjectsSetDefaultNetworkTierRequest include Google::Apis::Core::Hashable # Default network tier to be set. # Corresponds to the JSON property `networkTier` # @return [String] attr_accessor :network_tier def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @network_tier = args[:network_tier] if args.key?(:network_tier) end end # class ProjectsSetDefaultServiceAccountRequest include Google::Apis::Core::Hashable # Email address of the service account. # Corresponds to the JSON property `email` # @return [String] attr_accessor :email def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @email = args[:email] if args.key?(:email) end end # A public advertised prefix represents an aggregated IP prefix or netblock # which customers bring to cloud. The IP prefix is a single unit of route # advertisement and is announced globally to the internet. class PublicAdvertisedPrefix include Google::Apis::Core::Hashable # [Output Only] Creation timestamp in RFC3339 text format. # Corresponds to the JSON property `creationTimestamp` # @return [String] attr_accessor :creation_timestamp # An optional description of this resource. Provide this property when you # create the resource. # Corresponds to the JSON property `description` # @return [String] attr_accessor :description # The IPv4 address to be used for reverse DNS verification. # Corresponds to the JSON property `dnsVerificationIp` # @return [String] attr_accessor :dns_verification_ip # Fingerprint of this resource. A hash of the contents stored in this object. # This field is used in optimistic locking. This field will be ignored when # inserting a new PublicAdvertisedPrefix. An up-to-date fingerprint must be # provided in order to update the PublicAdvertisedPrefix, otherwise the request # will fail with error 412 conditionNotMet. To see the latest fingerprint, make # a get() request to retrieve a PublicAdvertisedPrefix. # Corresponds to the JSON property `fingerprint` # NOTE: Values are automatically base64 encoded/decoded in the client library. # @return [String] attr_accessor :fingerprint # [Output Only] The unique identifier for the resource type. The server # generates this identifier. # Corresponds to the JSON property `id` # @return [Fixnum] attr_accessor :id # The IPv4 address range, in CIDR format, represented by this public advertised # prefix. # Corresponds to the JSON property `ipCidrRange` # @return [String] attr_accessor :ip_cidr_range # [Output Only] Type of the resource. Always compute#publicAdvertisedPrefix for # public advertised prefixes. # Corresponds to the JSON property `kind` # @return [String] attr_accessor :kind # Name of the resource. Provided by the client when the resource is created. The # name must be 1-63 characters long, and comply with RFC1035. Specifically, the # name must be 1-63 characters long and match the regular expression `[a-z]([-a- # z0-9]*[a-z0-9])?` which means the first character must be a lowercase letter, # and all following characters must be a dash, lowercase letter, or digit, # except the last character, which cannot be a dash. # Corresponds to the JSON property `name` # @return [String] attr_accessor :name # Specifies how child public delegated prefix will be scoped. It could be one of # following values: - `REGIONAL`: The public delegated prefix is regional only. # The provisioning will take a few minutes. - `GLOBAL`: The public delegated # prefix is global only. The provisioning will take ~4 weeks. - ` # GLOBAL_AND_REGIONAL` [output only]: The public delegated prefixes is BYOIP V1 # legacy prefix. This is output only value and no longer supported in BYOIP V2. # Corresponds to the JSON property `pdpScope` # @return [String] attr_accessor :pdp_scope # [Output Only] The list of public delegated prefixes that exist for this public # advertised prefix. # Corresponds to the JSON property `publicDelegatedPrefixs` # @return [Array] attr_accessor :public_delegated_prefixs # [Output Only] Server-defined URL for the resource. # Corresponds to the JSON property `selfLink` # @return [String] attr_accessor :self_link # [Output Only] Server-defined URL with id for the resource. # Corresponds to the JSON property `selfLinkWithId` # @return [String] attr_accessor :self_link_with_id # [Output Only] The shared secret to be used for reverse DNS verification. # Corresponds to the JSON property `sharedSecret` # @return [String] attr_accessor :shared_secret # The status of the public advertised prefix. Possible values include: - ` # INITIAL`: RPKI validation is complete. - `PTR_CONFIGURED`: User has configured # the PTR. - `VALIDATED`: Reverse DNS lookup is successful. - ` # REVERSE_DNS_LOOKUP_FAILED`: Reverse DNS lookup failed. - ` # PREFIX_CONFIGURATION_IN_PROGRESS`: The prefix is being configured. - ` # PREFIX_CONFIGURATION_COMPLETE`: The prefix is fully configured. - ` # PREFIX_REMOVAL_IN_PROGRESS`: The prefix is being removed. # 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) @creation_timestamp = args[:creation_timestamp] if args.key?(:creation_timestamp) @description = args[:description] if args.key?(:description) @dns_verification_ip = args[:dns_verification_ip] if args.key?(:dns_verification_ip) @fingerprint = args[:fingerprint] if args.key?(:fingerprint) @id = args[:id] if args.key?(:id) @ip_cidr_range = args[:ip_cidr_range] if args.key?(:ip_cidr_range) @kind = args[:kind] if args.key?(:kind) @name = args[:name] if args.key?(:name) @pdp_scope = args[:pdp_scope] if args.key?(:pdp_scope) @public_delegated_prefixs = args[:public_delegated_prefixs] if args.key?(:public_delegated_prefixs) @self_link = args[:self_link] if args.key?(:self_link) @self_link_with_id = args[:self_link_with_id] if args.key?(:self_link_with_id) @shared_secret = args[:shared_secret] if args.key?(:shared_secret) @status = args[:status] if args.key?(:status) end end # class PublicAdvertisedPrefixList include Google::Apis::Core::Hashable # [Output Only] Unique identifier for the resource; defined by the server. # Corresponds to the JSON property `id` # @return [String] attr_accessor :id # A list of PublicAdvertisedPrefix resources. # Corresponds to the JSON property `items` # @return [Array] attr_accessor :items # [Output Only] Type of the resource. Always compute#publicAdvertisedPrefix for # public advertised prefixes. # Corresponds to the JSON property `kind` # @return [String] attr_accessor :kind # [Output Only] This token allows you to get the next page of results for list # requests. If the number of results is larger than maxResults, use the # nextPageToken as a value for the query parameter pageToken in the next list # request. Subsequent list requests will have their own nextPageToken to # continue paging through the results. # Corresponds to the JSON property `nextPageToken` # @return [String] attr_accessor :next_page_token # [Output Only] Server-defined URL for this resource. # Corresponds to the JSON property `selfLink` # @return [String] attr_accessor :self_link # [Output Only] Informational warning message. # Corresponds to the JSON property `warning` # @return [Google::Apis::ComputeAlpha::PublicAdvertisedPrefixList::Warning] attr_accessor :warning def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @id = args[:id] if args.key?(:id) @items = args[:items] if args.key?(:items) @kind = args[:kind] if args.key?(:kind) @next_page_token = args[:next_page_token] if args.key?(:next_page_token) @self_link = args[:self_link] if args.key?(:self_link) @warning = args[:warning] if args.key?(:warning) end # [Output Only] Informational warning message. class Warning include Google::Apis::Core::Hashable # [Output Only] A warning code, if applicable. For example, Compute Engine # returns NO_RESULTS_ON_PAGE if there are no results in the response. # Corresponds to the JSON property `code` # @return [String] attr_accessor :code # [Output Only] Metadata about this warning in key: value format. For example: " # data": [ ` "key": "scope", "value": "zones/us-east1-d" ` # Corresponds to the JSON property `data` # @return [Array] attr_accessor :data # [Output Only] A human-readable description of the warning code. # Corresponds to the JSON property `message` # @return [String] attr_accessor :message def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @code = args[:code] if args.key?(:code) @data = args[:data] if args.key?(:data) @message = args[:message] if args.key?(:message) end # class Datum include Google::Apis::Core::Hashable # [Output Only] A key that provides more detail on the warning being returned. # For example, for warnings where there are no results in a list request for a # particular zone, this key might be scope and the key value might be the zone # name. Other examples might be a key indicating a deprecated resource and a # suggested replacement, or a warning about invalid network settings (for # example, if an instance attempts to perform IP forwarding but is not enabled # for IP forwarding). # Corresponds to the JSON property `key` # @return [String] attr_accessor :key # [Output Only] A warning data value corresponding to the key. # 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 end end # Represents a CIDR range which can be used to assign addresses. class PublicAdvertisedPrefixPublicDelegatedPrefix include Google::Apis::Core::Hashable # The IP address range of the public delegated prefix # Corresponds to the JSON property `ipRange` # @return [String] attr_accessor :ip_range # The name of the public delegated prefix # Corresponds to the JSON property `name` # @return [String] attr_accessor :name # The project number of the public delegated prefix # Corresponds to the JSON property `project` # @return [String] attr_accessor :project # The region of the public delegated prefix if it is regional. If absent, the # prefix is global. # Corresponds to the JSON property `region` # @return [String] attr_accessor :region # The status of the public delegated prefix. Possible values are: INITIALIZING: # The public delegated prefix is being initialized and addresses cannot be # created yet. ANNOUNCED: The public delegated prefix is active. # 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) @ip_range = args[:ip_range] if args.key?(:ip_range) @name = args[:name] if args.key?(:name) @project = args[:project] if args.key?(:project) @region = args[:region] if args.key?(:region) @status = args[:status] if args.key?(:status) end end # A PublicDelegatedPrefix resource represents an IP block within a # PublicAdvertisedPrefix that is configured within a single cloud scope (global # or region). IPs in the block can be allocated to resources within that scope. # Public delegated prefixes may be further broken up into smaller IP blocks in # the same scope as the parent block. class PublicDelegatedPrefix include Google::Apis::Core::Hashable # [Output Only] Creation timestamp in RFC3339 text format. # Corresponds to the JSON property `creationTimestamp` # @return [String] attr_accessor :creation_timestamp # An optional description of this resource. Provide this property when you # create the resource. # Corresponds to the JSON property `description` # @return [String] attr_accessor :description # Fingerprint of this resource. A hash of the contents stored in this object. # This field is used in optimistic locking. This field will be ignored when # inserting a new PublicDelegatedPrefix. An up-to-date fingerprint must be # provided in order to update the PublicDelegatedPrefix, otherwise the request # will fail with error 412 conditionNotMet. To see the latest fingerprint, make # a get() request to retrieve a PublicDelegatedPrefix. # Corresponds to the JSON property `fingerprint` # NOTE: Values are automatically base64 encoded/decoded in the client library. # @return [String] attr_accessor :fingerprint # [Output Only] The unique identifier for the resource type. The server # generates this identifier. # Corresponds to the JSON property `id` # @return [Fixnum] attr_accessor :id # The IPv4 address range, in CIDR format, represented by this public delegated # prefix. # Corresponds to the JSON property `ipCidrRange` # @return [String] attr_accessor :ip_cidr_range # If true, the prefix will be live migrated. # Corresponds to the JSON property `isLiveMigration` # @return [Boolean] attr_accessor :is_live_migration alias_method :is_live_migration?, :is_live_migration # [Output Only] Type of the resource. Always compute#publicDelegatedPrefix for # public delegated prefixes. # Corresponds to the JSON property `kind` # @return [String] attr_accessor :kind # Name of the resource. Provided by the client when the resource is created. The # name must be 1-63 characters long, and comply with RFC1035. Specifically, the # name must be 1-63 characters long and match the regular expression `[a-z]([-a- # z0-9]*[a-z0-9])?` which means the first character must be a lowercase letter, # and all following characters must be a dash, lowercase letter, or digit, # except the last character, which cannot be a dash. # Corresponds to the JSON property `name` # @return [String] attr_accessor :name # The URL of parent prefix. Either PublicAdvertisedPrefix or # PublicDelegatedPrefix. # Corresponds to the JSON property `parentPrefix` # @return [String] attr_accessor :parent_prefix # The list of sub public delegated prefixes that exist for this public delegated # prefix. # Corresponds to the JSON property `publicDelegatedSubPrefixs` # @return [Array] attr_accessor :public_delegated_sub_prefixs # [Output Only] URL of the region where the public delegated prefix resides. # This field applies only to the region resource. You must specify this field as # part of the HTTP request URL. It is not settable as a field in the request # body. # Corresponds to the JSON property `region` # @return [String] attr_accessor :region # [Output Only] Server-defined URL for the resource. # Corresponds to the JSON property `selfLink` # @return [String] attr_accessor :self_link # [Output Only] Server-defined URL with id for the resource. # Corresponds to the JSON property `selfLinkWithId` # @return [String] attr_accessor :self_link_with_id # [Output Only] The status of the public delegated prefix, which can be one of # following values: - `INITIALIZING` The public delegated prefix is being # initialized and addresses cannot be created yet. - `READY_TO_ANNOUNCE` The # public delegated prefix is a live migration prefix and is active. - `ANNOUNCED` # The public delegated prefix is active. - `DELETING` The public delegated # prefix is being deprovsioned. # 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) @creation_timestamp = args[:creation_timestamp] if args.key?(:creation_timestamp) @description = args[:description] if args.key?(:description) @fingerprint = args[:fingerprint] if args.key?(:fingerprint) @id = args[:id] if args.key?(:id) @ip_cidr_range = args[:ip_cidr_range] if args.key?(:ip_cidr_range) @is_live_migration = args[:is_live_migration] if args.key?(:is_live_migration) @kind = args[:kind] if args.key?(:kind) @name = args[:name] if args.key?(:name) @parent_prefix = args[:parent_prefix] if args.key?(:parent_prefix) @public_delegated_sub_prefixs = args[:public_delegated_sub_prefixs] if args.key?(:public_delegated_sub_prefixs) @region = args[:region] if args.key?(:region) @self_link = args[:self_link] if args.key?(:self_link) @self_link_with_id = args[:self_link_with_id] if args.key?(:self_link_with_id) @status = args[:status] if args.key?(:status) end end # class PublicDelegatedPrefixAggregatedList include Google::Apis::Core::Hashable # [Output Only] Unique identifier for the resource; defined by the server. # Corresponds to the JSON property `id` # @return [String] attr_accessor :id # A list of PublicDelegatedPrefixesScopedList resources. # Corresponds to the JSON property `items` # @return [Hash] attr_accessor :items # [Output Only] Type of the resource. Always compute# # publicDelegatedPrefixAggregatedList for aggregated lists of public delegated # prefixes. # Corresponds to the JSON property `kind` # @return [String] attr_accessor :kind # [Output Only] This token allows you to get the next page of results for list # requests. If the number of results is larger than maxResults, use the # nextPageToken as a value for the query parameter pageToken in the next list # request. Subsequent list requests will have their own nextPageToken to # continue paging through the results. # Corresponds to the JSON property `nextPageToken` # @return [String] attr_accessor :next_page_token # [Output Only] Server-defined URL for this resource. # Corresponds to the JSON property `selfLink` # @return [String] attr_accessor :self_link # [Output Only] Unreachable resources. # Corresponds to the JSON property `unreachables` # @return [Array] attr_accessor :unreachables # [Output Only] Informational warning message. # Corresponds to the JSON property `warning` # @return [Google::Apis::ComputeAlpha::PublicDelegatedPrefixAggregatedList::Warning] attr_accessor :warning def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @id = args[:id] if args.key?(:id) @items = args[:items] if args.key?(:items) @kind = args[:kind] if args.key?(:kind) @next_page_token = args[:next_page_token] if args.key?(:next_page_token) @self_link = args[:self_link] if args.key?(:self_link) @unreachables = args[:unreachables] if args.key?(:unreachables) @warning = args[:warning] if args.key?(:warning) end # [Output Only] Informational warning message. class Warning include Google::Apis::Core::Hashable # [Output Only] A warning code, if applicable. For example, Compute Engine # returns NO_RESULTS_ON_PAGE if there are no results in the response. # Corresponds to the JSON property `code` # @return [String] attr_accessor :code # [Output Only] Metadata about this warning in key: value format. For example: " # data": [ ` "key": "scope", "value": "zones/us-east1-d" ` # Corresponds to the JSON property `data` # @return [Array] attr_accessor :data # [Output Only] A human-readable description of the warning code. # Corresponds to the JSON property `message` # @return [String] attr_accessor :message def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @code = args[:code] if args.key?(:code) @data = args[:data] if args.key?(:data) @message = args[:message] if args.key?(:message) end # class Datum include Google::Apis::Core::Hashable # [Output Only] A key that provides more detail on the warning being returned. # For example, for warnings where there are no results in a list request for a # particular zone, this key might be scope and the key value might be the zone # name. Other examples might be a key indicating a deprecated resource and a # suggested replacement, or a warning about invalid network settings (for # example, if an instance attempts to perform IP forwarding but is not enabled # for IP forwarding). # Corresponds to the JSON property `key` # @return [String] attr_accessor :key # [Output Only] A warning data value corresponding to the key. # 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 end end # class PublicDelegatedPrefixList include Google::Apis::Core::Hashable # [Output Only] Unique identifier for the resource; defined by the server. # Corresponds to the JSON property `id` # @return [String] attr_accessor :id # A list of PublicDelegatedPrefix resources. # Corresponds to the JSON property `items` # @return [Array] attr_accessor :items # [Output Only] Type of the resource. Always compute#publicDelegatedPrefixList # for public delegated prefixes. # Corresponds to the JSON property `kind` # @return [String] attr_accessor :kind # [Output Only] This token allows you to get the next page of results for list # requests. If the number of results is larger than maxResults, use the # nextPageToken as a value for the query parameter pageToken in the next list # request. Subsequent list requests will have their own nextPageToken to # continue paging through the results. # Corresponds to the JSON property `nextPageToken` # @return [String] attr_accessor :next_page_token # [Output Only] Server-defined URL for this resource. # Corresponds to the JSON property `selfLink` # @return [String] attr_accessor :self_link # [Output Only] Informational warning message. # Corresponds to the JSON property `warning` # @return [Google::Apis::ComputeAlpha::PublicDelegatedPrefixList::Warning] attr_accessor :warning def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @id = args[:id] if args.key?(:id) @items = args[:items] if args.key?(:items) @kind = args[:kind] if args.key?(:kind) @next_page_token = args[:next_page_token] if args.key?(:next_page_token) @self_link = args[:self_link] if args.key?(:self_link) @warning = args[:warning] if args.key?(:warning) end # [Output Only] Informational warning message. class Warning include Google::Apis::Core::Hashable # [Output Only] A warning code, if applicable. For example, Compute Engine # returns NO_RESULTS_ON_PAGE if there are no results in the response. # Corresponds to the JSON property `code` # @return [String] attr_accessor :code # [Output Only] Metadata about this warning in key: value format. For example: " # data": [ ` "key": "scope", "value": "zones/us-east1-d" ` # Corresponds to the JSON property `data` # @return [Array] attr_accessor :data # [Output Only] A human-readable description of the warning code. # Corresponds to the JSON property `message` # @return [String] attr_accessor :message def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @code = args[:code] if args.key?(:code) @data = args[:data] if args.key?(:data) @message = args[:message] if args.key?(:message) end # class Datum include Google::Apis::Core::Hashable # [Output Only] A key that provides more detail on the warning being returned. # For example, for warnings where there are no results in a list request for a # particular zone, this key might be scope and the key value might be the zone # name. Other examples might be a key indicating a deprecated resource and a # suggested replacement, or a warning about invalid network settings (for # example, if an instance attempts to perform IP forwarding but is not enabled # for IP forwarding). # Corresponds to the JSON property `key` # @return [String] attr_accessor :key # [Output Only] A warning data value corresponding to the key. # 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 end end # Represents a sub PublicDelegatedPrefix. class PublicDelegatedPrefixPublicDelegatedSubPrefix include Google::Apis::Core::Hashable # Name of the project scoping this PublicDelegatedSubPrefix. # Corresponds to the JSON property `delegateeProject` # @return [String] attr_accessor :delegatee_project # An optional description of this resource. Provide this property when you # create the resource. # Corresponds to the JSON property `description` # @return [String] attr_accessor :description # The IPv4 address range, in CIDR format, represented by this sub public # delegated prefix. # Corresponds to the JSON property `ipCidrRange` # @return [String] attr_accessor :ip_cidr_range # Whether the sub prefix is delegated to create Address resources in the # delegatee project. # Corresponds to the JSON property `isAddress` # @return [Boolean] attr_accessor :is_address alias_method :is_address?, :is_address # The name of the sub public delegated prefix. # Corresponds to the JSON property `name` # @return [String] attr_accessor :name # [Output Only] The region of the sub public delegated prefix if it is regional. # If absent, the sub prefix is global. # Corresponds to the JSON property `region` # @return [String] attr_accessor :region # [Output Only] The status of the sub public delegated prefix. # 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) @delegatee_project = args[:delegatee_project] if args.key?(:delegatee_project) @description = args[:description] if args.key?(:description) @ip_cidr_range = args[:ip_cidr_range] if args.key?(:ip_cidr_range) @is_address = args[:is_address] if args.key?(:is_address) @name = args[:name] if args.key?(:name) @region = args[:region] if args.key?(:region) @status = args[:status] if args.key?(:status) end end # class PublicDelegatedPrefixesScopedList include Google::Apis::Core::Hashable # [Output Only] A list of PublicDelegatedPrefixes contained in this scope. # Corresponds to the JSON property `publicDelegatedPrefixes` # @return [Array] attr_accessor :public_delegated_prefixes # [Output Only] Informational warning which replaces the list of public # delegated prefixes when the list is empty. # Corresponds to the JSON property `warning` # @return [Google::Apis::ComputeAlpha::PublicDelegatedPrefixesScopedList::Warning] attr_accessor :warning def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @public_delegated_prefixes = args[:public_delegated_prefixes] if args.key?(:public_delegated_prefixes) @warning = args[:warning] if args.key?(:warning) end # [Output Only] Informational warning which replaces the list of public # delegated prefixes when the list is empty. class Warning include Google::Apis::Core::Hashable # [Output Only] A warning code, if applicable. For example, Compute Engine # returns NO_RESULTS_ON_PAGE if there are no results in the response. # Corresponds to the JSON property `code` # @return [String] attr_accessor :code # [Output Only] Metadata about this warning in key: value format. For example: " # data": [ ` "key": "scope", "value": "zones/us-east1-d" ` # Corresponds to the JSON property `data` # @return [Array] attr_accessor :data # [Output Only] A human-readable description of the warning code. # Corresponds to the JSON property `message` # @return [String] attr_accessor :message def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @code = args[:code] if args.key?(:code) @data = args[:data] if args.key?(:data) @message = args[:message] if args.key?(:message) end # class Datum include Google::Apis::Core::Hashable # [Output Only] A key that provides more detail on the warning being returned. # For example, for warnings where there are no results in a list request for a # particular zone, this key might be scope and the key value might be the zone # name. Other examples might be a key indicating a deprecated resource and a # suggested replacement, or a warning about invalid network settings (for # example, if an instance attempts to perform IP forwarding but is not enabled # for IP forwarding). # Corresponds to the JSON property `key` # @return [String] attr_accessor :key # [Output Only] A warning data value corresponding to the key. # 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 end end # A quotas entry. class Quota include Google::Apis::Core::Hashable # [Output Only] Quota limit for this metric. # Corresponds to the JSON property `limit` # @return [Float] attr_accessor :limit # [Output Only] Name of the quota metric. # Corresponds to the JSON property `metric` # @return [String] attr_accessor :metric # [Output Only] Owning resource. This is the resource on which this quota is # applied. # Corresponds to the JSON property `owner` # @return [String] attr_accessor :owner # [Output Only] Current usage of this metric. # Corresponds to the JSON property `usage` # @return [Float] attr_accessor :usage def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @limit = args[:limit] if args.key?(:limit) @metric = args[:metric] if args.key?(:metric) @owner = args[:owner] if args.key?(:owner) @usage = args[:usage] if args.key?(:usage) end end # class RbacPolicy include Google::Apis::Core::Hashable # Name of the RbacPolicy. # Corresponds to the JSON property `name` # @return [String] attr_accessor :name # The list of permissions. # Corresponds to the JSON property `permissions` # @return [Array] attr_accessor :permissions # The list of principals. # Corresponds to the JSON property `principals` # @return [Array] attr_accessor :principals def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @name = args[:name] if args.key?(:name) @permissions = args[:permissions] if args.key?(:permissions) @principals = args[:principals] if args.key?(:principals) end end # Represents a reference to a resource. class Reference include Google::Apis::Core::Hashable # [Output Only] Type of the resource. Always compute#reference for references. # Corresponds to the JSON property `kind` # @return [String] attr_accessor :kind # A description of the reference type with no implied semantics. Possible values # include: 1. MEMBER_OF # Corresponds to the JSON property `referenceType` # @return [String] attr_accessor :reference_type # URL of the resource which refers to the target. # Corresponds to the JSON property `referrer` # @return [String] attr_accessor :referrer # URL of the resource to which this reference points. # Corresponds to the JSON property `target` # @return [String] attr_accessor :target def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @kind = args[:kind] if args.key?(:kind) @reference_type = args[:reference_type] if args.key?(:reference_type) @referrer = args[:referrer] if args.key?(:referrer) @target = args[:target] if args.key?(:target) end end # Represents a Region resource. A region is a geographical area where a resource # is located. For more information, read Regions and Zones. class Region include Google::Apis::Core::Hashable # [Output Only] Creation timestamp in RFC3339 text format. # Corresponds to the JSON property `creationTimestamp` # @return [String] attr_accessor :creation_timestamp # Deprecation status for a public resource. # Corresponds to the JSON property `deprecated` # @return [Google::Apis::ComputeAlpha::DeprecationStatus] attr_accessor :deprecated # [Output Only] Textual description of the resource. # Corresponds to the JSON property `description` # @return [String] attr_accessor :description # [Output Only] The unique identifier for the resource. This identifier is # defined by the server. # Corresponds to the JSON property `id` # @return [Fixnum] attr_accessor :id # [Output Only] Type of the resource. Always compute#region for regions. # Corresponds to the JSON property `kind` # @return [String] attr_accessor :kind # [Output Only] Name of the resource. # Corresponds to the JSON property `name` # @return [String] attr_accessor :name # [Output Only] Quotas assigned to this region. # Corresponds to the JSON property `quotas` # @return [Array] attr_accessor :quotas # [Output Only] Server-defined URL for the resource. # Corresponds to the JSON property `selfLink` # @return [String] attr_accessor :self_link # [Output Only] Server-defined URL for this resource with the resource id. # Corresponds to the JSON property `selfLinkWithId` # @return [String] attr_accessor :self_link_with_id # [Output Only] Status of the region, either UP or DOWN. # Corresponds to the JSON property `status` # @return [String] attr_accessor :status # [Output Only] Reserved for future use. # Corresponds to the JSON property `supportsPzs` # @return [Boolean] attr_accessor :supports_pzs alias_method :supports_pzs?, :supports_pzs # [Output Only] A list of zones available in this region, in the form of # resource URLs. # Corresponds to the JSON property `zones` # @return [Array] attr_accessor :zones def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @creation_timestamp = args[:creation_timestamp] if args.key?(:creation_timestamp) @deprecated = args[:deprecated] if args.key?(:deprecated) @description = args[:description] if args.key?(:description) @id = args[:id] if args.key?(:id) @kind = args[:kind] if args.key?(:kind) @name = args[:name] if args.key?(:name) @quotas = args[:quotas] if args.key?(:quotas) @self_link = args[:self_link] if args.key?(:self_link) @self_link_with_id = args[:self_link_with_id] if args.key?(:self_link_with_id) @status = args[:status] if args.key?(:status) @supports_pzs = args[:supports_pzs] if args.key?(:supports_pzs) @zones = args[:zones] if args.key?(:zones) end end # Contains a list of autoscalers. class RegionAutoscalerList include Google::Apis::Core::Hashable # [Output Only] Unique identifier for the resource; defined by the server. # Corresponds to the JSON property `id` # @return [String] attr_accessor :id # A list of Autoscaler resources. # Corresponds to the JSON property `items` # @return [Array] attr_accessor :items # Type of resource. # Corresponds to the JSON property `kind` # @return [String] attr_accessor :kind # [Output Only] This token allows you to get the next page of results for list # requests. If the number of results is larger than maxResults, use the # nextPageToken as a value for the query parameter pageToken in the next list # request. Subsequent list requests will have their own nextPageToken to # continue paging through the results. # Corresponds to the JSON property `nextPageToken` # @return [String] attr_accessor :next_page_token # [Output Only] Server-defined URL for this resource. # Corresponds to the JSON property `selfLink` # @return [String] attr_accessor :self_link # [Output Only] Informational warning message. # Corresponds to the JSON property `warning` # @return [Google::Apis::ComputeAlpha::RegionAutoscalerList::Warning] attr_accessor :warning def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @id = args[:id] if args.key?(:id) @items = args[:items] if args.key?(:items) @kind = args[:kind] if args.key?(:kind) @next_page_token = args[:next_page_token] if args.key?(:next_page_token) @self_link = args[:self_link] if args.key?(:self_link) @warning = args[:warning] if args.key?(:warning) end # [Output Only] Informational warning message. class Warning include Google::Apis::Core::Hashable # [Output Only] A warning code, if applicable. For example, Compute Engine # returns NO_RESULTS_ON_PAGE if there are no results in the response. # Corresponds to the JSON property `code` # @return [String] attr_accessor :code # [Output Only] Metadata about this warning in key: value format. For example: " # data": [ ` "key": "scope", "value": "zones/us-east1-d" ` # Corresponds to the JSON property `data` # @return [Array] attr_accessor :data # [Output Only] A human-readable description of the warning code. # Corresponds to the JSON property `message` # @return [String] attr_accessor :message def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @code = args[:code] if args.key?(:code) @data = args[:data] if args.key?(:data) @message = args[:message] if args.key?(:message) end # class Datum include Google::Apis::Core::Hashable # [Output Only] A key that provides more detail on the warning being returned. # For example, for warnings where there are no results in a list request for a # particular zone, this key might be scope and the key value might be the zone # name. Other examples might be a key indicating a deprecated resource and a # suggested replacement, or a warning about invalid network settings (for # example, if an instance attempts to perform IP forwarding but is not enabled # for IP forwarding). # Corresponds to the JSON property `key` # @return [String] attr_accessor :key # [Output Only] A warning data value corresponding to the key. # 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 end end # class RegionCommitmentsUpdateReservationsRequest include Google::Apis::Core::Hashable # A list of two reservations to transfer GPUs and local SSD between. # Corresponds to the JSON property `reservations` # @return [Array] attr_accessor :reservations def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @reservations = args[:reservations] if args.key?(:reservations) end end # class RegionDiskTypeList include Google::Apis::Core::Hashable # [Output Only] Unique identifier for the resource; defined by the server. # Corresponds to the JSON property `id` # @return [String] attr_accessor :id # A list of DiskType resources. # Corresponds to the JSON property `items` # @return [Array] attr_accessor :items # [Output Only] Type of resource. Always compute#regionDiskTypeList for region # disk types. # Corresponds to the JSON property `kind` # @return [String] attr_accessor :kind # [Output Only] This token allows you to get the next page of results for list # requests. If the number of results is larger than maxResults, use the # nextPageToken as a value for the query parameter pageToken in the next list # request. Subsequent list requests will have their own nextPageToken to # continue paging through the results. # Corresponds to the JSON property `nextPageToken` # @return [String] attr_accessor :next_page_token # [Output Only] Server-defined URL for this resource. # Corresponds to the JSON property `selfLink` # @return [String] attr_accessor :self_link # [Output Only] Informational warning message. # Corresponds to the JSON property `warning` # @return [Google::Apis::ComputeAlpha::RegionDiskTypeList::Warning] attr_accessor :warning def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @id = args[:id] if args.key?(:id) @items = args[:items] if args.key?(:items) @kind = args[:kind] if args.key?(:kind) @next_page_token = args[:next_page_token] if args.key?(:next_page_token) @self_link = args[:self_link] if args.key?(:self_link) @warning = args[:warning] if args.key?(:warning) end # [Output Only] Informational warning message. class Warning include Google::Apis::Core::Hashable # [Output Only] A warning code, if applicable. For example, Compute Engine # returns NO_RESULTS_ON_PAGE if there are no results in the response. # Corresponds to the JSON property `code` # @return [String] attr_accessor :code # [Output Only] Metadata about this warning in key: value format. For example: " # data": [ ` "key": "scope", "value": "zones/us-east1-d" ` # Corresponds to the JSON property `data` # @return [Array] attr_accessor :data # [Output Only] A human-readable description of the warning code. # Corresponds to the JSON property `message` # @return [String] attr_accessor :message def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @code = args[:code] if args.key?(:code) @data = args[:data] if args.key?(:data) @message = args[:message] if args.key?(:message) end # class Datum include Google::Apis::Core::Hashable # [Output Only] A key that provides more detail on the warning being returned. # For example, for warnings where there are no results in a list request for a # particular zone, this key might be scope and the key value might be the zone # name. Other examples might be a key indicating a deprecated resource and a # suggested replacement, or a warning about invalid network settings (for # example, if an instance attempts to perform IP forwarding but is not enabled # for IP forwarding). # Corresponds to the JSON property `key` # @return [String] attr_accessor :key # [Output Only] A warning data value corresponding to the key. # 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 end end # class RegionDisksAddResourcePoliciesRequest include Google::Apis::Core::Hashable # Resource policies to be added to this disk. # Corresponds to the JSON property `resourcePolicies` # @return [Array] attr_accessor :resource_policies def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @resource_policies = args[:resource_policies] if args.key?(:resource_policies) end end # class RegionDisksRemoveResourcePoliciesRequest include Google::Apis::Core::Hashable # Resource policies to be removed from this disk. # Corresponds to the JSON property `resourcePolicies` # @return [Array] attr_accessor :resource_policies def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @resource_policies = args[:resource_policies] if args.key?(:resource_policies) end end # class RegionDisksResizeRequest include Google::Apis::Core::Hashable # The new size of the regional persistent disk, which is specified in GB. # Corresponds to the JSON property `sizeGb` # @return [Fixnum] attr_accessor :size_gb def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @size_gb = args[:size_gb] if args.key?(:size_gb) end end # class RegionDisksStartAsyncReplicationRequest include Google::Apis::Core::Hashable # The secondary disk to start asynchronous replication to. You can provide this # as a partial or full URL to the resource. For example, the following are valid # values: - https://www.googleapis.com/compute/v1/projects/project/zones/zone / # disks/disk - https://www.googleapis.com/compute/v1/projects/project/regions/ # region /disks/disk - projects/project/zones/zone/disks/disk - projects/project/ # regions/region/disks/disk - zones/zone/disks/disk - regions/region/disks/disk # Corresponds to the JSON property `asyncSecondaryDisk` # @return [String] attr_accessor :async_secondary_disk def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @async_secondary_disk = args[:async_secondary_disk] if args.key?(:async_secondary_disk) end end # class RegionDisksStopAsyncReplicationRequest include Google::Apis::Core::Hashable # The secondary disk to stop asynchronous replication to. Supplied if and only # if the target disk is a primary disk in an asynchronously replicated pair. You # can provide this as a partial or full URL to the resource. For example, the # following are valid values: - https://www.googleapis.com/compute/v1/projects/ # project/zones/zone /disks/disk - https://www.googleapis.com/compute/v1/ # projects/project/regions/region /disks/disk - projects/project/zones/zone/ # disks/disk - projects/project/regions/region/disks/disk - zones/zone/disks/ # disk - regions/region/disks/disk # Corresponds to the JSON property `asyncSecondaryDisk` # @return [String] attr_accessor :async_secondary_disk def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @async_secondary_disk = args[:async_secondary_disk] if args.key?(:async_secondary_disk) end end # class RegionDisksStopGroupAsyncReplicationRequest include Google::Apis::Core::Hashable # The URL of the DiskConsistencyGroupPolicy for the group of disks to stop. This # may be a full or partial URL, such as: - https://www.googleapis.com/compute/v1/ # projects/project/regions/region /resourcePolicies/resourcePolicy - projects/ # project/regions/region/resourcePolicies/resourcePolicy - regions/region/ # resourcePolicies/resourcePolicy # Corresponds to the JSON property `resourcePolicy` # @return [String] attr_accessor :resource_policy def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @resource_policy = args[:resource_policy] if args.key?(:resource_policy) end end # Contains a list of InstanceGroup resources. class RegionInstanceGroupList include Google::Apis::Core::Hashable # [Output Only] Unique identifier for the resource; defined by the server. # Corresponds to the JSON property `id` # @return [String] attr_accessor :id # A list of InstanceGroup resources. # Corresponds to the JSON property `items` # @return [Array] attr_accessor :items # The resource type. # Corresponds to the JSON property `kind` # @return [String] attr_accessor :kind # [Output Only] This token allows you to get the next page of results for list # requests. If the number of results is larger than maxResults, use the # nextPageToken as a value for the query parameter pageToken in the next list # request. Subsequent list requests will have their own nextPageToken to # continue paging through the results. # Corresponds to the JSON property `nextPageToken` # @return [String] attr_accessor :next_page_token # [Output Only] Server-defined URL for this resource. # Corresponds to the JSON property `selfLink` # @return [String] attr_accessor :self_link # [Output Only] Informational warning message. # Corresponds to the JSON property `warning` # @return [Google::Apis::ComputeAlpha::RegionInstanceGroupList::Warning] attr_accessor :warning def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @id = args[:id] if args.key?(:id) @items = args[:items] if args.key?(:items) @kind = args[:kind] if args.key?(:kind) @next_page_token = args[:next_page_token] if args.key?(:next_page_token) @self_link = args[:self_link] if args.key?(:self_link) @warning = args[:warning] if args.key?(:warning) end # [Output Only] Informational warning message. class Warning include Google::Apis::Core::Hashable # [Output Only] A warning code, if applicable. For example, Compute Engine # returns NO_RESULTS_ON_PAGE if there are no results in the response. # Corresponds to the JSON property `code` # @return [String] attr_accessor :code # [Output Only] Metadata about this warning in key: value format. For example: " # data": [ ` "key": "scope", "value": "zones/us-east1-d" ` # Corresponds to the JSON property `data` # @return [Array] attr_accessor :data # [Output Only] A human-readable description of the warning code. # Corresponds to the JSON property `message` # @return [String] attr_accessor :message def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @code = args[:code] if args.key?(:code) @data = args[:data] if args.key?(:data) @message = args[:message] if args.key?(:message) end # class Datum include Google::Apis::Core::Hashable # [Output Only] A key that provides more detail on the warning being returned. # For example, for warnings where there are no results in a list request for a # particular zone, this key might be scope and the key value might be the zone # name. Other examples might be a key indicating a deprecated resource and a # suggested replacement, or a warning about invalid network settings (for # example, if an instance attempts to perform IP forwarding but is not enabled # for IP forwarding). # Corresponds to the JSON property `key` # @return [String] attr_accessor :key # [Output Only] A warning data value corresponding to the key. # 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 end end # RegionInstanceGroupManagers.deletePerInstanceConfigs class RegionInstanceGroupManagerDeleteInstanceConfigReq include Google::Apis::Core::Hashable # The list of instance names for which we want to delete per-instance configs on # this managed instance group. # Corresponds to the JSON property `names` # @return [Array] attr_accessor :names def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @names = args[:names] if args.key?(:names) end end # Contains a list of managed instance groups. class RegionInstanceGroupManagerList include Google::Apis::Core::Hashable # [Output Only] Unique identifier for the resource; defined by the server. # Corresponds to the JSON property `id` # @return [String] attr_accessor :id # A list of InstanceGroupManager resources. # Corresponds to the JSON property `items` # @return [Array] attr_accessor :items # [Output Only] The resource type, which is always compute# # instanceGroupManagerList for a list of managed instance groups that exist in # th regional scope. # Corresponds to the JSON property `kind` # @return [String] attr_accessor :kind # [Output Only] This token allows you to get the next page of results for list # requests. If the number of results is larger than maxResults, use the # nextPageToken as a value for the query parameter pageToken in the next list # request. Subsequent list requests will have their own nextPageToken to # continue paging through the results. # Corresponds to the JSON property `nextPageToken` # @return [String] attr_accessor :next_page_token # [Output Only] Server-defined URL for this resource. # Corresponds to the JSON property `selfLink` # @return [String] attr_accessor :self_link # [Output Only] Informational warning message. # Corresponds to the JSON property `warning` # @return [Google::Apis::ComputeAlpha::RegionInstanceGroupManagerList::Warning] attr_accessor :warning def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @id = args[:id] if args.key?(:id) @items = args[:items] if args.key?(:items) @kind = args[:kind] if args.key?(:kind) @next_page_token = args[:next_page_token] if args.key?(:next_page_token) @self_link = args[:self_link] if args.key?(:self_link) @warning = args[:warning] if args.key?(:warning) end # [Output Only] Informational warning message. class Warning include Google::Apis::Core::Hashable # [Output Only] A warning code, if applicable. For example, Compute Engine # returns NO_RESULTS_ON_PAGE if there are no results in the response. # Corresponds to the JSON property `code` # @return [String] attr_accessor :code # [Output Only] Metadata about this warning in key: value format. For example: " # data": [ ` "key": "scope", "value": "zones/us-east1-d" ` # Corresponds to the JSON property `data` # @return [Array] attr_accessor :data # [Output Only] A human-readable description of the warning code. # Corresponds to the JSON property `message` # @return [String] attr_accessor :message def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @code = args[:code] if args.key?(:code) @data = args[:data] if args.key?(:data) @message = args[:message] if args.key?(:message) end # class Datum include Google::Apis::Core::Hashable # [Output Only] A key that provides more detail on the warning being returned. # For example, for warnings where there are no results in a list request for a # particular zone, this key might be scope and the key value might be the zone # name. Other examples might be a key indicating a deprecated resource and a # suggested replacement, or a warning about invalid network settings (for # example, if an instance attempts to perform IP forwarding but is not enabled # for IP forwarding). # Corresponds to the JSON property `key` # @return [String] attr_accessor :key # [Output Only] A warning data value corresponding to the key. # 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 end end # RegionInstanceGroupManagers.patchPerInstanceConfigs class RegionInstanceGroupManagerPatchInstanceConfigReq include Google::Apis::Core::Hashable # The list of per-instance configs to insert or patch on this managed instance # group. # Corresponds to the JSON property `perInstanceConfigs` # @return [Array] attr_accessor :per_instance_configs def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @per_instance_configs = args[:per_instance_configs] if args.key?(:per_instance_configs) end end # RegionInstanceGroupManagers.updatePerInstanceConfigs class RegionInstanceGroupManagerUpdateInstanceConfigReq include Google::Apis::Core::Hashable # The list of per-instance configs to insert or patch on this managed instance # group. # Corresponds to the JSON property `perInstanceConfigs` # @return [Array] attr_accessor :per_instance_configs def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @per_instance_configs = args[:per_instance_configs] if args.key?(:per_instance_configs) end end # class RegionInstanceGroupManagersAbandonInstancesRequest include Google::Apis::Core::Hashable # The URLs of one or more instances to abandon. This can be a full URL or a # partial URL, such as zones/[ZONE]/instances/[INSTANCE_NAME]. # Corresponds to the JSON property `instances` # @return [Array] attr_accessor :instances def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @instances = args[:instances] if args.key?(:instances) end end # RegionInstanceGroupManagers.applyUpdatesToInstances class RegionInstanceGroupManagersApplyUpdatesRequest include Google::Apis::Core::Hashable # Flag to update all instances instead of specified list of “instances”. If the # flag is set to true then the instances may not be specified in the request. # Corresponds to the JSON property `allInstances` # @return [Boolean] attr_accessor :all_instances alias_method :all_instances?, :all_instances # The list of URLs of one or more instances for which you want to apply updates. # Each URL can be a full URL or a partial URL, such as zones/[ZONE]/instances/[ # INSTANCE_NAME]. # Corresponds to the JSON property `instances` # @return [Array] attr_accessor :instances # The maximal action that should be performed on the instances. By default # REPLACE. This field is deprecated, please use most_disruptive_allowed_action. # Corresponds to the JSON property `maximalAction` # @return [String] attr_accessor :maximal_action # The minimal action that you want to perform on each instance during the update: # - REPLACE: At minimum, delete the instance and create it again. - RESTART: # Stop the instance and start it again. - REFRESH: Do not stop the instance. - # NONE: Do not disrupt the instance at all. By default, the minimum action is # NONE. If your update requires a more disruptive action than you set with this # flag, the necessary action is performed to execute the update. # Corresponds to the JSON property `minimalAction` # @return [String] attr_accessor :minimal_action # The most disruptive action that you want to perform on each instance during # the update: - REPLACE: Delete the instance and create it again. - RESTART: # Stop the instance and start it again. - REFRESH: Do not stop the instance. - # NONE: Do not disrupt the instance at all. By default, the most disruptive # allowed action is REPLACE. If your update requires a more disruptive action # than you set with this flag, the update request will fail. # Corresponds to the JSON property `mostDisruptiveAllowedAction` # @return [String] attr_accessor :most_disruptive_allowed_action def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @all_instances = args[:all_instances] if args.key?(:all_instances) @instances = args[:instances] if args.key?(:instances) @maximal_action = args[:maximal_action] if args.key?(:maximal_action) @minimal_action = args[:minimal_action] if args.key?(:minimal_action) @most_disruptive_allowed_action = args[:most_disruptive_allowed_action] if args.key?(:most_disruptive_allowed_action) end end # RegionInstanceGroupManagers.createInstances class RegionInstanceGroupManagersCreateInstancesRequest include Google::Apis::Core::Hashable # [Required] List of specifications of per-instance configs. # Corresponds to the JSON property `instances` # @return [Array] attr_accessor :instances def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @instances = args[:instances] if args.key?(:instances) end end # class RegionInstanceGroupManagersDeleteInstancesRequest include Google::Apis::Core::Hashable # The URLs of one or more instances to delete. This can be a full URL or a # partial URL, such as zones/[ZONE]/instances/[INSTANCE_NAME]. # Corresponds to the JSON property `instances` # @return [Array] attr_accessor :instances # Skip instances which cannot be deleted (instances not belonging to this # managed group, already being deleted or being abandoned). If `false`, fail # whole flow, if such instance is passed. DEPRECATED: Use # skip_instances_on_validation_error instead. # Corresponds to the JSON property `skipInapplicableInstances` # @return [Boolean] attr_accessor :skip_inapplicable_instances alias_method :skip_inapplicable_instances?, :skip_inapplicable_instances # Specifies whether the request should proceed despite the inclusion of # instances that are not members of the group or that are already in the process # of being deleted or abandoned. If this field is set to `false` and such an # instance is specified in the request, the operation fails. The operation # always fails if the request contains a malformed instance URL or a reference # to an instance that exists in a zone or region other than the group's zone or # region. # Corresponds to the JSON property `skipInstancesOnValidationError` # @return [Boolean] attr_accessor :skip_instances_on_validation_error alias_method :skip_instances_on_validation_error?, :skip_instances_on_validation_error def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @instances = args[:instances] if args.key?(:instances) @skip_inapplicable_instances = args[:skip_inapplicable_instances] if args.key?(:skip_inapplicable_instances) @skip_instances_on_validation_error = args[:skip_instances_on_validation_error] if args.key?(:skip_instances_on_validation_error) end end # class RegionInstanceGroupManagersListErrorsResponse include Google::Apis::Core::Hashable # [Output Only] The list of errors of the managed instance group. # Corresponds to the JSON property `items` # @return [Array] attr_accessor :items # [Output Only] This token allows you to get the next page of results for list # requests. If the number of results is larger than maxResults, use the # nextPageToken as a value for the query parameter pageToken in the next list # request. Subsequent list requests will have their own nextPageToken to # continue paging through the results. # Corresponds to the JSON property `nextPageToken` # @return [String] attr_accessor :next_page_token def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @items = args[:items] if args.key?(:items) @next_page_token = args[:next_page_token] if args.key?(:next_page_token) end end # class RegionInstanceGroupManagersListInstanceConfigsResp include Google::Apis::Core::Hashable # [Output Only] The list of PerInstanceConfig. # Corresponds to the JSON property `items` # @return [Array] attr_accessor :items # [Output Only] This token allows you to get the next page of results for list # requests. If the number of results is larger than maxResults, use the # nextPageToken as a value for the query parameter pageToken in the next list # request. Subsequent list requests will have their own nextPageToken to # continue paging through the results. # Corresponds to the JSON property `nextPageToken` # @return [String] attr_accessor :next_page_token # [Output Only] Informational warning message. # Corresponds to the JSON property `warning` # @return [Google::Apis::ComputeAlpha::RegionInstanceGroupManagersListInstanceConfigsResp::Warning] attr_accessor :warning def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @items = args[:items] if args.key?(:items) @next_page_token = args[:next_page_token] if args.key?(:next_page_token) @warning = args[:warning] if args.key?(:warning) end # [Output Only] Informational warning message. class Warning include Google::Apis::Core::Hashable # [Output Only] A warning code, if applicable. For example, Compute Engine # returns NO_RESULTS_ON_PAGE if there are no results in the response. # Corresponds to the JSON property `code` # @return [String] attr_accessor :code # [Output Only] Metadata about this warning in key: value format. For example: " # data": [ ` "key": "scope", "value": "zones/us-east1-d" ` # Corresponds to the JSON property `data` # @return [Array] attr_accessor :data # [Output Only] A human-readable description of the warning code. # Corresponds to the JSON property `message` # @return [String] attr_accessor :message def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @code = args[:code] if args.key?(:code) @data = args[:data] if args.key?(:data) @message = args[:message] if args.key?(:message) end # class Datum include Google::Apis::Core::Hashable # [Output Only] A key that provides more detail on the warning being returned. # For example, for warnings where there are no results in a list request for a # particular zone, this key might be scope and the key value might be the zone # name. Other examples might be a key indicating a deprecated resource and a # suggested replacement, or a warning about invalid network settings (for # example, if an instance attempts to perform IP forwarding but is not enabled # for IP forwarding). # Corresponds to the JSON property `key` # @return [String] attr_accessor :key # [Output Only] A warning data value corresponding to the key. # 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 end end # class RegionInstanceGroupManagersListInstancesResponse include Google::Apis::Core::Hashable # A list of managed instances. # Corresponds to the JSON property `managedInstances` # @return [Array] attr_accessor :managed_instances # [Output Only] This token allows you to get the next page of results for list # requests. If the number of results is larger than maxResults, use the # nextPageToken as a value for the query parameter pageToken in the next list # request. Subsequent list requests will have their own nextPageToken to # continue paging through the results. # Corresponds to the JSON property `nextPageToken` # @return [String] attr_accessor :next_page_token def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @managed_instances = args[:managed_instances] if args.key?(:managed_instances) @next_page_token = args[:next_page_token] if args.key?(:next_page_token) end end # class RegionInstanceGroupManagersRecreateRequest include Google::Apis::Core::Hashable # The URLs of one or more instances to recreate. This can be a full URL or a # partial URL, such as zones/[ZONE]/instances/[INSTANCE_NAME]. # Corresponds to the JSON property `instances` # @return [Array] attr_accessor :instances def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @instances = args[:instances] if args.key?(:instances) end end # class RegionInstanceGroupManagersResizeAdvancedRequest include Google::Apis::Core::Hashable # If this flag is true, the managed instance group attempts to create all # instances initiated by this resize request only once. If there is an error # during creation, the managed instance group does not retry create this # instance, and we will decrease the targetSize of the request instead. If the # flag is false, the group attempts to recreate each instance continuously until # it succeeds. This flag matters only in the first attempt of creation of an # instance. After an instance is successfully created while this flag is enabled, # the instance behaves the same way as all the other instances created with a # regular resize request. In particular, if a running instance dies unexpectedly # at a later time and needs to be recreated, this mode does not affect the # recreation behavior in that scenario. This flag is applicable only to the # current resize request. It does not influence other resize requests in any way. # You can see which instances ar being created in which mode by calling the get # or listManagedInstances API. # Corresponds to the JSON property `noCreationRetries` # @return [Boolean] attr_accessor :no_creation_retries alias_method :no_creation_retries?, :no_creation_retries # The number of running instances that the managed instance group should # maintain at any given time. The group automatically adds or removes instances # to maintain the number of instances specified by this parameter. # Corresponds to the JSON property `targetSize` # @return [Fixnum] attr_accessor :target_size def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @no_creation_retries = args[:no_creation_retries] if args.key?(:no_creation_retries) @target_size = args[:target_size] if args.key?(:target_size) end end # class RegionInstanceGroupManagersResumeInstancesRequest include Google::Apis::Core::Hashable # The URLs of one or more instances to resume. This can be a full URL or a # partial URL, such as zones/[ZONE]/instances/[INSTANCE_NAME]. # Corresponds to the JSON property `instances` # @return [Array] attr_accessor :instances def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @instances = args[:instances] if args.key?(:instances) end end # class RegionInstanceGroupManagersSetAutoHealingRequest include Google::Apis::Core::Hashable # # Corresponds to the JSON property `autoHealingPolicies` # @return [Array] attr_accessor :auto_healing_policies def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @auto_healing_policies = args[:auto_healing_policies] if args.key?(:auto_healing_policies) end end # class RegionInstanceGroupManagersSetTargetPoolsRequest include Google::Apis::Core::Hashable # Fingerprint of the target pools information, which is a hash of the contents. # This field is used for optimistic locking when you update the target pool # entries. This field is optional. # Corresponds to the JSON property `fingerprint` # NOTE: Values are automatically base64 encoded/decoded in the client library. # @return [String] attr_accessor :fingerprint # The URL of all TargetPool resources to which instances in the instanceGroup # field are added. The target pools automatically apply to all of the instances # in the managed instance group. # Corresponds to the JSON property `targetPools` # @return [Array] attr_accessor :target_pools def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @fingerprint = args[:fingerprint] if args.key?(:fingerprint) @target_pools = args[:target_pools] if args.key?(:target_pools) end end # class RegionInstanceGroupManagersSetTemplateRequest include Google::Apis::Core::Hashable # URL of the InstanceTemplate resource from which all new instances will be # created. # Corresponds to the JSON property `instanceTemplate` # @return [String] attr_accessor :instance_template def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @instance_template = args[:instance_template] if args.key?(:instance_template) end end # class RegionInstanceGroupManagersStartInstancesRequest include Google::Apis::Core::Hashable # The URLs of one or more instances to start. This can be a full URL or a # partial URL, such as zones/[ZONE]/instances/[INSTANCE_NAME]. # Corresponds to the JSON property `instances` # @return [Array] attr_accessor :instances def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @instances = args[:instances] if args.key?(:instances) end end # class RegionInstanceGroupManagersStopInstancesRequest include Google::Apis::Core::Hashable # If this flag is set to true, the Instance Group Manager will proceed to stop # the instances, skipping initialization on them. # Corresponds to the JSON property `forceStop` # @return [Boolean] attr_accessor :force_stop alias_method :force_stop?, :force_stop # The URLs of one or more instances to stop. This can be a full URL or a partial # URL, such as zones/[ZONE]/instances/[INSTANCE_NAME]. # Corresponds to the JSON property `instances` # @return [Array] attr_accessor :instances def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @force_stop = args[:force_stop] if args.key?(:force_stop) @instances = args[:instances] if args.key?(:instances) end end # class RegionInstanceGroupManagersSuspendInstancesRequest include Google::Apis::Core::Hashable # If this flag is set to true, the Instance Group Manager will proceed to # suspend the instances, skipping initialization on them. # Corresponds to the JSON property `forceSuspend` # @return [Boolean] attr_accessor :force_suspend alias_method :force_suspend?, :force_suspend # The URLs of one or more instances to suspend. This can be a full URL or a # partial URL, such as zones/[ZONE]/instances/[INSTANCE_NAME]. # Corresponds to the JSON property `instances` # @return [Array] attr_accessor :instances def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @force_suspend = args[:force_suspend] if args.key?(:force_suspend) @instances = args[:instances] if args.key?(:instances) end end # class RegionInstanceGroupsListInstances include Google::Apis::Core::Hashable # [Output Only] Unique identifier for the resource; defined by the server. # Corresponds to the JSON property `id` # @return [String] attr_accessor :id # A list of InstanceWithNamedPorts resources. # Corresponds to the JSON property `items` # @return [Array] attr_accessor :items # The resource type. # Corresponds to the JSON property `kind` # @return [String] attr_accessor :kind # [Output Only] This token allows you to get the next page of results for list # requests. If the number of results is larger than maxResults, use the # nextPageToken as a value for the query parameter pageToken in the next list # request. Subsequent list requests will have their own nextPageToken to # continue paging through the results. # Corresponds to the JSON property `nextPageToken` # @return [String] attr_accessor :next_page_token # [Output Only] Server-defined URL for this resource. # Corresponds to the JSON property `selfLink` # @return [String] attr_accessor :self_link # [Output Only] Informational warning message. # Corresponds to the JSON property `warning` # @return [Google::Apis::ComputeAlpha::RegionInstanceGroupsListInstances::Warning] attr_accessor :warning def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @id = args[:id] if args.key?(:id) @items = args[:items] if args.key?(:items) @kind = args[:kind] if args.key?(:kind) @next_page_token = args[:next_page_token] if args.key?(:next_page_token) @self_link = args[:self_link] if args.key?(:self_link) @warning = args[:warning] if args.key?(:warning) end # [Output Only] Informational warning message. class Warning include Google::Apis::Core::Hashable # [Output Only] A warning code, if applicable. For example, Compute Engine # returns NO_RESULTS_ON_PAGE if there are no results in the response. # Corresponds to the JSON property `code` # @return [String] attr_accessor :code # [Output Only] Metadata about this warning in key: value format. For example: " # data": [ ` "key": "scope", "value": "zones/us-east1-d" ` # Corresponds to the JSON property `data` # @return [Array] attr_accessor :data # [Output Only] A human-readable description of the warning code. # Corresponds to the JSON property `message` # @return [String] attr_accessor :message def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @code = args[:code] if args.key?(:code) @data = args[:data] if args.key?(:data) @message = args[:message] if args.key?(:message) end # class Datum include Google::Apis::Core::Hashable # [Output Only] A key that provides more detail on the warning being returned. # For example, for warnings where there are no results in a list request for a # particular zone, this key might be scope and the key value might be the zone # name. Other examples might be a key indicating a deprecated resource and a # suggested replacement, or a warning about invalid network settings (for # example, if an instance attempts to perform IP forwarding but is not enabled # for IP forwarding). # Corresponds to the JSON property `key` # @return [String] attr_accessor :key # [Output Only] A warning data value corresponding to the key. # 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 end end # class RegionInstanceGroupsListInstancesRequest include Google::Apis::Core::Hashable # Instances in which state should be returned. Valid options are: 'ALL', ' # RUNNING'. By default, it lists all instances. # Corresponds to the JSON property `instanceState` # @return [String] attr_accessor :instance_state # Name of port user is interested in. It is optional. If it is set, only # information about this ports will be returned. If it is not set, all the named # ports will be returned. Always lists all instances. # Corresponds to the JSON property `portName` # @return [String] attr_accessor :port_name def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @instance_state = args[:instance_state] if args.key?(:instance_state) @port_name = args[:port_name] if args.key?(:port_name) end end # class RegionInstanceGroupsSetNamedPortsRequest include Google::Apis::Core::Hashable # The fingerprint of the named ports information for this instance group. Use # this optional property to prevent conflicts when multiple users change the # named ports settings concurrently. Obtain the fingerprint with the # instanceGroups.get method. Then, include the fingerprint in your request to # ensure that you do not overwrite changes that were applied from another # concurrent request. # Corresponds to the JSON property `fingerprint` # NOTE: Values are automatically base64 encoded/decoded in the client library. # @return [String] attr_accessor :fingerprint # The list of named ports to set for this instance group. # Corresponds to the JSON property `namedPorts` # @return [Array] attr_accessor :named_ports def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @fingerprint = args[:fingerprint] if args.key?(:fingerprint) @named_ports = args[:named_ports] if args.key?(:named_ports) end end # class RegionInstantSnapshotsExportRequest include Google::Apis::Core::Hashable # Parameters to export the changed blocks. # Corresponds to the JSON property `exportParams` # @return [Google::Apis::ComputeAlpha::InstantSnapshotExportParams] attr_accessor :export_params def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @export_params = args[:export_params] if args.key?(:export_params) end end # Contains a list of region resources. class RegionList include Google::Apis::Core::Hashable # [Output Only] Unique identifier for the resource; defined by the server. # Corresponds to the JSON property `id` # @return [String] attr_accessor :id # A list of Region resources. # Corresponds to the JSON property `items` # @return [Array] attr_accessor :items # [Output Only] Type of resource. Always compute#regionList for lists of regions. # Corresponds to the JSON property `kind` # @return [String] attr_accessor :kind # [Output Only] This token allows you to get the next page of results for list # requests. If the number of results is larger than maxResults, use the # nextPageToken as a value for the query parameter pageToken in the next list # request. Subsequent list requests will have their own nextPageToken to # continue paging through the results. # Corresponds to the JSON property `nextPageToken` # @return [String] attr_accessor :next_page_token # [Output Only] Server-defined URL for this resource. # Corresponds to the JSON property `selfLink` # @return [String] attr_accessor :self_link # [Output Only] Informational warning message. # Corresponds to the JSON property `warning` # @return [Google::Apis::ComputeAlpha::RegionList::Warning] attr_accessor :warning def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @id = args[:id] if args.key?(:id) @items = args[:items] if args.key?(:items) @kind = args[:kind] if args.key?(:kind) @next_page_token = args[:next_page_token] if args.key?(:next_page_token) @self_link = args[:self_link] if args.key?(:self_link) @warning = args[:warning] if args.key?(:warning) end # [Output Only] Informational warning message. class Warning include Google::Apis::Core::Hashable # [Output Only] A warning code, if applicable. For example, Compute Engine # returns NO_RESULTS_ON_PAGE if there are no results in the response. # Corresponds to the JSON property `code` # @return [String] attr_accessor :code # [Output Only] Metadata about this warning in key: value format. For example: " # data": [ ` "key": "scope", "value": "zones/us-east1-d" ` # Corresponds to the JSON property `data` # @return [Array] attr_accessor :data # [Output Only] A human-readable description of the warning code. # Corresponds to the JSON property `message` # @return [String] attr_accessor :message def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @code = args[:code] if args.key?(:code) @data = args[:data] if args.key?(:data) @message = args[:message] if args.key?(:message) end # class Datum include Google::Apis::Core::Hashable # [Output Only] A key that provides more detail on the warning being returned. # For example, for warnings where there are no results in a list request for a # particular zone, this key might be scope and the key value might be the zone # name. Other examples might be a key indicating a deprecated resource and a # suggested replacement, or a warning about invalid network settings (for # example, if an instance attempts to perform IP forwarding but is not enabled # for IP forwarding). # Corresponds to the JSON property `key` # @return [String] attr_accessor :key # [Output Only] A warning data value corresponding to the key. # 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 end end # class RegionNetworkFirewallPoliciesGetEffectiveFirewallsResponse include Google::Apis::Core::Hashable # Effective firewalls from firewall policy. # Corresponds to the JSON property `firewallPolicys` # @return [Array] attr_accessor :firewall_policys # Effective firewalls on the network. # Corresponds to the JSON property `firewalls` # @return [Array] attr_accessor :firewalls def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @firewall_policys = args[:firewall_policys] if args.key?(:firewall_policys) @firewalls = args[:firewalls] if args.key?(:firewalls) end end # class RegionNetworkFirewallPoliciesGetEffectiveFirewallsResponseEffectiveFirewallPolicy include Google::Apis::Core::Hashable # [Output Only] The display name of the firewall policy. # Corresponds to the JSON property `displayName` # @return [String] attr_accessor :display_name # [Output Only] The name of the firewall policy. # Corresponds to the JSON property `name` # @return [String] attr_accessor :name # The rules that apply to the network. # Corresponds to the JSON property `rules` # @return [Array] attr_accessor :rules # [Output Only] The type of the firewall policy. Can be one of HIERARCHY, # NETWORK, NETWORK_REGIONAL. # 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) @display_name = args[:display_name] if args.key?(:display_name) @name = args[:name] if args.key?(:name) @rules = args[:rules] if args.key?(:rules) @type = args[:type] if args.key?(:type) end end # class RegionSetLabelsRequest include Google::Apis::Core::Hashable # The fingerprint of the previous set of labels for this resource, used to # detect conflicts. The fingerprint is initially generated by Compute Engine and # changes after every request to modify or update labels. You must always # provide an up-to-date fingerprint hash in order to update or change labels. # Make a get() request to the resource to get the latest fingerprint. # Corresponds to the JSON property `labelFingerprint` # NOTE: Values are automatically base64 encoded/decoded in the client library. # @return [String] attr_accessor :label_fingerprint # The labels to set for this resource. # Corresponds to the JSON property `labels` # @return [Hash] attr_accessor :labels def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @label_fingerprint = args[:label_fingerprint] if args.key?(:label_fingerprint) @labels = args[:labels] if args.key?(:labels) end end # class RegionSetPolicyRequest include Google::Apis::Core::Hashable # Flatten Policy to create a backwacd compatible wire-format. Deprecated. Use ' # policy' to specify bindings. # Corresponds to the JSON property `bindings` # @return [Array] attr_accessor :bindings # Flatten Policy to create a backward compatible wire-format. Deprecated. Use ' # policy' to specify the etag. # Corresponds to the JSON property `etag` # NOTE: Values are automatically base64 encoded/decoded in the client library. # @return [String] attr_accessor :etag # An Identity and Access Management (IAM) policy, which specifies access # controls for Google Cloud resources. A `Policy` is a collection of `bindings`. # A `binding` binds one or more `members`, or principals, to a single `role`. # Principals can be user accounts, service accounts, Google groups, and domains ( # such as G Suite). A `role` is a named list of permissions; each `role` can be # an IAM predefined role or a user-created custom role. For some types of Google # Cloud resources, a `binding` can also specify a `condition`, which is a # logical expression that allows access to a resource only if the expression # evaluates to `true`. A condition can add constraints based on attributes of # the request, the resource, or both. To learn which resources support # conditions in their IAM policies, see the [IAM documentation](https://cloud. # google.com/iam/help/conditions/resource-policies). **JSON example:** ` " # bindings": [ ` "role": "roles/resourcemanager.organizationAdmin", "members": [ # "user:mike@example.com", "group:admins@example.com", "domain:google.com", " # serviceAccount:my-project-id@appspot.gserviceaccount.com" ] `, ` "role": " # roles/resourcemanager.organizationViewer", "members": [ "user:eve@example.com" # ], "condition": ` "title": "expirable access", "description": "Does not grant # access after Sep 2020", "expression": "request.time < timestamp('2020-10-01T00: # 00:00.000Z')", ` ` ], "etag": "BwWWja0YfJA=", "version": 3 ` **YAML example:** # bindings: - members: - user:mike@example.com - group:admins@example.com - # domain:google.com - serviceAccount:my-project-id@appspot.gserviceaccount.com # role: roles/resourcemanager.organizationAdmin - members: - user:eve@example. # com role: roles/resourcemanager.organizationViewer condition: title: expirable # access description: Does not grant access after Sep 2020 expression: request. # time < timestamp('2020-10-01T00:00:00.000Z') etag: BwWWja0YfJA= version: 3 For # a description of IAM and its features, see the [IAM documentation](https:// # cloud.google.com/iam/docs/). # Corresponds to the JSON property `policy` # @return [Google::Apis::ComputeAlpha::Policy] attr_accessor :policy def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @bindings = args[:bindings] if args.key?(:bindings) @etag = args[:etag] if args.key?(:etag) @policy = args[:policy] if args.key?(:policy) end end # class RegionTargetHttpsProxiesSetSslCertificatesRequest include Google::Apis::Core::Hashable # New set of SslCertificate resources to associate with this TargetHttpsProxy # resource. Currently exactly one SslCertificate resource must be specified. # Corresponds to the JSON property `sslCertificates` # @return [Array] attr_accessor :ssl_certificates def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @ssl_certificates = args[:ssl_certificates] if args.key?(:ssl_certificates) end end # class RegionUrlMapsValidateRequest include Google::Apis::Core::Hashable # Represents a URL Map resource. Compute Engine has two URL Map resources: * [ # Global](/compute/docs/reference/rest/alpha/urlMaps) * [Regional](/compute/docs/ # reference/rest/alpha/regionUrlMaps) A URL map resource is a component of # certain types of cloud load balancers and Traffic Director: * urlMaps are used # by external HTTP(S) load balancers and Traffic Director. * regionUrlMaps are # used by internal HTTP(S) load balancers. For a list of supported URL map # features by the load balancer type, see the Load balancing features: Routing # and traffic management table. For a list of supported URL map features for # Traffic Director, see the Traffic Director features: Routing and traffic # management table. This resource defines mappings from hostnames and URL paths # to either a backend service or a backend bucket. To use the global urlMaps # resource, the backend service must have a loadBalancingScheme of either # EXTERNAL or INTERNAL_SELF_MANAGED. To use the regionUrlMaps resource, the # backend service must have a loadBalancingScheme of INTERNAL_MANAGED. For more # information, read URL Map Concepts. # Corresponds to the JSON property `resource` # @return [Google::Apis::ComputeAlpha::UrlMap] attr_accessor :resource def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @resource = args[:resource] if args.key?(:resource) end end # A policy that specifies how requests intended for the route's backends are # shadowed to a separate mirrored backend service. The load balancer doesn't # wait for responses from the shadow service. Before sending traffic to the # shadow service, the host or authority header is suffixed with -shadow. class RequestMirrorPolicy include Google::Apis::Core::Hashable # The full or partial URL to the BackendService resource being mirrored to. # Corresponds to the JSON property `backendService` # @return [String] attr_accessor :backend_service def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @backend_service = args[:backend_service] if args.key?(:backend_service) end end # Represents a reservation resource. A reservation ensures that capacity is held # in a specific zone even if the reserved VMs are not running. For more # information, read Reserving zonal resources. class Reservation include Google::Apis::Core::Hashable # [Output Only] Full or partial URL to a parent commitment. This field displays # for reservations that are tied to a commitment. # Corresponds to the JSON property `commitment` # @return [String] attr_accessor :commitment # [Output Only] Creation timestamp in RFC3339 text format. # Corresponds to the JSON property `creationTimestamp` # @return [String] attr_accessor :creation_timestamp # An optional description of this resource. Provide this property when you # create the resource. # Corresponds to the JSON property `description` # @return [String] attr_accessor :description # [Output Only] The unique identifier for the resource. This identifier is # defined by the server. # Corresponds to the JSON property `id` # @return [Fixnum] attr_accessor :id # [Output Only] Type of the resource. Always compute#reservations for # reservations. # Corresponds to the JSON property `kind` # @return [String] attr_accessor :kind # The name of the resource, provided by the client when initially creating the # resource. The resource name must be 1-63 characters long, and comply with # RFC1035. Specifically, the name must be 1-63 characters long and match the # regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first # character must be a lowercase letter, and all following characters must be a # dash, lowercase letter, or digit, except the last character, which cannot be a # dash. # Corresponds to the JSON property `name` # @return [String] attr_accessor :name # [Output Only] Reserved for future use. # Corresponds to the JSON property `satisfiesPzs` # @return [Boolean] attr_accessor :satisfies_pzs alias_method :satisfies_pzs?, :satisfies_pzs # [Output Only] Server-defined fully-qualified URL for this resource. # Corresponds to the JSON property `selfLink` # @return [String] attr_accessor :self_link # [Output Only] Server-defined URL for this resource with the resource id. # Corresponds to the JSON property `selfLinkWithId` # @return [String] attr_accessor :self_link_with_id # The share setting for reservations and sole tenancy node groups. # Corresponds to the JSON property `shareSettings` # @return [Google::Apis::ComputeAlpha::ShareSettings] attr_accessor :share_settings # This reservation type allows to pre allocate specific instance configuration. # Next ID: 5 # Corresponds to the JSON property `specificReservation` # @return [Google::Apis::ComputeAlpha::AllocationSpecificSkuReservation] attr_accessor :specific_reservation # Indicates whether the reservation can be consumed by VMs with affinity for " # any" reservation. If the field is set, then only VMs that target the # reservation by name can consume from this reservation. # Corresponds to the JSON property `specificReservationRequired` # @return [Boolean] attr_accessor :specific_reservation_required alias_method :specific_reservation_required?, :specific_reservation_required # [Output Only] The status of the reservation. # Corresponds to the JSON property `status` # @return [String] attr_accessor :status # Zone in which the reservation resides. A zone must be provided if the # reservation is created within a commitment. # 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) @commitment = args[:commitment] if args.key?(:commitment) @creation_timestamp = args[:creation_timestamp] if args.key?(:creation_timestamp) @description = args[:description] if args.key?(:description) @id = args[:id] if args.key?(:id) @kind = args[:kind] if args.key?(:kind) @name = args[:name] if args.key?(:name) @satisfies_pzs = args[:satisfies_pzs] if args.key?(:satisfies_pzs) @self_link = args[:self_link] if args.key?(:self_link) @self_link_with_id = args[:self_link_with_id] if args.key?(:self_link_with_id) @share_settings = args[:share_settings] if args.key?(:share_settings) @specific_reservation = args[:specific_reservation] if args.key?(:specific_reservation) @specific_reservation_required = args[:specific_reservation_required] if args.key?(:specific_reservation_required) @status = args[:status] if args.key?(:status) @zone = args[:zone] if args.key?(:zone) end end # Specifies the reservations that this instance can consume from. class ReservationAffinity include Google::Apis::Core::Hashable # Specifies the type of reservation from which this instance can consume # resources: ANY_RESERVATION (default), SPECIFIC_RESERVATION, or NO_RESERVATION. # See Consuming reserved instances for examples. # Corresponds to the JSON property `consumeReservationType` # @return [String] attr_accessor :consume_reservation_type # Corresponds to the label key of a reservation resource. To target a # SPECIFIC_RESERVATION by name, specify googleapis.com/reservation-name as the # key and specify the name of your reservation as its value. # Corresponds to the JSON property `key` # @return [String] attr_accessor :key # Corresponds to the label values of a reservation resource. This can be either # a name to a reservation in the same project or "projects/different-project/ # reservations/some-reservation-name" to target a shared reservation in the same # zone but in a different project. # Corresponds to the JSON property `values` # @return [Array] attr_accessor :values def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @consume_reservation_type = args[:consume_reservation_type] if args.key?(:consume_reservation_type) @key = args[:key] if args.key?(:key) @values = args[:values] if args.key?(:values) end end # Contains a list of reservations. class ReservationAggregatedList include Google::Apis::Core::Hashable # [Output Only] Unique identifier for the resource; defined by the server. # Corresponds to the JSON property `id` # @return [String] attr_accessor :id # A list of Allocation resources. # Corresponds to the JSON property `items` # @return [Hash] attr_accessor :items # Type of resource. # Corresponds to the JSON property `kind` # @return [String] attr_accessor :kind # [Output Only] This token allows you to get the next page of results for list # requests. If the number of results is larger than maxResults, use the # nextPageToken as a value for the query parameter pageToken in the next list # request. Subsequent list requests will have their own nextPageToken to # continue paging through the results. # Corresponds to the JSON property `nextPageToken` # @return [String] attr_accessor :next_page_token # [Output Only] Server-defined URL for this resource. # Corresponds to the JSON property `selfLink` # @return [String] attr_accessor :self_link # [Output Only] Unreachable resources. # Corresponds to the JSON property `unreachables` # @return [Array] attr_accessor :unreachables # [Output Only] Informational warning message. # Corresponds to the JSON property `warning` # @return [Google::Apis::ComputeAlpha::ReservationAggregatedList::Warning] attr_accessor :warning def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @id = args[:id] if args.key?(:id) @items = args[:items] if args.key?(:items) @kind = args[:kind] if args.key?(:kind) @next_page_token = args[:next_page_token] if args.key?(:next_page_token) @self_link = args[:self_link] if args.key?(:self_link) @unreachables = args[:unreachables] if args.key?(:unreachables) @warning = args[:warning] if args.key?(:warning) end # [Output Only] Informational warning message. class Warning include Google::Apis::Core::Hashable # [Output Only] A warning code, if applicable. For example, Compute Engine # returns NO_RESULTS_ON_PAGE if there are no results in the response. # Corresponds to the JSON property `code` # @return [String] attr_accessor :code # [Output Only] Metadata about this warning in key: value format. For example: " # data": [ ` "key": "scope", "value": "zones/us-east1-d" ` # Corresponds to the JSON property `data` # @return [Array] attr_accessor :data # [Output Only] A human-readable description of the warning code. # Corresponds to the JSON property `message` # @return [String] attr_accessor :message def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @code = args[:code] if args.key?(:code) @data = args[:data] if args.key?(:data) @message = args[:message] if args.key?(:message) end # class Datum include Google::Apis::Core::Hashable # [Output Only] A key that provides more detail on the warning being returned. # For example, for warnings where there are no results in a list request for a # particular zone, this key might be scope and the key value might be the zone # name. Other examples might be a key indicating a deprecated resource and a # suggested replacement, or a warning about invalid network settings (for # example, if an instance attempts to perform IP forwarding but is not enabled # for IP forwarding). # Corresponds to the JSON property `key` # @return [String] attr_accessor :key # [Output Only] A warning data value corresponding to the key. # 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 end end # class ReservationList include Google::Apis::Core::Hashable # [Output Only] The unique identifier for the resource. This identifier is # defined by the server. # Corresponds to the JSON property `id` # @return [String] attr_accessor :id # [Output Only] A list of Allocation resources. # Corresponds to the JSON property `items` # @return [Array] attr_accessor :items # [Output Only] Type of resource.Always compute#reservationsList for listsof # reservations # Corresponds to the JSON property `kind` # @return [String] attr_accessor :kind # [Output Only] This token allows you to get the next page of results for list # requests. If the number of results is larger than maxResults, use the # nextPageToken as a value for the query parameter pageToken in the next list # request. Subsequent list requests will have their own nextPageToken to # continue paging through the results. # Corresponds to the JSON property `nextPageToken` # @return [String] attr_accessor :next_page_token # [Output Only] Server-defined URL for this resource. # Corresponds to the JSON property `selfLink` # @return [String] attr_accessor :self_link # [Output Only] Informational warning message. # Corresponds to the JSON property `warning` # @return [Google::Apis::ComputeAlpha::ReservationList::Warning] attr_accessor :warning def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @id = args[:id] if args.key?(:id) @items = args[:items] if args.key?(:items) @kind = args[:kind] if args.key?(:kind) @next_page_token = args[:next_page_token] if args.key?(:next_page_token) @self_link = args[:self_link] if args.key?(:self_link) @warning = args[:warning] if args.key?(:warning) end # [Output Only] Informational warning message. class Warning include Google::Apis::Core::Hashable # [Output Only] A warning code, if applicable. For example, Compute Engine # returns NO_RESULTS_ON_PAGE if there are no results in the response. # Corresponds to the JSON property `code` # @return [String] attr_accessor :code # [Output Only] Metadata about this warning in key: value format. For example: " # data": [ ` "key": "scope", "value": "zones/us-east1-d" ` # Corresponds to the JSON property `data` # @return [Array] attr_accessor :data # [Output Only] A human-readable description of the warning code. # Corresponds to the JSON property `message` # @return [String] attr_accessor :message def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @code = args[:code] if args.key?(:code) @data = args[:data] if args.key?(:data) @message = args[:message] if args.key?(:message) end # class Datum include Google::Apis::Core::Hashable # [Output Only] A key that provides more detail on the warning being returned. # For example, for warnings where there are no results in a list request for a # particular zone, this key might be scope and the key value might be the zone # name. Other examples might be a key indicating a deprecated resource and a # suggested replacement, or a warning about invalid network settings (for # example, if an instance attempts to perform IP forwarding but is not enabled # for IP forwarding). # Corresponds to the JSON property `key` # @return [String] attr_accessor :key # [Output Only] A warning data value corresponding to the key. # 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 end end # class ReservationsResizeRequest include Google::Apis::Core::Hashable # Number of allocated resources can be resized with minimum = 1 and maximum = # 1000. # Corresponds to the JSON property `specificSkuCount` # @return [Fixnum] attr_accessor :specific_sku_count def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @specific_sku_count = args[:specific_sku_count] if args.key?(:specific_sku_count) end end # class ReservationsScopedList include Google::Apis::Core::Hashable # A list of reservations contained in this scope. # Corresponds to the JSON property `reservations` # @return [Array] attr_accessor :reservations # Informational warning which replaces the list of reservations when the list is # empty. # Corresponds to the JSON property `warning` # @return [Google::Apis::ComputeAlpha::ReservationsScopedList::Warning] attr_accessor :warning def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @reservations = args[:reservations] if args.key?(:reservations) @warning = args[:warning] if args.key?(:warning) end # Informational warning which replaces the list of reservations when the list is # empty. class Warning include Google::Apis::Core::Hashable # [Output Only] A warning code, if applicable. For example, Compute Engine # returns NO_RESULTS_ON_PAGE if there are no results in the response. # Corresponds to the JSON property `code` # @return [String] attr_accessor :code # [Output Only] Metadata about this warning in key: value format. For example: " # data": [ ` "key": "scope", "value": "zones/us-east1-d" ` # Corresponds to the JSON property `data` # @return [Array] attr_accessor :data # [Output Only] A human-readable description of the warning code. # Corresponds to the JSON property `message` # @return [String] attr_accessor :message def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @code = args[:code] if args.key?(:code) @data = args[:data] if args.key?(:data) @message = args[:message] if args.key?(:message) end # class Datum include Google::Apis::Core::Hashable # [Output Only] A key that provides more detail on the warning being returned. # For example, for warnings where there are no results in a list request for a # particular zone, this key might be scope and the key value might be the zone # name. Other examples might be a key indicating a deprecated resource and a # suggested replacement, or a warning about invalid network settings (for # example, if an instance attempts to perform IP forwarding but is not enabled # for IP forwarding). # Corresponds to the JSON property `key` # @return [String] attr_accessor :key # [Output Only] A warning data value corresponding to the key. # 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 end end # Commitment for a particular resource (a Commitment is composed of one or more # of these). class ResourceCommitment include Google::Apis::Core::Hashable # Name of the accelerator type resource. Applicable only when the type is # ACCELERATOR. # Corresponds to the JSON property `acceleratorType` # @return [String] attr_accessor :accelerator_type # The amount of the resource purchased (in a type-dependent unit, such as bytes). # For vCPUs, this can just be an integer. For memory, this must be provided in # MB. Memory must be a multiple of 256 MB, with up to 6.5GB of memory per every # vCPU. # Corresponds to the JSON property `amount` # @return [Fixnum] attr_accessor :amount # Type of resource for which this commitment applies. Possible values are VCPU # and MEMORY # 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) @accelerator_type = args[:accelerator_type] if args.key?(:accelerator_type) @amount = args[:amount] if args.key?(:amount) @type = args[:type] if args.key?(:type) end end # class ResourceGroupReference include Google::Apis::Core::Hashable # A URI referencing one of the instance groups or network endpoint groups listed # in the backend service. # Corresponds to the JSON property `group` # @return [String] attr_accessor :group def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @group = args[:group] if args.key?(:group) end end # class ResourcePoliciesScopedList include Google::Apis::Core::Hashable # A list of resourcePolicies contained in this scope. # Corresponds to the JSON property `resourcePolicies` # @return [Array] attr_accessor :resource_policies # Informational warning which replaces the list of resourcePolicies when the # list is empty. # Corresponds to the JSON property `warning` # @return [Google::Apis::ComputeAlpha::ResourcePoliciesScopedList::Warning] attr_accessor :warning def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @resource_policies = args[:resource_policies] if args.key?(:resource_policies) @warning = args[:warning] if args.key?(:warning) end # Informational warning which replaces the list of resourcePolicies when the # list is empty. class Warning include Google::Apis::Core::Hashable # [Output Only] A warning code, if applicable. For example, Compute Engine # returns NO_RESULTS_ON_PAGE if there are no results in the response. # Corresponds to the JSON property `code` # @return [String] attr_accessor :code # [Output Only] Metadata about this warning in key: value format. For example: " # data": [ ` "key": "scope", "value": "zones/us-east1-d" ` # Corresponds to the JSON property `data` # @return [Array] attr_accessor :data # [Output Only] A human-readable description of the warning code. # Corresponds to the JSON property `message` # @return [String] attr_accessor :message def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @code = args[:code] if args.key?(:code) @data = args[:data] if args.key?(:data) @message = args[:message] if args.key?(:message) end # class Datum include Google::Apis::Core::Hashable # [Output Only] A key that provides more detail on the warning being returned. # For example, for warnings where there are no results in a list request for a # particular zone, this key might be scope and the key value might be the zone # name. Other examples might be a key indicating a deprecated resource and a # suggested replacement, or a warning about invalid network settings (for # example, if an instance attempts to perform IP forwarding but is not enabled # for IP forwarding). # Corresponds to the JSON property `key` # @return [String] attr_accessor :key # [Output Only] A warning data value corresponding to the key. # 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 end end # Represents a Resource Policy resource. You can use resource policies to # schedule actions for some Compute Engine resources. For example, you can use # them to schedule persistent disk snapshots. class ResourcePolicy include Google::Apis::Core::Hashable # [Output Only] Creation timestamp in RFC3339 text format. # Corresponds to the JSON property `creationTimestamp` # @return [String] attr_accessor :creation_timestamp # # Corresponds to the JSON property `description` # @return [String] attr_accessor :description # A GroupPlacementPolicy specifies resource placement configuration. It # specifies the failure bucket separation as well as network locality # Corresponds to the JSON property `groupPlacementPolicy` # @return [Google::Apis::ComputeAlpha::ResourcePolicyGroupPlacementPolicy] attr_accessor :group_placement_policy # [Output Only] The unique identifier for the resource. This identifier is # defined by the server. # Corresponds to the JSON property `id` # @return [Fixnum] attr_accessor :id # An InstanceSchedulePolicy specifies when and how frequent certain operations # are performed on the instance. # Corresponds to the JSON property `instanceSchedulePolicy` # @return [Google::Apis::ComputeAlpha::ResourcePolicyInstanceSchedulePolicy] attr_accessor :instance_schedule_policy # [Output Only] Type of the resource. Always compute#resource_policies for # resource policies. # Corresponds to the JSON property `kind` # @return [String] attr_accessor :kind # The name of the resource, provided by the client when initially creating the # resource. The resource name must be 1-63 characters long, and comply with # RFC1035. Specifically, the name must be 1-63 characters long and match the # regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first # character must be a lowercase letter, and all following characters must be a # dash, lowercase letter, or digit, except the last character, which cannot be a # dash. # Corresponds to the JSON property `name` # @return [String] attr_accessor :name # # Corresponds to the JSON property `region` # @return [String] attr_accessor :region # Contains output only fields. Use this sub-message for all output fields set on # ResourcePolicy. The internal structure of this "status" field should mimic the # structure of ResourcePolicy proto specification. # Corresponds to the JSON property `resourceStatus` # @return [Google::Apis::ComputeAlpha::ResourcePolicyResourceStatus] attr_accessor :resource_status # [Output Only] Server-defined fully-qualified URL for this resource. # Corresponds to the JSON property `selfLink` # @return [String] attr_accessor :self_link # [Output Only] Server-defined URL for this resource with the resource id. # Corresponds to the JSON property `selfLinkWithId` # @return [String] attr_accessor :self_link_with_id # A snapshot schedule policy specifies when and how frequently snapshots are to # be created for the target disk. Also specifies how many and how long these # scheduled snapshots should be retained. # Corresponds to the JSON property `snapshotSchedulePolicy` # @return [Google::Apis::ComputeAlpha::ResourcePolicySnapshotSchedulePolicy] attr_accessor :snapshot_schedule_policy # [Output Only] The status of resource policy creation. # Corresponds to the JSON property `status` # @return [String] attr_accessor :status # Resource policy applicable to VMs for infrastructure maintenance. # Corresponds to the JSON property `vmMaintenancePolicy` # @return [Google::Apis::ComputeAlpha::ResourcePolicyVmMaintenancePolicy] attr_accessor :vm_maintenance_policy def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @creation_timestamp = args[:creation_timestamp] if args.key?(:creation_timestamp) @description = args[:description] if args.key?(:description) @group_placement_policy = args[:group_placement_policy] if args.key?(:group_placement_policy) @id = args[:id] if args.key?(:id) @instance_schedule_policy = args[:instance_schedule_policy] if args.key?(:instance_schedule_policy) @kind = args[:kind] if args.key?(:kind) @name = args[:name] if args.key?(:name) @region = args[:region] if args.key?(:region) @resource_status = args[:resource_status] if args.key?(:resource_status) @self_link = args[:self_link] if args.key?(:self_link) @self_link_with_id = args[:self_link_with_id] if args.key?(:self_link_with_id) @snapshot_schedule_policy = args[:snapshot_schedule_policy] if args.key?(:snapshot_schedule_policy) @status = args[:status] if args.key?(:status) @vm_maintenance_policy = args[:vm_maintenance_policy] if args.key?(:vm_maintenance_policy) end end # Contains a list of resourcePolicies. class ResourcePolicyAggregatedList include Google::Apis::Core::Hashable # # Corresponds to the JSON property `etag` # @return [String] attr_accessor :etag # [Output Only] Unique identifier for the resource; defined by the server. # Corresponds to the JSON property `id` # @return [String] attr_accessor :id # A list of ResourcePolicy resources. # Corresponds to the JSON property `items` # @return [Hash] attr_accessor :items # Type of resource. # Corresponds to the JSON property `kind` # @return [String] attr_accessor :kind # [Output Only] This token allows you to get the next page of results for list # requests. If the number of results is larger than maxResults, use the # nextPageToken as a value for the query parameter pageToken in the next list # request. Subsequent list requests will have their own nextPageToken to # continue paging through the results. # Corresponds to the JSON property `nextPageToken` # @return [String] attr_accessor :next_page_token # [Output Only] Server-defined URL for this resource. # Corresponds to the JSON property `selfLink` # @return [String] attr_accessor :self_link # [Output Only] Unreachable resources. # Corresponds to the JSON property `unreachables` # @return [Array] attr_accessor :unreachables # [Output Only] Informational warning message. # Corresponds to the JSON property `warning` # @return [Google::Apis::ComputeAlpha::ResourcePolicyAggregatedList::Warning] attr_accessor :warning def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @etag = args[:etag] if args.key?(:etag) @id = args[:id] if args.key?(:id) @items = args[:items] if args.key?(:items) @kind = args[:kind] if args.key?(:kind) @next_page_token = args[:next_page_token] if args.key?(:next_page_token) @self_link = args[:self_link] if args.key?(:self_link) @unreachables = args[:unreachables] if args.key?(:unreachables) @warning = args[:warning] if args.key?(:warning) end # [Output Only] Informational warning message. class Warning include Google::Apis::Core::Hashable # [Output Only] A warning code, if applicable. For example, Compute Engine # returns NO_RESULTS_ON_PAGE if there are no results in the response. # Corresponds to the JSON property `code` # @return [String] attr_accessor :code # [Output Only] Metadata about this warning in key: value format. For example: " # data": [ ` "key": "scope", "value": "zones/us-east1-d" ` # Corresponds to the JSON property `data` # @return [Array] attr_accessor :data # [Output Only] A human-readable description of the warning code. # Corresponds to the JSON property `message` # @return [String] attr_accessor :message def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @code = args[:code] if args.key?(:code) @data = args[:data] if args.key?(:data) @message = args[:message] if args.key?(:message) end # class Datum include Google::Apis::Core::Hashable # [Output Only] A key that provides more detail on the warning being returned. # For example, for warnings where there are no results in a list request for a # particular zone, this key might be scope and the key value might be the zone # name. Other examples might be a key indicating a deprecated resource and a # suggested replacement, or a warning about invalid network settings (for # example, if an instance attempts to perform IP forwarding but is not enabled # for IP forwarding). # Corresponds to the JSON property `key` # @return [String] attr_accessor :key # [Output Only] A warning data value corresponding to the key. # 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 end end # Time window specified for daily operations. class ResourcePolicyDailyCycle include Google::Apis::Core::Hashable # Defines a schedule with units measured in days. The value determines how many # days pass between the start of each cycle. # Corresponds to the JSON property `daysInCycle` # @return [Fixnum] attr_accessor :days_in_cycle # [Output only] A predetermined duration for the window, automatically chosen to # be the smallest possible in the given scenario. # Corresponds to the JSON property `duration` # @return [String] attr_accessor :duration # Start time of the window. This must be in UTC format that resolves to one of # 00:00, 04:00, 08:00, 12:00, 16:00, or 20:00. For example, both 13:00-5 and 08: # 00 are valid. # Corresponds to the JSON property `startTime` # @return [String] attr_accessor :start_time def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @days_in_cycle = args[:days_in_cycle] if args.key?(:days_in_cycle) @duration = args[:duration] if args.key?(:duration) @start_time = args[:start_time] if args.key?(:start_time) end end # A GroupPlacementPolicy specifies resource placement configuration. It # specifies the failure bucket separation as well as network locality class ResourcePolicyGroupPlacementPolicy include Google::Apis::Core::Hashable # The number of availability domains instances will be spread across. If two # instances are in different availability domain, they will not be put in the # same low latency network # Corresponds to the JSON property `availabilityDomainCount` # @return [Fixnum] attr_accessor :availability_domain_count # Specifies network collocation # Corresponds to the JSON property `collocation` # @return [String] attr_accessor :collocation # Specifies network locality # Corresponds to the JSON property `locality` # @return [String] attr_accessor :locality # Scope specifies the availability domain to which the VMs should be spread. # Corresponds to the JSON property `scope` # @return [String] attr_accessor :scope # Specifies instances to hosts placement relationship # Corresponds to the JSON property `style` # @return [String] attr_accessor :style # Number of vms in this placement group # Corresponds to the JSON property `vmCount` # @return [Fixnum] attr_accessor :vm_count def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @availability_domain_count = args[:availability_domain_count] if args.key?(:availability_domain_count) @collocation = args[:collocation] if args.key?(:collocation) @locality = args[:locality] if args.key?(:locality) @scope = args[:scope] if args.key?(:scope) @style = args[:style] if args.key?(:style) @vm_count = args[:vm_count] if args.key?(:vm_count) end end # Time window specified for hourly operations. class ResourcePolicyHourlyCycle include Google::Apis::Core::Hashable # [Output only] Duration of the time window, automatically chosen to be smallest # possible in the given scenario. # Corresponds to the JSON property `duration` # @return [String] attr_accessor :duration # Defines a schedule with units measured in hours. The value determines how many # hours pass between the start of each cycle. # Corresponds to the JSON property `hoursInCycle` # @return [Fixnum] attr_accessor :hours_in_cycle # Time within the window to start the operations. It must be in format "HH:MM", # where HH : [00-23] and MM : [00-00] GMT. # Corresponds to the JSON property `startTime` # @return [String] attr_accessor :start_time def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @duration = args[:duration] if args.key?(:duration) @hours_in_cycle = args[:hours_in_cycle] if args.key?(:hours_in_cycle) @start_time = args[:start_time] if args.key?(:start_time) end end # An InstanceSchedulePolicy specifies when and how frequent certain operations # are performed on the instance. class ResourcePolicyInstanceSchedulePolicy include Google::Apis::Core::Hashable # The expiration time of the schedule. The timestamp is an RFC3339 string. # Corresponds to the JSON property `expirationTime` # @return [String] attr_accessor :expiration_time # The start time of the schedule. The timestamp is an RFC3339 string. # Corresponds to the JSON property `startTime` # @return [String] attr_accessor :start_time # Specifies the time zone to be used in interpreting Schedule.schedule. The # value of this field must be a time zone name from the tz database: http://en. # wikipedia.org/wiki/Tz_database. # Corresponds to the JSON property `timeZone` # @return [String] attr_accessor :time_zone # Schedule for an instance operation. # Corresponds to the JSON property `vmStartSchedule` # @return [Google::Apis::ComputeAlpha::ResourcePolicyInstanceSchedulePolicySchedule] attr_accessor :vm_start_schedule # Schedule for an instance operation. # Corresponds to the JSON property `vmStopSchedule` # @return [Google::Apis::ComputeAlpha::ResourcePolicyInstanceSchedulePolicySchedule] attr_accessor :vm_stop_schedule def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @expiration_time = args[:expiration_time] if args.key?(:expiration_time) @start_time = args[:start_time] if args.key?(:start_time) @time_zone = args[:time_zone] if args.key?(:time_zone) @vm_start_schedule = args[:vm_start_schedule] if args.key?(:vm_start_schedule) @vm_stop_schedule = args[:vm_stop_schedule] if args.key?(:vm_stop_schedule) end end # Schedule for an instance operation. class ResourcePolicyInstanceSchedulePolicySchedule include Google::Apis::Core::Hashable # Specifies the frequency for the operation, using the unix-cron format. # Corresponds to the JSON property `schedule` # @return [String] attr_accessor :schedule def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @schedule = args[:schedule] if args.key?(:schedule) end end # class ResourcePolicyList include Google::Apis::Core::Hashable # # Corresponds to the JSON property `etag` # @return [String] attr_accessor :etag # [Output Only] The unique identifier for the resource. This identifier is # defined by the server. # Corresponds to the JSON property `id` # @return [String] attr_accessor :id # [Output Only] A list of ResourcePolicy resources. # Corresponds to the JSON property `items` # @return [Array] attr_accessor :items # [Output Only] Type of resource.Always compute#resourcePoliciesList for listsof # resourcePolicies # Corresponds to the JSON property `kind` # @return [String] attr_accessor :kind # [Output Only] This token allows you to get the next page of results for list # requests. If the number of results is larger than maxResults, use the # nextPageToken as a value for the query parameter pageToken in the next list # request. Subsequent list requests will have their own nextPageToken to # continue paging through the results. # Corresponds to the JSON property `nextPageToken` # @return [String] attr_accessor :next_page_token # [Output Only] Server-defined URL for this resource. # Corresponds to the JSON property `selfLink` # @return [String] attr_accessor :self_link # [Output Only] Informational warning message. # Corresponds to the JSON property `warning` # @return [Google::Apis::ComputeAlpha::ResourcePolicyList::Warning] attr_accessor :warning def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @etag = args[:etag] if args.key?(:etag) @id = args[:id] if args.key?(:id) @items = args[:items] if args.key?(:items) @kind = args[:kind] if args.key?(:kind) @next_page_token = args[:next_page_token] if args.key?(:next_page_token) @self_link = args[:self_link] if args.key?(:self_link) @warning = args[:warning] if args.key?(:warning) end # [Output Only] Informational warning message. class Warning include Google::Apis::Core::Hashable # [Output Only] A warning code, if applicable. For example, Compute Engine # returns NO_RESULTS_ON_PAGE if there are no results in the response. # Corresponds to the JSON property `code` # @return [String] attr_accessor :code # [Output Only] Metadata about this warning in key: value format. For example: " # data": [ ` "key": "scope", "value": "zones/us-east1-d" ` # Corresponds to the JSON property `data` # @return [Array] attr_accessor :data # [Output Only] A human-readable description of the warning code. # Corresponds to the JSON property `message` # @return [String] attr_accessor :message def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @code = args[:code] if args.key?(:code) @data = args[:data] if args.key?(:data) @message = args[:message] if args.key?(:message) end # class Datum include Google::Apis::Core::Hashable # [Output Only] A key that provides more detail on the warning being returned. # For example, for warnings where there are no results in a list request for a # particular zone, this key might be scope and the key value might be the zone # name. Other examples might be a key indicating a deprecated resource and a # suggested replacement, or a warning about invalid network settings (for # example, if an instance attempts to perform IP forwarding but is not enabled # for IP forwarding). # Corresponds to the JSON property `key` # @return [String] attr_accessor :key # [Output Only] A warning data value corresponding to the key. # 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 end end # Contains output only fields. Use this sub-message for all output fields set on # ResourcePolicy. The internal structure of this "status" field should mimic the # structure of ResourcePolicy proto specification. class ResourcePolicyResourceStatus include Google::Apis::Core::Hashable # [Output Only] Specifies a set of output values reffering to the # instance_schedule_policy system status. This field should have the same name # as corresponding policy field. # Corresponds to the JSON property `instanceSchedulePolicy` # @return [Google::Apis::ComputeAlpha::ResourcePolicyResourceStatusInstanceSchedulePolicyStatus] attr_accessor :instance_schedule_policy def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @instance_schedule_policy = args[:instance_schedule_policy] if args.key?(:instance_schedule_policy) end end # class ResourcePolicyResourceStatusInstanceSchedulePolicyStatus include Google::Apis::Core::Hashable # [Output Only] The last time the schedule successfully ran. The timestamp is an # RFC3339 string. # Corresponds to the JSON property `lastRunStartTime` # @return [String] attr_accessor :last_run_start_time # [Output Only] The next time the schedule is planned to run. The actual time # might be slightly different. The timestamp is an RFC3339 string. # Corresponds to the JSON property `nextRunStartTime` # @return [String] attr_accessor :next_run_start_time def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @last_run_start_time = args[:last_run_start_time] if args.key?(:last_run_start_time) @next_run_start_time = args[:next_run_start_time] if args.key?(:next_run_start_time) end end # A snapshot schedule policy specifies when and how frequently snapshots are to # be created for the target disk. Also specifies how many and how long these # scheduled snapshots should be retained. class ResourcePolicySnapshotSchedulePolicy include Google::Apis::Core::Hashable # Policy for retention of scheduled snapshots. # Corresponds to the JSON property `retentionPolicy` # @return [Google::Apis::ComputeAlpha::ResourcePolicySnapshotSchedulePolicyRetentionPolicy] attr_accessor :retention_policy # A schedule for disks where the schedueled operations are performed. # Corresponds to the JSON property `schedule` # @return [Google::Apis::ComputeAlpha::ResourcePolicySnapshotSchedulePolicySchedule] attr_accessor :schedule # Specified snapshot properties for scheduled snapshots created by this policy. # Corresponds to the JSON property `snapshotProperties` # @return [Google::Apis::ComputeAlpha::ResourcePolicySnapshotSchedulePolicySnapshotProperties] attr_accessor :snapshot_properties def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @retention_policy = args[:retention_policy] if args.key?(:retention_policy) @schedule = args[:schedule] if args.key?(:schedule) @snapshot_properties = args[:snapshot_properties] if args.key?(:snapshot_properties) end end # Policy for retention of scheduled snapshots. class ResourcePolicySnapshotSchedulePolicyRetentionPolicy include Google::Apis::Core::Hashable # Maximum age of the snapshot that is allowed to be kept. # Corresponds to the JSON property `maxRetentionDays` # @return [Fixnum] attr_accessor :max_retention_days # # Corresponds to the JSON property `onPolicySwitch` # @return [String] attr_accessor :on_policy_switch # Specifies the behavior to apply to scheduled snapshots when the source disk is # deleted. # Corresponds to the JSON property `onSourceDiskDelete` # @return [String] attr_accessor :on_source_disk_delete def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @max_retention_days = args[:max_retention_days] if args.key?(:max_retention_days) @on_policy_switch = args[:on_policy_switch] if args.key?(:on_policy_switch) @on_source_disk_delete = args[:on_source_disk_delete] if args.key?(:on_source_disk_delete) end end # A schedule for disks where the schedueled operations are performed. class ResourcePolicySnapshotSchedulePolicySchedule include Google::Apis::Core::Hashable # Time window specified for daily operations. # Corresponds to the JSON property `dailySchedule` # @return [Google::Apis::ComputeAlpha::ResourcePolicyDailyCycle] attr_accessor :daily_schedule # Time window specified for hourly operations. # Corresponds to the JSON property `hourlySchedule` # @return [Google::Apis::ComputeAlpha::ResourcePolicyHourlyCycle] attr_accessor :hourly_schedule # Time window specified for weekly operations. # Corresponds to the JSON property `weeklySchedule` # @return [Google::Apis::ComputeAlpha::ResourcePolicyWeeklyCycle] attr_accessor :weekly_schedule def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @daily_schedule = args[:daily_schedule] if args.key?(:daily_schedule) @hourly_schedule = args[:hourly_schedule] if args.key?(:hourly_schedule) @weekly_schedule = args[:weekly_schedule] if args.key?(:weekly_schedule) end end # Specified snapshot properties for scheduled snapshots created by this policy. class ResourcePolicySnapshotSchedulePolicySnapshotProperties include Google::Apis::Core::Hashable # Chain name that the snapshot is created in. # Corresponds to the JSON property `chainName` # @return [String] attr_accessor :chain_name # Indication to perform a 'guest aware' snapshot. # Corresponds to the JSON property `guestFlush` # @return [Boolean] attr_accessor :guest_flush alias_method :guest_flush?, :guest_flush # Labels to apply to scheduled snapshots. These can be later modified by the # setLabels method. Label values may be empty. # Corresponds to the JSON property `labels` # @return [Hash] attr_accessor :labels # Cloud Storage bucket storage location of the auto snapshot (regional or multi- # regional). # Corresponds to the JSON property `storageLocations` # @return [Array] attr_accessor :storage_locations def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @chain_name = args[:chain_name] if args.key?(:chain_name) @guest_flush = args[:guest_flush] if args.key?(:guest_flush) @labels = args[:labels] if args.key?(:labels) @storage_locations = args[:storage_locations] if args.key?(:storage_locations) end end # class ResourcePolicyVmMaintenancePolicy include Google::Apis::Core::Hashable # A concurrency control configuration. Defines a group config that, when # attached to an instance, recognizes that instance as part of a group of # instances where only up the concurrency_limit of instances in that group can # undergo simultaneous maintenance. For more information: go/concurrency-control- # design-doc # Corresponds to the JSON property `concurrencyControlGroup` # @return [Google::Apis::ComputeAlpha::ResourcePolicyVmMaintenancePolicyConcurrencyControl] attr_accessor :concurrency_control_group # A maintenance window for VMs. When set, we restrict our maintenance operations # to this window. # Corresponds to the JSON property `maintenanceWindow` # @return [Google::Apis::ComputeAlpha::ResourcePolicyVmMaintenancePolicyMaintenanceWindow] attr_accessor :maintenance_window def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @concurrency_control_group = args[:concurrency_control_group] if args.key?(:concurrency_control_group) @maintenance_window = args[:maintenance_window] if args.key?(:maintenance_window) end end # A concurrency control configuration. Defines a group config that, when # attached to an instance, recognizes that instance as part of a group of # instances where only up the concurrency_limit of instances in that group can # undergo simultaneous maintenance. For more information: go/concurrency-control- # design-doc class ResourcePolicyVmMaintenancePolicyConcurrencyControl include Google::Apis::Core::Hashable # # Corresponds to the JSON property `concurrencyLimit` # @return [Fixnum] attr_accessor :concurrency_limit def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @concurrency_limit = args[:concurrency_limit] if args.key?(:concurrency_limit) end end # A maintenance window for VMs. When set, we restrict our maintenance operations # to this window. class ResourcePolicyVmMaintenancePolicyMaintenanceWindow include Google::Apis::Core::Hashable # Time window specified for daily operations. # Corresponds to the JSON property `dailyMaintenanceWindow` # @return [Google::Apis::ComputeAlpha::ResourcePolicyDailyCycle] attr_accessor :daily_maintenance_window def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @daily_maintenance_window = args[:daily_maintenance_window] if args.key?(:daily_maintenance_window) end end # Time window specified for weekly operations. class ResourcePolicyWeeklyCycle include Google::Apis::Core::Hashable # Up to 7 intervals/windows, one for each day of the week. # Corresponds to the JSON property `dayOfWeeks` # @return [Array] attr_accessor :day_of_weeks def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @day_of_weeks = args[:day_of_weeks] if args.key?(:day_of_weeks) end end # class ResourcePolicyWeeklyCycleDayOfWeek include Google::Apis::Core::Hashable # Defines a schedule that runs on specific days of the week. Specify one or more # days. The following options are available: MONDAY, TUESDAY, WEDNESDAY, # THURSDAY, FRIDAY, SATURDAY, SUNDAY. # Corresponds to the JSON property `day` # @return [String] attr_accessor :day # [Output only] Duration of the time window, automatically chosen to be smallest # possible in the given scenario. # Corresponds to the JSON property `duration` # @return [String] attr_accessor :duration # Time within the window to start the operations. It must be in format "HH:MM", # where HH : [00-23] and MM : [00-00] GMT. # Corresponds to the JSON property `startTime` # @return [String] attr_accessor :start_time def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @day = args[:day] if args.key?(:day) @duration = args[:duration] if args.key?(:duration) @start_time = args[:start_time] if args.key?(:start_time) end end # Contains output only fields. Use this sub-message for actual values set on # Instance attributes as compared to the value requested by the user (intent) in # their instance CRUD calls. class ResourceStatus include Google::Apis::Core::Hashable # # Corresponds to the JSON property `scheduling` # @return [Google::Apis::ComputeAlpha::ResourceStatusScheduling] attr_accessor :scheduling # # Corresponds to the JSON property `upcomingMaintenance` # @return [Google::Apis::ComputeAlpha::ResourceStatusUpcomingMaintenance] attr_accessor :upcoming_maintenance def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @scheduling = args[:scheduling] if args.key?(:scheduling) @upcoming_maintenance = args[:upcoming_maintenance] if args.key?(:upcoming_maintenance) end end # class ResourceStatusScheduling include Google::Apis::Core::Hashable # Specifies the availability domain (AD), which this instance should be # scheduled on. The AD belongs to the spread GroupPlacementPolicy resource # policy that has been assigned to the instance. Specify a value between 1-max # count of availability domains in your GroupPlacementPolicy. See go/placement- # policy-extension for more details. # Corresponds to the JSON property `availabilityDomain` # @return [Fixnum] attr_accessor :availability_domain # Time in future when the instance will be terminated in RFC3339 text format. # Corresponds to the JSON property `terminationTimestamp` # @return [String] attr_accessor :termination_timestamp def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @availability_domain = args[:availability_domain] if args.key?(:availability_domain) @termination_timestamp = args[:termination_timestamp] if args.key?(:termination_timestamp) end end # class ResourceStatusUpcomingMaintenance include Google::Apis::Core::Hashable # Indicates if the maintenance can be customer triggered. See go/sf-ctm-design # for more details # Corresponds to the JSON property `canReschedule` # @return [Boolean] attr_accessor :can_reschedule alias_method :can_reschedule?, :can_reschedule def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @can_reschedule = args[:can_reschedule] if args.key?(:can_reschedule) end end # A rollout policy configuration. class RolloutPolicy include Google::Apis::Core::Hashable # An optional RFC3339 timestamp on or after which the update is considered # rolled out to any zone that is not explicitly stated. # Corresponds to the JSON property `defaultRolloutTime` # @return [String] attr_accessor :default_rollout_time # Location based rollout policies to apply to the resource. Currently only zone # names are supported and must be represented as valid URLs, like: zones/us- # central1-a. The value expects an RFC3339 timestamp on or after which the # update is considered rolled out to the specified location. # Corresponds to the JSON property `locationRolloutPolicies` # @return [Hash] attr_accessor :location_rollout_policies def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @default_rollout_time = args[:default_rollout_time] if args.key?(:default_rollout_time) @location_rollout_policies = args[:location_rollout_policies] if args.key?(:location_rollout_policies) end end # Represents a Route resource. A route defines a path from VM instances in the # VPC network to a specific destination. This destination can be inside or # outside the VPC network. For more information, read the Routes overview. class Route include Google::Apis::Core::Hashable # Whether this route can conflict with existing subnetworks. Setting this to # true allows this route to conflict with subnetworks that have already been # configured on the corresponding network. # Corresponds to the JSON property `allowConflictingSubnetworks` # @return [Boolean] attr_accessor :allow_conflicting_subnetworks alias_method :allow_conflicting_subnetworks?, :allow_conflicting_subnetworks # [Output Only] AS path. # Corresponds to the JSON property `asPaths` # @return [Array] attr_accessor :as_paths # [Output Only] Creation timestamp in RFC3339 text format. # Corresponds to the JSON property `creationTimestamp` # @return [String] attr_accessor :creation_timestamp # An optional description of this resource. Provide this field when you create # the resource. # Corresponds to the JSON property `description` # @return [String] attr_accessor :description # The destination range of outgoing packets that this route applies to. Both # IPv4 and IPv6 are supported. # Corresponds to the JSON property `destRange` # @return [String] attr_accessor :dest_range # [Output Only] The unique identifier for the resource. This identifier is # defined by the server. # Corresponds to the JSON property `id` # @return [Fixnum] attr_accessor :id # ILB route behavior when ILB is deemed unhealthy based on user specified # threshold on the Backend Service of the internal load balancing. # Corresponds to the JSON property `ilbRouteBehaviorOnUnhealthy` # @return [String] attr_accessor :ilb_route_behavior_on_unhealthy # [Output Only] Type of this resource. Always compute#routes for Route resources. # Corresponds to the JSON property `kind` # @return [String] attr_accessor :kind # Name of the resource. Provided by the client when the resource is created. The # name must be 1-63 characters long, and comply with RFC1035. Specifically, the # name must be 1-63 characters long and match the regular expression `[a-z]([-a- # z0-9]*[a-z0-9])?`. The first character must be a lowercase letter, and all # following characters (except for the last character) must be a dash, lowercase # letter, or digit. The last character must be a lowercase letter or digit. # Corresponds to the JSON property `name` # @return [String] attr_accessor :name # Fully-qualified URL of the network that this route applies to. # Corresponds to the JSON property `network` # @return [String] attr_accessor :network # The URL to a gateway that should handle matching packets. You can only specify # the internet gateway using a full or partial valid URL: projects/ project/ # global/gateways/default-internet-gateway # Corresponds to the JSON property `nextHopGateway` # @return [String] attr_accessor :next_hop_gateway # The URL to a forwarding rule of type loadBalancingScheme=INTERNAL that should # handle matching packets or the IP address of the forwarding Rule. For example, # the following are all valid URLs: - 10.128.0.56 - https://www.googleapis.com/ # compute/v1/projects/project/regions/region /forwardingRules/forwardingRule - # regions/region/forwardingRules/forwardingRule # Corresponds to the JSON property `nextHopIlb` # @return [String] attr_accessor :next_hop_ilb # The URL to an instance that should handle matching packets. You can specify # this as a full or partial URL. For example: https://www.googleapis.com/compute/ # v1/projects/project/zones/zone/instances/ # Corresponds to the JSON property `nextHopInstance` # @return [String] attr_accessor :next_hop_instance # [Output Only] The URL to an InterconnectAttachment which is the next hop for # the route. This field will only be populated for the dynamic routes generated # by Cloud Router with a linked interconnectAttachment. # Corresponds to the JSON property `nextHopInterconnectAttachment` # @return [String] attr_accessor :next_hop_interconnect_attachment # The network IP address of an instance that should handle matching packets. # Only IPv4 is supported. # Corresponds to the JSON property `nextHopIp` # @return [String] attr_accessor :next_hop_ip # The URL of the local network if it should handle matching packets. # Corresponds to the JSON property `nextHopNetwork` # @return [String] attr_accessor :next_hop_network # [Output Only] The network peering name that should handle matching packets, # which should conform to RFC1035. # Corresponds to the JSON property `nextHopPeering` # @return [String] attr_accessor :next_hop_peering # The URL to a VpnTunnel that should handle matching packets. # Corresponds to the JSON property `nextHopVpnTunnel` # @return [String] attr_accessor :next_hop_vpn_tunnel # The priority of this route. Priority is used to break ties in cases where # there is more than one matching route of equal prefix length. In cases where # multiple routes have equal prefix length, the one with the lowest-numbered # priority value wins. The default value is `1000`. The priority value must be # from `0` to `65535`, inclusive. # Corresponds to the JSON property `priority` # @return [Fixnum] attr_accessor :priority # [Output only] The status of the route. # Corresponds to the JSON property `routeStatus` # @return [String] attr_accessor :route_status # [Output Only] The type of this route, which can be one of the following values: # - 'TRANSIT' for a transit route that this router learned from another Cloud # Router and will readvertise to one of its BGP peers - 'SUBNET' for a route # from a subnet of the VPC - 'BGP' for a route learned from a BGP peer of this # router - 'STATIC' for a static route # Corresponds to the JSON property `routeType` # @return [String] attr_accessor :route_type # [Output Only] Server-defined fully-qualified URL for this resource. # Corresponds to the JSON property `selfLink` # @return [String] attr_accessor :self_link # [Output Only] Server-defined URL for this resource with the resource id. # Corresponds to the JSON property `selfLinkWithId` # @return [String] attr_accessor :self_link_with_id # A list of instance tags to which this route applies. # Corresponds to the JSON property `tags` # @return [Array] attr_accessor :tags # [Output Only] If potential misconfigurations are detected for this route, this # field will be populated with warning messages. # Corresponds to the JSON property `warnings` # @return [Array] attr_accessor :warnings def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @allow_conflicting_subnetworks = args[:allow_conflicting_subnetworks] if args.key?(:allow_conflicting_subnetworks) @as_paths = args[:as_paths] if args.key?(:as_paths) @creation_timestamp = args[:creation_timestamp] if args.key?(:creation_timestamp) @description = args[:description] if args.key?(:description) @dest_range = args[:dest_range] if args.key?(:dest_range) @id = args[:id] if args.key?(:id) @ilb_route_behavior_on_unhealthy = args[:ilb_route_behavior_on_unhealthy] if args.key?(:ilb_route_behavior_on_unhealthy) @kind = args[:kind] if args.key?(:kind) @name = args[:name] if args.key?(:name) @network = args[:network] if args.key?(:network) @next_hop_gateway = args[:next_hop_gateway] if args.key?(:next_hop_gateway) @next_hop_ilb = args[:next_hop_ilb] if args.key?(:next_hop_ilb) @next_hop_instance = args[:next_hop_instance] if args.key?(:next_hop_instance) @next_hop_interconnect_attachment = args[:next_hop_interconnect_attachment] if args.key?(:next_hop_interconnect_attachment) @next_hop_ip = args[:next_hop_ip] if args.key?(:next_hop_ip) @next_hop_network = args[:next_hop_network] if args.key?(:next_hop_network) @next_hop_peering = args[:next_hop_peering] if args.key?(:next_hop_peering) @next_hop_vpn_tunnel = args[:next_hop_vpn_tunnel] if args.key?(:next_hop_vpn_tunnel) @priority = args[:priority] if args.key?(:priority) @route_status = args[:route_status] if args.key?(:route_status) @route_type = args[:route_type] if args.key?(:route_type) @self_link = args[:self_link] if args.key?(:self_link) @self_link_with_id = args[:self_link_with_id] if args.key?(:self_link_with_id) @tags = args[:tags] if args.key?(:tags) @warnings = args[:warnings] if args.key?(:warnings) end # class Warning include Google::Apis::Core::Hashable # [Output Only] A warning code, if applicable. For example, Compute Engine # returns NO_RESULTS_ON_PAGE if there are no results in the response. # Corresponds to the JSON property `code` # @return [String] attr_accessor :code # [Output Only] Metadata about this warning in key: value format. For example: " # data": [ ` "key": "scope", "value": "zones/us-east1-d" ` # Corresponds to the JSON property `data` # @return [Array] attr_accessor :data # [Output Only] A human-readable description of the warning code. # Corresponds to the JSON property `message` # @return [String] attr_accessor :message def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @code = args[:code] if args.key?(:code) @data = args[:data] if args.key?(:data) @message = args[:message] if args.key?(:message) end # class Datum include Google::Apis::Core::Hashable # [Output Only] A key that provides more detail on the warning being returned. # For example, for warnings where there are no results in a list request for a # particular zone, this key might be scope and the key value might be the zone # name. Other examples might be a key indicating a deprecated resource and a # suggested replacement, or a warning about invalid network settings (for # example, if an instance attempts to perform IP forwarding but is not enabled # for IP forwarding). # Corresponds to the JSON property `key` # @return [String] attr_accessor :key # [Output Only] A warning data value corresponding to the key. # 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 end end # class RouteAsPath include Google::Apis::Core::Hashable # [Output Only] The AS numbers of the AS Path. # Corresponds to the JSON property `asLists` # @return [Array] attr_accessor :as_lists # [Output Only] The type of the AS Path, which can be one of the following # values: - 'AS_SET': unordered set of autonomous systems that the route in has # traversed - 'AS_SEQUENCE': ordered set of autonomous systems that the route # has traversed - 'AS_CONFED_SEQUENCE': ordered set of Member Autonomous Systems # in the local confederation that the route has traversed - 'AS_CONFED_SET': # unordered set of Member Autonomous Systems in the local confederation that the # route has traversed # Corresponds to the JSON property `pathSegmentType` # @return [String] attr_accessor :path_segment_type def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @as_lists = args[:as_lists] if args.key?(:as_lists) @path_segment_type = args[:path_segment_type] if args.key?(:path_segment_type) end end # Contains a list of Route resources. class RouteList include Google::Apis::Core::Hashable # [Output Only] Unique identifier for the resource; defined by the server. # Corresponds to the JSON property `id` # @return [String] attr_accessor :id # A list of Route resources. # Corresponds to the JSON property `items` # @return [Array] attr_accessor :items # Type of resource. # Corresponds to the JSON property `kind` # @return [String] attr_accessor :kind # [Output Only] This token allows you to get the next page of results for list # requests. If the number of results is larger than maxResults, use the # nextPageToken as a value for the query parameter pageToken in the next list # request. Subsequent list requests will have their own nextPageToken to # continue paging through the results. # Corresponds to the JSON property `nextPageToken` # @return [String] attr_accessor :next_page_token # [Output Only] Server-defined URL for this resource. # Corresponds to the JSON property `selfLink` # @return [String] attr_accessor :self_link # [Output Only] Informational warning message. # Corresponds to the JSON property `warning` # @return [Google::Apis::ComputeAlpha::RouteList::Warning] attr_accessor :warning def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @id = args[:id] if args.key?(:id) @items = args[:items] if args.key?(:items) @kind = args[:kind] if args.key?(:kind) @next_page_token = args[:next_page_token] if args.key?(:next_page_token) @self_link = args[:self_link] if args.key?(:self_link) @warning = args[:warning] if args.key?(:warning) end # [Output Only] Informational warning message. class Warning include Google::Apis::Core::Hashable # [Output Only] A warning code, if applicable. For example, Compute Engine # returns NO_RESULTS_ON_PAGE if there are no results in the response. # Corresponds to the JSON property `code` # @return [String] attr_accessor :code # [Output Only] Metadata about this warning in key: value format. For example: " # data": [ ` "key": "scope", "value": "zones/us-east1-d" ` # Corresponds to the JSON property `data` # @return [Array] attr_accessor :data # [Output Only] A human-readable description of the warning code. # Corresponds to the JSON property `message` # @return [String] attr_accessor :message def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @code = args[:code] if args.key?(:code) @data = args[:data] if args.key?(:data) @message = args[:message] if args.key?(:message) end # class Datum include Google::Apis::Core::Hashable # [Output Only] A key that provides more detail on the warning being returned. # For example, for warnings where there are no results in a list request for a # particular zone, this key might be scope and the key value might be the zone # name. Other examples might be a key indicating a deprecated resource and a # suggested replacement, or a warning about invalid network settings (for # example, if an instance attempts to perform IP forwarding but is not enabled # for IP forwarding). # Corresponds to the JSON property `key` # @return [String] attr_accessor :key # [Output Only] A warning data value corresponding to the key. # 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 end end # Represents a Cloud Router resource. For more information about Cloud Router, # read the Cloud Router overview. class Router include Google::Apis::Core::Hashable # BGP information specific to this router. # Corresponds to the JSON property `bgp` # @return [Google::Apis::ComputeAlpha::RouterBgp] attr_accessor :bgp # BGP information that must be configured into the routing stack to establish # BGP peering. This information must specify the peer ASN and either the # interface name, IP address, or peer IP address. Please refer to RFC4273. # Corresponds to the JSON property `bgpPeers` # @return [Array] attr_accessor :bgp_peers # [Output Only] Creation timestamp in RFC3339 text format. # Corresponds to the JSON property `creationTimestamp` # @return [String] attr_accessor :creation_timestamp # An optional description of this resource. Provide this property when you # create the resource. # Corresponds to the JSON property `description` # @return [String] attr_accessor :description # Indicates if a router is dedicated for use with encrypted VLAN attachments ( # interconnectAttachments). Not currently available publicly. # Corresponds to the JSON property `encryptedInterconnectRouter` # @return [Boolean] attr_accessor :encrypted_interconnect_router alias_method :encrypted_interconnect_router?, :encrypted_interconnect_router # [Output Only] The unique identifier for the resource. This identifier is # defined by the server. # Corresponds to the JSON property `id` # @return [Fixnum] attr_accessor :id # Router interfaces. Each interface requires either one linked resource, (for # example, linkedVpnTunnel), or IP address and IP address range (for example, # ipRange), or both. # Corresponds to the JSON property `interfaces` # @return [Array] attr_accessor :interfaces # [Output Only] Type of resource. Always compute#router for routers. # Corresponds to the JSON property `kind` # @return [String] attr_accessor :kind # Keys used for MD5 authentication. # Corresponds to the JSON property `md5AuthenticationKeys` # @return [Array] attr_accessor :md5_authentication_keys # Name of the resource. Provided by the client when the resource is created. The # name must be 1-63 characters long, and comply with RFC1035. Specifically, the # name must be 1-63 characters long and match the regular expression `[a-z]([-a- # z0-9]*[a-z0-9])?` which means the first character must be a lowercase letter, # and all following characters must be a dash, lowercase letter, or digit, # except the last character, which cannot be a dash. # Corresponds to the JSON property `name` # @return [String] attr_accessor :name # A list of NAT services created in this router. # Corresponds to the JSON property `nats` # @return [Array] attr_accessor :nats # URI of the network to which this router belongs. # Corresponds to the JSON property `network` # @return [String] attr_accessor :network # [Output Only] URI of the region where the router resides. You must specify # this field as part of the HTTP request URL. It is not settable as a field in # the request body. # Corresponds to the JSON property `region` # @return [String] attr_accessor :region # [Output Only] Server-defined URL for the resource. # Corresponds to the JSON property `selfLink` # @return [String] attr_accessor :self_link # [Output Only] Server-defined URL for this resource with the resource id. # Corresponds to the JSON property `selfLinkWithId` # @return [String] attr_accessor :self_link_with_id def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @bgp = args[:bgp] if args.key?(:bgp) @bgp_peers = args[:bgp_peers] if args.key?(:bgp_peers) @creation_timestamp = args[:creation_timestamp] if args.key?(:creation_timestamp) @description = args[:description] if args.key?(:description) @encrypted_interconnect_router = args[:encrypted_interconnect_router] if args.key?(:encrypted_interconnect_router) @id = args[:id] if args.key?(:id) @interfaces = args[:interfaces] if args.key?(:interfaces) @kind = args[:kind] if args.key?(:kind) @md5_authentication_keys = args[:md5_authentication_keys] if args.key?(:md5_authentication_keys) @name = args[:name] if args.key?(:name) @nats = args[:nats] if args.key?(:nats) @network = args[:network] if args.key?(:network) @region = args[:region] if args.key?(:region) @self_link = args[:self_link] if args.key?(:self_link) @self_link_with_id = args[:self_link_with_id] if args.key?(:self_link_with_id) end end # Description-tagged IP ranges for the router to advertise. class RouterAdvertisedIpRange include Google::Apis::Core::Hashable # User-specified description for the IP range. # Corresponds to the JSON property `description` # @return [String] attr_accessor :description # The IP range to advertise. The value must be a CIDR-formatted string. # Corresponds to the JSON property `range` # @return [String] attr_accessor :range def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @description = args[:description] if args.key?(:description) @range = args[:range] if args.key?(:range) end end # Contains a list of routers. class RouterAggregatedList include Google::Apis::Core::Hashable # [Output Only] Unique identifier for the resource; defined by the server. # Corresponds to the JSON property `id` # @return [String] attr_accessor :id # A list of Router resources. # Corresponds to the JSON property `items` # @return [Hash] attr_accessor :items # Type of resource. # Corresponds to the JSON property `kind` # @return [String] attr_accessor :kind # [Output Only] This token allows you to get the next page of results for list # requests. If the number of results is larger than maxResults, use the # nextPageToken as a value for the query parameter pageToken in the next list # request. Subsequent list requests will have their own nextPageToken to # continue paging through the results. # Corresponds to the JSON property `nextPageToken` # @return [String] attr_accessor :next_page_token # [Output Only] Server-defined URL for this resource. # Corresponds to the JSON property `selfLink` # @return [String] attr_accessor :self_link # [Output Only] Unreachable resources. # Corresponds to the JSON property `unreachables` # @return [Array] attr_accessor :unreachables # [Output Only] Informational warning message. # Corresponds to the JSON property `warning` # @return [Google::Apis::ComputeAlpha::RouterAggregatedList::Warning] attr_accessor :warning def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @id = args[:id] if args.key?(:id) @items = args[:items] if args.key?(:items) @kind = args[:kind] if args.key?(:kind) @next_page_token = args[:next_page_token] if args.key?(:next_page_token) @self_link = args[:self_link] if args.key?(:self_link) @unreachables = args[:unreachables] if args.key?(:unreachables) @warning = args[:warning] if args.key?(:warning) end # [Output Only] Informational warning message. class Warning include Google::Apis::Core::Hashable # [Output Only] A warning code, if applicable. For example, Compute Engine # returns NO_RESULTS_ON_PAGE if there are no results in the response. # Corresponds to the JSON property `code` # @return [String] attr_accessor :code # [Output Only] Metadata about this warning in key: value format. For example: " # data": [ ` "key": "scope", "value": "zones/us-east1-d" ` # Corresponds to the JSON property `data` # @return [Array] attr_accessor :data # [Output Only] A human-readable description of the warning code. # Corresponds to the JSON property `message` # @return [String] attr_accessor :message def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @code = args[:code] if args.key?(:code) @data = args[:data] if args.key?(:data) @message = args[:message] if args.key?(:message) end # class Datum include Google::Apis::Core::Hashable # [Output Only] A key that provides more detail on the warning being returned. # For example, for warnings where there are no results in a list request for a # particular zone, this key might be scope and the key value might be the zone # name. Other examples might be a key indicating a deprecated resource and a # suggested replacement, or a warning about invalid network settings (for # example, if an instance attempts to perform IP forwarding but is not enabled # for IP forwarding). # Corresponds to the JSON property `key` # @return [String] attr_accessor :key # [Output Only] A warning data value corresponding to the key. # 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 end end # class RouterBgp include Google::Apis::Core::Hashable # User-specified flag to indicate which mode to use for advertisement. The # options are DEFAULT or CUSTOM. # Corresponds to the JSON property `advertiseMode` # @return [String] attr_accessor :advertise_mode # User-specified list of prefix groups to advertise in custom mode. This field # can only be populated if advertise_mode is CUSTOM and is advertised to all # peers of the router. These groups will be advertised in addition to any # specified prefixes. Leave this field blank to advertise no custom groups. # Corresponds to the JSON property `advertisedGroups` # @return [Array] attr_accessor :advertised_groups # User-specified list of individual IP ranges to advertise in custom mode. This # field can only be populated if advertise_mode is CUSTOM and is advertised to # all peers of the router. These IP ranges will be advertised in addition to any # specified groups. Leave this field blank to advertise no custom IP ranges. # Corresponds to the JSON property `advertisedIpRanges` # @return [Array] attr_accessor :advertised_ip_ranges # Local BGP Autonomous System Number (ASN). Must be an RFC6996 private ASN, # either 16-bit or 32-bit. The value will be fixed for this router resource. All # VPN tunnels that link to this router will have the same local ASN. # Corresponds to the JSON property `asn` # @return [Fixnum] attr_accessor :asn # The interval in seconds between BGP keepalive messages that are sent to the # peer. Hold time is three times the interval at which keepalive messages are # sent, and the hold time is the maximum number of seconds allowed to elapse # between successive keepalive messages that BGP receives from a peer. BGP will # use the smaller of either the local hold time value or the peer's hold time # value as the hold time for the BGP connection between the two peers. If set, # this value must be between 20 and 60. The default is 20. # Corresponds to the JSON property `keepaliveInterval` # @return [Fixnum] attr_accessor :keepalive_interval def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @advertise_mode = args[:advertise_mode] if args.key?(:advertise_mode) @advertised_groups = args[:advertised_groups] if args.key?(:advertised_groups) @advertised_ip_ranges = args[:advertised_ip_ranges] if args.key?(:advertised_ip_ranges) @asn = args[:asn] if args.key?(:asn) @keepalive_interval = args[:keepalive_interval] if args.key?(:keepalive_interval) end end # class RouterBgpPeer include Google::Apis::Core::Hashable # User-specified flag to indicate which mode to use for advertisement. # Corresponds to the JSON property `advertiseMode` # @return [String] attr_accessor :advertise_mode # User-specified list of prefix groups to advertise in custom mode, which can # take one of the following options: - ALL_SUBNETS: Advertises all available # subnets, including peer VPC subnets. - ALL_VPC_SUBNETS: Advertises the router' # s own VPC subnets. Note that this field can only be populated if # advertise_mode is CUSTOM and overrides the list defined for the router (in the # "bgp" message). These groups are advertised in addition to any specified # prefixes. Leave this field blank to advertise no custom groups. # Corresponds to the JSON property `advertisedGroups` # @return [Array] attr_accessor :advertised_groups # User-specified list of individual IP ranges to advertise in custom mode. This # field can only be populated if advertise_mode is CUSTOM and overrides the list # defined for the router (in the "bgp" message). These IP ranges are advertised # in addition to any specified groups. Leave this field blank to advertise no # custom IP ranges. # Corresponds to the JSON property `advertisedIpRanges` # @return [Array] attr_accessor :advertised_ip_ranges # The priority of routes advertised to this BGP peer. Where there is more than # one matching route of maximum length, the routes with the lowest priority # value win. # Corresponds to the JSON property `advertisedRoutePriority` # @return [Fixnum] attr_accessor :advertised_route_priority # BFD configuration for the BGP peering. # Corresponds to the JSON property `bfd` # @return [Google::Apis::ComputeAlpha::RouterBgpPeerBfd] attr_accessor :bfd # The status of the BGP peer connection. If set to FALSE, any active session # with the peer is terminated and all associated routing information is removed. # If set to TRUE, the peer connection can be established with routing # information. The default is TRUE. # Corresponds to the JSON property `enable` # @return [String] attr_accessor :enable # Enable IPv6 traffic over BGP Peer. If not specified, it is disabled by default. # Corresponds to the JSON property `enableIpv6` # @return [Boolean] attr_accessor :enable_ipv6 alias_method :enable_ipv6?, :enable_ipv6 # Name of the interface the BGP peer is associated with. # Corresponds to the JSON property `interfaceName` # @return [String] attr_accessor :interface_name # IP address of the interface inside Google Cloud Platform. Only IPv4 is # supported. # Corresponds to the JSON property `ipAddress` # @return [String] attr_accessor :ip_address # IPv6 address of the interface inside Google Cloud Platform. # Corresponds to the JSON property `ipv6NexthopAddress` # @return [String] attr_accessor :ipv6_nexthop_address # [Output Only] The resource that configures and manages this BGP peer. - # MANAGED_BY_USER is the default value and can be managed by you or other users - # MANAGED_BY_ATTACHMENT is a BGP peer that is configured and managed by Cloud # Interconnect, specifically by an InterconnectAttachment of type PARTNER. # Google automatically creates, updates, and deletes this type of BGP peer when # the PARTNER InterconnectAttachment is created, updated, or deleted. # Corresponds to the JSON property `managementType` # @return [String] attr_accessor :management_type # Present if MD5 authentication is enabled for the peering. Must be the name of # one of the entries in the Router.md5_authentication_keys. The field must # comply with RFC1035. # Corresponds to the JSON property `md5AuthenticationKeyName` # @return [String] attr_accessor :md5_authentication_key_name # Name of this BGP peer. The name must be 1-63 characters long, and comply with # RFC1035. Specifically, the name must be 1-63 characters long and match the # regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first # character must be a lowercase letter, and all following characters must be a # dash, lowercase letter, or digit, except the last character, which cannot be a # dash. # Corresponds to the JSON property `name` # @return [String] attr_accessor :name # Peer BGP Autonomous System Number (ASN). Each BGP interface may use a # different value. # Corresponds to the JSON property `peerAsn` # @return [Fixnum] attr_accessor :peer_asn # IP address of the BGP interface outside Google Cloud Platform. Only IPv4 is # supported. # Corresponds to the JSON property `peerIpAddress` # @return [String] attr_accessor :peer_ip_address # IPv6 address of the BGP interface outside Google Cloud Platform. # Corresponds to the JSON property `peerIpv6NexthopAddress` # @return [String] attr_accessor :peer_ipv6_nexthop_address # URI of the VM instance that is used as third-party router appliances such as # Next Gen Firewalls, Virtual Routers, or Router Appliances. The VM instance # must be located in zones contained in the same region as this Cloud Router. # The VM instance is the peer side of the BGP session. # Corresponds to the JSON property `routerApplianceInstance` # @return [String] attr_accessor :router_appliance_instance def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @advertise_mode = args[:advertise_mode] if args.key?(:advertise_mode) @advertised_groups = args[:advertised_groups] if args.key?(:advertised_groups) @advertised_ip_ranges = args[:advertised_ip_ranges] if args.key?(:advertised_ip_ranges) @advertised_route_priority = args[:advertised_route_priority] if args.key?(:advertised_route_priority) @bfd = args[:bfd] if args.key?(:bfd) @enable = args[:enable] if args.key?(:enable) @enable_ipv6 = args[:enable_ipv6] if args.key?(:enable_ipv6) @interface_name = args[:interface_name] if args.key?(:interface_name) @ip_address = args[:ip_address] if args.key?(:ip_address) @ipv6_nexthop_address = args[:ipv6_nexthop_address] if args.key?(:ipv6_nexthop_address) @management_type = args[:management_type] if args.key?(:management_type) @md5_authentication_key_name = args[:md5_authentication_key_name] if args.key?(:md5_authentication_key_name) @name = args[:name] if args.key?(:name) @peer_asn = args[:peer_asn] if args.key?(:peer_asn) @peer_ip_address = args[:peer_ip_address] if args.key?(:peer_ip_address) @peer_ipv6_nexthop_address = args[:peer_ipv6_nexthop_address] if args.key?(:peer_ipv6_nexthop_address) @router_appliance_instance = args[:router_appliance_instance] if args.key?(:router_appliance_instance) end end # class RouterBgpPeerBfd include Google::Apis::Core::Hashable # The minimum interval, in milliseconds, between BFD control packets received # from the peer router. The actual value is negotiated between the two routers # and is equal to the greater of this value and the transmit interval of the # other router. If set, this value must be between 1000 and 30000. The default # is 1000. # Corresponds to the JSON property `minReceiveInterval` # @return [Fixnum] attr_accessor :min_receive_interval # The minimum interval, in milliseconds, between BFD control packets transmitted # to the peer router. The actual value is negotiated between the two routers and # is equal to the greater of this value and the corresponding receive interval # of the other router. If set, this value must be between 1000 and 30000. The # default is 1000. # Corresponds to the JSON property `minTransmitInterval` # @return [Fixnum] attr_accessor :min_transmit_interval # The BFD session initialization mode for this BGP peer. If set to ACTIVE, the # Cloud Router will initiate the BFD session for this BGP peer. If set to # PASSIVE, the Cloud Router will wait for the peer router to initiate the BFD # session for this BGP peer. If set to DISABLED, BFD is disabled for this BGP # peer. The default is PASSIVE. # Corresponds to the JSON property `mode` # @return [String] attr_accessor :mode # The number of consecutive BFD packets that must be missed before BFD declares # that a peer is unavailable. If set, the value must be a value between 5 and 16. # The default is 5. # Corresponds to the JSON property `multiplier` # @return [Fixnum] attr_accessor :multiplier # The BFD packet mode for this BGP peer. If set to CONTROL_AND_ECHO, BFD echo # mode is enabled for this BGP peer. In this mode, if the peer router also has # BFD echo mode enabled, BFD echo packets will be sent to the other router. If # the peer router does not have BFD echo mode enabled, only control packets will # be sent. If set to CONTROL_ONLY, BFD echo mode is disabled for this BGP peer. # If this router and the peer router have a multihop connection, this should be # set to CONTROL_ONLY as BFD echo mode is only supported on singlehop # connections. The default is CONTROL_AND_ECHO. # Corresponds to the JSON property `packetMode` # @return [String] attr_accessor :packet_mode # The BFD session initialization mode for this BGP peer. If set to ACTIVE, the # Cloud Router will initiate the BFD session for this BGP peer. If set to # PASSIVE, the Cloud Router will wait for the peer router to initiate the BFD # session for this BGP peer. If set to DISABLED, BFD is disabled for this BGP # peer. The default is DISABLED. # Corresponds to the JSON property `sessionInitializationMode` # @return [String] attr_accessor :session_initialization_mode # The minimum interval, in milliseconds, between BFD control packets transmitted # to and received from the peer router when BFD echo mode is enabled on both # routers. The actual transmit and receive intervals are negotiated between the # two routers and are equal to the greater of this value and the corresponding # interval on the other router. If set, this value must be between 1000 and # 30000. The default is 5000. # Corresponds to the JSON property `slowTimerInterval` # @return [Fixnum] attr_accessor :slow_timer_interval def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @min_receive_interval = args[:min_receive_interval] if args.key?(:min_receive_interval) @min_transmit_interval = args[:min_transmit_interval] if args.key?(:min_transmit_interval) @mode = args[:mode] if args.key?(:mode) @multiplier = args[:multiplier] if args.key?(:multiplier) @packet_mode = args[:packet_mode] if args.key?(:packet_mode) @session_initialization_mode = args[:session_initialization_mode] if args.key?(:session_initialization_mode) @slow_timer_interval = args[:slow_timer_interval] if args.key?(:slow_timer_interval) end end # class RouterInterface include Google::Apis::Core::Hashable # IP address and range of the interface. The IP range must be in the RFC3927 # link-local IP address space. The value must be a CIDR-formatted string, for # example: 169.254.0.1/30. NOTE: Do not truncate the address as it represents # the IP address of the interface. # Corresponds to the JSON property `ipRange` # @return [String] attr_accessor :ip_range # URI of the linked Interconnect attachment. It must be in the same region as # the router. Each interface can have one linked resource, which can be a VPN # tunnel, an Interconnect attachment, or a virtual machine instance. # Corresponds to the JSON property `linkedInterconnectAttachment` # @return [String] attr_accessor :linked_interconnect_attachment # URI of the linked VPN tunnel, which must be in the same region as the router. # Each interface can have one linked resource, which can be a VPN tunnel, an # Interconnect attachment, or a virtual machine instance. # Corresponds to the JSON property `linkedVpnTunnel` # @return [String] attr_accessor :linked_vpn_tunnel # [Output Only] The resource that configures and manages this interface. - # MANAGED_BY_USER is the default value and can be managed directly by users. - # MANAGED_BY_ATTACHMENT is an interface that is configured and managed by Cloud # Interconnect, specifically, by an InterconnectAttachment of type PARTNER. # Google automatically creates, updates, and deletes this type of interface when # the PARTNER InterconnectAttachment is created, updated, or deleted. # Corresponds to the JSON property `managementType` # @return [String] attr_accessor :management_type # Name of this interface entry. The name must be 1-63 characters long, and # comply with RFC1035. Specifically, the name must be 1-63 characters long and # match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the # first character must be a lowercase letter, and all following characters must # be a dash, lowercase letter, or digit, except the last character, which cannot # be a dash. # Corresponds to the JSON property `name` # @return [String] attr_accessor :name # The regional private internal IP address that is used to establish BGP # sessions to a VM instance acting as a third-party Router Appliance, such as a # Next Gen Firewall, a Virtual Router, or an SD-WAN VM. # Corresponds to the JSON property `privateIpAddress` # @return [String] attr_accessor :private_ip_address # Name of the interface that will be redundant with the current interface you # are creating. The redundantInterface must belong to the same Cloud Router as # the interface here. To establish the BGP session to a Router Appliance VM, you # must create two BGP peers. The two BGP peers must be attached to two separate # interfaces that are redundant with each other. The redundant_interface must be # 1-63 characters long, and comply with RFC1035. Specifically, the # redundant_interface must be 1-63 characters long and match the regular # expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first character must # be a lowercase letter, and all following characters must be a dash, lowercase # letter, or digit, except the last character, which cannot be a dash. # Corresponds to the JSON property `redundantInterface` # @return [String] attr_accessor :redundant_interface # The URI of the subnetwork resource that this interface belongs to, which must # be in the same region as the Cloud Router. When you establish a BGP session to # a VM instance using this interface, the VM instance must belong to the same # subnetwork as the subnetwork specified here. # Corresponds to the JSON property `subnetwork` # @return [String] attr_accessor :subnetwork def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @ip_range = args[:ip_range] if args.key?(:ip_range) @linked_interconnect_attachment = args[:linked_interconnect_attachment] if args.key?(:linked_interconnect_attachment) @linked_vpn_tunnel = args[:linked_vpn_tunnel] if args.key?(:linked_vpn_tunnel) @management_type = args[:management_type] if args.key?(:management_type) @name = args[:name] if args.key?(:name) @private_ip_address = args[:private_ip_address] if args.key?(:private_ip_address) @redundant_interface = args[:redundant_interface] if args.key?(:redundant_interface) @subnetwork = args[:subnetwork] if args.key?(:subnetwork) end end # Contains a list of Router resources. class RouterList include Google::Apis::Core::Hashable # [Output Only] Unique identifier for the resource; defined by the server. # Corresponds to the JSON property `id` # @return [String] attr_accessor :id # A list of Router resources. # Corresponds to the JSON property `items` # @return [Array] attr_accessor :items # [Output Only] Type of resource. Always compute#router for routers. # Corresponds to the JSON property `kind` # @return [String] attr_accessor :kind # [Output Only] This token allows you to get the next page of results for list # requests. If the number of results is larger than maxResults, use the # nextPageToken as a value for the query parameter pageToken in the next list # request. Subsequent list requests will have their own nextPageToken to # continue paging through the results. # Corresponds to the JSON property `nextPageToken` # @return [String] attr_accessor :next_page_token # [Output Only] Server-defined URL for this resource. # Corresponds to the JSON property `selfLink` # @return [String] attr_accessor :self_link # [Output Only] Informational warning message. # Corresponds to the JSON property `warning` # @return [Google::Apis::ComputeAlpha::RouterList::Warning] attr_accessor :warning def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @id = args[:id] if args.key?(:id) @items = args[:items] if args.key?(:items) @kind = args[:kind] if args.key?(:kind) @next_page_token = args[:next_page_token] if args.key?(:next_page_token) @self_link = args[:self_link] if args.key?(:self_link) @warning = args[:warning] if args.key?(:warning) end # [Output Only] Informational warning message. class Warning include Google::Apis::Core::Hashable # [Output Only] A warning code, if applicable. For example, Compute Engine # returns NO_RESULTS_ON_PAGE if there are no results in the response. # Corresponds to the JSON property `code` # @return [String] attr_accessor :code # [Output Only] Metadata about this warning in key: value format. For example: " # data": [ ` "key": "scope", "value": "zones/us-east1-d" ` # Corresponds to the JSON property `data` # @return [Array] attr_accessor :data # [Output Only] A human-readable description of the warning code. # Corresponds to the JSON property `message` # @return [String] attr_accessor :message def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @code = args[:code] if args.key?(:code) @data = args[:data] if args.key?(:data) @message = args[:message] if args.key?(:message) end # class Datum include Google::Apis::Core::Hashable # [Output Only] A key that provides more detail on the warning being returned. # For example, for warnings where there are no results in a list request for a # particular zone, this key might be scope and the key value might be the zone # name. Other examples might be a key indicating a deprecated resource and a # suggested replacement, or a warning about invalid network settings (for # example, if an instance attempts to perform IP forwarding but is not enabled # for IP forwarding). # Corresponds to the JSON property `key` # @return [String] attr_accessor :key # [Output Only] A warning data value corresponding to the key. # 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 end end # class RouterMd5AuthenticationKey include Google::Apis::Core::Hashable # [Input only] Value of the key. For patch and update calls, it can be skipped # to copy the value from the previous configuration. This is allowed if the key # with the same name existed before the operation. Maximum length is 80 # characters. Can only contain printable ASCII characters. # Corresponds to the JSON property `key` # @return [String] attr_accessor :key # Name used to identify the key. Must be unique within a router. Must be # referenced by at least one bgpPeer. Must comply with RFC1035. # 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) @key = args[:key] if args.key?(:key) @name = args[:name] if args.key?(:name) end end # Represents a Nat resource. It enables the VMs within the specified subnetworks # to access Internet without external IP addresses. It specifies a list of # subnetworks (and the ranges within) that want to use NAT. Customers can also # provide the external IPs that would be used for NAT. GCP would auto-allocate # ephemeral IPs if no external IPs are provided. class RouterNat include Google::Apis::Core::Hashable # A list of URLs of the IP resources to be drained. These IPs must be valid # static external IPs that have been assigned to the NAT. These IPs should be # used for updating/patching a NAT only. # Corresponds to the JSON property `drainNatIps` # @return [Array] attr_accessor :drain_nat_ips # Enable Dynamic Port Allocation. If not specified, it is disabled by default. # If set to true, - Dynamic Port Allocation will be enabled on this NAT config. - # enableEndpointIndependentMapping cannot be set to true. - If minPorts is set, # minPortsPerVm must be set to a power of two greater than or equal to 32. If # minPortsPerVm is not set, a minimum of 32 ports will be allocated to a VM from # this NAT config. # Corresponds to the JSON property `enableDynamicPortAllocation` # @return [Boolean] attr_accessor :enable_dynamic_port_allocation alias_method :enable_dynamic_port_allocation?, :enable_dynamic_port_allocation # # Corresponds to the JSON property `enableEndpointIndependentMapping` # @return [Boolean] attr_accessor :enable_endpoint_independent_mapping alias_method :enable_endpoint_independent_mapping?, :enable_endpoint_independent_mapping # List of Natted endpoint types supported by the Nat Gateway. If the list is # empty, then it will be equivalent to include ENDPOINT_TYPE_VM # Corresponds to the JSON property `endpointTypes` # @return [Array] attr_accessor :endpoint_types # Timeout (in seconds) for ICMP connections. Defaults to 30s if not set. # Corresponds to the JSON property `icmpIdleTimeoutSec` # @return [Fixnum] attr_accessor :icmp_idle_timeout_sec # Configuration of logging on a NAT. # Corresponds to the JSON property `logConfig` # @return [Google::Apis::ComputeAlpha::RouterNatLogConfig] attr_accessor :log_config # Maximum number of ports allocated to a VM from this NAT config when Dynamic # Port Allocation is enabled. If Dynamic Port Allocation is not enabled, this # field has no effect. If Dynamic Port Allocation is enabled, and this field is # set, it must be set to a power of two greater than minPortsPerVm, or 64 if # minPortsPerVm is not set. If Dynamic Port Allocation is enabled and this field # is not set, a maximum of 65536 ports will be allocated to a VM from this NAT # config. # Corresponds to the JSON property `maxPortsPerVm` # @return [Fixnum] attr_accessor :max_ports_per_vm # Minimum number of ports allocated to a VM from this NAT config. If not set, a # default number of ports is allocated to a VM. This is rounded up to the # nearest power of 2. For example, if the value of this field is 50, at least 64 # ports are allocated to a VM. # Corresponds to the JSON property `minPortsPerVm` # @return [Fixnum] attr_accessor :min_ports_per_vm # Unique name of this Nat service. The name must be 1-63 characters long and # comply with RFC1035. # Corresponds to the JSON property `name` # @return [String] attr_accessor :name # Specify the NatIpAllocateOption, which can take one of the following values: - # MANUAL_ONLY: Uses only Nat IP addresses provided by customers. When there are # not enough specified Nat IPs, the Nat service fails for new VMs. - AUTO_ONLY: # Nat IPs are allocated by Google Cloud Platform; customers can't specify any # Nat IPs. When choosing AUTO_ONLY, then nat_ip should be empty. # Corresponds to the JSON property `natIpAllocateOption` # @return [String] attr_accessor :nat_ip_allocate_option # A list of URLs of the IP resources used for this Nat service. These IP # addresses must be valid static external IP addresses assigned to the project. # Corresponds to the JSON property `natIps` # @return [Array] attr_accessor :nat_ips # A list of rules associated with this NAT. # Corresponds to the JSON property `rules` # @return [Array] attr_accessor :rules # Specify the Nat option, which can take one of the following values: - # ALL_SUBNETWORKS_ALL_IP_RANGES: All of the IP ranges in every Subnetwork are # allowed to Nat. - ALL_SUBNETWORKS_ALL_PRIMARY_IP_RANGES: All of the primary IP # ranges in every Subnetwork are allowed to Nat. - LIST_OF_SUBNETWORKS: A list # of Subnetworks are allowed to Nat (specified in the field subnetwork below) # The default is SUBNETWORK_IP_RANGE_TO_NAT_OPTION_UNSPECIFIED. Note that if # this field contains ALL_SUBNETWORKS_ALL_IP_RANGES or # ALL_SUBNETWORKS_ALL_PRIMARY_IP_RANGES, then there should not be any other # Router.Nat section in any Router for this network in this region. # Corresponds to the JSON property `sourceSubnetworkIpRangesToNat` # @return [String] attr_accessor :source_subnetwork_ip_ranges_to_nat # A list of Subnetwork resources whose traffic should be translated by NAT # Gateway. It is used only when LIST_OF_SUBNETWORKS is selected for the # SubnetworkIpRangeToNatOption above. # Corresponds to the JSON property `subnetworks` # @return [Array] attr_accessor :subnetworks # Timeout (in seconds) for TCP established connections. Defaults to 1200s if not # set. # Corresponds to the JSON property `tcpEstablishedIdleTimeoutSec` # @return [Fixnum] attr_accessor :tcp_established_idle_timeout_sec # Timeout (in seconds) for TCP connections that are in TIME_WAIT state. Defaults # to 120s if not set. # Corresponds to the JSON property `tcpTimeWaitTimeoutSec` # @return [Fixnum] attr_accessor :tcp_time_wait_timeout_sec # Timeout (in seconds) for TCP transitory connections. Defaults to 30s if not # set. # Corresponds to the JSON property `tcpTransitoryIdleTimeoutSec` # @return [Fixnum] attr_accessor :tcp_transitory_idle_timeout_sec # Indicates whether this NAT is used for public or private IP translation. If # unspecified, it defaults to PUBLIC. # Corresponds to the JSON property `type` # @return [String] attr_accessor :type # Timeout (in seconds) for UDP connections. Defaults to 30s if not set. # Corresponds to the JSON property `udpIdleTimeoutSec` # @return [Fixnum] attr_accessor :udp_idle_timeout_sec def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @drain_nat_ips = args[:drain_nat_ips] if args.key?(:drain_nat_ips) @enable_dynamic_port_allocation = args[:enable_dynamic_port_allocation] if args.key?(:enable_dynamic_port_allocation) @enable_endpoint_independent_mapping = args[:enable_endpoint_independent_mapping] if args.key?(:enable_endpoint_independent_mapping) @endpoint_types = args[:endpoint_types] if args.key?(:endpoint_types) @icmp_idle_timeout_sec = args[:icmp_idle_timeout_sec] if args.key?(:icmp_idle_timeout_sec) @log_config = args[:log_config] if args.key?(:log_config) @max_ports_per_vm = args[:max_ports_per_vm] if args.key?(:max_ports_per_vm) @min_ports_per_vm = args[:min_ports_per_vm] if args.key?(:min_ports_per_vm) @name = args[:name] if args.key?(:name) @nat_ip_allocate_option = args[:nat_ip_allocate_option] if args.key?(:nat_ip_allocate_option) @nat_ips = args[:nat_ips] if args.key?(:nat_ips) @rules = args[:rules] if args.key?(:rules) @source_subnetwork_ip_ranges_to_nat = args[:source_subnetwork_ip_ranges_to_nat] if args.key?(:source_subnetwork_ip_ranges_to_nat) @subnetworks = args[:subnetworks] if args.key?(:subnetworks) @tcp_established_idle_timeout_sec = args[:tcp_established_idle_timeout_sec] if args.key?(:tcp_established_idle_timeout_sec) @tcp_time_wait_timeout_sec = args[:tcp_time_wait_timeout_sec] if args.key?(:tcp_time_wait_timeout_sec) @tcp_transitory_idle_timeout_sec = args[:tcp_transitory_idle_timeout_sec] if args.key?(:tcp_transitory_idle_timeout_sec) @type = args[:type] if args.key?(:type) @udp_idle_timeout_sec = args[:udp_idle_timeout_sec] if args.key?(:udp_idle_timeout_sec) end end # Configuration of logging on a NAT. class RouterNatLogConfig include Google::Apis::Core::Hashable # Indicates whether or not to export logs. This is false by default. # Corresponds to the JSON property `enable` # @return [Boolean] attr_accessor :enable alias_method :enable?, :enable # Specify the desired filtering of logs on this NAT. If unspecified, logs are # exported for all connections handled by this NAT. This option can take one of # the following values: - ERRORS_ONLY: Export logs only for connection failures. # - TRANSLATIONS_ONLY: Export logs only for successful connections. - ALL: # Export logs for all connections, successful and unsuccessful. # Corresponds to the JSON property `filter` # @return [String] attr_accessor :filter def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @enable = args[:enable] if args.key?(:enable) @filter = args[:filter] if args.key?(:filter) end end # class RouterNatRule include Google::Apis::Core::Hashable # The action to be enforced for traffic that matches this rule. # Corresponds to the JSON property `action` # @return [Google::Apis::ComputeAlpha::RouterNatRuleAction] attr_accessor :action # An optional description of this rule. # Corresponds to the JSON property `description` # @return [String] attr_accessor :description # CEL expression that specifies the match condition that egress traffic from a # VM is evaluated against. If it evaluates to true, the corresponding `action` # is enforced. The following examples are valid match expressions for public NAT: # "inIpRange(destination.ip, '1.1.0.0/16') || inIpRange(destination.ip, '2.2.0. # 0/16')" "destination.ip == '1.1.0.1' || destination.ip == '8.8.8.8'" The # following example is a valid match expression for private NAT: "nexthop.hub == # 'https://networkconnectivity.googleapis.com/v1alpha1/projects/my-project/ # global/hub/hub-1'" # Corresponds to the JSON property `match` # @return [String] attr_accessor :match # An integer uniquely identifying a rule in the list. The rule number must be a # positive value between 0 and 65000, and must be unique among rules within a # NAT. # Corresponds to the JSON property `ruleNumber` # @return [Fixnum] attr_accessor :rule_number def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @action = args[:action] if args.key?(:action) @description = args[:description] if args.key?(:description) @match = args[:match] if args.key?(:match) @rule_number = args[:rule_number] if args.key?(:rule_number) end end # class RouterNatRuleAction include Google::Apis::Core::Hashable # A list of URLs of the IP resources used for this NAT rule. These IP addresses # must be valid static external IP addresses assigned to the project. This field # is used for public NAT. # Corresponds to the JSON property `sourceNatActiveIps` # @return [Array] attr_accessor :source_nat_active_ips # A list of URLs of the subnetworks used as source ranges for this NAT Rule. # These subnetworks must have purpose set to PRIVATE_NAT. This field is used for # private NAT. # Corresponds to the JSON property `sourceNatActiveRanges` # @return [Array] attr_accessor :source_nat_active_ranges # A list of URLs of the IP resources to be drained. These IPs must be valid # static external IPs that have been assigned to the NAT. These IPs should be # used for updating/patching a NAT rule only. This field is used for public NAT. # Corresponds to the JSON property `sourceNatDrainIps` # @return [Array] attr_accessor :source_nat_drain_ips # A list of URLs of subnetworks representing source ranges to be drained. This # is only supported on patch/update, and these subnetworks must have previously # been used as active ranges in this NAT Rule. This field is used for private # NAT. # Corresponds to the JSON property `sourceNatDrainRanges` # @return [Array] attr_accessor :source_nat_drain_ranges def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @source_nat_active_ips = args[:source_nat_active_ips] if args.key?(:source_nat_active_ips) @source_nat_active_ranges = args[:source_nat_active_ranges] if args.key?(:source_nat_active_ranges) @source_nat_drain_ips = args[:source_nat_drain_ips] if args.key?(:source_nat_drain_ips) @source_nat_drain_ranges = args[:source_nat_drain_ranges] if args.key?(:source_nat_drain_ranges) end end # Defines the IP ranges that want to use NAT for a subnetwork. class RouterNatSubnetworkToNat include Google::Apis::Core::Hashable # URL for the subnetwork resource that will use NAT. # Corresponds to the JSON property `name` # @return [String] attr_accessor :name # A list of the secondary ranges of the Subnetwork that are allowed to use NAT. # This can be populated only if "LIST_OF_SECONDARY_IP_RANGES" is one of the # values in source_ip_ranges_to_nat. # Corresponds to the JSON property `secondaryIpRangeNames` # @return [Array] attr_accessor :secondary_ip_range_names # Specify the options for NAT ranges in the Subnetwork. All options of a single # value are valid except NAT_IP_RANGE_OPTION_UNSPECIFIED. The only valid option # with multiple values is: ["PRIMARY_IP_RANGE", "LIST_OF_SECONDARY_IP_RANGES"] # Default: [ALL_IP_RANGES] # Corresponds to the JSON property `sourceIpRangesToNat` # @return [Array] attr_accessor :source_ip_ranges_to_nat def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @name = args[:name] if args.key?(:name) @secondary_ip_range_names = args[:secondary_ip_range_names] if args.key?(:secondary_ip_range_names) @source_ip_ranges_to_nat = args[:source_ip_ranges_to_nat] if args.key?(:source_ip_ranges_to_nat) end end # class RouterStatus include Google::Apis::Core::Hashable # Best routes for this router's network. # Corresponds to the JSON property `bestRoutes` # @return [Array] attr_accessor :best_routes # Best routes learned by this router. # Corresponds to the JSON property `bestRoutesForRouter` # @return [Array] attr_accessor :best_routes_for_router # # Corresponds to the JSON property `bgpPeerStatus` # @return [Array] attr_accessor :bgp_peer_status # # Corresponds to the JSON property `natStatus` # @return [Array] attr_accessor :nat_status # URI of the network to which this router belongs. # Corresponds to the JSON property `network` # @return [String] attr_accessor :network def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @best_routes = args[:best_routes] if args.key?(:best_routes) @best_routes_for_router = args[:best_routes_for_router] if args.key?(:best_routes_for_router) @bgp_peer_status = args[:bgp_peer_status] if args.key?(:bgp_peer_status) @nat_status = args[:nat_status] if args.key?(:nat_status) @network = args[:network] if args.key?(:network) end end # class RouterStatusBgpPeerStatus include Google::Apis::Core::Hashable # Routes that were advertised to the remote BGP peer # Corresponds to the JSON property `advertisedRoutes` # @return [Array] attr_accessor :advertised_routes # Next free: 15 # Corresponds to the JSON property `bfdStatus` # @return [Google::Apis::ComputeAlpha::BfdStatus] attr_accessor :bfd_status # Enable IPv6 traffic over BGP Peer. If not specified, it is disabled by default. # Corresponds to the JSON property `enableIpv6` # @return [Boolean] attr_accessor :enable_ipv6 alias_method :enable_ipv6?, :enable_ipv6 # IP address of the local BGP interface. # Corresponds to the JSON property `ipAddress` # @return [String] attr_accessor :ip_address # IPv6 address of the local BGP interface. # Corresponds to the JSON property `ipv6NexthopAddress` # @return [String] attr_accessor :ipv6_nexthop_address # URL of the VPN tunnel that this BGP peer controls. # Corresponds to the JSON property `linkedVpnTunnel` # @return [String] attr_accessor :linked_vpn_tunnel # Informs whether MD5 authentication is enabled on this BGP peer. # Corresponds to the JSON property `md5AuthEnabled` # @return [Boolean] attr_accessor :md5_auth_enabled alias_method :md5_auth_enabled?, :md5_auth_enabled # Name of this BGP peer. Unique within the Routers resource. # Corresponds to the JSON property `name` # @return [String] attr_accessor :name # Number of routes learned from the remote BGP Peer. # Corresponds to the JSON property `numLearnedRoutes` # @return [Fixnum] attr_accessor :num_learned_routes # IP address of the remote BGP interface. # Corresponds to the JSON property `peerIpAddress` # @return [String] attr_accessor :peer_ip_address # IPv6 address of the remote BGP interface. # Corresponds to the JSON property `peerIpv6NexthopAddress` # @return [String] attr_accessor :peer_ipv6_nexthop_address # [Output only] URI of the VM instance that is used as third-party router # appliances such as Next Gen Firewalls, Virtual Routers, or Router Appliances. # The VM instance is the peer side of the BGP session. # Corresponds to the JSON property `routerApplianceInstance` # @return [String] attr_accessor :router_appliance_instance # The state of the BGP session. For a list of possible values for this field, # see BGP session states. # Corresponds to the JSON property `state` # @return [String] attr_accessor :state # Status of the BGP peer: `UP, DOWN` # Corresponds to the JSON property `status` # @return [String] attr_accessor :status # Indicates why particular status was returned. # Corresponds to the JSON property `statusReason` # @return [String] attr_accessor :status_reason # Time this session has been up. Format: 14 years, 51 weeks, 6 days, 23 hours, # 59 minutes, 59 seconds # Corresponds to the JSON property `uptime` # @return [String] attr_accessor :uptime # Time this session has been up, in seconds. Format: 145 # Corresponds to the JSON property `uptimeSeconds` # @return [String] attr_accessor :uptime_seconds def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @advertised_routes = args[:advertised_routes] if args.key?(:advertised_routes) @bfd_status = args[:bfd_status] if args.key?(:bfd_status) @enable_ipv6 = args[:enable_ipv6] if args.key?(:enable_ipv6) @ip_address = args[:ip_address] if args.key?(:ip_address) @ipv6_nexthop_address = args[:ipv6_nexthop_address] if args.key?(:ipv6_nexthop_address) @linked_vpn_tunnel = args[:linked_vpn_tunnel] if args.key?(:linked_vpn_tunnel) @md5_auth_enabled = args[:md5_auth_enabled] if args.key?(:md5_auth_enabled) @name = args[:name] if args.key?(:name) @num_learned_routes = args[:num_learned_routes] if args.key?(:num_learned_routes) @peer_ip_address = args[:peer_ip_address] if args.key?(:peer_ip_address) @peer_ipv6_nexthop_address = args[:peer_ipv6_nexthop_address] if args.key?(:peer_ipv6_nexthop_address) @router_appliance_instance = args[:router_appliance_instance] if args.key?(:router_appliance_instance) @state = args[:state] if args.key?(:state) @status = args[:status] if args.key?(:status) @status_reason = args[:status_reason] if args.key?(:status_reason) @uptime = args[:uptime] if args.key?(:uptime) @uptime_seconds = args[:uptime_seconds] if args.key?(:uptime_seconds) end end # Status of a NAT contained in this router. class RouterStatusNatStatus include Google::Apis::Core::Hashable # A list of IPs auto-allocated for NAT. Example: ["1.1.1.1", "129.2.16.89"] # Corresponds to the JSON property `autoAllocatedNatIps` # @return [Array] attr_accessor :auto_allocated_nat_ips # A list of IPs auto-allocated for NAT that are in drain mode. Example: ["1.1.1. # 1", "179.12.26.133"]. # Corresponds to the JSON property `drainAutoAllocatedNatIps` # @return [Array] attr_accessor :drain_auto_allocated_nat_ips # A list of IPs user-allocated for NAT that are in drain mode. Example: ["1.1.1. # 1", "179.12.26.133"]. # Corresponds to the JSON property `drainUserAllocatedNatIps` # @return [Array] attr_accessor :drain_user_allocated_nat_ips # The number of extra IPs to allocate. This will be greater than 0 only if user- # specified IPs are NOT enough to allow all configured VMs to use NAT. This # value is meaningful only when auto-allocation of NAT IPs is *not* used. # Corresponds to the JSON property `minExtraNatIpsNeeded` # @return [Fixnum] attr_accessor :min_extra_nat_ips_needed # Unique name of this NAT. # Corresponds to the JSON property `name` # @return [String] attr_accessor :name # Number of VM endpoints (i.e., Nics) that can use NAT. # Corresponds to the JSON property `numVmEndpointsWithNatMappings` # @return [Fixnum] attr_accessor :num_vm_endpoints_with_nat_mappings # Status of rules in this NAT. # Corresponds to the JSON property `ruleStatus` # @return [Array] attr_accessor :rule_status # A list of fully qualified URLs of reserved IP address resources. # Corresponds to the JSON property `userAllocatedNatIpResources` # @return [Array] attr_accessor :user_allocated_nat_ip_resources # A list of IPs user-allocated for NAT. They will be raw IP strings like "179.12. # 26.133". # Corresponds to the JSON property `userAllocatedNatIps` # @return [Array] attr_accessor :user_allocated_nat_ips def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @auto_allocated_nat_ips = args[:auto_allocated_nat_ips] if args.key?(:auto_allocated_nat_ips) @drain_auto_allocated_nat_ips = args[:drain_auto_allocated_nat_ips] if args.key?(:drain_auto_allocated_nat_ips) @drain_user_allocated_nat_ips = args[:drain_user_allocated_nat_ips] if args.key?(:drain_user_allocated_nat_ips) @min_extra_nat_ips_needed = args[:min_extra_nat_ips_needed] if args.key?(:min_extra_nat_ips_needed) @name = args[:name] if args.key?(:name) @num_vm_endpoints_with_nat_mappings = args[:num_vm_endpoints_with_nat_mappings] if args.key?(:num_vm_endpoints_with_nat_mappings) @rule_status = args[:rule_status] if args.key?(:rule_status) @user_allocated_nat_ip_resources = args[:user_allocated_nat_ip_resources] if args.key?(:user_allocated_nat_ip_resources) @user_allocated_nat_ips = args[:user_allocated_nat_ips] if args.key?(:user_allocated_nat_ips) end end # Status of a NAT Rule contained in this NAT. class RouterStatusNatStatusNatRuleStatus include Google::Apis::Core::Hashable # A list of active IPs for NAT. Example: ["1.1.1.1", "179.12.26.133"]. # Corresponds to the JSON property `activeNatIps` # @return [Array] attr_accessor :active_nat_ips # A list of IPs for NAT that are in drain mode. Example: ["1.1.1.1", "179.12.26. # 133"]. # Corresponds to the JSON property `drainNatIps` # @return [Array] attr_accessor :drain_nat_ips # The number of extra IPs to allocate. This will be greater than 0 only if the # existing IPs in this NAT Rule are NOT enough to allow all configured VMs to # use NAT. # Corresponds to the JSON property `minExtraIpsNeeded` # @return [Fixnum] attr_accessor :min_extra_ips_needed # Number of VM endpoints (i.e., NICs) that have NAT Mappings from this NAT Rule. # Corresponds to the JSON property `numVmEndpointsWithNatMappings` # @return [Fixnum] attr_accessor :num_vm_endpoints_with_nat_mappings # Rule number of the rule. # Corresponds to the JSON property `ruleNumber` # @return [Fixnum] attr_accessor :rule_number def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @active_nat_ips = args[:active_nat_ips] if args.key?(:active_nat_ips) @drain_nat_ips = args[:drain_nat_ips] if args.key?(:drain_nat_ips) @min_extra_ips_needed = args[:min_extra_ips_needed] if args.key?(:min_extra_ips_needed) @num_vm_endpoints_with_nat_mappings = args[:num_vm_endpoints_with_nat_mappings] if args.key?(:num_vm_endpoints_with_nat_mappings) @rule_number = args[:rule_number] if args.key?(:rule_number) end end # class RouterStatusResponse include Google::Apis::Core::Hashable # Type of resource. # Corresponds to the JSON property `kind` # @return [String] attr_accessor :kind # # Corresponds to the JSON property `result` # @return [Google::Apis::ComputeAlpha::RouterStatus] attr_accessor :result def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @kind = args[:kind] if args.key?(:kind) @result = args[:result] if args.key?(:result) end end # class RoutersPreviewResponse include Google::Apis::Core::Hashable # Represents a Cloud Router resource. For more information about Cloud Router, # read the Cloud Router overview. # Corresponds to the JSON property `resource` # @return [Google::Apis::ComputeAlpha::Router] attr_accessor :resource def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @resource = args[:resource] if args.key?(:resource) end end # class RoutersScopedList include Google::Apis::Core::Hashable # A list of routers contained in this scope. # Corresponds to the JSON property `routers` # @return [Array] attr_accessor :routers # Informational warning which replaces the list of routers when the list is # empty. # Corresponds to the JSON property `warning` # @return [Google::Apis::ComputeAlpha::RoutersScopedList::Warning] attr_accessor :warning def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @routers = args[:routers] if args.key?(:routers) @warning = args[:warning] if args.key?(:warning) end # Informational warning which replaces the list of routers when the list is # empty. class Warning include Google::Apis::Core::Hashable # [Output Only] A warning code, if applicable. For example, Compute Engine # returns NO_RESULTS_ON_PAGE if there are no results in the response. # Corresponds to the JSON property `code` # @return [String] attr_accessor :code # [Output Only] Metadata about this warning in key: value format. For example: " # data": [ ` "key": "scope", "value": "zones/us-east1-d" ` # Corresponds to the JSON property `data` # @return [Array] attr_accessor :data # [Output Only] A human-readable description of the warning code. # Corresponds to the JSON property `message` # @return [String] attr_accessor :message def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @code = args[:code] if args.key?(:code) @data = args[:data] if args.key?(:data) @message = args[:message] if args.key?(:message) end # class Datum include Google::Apis::Core::Hashable # [Output Only] A key that provides more detail on the warning being returned. # For example, for warnings where there are no results in a list request for a # particular zone, this key might be scope and the key value might be the zone # name. Other examples might be a key indicating a deprecated resource and a # suggested replacement, or a warning about invalid network settings (for # example, if an instance attempts to perform IP forwarding but is not enabled # for IP forwarding). # Corresponds to the JSON property `key` # @return [String] attr_accessor :key # [Output Only] A warning data value corresponding to the key. # 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 end end # This is deprecated and has no effect. Do not use. class Rule include Google::Apis::Core::Hashable # This is deprecated and has no effect. Do not use. # Corresponds to the JSON property `action` # @return [String] attr_accessor :action # This is deprecated and has no effect. Do not use. # Corresponds to the JSON property `conditions` # @return [Array] attr_accessor :conditions # This is deprecated and has no effect. Do not use. # Corresponds to the JSON property `description` # @return [String] attr_accessor :description # This is deprecated and has no effect. Do not use. # Corresponds to the JSON property `ins` # @return [Array] attr_accessor :ins # This is deprecated and has no effect. Do not use. # Corresponds to the JSON property `logConfigs` # @return [Array] attr_accessor :log_configs # This is deprecated and has no effect. Do not use. # Corresponds to the JSON property `notIns` # @return [Array] attr_accessor :not_ins # This is deprecated and has no effect. Do not use. # Corresponds to the JSON property `permissions` # @return [Array] attr_accessor :permissions def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @action = args[:action] if args.key?(:action) @conditions = args[:conditions] if args.key?(:conditions) @description = args[:description] if args.key?(:description) @ins = args[:ins] if args.key?(:ins) @log_configs = args[:log_configs] if args.key?(:log_configs) @not_ins = args[:not_ins] if args.key?(:not_ins) @permissions = args[:permissions] if args.key?(:permissions) end end # class SslHealthCheck include Google::Apis::Core::Hashable # The TCP port number for the health check request. The default value is 443. # Valid values are 1 through 65535. # Corresponds to the JSON property `port` # @return [Fixnum] attr_accessor :port # Port name as defined in InstanceGroup#NamedPort#name. If both port and # port_name are defined, port takes precedence. # Corresponds to the JSON property `portName` # @return [String] attr_accessor :port_name # Specifies how port is selected for health checking, can be one of following # values: USE_FIXED_PORT: The port number in port is used for health checking. # USE_NAMED_PORT: The portName is used for health checking. USE_SERVING_PORT: # For NetworkEndpointGroup, the port specified for each network endpoint is used # for health checking. For other backends, the port or named port specified in # the Backend Service is used for health checking. If not specified, SSL health # check follows behavior specified in port and portName fields. # Corresponds to the JSON property `portSpecification` # @return [String] attr_accessor :port_specification # Specifies the type of proxy header to append before sending data to the # backend, either NONE or PROXY_V1. The default is NONE. # Corresponds to the JSON property `proxyHeader` # @return [String] attr_accessor :proxy_header # The application data to send once the SSL connection has been established ( # default value is empty). If both request and response are empty, the # connection establishment alone will indicate health. The request data can only # be ASCII. # Corresponds to the JSON property `request` # @return [String] attr_accessor :request # The bytes to match against the beginning of the response data. If left empty ( # the default value), any response will indicate health. The response data can # only be ASCII. # Corresponds to the JSON property `response` # @return [String] attr_accessor :response def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @port = args[:port] if args.key?(:port) @port_name = args[:port_name] if args.key?(:port_name) @port_specification = args[:port_specification] if args.key?(:port_specification) @proxy_header = args[:proxy_header] if args.key?(:proxy_header) @request = args[:request] if args.key?(:request) @response = args[:response] if args.key?(:response) end end # DEPRECATED: Please use compute#savedDisk instead. An instance-attached disk # resource. class SavedAttachedDisk include Google::Apis::Core::Hashable # Specifies whether the disk will be auto-deleted when the instance is deleted ( # but not when the disk is detached from the instance). # Corresponds to the JSON property `autoDelete` # @return [Boolean] attr_accessor :auto_delete alias_method :auto_delete?, :auto_delete # Indicates that this is a boot disk. The virtual machine will use the first # partition of the disk for its root filesystem. # Corresponds to the JSON property `boot` # @return [Boolean] attr_accessor :boot alias_method :boot?, :boot # Specifies the name of the disk attached to the source instance. # Corresponds to the JSON property `deviceName` # @return [String] attr_accessor :device_name # The encryption key for the disk. # Corresponds to the JSON property `diskEncryptionKey` # @return [Google::Apis::ComputeAlpha::CustomerEncryptionKey] attr_accessor :disk_encryption_key # The size of the disk in base-2 GB. # Corresponds to the JSON property `diskSizeGb` # @return [Fixnum] attr_accessor :disk_size_gb # [Output Only] URL of the disk type resource. For example: projects/project / # zones/zone/diskTypes/pd-standard or pd-ssd # Corresponds to the JSON property `diskType` # @return [String] attr_accessor :disk_type # A list of features to enable on the guest operating system. Applicable only # for bootable images. Read Enabling guest operating system features to see a # list of available options. # Corresponds to the JSON property `guestOsFeatures` # @return [Array] attr_accessor :guest_os_features # Specifies zero-based index of the disk that is attached to the source instance. # Corresponds to the JSON property `index` # @return [Fixnum] attr_accessor :index # Specifies the disk interface to use for attaching this disk, which is either # SCSI or NVME. # Corresponds to the JSON property `interface` # @return [String] attr_accessor :interface # [Output Only] Type of the resource. Always compute#attachedDisk for attached # disks. # Corresponds to the JSON property `kind` # @return [String] attr_accessor :kind # [Output Only] Any valid publicly visible licenses. # Corresponds to the JSON property `licenses` # @return [Array] attr_accessor :licenses # The mode in which this disk is attached to the source instance, either # READ_WRITE or READ_ONLY. # Corresponds to the JSON property `mode` # @return [String] attr_accessor :mode # Specifies a URL of the disk attached to the source instance. # Corresponds to the JSON property `source` # @return [String] attr_accessor :source # [Output Only] A size of the storage used by the disk's snapshot by this # machine image. # Corresponds to the JSON property `storageBytes` # @return [Fixnum] attr_accessor :storage_bytes # [Output Only] An indicator whether storageBytes is in a stable state or it is # being adjusted as a result of shared storage reallocation. This status can # either be UPDATING, meaning the size of the snapshot is being updated, or # UP_TO_DATE, meaning the size of the snapshot is up-to-date. # Corresponds to the JSON property `storageBytesStatus` # @return [String] attr_accessor :storage_bytes_status # Specifies the type of the attached disk, either SCRATCH or PERSISTENT. # 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) @auto_delete = args[:auto_delete] if args.key?(:auto_delete) @boot = args[:boot] if args.key?(:boot) @device_name = args[:device_name] if args.key?(:device_name) @disk_encryption_key = args[:disk_encryption_key] if args.key?(:disk_encryption_key) @disk_size_gb = args[:disk_size_gb] if args.key?(:disk_size_gb) @disk_type = args[:disk_type] if args.key?(:disk_type) @guest_os_features = args[:guest_os_features] if args.key?(:guest_os_features) @index = args[:index] if args.key?(:index) @interface = args[:interface] if args.key?(:interface) @kind = args[:kind] if args.key?(:kind) @licenses = args[:licenses] if args.key?(:licenses) @mode = args[:mode] if args.key?(:mode) @source = args[:source] if args.key?(:source) @storage_bytes = args[:storage_bytes] if args.key?(:storage_bytes) @storage_bytes_status = args[:storage_bytes_status] if args.key?(:storage_bytes_status) @type = args[:type] if args.key?(:type) end end # An instance-attached disk resource. class SavedDisk include Google::Apis::Core::Hashable # [Output Only] Type of the resource. Always compute#savedDisk for attached # disks. # Corresponds to the JSON property `kind` # @return [String] attr_accessor :kind # Specifies a URL of the disk attached to the source instance. # Corresponds to the JSON property `sourceDisk` # @return [String] attr_accessor :source_disk # [Output Only] Size of the individual disk snapshot used by this machine image. # Corresponds to the JSON property `storageBytes` # @return [Fixnum] attr_accessor :storage_bytes # [Output Only] An indicator whether storageBytes is in a stable state or it is # being adjusted as a result of shared storage reallocation. This status can # either be UPDATING, meaning the size of the snapshot is being updated, or # UP_TO_DATE, meaning the size of the snapshot is up-to-date. # Corresponds to the JSON property `storageBytesStatus` # @return [String] attr_accessor :storage_bytes_status def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @kind = args[:kind] if args.key?(:kind) @source_disk = args[:source_disk] if args.key?(:source_disk) @storage_bytes = args[:storage_bytes] if args.key?(:storage_bytes) @storage_bytes_status = args[:storage_bytes_status] if args.key?(:storage_bytes_status) end end # class ScalingScheduleStatus include Google::Apis::Core::Hashable # [Output Only] The last time the scaling schedule became active. Note: this is # a timestamp when a schedule actually became active, not when it was planned to # do so. The timestamp is in RFC3339 text format. # Corresponds to the JSON property `lastStartTime` # @return [String] attr_accessor :last_start_time # [Output Only] The next time the scaling schedule is to become active. Note: # this is a timestamp when a schedule is planned to run, but the actual time # might be slightly different. The timestamp is in RFC3339 text format. # Corresponds to the JSON property `nextStartTime` # @return [String] attr_accessor :next_start_time # [Output Only] The current state of a scaling schedule. # Corresponds to the JSON property `state` # @return [String] attr_accessor :state def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @last_start_time = args[:last_start_time] if args.key?(:last_start_time) @next_start_time = args[:next_start_time] if args.key?(:next_start_time) @state = args[:state] if args.key?(:state) end end # Sets the scheduling options for an Instance. NextID: 21 class Scheduling include Google::Apis::Core::Hashable # Specifies whether the instance should be automatically restarted if it is # terminated by Compute Engine (not terminated by a user). You can only set the # automatic restart option for standard instances. Preemptible instances cannot # be automatically restarted. By default, this is set to true so an instance is # automatically restarted if it is terminated by Compute Engine. # Corresponds to the JSON property `automaticRestart` # @return [Boolean] attr_accessor :automatic_restart alias_method :automatic_restart?, :automatic_restart # Specifies the availability domain (AD), which this instance should be # scheduled on. The AD belongs to the spread GroupPlacementPolicy resource # policy that has been assigned to the instance. Specify a value between 1-max # count of availability domains in your GroupPlacementPolicy. See go/placement- # policy-extension for more details. # Corresponds to the JSON property `availabilityDomain` # @return [Fixnum] attr_accessor :availability_domain # Current number of vCPUs available for VM. 0 or unset means default vCPUs of # the current machine type. # Corresponds to the JSON property `currentCpus` # @return [Fixnum] attr_accessor :current_cpus # Current amount of memory (in MB) available for VM. 0 or unset means default # amount of memory of the current machine type. # Corresponds to the JSON property `currentMemoryMb` # @return [Fixnum] attr_accessor :current_memory_mb # Specify the time in seconds for host error detection, the value must be within # the range of [90, 330] with the increment of 30, if unset, the default # behavior of host error recovery will be used. # Corresponds to the JSON property `hostErrorTimeoutSeconds` # @return [Fixnum] attr_accessor :host_error_timeout_seconds # Specifies the termination action for the instance. # Corresponds to the JSON property `instanceTerminationAction` # @return [String] attr_accessor :instance_termination_action # Defines whether the instance is tolerant of higher cpu latency. This can only # be set during instance creation, or when the instance is not currently running. # It must not be set if the preemptible option is also set. # Corresponds to the JSON property `latencyTolerant` # @return [Boolean] attr_accessor :latency_tolerant alias_method :latency_tolerant?, :latency_tolerant # An opaque location hint used to place the instance close to other resources. # This field is for use by internal tools that use the public API. # Corresponds to the JSON property `locationHint` # @return [String] attr_accessor :location_hint # Specifies the number of hours after VM instance creation where the VM won't be # scheduled for maintenance. # Corresponds to the JSON property `maintenanceFreezeDurationHours` # @return [Fixnum] attr_accessor :maintenance_freeze_duration_hours # For more information about maintenance intervals, see Setting maintenance # intervals. # Corresponds to the JSON property `maintenanceInterval` # @return [String] attr_accessor :maintenance_interval # A Duration represents a fixed-length span of time represented as a count of # seconds and fractions of seconds at nanosecond resolution. It is independent # of any calendar and concepts like "day" or "month". Range is approximately 10, # 000 years. # Corresponds to the JSON property `maxRunDuration` # @return [Google::Apis::ComputeAlpha::Duration] attr_accessor :max_run_duration # The minimum number of virtual CPUs this instance will consume when running on # a sole-tenant node. # Corresponds to the JSON property `minNodeCpus` # @return [Fixnum] attr_accessor :min_node_cpus # A set of node affinity and anti-affinity configurations. Refer to Configuring # node affinity for more information. Overrides reservationAffinity. # Corresponds to the JSON property `nodeAffinities` # @return [Array] attr_accessor :node_affinities # Defines the maintenance behavior for this instance. For standard instances, # the default behavior is MIGRATE. For preemptible instances, the default and # only possible behavior is TERMINATE. For more information, see Set VM # availability policies. # Corresponds to the JSON property `onHostMaintenance` # @return [String] attr_accessor :on_host_maintenance # Defines whether the instance is preemptible. This can only be set during # instance creation or while the instance is stopped and therefore, in a ` # TERMINATED` state. See Instance Life Cycle for more information on the # possible instance states. # Corresponds to the JSON property `preemptible` # @return [Boolean] attr_accessor :preemptible alias_method :preemptible?, :preemptible # Specifies the provisioning model of the instance. # Corresponds to the JSON property `provisioningModel` # @return [String] attr_accessor :provisioning_model # Specifies the timestamp, when the instance will be terminated, in RFC3339 text # format. If specified, the instance termination action will be performed at the # termination time. # Corresponds to the JSON property `terminationTime` # @return [String] attr_accessor :termination_time def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @automatic_restart = args[:automatic_restart] if args.key?(:automatic_restart) @availability_domain = args[:availability_domain] if args.key?(:availability_domain) @current_cpus = args[:current_cpus] if args.key?(:current_cpus) @current_memory_mb = args[:current_memory_mb] if args.key?(:current_memory_mb) @host_error_timeout_seconds = args[:host_error_timeout_seconds] if args.key?(:host_error_timeout_seconds) @instance_termination_action = args[:instance_termination_action] if args.key?(:instance_termination_action) @latency_tolerant = args[:latency_tolerant] if args.key?(:latency_tolerant) @location_hint = args[:location_hint] if args.key?(:location_hint) @maintenance_freeze_duration_hours = args[:maintenance_freeze_duration_hours] if args.key?(:maintenance_freeze_duration_hours) @maintenance_interval = args[:maintenance_interval] if args.key?(:maintenance_interval) @max_run_duration = args[:max_run_duration] if args.key?(:max_run_duration) @min_node_cpus = args[:min_node_cpus] if args.key?(:min_node_cpus) @node_affinities = args[:node_affinities] if args.key?(:node_affinities) @on_host_maintenance = args[:on_host_maintenance] if args.key?(:on_host_maintenance) @preemptible = args[:preemptible] if args.key?(:preemptible) @provisioning_model = args[:provisioning_model] if args.key?(:provisioning_model) @termination_time = args[:termination_time] if args.key?(:termination_time) end end # Node Affinity: the configuration of desired nodes onto which this Instance # could be scheduled. class SchedulingNodeAffinity include Google::Apis::Core::Hashable # Corresponds to the label key of Node resource. # Corresponds to the JSON property `key` # @return [String] attr_accessor :key # Defines the operation of node selection. Valid operators are IN for affinity # and NOT_IN for anti-affinity. # Corresponds to the JSON property `operator` # @return [String] attr_accessor :operator # Corresponds to the label values of Node resource. # Corresponds to the JSON property `values` # @return [Array] attr_accessor :values def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @key = args[:key] if args.key?(:key) @operator = args[:operator] if args.key?(:operator) @values = args[:values] if args.key?(:values) end end # An instance's screenshot. class Screenshot include Google::Apis::Core::Hashable # [Output Only] The Base64-encoded screenshot data. # Corresponds to the JSON property `contents` # @return [String] attr_accessor :contents # [Output Only] Type of the resource. Always compute#screenshot for the # screenshots. # Corresponds to the JSON property `kind` # @return [String] attr_accessor :kind def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @contents = args[:contents] if args.key?(:contents) @kind = args[:kind] if args.key?(:kind) end end # [Deprecated] The configuration to access the SDS server. The configuration to # access the SDS server. class SdsConfig include Google::Apis::Core::Hashable # [Deprecated] gRPC config to access the SDS server. gRPC config to access the # SDS server. # Corresponds to the JSON property `grpcServiceConfig` # @return [Google::Apis::ComputeAlpha::GrpcServiceConfig] attr_accessor :grpc_service_config def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @grpc_service_config = args[:grpc_service_config] if args.key?(:grpc_service_config) end end # class SecurityPoliciesAggregatedList include Google::Apis::Core::Hashable # # Corresponds to the JSON property `etag` # @return [String] attr_accessor :etag # [Output Only] Unique identifier for the resource; defined by the server. # Corresponds to the JSON property `id` # @return [String] attr_accessor :id # A list of SecurityPoliciesScopedList resources. # Corresponds to the JSON property `items` # @return [Hash] attr_accessor :items # [Output Only] Type of resource. Always compute#securityPolicyAggregatedList # for lists of Security Policies. # Corresponds to the JSON property `kind` # @return [String] attr_accessor :kind # [Output Only] This token allows you to get the next page of results for list # requests. If the number of results is larger than maxResults, use the # nextPageToken as a value for the query parameter pageToken in the next list # request. Subsequent list requests will have their own nextPageToken to # continue paging through the results. # Corresponds to the JSON property `nextPageToken` # @return [String] attr_accessor :next_page_token # [Output Only] Server-defined URL for this resource. # Corresponds to the JSON property `selfLink` # @return [String] attr_accessor :self_link # [Output Only] Unreachable resources. # Corresponds to the JSON property `unreachables` # @return [Array] attr_accessor :unreachables # [Output Only] Informational warning message. # Corresponds to the JSON property `warning` # @return [Google::Apis::ComputeAlpha::SecurityPoliciesAggregatedList::Warning] attr_accessor :warning def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @etag = args[:etag] if args.key?(:etag) @id = args[:id] if args.key?(:id) @items = args[:items] if args.key?(:items) @kind = args[:kind] if args.key?(:kind) @next_page_token = args[:next_page_token] if args.key?(:next_page_token) @self_link = args[:self_link] if args.key?(:self_link) @unreachables = args[:unreachables] if args.key?(:unreachables) @warning = args[:warning] if args.key?(:warning) end # [Output Only] Informational warning message. class Warning include Google::Apis::Core::Hashable # [Output Only] A warning code, if applicable. For example, Compute Engine # returns NO_RESULTS_ON_PAGE if there are no results in the response. # Corresponds to the JSON property `code` # @return [String] attr_accessor :code # [Output Only] Metadata about this warning in key: value format. For example: " # data": [ ` "key": "scope", "value": "zones/us-east1-d" ` # Corresponds to the JSON property `data` # @return [Array] attr_accessor :data # [Output Only] A human-readable description of the warning code. # Corresponds to the JSON property `message` # @return [String] attr_accessor :message def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @code = args[:code] if args.key?(:code) @data = args[:data] if args.key?(:data) @message = args[:message] if args.key?(:message) end # class Datum include Google::Apis::Core::Hashable # [Output Only] A key that provides more detail on the warning being returned. # For example, for warnings where there are no results in a list request for a # particular zone, this key might be scope and the key value might be the zone # name. Other examples might be a key indicating a deprecated resource and a # suggested replacement, or a warning about invalid network settings (for # example, if an instance attempts to perform IP forwarding but is not enabled # for IP forwarding). # Corresponds to the JSON property `key` # @return [String] attr_accessor :key # [Output Only] A warning data value corresponding to the key. # 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 end end # class SecurityPoliciesListPreconfiguredExpressionSetsResponse include Google::Apis::Core::Hashable # # Corresponds to the JSON property `preconfiguredExpressionSets` # @return [Google::Apis::ComputeAlpha::SecurityPoliciesWafConfig] attr_accessor :preconfigured_expression_sets def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @preconfigured_expression_sets = args[:preconfigured_expression_sets] if args.key?(:preconfigured_expression_sets) end end # class SecurityPoliciesScopedList include Google::Apis::Core::Hashable # A list of SecurityPolicies contained in this scope. # Corresponds to the JSON property `securityPolicies` # @return [Array] attr_accessor :security_policies # Informational warning which replaces the list of security policies when the # list is empty. # Corresponds to the JSON property `warning` # @return [Google::Apis::ComputeAlpha::SecurityPoliciesScopedList::Warning] attr_accessor :warning def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @security_policies = args[:security_policies] if args.key?(:security_policies) @warning = args[:warning] if args.key?(:warning) end # Informational warning which replaces the list of security policies when the # list is empty. class Warning include Google::Apis::Core::Hashable # [Output Only] A warning code, if applicable. For example, Compute Engine # returns NO_RESULTS_ON_PAGE if there are no results in the response. # Corresponds to the JSON property `code` # @return [String] attr_accessor :code # [Output Only] Metadata about this warning in key: value format. For example: " # data": [ ` "key": "scope", "value": "zones/us-east1-d" ` # Corresponds to the JSON property `data` # @return [Array] attr_accessor :data # [Output Only] A human-readable description of the warning code. # Corresponds to the JSON property `message` # @return [String] attr_accessor :message def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @code = args[:code] if args.key?(:code) @data = args[:data] if args.key?(:data) @message = args[:message] if args.key?(:message) end # class Datum include Google::Apis::Core::Hashable # [Output Only] A key that provides more detail on the warning being returned. # For example, for warnings where there are no results in a list request for a # particular zone, this key might be scope and the key value might be the zone # name. Other examples might be a key indicating a deprecated resource and a # suggested replacement, or a warning about invalid network settings (for # example, if an instance attempts to perform IP forwarding but is not enabled # for IP forwarding). # Corresponds to the JSON property `key` # @return [String] attr_accessor :key # [Output Only] A warning data value corresponding to the key. # 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 end end # class SecurityPoliciesWafConfig include Google::Apis::Core::Hashable # # Corresponds to the JSON property `wafRules` # @return [Google::Apis::ComputeAlpha::PreconfiguredWafSet] attr_accessor :waf_rules def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @waf_rules = args[:waf_rules] if args.key?(:waf_rules) end end # Represents a Google Cloud Armor security policy resource. Only external # backend services that use load balancers can reference a security policy. For # more information, see Google Cloud Armor security policy overview. class SecurityPolicy include Google::Apis::Core::Hashable # Configuration options for Cloud Armor Adaptive Protection (CAAP). # Corresponds to the JSON property `adaptiveProtectionConfig` # @return [Google::Apis::ComputeAlpha::SecurityPolicyAdaptiveProtectionConfig] attr_accessor :adaptive_protection_config # # Corresponds to the JSON property `advancedOptionsConfig` # @return [Google::Apis::ComputeAlpha::SecurityPolicyAdvancedOptionsConfig] attr_accessor :advanced_options_config # A list of associations that belong to this policy. # Corresponds to the JSON property `associations` # @return [Array] attr_accessor :associations # Configuration options for Cloud Armor. # Corresponds to the JSON property `cloudArmorConfig` # @return [Google::Apis::ComputeAlpha::SecurityPolicyCloudArmorConfig] attr_accessor :cloud_armor_config # [Output Only] Creation timestamp in RFC3339 text format. # Corresponds to the JSON property `creationTimestamp` # @return [String] attr_accessor :creation_timestamp # # Corresponds to the JSON property `ddosProtectionConfig` # @return [Google::Apis::ComputeAlpha::SecurityPolicyDdosProtectionConfig] attr_accessor :ddos_protection_config # An optional description of this resource. Provide this property when you # create the resource. # Corresponds to the JSON property `description` # @return [String] attr_accessor :description # User-provided name of the Organization security plicy. The name should be # unique in the organization in which the security policy is created. This # should only be used when SecurityPolicyType is FIREWALL. The name must be 1-63 # characters long, and comply with https://www.ietf.org/rfc/rfc1035.txt. # Specifically, the name must be 1-63 characters long and match the regular # expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first character must # be a lowercase letter, and all following characters must be a dash, lowercase # letter, or digit, except the last character, which cannot be a dash. # Corresponds to the JSON property `displayName` # @return [String] attr_accessor :display_name # Specifies a fingerprint for this resource, which is essentially a hash of the # metadata's contents and used for optimistic locking. The fingerprint is # initially generated by Compute Engine and changes after every request to # modify or update metadata. You must always provide an up-to-date fingerprint # hash in order to update or change metadata, otherwise the request will fail # with error 412 conditionNotMet. To see the latest fingerprint, make get() # request to the security policy. # Corresponds to the JSON property `fingerprint` # NOTE: Values are automatically base64 encoded/decoded in the client library. # @return [String] attr_accessor :fingerprint # [Output Only] The unique identifier for the resource. This identifier is # defined by the server. # Corresponds to the JSON property `id` # @return [Fixnum] attr_accessor :id # [Output only] Type of the resource. Always compute#securityPolicyfor security # policies # Corresponds to the JSON property `kind` # @return [String] attr_accessor :kind # A fingerprint for the labels being applied to this security policy, which is # essentially a hash of the labels set used for optimistic locking. The # fingerprint is initially generated by Compute Engine and changes after every # request to modify or update labels. You must always provide an up-to-date # fingerprint hash in order to update or change labels. To see the latest # fingerprint, make get() request to the security policy. # Corresponds to the JSON property `labelFingerprint` # NOTE: Values are automatically base64 encoded/decoded in the client library. # @return [String] attr_accessor :label_fingerprint # Labels for this resource. These can only be added or modified by the setLabels # method. Each label key/value pair must comply with RFC1035. Label values may # be empty. # Corresponds to the JSON property `labels` # @return [Hash] attr_accessor :labels # Name of the resource. Provided by the client when the resource is created. The # name must be 1-63 characters long, and comply with RFC1035. Specifically, the # name must be 1-63 characters long and match the regular expression `[a-z]([-a- # z0-9]*[a-z0-9])?` which means the first character must be a lowercase letter, # and all following characters must be a dash, lowercase letter, or digit, # except the last character, which cannot be a dash. # Corresponds to the JSON property `name` # @return [String] attr_accessor :name # [Output Only] The parent of the security policy. # Corresponds to the JSON property `parent` # @return [String] attr_accessor :parent # # Corresponds to the JSON property `recaptchaOptionsConfig` # @return [Google::Apis::ComputeAlpha::SecurityPolicyRecaptchaOptionsConfig] attr_accessor :recaptcha_options_config # [Output Only] URL of the region where the regional security policy resides. # This field is not applicable to global security policies. # Corresponds to the JSON property `region` # @return [String] attr_accessor :region # [Output Only] Total count of all security policy rule tuples. A security # policy can not exceed a set number of tuples. # Corresponds to the JSON property `ruleTupleCount` # @return [Fixnum] attr_accessor :rule_tuple_count # A list of rules that belong to this policy. There must always be a default # rule (rule with priority 2147483647 and match "*"). If no rules are provided # when creating a security policy, a default rule with action "allow" will be # added. # Corresponds to the JSON property `rules` # @return [Array] attr_accessor :rules # [Output Only] Server-defined URL for the resource. # Corresponds to the JSON property `selfLink` # @return [String] attr_accessor :self_link # [Output Only] Server-defined URL for this resource with the resource id. # Corresponds to the JSON property `selfLinkWithId` # @return [String] attr_accessor :self_link_with_id # The type indicates the intended use of the security policy. - CLOUD_ARMOR: # Cloud Armor backend security policies can be configured to filter incoming # HTTP requests targeting backend services. They filter requests before they hit # the origin servers. - CLOUD_ARMOR_EDGE: Cloud Armor edge security policies can # be configured to filter incoming HTTP requests targeting backend services ( # including Cloud CDN-enabled) as well as backend buckets (Cloud Storage). They # filter requests before the request is served from Google's cache. - # CLOUD_ARMOR_INTERNAL_SERVICE: Cloud Armor internal service policies can be # configured to filter HTTP requests targeting services managed by Traffic # Director in a service mesh. They filter requests before the request is served # from the application. This field can be set only at resource creation time. # 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) @adaptive_protection_config = args[:adaptive_protection_config] if args.key?(:adaptive_protection_config) @advanced_options_config = args[:advanced_options_config] if args.key?(:advanced_options_config) @associations = args[:associations] if args.key?(:associations) @cloud_armor_config = args[:cloud_armor_config] if args.key?(:cloud_armor_config) @creation_timestamp = args[:creation_timestamp] if args.key?(:creation_timestamp) @ddos_protection_config = args[:ddos_protection_config] if args.key?(:ddos_protection_config) @description = args[:description] if args.key?(:description) @display_name = args[:display_name] if args.key?(:display_name) @fingerprint = args[:fingerprint] if args.key?(:fingerprint) @id = args[:id] if args.key?(:id) @kind = args[:kind] if args.key?(:kind) @label_fingerprint = args[:label_fingerprint] if args.key?(:label_fingerprint) @labels = args[:labels] if args.key?(:labels) @name = args[:name] if args.key?(:name) @parent = args[:parent] if args.key?(:parent) @recaptcha_options_config = args[:recaptcha_options_config] if args.key?(:recaptcha_options_config) @region = args[:region] if args.key?(:region) @rule_tuple_count = args[:rule_tuple_count] if args.key?(:rule_tuple_count) @rules = args[:rules] if args.key?(:rules) @self_link = args[:self_link] if args.key?(:self_link) @self_link_with_id = args[:self_link_with_id] if args.key?(:self_link_with_id) @type = args[:type] if args.key?(:type) end end # Configuration options for Cloud Armor Adaptive Protection (CAAP). class SecurityPolicyAdaptiveProtectionConfig include Google::Apis::Core::Hashable # Configuration options for L7 DDoS detection. # Corresponds to the JSON property `layer7DdosDefenseConfig` # @return [Google::Apis::ComputeAlpha::SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfig] attr_accessor :layer7_ddos_defense_config def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @layer7_ddos_defense_config = args[:layer7_ddos_defense_config] if args.key?(:layer7_ddos_defense_config) end end # Configuration options for L7 DDoS detection. class SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfig include Google::Apis::Core::Hashable # If set to true, enables CAAP for L7 DDoS detection. # Corresponds to the JSON property `enable` # @return [Boolean] attr_accessor :enable alias_method :enable?, :enable # Rule visibility can be one of the following: STANDARD - opaque rules. (default) # PREMIUM - transparent rules. # Corresponds to the JSON property `ruleVisibility` # @return [String] attr_accessor :rule_visibility def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @enable = args[:enable] if args.key?(:enable) @rule_visibility = args[:rule_visibility] if args.key?(:rule_visibility) end end # class SecurityPolicyAdvancedOptionsConfig include Google::Apis::Core::Hashable # # Corresponds to the JSON property `jsonParsing` # @return [String] attr_accessor :json_parsing # # Corresponds to the JSON property `logLevel` # @return [String] attr_accessor :log_level def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @json_parsing = args[:json_parsing] if args.key?(:json_parsing) @log_level = args[:log_level] if args.key?(:log_level) end end # class SecurityPolicyAssociation include Google::Apis::Core::Hashable # The resource that the security policy is attached to. # Corresponds to the JSON property `attachmentId` # @return [String] attr_accessor :attachment_id # [Output Only] The display name of the security policy of the association. # Corresponds to the JSON property `displayName` # @return [String] attr_accessor :display_name # The name for an association. # Corresponds to the JSON property `name` # @return [String] attr_accessor :name # [Output Only] The security policy ID of the association. # Corresponds to the JSON property `securityPolicyId` # @return [String] attr_accessor :security_policy_id def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @attachment_id = args[:attachment_id] if args.key?(:attachment_id) @display_name = args[:display_name] if args.key?(:display_name) @name = args[:name] if args.key?(:name) @security_policy_id = args[:security_policy_id] if args.key?(:security_policy_id) end end # Configuration options for Cloud Armor. class SecurityPolicyCloudArmorConfig include Google::Apis::Core::Hashable # If set to true, enables Cloud Armor Machine Learning. # Corresponds to the JSON property `enableMl` # @return [Boolean] attr_accessor :enable_ml alias_method :enable_ml?, :enable_ml def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @enable_ml = args[:enable_ml] if args.key?(:enable_ml) end end # class SecurityPolicyDdosProtectionConfig include Google::Apis::Core::Hashable # # Corresponds to the JSON property `ddosProtection` # @return [String] attr_accessor :ddos_protection def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @ddos_protection = args[:ddos_protection] if args.key?(:ddos_protection) end end # class SecurityPolicyList include Google::Apis::Core::Hashable # # Corresponds to the JSON property `etag` # @return [String] attr_accessor :etag # [Output Only] Unique identifier for the resource; defined by the server. # Corresponds to the JSON property `id` # @return [String] attr_accessor :id # A list of SecurityPolicy resources. # Corresponds to the JSON property `items` # @return [Array] attr_accessor :items # [Output Only] Type of resource. Always compute#securityPolicyList for listsof # securityPolicies # Corresponds to the JSON property `kind` # @return [String] attr_accessor :kind # [Output Only] This token allows you to get the next page of results for list # requests. If the number of results is larger than maxResults, use the # nextPageToken as a value for the query parameter pageToken in the next list # request. Subsequent list requests will have their own nextPageToken to # continue paging through the results. # Corresponds to the JSON property `nextPageToken` # @return [String] attr_accessor :next_page_token # [Output Only] Unreachable resources. # Corresponds to the JSON property `unreachables` # @return [Array] attr_accessor :unreachables # [Output Only] Informational warning message. # Corresponds to the JSON property `warning` # @return [Google::Apis::ComputeAlpha::SecurityPolicyList::Warning] attr_accessor :warning def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @etag = args[:etag] if args.key?(:etag) @id = args[:id] if args.key?(:id) @items = args[:items] if args.key?(:items) @kind = args[:kind] if args.key?(:kind) @next_page_token = args[:next_page_token] if args.key?(:next_page_token) @unreachables = args[:unreachables] if args.key?(:unreachables) @warning = args[:warning] if args.key?(:warning) end # [Output Only] Informational warning message. class Warning include Google::Apis::Core::Hashable # [Output Only] A warning code, if applicable. For example, Compute Engine # returns NO_RESULTS_ON_PAGE if there are no results in the response. # Corresponds to the JSON property `code` # @return [String] attr_accessor :code # [Output Only] Metadata about this warning in key: value format. For example: " # data": [ ` "key": "scope", "value": "zones/us-east1-d" ` # Corresponds to the JSON property `data` # @return [Array] attr_accessor :data # [Output Only] A human-readable description of the warning code. # Corresponds to the JSON property `message` # @return [String] attr_accessor :message def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @code = args[:code] if args.key?(:code) @data = args[:data] if args.key?(:data) @message = args[:message] if args.key?(:message) end # class Datum include Google::Apis::Core::Hashable # [Output Only] A key that provides more detail on the warning being returned. # For example, for warnings where there are no results in a list request for a # particular zone, this key might be scope and the key value might be the zone # name. Other examples might be a key indicating a deprecated resource and a # suggested replacement, or a warning about invalid network settings (for # example, if an instance attempts to perform IP forwarding but is not enabled # for IP forwarding). # Corresponds to the JSON property `key` # @return [String] attr_accessor :key # [Output Only] A warning data value corresponding to the key. # 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 end end # class SecurityPolicyRecaptchaOptionsConfig include Google::Apis::Core::Hashable # An optional field to supply a reCAPTCHA site key to be used for all the rules # using the redirect action with the type of GOOGLE_RECAPTCHA under the security # policy. The specified site key needs to be created from the reCAPTCHA API. The # user is responsible for the validity of the specified site key. If not # specified, a Google-managed site key is used. # Corresponds to the JSON property `redirectSiteKey` # @return [String] attr_accessor :redirect_site_key def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @redirect_site_key = args[:redirect_site_key] if args.key?(:redirect_site_key) end end # class SecurityPolicyReference include Google::Apis::Core::Hashable # # Corresponds to the JSON property `securityPolicy` # @return [String] attr_accessor :security_policy def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @security_policy = args[:security_policy] if args.key?(:security_policy) end end # Represents a rule that describes one or more match conditions along with the # action to be taken when traffic matches this condition (allow or deny). class SecurityPolicyRule include Google::Apis::Core::Hashable # The Action to perform when the rule is matched. The following are the valid # actions: - allow: allow access to target. - deny(): deny access to target, # returns the HTTP response code specified (valid values are 403, 404, and 502). # - rate_based_ban: limit client traffic to the configured threshold and ban the # client if the traffic exceeds the threshold. Configure parameters for this # action in RateLimitOptions. Requires rate_limit_options to be set. - redirect: # redirect to a different target. This can either be an internal reCAPTCHA # redirect, or an external URL-based redirect via a 302 response. Parameters for # this action can be configured via redirectOptions. - throttle: limit client # traffic to the configured threshold. Configure parameters for this action in # rateLimitOptions. Requires rate_limit_options to be set for this. # Corresponds to the JSON property `action` # @return [String] attr_accessor :action # An optional description of this resource. Provide this property when you # create the resource. # Corresponds to the JSON property `description` # @return [String] attr_accessor :description # The direction in which this rule applies. This field may only be specified # when versioned_expr is set to FIREWALL. # Corresponds to the JSON property `direction` # @return [String] attr_accessor :direction # Denotes whether to enable logging for a particular rule. If logging is enabled, # logs will be exported to the configured export destination in Stackdriver. # Logs may be exported to BigQuery or Pub/Sub. Note: you cannot enable logging # on "goto_next" rules. This field may only be specified when the versioned_expr # is set to FIREWALL. # Corresponds to the JSON property `enableLogging` # @return [Boolean] attr_accessor :enable_logging alias_method :enable_logging?, :enable_logging # Optional, additional actions that are performed on headers. # Corresponds to the JSON property `headerAction` # @return [Google::Apis::ComputeAlpha::SecurityPolicyRuleHttpHeaderAction] attr_accessor :header_action # [Output only] Type of the resource. Always compute#securityPolicyRule for # security policy rules # Corresponds to the JSON property `kind` # @return [String] attr_accessor :kind # Represents a match condition that incoming traffic is evaluated against. # Exactly one field must be specified. # Corresponds to the JSON property `match` # @return [Google::Apis::ComputeAlpha::SecurityPolicyRuleMatcher] attr_accessor :match # If set to true, the specified action is not enforced. # Corresponds to the JSON property `preview` # @return [Boolean] attr_accessor :preview alias_method :preview?, :preview # An integer indicating the priority of a rule in the list. The priority must be # a positive value between 0 and 2147483647. Rules are evaluated from highest to # lowest priority where 0 is the highest priority and 2147483647 is the lowest # priority. # Corresponds to the JSON property `priority` # @return [Fixnum] attr_accessor :priority # Must be specified if the action is "rate_based_ban" or "throttle". Cannot be # specified for any other actions. # Corresponds to the JSON property `rateLimitOptions` # @return [Google::Apis::ComputeAlpha::SecurityPolicyRuleRateLimitOptions] attr_accessor :rate_limit_options # Parameters defining the redirect action. Cannot be specified for any other # actions. # Corresponds to the JSON property `redirectOptions` # @return [Google::Apis::ComputeAlpha::SecurityPolicyRuleRedirectOptions] attr_accessor :redirect_options # This must be specified for redirect actions. Cannot be specified for any other # actions. # Corresponds to the JSON property `redirectTarget` # @return [String] attr_accessor :redirect_target # [Output Only] The minimum managed protection tier required for this rule. # Corresponds to the JSON property `ruleManagedProtectionTier` # @return [String] attr_accessor :rule_managed_protection_tier # Identifier for the rule. This is only unique within the given security policy. # This can only be set during rule creation, if rule number is not specified it # will be generated by the server. # Corresponds to the JSON property `ruleNumber` # @return [Fixnum] attr_accessor :rule_number # [Output Only] Calculation of the complexity of a single firewall security # policy rule. # Corresponds to the JSON property `ruleTupleCount` # @return [Fixnum] attr_accessor :rule_tuple_count # A list of network resource URLs to which this rule applies. This field allows # you to control which network's VMs get this rule. If this field is left blank, # all VMs within the organization will receive the rule. This field may only be # specified when versioned_expr is set to FIREWALL. # Corresponds to the JSON property `targetResources` # @return [Array] attr_accessor :target_resources # A list of service accounts indicating the sets of instances that are applied # with this rule. # Corresponds to the JSON property `targetServiceAccounts` # @return [Array] attr_accessor :target_service_accounts def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @action = args[:action] if args.key?(:action) @description = args[:description] if args.key?(:description) @direction = args[:direction] if args.key?(:direction) @enable_logging = args[:enable_logging] if args.key?(:enable_logging) @header_action = args[:header_action] if args.key?(:header_action) @kind = args[:kind] if args.key?(:kind) @match = args[:match] if args.key?(:match) @preview = args[:preview] if args.key?(:preview) @priority = args[:priority] if args.key?(:priority) @rate_limit_options = args[:rate_limit_options] if args.key?(:rate_limit_options) @redirect_options = args[:redirect_options] if args.key?(:redirect_options) @redirect_target = args[:redirect_target] if args.key?(:redirect_target) @rule_managed_protection_tier = args[:rule_managed_protection_tier] if args.key?(:rule_managed_protection_tier) @rule_number = args[:rule_number] if args.key?(:rule_number) @rule_tuple_count = args[:rule_tuple_count] if args.key?(:rule_tuple_count) @target_resources = args[:target_resources] if args.key?(:target_resources) @target_service_accounts = args[:target_service_accounts] if args.key?(:target_service_accounts) end end # class SecurityPolicyRuleHttpHeaderAction include Google::Apis::Core::Hashable # The list of request headers to add or overwrite if they're already present. # Corresponds to the JSON property `requestHeadersToAdds` # @return [Array] attr_accessor :request_headers_to_adds def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @request_headers_to_adds = args[:request_headers_to_adds] if args.key?(:request_headers_to_adds) end end # class SecurityPolicyRuleHttpHeaderActionHttpHeaderOption include Google::Apis::Core::Hashable # The name of the header to set. # Corresponds to the JSON property `headerName` # @return [String] attr_accessor :header_name # The value to set the named header to. # Corresponds to the JSON property `headerValue` # @return [String] attr_accessor :header_value def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @header_name = args[:header_name] if args.key?(:header_name) @header_value = args[:header_value] if args.key?(:header_value) end end # Represents a match condition that incoming traffic is evaluated against. # Exactly one field must be specified. class SecurityPolicyRuleMatcher include Google::Apis::Core::Hashable # The configuration options available when specifying versioned_expr. This field # must be specified if versioned_expr is specified and cannot be specified if # versioned_expr is not specified. # Corresponds to the JSON property `config` # @return [Google::Apis::ComputeAlpha::SecurityPolicyRuleMatcherConfig] attr_accessor :config # Represents a textual expression in the Common Expression Language (CEL) syntax. # CEL is a C-like expression language. The syntax and semantics of CEL are # documented at https://github.com/google/cel-spec. Example (Comparison): title: # "Summary size limit" description: "Determines if a summary is less than 100 # chars" expression: "document.summary.size() < 100" Example (Equality): title: " # Requestor is owner" description: "Determines if requestor is the document # owner" expression: "document.owner == request.auth.claims.email" Example ( # Logic): title: "Public documents" description: "Determine whether the document # should be publicly visible" expression: "document.type != 'private' && # document.type != 'internal'" Example (Data Manipulation): title: "Notification # string" description: "Create a notification string with a timestamp." # expression: "'New message received at ' + string(document.create_time)" The # exact variables and functions that may be referenced within an expression are # determined by the service that evaluates it. See the service documentation for # additional information. # Corresponds to the JSON property `expr` # @return [Google::Apis::ComputeAlpha::Expr] attr_accessor :expr # Preconfigured versioned expression. If this field is specified, config must # also be specified. Available preconfigured expressions along with their # requirements are: SRC_IPS_V1 - must specify the corresponding src_ip_range # field in config. # Corresponds to the JSON property `versionedExpr` # @return [String] attr_accessor :versioned_expr def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @config = args[:config] if args.key?(:config) @expr = args[:expr] if args.key?(:expr) @versioned_expr = args[:versioned_expr] if args.key?(:versioned_expr) end end # class SecurityPolicyRuleMatcherConfig include Google::Apis::Core::Hashable # CIDR IP address range. This field may only be specified when versioned_expr is # set to FIREWALL. # Corresponds to the JSON property `destIpRanges` # @return [Array] attr_accessor :dest_ip_ranges # Pairs of IP protocols and ports that the rule should match. This field may # only be specified when versioned_expr is set to FIREWALL. # Corresponds to the JSON property `destPorts` # @return [Array] attr_accessor :dest_ports # Pairs of IP protocols and ports that the rule should match. This field may # only be specified when versioned_expr is set to FIREWALL. # Corresponds to the JSON property `layer4Configs` # @return [Array] attr_accessor :layer4_configs # CIDR IP address range. Maximum number of src_ip_ranges allowed is 10. # Corresponds to the JSON property `srcIpRanges` # @return [Array] attr_accessor :src_ip_ranges def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @dest_ip_ranges = args[:dest_ip_ranges] if args.key?(:dest_ip_ranges) @dest_ports = args[:dest_ports] if args.key?(:dest_ports) @layer4_configs = args[:layer4_configs] if args.key?(:layer4_configs) @src_ip_ranges = args[:src_ip_ranges] if args.key?(:src_ip_ranges) end end # class SecurityPolicyRuleMatcherConfigDestinationPort include Google::Apis::Core::Hashable # The IP protocol to which this rule applies. The protocol type is required when # creating a firewall rule. This value can either be one of the following well # known protocol strings (tcp, udp, icmp, esp, ah, ipip, sctp), or the IP # protocol number. # Corresponds to the JSON property `ipProtocol` # @return [String] attr_accessor :ip_protocol # An optional list of ports to which this rule applies. This field is only # applicable for UDP or TCP protocol. Each entry must be either an integer or a # range. If not specified, this rule applies to connections through any port. # Example inputs include: ["22"], ["80","443"], and ["12345-12349"]. This field # may only be specified when versioned_expr is set to FIREWALL. # 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 SecurityPolicyRuleMatcherConfigLayer4Config include Google::Apis::Core::Hashable # The IP protocol to which this rule applies. The protocol type is required when # creating a firewall rule. This value can either be one of the following well # known protocol strings (tcp, udp, icmp, esp, ah, ipip, sctp), or the IP # protocol number. # Corresponds to the JSON property `ipProtocol` # @return [String] attr_accessor :ip_protocol # An optional list of ports to which this rule applies. This field is only # applicable for UDP or TCP protocol. Each entry must be either an integer or a # range. If not specified, this rule applies to connections through any port. # Example inputs include: ["22"], ["80","443"], and ["12345-12349"]. This field # may only be specified when versioned_expr is set to FIREWALL. # 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 SecurityPolicyRuleRateLimitOptions include Google::Apis::Core::Hashable # Can only be specified if the action for the rule is "rate_based_ban". If # specified, determines the time (in seconds) the traffic will continue to be # banned by the rate limit after the rate falls below the threshold. # Corresponds to the JSON property `banDurationSec` # @return [Fixnum] attr_accessor :ban_duration_sec # Can only be specified if the action for the rule is "rate_based_ban". If # specified, the key will be banned for the configured 'ban_duration_sec' when # the number of requests that exceed the 'rate_limit_threshold' also exceed this # 'ban_threshold'. # Corresponds to the JSON property `banThreshold` # @return [Google::Apis::ComputeAlpha::SecurityPolicyRuleRateLimitOptionsThreshold] attr_accessor :ban_threshold # Action to take for requests that are under the configured rate limit threshold. # Valid option is "allow" only. # Corresponds to the JSON property `conformAction` # @return [String] attr_accessor :conform_action # Determines the key to enforce the rate_limit_threshold on. Possible values are: # - ALL: A single rate limit threshold is applied to all the requests matching # this rule. This is the default value if this field 'enforce_on_key' is not # configured. - IP: The source IP address of the request is the key. Each IP has # this limit enforced separately. - HTTP_HEADER: The value of the HTTP header # whose name is configured under "enforce_on_key_name". The key value is # truncated to the first 128 bytes of the header value. If no such header is # present in the request, the key type defaults to ALL. - XFF_IP: The first IP # address (i.e. the originating client IP address) specified in the list of IPs # under X-Forwarded-For HTTP header. If no such header is present or the value # is not a valid IP, the key defaults to the source IP address of the request i. # e. key type IP. - HTTP_COOKIE: The value of the HTTP cookie whose name is # configured under "enforce_on_key_name". The key value is truncated to the # first 128 bytes of the cookie value. If no such cookie is present in the # request, the key type defaults to ALL. # Corresponds to the JSON property `enforceOnKey` # @return [String] attr_accessor :enforce_on_key # Rate limit key name applicable only for the following key types: HTTP_HEADER -- # Name of the HTTP header whose value is taken as the key value. HTTP_COOKIE -- # Name of the HTTP cookie whose value is taken as the key value. # Corresponds to the JSON property `enforceOnKeyName` # @return [String] attr_accessor :enforce_on_key_name # Action to take for requests that are above the configured rate limit threshold, # to either deny with a specified HTTP response code, or redirect to a # different endpoint. Valid options are "deny(status)", where valid values for # status are 403, 404, 429, and 502, and "redirect" where the redirect # parameters come from exceedRedirectOptions below. # Corresponds to the JSON property `exceedAction` # @return [String] attr_accessor :exceed_action # Parameters defining the redirect action that is used as the exceed action. # Cannot be specified if the exceed action is not redirect. # Corresponds to the JSON property `exceedRedirectOptions` # @return [Google::Apis::ComputeAlpha::SecurityPolicyRuleRedirectOptions] attr_accessor :exceed_redirect_options # Threshold at which to begin ratelimiting. # Corresponds to the JSON property `rateLimitThreshold` # @return [Google::Apis::ComputeAlpha::SecurityPolicyRuleRateLimitOptionsThreshold] attr_accessor :rate_limit_threshold def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @ban_duration_sec = args[:ban_duration_sec] if args.key?(:ban_duration_sec) @ban_threshold = args[:ban_threshold] if args.key?(:ban_threshold) @conform_action = args[:conform_action] if args.key?(:conform_action) @enforce_on_key = args[:enforce_on_key] if args.key?(:enforce_on_key) @enforce_on_key_name = args[:enforce_on_key_name] if args.key?(:enforce_on_key_name) @exceed_action = args[:exceed_action] if args.key?(:exceed_action) @exceed_redirect_options = args[:exceed_redirect_options] if args.key?(:exceed_redirect_options) @rate_limit_threshold = args[:rate_limit_threshold] if args.key?(:rate_limit_threshold) end end # class SecurityPolicyRuleRateLimitOptionsThreshold include Google::Apis::Core::Hashable # Number of HTTP(S) requests for calculating the threshold. # Corresponds to the JSON property `count` # @return [Fixnum] attr_accessor :count # Interval over which the threshold is computed. # Corresponds to the JSON property `intervalSec` # @return [Fixnum] attr_accessor :interval_sec def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @count = args[:count] if args.key?(:count) @interval_sec = args[:interval_sec] if args.key?(:interval_sec) end end # class SecurityPolicyRuleRedirectOptions include Google::Apis::Core::Hashable # Target for the redirect action. This is required if the type is EXTERNAL_302 # and cannot be specified for GOOGLE_RECAPTCHA. # Corresponds to the JSON property `target` # @return [String] attr_accessor :target # Type of the redirect action. # 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) @target = args[:target] if args.key?(:target) @type = args[:type] if args.key?(:type) end end # The authentication and authorization settings for a BackendService. class SecuritySettings include Google::Apis::Core::Hashable # [Deprecated] Use clientTlsPolicy instead. # Corresponds to the JSON property `authentication` # @return [String] attr_accessor :authentication # [Deprecated] The authentication settings for the backend service. The # authentication settings for the backend service. # Corresponds to the JSON property `authenticationPolicy` # @return [Google::Apis::ComputeAlpha::AuthenticationPolicy] attr_accessor :authentication_policy # [Deprecated] Authorization configuration provides service-level and method- # level access control for a service. control for a service. # Corresponds to the JSON property `authorizationConfig` # @return [Google::Apis::ComputeAlpha::AuthorizationConfig] attr_accessor :authorization_config # Optional. A URL referring to a networksecurity.ClientTlsPolicy resource that # describes how clients should authenticate with this service's backends. # clientTlsPolicy only applies to a global BackendService with the # loadBalancingScheme set to INTERNAL_SELF_MANAGED. If left blank, # communications are not encrypted. Note: This field currently has no impact. # Corresponds to the JSON property `clientTlsPolicy` # @return [String] attr_accessor :client_tls_policy # [Deprecated] The client side authentication settings for connection # originating from the backend service. the backend service. # Corresponds to the JSON property `clientTlsSettings` # @return [Google::Apis::ComputeAlpha::ClientTlsSettings] attr_accessor :client_tls_settings # Optional. A list of Subject Alternative Names (SANs) that the client verifies # during a mutual TLS handshake with an server/endpoint for this BackendService. # When the server presents its X.509 certificate to the client, the client # inspects the certificate's subjectAltName field. If the field contains one of # the specified values, the communication continues. Otherwise, it fails. This # additional check enables the client to verify that the server is authorized to # run the requested service. Note that the contents of the server certificate's # subjectAltName field are configured by the Public Key Infrastructure which # provisions server identities. Only applies to a global BackendService with # loadBalancingScheme set to INTERNAL_SELF_MANAGED. Only applies when # BackendService has an attached clientTlsPolicy with clientCertificate (mTLS # mode). Note: This field currently has no impact. # Corresponds to the JSON property `subjectAltNames` # @return [Array] attr_accessor :subject_alt_names def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @authentication = args[:authentication] if args.key?(:authentication) @authentication_policy = args[:authentication_policy] if args.key?(:authentication_policy) @authorization_config = args[:authorization_config] if args.key?(:authorization_config) @client_tls_policy = args[:client_tls_policy] if args.key?(:client_tls_policy) @client_tls_settings = args[:client_tls_settings] if args.key?(:client_tls_settings) @subject_alt_names = args[:subject_alt_names] if args.key?(:subject_alt_names) end end # An instance serial console output. class SerialPortOutput include Google::Apis::Core::Hashable # [Output Only] The contents of the console output. # Corresponds to the JSON property `contents` # @return [String] attr_accessor :contents # [Output Only] Type of the resource. Always compute#serialPortOutput for serial # port output. # Corresponds to the JSON property `kind` # @return [String] attr_accessor :kind # [Output Only] The position of the next byte of content, regardless of whether # the content exists, following the output returned in the `contents` property. # Use this value in the next request as the start parameter. # Corresponds to the JSON property `next` # @return [Fixnum] attr_accessor :next # [Output Only] Server-defined URL for this resource. # Corresponds to the JSON property `selfLink` # @return [String] attr_accessor :self_link # The starting byte position of the output that was returned. This should match # the start parameter sent with the request. If the serial console output # exceeds the size of the buffer (1 MB), older output is overwritten by newer # content. The output start value will indicate the byte position of the output # that was returned, which might be different than the `start` value that was # specified in the request. # Corresponds to the JSON property `start` # @return [Fixnum] attr_accessor :start def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @contents = args[:contents] if args.key?(:contents) @kind = args[:kind] if args.key?(:kind) @next = args[:next] if args.key?(:next) @self_link = args[:self_link] if args.key?(:self_link) @start = args[:start] if args.key?(:start) end end # class ServerBinding include Google::Apis::Core::Hashable # # 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) @type = args[:type] if args.key?(:type) end end # The TLS settings for the server. class ServerTlsSettings include Google::Apis::Core::Hashable # [Deprecated] The TLS settings for the client or server. The TLS settings for # the client or server. # Corresponds to the JSON property `proxyTlsContext` # @return [Google::Apis::ComputeAlpha::TlsContext] attr_accessor :proxy_tls_context # A list of alternate names to verify the subject identity in the certificate # presented by the client. # Corresponds to the JSON property `subjectAltNames` # @return [Array] attr_accessor :subject_alt_names # Indicates whether connections should be secured using TLS. The value of this # field determines how TLS is enforced. This field can be set to one of the # following: - SIMPLE Secure connections with standard TLS semantics. - MUTUAL # Secure connections to the backends using mutual TLS by presenting client # certificates for authentication. # Corresponds to the JSON property `tlsMode` # @return [String] attr_accessor :tls_mode def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @proxy_tls_context = args[:proxy_tls_context] if args.key?(:proxy_tls_context) @subject_alt_names = args[:subject_alt_names] if args.key?(:subject_alt_names) @tls_mode = args[:tls_mode] if args.key?(:tls_mode) end end # A service account. class ServiceAccount include Google::Apis::Core::Hashable # Email address of the service account. # Corresponds to the JSON property `email` # @return [String] attr_accessor :email # The list of scopes to be made available for this 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 # Represents a ServiceAttachment resource. A service attachment represents a # service that a producer has exposed. It encapsulates the load balancer which # fronts the service runs and a list of NAT IP ranges that the producers uses to # represent the consumers connecting to the service. next tag = 20 class ServiceAttachment include Google::Apis::Core::Hashable # [Output Only] An array of connections for all the consumers connected to this # service attachment. # Corresponds to the JSON property `connectedEndpoints` # @return [Array] attr_accessor :connected_endpoints # The connection preference of service attachment. The value can be set to # ACCEPT_AUTOMATIC. An ACCEPT_AUTOMATIC service attachment is one that always # accepts the connection from consumer forwarding rules. # Corresponds to the JSON property `connectionPreference` # @return [String] attr_accessor :connection_preference # Projects that are allowed to connect to this service attachment. # Corresponds to the JSON property `consumerAcceptLists` # @return [Array] attr_accessor :consumer_accept_lists # Projects that are not allowed to connect to this service attachment. The # project can be specified using its id or number. # Corresponds to the JSON property `consumerRejectLists` # @return [Array] attr_accessor :consumer_reject_lists # [Output Only] Creation timestamp in RFC3339 text format. # Corresponds to the JSON property `creationTimestamp` # @return [String] attr_accessor :creation_timestamp # An optional description of this resource. Provide this property when you # create the resource. # Corresponds to the JSON property `description` # @return [String] attr_accessor :description # If specified, the domain name will be used during the integration between the # PSC connected endpoints and the Cloud DNS. For example, this is a valid domain # name: "p.mycompany.com.". Current max number of domain names supported is 1. # Corresponds to the JSON property `domainNames` # @return [Array] attr_accessor :domain_names # If true, enable the proxy protocol which is for supplying client TCP/IP # address data in TCP connections that traverse proxies on their way to # destination servers. # Corresponds to the JSON property `enableProxyProtocol` # @return [Boolean] attr_accessor :enable_proxy_protocol alias_method :enable_proxy_protocol?, :enable_proxy_protocol # Fingerprint of this resource. A hash of the contents stored in this object. # This field is used in optimistic locking. This field will be ignored when # inserting a ServiceAttachment. An up-to-date fingerprint must be provided in # order to patch/update the ServiceAttachment; otherwise, the request will fail # with error 412 conditionNotMet. To see the latest fingerprint, make a get() # request to retrieve the ServiceAttachment. # Corresponds to the JSON property `fingerprint` # NOTE: Values are automatically base64 encoded/decoded in the client library. # @return [String] attr_accessor :fingerprint # [Output Only] The unique identifier for the resource type. The server # generates this identifier. # Corresponds to the JSON property `id` # @return [Fixnum] attr_accessor :id # [Output Only] Type of the resource. Always compute#serviceAttachment for # service attachments. # Corresponds to the JSON property `kind` # @return [String] attr_accessor :kind # Name of the resource. Provided by the client when the resource is created. The # name must be 1-63 characters long, and comply with RFC1035. Specifically, the # name must be 1-63 characters long and match the regular expression `[a-z]([-a- # z0-9]*[a-z0-9])?` which means the first character must be a lowercase letter, # and all following characters must be a dash, lowercase letter, or digit, # except the last character, which cannot be a dash. # Corresponds to the JSON property `name` # @return [String] attr_accessor :name # An array of URLs where each entry is the URL of a subnet provided by the # service producer to use for NAT in this service attachment. # Corresponds to the JSON property `natSubnets` # @return [Array] attr_accessor :nat_subnets # The URL of a forwarding rule with loadBalancingScheme INTERNAL* that is # serving the endpoint identified by this service attachment. # Corresponds to the JSON property `producerForwardingRule` # @return [String] attr_accessor :producer_forwarding_rule # [Output Only] An 128-bit global unique ID of the PSC service attachment. # Corresponds to the JSON property `pscServiceAttachmentId` # @return [Google::Apis::ComputeAlpha::Uint128] attr_accessor :psc_service_attachment_id # [Output Only] URL of the region where the service attachment resides. This # field applies only to the region resource. You must specify this field as part # of the HTTP request URL. It is not settable as a field in the request body. # Corresponds to the JSON property `region` # @return [String] attr_accessor :region # [Output Only] Server-defined URL for the resource. # Corresponds to the JSON property `selfLink` # @return [String] attr_accessor :self_link # The URL of a service serving the endpoint identified by this service # attachment. # Corresponds to the JSON property `targetService` # @return [String] attr_accessor :target_service def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @connected_endpoints = args[:connected_endpoints] if args.key?(:connected_endpoints) @connection_preference = args[:connection_preference] if args.key?(:connection_preference) @consumer_accept_lists = args[:consumer_accept_lists] if args.key?(:consumer_accept_lists) @consumer_reject_lists = args[:consumer_reject_lists] if args.key?(:consumer_reject_lists) @creation_timestamp = args[:creation_timestamp] if args.key?(:creation_timestamp) @description = args[:description] if args.key?(:description) @domain_names = args[:domain_names] if args.key?(:domain_names) @enable_proxy_protocol = args[:enable_proxy_protocol] if args.key?(:enable_proxy_protocol) @fingerprint = args[:fingerprint] if args.key?(:fingerprint) @id = args[:id] if args.key?(:id) @kind = args[:kind] if args.key?(:kind) @name = args[:name] if args.key?(:name) @nat_subnets = args[:nat_subnets] if args.key?(:nat_subnets) @producer_forwarding_rule = args[:producer_forwarding_rule] if args.key?(:producer_forwarding_rule) @psc_service_attachment_id = args[:psc_service_attachment_id] if args.key?(:psc_service_attachment_id) @region = args[:region] if args.key?(:region) @self_link = args[:self_link] if args.key?(:self_link) @target_service = args[:target_service] if args.key?(:target_service) end end # Contains a list of ServiceAttachmentsScopedList. class ServiceAttachmentAggregatedList include Google::Apis::Core::Hashable # [Output Only] Unique identifier for the resource; defined by the server. # Corresponds to the JSON property `id` # @return [String] attr_accessor :id # A list of ServiceAttachmentsScopedList resources. # Corresponds to the JSON property `items` # @return [Hash] attr_accessor :items # Type of resource. # Corresponds to the JSON property `kind` # @return [String] attr_accessor :kind # [Output Only] This token allows you to get the next page of results for list # requests. If the number of results is larger than maxResults, use the # nextPageToken as a value for the query parameter pageToken in the next list # request. Subsequent list requests will have their own nextPageToken to # continue paging through the results. # Corresponds to the JSON property `nextPageToken` # @return [String] attr_accessor :next_page_token # [Output Only] Server-defined URL for this resource. # Corresponds to the JSON property `selfLink` # @return [String] attr_accessor :self_link # [Output Only] Unreachable resources. # Corresponds to the JSON property `unreachables` # @return [Array] attr_accessor :unreachables # [Output Only] Informational warning message. # Corresponds to the JSON property `warning` # @return [Google::Apis::ComputeAlpha::ServiceAttachmentAggregatedList::Warning] attr_accessor :warning def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @id = args[:id] if args.key?(:id) @items = args[:items] if args.key?(:items) @kind = args[:kind] if args.key?(:kind) @next_page_token = args[:next_page_token] if args.key?(:next_page_token) @self_link = args[:self_link] if args.key?(:self_link) @unreachables = args[:unreachables] if args.key?(:unreachables) @warning = args[:warning] if args.key?(:warning) end # [Output Only] Informational warning message. class Warning include Google::Apis::Core::Hashable # [Output Only] A warning code, if applicable. For example, Compute Engine # returns NO_RESULTS_ON_PAGE if there are no results in the response. # Corresponds to the JSON property `code` # @return [String] attr_accessor :code # [Output Only] Metadata about this warning in key: value format. For example: " # data": [ ` "key": "scope", "value": "zones/us-east1-d" ` # Corresponds to the JSON property `data` # @return [Array] attr_accessor :data # [Output Only] A human-readable description of the warning code. # Corresponds to the JSON property `message` # @return [String] attr_accessor :message def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @code = args[:code] if args.key?(:code) @data = args[:data] if args.key?(:data) @message = args[:message] if args.key?(:message) end # class Datum include Google::Apis::Core::Hashable # [Output Only] A key that provides more detail on the warning being returned. # For example, for warnings where there are no results in a list request for a # particular zone, this key might be scope and the key value might be the zone # name. Other examples might be a key indicating a deprecated resource and a # suggested replacement, or a warning about invalid network settings (for # example, if an instance attempts to perform IP forwarding but is not enabled # for IP forwarding). # Corresponds to the JSON property `key` # @return [String] attr_accessor :key # [Output Only] A warning data value corresponding to the key. # 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 end end # [Output Only] A connection connected to this service attachment. class ServiceAttachmentConnectedEndpoint include Google::Apis::Core::Hashable # The url of a connected endpoint. # Corresponds to the JSON property `endpoint` # @return [String] attr_accessor :endpoint # The PSC connection id of the connected endpoint. # Corresponds to the JSON property `pscConnectionId` # @return [Fixnum] attr_accessor :psc_connection_id # The status of a connected endpoint to this service attachment. # 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) @endpoint = args[:endpoint] if args.key?(:endpoint) @psc_connection_id = args[:psc_connection_id] if args.key?(:psc_connection_id) @status = args[:status] if args.key?(:status) end end # class ServiceAttachmentConsumerProjectLimit include Google::Apis::Core::Hashable # The value of the limit to set. # Corresponds to the JSON property `connectionLimit` # @return [Fixnum] attr_accessor :connection_limit # The project id or number for the project to set the limit for. # Corresponds to the JSON property `projectIdOrNum` # @return [String] attr_accessor :project_id_or_num def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @connection_limit = args[:connection_limit] if args.key?(:connection_limit) @project_id_or_num = args[:project_id_or_num] if args.key?(:project_id_or_num) end end # class ServiceAttachmentList include Google::Apis::Core::Hashable # [Output Only] Unique identifier for the resource; defined by the server. # Corresponds to the JSON property `id` # @return [String] attr_accessor :id # A list of ServiceAttachment resources. # Corresponds to the JSON property `items` # @return [Array] attr_accessor :items # [Output Only] Type of the resource. Always compute#serviceAttachment for # service attachments. # Corresponds to the JSON property `kind` # @return [String] attr_accessor :kind # [Output Only] This token allows you to get the next page of results for list # requests. If the number of results is larger than maxResults, use the # nextPageToken as a value for the query parameter pageToken in the next list # request. Subsequent list requests will have their own nextPageToken to # continue paging through the results. # Corresponds to the JSON property `nextPageToken` # @return [String] attr_accessor :next_page_token # [Output Only] Server-defined URL for this resource. # Corresponds to the JSON property `selfLink` # @return [String] attr_accessor :self_link # [Output Only] Informational warning message. # Corresponds to the JSON property `warning` # @return [Google::Apis::ComputeAlpha::ServiceAttachmentList::Warning] attr_accessor :warning def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @id = args[:id] if args.key?(:id) @items = args[:items] if args.key?(:items) @kind = args[:kind] if args.key?(:kind) @next_page_token = args[:next_page_token] if args.key?(:next_page_token) @self_link = args[:self_link] if args.key?(:self_link) @warning = args[:warning] if args.key?(:warning) end # [Output Only] Informational warning message. class Warning include Google::Apis::Core::Hashable # [Output Only] A warning code, if applicable. For example, Compute Engine # returns NO_RESULTS_ON_PAGE if there are no results in the response. # Corresponds to the JSON property `code` # @return [String] attr_accessor :code # [Output Only] Metadata about this warning in key: value format. For example: " # data": [ ` "key": "scope", "value": "zones/us-east1-d" ` # Corresponds to the JSON property `data` # @return [Array] attr_accessor :data # [Output Only] A human-readable description of the warning code. # Corresponds to the JSON property `message` # @return [String] attr_accessor :message def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @code = args[:code] if args.key?(:code) @data = args[:data] if args.key?(:data) @message = args[:message] if args.key?(:message) end # class Datum include Google::Apis::Core::Hashable # [Output Only] A key that provides more detail on the warning being returned. # For example, for warnings where there are no results in a list request for a # particular zone, this key might be scope and the key value might be the zone # name. Other examples might be a key indicating a deprecated resource and a # suggested replacement, or a warning about invalid network settings (for # example, if an instance attempts to perform IP forwarding but is not enabled # for IP forwarding). # Corresponds to the JSON property `key` # @return [String] attr_accessor :key # [Output Only] A warning data value corresponding to the key. # 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 end end # class ServiceAttachmentsScopedList include Google::Apis::Core::Hashable # A list of ServiceAttachments contained in this scope. # Corresponds to the JSON property `serviceAttachments` # @return [Array] attr_accessor :service_attachments # Informational warning which replaces the list of service attachments when the # list is empty. # Corresponds to the JSON property `warning` # @return [Google::Apis::ComputeAlpha::ServiceAttachmentsScopedList::Warning] attr_accessor :warning def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @service_attachments = args[:service_attachments] if args.key?(:service_attachments) @warning = args[:warning] if args.key?(:warning) end # Informational warning which replaces the list of service attachments when the # list is empty. class Warning include Google::Apis::Core::Hashable # [Output Only] A warning code, if applicable. For example, Compute Engine # returns NO_RESULTS_ON_PAGE if there are no results in the response. # Corresponds to the JSON property `code` # @return [String] attr_accessor :code # [Output Only] Metadata about this warning in key: value format. For example: " # data": [ ` "key": "scope", "value": "zones/us-east1-d" ` # Corresponds to the JSON property `data` # @return [Array] attr_accessor :data # [Output Only] A human-readable description of the warning code. # Corresponds to the JSON property `message` # @return [String] attr_accessor :message def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @code = args[:code] if args.key?(:code) @data = args[:data] if args.key?(:data) @message = args[:message] if args.key?(:message) end # class Datum include Google::Apis::Core::Hashable # [Output Only] A key that provides more detail on the warning being returned. # For example, for warnings where there are no results in a list request for a # particular zone, this key might be scope and the key value might be the zone # name. Other examples might be a key indicating a deprecated resource and a # suggested replacement, or a warning about invalid network settings (for # example, if an instance attempts to perform IP forwarding but is not enabled # for IP forwarding). # Corresponds to the JSON property `key` # @return [String] attr_accessor :key # [Output Only] A warning data value corresponding to the key. # 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 end end # The share setting for reservations and sole tenancy node groups. class ShareSettings include Google::Apis::Core::Hashable # A map of folder id and folder config to specify consumer projects for this # shared-reservation. This is only valid when share_type's value is # DIRECT_PROJECTS_UNDER_SPECIFIC_FOLDERS. Folder id should be a string of number, # and without "folders/" prefix. # Corresponds to the JSON property `folderMap` # @return [Hash] attr_accessor :folder_map # A map of project id and project config. This is only valid when share_type's # value is SPECIFIC_PROJECTS. # Corresponds to the JSON property `projectMap` # @return [Hash] attr_accessor :project_map # A List of Project names to specify consumer projects for this shared- # reservation. This is only valid when share_type's value is SPECIFIC_PROJECTS. # Corresponds to the JSON property `projects` # @return [Array] attr_accessor :projects # Type of sharing for this shared-reservation # Corresponds to the JSON property `shareType` # @return [String] attr_accessor :share_type def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @folder_map = args[:folder_map] if args.key?(:folder_map) @project_map = args[:project_map] if args.key?(:project_map) @projects = args[:projects] if args.key?(:projects) @share_type = args[:share_type] if args.key?(:share_type) end end # Config for each folder in the share settings. class ShareSettingsFolderConfig include Google::Apis::Core::Hashable # The folder ID, should be same as the key of this folder config in the parent # map. Folder id should be a string of number, and without "folders/" prefix. # Corresponds to the JSON property `folderId` # @return [String] attr_accessor :folder_id def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @folder_id = args[:folder_id] if args.key?(:folder_id) end end # Config for each project in the share settings. class ShareSettingsProjectConfig include Google::Apis::Core::Hashable # The project ID, should be same as the key of this project config in the parent # map. # Corresponds to the JSON property `projectId` # @return [String] attr_accessor :project_id def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @project_id = args[:project_id] if args.key?(:project_id) end end # A set of Shielded Instance options. class ShieldedInstanceConfig include Google::Apis::Core::Hashable # Defines whether the instance has integrity monitoring enabled. Enabled by # default. # Corresponds to the JSON property `enableIntegrityMonitoring` # @return [Boolean] attr_accessor :enable_integrity_monitoring alias_method :enable_integrity_monitoring?, :enable_integrity_monitoring # Defines whether the instance has Secure Boot enabled. Disabled by default. # Corresponds to the JSON property `enableSecureBoot` # @return [Boolean] attr_accessor :enable_secure_boot alias_method :enable_secure_boot?, :enable_secure_boot # Defines whether the instance has the vTPM enabled. Enabled by default. # Corresponds to the JSON property `enableVtpm` # @return [Boolean] attr_accessor :enable_vtpm alias_method :enable_vtpm?, :enable_vtpm def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @enable_integrity_monitoring = args[:enable_integrity_monitoring] if args.key?(:enable_integrity_monitoring) @enable_secure_boot = args[:enable_secure_boot] if args.key?(:enable_secure_boot) @enable_vtpm = args[:enable_vtpm] if args.key?(:enable_vtpm) end end # A Shielded Instance Identity. class ShieldedInstanceIdentity include Google::Apis::Core::Hashable # A Shielded Instance Identity Entry. # Corresponds to the JSON property `eccP256EncryptionKey` # @return [Google::Apis::ComputeAlpha::ShieldedInstanceIdentityEntry] attr_accessor :ecc_p256_encryption_key # A Shielded Instance Identity Entry. # Corresponds to the JSON property `eccP256SigningKey` # @return [Google::Apis::ComputeAlpha::ShieldedInstanceIdentityEntry] attr_accessor :ecc_p256_signing_key # A Shielded Instance Identity Entry. # Corresponds to the JSON property `encryptionKey` # @return [Google::Apis::ComputeAlpha::ShieldedInstanceIdentityEntry] attr_accessor :encryption_key # [Output Only] Type of the resource. Always compute#shieldedInstanceIdentity # for shielded Instance identity entry. # Corresponds to the JSON property `kind` # @return [String] attr_accessor :kind # A Shielded Instance Identity Entry. # Corresponds to the JSON property `signingKey` # @return [Google::Apis::ComputeAlpha::ShieldedInstanceIdentityEntry] attr_accessor :signing_key def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @ecc_p256_encryption_key = args[:ecc_p256_encryption_key] if args.key?(:ecc_p256_encryption_key) @ecc_p256_signing_key = args[:ecc_p256_signing_key] if args.key?(:ecc_p256_signing_key) @encryption_key = args[:encryption_key] if args.key?(:encryption_key) @kind = args[:kind] if args.key?(:kind) @signing_key = args[:signing_key] if args.key?(:signing_key) end end # A Shielded Instance Identity Entry. class ShieldedInstanceIdentityEntry include Google::Apis::Core::Hashable # A PEM-encoded X.509 certificate. This field can be empty. # Corresponds to the JSON property `ekCert` # @return [String] attr_accessor :ek_cert # A PEM-encoded public key. # Corresponds to the JSON property `ekPub` # @return [String] attr_accessor :ek_pub def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @ek_cert = args[:ek_cert] if args.key?(:ek_cert) @ek_pub = args[:ek_pub] if args.key?(:ek_pub) end end # The policy describes the baseline against which Instance boot integrity is # measured. class ShieldedInstanceIntegrityPolicy include Google::Apis::Core::Hashable # Updates the integrity policy baseline using the measurements from the VM # instance's most recent boot. # Corresponds to the JSON property `updateAutoLearnPolicy` # @return [Boolean] attr_accessor :update_auto_learn_policy alias_method :update_auto_learn_policy?, :update_auto_learn_policy def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @update_auto_learn_policy = args[:update_auto_learn_policy] if args.key?(:update_auto_learn_policy) end end # A set of Shielded VM options. class ShieldedVmConfig include Google::Apis::Core::Hashable # Defines whether the instance has integrity monitoring enabled. # Corresponds to the JSON property `enableIntegrityMonitoring` # @return [Boolean] attr_accessor :enable_integrity_monitoring alias_method :enable_integrity_monitoring?, :enable_integrity_monitoring # Defines whether the instance has Secure Boot enabled. # Corresponds to the JSON property `enableSecureBoot` # @return [Boolean] attr_accessor :enable_secure_boot alias_method :enable_secure_boot?, :enable_secure_boot # Defines whether the instance has the vTPM enabled. # Corresponds to the JSON property `enableVtpm` # @return [Boolean] attr_accessor :enable_vtpm alias_method :enable_vtpm?, :enable_vtpm def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @enable_integrity_monitoring = args[:enable_integrity_monitoring] if args.key?(:enable_integrity_monitoring) @enable_secure_boot = args[:enable_secure_boot] if args.key?(:enable_secure_boot) @enable_vtpm = args[:enable_vtpm] if args.key?(:enable_vtpm) end end # A Shielded VM Identity. class ShieldedVmIdentity include Google::Apis::Core::Hashable # A Shielded Instance Identity Entry. # Corresponds to the JSON property `encryptionKey` # @return [Google::Apis::ComputeAlpha::ShieldedVmIdentityEntry] attr_accessor :encryption_key # [Output Only] Type of the resource. Always compute#shieldedVmIdentity for # shielded VM identity entry. # Corresponds to the JSON property `kind` # @return [String] attr_accessor :kind # A Shielded Instance Identity Entry. # Corresponds to the JSON property `signingKey` # @return [Google::Apis::ComputeAlpha::ShieldedVmIdentityEntry] attr_accessor :signing_key def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @encryption_key = args[:encryption_key] if args.key?(:encryption_key) @kind = args[:kind] if args.key?(:kind) @signing_key = args[:signing_key] if args.key?(:signing_key) end end # A Shielded Instance Identity Entry. class ShieldedVmIdentityEntry include Google::Apis::Core::Hashable # A PEM-encoded X.509 certificate. This field can be empty. # Corresponds to the JSON property `ekCert` # @return [String] attr_accessor :ek_cert # A PEM-encoded public key. # Corresponds to the JSON property `ekPub` # @return [String] attr_accessor :ek_pub def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @ek_cert = args[:ek_cert] if args.key?(:ek_cert) @ek_pub = args[:ek_pub] if args.key?(:ek_pub) end end # The policy describes the baseline against which VM instance boot integrity is # measured. class ShieldedVmIntegrityPolicy include Google::Apis::Core::Hashable # Updates the integrity policy baseline using the measurements from the VM # instance's most recent boot. # Corresponds to the JSON property `updateAutoLearnPolicy` # @return [Boolean] attr_accessor :update_auto_learn_policy alias_method :update_auto_learn_policy?, :update_auto_learn_policy def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @update_auto_learn_policy = args[:update_auto_learn_policy] if args.key?(:update_auto_learn_policy) end end # Represents a customer-supplied Signing Key used by Cloud CDN Signed URLs class SignedUrlKey include Google::Apis::Core::Hashable # Name of the key. The name must be 1-63 characters long, and comply with # RFC1035. Specifically, the name must be 1-63 characters long and match the # regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first # character must be a lowercase letter, and all following characters must be a # dash, lowercase letter, or digit, except the last character, which cannot be a # dash. # Corresponds to the JSON property `keyName` # @return [String] attr_accessor :key_name # 128-bit key value used for signing the URL. The key value must be a valid RFC # 4648 Section 5 base64url encoded string. # Corresponds to the JSON property `keyValue` # @return [String] attr_accessor :key_value def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @key_name = args[:key_name] if args.key?(:key_name) @key_value = args[:key_value] if args.key?(:key_value) end end # Represents a Persistent Disk Snapshot resource. You can use snapshots to back # up data on a regular interval. For more information, read Creating persistent # disk snapshots. class Snapshot include Google::Apis::Core::Hashable # [Output Only] The architecture of the snapshot. Valid values are ARM64 or # X86_64. # Corresponds to the JSON property `architecture` # @return [String] attr_accessor :architecture # [Output Only] Set to true if snapshots are automatically created by applying # resource policy on the target disk. # Corresponds to the JSON property `autoCreated` # @return [Boolean] attr_accessor :auto_created alias_method :auto_created?, :auto_created # Creates the new snapshot in the snapshot chain labeled with the specified name. # The chain name must be 1-63 characters long and comply with RFC1035. This is # an uncommon option only for advanced service owners who needs to create # separate snapshot chains, for example, for chargeback tracking. When you # describe your snapshot resource, this field is visible only if it has a non- # empty value. # Corresponds to the JSON property `chainName` # @return [String] attr_accessor :chain_name # [Output Only] Creation timestamp in RFC3339 text format. # Corresponds to the JSON property `creationTimestamp` # @return [String] attr_accessor :creation_timestamp # An optional description of this resource. Provide this property when you # create the resource. # Corresponds to the JSON property `description` # @return [String] attr_accessor :description # [Output Only] Size of the source disk, specified in GB. # Corresponds to the JSON property `diskSizeGb` # @return [Fixnum] attr_accessor :disk_size_gb # [Output Only] Number of bytes downloaded to restore a snapshot to a disk. # Corresponds to the JSON property `downloadBytes` # @return [Fixnum] attr_accessor :download_bytes # [Input Only] Whether to attempt an application consistent snapshot by # informing the OS to prepare for the snapshot process. # Corresponds to the JSON property `guestFlush` # @return [Boolean] attr_accessor :guest_flush alias_method :guest_flush?, :guest_flush # [Output Only] A list of features to enable on the guest operating system. # Applicable only for bootable images. Read Enabling guest operating system # features to see a list of available options. # Corresponds to the JSON property `guestOsFeatures` # @return [Array] attr_accessor :guest_os_features # [Output Only] The unique identifier for the resource. This identifier is # defined by the server. # Corresponds to the JSON property `id` # @return [Fixnum] attr_accessor :id # [Output Only] Type of the resource. Always compute#snapshot for Snapshot # resources. # Corresponds to the JSON property `kind` # @return [String] attr_accessor :kind # A fingerprint for the labels being applied to this snapshot, which is # essentially a hash of the labels set used for optimistic locking. The # fingerprint is initially generated by Compute Engine and changes after every # request to modify or update labels. You must always provide an up-to-date # fingerprint hash in order to update or change labels, otherwise the request # will fail with error 412 conditionNotMet. To see the latest fingerprint, make # a get() request to retrieve a snapshot. # Corresponds to the JSON property `labelFingerprint` # NOTE: Values are automatically base64 encoded/decoded in the client library. # @return [String] attr_accessor :label_fingerprint # Labels to apply to this snapshot. These can be later modified by the setLabels # method. Label values may be empty. # Corresponds to the JSON property `labels` # @return [Hash] attr_accessor :labels # [Output Only] Integer license codes indicating which licenses are attached to # this snapshot. # Corresponds to the JSON property `licenseCodes` # @return [Array] attr_accessor :license_codes # [Output Only] A list of public visible licenses that apply to this snapshot. # This can be because the original image had licenses attached (such as a # Windows image). # Corresponds to the JSON property `licenses` # @return [Array] attr_accessor :licenses # An opaque location hint used to place the snapshot close to other resources. # This field is for use by internal tools that use the public API. # Corresponds to the JSON property `locationHint` # @return [String] attr_accessor :location_hint # Name of the resource; provided by the client when the resource is created. The # name must be 1-63 characters long, and comply with RFC1035. Specifically, the # name must be 1-63 characters long and match the regular expression `[a-z]([-a- # z0-9]*[a-z0-9])?` which means the first character must be a lowercase letter, # and all following characters must be a dash, lowercase letter, or digit, # except the last character, which cannot be a dash. # Corresponds to the JSON property `name` # @return [String] attr_accessor :name # [Output Only] Reserved for future use. # Corresponds to the JSON property `satisfiesPzs` # @return [Boolean] attr_accessor :satisfies_pzs alias_method :satisfies_pzs?, :satisfies_pzs # [Output Only] Server-defined URL for the resource. # Corresponds to the JSON property `selfLink` # @return [String] attr_accessor :self_link # [Output Only] Server-defined URL for this resource's resource id. # Corresponds to the JSON property `selfLinkWithId` # @return [String] attr_accessor :self_link_with_id # Encrypts the snapshot using a customer-supplied encryption key. After you # encrypt a snapshot using a customer-supplied key, you must provide the same # key if you use the snapshot later. For example, you must provide the # encryption key when you create a disk from the encrypted snapshot in a future # request. Customer-supplied encryption keys do not protect access to metadata # of the snapshot. If you do not provide an encryption key when creating the # snapshot, then the snapshot will be encrypted using an automatically generated # key and you do not need to provide a key to use the snapshot later. # Corresponds to the JSON property `snapshotEncryptionKey` # @return [Google::Apis::ComputeAlpha::CustomerEncryptionKey] attr_accessor :snapshot_encryption_key # Indicates the type of the snapshot. # Corresponds to the JSON property `snapshotType` # @return [String] attr_accessor :snapshot_type # The source disk used to create this snapshot. # Corresponds to the JSON property `sourceDisk` # @return [String] attr_accessor :source_disk # The customer-supplied encryption key of the source disk. Required if the # source disk is protected by a customer-supplied encryption key. # Corresponds to the JSON property `sourceDiskEncryptionKey` # @return [Google::Apis::ComputeAlpha::CustomerEncryptionKey] attr_accessor :source_disk_encryption_key # [Output Only] The ID value of the disk used to create this snapshot. This # value may be used to determine whether the snapshot was taken from the current # or a previous instance of a given disk name. # Corresponds to the JSON property `sourceDiskId` # @return [String] attr_accessor :source_disk_id # The source instant snapshot used to create this snapshot. You can provide this # as a partial or full URL to the resource. For example, the following are valid # values: - https://www.googleapis.com/compute/v1/projects/project/zones/zone / # instantSnapshots/instantSnapshot - projects/project/zones/zone/ # instantSnapshots/instantSnapshot - zones/zone/instantSnapshots/instantSnapshot # Corresponds to the JSON property `sourceInstantSnapshot` # @return [String] attr_accessor :source_instant_snapshot # [Output Only] The unique ID of the instant snapshot used to create this # snapshot. This value identifies the exact instant snapshot that was used to # create this persistent disk. For example, if you created the persistent disk # from an instant snapshot that was later deleted and recreated under the same # name, the source instant snapshot ID would identify the exact instant snapshot # that was used. # Corresponds to the JSON property `sourceInstantSnapshotId` # @return [String] attr_accessor :source_instant_snapshot_id # [Output Only] URL of the resource policy which created this scheduled snapshot. # Corresponds to the JSON property `sourceSnapshotSchedulePolicy` # @return [String] attr_accessor :source_snapshot_schedule_policy # [Output Only] ID of the resource policy which created this scheduled snapshot. # Corresponds to the JSON property `sourceSnapshotSchedulePolicyId` # @return [String] attr_accessor :source_snapshot_schedule_policy_id # [Output Only] The status of the snapshot. This can be CREATING, DELETING, # FAILED, READY, or UPLOADING. # Corresponds to the JSON property `status` # @return [String] attr_accessor :status # [Output Only] A size of the storage used by the snapshot. As snapshots share # storage, this number is expected to change with snapshot creation/deletion. # Corresponds to the JSON property `storageBytes` # @return [Fixnum] attr_accessor :storage_bytes # [Output Only] An indicator whether storageBytes is in a stable state or it is # being adjusted as a result of shared storage reallocation. This status can # either be UPDATING, meaning the size of the snapshot is being updated, or # UP_TO_DATE, meaning the size of the snapshot is up-to-date. # Corresponds to the JSON property `storageBytesStatus` # @return [String] attr_accessor :storage_bytes_status # Cloud Storage bucket storage location of the snapshot (regional or multi- # regional). # Corresponds to the JSON property `storageLocations` # @return [Array] attr_accessor :storage_locations # [Output Only] A list of user provided licenses represented by a list of URLs # to the license resource. # Corresponds to the JSON property `userLicenses` # @return [Array] attr_accessor :user_licenses def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @architecture = args[:architecture] if args.key?(:architecture) @auto_created = args[:auto_created] if args.key?(:auto_created) @chain_name = args[:chain_name] if args.key?(:chain_name) @creation_timestamp = args[:creation_timestamp] if args.key?(:creation_timestamp) @description = args[:description] if args.key?(:description) @disk_size_gb = args[:disk_size_gb] if args.key?(:disk_size_gb) @download_bytes = args[:download_bytes] if args.key?(:download_bytes) @guest_flush = args[:guest_flush] if args.key?(:guest_flush) @guest_os_features = args[:guest_os_features] if args.key?(:guest_os_features) @id = args[:id] if args.key?(:id) @kind = args[:kind] if args.key?(:kind) @label_fingerprint = args[:label_fingerprint] if args.key?(:label_fingerprint) @labels = args[:labels] if args.key?(:labels) @license_codes = args[:license_codes] if args.key?(:license_codes) @licenses = args[:licenses] if args.key?(:licenses) @location_hint = args[:location_hint] if args.key?(:location_hint) @name = args[:name] if args.key?(:name) @satisfies_pzs = args[:satisfies_pzs] if args.key?(:satisfies_pzs) @self_link = args[:self_link] if args.key?(:self_link) @self_link_with_id = args[:self_link_with_id] if args.key?(:self_link_with_id) @snapshot_encryption_key = args[:snapshot_encryption_key] if args.key?(:snapshot_encryption_key) @snapshot_type = args[:snapshot_type] if args.key?(:snapshot_type) @source_disk = args[:source_disk] if args.key?(:source_disk) @source_disk_encryption_key = args[:source_disk_encryption_key] if args.key?(:source_disk_encryption_key) @source_disk_id = args[:source_disk_id] if args.key?(:source_disk_id) @source_instant_snapshot = args[:source_instant_snapshot] if args.key?(:source_instant_snapshot) @source_instant_snapshot_id = args[:source_instant_snapshot_id] if args.key?(:source_instant_snapshot_id) @source_snapshot_schedule_policy = args[:source_snapshot_schedule_policy] if args.key?(:source_snapshot_schedule_policy) @source_snapshot_schedule_policy_id = args[:source_snapshot_schedule_policy_id] if args.key?(:source_snapshot_schedule_policy_id) @status = args[:status] if args.key?(:status) @storage_bytes = args[:storage_bytes] if args.key?(:storage_bytes) @storage_bytes_status = args[:storage_bytes_status] if args.key?(:storage_bytes_status) @storage_locations = args[:storage_locations] if args.key?(:storage_locations) @user_licenses = args[:user_licenses] if args.key?(:user_licenses) end end # Contains a list of Snapshot resources. class SnapshotList include Google::Apis::Core::Hashable # [Output Only] Unique identifier for the resource; defined by the server. # Corresponds to the JSON property `id` # @return [String] attr_accessor :id # A list of Snapshot resources. # Corresponds to the JSON property `items` # @return [Array] attr_accessor :items # Type of resource. # Corresponds to the JSON property `kind` # @return [String] attr_accessor :kind # [Output Only] This token allows you to get the next page of results for list # requests. If the number of results is larger than maxResults, use the # nextPageToken as a value for the query parameter pageToken in the next list # request. Subsequent list requests will have their own nextPageToken to # continue paging through the results. # Corresponds to the JSON property `nextPageToken` # @return [String] attr_accessor :next_page_token # [Output Only] Server-defined URL for this resource. # Corresponds to the JSON property `selfLink` # @return [String] attr_accessor :self_link # [Output Only] Informational warning message. # Corresponds to the JSON property `warning` # @return [Google::Apis::ComputeAlpha::SnapshotList::Warning] attr_accessor :warning def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @id = args[:id] if args.key?(:id) @items = args[:items] if args.key?(:items) @kind = args[:kind] if args.key?(:kind) @next_page_token = args[:next_page_token] if args.key?(:next_page_token) @self_link = args[:self_link] if args.key?(:self_link) @warning = args[:warning] if args.key?(:warning) end # [Output Only] Informational warning message. class Warning include Google::Apis::Core::Hashable # [Output Only] A warning code, if applicable. For example, Compute Engine # returns NO_RESULTS_ON_PAGE if there are no results in the response. # Corresponds to the JSON property `code` # @return [String] attr_accessor :code # [Output Only] Metadata about this warning in key: value format. For example: " # data": [ ` "key": "scope", "value": "zones/us-east1-d" ` # Corresponds to the JSON property `data` # @return [Array] attr_accessor :data # [Output Only] A human-readable description of the warning code. # Corresponds to the JSON property `message` # @return [String] attr_accessor :message def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @code = args[:code] if args.key?(:code) @data = args[:data] if args.key?(:data) @message = args[:message] if args.key?(:message) end # class Datum include Google::Apis::Core::Hashable # [Output Only] A key that provides more detail on the warning being returned. # For example, for warnings where there are no results in a list request for a # particular zone, this key might be scope and the key value might be the zone # name. Other examples might be a key indicating a deprecated resource and a # suggested replacement, or a warning about invalid network settings (for # example, if an instance attempts to perform IP forwarding but is not enabled # for IP forwarding). # Corresponds to the JSON property `key` # @return [String] attr_accessor :key # [Output Only] A warning data value corresponding to the key. # 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 end end # class SourceDiskEncryptionKey include Google::Apis::Core::Hashable # The customer-supplied encryption key of the source disk. Required if the # source disk is protected by a customer-supplied encryption key. # Corresponds to the JSON property `diskEncryptionKey` # @return [Google::Apis::ComputeAlpha::CustomerEncryptionKey] attr_accessor :disk_encryption_key # URL of the disk attached to the source instance. This can be a full or valid # partial URL. For example, the following are valid values: - https://www. # googleapis.com/compute/v1/projects/project/zones/zone /disks/disk - projects/ # project/zones/zone/disks/disk - zones/zone/disks/disk # Corresponds to the JSON property `sourceDisk` # @return [String] attr_accessor :source_disk def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @disk_encryption_key = args[:disk_encryption_key] if args.key?(:disk_encryption_key) @source_disk = args[:source_disk] if args.key?(:source_disk) end end # A specification of the parameters to use when creating the instance template # from a source instance. class SourceInstanceParams include Google::Apis::Core::Hashable # Attached disks configuration. If not provided, defaults are applied: For boot # disk and any other R/W disks, new custom images will be created from each disk. # For read-only disks, they will be attached in read-only mode. Local SSD disks # will be created as blank volumes. # Corresponds to the JSON property `diskConfigs` # @return [Array] attr_accessor :disk_configs def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @disk_configs = args[:disk_configs] if args.key?(:disk_configs) end end # DEPRECATED: Please use compute#instanceProperties instead. New properties will # not be added to this field. class SourceInstanceProperties include Google::Apis::Core::Hashable # Enables instances created based on this machine image to send packets with # source IP addresses other than their own and receive packets with destination # IP addresses other than their own. If these instances will be used as an IP # gateway or it will be set as the next-hop in a Route resource, specify true. # If unsure, leave this set to false. See the Enable IP forwarding documentation # for more information. # Corresponds to the JSON property `canIpForward` # @return [Boolean] attr_accessor :can_ip_forward alias_method :can_ip_forward?, :can_ip_forward # Whether the instance created from this machine image should be protected # against deletion. # Corresponds to the JSON property `deletionProtection` # @return [Boolean] attr_accessor :deletion_protection alias_method :deletion_protection?, :deletion_protection # An optional text description for the instances that are created from this # machine image. # Corresponds to the JSON property `description` # @return [String] attr_accessor :description # An array of disks that are associated with the instances that are created from # this machine image. # Corresponds to the JSON property `disks` # @return [Array] attr_accessor :disks # A list of guest accelerator cards' type and count to use for instances created # from this machine image. # Corresponds to the JSON property `guestAccelerators` # @return [Array] attr_accessor :guest_accelerators # KeyRevocationActionType of the instance. Supported options are "STOP" and " # NONE". The default value is "NONE" if it is not specified. # Corresponds to the JSON property `keyRevocationActionType` # @return [String] attr_accessor :key_revocation_action_type # Labels to apply to instances that are created from this machine image. # Corresponds to the JSON property `labels` # @return [Hash] attr_accessor :labels # The machine type to use for instances that are created from this machine image. # Corresponds to the JSON property `machineType` # @return [String] attr_accessor :machine_type # A metadata key/value entry. # Corresponds to the JSON property `metadata` # @return [Google::Apis::ComputeAlpha::Metadata] attr_accessor :metadata # Minimum cpu/platform to be used by instances created from this machine image. # The instance may be scheduled on the specified or newer cpu/platform. # Applicable values are the friendly names of CPU platforms, such as # minCpuPlatform: "Intel Haswell" or minCpuPlatform: "Intel Sandy Bridge". For # more information, read Specifying a Minimum CPU Platform. # Corresponds to the JSON property `minCpuPlatform` # @return [String] attr_accessor :min_cpu_platform # An array of network access configurations for this interface. # Corresponds to the JSON property `networkInterfaces` # @return [Array] attr_accessor :network_interfaces # PostKeyRevocationActionType of the instance. # Corresponds to the JSON property `postKeyRevocationActionType` # @return [String] attr_accessor :post_key_revocation_action_type # Sets the scheduling options for an Instance. NextID: 21 # Corresponds to the JSON property `scheduling` # @return [Google::Apis::ComputeAlpha::Scheduling] attr_accessor :scheduling # A list of service accounts with specified scopes. Access tokens for these # service accounts are available to the instances that are created from this # machine image. Use metadata queries to obtain the access tokens for these # instances. # Corresponds to the JSON property `serviceAccounts` # @return [Array] attr_accessor :service_accounts # A set of instance tags. # Corresponds to the JSON property `tags` # @return [Google::Apis::ComputeAlpha::Tags] attr_accessor :tags def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @can_ip_forward = args[:can_ip_forward] if args.key?(:can_ip_forward) @deletion_protection = args[:deletion_protection] if args.key?(:deletion_protection) @description = args[:description] if args.key?(:description) @disks = args[:disks] if args.key?(:disks) @guest_accelerators = args[:guest_accelerators] if args.key?(:guest_accelerators) @key_revocation_action_type = args[:key_revocation_action_type] if args.key?(:key_revocation_action_type) @labels = args[:labels] if args.key?(:labels) @machine_type = args[:machine_type] if args.key?(:machine_type) @metadata = args[:metadata] if args.key?(:metadata) @min_cpu_platform = args[:min_cpu_platform] if args.key?(:min_cpu_platform) @network_interfaces = args[:network_interfaces] if args.key?(:network_interfaces) @post_key_revocation_action_type = args[:post_key_revocation_action_type] if args.key?(:post_key_revocation_action_type) @scheduling = args[:scheduling] if args.key?(:scheduling) @service_accounts = args[:service_accounts] if args.key?(:service_accounts) @tags = args[:tags] if args.key?(:tags) end end # Represents an SSL Certificate resource. Google Compute Engine has two SSL # Certificate resources: * [Global](/compute/docs/reference/rest/alpha/ # sslCertificates) * [Regional](/compute/docs/reference/rest/alpha/ # regionSslCertificates) The sslCertificates are used by: - external HTTPS load # balancers - SSL proxy load balancers The regionSslCertificates are used by # internal HTTPS load balancers. Optionally, certificate file contents that you # upload can contain a set of up to five PEM-encoded certificates. The API call # creates an object (sslCertificate) that holds this data. You can use SSL keys # and certificates to secure connections to a load balancer. For more # information, read Creating and using SSL certificates, SSL certificates quotas # and limits, and Troubleshooting SSL certificates. class SslCertificate include Google::Apis::Core::Hashable # A value read into memory from a certificate file. The certificate file must be # in PEM format. The certificate chain must be no greater than 5 certs long. The # chain must include at least one intermediate cert. # Corresponds to the JSON property `certificate` # @return [String] attr_accessor :certificate # [Output Only] Creation timestamp in RFC3339 text format. # Corresponds to the JSON property `creationTimestamp` # @return [String] attr_accessor :creation_timestamp # An optional description of this resource. Provide this property when you # create the resource. # Corresponds to the JSON property `description` # @return [String] attr_accessor :description # [Output Only] Expire time of the certificate. RFC3339 # Corresponds to the JSON property `expireTime` # @return [String] attr_accessor :expire_time # [Output Only] The unique identifier for the resource. This identifier is # defined by the server. # Corresponds to the JSON property `id` # @return [Fixnum] attr_accessor :id # [Output Only] Type of the resource. Always compute#sslCertificate for SSL # certificates. # Corresponds to the JSON property `kind` # @return [String] attr_accessor :kind # Configuration and status of a managed SSL certificate. # Corresponds to the JSON property `managed` # @return [Google::Apis::ComputeAlpha::SslCertificateManagedSslCertificate] attr_accessor :managed # Name of the resource. Provided by the client when the resource is created. The # name must be 1-63 characters long, and comply with RFC1035. Specifically, the # name must be 1-63 characters long and match the regular expression `[a-z]([-a- # z0-9]*[a-z0-9])?` which means the first character must be a lowercase letter, # and all following characters must be a dash, lowercase letter, or digit, # except the last character, which cannot be a dash. # Corresponds to the JSON property `name` # @return [String] attr_accessor :name # A value read into memory from a write-only private key file. The private key # file must be in PEM format. For security, only insert requests include this # field. # Corresponds to the JSON property `privateKey` # @return [String] attr_accessor :private_key # [Output Only] URL of the region where the regional SSL Certificate resides. # This field is not applicable to global SSL Certificate. # Corresponds to the JSON property `region` # @return [String] attr_accessor :region # [Output only] Server-defined URL for the resource. # Corresponds to the JSON property `selfLink` # @return [String] attr_accessor :self_link # [Output Only] Server-defined URL for this resource with the resource id. # Corresponds to the JSON property `selfLinkWithId` # @return [String] attr_accessor :self_link_with_id # Configuration and status of a self-managed SSL certificate. # Corresponds to the JSON property `selfManaged` # @return [Google::Apis::ComputeAlpha::SslCertificateSelfManagedSslCertificate] attr_accessor :self_managed # [Output Only] Domains associated with the certificate via Subject Alternative # Name. # Corresponds to the JSON property `subjectAlternativeNames` # @return [Array] attr_accessor :subject_alternative_names # (Optional) Specifies the type of SSL certificate, either "SELF_MANAGED" or " # MANAGED". If not specified, the certificate is self-managed and the fields # certificate and private_key are used. # 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) @certificate = args[:certificate] if args.key?(:certificate) @creation_timestamp = args[:creation_timestamp] if args.key?(:creation_timestamp) @description = args[:description] if args.key?(:description) @expire_time = args[:expire_time] if args.key?(:expire_time) @id = args[:id] if args.key?(:id) @kind = args[:kind] if args.key?(:kind) @managed = args[:managed] if args.key?(:managed) @name = args[:name] if args.key?(:name) @private_key = args[:private_key] if args.key?(:private_key) @region = args[:region] if args.key?(:region) @self_link = args[:self_link] if args.key?(:self_link) @self_link_with_id = args[:self_link_with_id] if args.key?(:self_link_with_id) @self_managed = args[:self_managed] if args.key?(:self_managed) @subject_alternative_names = args[:subject_alternative_names] if args.key?(:subject_alternative_names) @type = args[:type] if args.key?(:type) end end # class SslCertificateAggregatedList include Google::Apis::Core::Hashable # [Output Only] Unique identifier for the resource; defined by the server. # Corresponds to the JSON property `id` # @return [String] attr_accessor :id # A list of SslCertificatesScopedList resources. # Corresponds to the JSON property `items` # @return [Hash] attr_accessor :items # [Output Only] Type of resource. Always compute#sslCertificateAggregatedList # for lists of SSL Certificates. # Corresponds to the JSON property `kind` # @return [String] attr_accessor :kind # [Output Only] This token allows you to get the next page of results for list # requests. If the number of results is larger than maxResults, use the # nextPageToken as a value for the query parameter pageToken in the next list # request. Subsequent list requests will have their own nextPageToken to # continue paging through the results. # Corresponds to the JSON property `nextPageToken` # @return [String] attr_accessor :next_page_token # [Output Only] Server-defined URL for this resource. # Corresponds to the JSON property `selfLink` # @return [String] attr_accessor :self_link # [Output Only] Unreachable resources. # Corresponds to the JSON property `unreachables` # @return [Array] attr_accessor :unreachables # [Output Only] Informational warning message. # Corresponds to the JSON property `warning` # @return [Google::Apis::ComputeAlpha::SslCertificateAggregatedList::Warning] attr_accessor :warning def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @id = args[:id] if args.key?(:id) @items = args[:items] if args.key?(:items) @kind = args[:kind] if args.key?(:kind) @next_page_token = args[:next_page_token] if args.key?(:next_page_token) @self_link = args[:self_link] if args.key?(:self_link) @unreachables = args[:unreachables] if args.key?(:unreachables) @warning = args[:warning] if args.key?(:warning) end # [Output Only] Informational warning message. class Warning include Google::Apis::Core::Hashable # [Output Only] A warning code, if applicable. For example, Compute Engine # returns NO_RESULTS_ON_PAGE if there are no results in the response. # Corresponds to the JSON property `code` # @return [String] attr_accessor :code # [Output Only] Metadata about this warning in key: value format. For example: " # data": [ ` "key": "scope", "value": "zones/us-east1-d" ` # Corresponds to the JSON property `data` # @return [Array] attr_accessor :data # [Output Only] A human-readable description of the warning code. # Corresponds to the JSON property `message` # @return [String] attr_accessor :message def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @code = args[:code] if args.key?(:code) @data = args[:data] if args.key?(:data) @message = args[:message] if args.key?(:message) end # class Datum include Google::Apis::Core::Hashable # [Output Only] A key that provides more detail on the warning being returned. # For example, for warnings where there are no results in a list request for a # particular zone, this key might be scope and the key value might be the zone # name. Other examples might be a key indicating a deprecated resource and a # suggested replacement, or a warning about invalid network settings (for # example, if an instance attempts to perform IP forwarding but is not enabled # for IP forwarding). # Corresponds to the JSON property `key` # @return [String] attr_accessor :key # [Output Only] A warning data value corresponding to the key. # 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 end end # Contains a list of SslCertificate resources. class SslCertificateList include Google::Apis::Core::Hashable # [Output Only] Unique identifier for the resource; defined by the server. # Corresponds to the JSON property `id` # @return [String] attr_accessor :id # A list of SslCertificate resources. # Corresponds to the JSON property `items` # @return [Array] attr_accessor :items # Type of resource. # Corresponds to the JSON property `kind` # @return [String] attr_accessor :kind # [Output Only] This token allows you to get the next page of results for list # requests. If the number of results is larger than maxResults, use the # nextPageToken as a value for the query parameter pageToken in the next list # request. Subsequent list requests will have their own nextPageToken to # continue paging through the results. # Corresponds to the JSON property `nextPageToken` # @return [String] attr_accessor :next_page_token # [Output Only] Server-defined URL for this resource. # Corresponds to the JSON property `selfLink` # @return [String] attr_accessor :self_link # [Output Only] Informational warning message. # Corresponds to the JSON property `warning` # @return [Google::Apis::ComputeAlpha::SslCertificateList::Warning] attr_accessor :warning def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @id = args[:id] if args.key?(:id) @items = args[:items] if args.key?(:items) @kind = args[:kind] if args.key?(:kind) @next_page_token = args[:next_page_token] if args.key?(:next_page_token) @self_link = args[:self_link] if args.key?(:self_link) @warning = args[:warning] if args.key?(:warning) end # [Output Only] Informational warning message. class Warning include Google::Apis::Core::Hashable # [Output Only] A warning code, if applicable. For example, Compute Engine # returns NO_RESULTS_ON_PAGE if there are no results in the response. # Corresponds to the JSON property `code` # @return [String] attr_accessor :code # [Output Only] Metadata about this warning in key: value format. For example: " # data": [ ` "key": "scope", "value": "zones/us-east1-d" ` # Corresponds to the JSON property `data` # @return [Array] attr_accessor :data # [Output Only] A human-readable description of the warning code. # Corresponds to the JSON property `message` # @return [String] attr_accessor :message def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @code = args[:code] if args.key?(:code) @data = args[:data] if args.key?(:data) @message = args[:message] if args.key?(:message) end # class Datum include Google::Apis::Core::Hashable # [Output Only] A key that provides more detail on the warning being returned. # For example, for warnings where there are no results in a list request for a # particular zone, this key might be scope and the key value might be the zone # name. Other examples might be a key indicating a deprecated resource and a # suggested replacement, or a warning about invalid network settings (for # example, if an instance attempts to perform IP forwarding but is not enabled # for IP forwarding). # Corresponds to the JSON property `key` # @return [String] attr_accessor :key # [Output Only] A warning data value corresponding to the key. # 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 end end # Configuration and status of a managed SSL certificate. class SslCertificateManagedSslCertificate include Google::Apis::Core::Hashable # [Output only] Detailed statuses of the domains specified for managed # certificate resource. # Corresponds to the JSON property `domainStatus` # @return [Hash] attr_accessor :domain_status # The domains for which a managed SSL certificate will be generated. Each Google- # managed SSL certificate supports up to the [maximum number of domains per # Google-managed SSL certificate](/load-balancing/docs/quotas#ssl_certificates). # Corresponds to the JSON property `domains` # @return [Array] attr_accessor :domains # [Output only] Status of the managed certificate resource. # 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) @domain_status = args[:domain_status] if args.key?(:domain_status) @domains = args[:domains] if args.key?(:domains) @status = args[:status] if args.key?(:status) end end # Configuration and status of a self-managed SSL certificate. class SslCertificateSelfManagedSslCertificate include Google::Apis::Core::Hashable # A local certificate file. The certificate must be in PEM format. The # certificate chain must be no greater than 5 certs long. The chain must include # at least one intermediate cert. # Corresponds to the JSON property `certificate` # @return [String] attr_accessor :certificate # A write-only private key in PEM format. Only insert requests will include this # field. # Corresponds to the JSON property `privateKey` # @return [String] attr_accessor :private_key def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @certificate = args[:certificate] if args.key?(:certificate) @private_key = args[:private_key] if args.key?(:private_key) end end # class SslCertificatesScopedList include Google::Apis::Core::Hashable # List of SslCertificates contained in this scope. # Corresponds to the JSON property `sslCertificates` # @return [Array] attr_accessor :ssl_certificates # Informational warning which replaces the list of backend services when the # list is empty. # Corresponds to the JSON property `warning` # @return [Google::Apis::ComputeAlpha::SslCertificatesScopedList::Warning] attr_accessor :warning def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @ssl_certificates = args[:ssl_certificates] if args.key?(:ssl_certificates) @warning = args[:warning] if args.key?(:warning) end # Informational warning which replaces the list of backend services when the # list is empty. class Warning include Google::Apis::Core::Hashable # [Output Only] A warning code, if applicable. For example, Compute Engine # returns NO_RESULTS_ON_PAGE if there are no results in the response. # Corresponds to the JSON property `code` # @return [String] attr_accessor :code # [Output Only] Metadata about this warning in key: value format. For example: " # data": [ ` "key": "scope", "value": "zones/us-east1-d" ` # Corresponds to the JSON property `data` # @return [Array] attr_accessor :data # [Output Only] A human-readable description of the warning code. # Corresponds to the JSON property `message` # @return [String] attr_accessor :message def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @code = args[:code] if args.key?(:code) @data = args[:data] if args.key?(:data) @message = args[:message] if args.key?(:message) end # class Datum include Google::Apis::Core::Hashable # [Output Only] A key that provides more detail on the warning being returned. # For example, for warnings where there are no results in a list request for a # particular zone, this key might be scope and the key value might be the zone # name. Other examples might be a key indicating a deprecated resource and a # suggested replacement, or a warning about invalid network settings (for # example, if an instance attempts to perform IP forwarding but is not enabled # for IP forwarding). # Corresponds to the JSON property `key` # @return [String] attr_accessor :key # [Output Only] A warning data value corresponding to the key. # 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 end end # class SslPoliciesAggregatedList include Google::Apis::Core::Hashable # # Corresponds to the JSON property `etag` # @return [String] attr_accessor :etag # [Output Only] Unique identifier for the resource; defined by the server. # Corresponds to the JSON property `id` # @return [String] attr_accessor :id # A list of SslPoliciesScopedList resources. # Corresponds to the JSON property `items` # @return [Hash] attr_accessor :items # [Output Only] Type of resource. Always compute#sslPolicyAggregatedList for # lists of SSL Policies. # Corresponds to the JSON property `kind` # @return [String] attr_accessor :kind # [Output Only] This token allows you to get the next page of results for list # requests. If the number of results is larger than maxResults, use the # nextPageToken as a value for the query parameter pageToken in the next list # request. Subsequent list requests will have their own nextPageToken to # continue paging through the results. # Corresponds to the JSON property `nextPageToken` # @return [String] attr_accessor :next_page_token # [Output Only] Server-defined URL for this resource. # Corresponds to the JSON property `selfLink` # @return [String] attr_accessor :self_link # [Output Only] Unreachable resources. # Corresponds to the JSON property `unreachables` # @return [Array] attr_accessor :unreachables # [Output Only] Informational warning message. # Corresponds to the JSON property `warning` # @return [Google::Apis::ComputeAlpha::SslPoliciesAggregatedList::Warning] attr_accessor :warning def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @etag = args[:etag] if args.key?(:etag) @id = args[:id] if args.key?(:id) @items = args[:items] if args.key?(:items) @kind = args[:kind] if args.key?(:kind) @next_page_token = args[:next_page_token] if args.key?(:next_page_token) @self_link = args[:self_link] if args.key?(:self_link) @unreachables = args[:unreachables] if args.key?(:unreachables) @warning = args[:warning] if args.key?(:warning) end # [Output Only] Informational warning message. class Warning include Google::Apis::Core::Hashable # [Output Only] A warning code, if applicable. For example, Compute Engine # returns NO_RESULTS_ON_PAGE if there are no results in the response. # Corresponds to the JSON property `code` # @return [String] attr_accessor :code # [Output Only] Metadata about this warning in key: value format. For example: " # data": [ ` "key": "scope", "value": "zones/us-east1-d" ` # Corresponds to the JSON property `data` # @return [Array] attr_accessor :data # [Output Only] A human-readable description of the warning code. # Corresponds to the JSON property `message` # @return [String] attr_accessor :message def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @code = args[:code] if args.key?(:code) @data = args[:data] if args.key?(:data) @message = args[:message] if args.key?(:message) end # class Datum include Google::Apis::Core::Hashable # [Output Only] A key that provides more detail on the warning being returned. # For example, for warnings where there are no results in a list request for a # particular zone, this key might be scope and the key value might be the zone # name. Other examples might be a key indicating a deprecated resource and a # suggested replacement, or a warning about invalid network settings (for # example, if an instance attempts to perform IP forwarding but is not enabled # for IP forwarding). # Corresponds to the JSON property `key` # @return [String] attr_accessor :key # [Output Only] A warning data value corresponding to the key. # 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 end end # class SslPoliciesList include Google::Apis::Core::Hashable # [Output Only] Unique identifier for the resource; defined by the server. # Corresponds to the JSON property `id` # @return [String] attr_accessor :id # A list of SslPolicy resources. # Corresponds to the JSON property `items` # @return [Array] attr_accessor :items # [Output Only] Type of the resource. Always compute#sslPoliciesList for lists # of sslPolicies. # Corresponds to the JSON property `kind` # @return [String] attr_accessor :kind # [Output Only] This token allows you to get the next page of results for list # requests. If the number of results is larger than maxResults, use the # nextPageToken as a value for the query parameter pageToken in the next list # request. Subsequent list requests will have their own nextPageToken to # continue paging through the results. # Corresponds to the JSON property `nextPageToken` # @return [String] attr_accessor :next_page_token # [Output Only] Server-defined URL for this resource. # Corresponds to the JSON property `selfLink` # @return [String] attr_accessor :self_link # [Output Only] Informational warning message. # Corresponds to the JSON property `warning` # @return [Google::Apis::ComputeAlpha::SslPoliciesList::Warning] attr_accessor :warning def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @id = args[:id] if args.key?(:id) @items = args[:items] if args.key?(:items) @kind = args[:kind] if args.key?(:kind) @next_page_token = args[:next_page_token] if args.key?(:next_page_token) @self_link = args[:self_link] if args.key?(:self_link) @warning = args[:warning] if args.key?(:warning) end # [Output Only] Informational warning message. class Warning include Google::Apis::Core::Hashable # [Output Only] A warning code, if applicable. For example, Compute Engine # returns NO_RESULTS_ON_PAGE if there are no results in the response. # Corresponds to the JSON property `code` # @return [String] attr_accessor :code # [Output Only] Metadata about this warning in key: value format. For example: " # data": [ ` "key": "scope", "value": "zones/us-east1-d" ` # Corresponds to the JSON property `data` # @return [Array] attr_accessor :data # [Output Only] A human-readable description of the warning code. # Corresponds to the JSON property `message` # @return [String] attr_accessor :message def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @code = args[:code] if args.key?(:code) @data = args[:data] if args.key?(:data) @message = args[:message] if args.key?(:message) end # class Datum include Google::Apis::Core::Hashable # [Output Only] A key that provides more detail on the warning being returned. # For example, for warnings where there are no results in a list request for a # particular zone, this key might be scope and the key value might be the zone # name. Other examples might be a key indicating a deprecated resource and a # suggested replacement, or a warning about invalid network settings (for # example, if an instance attempts to perform IP forwarding but is not enabled # for IP forwarding). # Corresponds to the JSON property `key` # @return [String] attr_accessor :key # [Output Only] A warning data value corresponding to the key. # 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 end end # class SslPoliciesListAvailableFeaturesResponse include Google::Apis::Core::Hashable # # Corresponds to the JSON property `features` # @return [Array] attr_accessor :features def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @features = args[:features] if args.key?(:features) end end # class SslPoliciesScopedList include Google::Apis::Core::Hashable # A list of SslPolicies contained in this scope. # Corresponds to the JSON property `sslPolicies` # @return [Array] attr_accessor :ssl_policies # Informational warning which replaces the list of SSL policies when the list is # empty. # Corresponds to the JSON property `warning` # @return [Google::Apis::ComputeAlpha::SslPoliciesScopedList::Warning] attr_accessor :warning def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @ssl_policies = args[:ssl_policies] if args.key?(:ssl_policies) @warning = args[:warning] if args.key?(:warning) end # Informational warning which replaces the list of SSL policies when the list is # empty. class Warning include Google::Apis::Core::Hashable # [Output Only] A warning code, if applicable. For example, Compute Engine # returns NO_RESULTS_ON_PAGE if there are no results in the response. # Corresponds to the JSON property `code` # @return [String] attr_accessor :code # [Output Only] Metadata about this warning in key: value format. For example: " # data": [ ` "key": "scope", "value": "zones/us-east1-d" ` # Corresponds to the JSON property `data` # @return [Array] attr_accessor :data # [Output Only] A human-readable description of the warning code. # Corresponds to the JSON property `message` # @return [String] attr_accessor :message def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @code = args[:code] if args.key?(:code) @data = args[:data] if args.key?(:data) @message = args[:message] if args.key?(:message) end # class Datum include Google::Apis::Core::Hashable # [Output Only] A key that provides more detail on the warning being returned. # For example, for warnings where there are no results in a list request for a # particular zone, this key might be scope and the key value might be the zone # name. Other examples might be a key indicating a deprecated resource and a # suggested replacement, or a warning about invalid network settings (for # example, if an instance attempts to perform IP forwarding but is not enabled # for IP forwarding). # Corresponds to the JSON property `key` # @return [String] attr_accessor :key # [Output Only] A warning data value corresponding to the key. # 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 end end # Represents an SSL Policy resource. Use SSL policies to control the SSL # features, such as versions and cipher suites, offered by an HTTPS or SSL Proxy # load balancer. For more information, read SSL Policy Concepts. class SslPolicy include Google::Apis::Core::Hashable # [Output Only] Creation timestamp in RFC3339 text format. # Corresponds to the JSON property `creationTimestamp` # @return [String] attr_accessor :creation_timestamp # A list of features enabled when the selected profile is CUSTOM. The method # returns the set of features that can be specified in this list. This field # must be empty if the profile is not CUSTOM. # Corresponds to the JSON property `customFeatures` # @return [Array] attr_accessor :custom_features # An optional description of this resource. Provide this property when you # create the resource. # Corresponds to the JSON property `description` # @return [String] attr_accessor :description # [Output Only] The list of features enabled in the SSL policy. # Corresponds to the JSON property `enabledFeatures` # @return [Array] attr_accessor :enabled_features # Fingerprint of this resource. A hash of the contents stored in this object. # This field is used in optimistic locking. This field will be ignored when # inserting a SslPolicy. An up-to-date fingerprint must be provided in order to # update the SslPolicy, otherwise the request will fail with error 412 # conditionNotMet. To see the latest fingerprint, make a get() request to # retrieve an SslPolicy. # Corresponds to the JSON property `fingerprint` # NOTE: Values are automatically base64 encoded/decoded in the client library. # @return [String] attr_accessor :fingerprint # [Output Only] The unique identifier for the resource. This identifier is # defined by the server. # Corresponds to the JSON property `id` # @return [Fixnum] attr_accessor :id # [Output only] Type of the resource. Always compute#sslPolicyfor SSL policies. # Corresponds to the JSON property `kind` # @return [String] attr_accessor :kind # The minimum version of SSL protocol that can be used by the clients to # establish a connection with the load balancer. This can be one of TLS_1_0, # TLS_1_1, TLS_1_2. # Corresponds to the JSON property `minTlsVersion` # @return [String] attr_accessor :min_tls_version # Name of the resource. The name must be 1-63 characters long, and comply with # RFC1035. Specifically, the name must be 1-63 characters long and match the # regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first # character must be a lowercase letter, and all following characters must be a # dash, lowercase letter, or digit, except the last character, which cannot be a # dash. # Corresponds to the JSON property `name` # @return [String] attr_accessor :name # Profile specifies the set of SSL features that can be used by the load # balancer when negotiating SSL with clients. This can be one of COMPATIBLE, # MODERN, RESTRICTED, or CUSTOM. If using CUSTOM, the set of SSL features to # enable must be specified in the customFeatures field. # Corresponds to the JSON property `profile` # @return [String] attr_accessor :profile # [Output Only] URL of the region where the regional SSL policy resides. This # field is not applicable to global SSL policies. # Corresponds to the JSON property `region` # @return [String] attr_accessor :region # [Output Only] Server-defined URL for the resource. # Corresponds to the JSON property `selfLink` # @return [String] attr_accessor :self_link # [Output Only] Server-defined URL for this resource with the resource id. # Corresponds to the JSON property `selfLinkWithId` # @return [String] attr_accessor :self_link_with_id # The TLS settings for the server. # Corresponds to the JSON property `tlsSettings` # @return [Google::Apis::ComputeAlpha::ServerTlsSettings] attr_accessor :tls_settings # [Output Only] If potential misconfigurations are detected for this SSL policy, # this field will be populated with warning messages. # Corresponds to the JSON property `warnings` # @return [Array] attr_accessor :warnings def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @creation_timestamp = args[:creation_timestamp] if args.key?(:creation_timestamp) @custom_features = args[:custom_features] if args.key?(:custom_features) @description = args[:description] if args.key?(:description) @enabled_features = args[:enabled_features] if args.key?(:enabled_features) @fingerprint = args[:fingerprint] if args.key?(:fingerprint) @id = args[:id] if args.key?(:id) @kind = args[:kind] if args.key?(:kind) @min_tls_version = args[:min_tls_version] if args.key?(:min_tls_version) @name = args[:name] if args.key?(:name) @profile = args[:profile] if args.key?(:profile) @region = args[:region] if args.key?(:region) @self_link = args[:self_link] if args.key?(:self_link) @self_link_with_id = args[:self_link_with_id] if args.key?(:self_link_with_id) @tls_settings = args[:tls_settings] if args.key?(:tls_settings) @warnings = args[:warnings] if args.key?(:warnings) end # class Warning include Google::Apis::Core::Hashable # [Output Only] A warning code, if applicable. For example, Compute Engine # returns NO_RESULTS_ON_PAGE if there are no results in the response. # Corresponds to the JSON property `code` # @return [String] attr_accessor :code # [Output Only] Metadata about this warning in key: value format. For example: " # data": [ ` "key": "scope", "value": "zones/us-east1-d" ` # Corresponds to the JSON property `data` # @return [Array] attr_accessor :data # [Output Only] A human-readable description of the warning code. # Corresponds to the JSON property `message` # @return [String] attr_accessor :message def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @code = args[:code] if args.key?(:code) @data = args[:data] if args.key?(:data) @message = args[:message] if args.key?(:message) end # class Datum include Google::Apis::Core::Hashable # [Output Only] A key that provides more detail on the warning being returned. # For example, for warnings where there are no results in a list request for a # particular zone, this key might be scope and the key value might be the zone # name. Other examples might be a key indicating a deprecated resource and a # suggested replacement, or a warning about invalid network settings (for # example, if an instance attempts to perform IP forwarding but is not enabled # for IP forwarding). # Corresponds to the JSON property `key` # @return [String] attr_accessor :key # [Output Only] A warning data value corresponding to the key. # 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 end end # class SslPolicyReference include Google::Apis::Core::Hashable # URL of the SSL policy resource. Set this to empty string to clear any existing # SSL policy associated with the target proxy resource. # Corresponds to the JSON property `sslPolicy` # @return [String] attr_accessor :ssl_policy def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @ssl_policy = args[:ssl_policy] if args.key?(:ssl_policy) end end # class StatefulPolicy include Google::Apis::Core::Hashable # Configuration of preserved resources. # Corresponds to the JSON property `preservedState` # @return [Google::Apis::ComputeAlpha::StatefulPolicyPreservedState] attr_accessor :preserved_state def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @preserved_state = args[:preserved_state] if args.key?(:preserved_state) end end # Configuration of preserved resources. class StatefulPolicyPreservedState include Google::Apis::Core::Hashable # Disks created on the instances that will be preserved on instance delete, # update, etc. This map is keyed with the device names of the disks. # Corresponds to the JSON property `disks` # @return [Hash] attr_accessor :disks # External network IPs assigned to the instances that will be preserved on # instance delete, update, etc. This map is keyed with the network interface # name. # Corresponds to the JSON property `externalIPs` # @return [Hash] attr_accessor :external_i_ps # Internal network IPs assigned to the instances that will be preserved on # instance delete, update, etc. This map is keyed with the network interface # name. # Corresponds to the JSON property `internalIPs` # @return [Hash] attr_accessor :internal_i_ps def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @disks = args[:disks] if args.key?(:disks) @external_i_ps = args[:external_i_ps] if args.key?(:external_i_ps) @internal_i_ps = args[:internal_i_ps] if args.key?(:internal_i_ps) end end # class StatefulPolicyPreservedStateDiskDevice include Google::Apis::Core::Hashable # These stateful disks will never be deleted during autohealing, update or VM # instance recreate operations. This flag is used to configure if the disk # should be deleted after it is no longer used by the group, e.g. when the given # instance or the whole group is deleted. Note: disks attached in READ_ONLY mode # cannot be auto-deleted. # Corresponds to the JSON property `autoDelete` # @return [String] attr_accessor :auto_delete def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @auto_delete = args[:auto_delete] if args.key?(:auto_delete) end end # class StatefulPolicyPreservedStateNetworkIp include Google::Apis::Core::Hashable # These stateful IPs will never be released during autohealing, update or VM # instance recreate operations. This flag is used to configure if the IP # reservation should be deleted after it is no longer used by the group, e.g. # when the given instance or the whole group is deleted. # Corresponds to the JSON property `autoDelete` # @return [String] attr_accessor :auto_delete def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @auto_delete = args[:auto_delete] if args.key?(:auto_delete) end end # Represents a Subnetwork resource. A subnetwork (also known as a subnet) is a # logical partition of a Virtual Private Cloud network with one primary IP range # and zero or more secondary IP ranges. For more information, read Virtual # Private Cloud (VPC) Network. class Subnetwork include Google::Apis::Core::Hashable # Can only be specified if VPC flow logging for this subnetwork is enabled. Sets # the aggregation interval for collecting flow logs. Increasing the interval # time reduces the amount of generated flow logs for long-lasting connections. # Default is an interval of 5 seconds per connection. Valid values: # INTERVAL_5_SEC, INTERVAL_30_SEC, INTERVAL_1_MIN, INTERVAL_5_MIN, # INTERVAL_10_MIN, INTERVAL_15_MIN. # Corresponds to the JSON property `aggregationInterval` # @return [String] attr_accessor :aggregation_interval # Whether this subnetwork's ranges can conflict with existing static routes. # Setting this to true allows this subnetwork's primary and secondary ranges to # overlap with (and contain) static routes that have already been configured on # the corresponding network. For example if a static route has range 10.1.0.0/16, # a subnet range 10.0.0.0/8 could only be created if allow_conflicting_routes= # true. Overlapping is only allowed on subnetwork operations; routes whose # ranges conflict with this subnetwork's ranges won't be allowed unless route. # allow_conflicting_subnetworks is set to true. Typically packets destined to # IPs within the subnetwork (which may contain private/sensitive data) are # prevented from leaving the virtual network. Setting this field to true will # disable this feature. The default value is false and applies to all existing # subnetworks and automatically created subnetworks. This field cannot be set to # true at resource creation time. # Corresponds to the JSON property `allowSubnetCidrRoutesOverlap` # @return [Boolean] attr_accessor :allow_subnet_cidr_routes_overlap alias_method :allow_subnet_cidr_routes_overlap?, :allow_subnet_cidr_routes_overlap # [Output Only] Creation timestamp in RFC3339 text format. # Corresponds to the JSON property `creationTimestamp` # @return [String] attr_accessor :creation_timestamp # An optional description of this resource. Provide this property when you # create the resource. This field can be set only at resource creation time. # Corresponds to the JSON property `description` # @return [String] attr_accessor :description # Whether to enable flow logging for this subnetwork. If this field is not # explicitly set, it will not appear in get listings. If not set the default # behavior is determined by the org policy, if there is no org policy specified, # then it will default to disabled. This field isn't supported with the purpose # field set to INTERNAL_HTTPS_LOAD_BALANCER. # Corresponds to the JSON property `enableFlowLogs` # @return [Boolean] attr_accessor :enable_flow_logs alias_method :enable_flow_logs?, :enable_flow_logs # Enables Layer2 communication on the subnetwork. # Corresponds to the JSON property `enableL2` # @return [Boolean] attr_accessor :enable_l2 alias_method :enable_l2?, :enable_l2 # Deprecated in favor of enable in PrivateIpv6GoogleAccess. Whether the VMs in # this subnet can directly access Google services via internal IPv6 addresses. # This field can be both set at resource creation time and updated using patch. # Corresponds to the JSON property `enablePrivateV6Access` # @return [Boolean] attr_accessor :enable_private_v6_access alias_method :enable_private_v6_access?, :enable_private_v6_access # [Output Only] The external IPv6 address range that is assigned to this # subnetwork. # Corresponds to the JSON property `externalIpv6Prefix` # @return [String] attr_accessor :external_ipv6_prefix # Fingerprint of this resource. A hash of the contents stored in this object. # This field is used in optimistic locking. This field will be ignored when # inserting a Subnetwork. An up-to-date fingerprint must be provided in order to # update the Subnetwork, otherwise the request will fail with error 412 # conditionNotMet. To see the latest fingerprint, make a get() request to # retrieve a Subnetwork. # Corresponds to the JSON property `fingerprint` # NOTE: Values are automatically base64 encoded/decoded in the client library. # @return [String] attr_accessor :fingerprint # Can only be specified if VPC flow logging for this subnetwork is enabled. The # value of the field must be in [0, 1]. Set the sampling rate of VPC flow logs # within the subnetwork where 1.0 means all collected logs are reported and 0.0 # means no logs are reported. Default is 0.5 unless otherwise specified by the # org policy, which means half of all collected logs are reported. # Corresponds to the JSON property `flowSampling` # @return [Float] attr_accessor :flow_sampling # [Output Only] The gateway address for default routes to reach destination # addresses outside this subnetwork. # Corresponds to the JSON property `gatewayAddress` # @return [String] attr_accessor :gateway_address # [Output Only] The unique identifier for the resource. This identifier is # defined by the server. # Corresponds to the JSON property `id` # @return [Fixnum] attr_accessor :id # [Output Only] The internal IPv6 address range that is assigned to this # subnetwork. # Corresponds to the JSON property `internalIpv6Prefix` # @return [String] attr_accessor :internal_ipv6_prefix # The range of internal addresses that are owned by this subnetwork. Provide # this property when you create the subnetwork. For example, 10.0.0.0/8 or 100. # 64.0.0/10. Ranges must be unique and non-overlapping within a network. Only # IPv4 is supported. This field is set at resource creation time. The range can # be any range listed in the Valid ranges list. The range can be expanded after # creation using expandIpCidrRange. # Corresponds to the JSON property `ipCidrRange` # @return [String] attr_accessor :ip_cidr_range # The access type of IPv6 address this subnet holds. It's immutable and can only # be specified during creation or the first time the subnet is updated into # IPV4_IPV6 dual stack. # Corresponds to the JSON property `ipv6AccessType` # @return [String] attr_accessor :ipv6_access_type # [Output Only] This field is for internal use. # Corresponds to the JSON property `ipv6CidrRange` # @return [String] attr_accessor :ipv6_cidr_range # [Output Only] Type of the resource. Always compute#subnetwork for Subnetwork # resources. # Corresponds to the JSON property `kind` # @return [String] attr_accessor :kind # The available logging options for this subnetwork. # Corresponds to the JSON property `logConfig` # @return [Google::Apis::ComputeAlpha::SubnetworkLogConfig] attr_accessor :log_config # Can only be specified if VPC flow logging for this subnetwork is enabled. # Configures whether metadata fields should be added to the reported VPC flow # logs. Options are INCLUDE_ALL_METADATA, EXCLUDE_ALL_METADATA, and # CUSTOM_METADATA. Default is EXCLUDE_ALL_METADATA. # Corresponds to the JSON property `metadata` # @return [String] attr_accessor :metadata # The name of the resource, provided by the client when initially creating the # resource. The name must be 1-63 characters long, and comply with RFC1035. # Specifically, the name must be 1-63 characters long and match the regular # expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first character must # be a lowercase letter, and all following characters must be a dash, lowercase # letter, or digit, except the last character, which cannot be a dash. # Corresponds to the JSON property `name` # @return [String] attr_accessor :name # The URL of the network to which this subnetwork belongs, provided by the # client when initially creating the subnetwork. This field can be set only at # resource creation time. # Corresponds to the JSON property `network` # @return [String] attr_accessor :network # Whether the VMs in this subnet can access Google services without assigned # external IP addresses. This field can be both set at resource creation time # and updated using setPrivateIpGoogleAccess. # Corresponds to the JSON property `privateIpGoogleAccess` # @return [Boolean] attr_accessor :private_ip_google_access alias_method :private_ip_google_access?, :private_ip_google_access # This field is for internal use. This field can be both set at resource # creation time and updated using patch. # Corresponds to the JSON property `privateIpv6GoogleAccess` # @return [String] attr_accessor :private_ipv6_google_access # Deprecated in favor of enable PrivateIpv6GoogleAccess on instance directly. # The service accounts can be used to selectively turn on Private IPv6 Google # Access only on the VMs primary service account matching the value. This value # only takes effect when PrivateIpv6GoogleAccess is # ENABLE_OUTBOUND_VM_ACCESS_TO_GOOGLE_FOR_SERVICE_ACCOUNTS or # ENABLE_BIDIRECTIONAL_ACCESS_TO_GOOGLE_FOR_SERVICE_ACCOUNTS. # Corresponds to the JSON property `privateIpv6GoogleAccessServiceAccounts` # @return [Array] attr_accessor :private_ipv6_google_access_service_accounts # The purpose of the resource. This field can be either PRIVATE_RFC_1918 or # INTERNAL_HTTPS_LOAD_BALANCER. A subnetwork with purpose set to # INTERNAL_HTTPS_LOAD_BALANCER is a user-created subnetwork that is reserved for # Internal HTTP(S) Load Balancing. If unspecified, the purpose defaults to # PRIVATE_RFC_1918. The enableFlowLogs field isn't supported with the purpose # field set to INTERNAL_HTTPS_LOAD_BALANCER. # Corresponds to the JSON property `purpose` # @return [String] attr_accessor :purpose # URL of the region where the Subnetwork resides. This field can be set only at # resource creation time. # Corresponds to the JSON property `region` # @return [String] attr_accessor :region # The URL of the reserved internal range. # Corresponds to the JSON property `reservedInternalRange` # @return [String] attr_accessor :reserved_internal_range # The role of subnetwork. Currently, this field is only used when purpose = # INTERNAL_HTTPS_LOAD_BALANCER. The value can be set to ACTIVE or BACKUP. An # ACTIVE subnetwork is one that is currently being used for Internal HTTP(S) # Load Balancing. A BACKUP subnetwork is one that is ready to be promoted to # ACTIVE or is currently draining. This field can be updated with a patch # request. # Corresponds to the JSON property `role` # @return [String] attr_accessor :role # An array of configurations for secondary IP ranges for VM instances contained # in this subnetwork. The primary IP of such VM must belong to the primary # ipCidrRange of the subnetwork. The alias IPs may belong to either primary or # secondary ranges. This field can be updated with a patch request. # Corresponds to the JSON property `secondaryIpRanges` # @return [Array] attr_accessor :secondary_ip_ranges # [Output Only] Server-defined URL for the resource. # Corresponds to the JSON property `selfLink` # @return [String] attr_accessor :self_link # [Output Only] Server-defined URL for this resource with the resource id. # Corresponds to the JSON property `selfLinkWithId` # @return [String] attr_accessor :self_link_with_id # The stack type for the subnet. If set to IPV4_ONLY, new VMs in the subnet are # assigned IPv4 addresses only. If set to IPV4_IPV6, new VMs in the subnet can # be assigned both IPv4 and IPv6 addresses. If not specified, IPV4_ONLY is used. # This field can be both set at resource creation time and updated using patch. # Corresponds to the JSON property `stackType` # @return [String] attr_accessor :stack_type # [Output Only] The state of the subnetwork, which can be one of the following # values: READY: Subnetwork is created and ready to use DRAINING: only # applicable to subnetworks that have the purpose set to # INTERNAL_HTTPS_LOAD_BALANCER and indicates that connections to the load # balancer are being drained. A subnetwork that is draining cannot be used or # modified until it reaches a status of READY # Corresponds to the JSON property `state` # @return [String] attr_accessor :state # A repeated field indicating the VLAN IDs supported on this subnetwork. During # Subnet creation, specifying vlan is valid only if enable_l2 is true. During # Subnet Update, specifying vlan is allowed only for l2 enabled subnets. # Restricted to only one VLAN. # Corresponds to the JSON property `vlans` # @return [Array] attr_accessor :vlans def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @aggregation_interval = args[:aggregation_interval] if args.key?(:aggregation_interval) @allow_subnet_cidr_routes_overlap = args[:allow_subnet_cidr_routes_overlap] if args.key?(:allow_subnet_cidr_routes_overlap) @creation_timestamp = args[:creation_timestamp] if args.key?(:creation_timestamp) @description = args[:description] if args.key?(:description) @enable_flow_logs = args[:enable_flow_logs] if args.key?(:enable_flow_logs) @enable_l2 = args[:enable_l2] if args.key?(:enable_l2) @enable_private_v6_access = args[:enable_private_v6_access] if args.key?(:enable_private_v6_access) @external_ipv6_prefix = args[:external_ipv6_prefix] if args.key?(:external_ipv6_prefix) @fingerprint = args[:fingerprint] if args.key?(:fingerprint) @flow_sampling = args[:flow_sampling] if args.key?(:flow_sampling) @gateway_address = args[:gateway_address] if args.key?(:gateway_address) @id = args[:id] if args.key?(:id) @internal_ipv6_prefix = args[:internal_ipv6_prefix] if args.key?(:internal_ipv6_prefix) @ip_cidr_range = args[:ip_cidr_range] if args.key?(:ip_cidr_range) @ipv6_access_type = args[:ipv6_access_type] if args.key?(:ipv6_access_type) @ipv6_cidr_range = args[:ipv6_cidr_range] if args.key?(:ipv6_cidr_range) @kind = args[:kind] if args.key?(:kind) @log_config = args[:log_config] if args.key?(:log_config) @metadata = args[:metadata] if args.key?(:metadata) @name = args[:name] if args.key?(:name) @network = args[:network] if args.key?(:network) @private_ip_google_access = args[:private_ip_google_access] if args.key?(:private_ip_google_access) @private_ipv6_google_access = args[:private_ipv6_google_access] if args.key?(:private_ipv6_google_access) @private_ipv6_google_access_service_accounts = args[:private_ipv6_google_access_service_accounts] if args.key?(:private_ipv6_google_access_service_accounts) @purpose = args[:purpose] if args.key?(:purpose) @region = args[:region] if args.key?(:region) @reserved_internal_range = args[:reserved_internal_range] if args.key?(:reserved_internal_range) @role = args[:role] if args.key?(:role) @secondary_ip_ranges = args[:secondary_ip_ranges] if args.key?(:secondary_ip_ranges) @self_link = args[:self_link] if args.key?(:self_link) @self_link_with_id = args[:self_link_with_id] if args.key?(:self_link_with_id) @stack_type = args[:stack_type] if args.key?(:stack_type) @state = args[:state] if args.key?(:state) @vlans = args[:vlans] if args.key?(:vlans) end end # class SubnetworkAggregatedList include Google::Apis::Core::Hashable # [Output Only] Unique identifier for the resource; defined by the server. # Corresponds to the JSON property `id` # @return [String] attr_accessor :id # A list of SubnetworksScopedList resources. # Corresponds to the JSON property `items` # @return [Hash] attr_accessor :items # [Output Only] Type of resource. Always compute#subnetworkAggregatedList for # aggregated lists of subnetworks. # Corresponds to the JSON property `kind` # @return [String] attr_accessor :kind # [Output Only] This token allows you to get the next page of results for list # requests. If the number of results is larger than maxResults, use the # nextPageToken as a value for the query parameter pageToken in the next list # request. Subsequent list requests will have their own nextPageToken to # continue paging through the results. # Corresponds to the JSON property `nextPageToken` # @return [String] attr_accessor :next_page_token # [Output Only] Server-defined URL for this resource. # Corresponds to the JSON property `selfLink` # @return [String] attr_accessor :self_link # [Output Only] Unreachable resources. # Corresponds to the JSON property `unreachables` # @return [Array] attr_accessor :unreachables # [Output Only] Informational warning message. # Corresponds to the JSON property `warning` # @return [Google::Apis::ComputeAlpha::SubnetworkAggregatedList::Warning] attr_accessor :warning def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @id = args[:id] if args.key?(:id) @items = args[:items] if args.key?(:items) @kind = args[:kind] if args.key?(:kind) @next_page_token = args[:next_page_token] if args.key?(:next_page_token) @self_link = args[:self_link] if args.key?(:self_link) @unreachables = args[:unreachables] if args.key?(:unreachables) @warning = args[:warning] if args.key?(:warning) end # [Output Only] Informational warning message. class Warning include Google::Apis::Core::Hashable # [Output Only] A warning code, if applicable. For example, Compute Engine # returns NO_RESULTS_ON_PAGE if there are no results in the response. # Corresponds to the JSON property `code` # @return [String] attr_accessor :code # [Output Only] Metadata about this warning in key: value format. For example: " # data": [ ` "key": "scope", "value": "zones/us-east1-d" ` # Corresponds to the JSON property `data` # @return [Array] attr_accessor :data # [Output Only] A human-readable description of the warning code. # Corresponds to the JSON property `message` # @return [String] attr_accessor :message def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @code = args[:code] if args.key?(:code) @data = args[:data] if args.key?(:data) @message = args[:message] if args.key?(:message) end # class Datum include Google::Apis::Core::Hashable # [Output Only] A key that provides more detail on the warning being returned. # For example, for warnings where there are no results in a list request for a # particular zone, this key might be scope and the key value might be the zone # name. Other examples might be a key indicating a deprecated resource and a # suggested replacement, or a warning about invalid network settings (for # example, if an instance attempts to perform IP forwarding but is not enabled # for IP forwarding). # Corresponds to the JSON property `key` # @return [String] attr_accessor :key # [Output Only] A warning data value corresponding to the key. # 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 end end # Contains a list of Subnetwork resources. class SubnetworkList include Google::Apis::Core::Hashable # [Output Only] Unique identifier for the resource; defined by the server. # Corresponds to the JSON property `id` # @return [String] attr_accessor :id # A list of Subnetwork resources. # Corresponds to the JSON property `items` # @return [Array] attr_accessor :items # [Output Only] Type of resource. Always compute#subnetworkList for lists of # subnetworks. # Corresponds to the JSON property `kind` # @return [String] attr_accessor :kind # [Output Only] This token allows you to get the next page of results for list # requests. If the number of results is larger than maxResults, use the # nextPageToken as a value for the query parameter pageToken in the next list # request. Subsequent list requests will have their own nextPageToken to # continue paging through the results. # Corresponds to the JSON property `nextPageToken` # @return [String] attr_accessor :next_page_token # [Output Only] Server-defined URL for this resource. # Corresponds to the JSON property `selfLink` # @return [String] attr_accessor :self_link # [Output Only] Informational warning message. # Corresponds to the JSON property `warning` # @return [Google::Apis::ComputeAlpha::SubnetworkList::Warning] attr_accessor :warning def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @id = args[:id] if args.key?(:id) @items = args[:items] if args.key?(:items) @kind = args[:kind] if args.key?(:kind) @next_page_token = args[:next_page_token] if args.key?(:next_page_token) @self_link = args[:self_link] if args.key?(:self_link) @warning = args[:warning] if args.key?(:warning) end # [Output Only] Informational warning message. class Warning include Google::Apis::Core::Hashable # [Output Only] A warning code, if applicable. For example, Compute Engine # returns NO_RESULTS_ON_PAGE if there are no results in the response. # Corresponds to the JSON property `code` # @return [String] attr_accessor :code # [Output Only] Metadata about this warning in key: value format. For example: " # data": [ ` "key": "scope", "value": "zones/us-east1-d" ` # Corresponds to the JSON property `data` # @return [Array] attr_accessor :data # [Output Only] A human-readable description of the warning code. # Corresponds to the JSON property `message` # @return [String] attr_accessor :message def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @code = args[:code] if args.key?(:code) @data = args[:data] if args.key?(:data) @message = args[:message] if args.key?(:message) end # class Datum include Google::Apis::Core::Hashable # [Output Only] A key that provides more detail on the warning being returned. # For example, for warnings where there are no results in a list request for a # particular zone, this key might be scope and the key value might be the zone # name. Other examples might be a key indicating a deprecated resource and a # suggested replacement, or a warning about invalid network settings (for # example, if an instance attempts to perform IP forwarding but is not enabled # for IP forwarding). # Corresponds to the JSON property `key` # @return [String] attr_accessor :key # [Output Only] A warning data value corresponding to the key. # 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 end end # The available logging options for this subnetwork. class SubnetworkLogConfig include Google::Apis::Core::Hashable # Can only be specified if VPC flow logging for this subnetwork is enabled. # Toggles the aggregation interval for collecting flow logs. Increasing the # interval time will reduce the amount of generated flow logs for long lasting # connections. Default is an interval of 5 seconds per connection. # Corresponds to the JSON property `aggregationInterval` # @return [String] attr_accessor :aggregation_interval # Whether to enable flow logging for this subnetwork. If this field is not # explicitly set, it will not appear in get listings. If not set the default # behavior is determined by the org policy, if there is no org policy specified, # then it will default to disabled. # Corresponds to the JSON property `enable` # @return [Boolean] attr_accessor :enable alias_method :enable?, :enable # Can only be specified if VPC flow logs for this subnetwork is enabled. The # filter expression is used to define which VPC flow logs should be exported to # Cloud Logging. # Corresponds to the JSON property `filterExpr` # @return [String] attr_accessor :filter_expr # Can only be specified if VPC flow logging for this subnetwork is enabled. The # value of the field must be in [0, 1]. Set the sampling rate of VPC flow logs # within the subnetwork where 1.0 means all collected logs are reported and 0.0 # means no logs are reported. Default is 0.5 unless otherwise specified by the # org policy, which means half of all collected logs are reported. # Corresponds to the JSON property `flowSampling` # @return [Float] attr_accessor :flow_sampling # Can only be specified if VPC flow logs for this subnetwork is enabled. # Configures whether all, none or a subset of metadata fields should be added to # the reported VPC flow logs. Default is EXCLUDE_ALL_METADATA. # Corresponds to the JSON property `metadata` # @return [String] attr_accessor :metadata # Can only be specified if VPC flow logs for this subnetwork is enabled and " # metadata" was set to CUSTOM_METADATA. # Corresponds to the JSON property `metadataFields` # @return [Array] attr_accessor :metadata_fields def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @aggregation_interval = args[:aggregation_interval] if args.key?(:aggregation_interval) @enable = args[:enable] if args.key?(:enable) @filter_expr = args[:filter_expr] if args.key?(:filter_expr) @flow_sampling = args[:flow_sampling] if args.key?(:flow_sampling) @metadata = args[:metadata] if args.key?(:metadata) @metadata_fields = args[:metadata_fields] if args.key?(:metadata_fields) end end # Represents a secondary IP range of a subnetwork. class SubnetworkSecondaryRange include Google::Apis::Core::Hashable # The range of IP addresses belonging to this subnetwork secondary range. # Provide this property when you create the subnetwork. Ranges must be unique # and non-overlapping with all primary and secondary IP ranges within a network. # Only IPv4 is supported. The range can be any range listed in the Valid ranges # list. # Corresponds to the JSON property `ipCidrRange` # @return [String] attr_accessor :ip_cidr_range # The name associated with this subnetwork secondary range, used when adding an # alias IP range to a VM instance. The name must be 1-63 characters long, and # comply with RFC1035. The name must be unique within the subnetwork. # Corresponds to the JSON property `rangeName` # @return [String] attr_accessor :range_name # The URL of the reserved internal range. # Corresponds to the JSON property `reservedInternalRange` # @return [String] attr_accessor :reserved_internal_range def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @ip_cidr_range = args[:ip_cidr_range] if args.key?(:ip_cidr_range) @range_name = args[:range_name] if args.key?(:range_name) @reserved_internal_range = args[:reserved_internal_range] if args.key?(:reserved_internal_range) end end # class SubnetworksExpandIpCidrRangeRequest include Google::Apis::Core::Hashable # The IP (in CIDR format or netmask) of internal addresses that are legal on # this Subnetwork. This range should be disjoint from other subnetworks within # this network. This range can only be larger than (i.e. a superset of) the # range previously defined before the update. # Corresponds to the JSON property `ipCidrRange` # @return [String] attr_accessor :ip_cidr_range def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @ip_cidr_range = args[:ip_cidr_range] if args.key?(:ip_cidr_range) end end # class SubnetworksScopedList include Google::Apis::Core::Hashable # A list of subnetworks contained in this scope. # Corresponds to the JSON property `subnetworks` # @return [Array] attr_accessor :subnetworks # An informational warning that appears when the list of addresses is empty. # Corresponds to the JSON property `warning` # @return [Google::Apis::ComputeAlpha::SubnetworksScopedList::Warning] attr_accessor :warning def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @subnetworks = args[:subnetworks] if args.key?(:subnetworks) @warning = args[:warning] if args.key?(:warning) end # An informational warning that appears when the list of addresses is empty. class Warning include Google::Apis::Core::Hashable # [Output Only] A warning code, if applicable. For example, Compute Engine # returns NO_RESULTS_ON_PAGE if there are no results in the response. # Corresponds to the JSON property `code` # @return [String] attr_accessor :code # [Output Only] Metadata about this warning in key: value format. For example: " # data": [ ` "key": "scope", "value": "zones/us-east1-d" ` # Corresponds to the JSON property `data` # @return [Array] attr_accessor :data # [Output Only] A human-readable description of the warning code. # Corresponds to the JSON property `message` # @return [String] attr_accessor :message def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @code = args[:code] if args.key?(:code) @data = args[:data] if args.key?(:data) @message = args[:message] if args.key?(:message) end # class Datum include Google::Apis::Core::Hashable # [Output Only] A key that provides more detail on the warning being returned. # For example, for warnings where there are no results in a list request for a # particular zone, this key might be scope and the key value might be the zone # name. Other examples might be a key indicating a deprecated resource and a # suggested replacement, or a warning about invalid network settings (for # example, if an instance attempts to perform IP forwarding but is not enabled # for IP forwarding). # Corresponds to the JSON property `key` # @return [String] attr_accessor :key # [Output Only] A warning data value corresponding to the key. # 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 end end # class SubnetworksSetPrivateIpGoogleAccessRequest include Google::Apis::Core::Hashable # # Corresponds to the JSON property `privateIpGoogleAccess` # @return [Boolean] attr_accessor :private_ip_google_access alias_method :private_ip_google_access?, :private_ip_google_access def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @private_ip_google_access = args[:private_ip_google_access] if args.key?(:private_ip_google_access) end end # Subsetting configuration for this BackendService. Currently this is applicable # only for Internal TCP/UDP load balancing, Internal HTTP(S) load balancing and # Traffic Director. class Subsetting include Google::Apis::Core::Hashable # # Corresponds to the JSON property `policy` # @return [String] attr_accessor :policy # The number of backends per backend group assigned to each proxy instance or # each service mesh client. An input parameter to the ` # CONSISTENT_HASH_SUBSETTING` algorithm. Can only be set if `policy` is set to ` # CONSISTENT_HASH_SUBSETTING`. Can only be set if load balancing scheme is ` # INTERNAL_MANAGED` or `INTERNAL_SELF_MANAGED`. `subset_size` is optional for # Internal HTTP(S) load balancing and required for Traffic Director. If you do # not provide this value, Cloud Load Balancing will calculate it dynamically to # optimize the number of proxies/clients visible to each backend and vice versa. # Must be greater than 0. If `subset_size` is larger than the number of backends/ # endpoints, then subsetting is disabled. # Corresponds to the JSON property `subsetSize` # @return [Fixnum] attr_accessor :subset_size def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @policy = args[:policy] if args.key?(:policy) @subset_size = args[:subset_size] if args.key?(:subset_size) end end # class TcpHealthCheck include Google::Apis::Core::Hashable # The TCP port number for the health check request. The default value is 80. # Valid values are 1 through 65535. # Corresponds to the JSON property `port` # @return [Fixnum] attr_accessor :port # Port name as defined in InstanceGroup#NamedPort#name. If both port and # port_name are defined, port takes precedence. # Corresponds to the JSON property `portName` # @return [String] attr_accessor :port_name # Specifies how port is selected for health checking, can be one of following # values: USE_FIXED_PORT: The port number in port is used for health checking. # USE_NAMED_PORT: The portName is used for health checking. USE_SERVING_PORT: # For NetworkEndpointGroup, the port specified for each network endpoint is used # for health checking. For other backends, the port or named port specified in # the Backend Service is used for health checking. If not specified, TCP health # check follows behavior specified in port and portName fields. # Corresponds to the JSON property `portSpecification` # @return [String] attr_accessor :port_specification # Specifies the type of proxy header to append before sending data to the # backend, either NONE or PROXY_V1. The default is NONE. # Corresponds to the JSON property `proxyHeader` # @return [String] attr_accessor :proxy_header # The application data to send once the TCP connection has been established ( # default value is empty). If both request and response are empty, the # connection establishment alone will indicate health. The request data can only # be ASCII. # Corresponds to the JSON property `request` # @return [String] attr_accessor :request # The bytes to match against the beginning of the response data. If left empty ( # the default value), any response will indicate health. The response data can # only be ASCII. # Corresponds to the JSON property `response` # @return [String] attr_accessor :response def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @port = args[:port] if args.key?(:port) @port_name = args[:port_name] if args.key?(:port_name) @port_specification = args[:port_specification] if args.key?(:port_specification) @proxy_header = args[:proxy_header] if args.key?(:proxy_header) @request = args[:request] if args.key?(:request) @response = args[:response] if args.key?(:response) end end # A set of instance tags. class Tags include Google::Apis::Core::Hashable # Specifies a fingerprint for this request, which is essentially a hash of the # tags' contents and used for optimistic locking. The fingerprint is initially # generated by Compute Engine and changes after every request to modify or # update tags. You must always provide an up-to-date fingerprint hash in order # to update or change tags. To see the latest fingerprint, make get() request to # the instance. # Corresponds to the JSON property `fingerprint` # NOTE: Values are automatically base64 encoded/decoded in the client library. # @return [String] attr_accessor :fingerprint # An array of tags. Each tag must be 1-63 characters long, and comply with # RFC1035. # 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) @fingerprint = args[:fingerprint] if args.key?(:fingerprint) @items = args[:items] if args.key?(:items) end end # Represents a Target gRPC Proxy resource. A target gRPC proxy is a component of # load balancers intended for load balancing gRPC traffic. Only global # forwarding rules with load balancing scheme INTERNAL_SELF_MANAGED can # reference a target gRPC proxy. The target gRPC Proxy references a URL map that # specifies how traffic is routed to gRPC backend services. class TargetGrpcProxy include Google::Apis::Core::Hashable # [Output Only] Creation timestamp in RFC3339 text format. # Corresponds to the JSON property `creationTimestamp` # @return [String] attr_accessor :creation_timestamp # An optional description of this resource. Provide this property when you # create the resource. # Corresponds to the JSON property `description` # @return [String] attr_accessor :description # Fingerprint of this resource. A hash of the contents stored in this object. # This field is used in optimistic locking. This field will be ignored when # inserting a TargetGrpcProxy. An up-to-date fingerprint must be provided in # order to patch/update the TargetGrpcProxy; otherwise, the request will fail # with error 412 conditionNotMet. To see the latest fingerprint, make a get() # request to retrieve the TargetGrpcProxy. # Corresponds to the JSON property `fingerprint` # NOTE: Values are automatically base64 encoded/decoded in the client library. # @return [String] attr_accessor :fingerprint # [Output Only] The unique identifier for the resource type. The server # generates this identifier. # Corresponds to the JSON property `id` # @return [Fixnum] attr_accessor :id # [Output Only] Type of the resource. Always compute#targetGrpcProxy for target # grpc proxies. # Corresponds to the JSON property `kind` # @return [String] attr_accessor :kind # Name of the resource. Provided by the client when the resource is created. The # name must be 1-63 characters long, and comply with RFC1035. Specifically, the # name must be 1-63 characters long and match the regular expression `[a-z]([-a- # z0-9]*[a-z0-9])?` which means the first character must be a lowercase letter, # and all following characters must be a dash, lowercase letter, or digit, # except the last character, which cannot be a dash. # Corresponds to the JSON property `name` # @return [String] attr_accessor :name # [Output Only] Server-defined URL for the resource. # Corresponds to the JSON property `selfLink` # @return [String] attr_accessor :self_link # [Output Only] Server-defined URL with id for the resource. # Corresponds to the JSON property `selfLinkWithId` # @return [String] attr_accessor :self_link_with_id # URL to the UrlMap resource that defines the mapping from URL to the # BackendService. The protocol field in the BackendService must be set to GRPC. # Corresponds to the JSON property `urlMap` # @return [String] attr_accessor :url_map # If true, indicates that the BackendServices referenced by the urlMap may be # accessed by gRPC applications without using a sidecar proxy. This will enable # configuration checks on urlMap and its referenced BackendServices to not allow # unsupported features. A gRPC application must use "xds:///" scheme in the # target URI of the service it is connecting to. If false, indicates that the # BackendServices referenced by the urlMap will be accessed by gRPC applications # via a sidecar proxy. In this case, a gRPC application must not use "xds:///" # scheme in the target URI of the service it is connecting to # Corresponds to the JSON property `validateForProxyless` # @return [Boolean] attr_accessor :validate_for_proxyless alias_method :validate_for_proxyless?, :validate_for_proxyless def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @creation_timestamp = args[:creation_timestamp] if args.key?(:creation_timestamp) @description = args[:description] if args.key?(:description) @fingerprint = args[:fingerprint] if args.key?(:fingerprint) @id = args[:id] if args.key?(:id) @kind = args[:kind] if args.key?(:kind) @name = args[:name] if args.key?(:name) @self_link = args[:self_link] if args.key?(:self_link) @self_link_with_id = args[:self_link_with_id] if args.key?(:self_link_with_id) @url_map = args[:url_map] if args.key?(:url_map) @validate_for_proxyless = args[:validate_for_proxyless] if args.key?(:validate_for_proxyless) end end # class TargetGrpcProxyList include Google::Apis::Core::Hashable # [Output Only] Unique identifier for the resource; defined by the server. # Corresponds to the JSON property `id` # @return [String] attr_accessor :id # A list of TargetGrpcProxy resources. # Corresponds to the JSON property `items` # @return [Array] attr_accessor :items # [Output Only] Type of the resource. Always compute#targetGrpcProxy for target # grpc proxies. # Corresponds to the JSON property `kind` # @return [String] attr_accessor :kind # [Output Only] This token allows you to get the next page of results for list # requests. If the number of results is larger than maxResults, use the # nextPageToken as a value for the query parameter pageToken in the next list # request. Subsequent list requests will have their own nextPageToken to # continue paging through the results. # Corresponds to the JSON property `nextPageToken` # @return [String] attr_accessor :next_page_token # [Output Only] Server-defined URL for this resource. # Corresponds to the JSON property `selfLink` # @return [String] attr_accessor :self_link # [Output Only] Informational warning message. # Corresponds to the JSON property `warning` # @return [Google::Apis::ComputeAlpha::TargetGrpcProxyList::Warning] attr_accessor :warning def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @id = args[:id] if args.key?(:id) @items = args[:items] if args.key?(:items) @kind = args[:kind] if args.key?(:kind) @next_page_token = args[:next_page_token] if args.key?(:next_page_token) @self_link = args[:self_link] if args.key?(:self_link) @warning = args[:warning] if args.key?(:warning) end # [Output Only] Informational warning message. class Warning include Google::Apis::Core::Hashable # [Output Only] A warning code, if applicable. For example, Compute Engine # returns NO_RESULTS_ON_PAGE if there are no results in the response. # Corresponds to the JSON property `code` # @return [String] attr_accessor :code # [Output Only] Metadata about this warning in key: value format. For example: " # data": [ ` "key": "scope", "value": "zones/us-east1-d" ` # Corresponds to the JSON property `data` # @return [Array] attr_accessor :data # [Output Only] A human-readable description of the warning code. # Corresponds to the JSON property `message` # @return [String] attr_accessor :message def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @code = args[:code] if args.key?(:code) @data = args[:data] if args.key?(:data) @message = args[:message] if args.key?(:message) end # class Datum include Google::Apis::Core::Hashable # [Output Only] A key that provides more detail on the warning being returned. # For example, for warnings where there are no results in a list request for a # particular zone, this key might be scope and the key value might be the zone # name. Other examples might be a key indicating a deprecated resource and a # suggested replacement, or a warning about invalid network settings (for # example, if an instance attempts to perform IP forwarding but is not enabled # for IP forwarding). # Corresponds to the JSON property `key` # @return [String] attr_accessor :key # [Output Only] A warning data value corresponding to the key. # 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 end end # class TargetHttpProxiesScopedList include Google::Apis::Core::Hashable # A list of TargetHttpProxies contained in this scope. # Corresponds to the JSON property `targetHttpProxies` # @return [Array] attr_accessor :target_http_proxies # Informational warning which replaces the list of backend services when the # list is empty. # Corresponds to the JSON property `warning` # @return [Google::Apis::ComputeAlpha::TargetHttpProxiesScopedList::Warning] attr_accessor :warning def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @target_http_proxies = args[:target_http_proxies] if args.key?(:target_http_proxies) @warning = args[:warning] if args.key?(:warning) end # Informational warning which replaces the list of backend services when the # list is empty. class Warning include Google::Apis::Core::Hashable # [Output Only] A warning code, if applicable. For example, Compute Engine # returns NO_RESULTS_ON_PAGE if there are no results in the response. # Corresponds to the JSON property `code` # @return [String] attr_accessor :code # [Output Only] Metadata about this warning in key: value format. For example: " # data": [ ` "key": "scope", "value": "zones/us-east1-d" ` # Corresponds to the JSON property `data` # @return [Array] attr_accessor :data # [Output Only] A human-readable description of the warning code. # Corresponds to the JSON property `message` # @return [String] attr_accessor :message def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @code = args[:code] if args.key?(:code) @data = args[:data] if args.key?(:data) @message = args[:message] if args.key?(:message) end # class Datum include Google::Apis::Core::Hashable # [Output Only] A key that provides more detail on the warning being returned. # For example, for warnings where there are no results in a list request for a # particular zone, this key might be scope and the key value might be the zone # name. Other examples might be a key indicating a deprecated resource and a # suggested replacement, or a warning about invalid network settings (for # example, if an instance attempts to perform IP forwarding but is not enabled # for IP forwarding). # Corresponds to the JSON property `key` # @return [String] attr_accessor :key # [Output Only] A warning data value corresponding to the key. # 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 end end # Represents a Target HTTP Proxy resource. Google Compute Engine has two Target # HTTP Proxy resources: * [Global](/compute/docs/reference/rest/alpha/ # targetHttpProxies) * [Regional](/compute/docs/reference/rest/alpha/ # regionTargetHttpProxies) A target HTTP proxy is a component of GCP HTTP load # balancers. * targetHttpProxies are used by external HTTP load balancers and # Traffic Director. * regionTargetHttpProxies are used by internal HTTP load # balancers. Forwarding rules reference a target HTTP proxy, and the target # proxy then references a URL map. For more information, read Using Target # Proxies and Forwarding rule concepts. class TargetHttpProxy include Google::Apis::Core::Hashable # [Output Only] Creation timestamp in RFC3339 text format. # Corresponds to the JSON property `creationTimestamp` # @return [String] attr_accessor :creation_timestamp # An optional description of this resource. Provide this property when you # create the resource. # Corresponds to the JSON property `description` # @return [String] attr_accessor :description # Fingerprint of this resource. A hash of the contents stored in this object. # This field is used in optimistic locking. This field will be ignored when # inserting a TargetHttpProxy. An up-to-date fingerprint must be provided in # order to patch/update the TargetHttpProxy; otherwise, the request will fail # with error 412 conditionNotMet. To see the latest fingerprint, make a get() # request to retrieve the TargetHttpProxy. # Corresponds to the JSON property `fingerprint` # NOTE: Values are automatically base64 encoded/decoded in the client library. # @return [String] attr_accessor :fingerprint # URLs to networkservices.HttpFilter resources enabled for xDS clients using # this configuration. For example, https://networkservices.googleapis.com/ # v1alpha1/projects/project/locations/ locationhttpFilters/httpFilter Only # filters that handle outbound connection and stream events may be specified. # These filters work in conjunction with a default set of HTTP filters that may # already be configured by Traffic Director. Traffic Director will determine the # final location of these filters within xDS configuration based on the name of # the HTTP filter. If Traffic Director positions multiple filters at the same # location, those filters will be in the same order as specified in this list. # httpFilters only applies for loadbalancers with loadBalancingScheme set to # INTERNAL_SELF_MANAGED. See ForwardingRule for more details. # Corresponds to the JSON property `httpFilters` # @return [Array] attr_accessor :http_filters # [Output Only] The unique identifier for the resource. This identifier is # defined by the server. # Corresponds to the JSON property `id` # @return [Fixnum] attr_accessor :id # [Output Only] Type of resource. Always compute#targetHttpProxy for target HTTP # proxies. # Corresponds to the JSON property `kind` # @return [String] attr_accessor :kind # Name of the resource. Provided by the client when the resource is created. The # name must be 1-63 characters long, and comply with RFC1035. Specifically, the # name must be 1-63 characters long and match the regular expression `[a-z]([-a- # z0-9]*[a-z0-9])?` which means the first character must be a lowercase letter, # and all following characters must be a dash, lowercase letter, or digit, # except the last character, which cannot be a dash. # Corresponds to the JSON property `name` # @return [String] attr_accessor :name # This field only applies when the forwarding rule that references this target # proxy has a loadBalancingScheme set to INTERNAL_SELF_MANAGED. When this field # is set to true, Envoy proxies set up inbound traffic interception and bind to # the IP address and port specified in the forwarding rule. This is generally # useful when using Traffic Director to configure Envoy as a gateway or middle # proxy (in other words, not a sidecar proxy). The Envoy proxy listens for # inbound requests and handles requests when it receives them. The default is # false. # Corresponds to the JSON property `proxyBind` # @return [Boolean] attr_accessor :proxy_bind alias_method :proxy_bind?, :proxy_bind # [Output Only] URL of the region where the regional Target HTTP Proxy resides. # This field is not applicable to global Target HTTP Proxies. # Corresponds to the JSON property `region` # @return [String] attr_accessor :region # [Output Only] Server-defined URL for the resource. # Corresponds to the JSON property `selfLink` # @return [String] attr_accessor :self_link # [Output Only] Server-defined URL for this resource with the resource id. # Corresponds to the JSON property `selfLinkWithId` # @return [String] attr_accessor :self_link_with_id # URL to the UrlMap resource that defines the mapping from URL to the # BackendService. # Corresponds to the JSON property `urlMap` # @return [String] attr_accessor :url_map def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @creation_timestamp = args[:creation_timestamp] if args.key?(:creation_timestamp) @description = args[:description] if args.key?(:description) @fingerprint = args[:fingerprint] if args.key?(:fingerprint) @http_filters = args[:http_filters] if args.key?(:http_filters) @id = args[:id] if args.key?(:id) @kind = args[:kind] if args.key?(:kind) @name = args[:name] if args.key?(:name) @proxy_bind = args[:proxy_bind] if args.key?(:proxy_bind) @region = args[:region] if args.key?(:region) @self_link = args[:self_link] if args.key?(:self_link) @self_link_with_id = args[:self_link_with_id] if args.key?(:self_link_with_id) @url_map = args[:url_map] if args.key?(:url_map) end end # class TargetHttpProxyAggregatedList include Google::Apis::Core::Hashable # [Output Only] Unique identifier for the resource; defined by the server. # Corresponds to the JSON property `id` # @return [String] attr_accessor :id # A list of TargetHttpProxiesScopedList resources. # Corresponds to the JSON property `items` # @return [Hash] attr_accessor :items # [Output Only] Type of resource. Always compute#targetHttpProxyAggregatedList # for lists of Target HTTP Proxies. # Corresponds to the JSON property `kind` # @return [String] attr_accessor :kind # [Output Only] This token allows you to get the next page of results for list # requests. If the number of results is larger than maxResults, use the # nextPageToken as a value for the query parameter pageToken in the next list # request. Subsequent list requests will have their own nextPageToken to # continue paging through the results. # Corresponds to the JSON property `nextPageToken` # @return [String] attr_accessor :next_page_token # [Output Only] Server-defined URL for this resource. # Corresponds to the JSON property `selfLink` # @return [String] attr_accessor :self_link # [Output Only] Unreachable resources. # Corresponds to the JSON property `unreachables` # @return [Array] attr_accessor :unreachables # [Output Only] Informational warning message. # Corresponds to the JSON property `warning` # @return [Google::Apis::ComputeAlpha::TargetHttpProxyAggregatedList::Warning] attr_accessor :warning def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @id = args[:id] if args.key?(:id) @items = args[:items] if args.key?(:items) @kind = args[:kind] if args.key?(:kind) @next_page_token = args[:next_page_token] if args.key?(:next_page_token) @self_link = args[:self_link] if args.key?(:self_link) @unreachables = args[:unreachables] if args.key?(:unreachables) @warning = args[:warning] if args.key?(:warning) end # [Output Only] Informational warning message. class Warning include Google::Apis::Core::Hashable # [Output Only] A warning code, if applicable. For example, Compute Engine # returns NO_RESULTS_ON_PAGE if there are no results in the response. # Corresponds to the JSON property `code` # @return [String] attr_accessor :code # [Output Only] Metadata about this warning in key: value format. For example: " # data": [ ` "key": "scope", "value": "zones/us-east1-d" ` # Corresponds to the JSON property `data` # @return [Array] attr_accessor :data # [Output Only] A human-readable description of the warning code. # Corresponds to the JSON property `message` # @return [String] attr_accessor :message def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @code = args[:code] if args.key?(:code) @data = args[:data] if args.key?(:data) @message = args[:message] if args.key?(:message) end # class Datum include Google::Apis::Core::Hashable # [Output Only] A key that provides more detail on the warning being returned. # For example, for warnings where there are no results in a list request for a # particular zone, this key might be scope and the key value might be the zone # name. Other examples might be a key indicating a deprecated resource and a # suggested replacement, or a warning about invalid network settings (for # example, if an instance attempts to perform IP forwarding but is not enabled # for IP forwarding). # Corresponds to the JSON property `key` # @return [String] attr_accessor :key # [Output Only] A warning data value corresponding to the key. # 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 end end # A list of TargetHttpProxy resources. class TargetHttpProxyList include Google::Apis::Core::Hashable # [Output Only] Unique identifier for the resource; defined by the server. # Corresponds to the JSON property `id` # @return [String] attr_accessor :id # A list of TargetHttpProxy resources. # Corresponds to the JSON property `items` # @return [Array] attr_accessor :items # Type of resource. Always compute#targetHttpProxyList for lists of target HTTP # proxies. # Corresponds to the JSON property `kind` # @return [String] attr_accessor :kind # [Output Only] This token allows you to get the next page of results for list # requests. If the number of results is larger than maxResults, use the # nextPageToken as a value for the query parameter pageToken in the next list # request. Subsequent list requests will have their own nextPageToken to # continue paging through the results. # Corresponds to the JSON property `nextPageToken` # @return [String] attr_accessor :next_page_token # [Output Only] Server-defined URL for this resource. # Corresponds to the JSON property `selfLink` # @return [String] attr_accessor :self_link # [Output Only] Informational warning message. # Corresponds to the JSON property `warning` # @return [Google::Apis::ComputeAlpha::TargetHttpProxyList::Warning] attr_accessor :warning def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @id = args[:id] if args.key?(:id) @items = args[:items] if args.key?(:items) @kind = args[:kind] if args.key?(:kind) @next_page_token = args[:next_page_token] if args.key?(:next_page_token) @self_link = args[:self_link] if args.key?(:self_link) @warning = args[:warning] if args.key?(:warning) end # [Output Only] Informational warning message. class Warning include Google::Apis::Core::Hashable # [Output Only] A warning code, if applicable. For example, Compute Engine # returns NO_RESULTS_ON_PAGE if there are no results in the response. # Corresponds to the JSON property `code` # @return [String] attr_accessor :code # [Output Only] Metadata about this warning in key: value format. For example: " # data": [ ` "key": "scope", "value": "zones/us-east1-d" ` # Corresponds to the JSON property `data` # @return [Array] attr_accessor :data # [Output Only] A human-readable description of the warning code. # Corresponds to the JSON property `message` # @return [String] attr_accessor :message def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @code = args[:code] if args.key?(:code) @data = args[:data] if args.key?(:data) @message = args[:message] if args.key?(:message) end # class Datum include Google::Apis::Core::Hashable # [Output Only] A key that provides more detail on the warning being returned. # For example, for warnings where there are no results in a list request for a # particular zone, this key might be scope and the key value might be the zone # name. Other examples might be a key indicating a deprecated resource and a # suggested replacement, or a warning about invalid network settings (for # example, if an instance attempts to perform IP forwarding but is not enabled # for IP forwarding). # Corresponds to the JSON property `key` # @return [String] attr_accessor :key # [Output Only] A warning data value corresponding to the key. # 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 end end # class TargetHttpsProxiesScopedList include Google::Apis::Core::Hashable # A list of TargetHttpsProxies contained in this scope. # Corresponds to the JSON property `targetHttpsProxies` # @return [Array] attr_accessor :target_https_proxies # Informational warning which replaces the list of backend services when the # list is empty. # Corresponds to the JSON property `warning` # @return [Google::Apis::ComputeAlpha::TargetHttpsProxiesScopedList::Warning] attr_accessor :warning def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @target_https_proxies = args[:target_https_proxies] if args.key?(:target_https_proxies) @warning = args[:warning] if args.key?(:warning) end # Informational warning which replaces the list of backend services when the # list is empty. class Warning include Google::Apis::Core::Hashable # [Output Only] A warning code, if applicable. For example, Compute Engine # returns NO_RESULTS_ON_PAGE if there are no results in the response. # Corresponds to the JSON property `code` # @return [String] attr_accessor :code # [Output Only] Metadata about this warning in key: value format. For example: " # data": [ ` "key": "scope", "value": "zones/us-east1-d" ` # Corresponds to the JSON property `data` # @return [Array] attr_accessor :data # [Output Only] A human-readable description of the warning code. # Corresponds to the JSON property `message` # @return [String] attr_accessor :message def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @code = args[:code] if args.key?(:code) @data = args[:data] if args.key?(:data) @message = args[:message] if args.key?(:message) end # class Datum include Google::Apis::Core::Hashable # [Output Only] A key that provides more detail on the warning being returned. # For example, for warnings where there are no results in a list request for a # particular zone, this key might be scope and the key value might be the zone # name. Other examples might be a key indicating a deprecated resource and a # suggested replacement, or a warning about invalid network settings (for # example, if an instance attempts to perform IP forwarding but is not enabled # for IP forwarding). # Corresponds to the JSON property `key` # @return [String] attr_accessor :key # [Output Only] A warning data value corresponding to the key. # 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 end end # class TargetHttpsProxiesSetCertificateMapRequest include Google::Apis::Core::Hashable # URL of the Certificate Map to associate with this TargetHttpsProxy. # Corresponds to the JSON property `certificateMap` # @return [String] attr_accessor :certificate_map def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @certificate_map = args[:certificate_map] if args.key?(:certificate_map) end end # class TargetHttpsProxiesSetQuicOverrideRequest include Google::Apis::Core::Hashable # QUIC policy for the TargetHttpsProxy resource. # Corresponds to the JSON property `quicOverride` # @return [String] attr_accessor :quic_override def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @quic_override = args[:quic_override] if args.key?(:quic_override) end end # class TargetHttpsProxiesSetSslCertificatesRequest include Google::Apis::Core::Hashable # New set of SslCertificate resources to associate with this TargetHttpsProxy # resource. At least one SSL certificate must be specified. Currently, you may # specify up to 15 SSL certificates. # Corresponds to the JSON property `sslCertificates` # @return [Array] attr_accessor :ssl_certificates def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @ssl_certificates = args[:ssl_certificates] if args.key?(:ssl_certificates) end end # Represents a Target HTTPS Proxy resource. Google Compute Engine has two Target # HTTPS Proxy resources: * [Global](/compute/docs/reference/rest/alpha/ # targetHttpsProxies) * [Regional](/compute/docs/reference/rest/alpha/ # regionTargetHttpsProxies) A target HTTPS proxy is a component of GCP HTTPS # load balancers. * targetHttpsProxies are used by external HTTPS load balancers. # * regionTargetHttpsProxies are used by internal HTTPS load balancers. # Forwarding rules reference a target HTTPS proxy, and the target proxy then # references a URL map. For more information, read Using Target Proxies and # Forwarding rule concepts. class TargetHttpsProxy include Google::Apis::Core::Hashable # [Deprecated] Use serverTlsPolicy instead. # Corresponds to the JSON property `authentication` # @return [String] attr_accessor :authentication # [Deprecated] Use authorizationPolicy instead. # Corresponds to the JSON property `authorization` # @return [String] attr_accessor :authorization # Optional. A URL referring to a networksecurity.AuthorizationPolicy resource # that describes how the proxy should authorize inbound traffic. If left blank, # access will not be restricted by an authorization policy. Refer to the # AuthorizationPolicy resource for additional details. authorizationPolicy only # applies to a global TargetHttpsProxy attached to globalForwardingRules with # the loadBalancingScheme set to INTERNAL_SELF_MANAGED. Note: This field # currently has no impact. # Corresponds to the JSON property `authorizationPolicy` # @return [String] attr_accessor :authorization_policy # URL of a certificate map that identifies a certificate map associated with the # given target proxy. This field can only be set for global target proxies. If # set, sslCertificates will be ignored. # Corresponds to the JSON property `certificateMap` # @return [String] attr_accessor :certificate_map # [Output Only] Creation timestamp in RFC3339 text format. # Corresponds to the JSON property `creationTimestamp` # @return [String] attr_accessor :creation_timestamp # An optional description of this resource. Provide this property when you # create the resource. # Corresponds to the JSON property `description` # @return [String] attr_accessor :description # Fingerprint of this resource. A hash of the contents stored in this object. # This field is used in optimistic locking. This field will be ignored when # inserting a TargetHttpsProxy. An up-to-date fingerprint must be provided in # order to patch the TargetHttpsProxy; otherwise, the request will fail with # error 412 conditionNotMet. To see the latest fingerprint, make a get() request # to retrieve the TargetHttpsProxy. # Corresponds to the JSON property `fingerprint` # NOTE: Values are automatically base64 encoded/decoded in the client library. # @return [String] attr_accessor :fingerprint # URLs to networkservices.HttpFilter resources enabled for xDS clients using # this configuration. For example, https://networkservices.googleapis.com/beta/ # projects/project/locations/ locationhttpFilters/httpFilter Only filters that # handle outbound connection and stream events may be specified. These filters # work in conjunction with a default set of HTTP filters that may already be # configured by Traffic Director. Traffic Director will determine the final # location of these filters within xDS configuration based on the name of the # HTTP filter. If Traffic Director positions multiple filters at the same # location, those filters will be in the same order as specified in this list. # httpFilters only applies for loadbalancers with loadBalancingScheme set to # INTERNAL_SELF_MANAGED. See ForwardingRule for more details. # Corresponds to the JSON property `httpFilters` # @return [Array] attr_accessor :http_filters # [Output Only] The unique identifier for the resource. This identifier is # defined by the server. # Corresponds to the JSON property `id` # @return [Fixnum] attr_accessor :id # [Output Only] Type of resource. Always compute#targetHttpsProxy for target # HTTPS proxies. # Corresponds to the JSON property `kind` # @return [String] attr_accessor :kind # Name of the resource. Provided by the client when the resource is created. The # name must be 1-63 characters long, and comply with RFC1035. Specifically, the # name must be 1-63 characters long and match the regular expression `[a-z]([-a- # z0-9]*[a-z0-9])?` which means the first character must be a lowercase letter, # and all following characters must be a dash, lowercase letter, or digit, # except the last character, which cannot be a dash. # Corresponds to the JSON property `name` # @return [String] attr_accessor :name # This field only applies when the forwarding rule that references this target # proxy has a loadBalancingScheme set to INTERNAL_SELF_MANAGED. When this field # is set to true, Envoy proxies set up inbound traffic interception and bind to # the IP address and port specified in the forwarding rule. This is generally # useful when using Traffic Director to configure Envoy as a gateway or middle # proxy (in other words, not a sidecar proxy). The Envoy proxy listens for # inbound requests and handles requests when it receives them. The default is # false. # Corresponds to the JSON property `proxyBind` # @return [Boolean] attr_accessor :proxy_bind alias_method :proxy_bind?, :proxy_bind # Specifies the QUIC override policy for this TargetHttpsProxy resource. This # setting determines whether the load balancer attempts to negotiate QUIC with # clients. You can specify NONE, ENABLE, or DISABLE. - When quic-override is set # to NONE, Google manages whether QUIC is used. - When quic-override is set to # ENABLE, the load balancer uses QUIC when possible. - When quic-override is set # to DISABLE, the load balancer doesn't use QUIC. - If the quic-override flag is # not specified, NONE is implied. # Corresponds to the JSON property `quicOverride` # @return [String] attr_accessor :quic_override # [Output Only] URL of the region where the regional TargetHttpsProxy resides. # This field is not applicable to global TargetHttpsProxies. # Corresponds to the JSON property `region` # @return [String] attr_accessor :region # [Output Only] Server-defined URL for the resource. # Corresponds to the JSON property `selfLink` # @return [String] attr_accessor :self_link # [Output Only] Server-defined URL for this resource with the resource id. # Corresponds to the JSON property `selfLinkWithId` # @return [String] attr_accessor :self_link_with_id # Optional. A URL referring to a networksecurity.ServerTlsPolicy resource that # describes how the proxy should authenticate inbound traffic. serverTlsPolicy # only applies to a global TargetHttpsProxy attached to globalForwardingRules # with the loadBalancingScheme set to INTERNAL_SELF_MANAGED. If left blank, # communications are not encrypted. Note: This field currently has no impact. # Corresponds to the JSON property `serverTlsPolicy` # @return [String] attr_accessor :server_tls_policy # URLs to SslCertificate resources that are used to authenticate connections # between users and the load balancer. At least one SSL certificate must be # specified. Currently, you may specify up to 15 SSL certificates. # sslCertificates do not apply when the load balancing scheme is set to # INTERNAL_SELF_MANAGED. # Corresponds to the JSON property `sslCertificates` # @return [Array] attr_accessor :ssl_certificates # URL of SslPolicy resource that will be associated with the TargetHttpsProxy # resource. If not set, the TargetHttpsProxy resource has no SSL policy # configured. # Corresponds to the JSON property `sslPolicy` # @return [String] attr_accessor :ssl_policy # A fully-qualified or valid partial URL to the UrlMap resource that defines the # mapping from URL to the BackendService. For example, the following are all # valid URLs for specifying a URL map: - https://www.googleapis.compute/v1/ # projects/project/global/urlMaps/ url-map - projects/project/global/urlMaps/url- # map - global/urlMaps/url-map # Corresponds to the JSON property `urlMap` # @return [String] attr_accessor :url_map def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @authentication = args[:authentication] if args.key?(:authentication) @authorization = args[:authorization] if args.key?(:authorization) @authorization_policy = args[:authorization_policy] if args.key?(:authorization_policy) @certificate_map = args[:certificate_map] if args.key?(:certificate_map) @creation_timestamp = args[:creation_timestamp] if args.key?(:creation_timestamp) @description = args[:description] if args.key?(:description) @fingerprint = args[:fingerprint] if args.key?(:fingerprint) @http_filters = args[:http_filters] if args.key?(:http_filters) @id = args[:id] if args.key?(:id) @kind = args[:kind] if args.key?(:kind) @name = args[:name] if args.key?(:name) @proxy_bind = args[:proxy_bind] if args.key?(:proxy_bind) @quic_override = args[:quic_override] if args.key?(:quic_override) @region = args[:region] if args.key?(:region) @self_link = args[:self_link] if args.key?(:self_link) @self_link_with_id = args[:self_link_with_id] if args.key?(:self_link_with_id) @server_tls_policy = args[:server_tls_policy] if args.key?(:server_tls_policy) @ssl_certificates = args[:ssl_certificates] if args.key?(:ssl_certificates) @ssl_policy = args[:ssl_policy] if args.key?(:ssl_policy) @url_map = args[:url_map] if args.key?(:url_map) end end # class TargetHttpsProxyAggregatedList include Google::Apis::Core::Hashable # [Output Only] Unique identifier for the resource; defined by the server. # Corresponds to the JSON property `id` # @return [String] attr_accessor :id # A list of TargetHttpsProxiesScopedList resources. # Corresponds to the JSON property `items` # @return [Hash] attr_accessor :items # [Output Only] Type of resource. Always compute#targetHttpsProxyAggregatedList # for lists of Target HTTP Proxies. # Corresponds to the JSON property `kind` # @return [String] attr_accessor :kind # [Output Only] This token allows you to get the next page of results for list # requests. If the number of results is larger than maxResults, use the # nextPageToken as a value for the query parameter pageToken in the next list # request. Subsequent list requests will have their own nextPageToken to # continue paging through the results. # Corresponds to the JSON property `nextPageToken` # @return [String] attr_accessor :next_page_token # [Output Only] Server-defined URL for this resource. # Corresponds to the JSON property `selfLink` # @return [String] attr_accessor :self_link # [Output Only] Unreachable resources. # Corresponds to the JSON property `unreachables` # @return [Array] attr_accessor :unreachables # [Output Only] Informational warning message. # Corresponds to the JSON property `warning` # @return [Google::Apis::ComputeAlpha::TargetHttpsProxyAggregatedList::Warning] attr_accessor :warning def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @id = args[:id] if args.key?(:id) @items = args[:items] if args.key?(:items) @kind = args[:kind] if args.key?(:kind) @next_page_token = args[:next_page_token] if args.key?(:next_page_token) @self_link = args[:self_link] if args.key?(:self_link) @unreachables = args[:unreachables] if args.key?(:unreachables) @warning = args[:warning] if args.key?(:warning) end # [Output Only] Informational warning message. class Warning include Google::Apis::Core::Hashable # [Output Only] A warning code, if applicable. For example, Compute Engine # returns NO_RESULTS_ON_PAGE if there are no results in the response. # Corresponds to the JSON property `code` # @return [String] attr_accessor :code # [Output Only] Metadata about this warning in key: value format. For example: " # data": [ ` "key": "scope", "value": "zones/us-east1-d" ` # Corresponds to the JSON property `data` # @return [Array] attr_accessor :data # [Output Only] A human-readable description of the warning code. # Corresponds to the JSON property `message` # @return [String] attr_accessor :message def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @code = args[:code] if args.key?(:code) @data = args[:data] if args.key?(:data) @message = args[:message] if args.key?(:message) end # class Datum include Google::Apis::Core::Hashable # [Output Only] A key that provides more detail on the warning being returned. # For example, for warnings where there are no results in a list request for a # particular zone, this key might be scope and the key value might be the zone # name. Other examples might be a key indicating a deprecated resource and a # suggested replacement, or a warning about invalid network settings (for # example, if an instance attempts to perform IP forwarding but is not enabled # for IP forwarding). # Corresponds to the JSON property `key` # @return [String] attr_accessor :key # [Output Only] A warning data value corresponding to the key. # 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 end end # Contains a list of TargetHttpsProxy resources. class TargetHttpsProxyList include Google::Apis::Core::Hashable # [Output Only] Unique identifier for the resource; defined by the server. # Corresponds to the JSON property `id` # @return [String] attr_accessor :id # A list of TargetHttpsProxy resources. # Corresponds to the JSON property `items` # @return [Array] attr_accessor :items # Type of resource. Always compute#targetHttpsProxyList for lists of target # HTTPS proxies. # Corresponds to the JSON property `kind` # @return [String] attr_accessor :kind # [Output Only] This token allows you to get the next page of results for list # requests. If the number of results is larger than maxResults, use the # nextPageToken as a value for the query parameter pageToken in the next list # request. Subsequent list requests will have their own nextPageToken to # continue paging through the results. # Corresponds to the JSON property `nextPageToken` # @return [String] attr_accessor :next_page_token # [Output Only] Server-defined URL for this resource. # Corresponds to the JSON property `selfLink` # @return [String] attr_accessor :self_link # [Output Only] Informational warning message. # Corresponds to the JSON property `warning` # @return [Google::Apis::ComputeAlpha::TargetHttpsProxyList::Warning] attr_accessor :warning def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @id = args[:id] if args.key?(:id) @items = args[:items] if args.key?(:items) @kind = args[:kind] if args.key?(:kind) @next_page_token = args[:next_page_token] if args.key?(:next_page_token) @self_link = args[:self_link] if args.key?(:self_link) @warning = args[:warning] if args.key?(:warning) end # [Output Only] Informational warning message. class Warning include Google::Apis::Core::Hashable # [Output Only] A warning code, if applicable. For example, Compute Engine # returns NO_RESULTS_ON_PAGE if there are no results in the response. # Corresponds to the JSON property `code` # @return [String] attr_accessor :code # [Output Only] Metadata about this warning in key: value format. For example: " # data": [ ` "key": "scope", "value": "zones/us-east1-d" ` # Corresponds to the JSON property `data` # @return [Array] attr_accessor :data # [Output Only] A human-readable description of the warning code. # Corresponds to the JSON property `message` # @return [String] attr_accessor :message def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @code = args[:code] if args.key?(:code) @data = args[:data] if args.key?(:data) @message = args[:message] if args.key?(:message) end # class Datum include Google::Apis::Core::Hashable # [Output Only] A key that provides more detail on the warning being returned. # For example, for warnings where there are no results in a list request for a # particular zone, this key might be scope and the key value might be the zone # name. Other examples might be a key indicating a deprecated resource and a # suggested replacement, or a warning about invalid network settings (for # example, if an instance attempts to perform IP forwarding but is not enabled # for IP forwarding). # Corresponds to the JSON property `key` # @return [String] attr_accessor :key # [Output Only] A warning data value corresponding to the key. # 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 end end # Represents a Target Instance resource. You can use a target instance to handle # traffic for one or more forwarding rules, which is ideal for forwarding # protocol traffic that is managed by a single source. For example, ESP, AH, TCP, # or UDP. For more information, read Target instances. class TargetInstance include Google::Apis::Core::Hashable # [Output Only] Creation timestamp in RFC3339 text format. # Corresponds to the JSON property `creationTimestamp` # @return [String] attr_accessor :creation_timestamp # An optional description of this resource. Provide this property when you # create the resource. # Corresponds to the JSON property `description` # @return [String] attr_accessor :description # [Output Only] The unique identifier for the resource. This identifier is # defined by the server. # Corresponds to the JSON property `id` # @return [Fixnum] attr_accessor :id # A URL to the virtual machine instance that handles traffic for this target # instance. When creating a target instance, you can provide the fully-qualified # URL or a valid partial URL to the desired virtual machine. For example, the # following are all valid URLs: - https://www.googleapis.com/compute/v1/projects/ # project/zones/zone /instances/instance - projects/project/zones/zone/instances/ # instance - zones/zone/instances/instance # Corresponds to the JSON property `instance` # @return [String] attr_accessor :instance # [Output Only] The type of the resource. Always compute#targetInstance for # target instances. # Corresponds to the JSON property `kind` # @return [String] attr_accessor :kind # Name of the resource. Provided by the client when the resource is created. The # name must be 1-63 characters long, and comply with RFC1035. Specifically, the # name must be 1-63 characters long and match the regular expression `[a-z]([-a- # z0-9]*[a-z0-9])?` which means the first character must be a lowercase letter, # and all following characters must be a dash, lowercase letter, or digit, # except the last character, which cannot be a dash. # Corresponds to the JSON property `name` # @return [String] attr_accessor :name # NAT option controlling how IPs are NAT'ed to the instance. Currently only # NO_NAT (default value) is supported. # Corresponds to the JSON property `natPolicy` # @return [String] attr_accessor :nat_policy # The URL of the network this target instance uses to forward traffic. If not # specified, the traffic will be forwarded to the network that the default # network interface belongs to. # Corresponds to the JSON property `network` # @return [String] attr_accessor :network # [Output Only] Server-defined URL for the resource. # Corresponds to the JSON property `selfLink` # @return [String] attr_accessor :self_link # [Output Only] Server-defined URL for this resource with the resource id. # Corresponds to the JSON property `selfLinkWithId` # @return [String] attr_accessor :self_link_with_id # [Output Only] URL of the zone where the target instance resides. You must # specify this field as part of the HTTP request URL. It is not settable as a # field in the request body. # 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) @creation_timestamp = args[:creation_timestamp] if args.key?(:creation_timestamp) @description = args[:description] if args.key?(:description) @id = args[:id] if args.key?(:id) @instance = args[:instance] if args.key?(:instance) @kind = args[:kind] if args.key?(:kind) @name = args[:name] if args.key?(:name) @nat_policy = args[:nat_policy] if args.key?(:nat_policy) @network = args[:network] if args.key?(:network) @self_link = args[:self_link] if args.key?(:self_link) @self_link_with_id = args[:self_link_with_id] if args.key?(:self_link_with_id) @zone = args[:zone] if args.key?(:zone) end end # class TargetInstanceAggregatedList include Google::Apis::Core::Hashable # [Output Only] Unique identifier for the resource; defined by the server. # Corresponds to the JSON property `id` # @return [String] attr_accessor :id # A list of TargetInstance resources. # Corresponds to the JSON property `items` # @return [Hash] attr_accessor :items # Type of resource. # Corresponds to the JSON property `kind` # @return [String] attr_accessor :kind # [Output Only] This token allows you to get the next page of results for list # requests. If the number of results is larger than maxResults, use the # nextPageToken as a value for the query parameter pageToken in the next list # request. Subsequent list requests will have their own nextPageToken to # continue paging through the results. # Corresponds to the JSON property `nextPageToken` # @return [String] attr_accessor :next_page_token # [Output Only] Server-defined URL for this resource. # Corresponds to the JSON property `selfLink` # @return [String] attr_accessor :self_link # [Output Only] Unreachable resources. # Corresponds to the JSON property `unreachables` # @return [Array] attr_accessor :unreachables # [Output Only] Informational warning message. # Corresponds to the JSON property `warning` # @return [Google::Apis::ComputeAlpha::TargetInstanceAggregatedList::Warning] attr_accessor :warning def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @id = args[:id] if args.key?(:id) @items = args[:items] if args.key?(:items) @kind = args[:kind] if args.key?(:kind) @next_page_token = args[:next_page_token] if args.key?(:next_page_token) @self_link = args[:self_link] if args.key?(:self_link) @unreachables = args[:unreachables] if args.key?(:unreachables) @warning = args[:warning] if args.key?(:warning) end # [Output Only] Informational warning message. class Warning include Google::Apis::Core::Hashable # [Output Only] A warning code, if applicable. For example, Compute Engine # returns NO_RESULTS_ON_PAGE if there are no results in the response. # Corresponds to the JSON property `code` # @return [String] attr_accessor :code # [Output Only] Metadata about this warning in key: value format. For example: " # data": [ ` "key": "scope", "value": "zones/us-east1-d" ` # Corresponds to the JSON property `data` # @return [Array] attr_accessor :data # [Output Only] A human-readable description of the warning code. # Corresponds to the JSON property `message` # @return [String] attr_accessor :message def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @code = args[:code] if args.key?(:code) @data = args[:data] if args.key?(:data) @message = args[:message] if args.key?(:message) end # class Datum include Google::Apis::Core::Hashable # [Output Only] A key that provides more detail on the warning being returned. # For example, for warnings where there are no results in a list request for a # particular zone, this key might be scope and the key value might be the zone # name. Other examples might be a key indicating a deprecated resource and a # suggested replacement, or a warning about invalid network settings (for # example, if an instance attempts to perform IP forwarding but is not enabled # for IP forwarding). # Corresponds to the JSON property `key` # @return [String] attr_accessor :key # [Output Only] A warning data value corresponding to the key. # 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 end end # Contains a list of TargetInstance resources. class TargetInstanceList include Google::Apis::Core::Hashable # [Output Only] Unique identifier for the resource; defined by the server. # Corresponds to the JSON property `id` # @return [String] attr_accessor :id # A list of TargetInstance resources. # Corresponds to the JSON property `items` # @return [Array] attr_accessor :items # Type of resource. # Corresponds to the JSON property `kind` # @return [String] attr_accessor :kind # [Output Only] This token allows you to get the next page of results for list # requests. If the number of results is larger than maxResults, use the # nextPageToken as a value for the query parameter pageToken in the next list # request. Subsequent list requests will have their own nextPageToken to # continue paging through the results. # Corresponds to the JSON property `nextPageToken` # @return [String] attr_accessor :next_page_token # [Output Only] Server-defined URL for this resource. # Corresponds to the JSON property `selfLink` # @return [String] attr_accessor :self_link # [Output Only] Informational warning message. # Corresponds to the JSON property `warning` # @return [Google::Apis::ComputeAlpha::TargetInstanceList::Warning] attr_accessor :warning def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @id = args[:id] if args.key?(:id) @items = args[:items] if args.key?(:items) @kind = args[:kind] if args.key?(:kind) @next_page_token = args[:next_page_token] if args.key?(:next_page_token) @self_link = args[:self_link] if args.key?(:self_link) @warning = args[:warning] if args.key?(:warning) end # [Output Only] Informational warning message. class Warning include Google::Apis::Core::Hashable # [Output Only] A warning code, if applicable. For example, Compute Engine # returns NO_RESULTS_ON_PAGE if there are no results in the response. # Corresponds to the JSON property `code` # @return [String] attr_accessor :code # [Output Only] Metadata about this warning in key: value format. For example: " # data": [ ` "key": "scope", "value": "zones/us-east1-d" ` # Corresponds to the JSON property `data` # @return [Array] attr_accessor :data # [Output Only] A human-readable description of the warning code. # Corresponds to the JSON property `message` # @return [String] attr_accessor :message def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @code = args[:code] if args.key?(:code) @data = args[:data] if args.key?(:data) @message = args[:message] if args.key?(:message) end # class Datum include Google::Apis::Core::Hashable # [Output Only] A key that provides more detail on the warning being returned. # For example, for warnings where there are no results in a list request for a # particular zone, this key might be scope and the key value might be the zone # name. Other examples might be a key indicating a deprecated resource and a # suggested replacement, or a warning about invalid network settings (for # example, if an instance attempts to perform IP forwarding but is not enabled # for IP forwarding). # Corresponds to the JSON property `key` # @return [String] attr_accessor :key # [Output Only] A warning data value corresponding to the key. # 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 end end # class TargetInstancesScopedList include Google::Apis::Core::Hashable # A list of target instances contained in this scope. # Corresponds to the JSON property `targetInstances` # @return [Array] attr_accessor :target_instances # Informational warning which replaces the list of addresses when the list is # empty. # Corresponds to the JSON property `warning` # @return [Google::Apis::ComputeAlpha::TargetInstancesScopedList::Warning] attr_accessor :warning def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @target_instances = args[:target_instances] if args.key?(:target_instances) @warning = args[:warning] if args.key?(:warning) end # Informational warning which replaces the list of addresses when the list is # empty. class Warning include Google::Apis::Core::Hashable # [Output Only] A warning code, if applicable. For example, Compute Engine # returns NO_RESULTS_ON_PAGE if there are no results in the response. # Corresponds to the JSON property `code` # @return [String] attr_accessor :code # [Output Only] Metadata about this warning in key: value format. For example: " # data": [ ` "key": "scope", "value": "zones/us-east1-d" ` # Corresponds to the JSON property `data` # @return [Array] attr_accessor :data # [Output Only] A human-readable description of the warning code. # Corresponds to the JSON property `message` # @return [String] attr_accessor :message def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @code = args[:code] if args.key?(:code) @data = args[:data] if args.key?(:data) @message = args[:message] if args.key?(:message) end # class Datum include Google::Apis::Core::Hashable # [Output Only] A key that provides more detail on the warning being returned. # For example, for warnings where there are no results in a list request for a # particular zone, this key might be scope and the key value might be the zone # name. Other examples might be a key indicating a deprecated resource and a # suggested replacement, or a warning about invalid network settings (for # example, if an instance attempts to perform IP forwarding but is not enabled # for IP forwarding). # Corresponds to the JSON property `key` # @return [String] attr_accessor :key # [Output Only] A warning data value corresponding to the key. # 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 end end # Represents a Target Pool resource. Target pools are used for network TCP/UDP # load balancing. A target pool references member instances, an associated # legacy HttpHealthCheck resource, and, optionally, a backup target pool. For # more information, read Using target pools. class TargetPool include Google::Apis::Core::Hashable # The server-defined URL for the resource. This field is applicable only when # the containing target pool is serving a forwarding rule as the primary pool, # and its failoverRatio field is properly set to a value between [0, 1]. # backupPool and failoverRatio together define the fallback behavior of the # primary target pool: if the ratio of the healthy instances in the primary pool # is at or below failoverRatio, traffic arriving at the load-balanced IP will be # directed to the backup pool. In case where failoverRatio and backupPool are # not set, or all the instances in the backup pool are unhealthy, the traffic # will be directed back to the primary pool in the "force" mode, where traffic # will be spread to the healthy instances with the best effort, or to all # instances when no instance is healthy. # Corresponds to the JSON property `backupPool` # @return [String] attr_accessor :backup_pool # [Output Only] Creation timestamp in RFC3339 text format. # Corresponds to the JSON property `creationTimestamp` # @return [String] attr_accessor :creation_timestamp # An optional description of this resource. Provide this property when you # create the resource. # Corresponds to the JSON property `description` # @return [String] attr_accessor :description # This field is applicable only when the containing target pool is serving a # forwarding rule as the primary pool (i.e., not as a backup pool to some other # target pool). The value of the field must be in [0, 1]. If set, backupPool # must also be set. They together define the fallback behavior of the primary # target pool: if the ratio of the healthy instances in the primary pool is at # or below this number, traffic arriving at the load-balanced IP will be # directed to the backup pool. In case where failoverRatio is not set or all the # instances in the backup pool are unhealthy, the traffic will be directed back # to the primary pool in the "force" mode, where traffic will be spread to the # healthy instances with the best effort, or to all instances when no instance # is healthy. # Corresponds to the JSON property `failoverRatio` # @return [Float] attr_accessor :failover_ratio # The URL of the HttpHealthCheck resource. A member instance in this pool is # considered healthy if and only if the health checks pass. Only legacy # HttpHealthChecks are supported. Only one health check may be specified. # Corresponds to the JSON property `healthChecks` # @return [Array] attr_accessor :health_checks # [Output Only] The unique identifier for the resource. This identifier is # defined by the server. # Corresponds to the JSON property `id` # @return [Fixnum] attr_accessor :id # A list of resource URLs to the virtual machine instances serving this pool. # They must live in zones contained in the same region as this pool. # Corresponds to the JSON property `instances` # @return [Array] attr_accessor :instances # [Output Only] Type of the resource. Always compute#targetPool for target pools. # Corresponds to the JSON property `kind` # @return [String] attr_accessor :kind # Name of the resource. Provided by the client when the resource is created. The # name must be 1-63 characters long, and comply with RFC1035. Specifically, the # name must be 1-63 characters long and match the regular expression `[a-z]([-a- # z0-9]*[a-z0-9])?` which means the first character must be a lowercase letter, # and all following characters must be a dash, lowercase letter, or digit, # except the last character, which cannot be a dash. # Corresponds to the JSON property `name` # @return [String] attr_accessor :name # [Output Only] URL of the region where the target pool resides. # Corresponds to the JSON property `region` # @return [String] attr_accessor :region # [Output Only] Server-defined URL for the resource. # Corresponds to the JSON property `selfLink` # @return [String] attr_accessor :self_link # [Output Only] Server-defined URL for this resource with the resource id. # Corresponds to the JSON property `selfLinkWithId` # @return [String] attr_accessor :self_link_with_id # Session affinity option, must be one of the following values: NONE: # Connections from the same client IP may go to any instance in the pool. # CLIENT_IP: Connections from the same client IP will go to the same instance in # the pool while that instance remains healthy. CLIENT_IP_PROTO: Connections # from the same client IP with the same IP protocol will go to the same instance # in the pool while that instance remains healthy. # Corresponds to the JSON property `sessionAffinity` # @return [String] attr_accessor :session_affinity def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @backup_pool = args[:backup_pool] if args.key?(:backup_pool) @creation_timestamp = args[:creation_timestamp] if args.key?(:creation_timestamp) @description = args[:description] if args.key?(:description) @failover_ratio = args[:failover_ratio] if args.key?(:failover_ratio) @health_checks = args[:health_checks] if args.key?(:health_checks) @id = args[:id] if args.key?(:id) @instances = args[:instances] if args.key?(:instances) @kind = args[:kind] if args.key?(:kind) @name = args[:name] if args.key?(:name) @region = args[:region] if args.key?(:region) @self_link = args[:self_link] if args.key?(:self_link) @self_link_with_id = args[:self_link_with_id] if args.key?(:self_link_with_id) @session_affinity = args[:session_affinity] if args.key?(:session_affinity) end end # class TargetPoolAggregatedList include Google::Apis::Core::Hashable # [Output Only] Unique identifier for the resource; defined by the server. # Corresponds to the JSON property `id` # @return [String] attr_accessor :id # A list of TargetPool resources. # Corresponds to the JSON property `items` # @return [Hash] attr_accessor :items # [Output Only] Type of resource. Always compute#targetPoolAggregatedList for # aggregated lists of target pools. # Corresponds to the JSON property `kind` # @return [String] attr_accessor :kind # [Output Only] This token allows you to get the next page of results for list # requests. If the number of results is larger than maxResults, use the # nextPageToken as a value for the query parameter pageToken in the next list # request. Subsequent list requests will have their own nextPageToken to # continue paging through the results. # Corresponds to the JSON property `nextPageToken` # @return [String] attr_accessor :next_page_token # [Output Only] Server-defined URL for this resource. # Corresponds to the JSON property `selfLink` # @return [String] attr_accessor :self_link # [Output Only] Unreachable resources. # Corresponds to the JSON property `unreachables` # @return [Array] attr_accessor :unreachables # [Output Only] Informational warning message. # Corresponds to the JSON property `warning` # @return [Google::Apis::ComputeAlpha::TargetPoolAggregatedList::Warning] attr_accessor :warning def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @id = args[:id] if args.key?(:id) @items = args[:items] if args.key?(:items) @kind = args[:kind] if args.key?(:kind) @next_page_token = args[:next_page_token] if args.key?(:next_page_token) @self_link = args[:self_link] if args.key?(:self_link) @unreachables = args[:unreachables] if args.key?(:unreachables) @warning = args[:warning] if args.key?(:warning) end # [Output Only] Informational warning message. class Warning include Google::Apis::Core::Hashable # [Output Only] A warning code, if applicable. For example, Compute Engine # returns NO_RESULTS_ON_PAGE if there are no results in the response. # Corresponds to the JSON property `code` # @return [String] attr_accessor :code # [Output Only] Metadata about this warning in key: value format. For example: " # data": [ ` "key": "scope", "value": "zones/us-east1-d" ` # Corresponds to the JSON property `data` # @return [Array] attr_accessor :data # [Output Only] A human-readable description of the warning code. # Corresponds to the JSON property `message` # @return [String] attr_accessor :message def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @code = args[:code] if args.key?(:code) @data = args[:data] if args.key?(:data) @message = args[:message] if args.key?(:message) end # class Datum include Google::Apis::Core::Hashable # [Output Only] A key that provides more detail on the warning being returned. # For example, for warnings where there are no results in a list request for a # particular zone, this key might be scope and the key value might be the zone # name. Other examples might be a key indicating a deprecated resource and a # suggested replacement, or a warning about invalid network settings (for # example, if an instance attempts to perform IP forwarding but is not enabled # for IP forwarding). # Corresponds to the JSON property `key` # @return [String] attr_accessor :key # [Output Only] A warning data value corresponding to the key. # 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 end end # class TargetPoolInstanceHealth include Google::Apis::Core::Hashable # # Corresponds to the JSON property `healthStatus` # @return [Array] attr_accessor :health_status # [Output Only] Type of resource. Always compute#targetPoolInstanceHealth when # checking the health of an instance. # Corresponds to the JSON property `kind` # @return [String] attr_accessor :kind def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @health_status = args[:health_status] if args.key?(:health_status) @kind = args[:kind] if args.key?(:kind) end end # Contains a list of TargetPool resources. class TargetPoolList include Google::Apis::Core::Hashable # [Output Only] Unique identifier for the resource; defined by the server. # Corresponds to the JSON property `id` # @return [String] attr_accessor :id # A list of TargetPool resources. # Corresponds to the JSON property `items` # @return [Array] attr_accessor :items # [Output Only] Type of resource. Always compute#targetPoolList for lists of # target pools. # Corresponds to the JSON property `kind` # @return [String] attr_accessor :kind # [Output Only] This token allows you to get the next page of results for list # requests. If the number of results is larger than maxResults, use the # nextPageToken as a value for the query parameter pageToken in the next list # request. Subsequent list requests will have their own nextPageToken to # continue paging through the results. # Corresponds to the JSON property `nextPageToken` # @return [String] attr_accessor :next_page_token # [Output Only] Server-defined URL for this resource. # Corresponds to the JSON property `selfLink` # @return [String] attr_accessor :self_link # [Output Only] Informational warning message. # Corresponds to the JSON property `warning` # @return [Google::Apis::ComputeAlpha::TargetPoolList::Warning] attr_accessor :warning def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @id = args[:id] if args.key?(:id) @items = args[:items] if args.key?(:items) @kind = args[:kind] if args.key?(:kind) @next_page_token = args[:next_page_token] if args.key?(:next_page_token) @self_link = args[:self_link] if args.key?(:self_link) @warning = args[:warning] if args.key?(:warning) end # [Output Only] Informational warning message. class Warning include Google::Apis::Core::Hashable # [Output Only] A warning code, if applicable. For example, Compute Engine # returns NO_RESULTS_ON_PAGE if there are no results in the response. # Corresponds to the JSON property `code` # @return [String] attr_accessor :code # [Output Only] Metadata about this warning in key: value format. For example: " # data": [ ` "key": "scope", "value": "zones/us-east1-d" ` # Corresponds to the JSON property `data` # @return [Array] attr_accessor :data # [Output Only] A human-readable description of the warning code. # Corresponds to the JSON property `message` # @return [String] attr_accessor :message def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @code = args[:code] if args.key?(:code) @data = args[:data] if args.key?(:data) @message = args[:message] if args.key?(:message) end # class Datum include Google::Apis::Core::Hashable # [Output Only] A key that provides more detail on the warning being returned. # For example, for warnings where there are no results in a list request for a # particular zone, this key might be scope and the key value might be the zone # name. Other examples might be a key indicating a deprecated resource and a # suggested replacement, or a warning about invalid network settings (for # example, if an instance attempts to perform IP forwarding but is not enabled # for IP forwarding). # Corresponds to the JSON property `key` # @return [String] attr_accessor :key # [Output Only] A warning data value corresponding to the key. # 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 end end # class TargetPoolsAddHealthCheckRequest include Google::Apis::Core::Hashable # The HttpHealthCheck to add to the target pool. # Corresponds to the JSON property `healthChecks` # @return [Array] attr_accessor :health_checks def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @health_checks = args[:health_checks] if args.key?(:health_checks) end end # class TargetPoolsAddInstanceRequest include Google::Apis::Core::Hashable # A full or partial URL to an instance to add to this target pool. This can be a # full or partial URL. For example, the following are valid URLs: - https://www. # googleapis.com/compute/v1/projects/project-id/zones/zone /instances/instance- # name - projects/project-id/zones/zone/instances/instance-name - zones/zone/ # instances/instance-name # Corresponds to the JSON property `instances` # @return [Array] attr_accessor :instances def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @instances = args[:instances] if args.key?(:instances) end end # class TargetPoolsRemoveHealthCheckRequest include Google::Apis::Core::Hashable # Health check URL to be removed. This can be a full or valid partial URL. For # example, the following are valid URLs: - https://www.googleapis.com/compute/ # beta/projects/project /global/httpHealthChecks/health-check - projects/project/ # global/httpHealthChecks/health-check - global/httpHealthChecks/health-check # Corresponds to the JSON property `healthChecks` # @return [Array] attr_accessor :health_checks def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @health_checks = args[:health_checks] if args.key?(:health_checks) end end # class TargetPoolsRemoveInstanceRequest include Google::Apis::Core::Hashable # URLs of the instances to be removed from target pool. # Corresponds to the JSON property `instances` # @return [Array] attr_accessor :instances def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @instances = args[:instances] if args.key?(:instances) end end # class TargetPoolsScopedList include Google::Apis::Core::Hashable # A list of target pools contained in this scope. # Corresponds to the JSON property `targetPools` # @return [Array] attr_accessor :target_pools # Informational warning which replaces the list of addresses when the list is # empty. # Corresponds to the JSON property `warning` # @return [Google::Apis::ComputeAlpha::TargetPoolsScopedList::Warning] attr_accessor :warning def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @target_pools = args[:target_pools] if args.key?(:target_pools) @warning = args[:warning] if args.key?(:warning) end # Informational warning which replaces the list of addresses when the list is # empty. class Warning include Google::Apis::Core::Hashable # [Output Only] A warning code, if applicable. For example, Compute Engine # returns NO_RESULTS_ON_PAGE if there are no results in the response. # Corresponds to the JSON property `code` # @return [String] attr_accessor :code # [Output Only] Metadata about this warning in key: value format. For example: " # data": [ ` "key": "scope", "value": "zones/us-east1-d" ` # Corresponds to the JSON property `data` # @return [Array] attr_accessor :data # [Output Only] A human-readable description of the warning code. # Corresponds to the JSON property `message` # @return [String] attr_accessor :message def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @code = args[:code] if args.key?(:code) @data = args[:data] if args.key?(:data) @message = args[:message] if args.key?(:message) end # class Datum include Google::Apis::Core::Hashable # [Output Only] A key that provides more detail on the warning being returned. # For example, for warnings where there are no results in a list request for a # particular zone, this key might be scope and the key value might be the zone # name. Other examples might be a key indicating a deprecated resource and a # suggested replacement, or a warning about invalid network settings (for # example, if an instance attempts to perform IP forwarding but is not enabled # for IP forwarding). # Corresponds to the JSON property `key` # @return [String] attr_accessor :key # [Output Only] A warning data value corresponding to the key. # 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 end end # class TargetReference include Google::Apis::Core::Hashable # # Corresponds to the JSON property `target` # @return [String] attr_accessor :target def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @target = args[:target] if args.key?(:target) end end # class TargetSslProxiesSetBackendServiceRequest include Google::Apis::Core::Hashable # The URL of the new BackendService resource for the targetSslProxy. # Corresponds to the JSON property `service` # @return [String] attr_accessor :service def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @service = args[:service] if args.key?(:service) end end # class TargetSslProxiesSetCertificateMapRequest include Google::Apis::Core::Hashable # URL of the Certificate Map to associate with this TargetSslProxy. # Corresponds to the JSON property `certificateMap` # @return [String] attr_accessor :certificate_map def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @certificate_map = args[:certificate_map] if args.key?(:certificate_map) end end # class TargetSslProxiesSetProxyHeaderRequest include Google::Apis::Core::Hashable # The new type of proxy header to append before sending data to the backend. # NONE or PROXY_V1 are allowed. # Corresponds to the JSON property `proxyHeader` # @return [String] attr_accessor :proxy_header def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @proxy_header = args[:proxy_header] if args.key?(:proxy_header) end end # class TargetSslProxiesSetSslCertificatesRequest include Google::Apis::Core::Hashable # New set of URLs to SslCertificate resources to associate with this # TargetSslProxy. At least one SSL certificate must be specified. Currently, you # may specify up to 15 SSL certificates. # Corresponds to the JSON property `sslCertificates` # @return [Array] attr_accessor :ssl_certificates def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @ssl_certificates = args[:ssl_certificates] if args.key?(:ssl_certificates) end end # Represents a Target SSL Proxy resource. A target SSL proxy is a component of a # SSL Proxy load balancer. Global forwarding rules reference a target SSL proxy, # and the target proxy then references an external backend service. For more # information, read Using Target Proxies. class TargetSslProxy include Google::Apis::Core::Hashable # URL of a certificate map that identifies a certificate map associated with the # given target proxy. This field can only be set for global target proxies. If # set, sslCertificates will be ignored. # Corresponds to the JSON property `certificateMap` # @return [String] attr_accessor :certificate_map # [Output Only] Creation timestamp in RFC3339 text format. # Corresponds to the JSON property `creationTimestamp` # @return [String] attr_accessor :creation_timestamp # An optional description of this resource. Provide this property when you # create the resource. # Corresponds to the JSON property `description` # @return [String] attr_accessor :description # [Output Only] The unique identifier for the resource. This identifier is # defined by the server. # Corresponds to the JSON property `id` # @return [Fixnum] attr_accessor :id # [Output Only] Type of the resource. Always compute#targetSslProxy for target # SSL proxies. # Corresponds to the JSON property `kind` # @return [String] attr_accessor :kind # Name of the resource. Provided by the client when the resource is created. The # name must be 1-63 characters long, and comply with RFC1035. Specifically, the # name must be 1-63 characters long and match the regular expression `[a-z]([-a- # z0-9]*[a-z0-9])?` which means the first character must be a lowercase letter, # and all following characters must be a dash, lowercase letter, or digit, # except the last character, which cannot be a dash. # Corresponds to the JSON property `name` # @return [String] attr_accessor :name # Specifies the type of proxy header to append before sending data to the # backend, either NONE or PROXY_V1. The default is NONE. # Corresponds to the JSON property `proxyHeader` # @return [String] attr_accessor :proxy_header # [Output Only] Server-defined URL for the resource. # Corresponds to the JSON property `selfLink` # @return [String] attr_accessor :self_link # URL to the BackendService resource. # Corresponds to the JSON property `service` # @return [String] attr_accessor :service # URLs to SslCertificate resources that are used to authenticate connections to # Backends. At least one SSL certificate must be specified. Currently, you may # specify up to 15 SSL certificates. sslCertificates do not apply when the load # balancing scheme is set to INTERNAL_SELF_MANAGED. # Corresponds to the JSON property `sslCertificates` # @return [Array] attr_accessor :ssl_certificates # URL of SslPolicy resource that will be associated with the TargetSslProxy # resource. If not set, the TargetSslProxy resource will not have any SSL policy # configured. # Corresponds to the JSON property `sslPolicy` # @return [String] attr_accessor :ssl_policy def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @certificate_map = args[:certificate_map] if args.key?(:certificate_map) @creation_timestamp = args[:creation_timestamp] if args.key?(:creation_timestamp) @description = args[:description] if args.key?(:description) @id = args[:id] if args.key?(:id) @kind = args[:kind] if args.key?(:kind) @name = args[:name] if args.key?(:name) @proxy_header = args[:proxy_header] if args.key?(:proxy_header) @self_link = args[:self_link] if args.key?(:self_link) @service = args[:service] if args.key?(:service) @ssl_certificates = args[:ssl_certificates] if args.key?(:ssl_certificates) @ssl_policy = args[:ssl_policy] if args.key?(:ssl_policy) end end # Contains a list of TargetSslProxy resources. class TargetSslProxyList include Google::Apis::Core::Hashable # [Output Only] Unique identifier for the resource; defined by the server. # Corresponds to the JSON property `id` # @return [String] attr_accessor :id # A list of TargetSslProxy resources. # Corresponds to the JSON property `items` # @return [Array] attr_accessor :items # Type of resource. # Corresponds to the JSON property `kind` # @return [String] attr_accessor :kind # [Output Only] This token allows you to get the next page of results for list # requests. If the number of results is larger than maxResults, use the # nextPageToken as a value for the query parameter pageToken in the next list # request. Subsequent list requests will have their own nextPageToken to # continue paging through the results. # Corresponds to the JSON property `nextPageToken` # @return [String] attr_accessor :next_page_token # [Output Only] Server-defined URL for this resource. # Corresponds to the JSON property `selfLink` # @return [String] attr_accessor :self_link # [Output Only] Informational warning message. # Corresponds to the JSON property `warning` # @return [Google::Apis::ComputeAlpha::TargetSslProxyList::Warning] attr_accessor :warning def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @id = args[:id] if args.key?(:id) @items = args[:items] if args.key?(:items) @kind = args[:kind] if args.key?(:kind) @next_page_token = args[:next_page_token] if args.key?(:next_page_token) @self_link = args[:self_link] if args.key?(:self_link) @warning = args[:warning] if args.key?(:warning) end # [Output Only] Informational warning message. class Warning include Google::Apis::Core::Hashable # [Output Only] A warning code, if applicable. For example, Compute Engine # returns NO_RESULTS_ON_PAGE if there are no results in the response. # Corresponds to the JSON property `code` # @return [String] attr_accessor :code # [Output Only] Metadata about this warning in key: value format. For example: " # data": [ ` "key": "scope", "value": "zones/us-east1-d" ` # Corresponds to the JSON property `data` # @return [Array] attr_accessor :data # [Output Only] A human-readable description of the warning code. # Corresponds to the JSON property `message` # @return [String] attr_accessor :message def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @code = args[:code] if args.key?(:code) @data = args[:data] if args.key?(:data) @message = args[:message] if args.key?(:message) end # class Datum include Google::Apis::Core::Hashable # [Output Only] A key that provides more detail on the warning being returned. # For example, for warnings where there are no results in a list request for a # particular zone, this key might be scope and the key value might be the zone # name. Other examples might be a key indicating a deprecated resource and a # suggested replacement, or a warning about invalid network settings (for # example, if an instance attempts to perform IP forwarding but is not enabled # for IP forwarding). # Corresponds to the JSON property `key` # @return [String] attr_accessor :key # [Output Only] A warning data value corresponding to the key. # 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 end end # class TargetTcpProxiesSetBackendServiceRequest include Google::Apis::Core::Hashable # The URL of the new BackendService resource for the targetTcpProxy. # Corresponds to the JSON property `service` # @return [String] attr_accessor :service def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @service = args[:service] if args.key?(:service) end end # class TargetTcpProxiesSetProxyHeaderRequest include Google::Apis::Core::Hashable # The new type of proxy header to append before sending data to the backend. # NONE or PROXY_V1 are allowed. # Corresponds to the JSON property `proxyHeader` # @return [String] attr_accessor :proxy_header def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @proxy_header = args[:proxy_header] if args.key?(:proxy_header) end end # Represents a Target TCP Proxy resource. A target TCP proxy is a component of a # TCP Proxy load balancer. Global forwarding rules reference target TCP proxy, # and the target proxy then references an external backend service. For more # information, read TCP Proxy Load Balancing overview. class TargetTcpProxy include Google::Apis::Core::Hashable # [Output Only] Creation timestamp in RFC3339 text format. # Corresponds to the JSON property `creationTimestamp` # @return [String] attr_accessor :creation_timestamp # An optional description of this resource. Provide this property when you # create the resource. # Corresponds to the JSON property `description` # @return [String] attr_accessor :description # [Output Only] The unique identifier for the resource. This identifier is # defined by the server. # Corresponds to the JSON property `id` # @return [Fixnum] attr_accessor :id # [Output Only] Type of the resource. Always compute#targetTcpProxy for target # TCP proxies. # Corresponds to the JSON property `kind` # @return [String] attr_accessor :kind # Name of the resource. Provided by the client when the resource is created. The # name must be 1-63 characters long, and comply with RFC1035. Specifically, the # name must be 1-63 characters long and match the regular expression `[a-z]([-a- # z0-9]*[a-z0-9])?` which means the first character must be a lowercase letter, # and all following characters must be a dash, lowercase letter, or digit, # except the last character, which cannot be a dash. # Corresponds to the JSON property `name` # @return [String] attr_accessor :name # This field only applies when the forwarding rule that references this target # proxy has a loadBalancingScheme set to INTERNAL_SELF_MANAGED. When this field # is set to true, Envoy proxies set up inbound traffic interception and bind to # the IP address and port specified in the forwarding rule. This is generally # useful when using Traffic Director to configure Envoy as a gateway or middle # proxy (in other words, not a sidecar proxy). The Envoy proxy listens for # inbound requests and handles requests when it receives them. The default is # false. # Corresponds to the JSON property `proxyBind` # @return [Boolean] attr_accessor :proxy_bind alias_method :proxy_bind?, :proxy_bind # Specifies the type of proxy header to append before sending data to the # backend, either NONE or PROXY_V1. The default is NONE. # Corresponds to the JSON property `proxyHeader` # @return [String] attr_accessor :proxy_header # [Output Only] URL of the region where the regional TCP proxy resides. This # field is not applicable to global TCP proxy. # Corresponds to the JSON property `region` # @return [String] attr_accessor :region # [Output Only] Server-defined URL for the resource. # Corresponds to the JSON property `selfLink` # @return [String] attr_accessor :self_link # URL to the BackendService resource. # Corresponds to the JSON property `service` # @return [String] attr_accessor :service def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @creation_timestamp = args[:creation_timestamp] if args.key?(:creation_timestamp) @description = args[:description] if args.key?(:description) @id = args[:id] if args.key?(:id) @kind = args[:kind] if args.key?(:kind) @name = args[:name] if args.key?(:name) @proxy_bind = args[:proxy_bind] if args.key?(:proxy_bind) @proxy_header = args[:proxy_header] if args.key?(:proxy_header) @region = args[:region] if args.key?(:region) @self_link = args[:self_link] if args.key?(:self_link) @service = args[:service] if args.key?(:service) end end # Contains a list of TargetTcpProxy resources. class TargetTcpProxyList include Google::Apis::Core::Hashable # [Output Only] Unique identifier for the resource; defined by the server. # Corresponds to the JSON property `id` # @return [String] attr_accessor :id # A list of TargetTcpProxy resources. # Corresponds to the JSON property `items` # @return [Array] attr_accessor :items # Type of resource. # Corresponds to the JSON property `kind` # @return [String] attr_accessor :kind # [Output Only] This token allows you to get the next page of results for list # requests. If the number of results is larger than maxResults, use the # nextPageToken as a value for the query parameter pageToken in the next list # request. Subsequent list requests will have their own nextPageToken to # continue paging through the results. # Corresponds to the JSON property `nextPageToken` # @return [String] attr_accessor :next_page_token # [Output Only] Server-defined URL for this resource. # Corresponds to the JSON property `selfLink` # @return [String] attr_accessor :self_link # [Output Only] Informational warning message. # Corresponds to the JSON property `warning` # @return [Google::Apis::ComputeAlpha::TargetTcpProxyList::Warning] attr_accessor :warning def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @id = args[:id] if args.key?(:id) @items = args[:items] if args.key?(:items) @kind = args[:kind] if args.key?(:kind) @next_page_token = args[:next_page_token] if args.key?(:next_page_token) @self_link = args[:self_link] if args.key?(:self_link) @warning = args[:warning] if args.key?(:warning) end # [Output Only] Informational warning message. class Warning include Google::Apis::Core::Hashable # [Output Only] A warning code, if applicable. For example, Compute Engine # returns NO_RESULTS_ON_PAGE if there are no results in the response. # Corresponds to the JSON property `code` # @return [String] attr_accessor :code # [Output Only] Metadata about this warning in key: value format. For example: " # data": [ ` "key": "scope", "value": "zones/us-east1-d" ` # Corresponds to the JSON property `data` # @return [Array] attr_accessor :data # [Output Only] A human-readable description of the warning code. # Corresponds to the JSON property `message` # @return [String] attr_accessor :message def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @code = args[:code] if args.key?(:code) @data = args[:data] if args.key?(:data) @message = args[:message] if args.key?(:message) end # class Datum include Google::Apis::Core::Hashable # [Output Only] A key that provides more detail on the warning being returned. # For example, for warnings where there are no results in a list request for a # particular zone, this key might be scope and the key value might be the zone # name. Other examples might be a key indicating a deprecated resource and a # suggested replacement, or a warning about invalid network settings (for # example, if an instance attempts to perform IP forwarding but is not enabled # for IP forwarding). # Corresponds to the JSON property `key` # @return [String] attr_accessor :key # [Output Only] A warning data value corresponding to the key. # 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 end end # Represents a Target VPN Gateway resource. The target VPN gateway resource # represents a Classic Cloud VPN gateway. For more information, read the the # Cloud VPN Overview. class TargetVpnGateway include Google::Apis::Core::Hashable # [Output Only] Creation timestamp in RFC3339 text format. # Corresponds to the JSON property `creationTimestamp` # @return [String] attr_accessor :creation_timestamp # An optional description of this resource. Provide this property when you # create the resource. # Corresponds to the JSON property `description` # @return [String] attr_accessor :description # [Output Only] A list of URLs to the ForwardingRule resources. ForwardingRules # are created using compute.forwardingRules.insert and associated with a VPN # gateway. # Corresponds to the JSON property `forwardingRules` # @return [Array] attr_accessor :forwarding_rules # [Output Only] The unique identifier for the resource. This identifier is # defined by the server. # Corresponds to the JSON property `id` # @return [Fixnum] attr_accessor :id # [Output Only] Type of resource. Always compute#targetVpnGateway for target VPN # gateways. # Corresponds to the JSON property `kind` # @return [String] attr_accessor :kind # A fingerprint for the labels being applied to this TargetVpnGateway, which is # essentially a hash of the labels set used for optimistic locking. The # fingerprint is initially generated by Compute Engine and changes after every # request to modify or update labels. You must always provide an up-to-date # fingerprint hash in order to update or change labels, otherwise the request # will fail with error 412 conditionNotMet. To see the latest fingerprint, make # a get() request to retrieve a TargetVpnGateway. # Corresponds to the JSON property `labelFingerprint` # NOTE: Values are automatically base64 encoded/decoded in the client library. # @return [String] attr_accessor :label_fingerprint # Labels for this resource. These can only be added or modified by the setLabels # method. Each label key/value pair must comply with RFC1035. Label values may # be empty. # Corresponds to the JSON property `labels` # @return [Hash] attr_accessor :labels # Name of the resource. Provided by the client when the resource is created. The # name must be 1-63 characters long, and comply with RFC1035. Specifically, the # name must be 1-63 characters long and match the regular expression `[a-z]([-a- # z0-9]*[a-z0-9])?` which means the first character must be a lowercase letter, # and all following characters must be a dash, lowercase letter, or digit, # except the last character, which cannot be a dash. # Corresponds to the JSON property `name` # @return [String] attr_accessor :name # URL of the network to which this VPN gateway is attached. Provided by the # client when the VPN gateway is created. # Corresponds to the JSON property `network` # @return [String] attr_accessor :network # [Output Only] URL of the region where the target VPN gateway resides. You must # specify this field as part of the HTTP request URL. It is not settable as a # field in the request body. # Corresponds to the JSON property `region` # @return [String] attr_accessor :region # [Output Only] Server-defined URL for the resource. # Corresponds to the JSON property `selfLink` # @return [String] attr_accessor :self_link # [Output Only] The status of the VPN gateway, which can be one of the following: # CREATING, READY, FAILED, or DELETING. # Corresponds to the JSON property `status` # @return [String] attr_accessor :status # [Output Only] A list of URLs to VpnTunnel resources. VpnTunnels are created # using the compute.vpntunnels.insert method and associated with a VPN gateway. # Corresponds to the JSON property `tunnels` # @return [Array] attr_accessor :tunnels def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @creation_timestamp = args[:creation_timestamp] if args.key?(:creation_timestamp) @description = args[:description] if args.key?(:description) @forwarding_rules = args[:forwarding_rules] if args.key?(:forwarding_rules) @id = args[:id] if args.key?(:id) @kind = args[:kind] if args.key?(:kind) @label_fingerprint = args[:label_fingerprint] if args.key?(:label_fingerprint) @labels = args[:labels] if args.key?(:labels) @name = args[:name] if args.key?(:name) @network = args[:network] if args.key?(:network) @region = args[:region] if args.key?(:region) @self_link = args[:self_link] if args.key?(:self_link) @status = args[:status] if args.key?(:status) @tunnels = args[:tunnels] if args.key?(:tunnels) end end # class TargetVpnGatewayAggregatedList include Google::Apis::Core::Hashable # [Output Only] Unique identifier for the resource; defined by the server. # Corresponds to the JSON property `id` # @return [String] attr_accessor :id # A list of TargetVpnGateway resources. # Corresponds to the JSON property `items` # @return [Hash] attr_accessor :items # [Output Only] Type of resource. Always compute#targetVpnGateway for target VPN # gateways. # Corresponds to the JSON property `kind` # @return [String] attr_accessor :kind # [Output Only] This token allows you to get the next page of results for list # requests. If the number of results is larger than maxResults, use the # nextPageToken as a value for the query parameter pageToken in the next list # request. Subsequent list requests will have their own nextPageToken to # continue paging through the results. # Corresponds to the JSON property `nextPageToken` # @return [String] attr_accessor :next_page_token # [Output Only] Server-defined URL for this resource. # Corresponds to the JSON property `selfLink` # @return [String] attr_accessor :self_link # [Output Only] Unreachable resources. # Corresponds to the JSON property `unreachables` # @return [Array] attr_accessor :unreachables # [Output Only] Informational warning message. # Corresponds to the JSON property `warning` # @return [Google::Apis::ComputeAlpha::TargetVpnGatewayAggregatedList::Warning] attr_accessor :warning def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @id = args[:id] if args.key?(:id) @items = args[:items] if args.key?(:items) @kind = args[:kind] if args.key?(:kind) @next_page_token = args[:next_page_token] if args.key?(:next_page_token) @self_link = args[:self_link] if args.key?(:self_link) @unreachables = args[:unreachables] if args.key?(:unreachables) @warning = args[:warning] if args.key?(:warning) end # [Output Only] Informational warning message. class Warning include Google::Apis::Core::Hashable # [Output Only] A warning code, if applicable. For example, Compute Engine # returns NO_RESULTS_ON_PAGE if there are no results in the response. # Corresponds to the JSON property `code` # @return [String] attr_accessor :code # [Output Only] Metadata about this warning in key: value format. For example: " # data": [ ` "key": "scope", "value": "zones/us-east1-d" ` # Corresponds to the JSON property `data` # @return [Array] attr_accessor :data # [Output Only] A human-readable description of the warning code. # Corresponds to the JSON property `message` # @return [String] attr_accessor :message def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @code = args[:code] if args.key?(:code) @data = args[:data] if args.key?(:data) @message = args[:message] if args.key?(:message) end # class Datum include Google::Apis::Core::Hashable # [Output Only] A key that provides more detail on the warning being returned. # For example, for warnings where there are no results in a list request for a # particular zone, this key might be scope and the key value might be the zone # name. Other examples might be a key indicating a deprecated resource and a # suggested replacement, or a warning about invalid network settings (for # example, if an instance attempts to perform IP forwarding but is not enabled # for IP forwarding). # Corresponds to the JSON property `key` # @return [String] attr_accessor :key # [Output Only] A warning data value corresponding to the key. # 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 end end # Contains a list of TargetVpnGateway resources. class TargetVpnGatewayList include Google::Apis::Core::Hashable # [Output Only] Unique identifier for the resource; defined by the server. # Corresponds to the JSON property `id` # @return [String] attr_accessor :id # A list of TargetVpnGateway resources. # Corresponds to the JSON property `items` # @return [Array] attr_accessor :items # [Output Only] Type of resource. Always compute#targetVpnGateway for target VPN # gateways. # Corresponds to the JSON property `kind` # @return [String] attr_accessor :kind # [Output Only] This token allows you to get the next page of results for list # requests. If the number of results is larger than maxResults, use the # nextPageToken as a value for the query parameter pageToken in the next list # request. Subsequent list requests will have their own nextPageToken to # continue paging through the results. # Corresponds to the JSON property `nextPageToken` # @return [String] attr_accessor :next_page_token # [Output Only] Server-defined URL for this resource. # Corresponds to the JSON property `selfLink` # @return [String] attr_accessor :self_link # [Output Only] Informational warning message. # Corresponds to the JSON property `warning` # @return [Google::Apis::ComputeAlpha::TargetVpnGatewayList::Warning] attr_accessor :warning def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @id = args[:id] if args.key?(:id) @items = args[:items] if args.key?(:items) @kind = args[:kind] if args.key?(:kind) @next_page_token = args[:next_page_token] if args.key?(:next_page_token) @self_link = args[:self_link] if args.key?(:self_link) @warning = args[:warning] if args.key?(:warning) end # [Output Only] Informational warning message. class Warning include Google::Apis::Core::Hashable # [Output Only] A warning code, if applicable. For example, Compute Engine # returns NO_RESULTS_ON_PAGE if there are no results in the response. # Corresponds to the JSON property `code` # @return [String] attr_accessor :code # [Output Only] Metadata about this warning in key: value format. For example: " # data": [ ` "key": "scope", "value": "zones/us-east1-d" ` # Corresponds to the JSON property `data` # @return [Array] attr_accessor :data # [Output Only] A human-readable description of the warning code. # Corresponds to the JSON property `message` # @return [String] attr_accessor :message def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @code = args[:code] if args.key?(:code) @data = args[:data] if args.key?(:data) @message = args[:message] if args.key?(:message) end # class Datum include Google::Apis::Core::Hashable # [Output Only] A key that provides more detail on the warning being returned. # For example, for warnings where there are no results in a list request for a # particular zone, this key might be scope and the key value might be the zone # name. Other examples might be a key indicating a deprecated resource and a # suggested replacement, or a warning about invalid network settings (for # example, if an instance attempts to perform IP forwarding but is not enabled # for IP forwarding). # Corresponds to the JSON property `key` # @return [String] attr_accessor :key # [Output Only] A warning data value corresponding to the key. # 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 end end # class TargetVpnGatewaysScopedList include Google::Apis::Core::Hashable # [Output Only] A list of target VPN gateways contained in this scope. # Corresponds to the JSON property `targetVpnGateways` # @return [Array] attr_accessor :target_vpn_gateways # [Output Only] Informational warning which replaces the list of addresses when # the list is empty. # Corresponds to the JSON property `warning` # @return [Google::Apis::ComputeAlpha::TargetVpnGatewaysScopedList::Warning] attr_accessor :warning def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @target_vpn_gateways = args[:target_vpn_gateways] if args.key?(:target_vpn_gateways) @warning = args[:warning] if args.key?(:warning) end # [Output Only] Informational warning which replaces the list of addresses when # the list is empty. class Warning include Google::Apis::Core::Hashable # [Output Only] A warning code, if applicable. For example, Compute Engine # returns NO_RESULTS_ON_PAGE if there are no results in the response. # Corresponds to the JSON property `code` # @return [String] attr_accessor :code # [Output Only] Metadata about this warning in key: value format. For example: " # data": [ ` "key": "scope", "value": "zones/us-east1-d" ` # Corresponds to the JSON property `data` # @return [Array] attr_accessor :data # [Output Only] A human-readable description of the warning code. # Corresponds to the JSON property `message` # @return [String] attr_accessor :message def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @code = args[:code] if args.key?(:code) @data = args[:data] if args.key?(:data) @message = args[:message] if args.key?(:message) end # class Datum include Google::Apis::Core::Hashable # [Output Only] A key that provides more detail on the warning being returned. # For example, for warnings where there are no results in a list request for a # particular zone, this key might be scope and the key value might be the zone # name. Other examples might be a key indicating a deprecated resource and a # suggested replacement, or a warning about invalid network settings (for # example, if an instance attempts to perform IP forwarding but is not enabled # for IP forwarding). # Corresponds to the JSON property `key` # @return [String] attr_accessor :key # [Output Only] A warning data value corresponding to the key. # 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 end end # class TestFailure include Google::Apis::Core::Hashable # The actual output URL evaluated by a load balancer containing the scheme, host, # path and query parameters. # Corresponds to the JSON property `actualOutputUrl` # @return [String] attr_accessor :actual_output_url # Actual HTTP status code for rule with `urlRedirect` calculated by load # balancer # Corresponds to the JSON property `actualRedirectResponseCode` # @return [Fixnum] attr_accessor :actual_redirect_response_code # BackendService or BackendBucket returned by load balancer. # Corresponds to the JSON property `actualService` # @return [String] attr_accessor :actual_service # The expected output URL evaluated by a load balancer containing the scheme, # host, path and query parameters. # Corresponds to the JSON property `expectedOutputUrl` # @return [String] attr_accessor :expected_output_url # Expected HTTP status code for rule with `urlRedirect` calculated by load # balancer # Corresponds to the JSON property `expectedRedirectResponseCode` # @return [Fixnum] attr_accessor :expected_redirect_response_code # Expected BackendService or BackendBucket resource the given URL should be # mapped to. # Corresponds to the JSON property `expectedService` # @return [String] attr_accessor :expected_service # HTTP headers of the request. # Corresponds to the JSON property `headers` # @return [Array] attr_accessor :headers # Host portion of the URL. # Corresponds to the JSON property `host` # @return [String] attr_accessor :host # Path portion including query parameters in the URL. # Corresponds to the JSON property `path` # @return [String] attr_accessor :path def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @actual_output_url = args[:actual_output_url] if args.key?(:actual_output_url) @actual_redirect_response_code = args[:actual_redirect_response_code] if args.key?(:actual_redirect_response_code) @actual_service = args[:actual_service] if args.key?(:actual_service) @expected_output_url = args[:expected_output_url] if args.key?(:expected_output_url) @expected_redirect_response_code = args[:expected_redirect_response_code] if args.key?(:expected_redirect_response_code) @expected_service = args[:expected_service] if args.key?(:expected_service) @headers = args[:headers] if args.key?(:headers) @host = args[:host] if args.key?(:host) @path = args[:path] if args.key?(:path) end end # class TestPermissionsRequest include Google::Apis::Core::Hashable # The set of permissions to check for the 'resource'. Permissions with wildcards # (such as '*' or 'storage.*') are not allowed. # Corresponds to the JSON property `permissions` # @return [Array] attr_accessor :permissions def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @permissions = args[:permissions] if args.key?(:permissions) end end # class TestPermissionsResponse include Google::Apis::Core::Hashable # A subset of `TestPermissionsRequest.permissions` that the caller is allowed. # Corresponds to the JSON property `permissions` # @return [Array] attr_accessor :permissions def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @permissions = args[:permissions] if args.key?(:permissions) end end # [Deprecated] Defines the mechanism to obtain the client or server certificate. # Defines the mechanism to obtain the client or server certificate. class TlsCertificateContext include Google::Apis::Core::Hashable # [Deprecated] The paths to the mounted TLS Certificates and private key. The # paths to the mounted TLS Certificates and private key. # Corresponds to the JSON property `certificatePaths` # @return [Google::Apis::ComputeAlpha::TlsCertificatePaths] attr_accessor :certificate_paths # Defines how TLS certificates are obtained. # Corresponds to the JSON property `certificateSource` # @return [String] attr_accessor :certificate_source # [Deprecated] The configuration to access the SDS server. The configuration to # access the SDS server. # Corresponds to the JSON property `sdsConfig` # @return [Google::Apis::ComputeAlpha::SdsConfig] attr_accessor :sds_config def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @certificate_paths = args[:certificate_paths] if args.key?(:certificate_paths) @certificate_source = args[:certificate_source] if args.key?(:certificate_source) @sds_config = args[:sds_config] if args.key?(:sds_config) end end # [Deprecated] The paths to the mounted TLS Certificates and private key. The # paths to the mounted TLS Certificates and private key. class TlsCertificatePaths include Google::Apis::Core::Hashable # The path to the file holding the client or server TLS certificate to use. # Corresponds to the JSON property `certificatePath` # @return [String] attr_accessor :certificate_path # The path to the file holding the client or server private key. # Corresponds to the JSON property `privateKeyPath` # @return [String] attr_accessor :private_key_path def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @certificate_path = args[:certificate_path] if args.key?(:certificate_path) @private_key_path = args[:private_key_path] if args.key?(:private_key_path) end end # [Deprecated] The TLS settings for the client or server. The TLS settings for # the client or server. class TlsContext include Google::Apis::Core::Hashable # [Deprecated] Defines the mechanism to obtain the client or server certificate. # Defines the mechanism to obtain the client or server certificate. # Corresponds to the JSON property `certificateContext` # @return [Google::Apis::ComputeAlpha::TlsCertificateContext] attr_accessor :certificate_context # [Deprecated] Defines the mechanism to obtain the Certificate Authority # certificate to validate the client/server certificate. validate the client/ # server certificate. # Corresponds to the JSON property `validationContext` # @return [Google::Apis::ComputeAlpha::TlsValidationContext] attr_accessor :validation_context def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @certificate_context = args[:certificate_context] if args.key?(:certificate_context) @validation_context = args[:validation_context] if args.key?(:validation_context) end end # [Deprecated] Defines the mechanism to obtain the Certificate Authority # certificate to validate the client/server certificate. validate the client/ # server certificate. class TlsValidationContext include Google::Apis::Core::Hashable # The path to the file holding the CA certificate to validate the client or # server certificate. # Corresponds to the JSON property `certificatePath` # @return [String] attr_accessor :certificate_path # [Deprecated] The configuration to access the SDS server. The configuration to # access the SDS server. # Corresponds to the JSON property `sdsConfig` # @return [Google::Apis::ComputeAlpha::SdsConfig] attr_accessor :sds_config # Defines how TLS certificates are obtained. # Corresponds to the JSON property `validationSource` # @return [String] attr_accessor :validation_source def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @certificate_path = args[:certificate_path] if args.key?(:certificate_path) @sds_config = args[:sds_config] if args.key?(:sds_config) @validation_source = args[:validation_source] if args.key?(:validation_source) end end # class UdpHealthCheck include Google::Apis::Core::Hashable # The UDP port number for the health check request. Valid values are 1 through # 65535. # Corresponds to the JSON property `port` # @return [Fixnum] attr_accessor :port # Port name as defined in InstanceGroup#NamedPort#name. If both port and # port_name are defined, port takes precedence. # Corresponds to the JSON property `portName` # @return [String] attr_accessor :port_name # Raw data of request to send in payload of UDP packet. It is an error if this # is empty. The request data can only be ASCII. # Corresponds to the JSON property `request` # @return [String] attr_accessor :request # The bytes to match against the beginning of the response data. It is an error # if this is empty. The response data can only be ASCII. # Corresponds to the JSON property `response` # @return [String] attr_accessor :response def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @port = args[:port] if args.key?(:port) @port_name = args[:port_name] if args.key?(:port_name) @request = args[:request] if args.key?(:request) @response = args[:response] if args.key?(:response) end end # class Uint128 include Google::Apis::Core::Hashable # # Corresponds to the JSON property `high` # @return [Fixnum] attr_accessor :high # # Corresponds to the JSON property `low` # @return [Fixnum] attr_accessor :low def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @high = args[:high] if args.key?(:high) @low = args[:low] if args.key?(:low) end end # Upcoming Maintenance notification information. TODO(b/196881882) Deprecate # this proto once it's fully migrated to be under proto ResourceStatus. # UpcomingMaintenance. class UpcomingMaintenance include Google::Apis::Core::Hashable # Indicates if the maintenance can be customer triggered. From more detail, see # go/sf-ctm-design. # Corresponds to the JSON property `canReschedule` # @return [Boolean] attr_accessor :can_reschedule alias_method :can_reschedule?, :can_reschedule # [Output Only] The date when the maintenance will take place. This value is in # RFC3339 text format. DEPRECATED: Use start_time_window instead. # Corresponds to the JSON property `date` # @return [String] attr_accessor :date # Represents a window of time using two timestamps: `earliest` and `latest`. # This timestamp values are in RFC3339 text format. # Corresponds to the JSON property `startTimeWindow` # @return [Google::Apis::ComputeAlpha::UpcomingMaintenanceTimeWindow] attr_accessor :start_time_window # [Output Only] The time when the maintenance will take place. This value is in # RFC3339 text format. DEPRECATED: Use start_time_window instead. # Corresponds to the JSON property `time` # @return [String] attr_accessor :time # Defines the type of maintenance. # 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) @can_reschedule = args[:can_reschedule] if args.key?(:can_reschedule) @date = args[:date] if args.key?(:date) @start_time_window = args[:start_time_window] if args.key?(:start_time_window) @time = args[:time] if args.key?(:time) @type = args[:type] if args.key?(:type) end end # Represents a window of time using two timestamps: `earliest` and `latest`. # This timestamp values are in RFC3339 text format. class UpcomingMaintenanceTimeWindow include Google::Apis::Core::Hashable # # Corresponds to the JSON property `earliest` # @return [String] attr_accessor :earliest # # Corresponds to the JSON property `latest` # @return [String] attr_accessor :latest def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @earliest = args[:earliest] if args.key?(:earliest) @latest = args[:latest] if args.key?(:latest) end end # Represents a URL Map resource. Compute Engine has two URL Map resources: * [ # Global](/compute/docs/reference/rest/alpha/urlMaps) * [Regional](/compute/docs/ # reference/rest/alpha/regionUrlMaps) A URL map resource is a component of # certain types of cloud load balancers and Traffic Director: * urlMaps are used # by external HTTP(S) load balancers and Traffic Director. * regionUrlMaps are # used by internal HTTP(S) load balancers. For a list of supported URL map # features by the load balancer type, see the Load balancing features: Routing # and traffic management table. For a list of supported URL map features for # Traffic Director, see the Traffic Director features: Routing and traffic # management table. This resource defines mappings from hostnames and URL paths # to either a backend service or a backend bucket. To use the global urlMaps # resource, the backend service must have a loadBalancingScheme of either # EXTERNAL or INTERNAL_SELF_MANAGED. To use the regionUrlMaps resource, the # backend service must have a loadBalancingScheme of INTERNAL_MANAGED. For more # information, read URL Map Concepts. class UrlMap include Google::Apis::Core::Hashable # [Output Only] Creation timestamp in RFC3339 text format. # Corresponds to the JSON property `creationTimestamp` # @return [String] attr_accessor :creation_timestamp # defaultRouteAction takes effect when none of the hostRules match. The load # balancer performs advanced routing actions, such as URL rewrites and header # transformations, before forwarding the request to the selected backend. If # defaultRouteAction specifies any weightedBackendServices, defaultService must # not be set. Conversely if defaultService is set, defaultRouteAction cannot # contain any weightedBackendServices. Only one of defaultRouteAction or # defaultUrlRedirect must be set. UrlMaps for external HTTP(S) load balancers # support only the urlRewrite action within defaultRouteAction. # defaultRouteAction has no effect when the URL map is bound to a target gRPC # proxy that has the validateForProxyless field set to true. # Corresponds to the JSON property `defaultRouteAction` # @return [Google::Apis::ComputeAlpha::HttpRouteAction] attr_accessor :default_route_action # The full or partial URL of the defaultService resource to which traffic is # directed if none of the hostRules match. If defaultRouteAction is also # specified, advanced routing actions, such as URL rewrites, take effect before # sending the request to the backend. However, if defaultService is specified, # defaultRouteAction cannot contain any weightedBackendServices. Conversely, if # routeAction specifies any weightedBackendServices, service must not be # specified. Only one of defaultService, defaultUrlRedirect , or # defaultRouteAction.weightedBackendService must be set. defaultService has no # effect when the URL map is bound to a target gRPC proxy that has the # validateForProxyless field set to true. # Corresponds to the JSON property `defaultService` # @return [String] attr_accessor :default_service # Specifies settings for an HTTP redirect. # Corresponds to the JSON property `defaultUrlRedirect` # @return [Google::Apis::ComputeAlpha::HttpRedirectAction] attr_accessor :default_url_redirect # An optional description of this resource. Provide this property when you # create the resource. # Corresponds to the JSON property `description` # @return [String] attr_accessor :description # Fingerprint of this resource. A hash of the contents stored in this object. # This field is used in optimistic locking. This field is ignored when inserting # a UrlMap. An up-to-date fingerprint must be provided in order to update the # UrlMap, otherwise the request will fail with error 412 conditionNotMet. To see # the latest fingerprint, make a get() request to retrieve a UrlMap. # Corresponds to the JSON property `fingerprint` # NOTE: Values are automatically base64 encoded/decoded in the client library. # @return [String] attr_accessor :fingerprint # The request and response header transformations that take effect before the # request is passed along to the selected backendService. # Corresponds to the JSON property `headerAction` # @return [Google::Apis::ComputeAlpha::HttpHeaderAction] attr_accessor :header_action # The list of host rules to use against the URL. # Corresponds to the JSON property `hostRules` # @return [Array] attr_accessor :host_rules # [Output Only] The unique identifier for the resource. This identifier is # defined by the server. # Corresponds to the JSON property `id` # @return [Fixnum] attr_accessor :id # [Output Only] Type of the resource. Always compute#urlMaps for url maps. # Corresponds to the JSON property `kind` # @return [String] attr_accessor :kind # Name of the resource. Provided by the client when the resource is created. The # name must be 1-63 characters long, and comply with RFC1035. Specifically, the # name must be 1-63 characters long and match the regular expression `[a-z]([-a- # z0-9]*[a-z0-9])?` which means the first character must be a lowercase letter, # and all following characters must be a dash, lowercase letter, or digit, # except the last character, which cannot be a dash. # Corresponds to the JSON property `name` # @return [String] attr_accessor :name # The list of named PathMatchers to use against the URL. # Corresponds to the JSON property `pathMatchers` # @return [Array] attr_accessor :path_matchers # [Output Only] URL of the region where the regional URL map resides. This field # is not applicable to global URL maps. You must specify this field as part of # the HTTP request URL. It is not settable as a field in the request body. # Corresponds to the JSON property `region` # @return [String] attr_accessor :region # [Output Only] Server-defined URL for the resource. # Corresponds to the JSON property `selfLink` # @return [String] attr_accessor :self_link # The list of expected URL mapping tests. Request to update the UrlMap succeeds # only if all test cases pass. You can specify a maximum of 100 tests per UrlMap. # Not supported when the URL map is bound to a target gRPC proxy that has # validateForProxyless field set to true. # Corresponds to the JSON property `tests` # @return [Array] attr_accessor :tests def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @creation_timestamp = args[:creation_timestamp] if args.key?(:creation_timestamp) @default_route_action = args[:default_route_action] if args.key?(:default_route_action) @default_service = args[:default_service] if args.key?(:default_service) @default_url_redirect = args[:default_url_redirect] if args.key?(:default_url_redirect) @description = args[:description] if args.key?(:description) @fingerprint = args[:fingerprint] if args.key?(:fingerprint) @header_action = args[:header_action] if args.key?(:header_action) @host_rules = args[:host_rules] if args.key?(:host_rules) @id = args[:id] if args.key?(:id) @kind = args[:kind] if args.key?(:kind) @name = args[:name] if args.key?(:name) @path_matchers = args[:path_matchers] if args.key?(:path_matchers) @region = args[:region] if args.key?(:region) @self_link = args[:self_link] if args.key?(:self_link) @tests = args[:tests] if args.key?(:tests) end end # Contains a list of UrlMap resources. class UrlMapList include Google::Apis::Core::Hashable # [Output Only] Unique identifier for the resource; defined by the server. # Corresponds to the JSON property `id` # @return [String] attr_accessor :id # A list of UrlMap resources. # Corresponds to the JSON property `items` # @return [Array] attr_accessor :items # Type of resource. # Corresponds to the JSON property `kind` # @return [String] attr_accessor :kind # [Output Only] This token allows you to get the next page of results for list # requests. If the number of results is larger than maxResults, use the # nextPageToken as a value for the query parameter pageToken in the next list # request. Subsequent list requests will have their own nextPageToken to # continue paging through the results. # Corresponds to the JSON property `nextPageToken` # @return [String] attr_accessor :next_page_token # [Output Only] Server-defined URL for this resource. # Corresponds to the JSON property `selfLink` # @return [String] attr_accessor :self_link # [Output Only] Informational warning message. # Corresponds to the JSON property `warning` # @return [Google::Apis::ComputeAlpha::UrlMapList::Warning] attr_accessor :warning def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @id = args[:id] if args.key?(:id) @items = args[:items] if args.key?(:items) @kind = args[:kind] if args.key?(:kind) @next_page_token = args[:next_page_token] if args.key?(:next_page_token) @self_link = args[:self_link] if args.key?(:self_link) @warning = args[:warning] if args.key?(:warning) end # [Output Only] Informational warning message. class Warning include Google::Apis::Core::Hashable # [Output Only] A warning code, if applicable. For example, Compute Engine # returns NO_RESULTS_ON_PAGE if there are no results in the response. # Corresponds to the JSON property `code` # @return [String] attr_accessor :code # [Output Only] Metadata about this warning in key: value format. For example: " # data": [ ` "key": "scope", "value": "zones/us-east1-d" ` # Corresponds to the JSON property `data` # @return [Array] attr_accessor :data # [Output Only] A human-readable description of the warning code. # Corresponds to the JSON property `message` # @return [String] attr_accessor :message def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @code = args[:code] if args.key?(:code) @data = args[:data] if args.key?(:data) @message = args[:message] if args.key?(:message) end # class Datum include Google::Apis::Core::Hashable # [Output Only] A key that provides more detail on the warning being returned. # For example, for warnings where there are no results in a list request for a # particular zone, this key might be scope and the key value might be the zone # name. Other examples might be a key indicating a deprecated resource and a # suggested replacement, or a warning about invalid network settings (for # example, if an instance attempts to perform IP forwarding but is not enabled # for IP forwarding). # Corresponds to the JSON property `key` # @return [String] attr_accessor :key # [Output Only] A warning data value corresponding to the key. # 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 end end # class UrlMapReference include Google::Apis::Core::Hashable # # Corresponds to the JSON property `urlMap` # @return [String] attr_accessor :url_map def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @url_map = args[:url_map] if args.key?(:url_map) end end # Message for the expected URL mappings. class UrlMapTest include Google::Apis::Core::Hashable # The weight to use for the supplied host and path when using advanced routing # rules that involve traffic splitting. # Corresponds to the JSON property `backendServiceWeight` # @return [Fixnum] attr_accessor :backend_service_weight # Description of this test case. # Corresponds to the JSON property `description` # @return [String] attr_accessor :description # The expected output URL evaluated by the load balancer containing the scheme, # host, path and query parameters. For rules that forward requests to backends, # the test passes only when expectedOutputUrl matches the request forwarded by # the load balancer to backends. For rules with urlRewrite, the test verifies # that the forwarded request matches hostRewrite and pathPrefixRewrite in the # urlRewrite action. When service is specified, expectedOutputUrl`s scheme is # ignored. For rules with urlRedirect, the test passes only if expectedOutputUrl # matches the URL in the load balancer's redirect response. If urlRedirect # specifies https_redirect, the test passes only if the scheme in # expectedOutputUrl is also set to HTTPS. If urlRedirect specifies strip_query, # the test passes only if expectedOutputUrl does not contain any query # parameters. expectedOutputUrl is optional when service is specified. # Corresponds to the JSON property `expectedOutputUrl` # @return [String] attr_accessor :expected_output_url # For rules with urlRedirect, the test passes only if # expectedRedirectResponseCode matches the HTTP status code in load balancer's # redirect response. expectedRedirectResponseCode cannot be set when service is # set. # Corresponds to the JSON property `expectedRedirectResponseCode` # @return [Fixnum] attr_accessor :expected_redirect_response_code # The expected URL that should be redirected to for the host and path being # tested. [Deprecated] This field is deprecated. Use expected_output_url instead. # Corresponds to the JSON property `expectedUrlRedirect` # @return [String] attr_accessor :expected_url_redirect # HTTP headers for this request. If headers contains a host header, then host # must also match the header value. # Corresponds to the JSON property `headers` # @return [Array] attr_accessor :headers # Host portion of the URL. If headers contains a host header, then host must # also match the header value. # Corresponds to the JSON property `host` # @return [String] attr_accessor :host # Path portion of the URL. # Corresponds to the JSON property `path` # @return [String] attr_accessor :path # Expected BackendService or BackendBucket resource the given URL should be # mapped to. The service field cannot be set if expectedRedirectResponseCode is # set. # Corresponds to the JSON property `service` # @return [String] attr_accessor :service def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @backend_service_weight = args[:backend_service_weight] if args.key?(:backend_service_weight) @description = args[:description] if args.key?(:description) @expected_output_url = args[:expected_output_url] if args.key?(:expected_output_url) @expected_redirect_response_code = args[:expected_redirect_response_code] if args.key?(:expected_redirect_response_code) @expected_url_redirect = args[:expected_url_redirect] if args.key?(:expected_url_redirect) @headers = args[:headers] if args.key?(:headers) @host = args[:host] if args.key?(:host) @path = args[:path] if args.key?(:path) @service = args[:service] if args.key?(:service) end end # HTTP headers used in UrlMapTests. class UrlMapTestHeader include Google::Apis::Core::Hashable # Header name. # Corresponds to the JSON property `name` # @return [String] attr_accessor :name # Header 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) @name = args[:name] if args.key?(:name) @value = args[:value] if args.key?(:value) end end # Message representing the validation result for a UrlMap. class UrlMapValidationResult include Google::Apis::Core::Hashable # # Corresponds to the JSON property `loadErrors` # @return [Array] attr_accessor :load_errors # Whether the given UrlMap can be successfully loaded. If false, 'loadErrors' # indicates the reasons. # Corresponds to the JSON property `loadSucceeded` # @return [Boolean] attr_accessor :load_succeeded alias_method :load_succeeded?, :load_succeeded # # Corresponds to the JSON property `testFailures` # @return [Array] attr_accessor :test_failures # If successfully loaded, this field indicates whether the test passed. If false, # 'testFailures's indicate the reason of failure. # Corresponds to the JSON property `testPassed` # @return [Boolean] attr_accessor :test_passed alias_method :test_passed?, :test_passed def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @load_errors = args[:load_errors] if args.key?(:load_errors) @load_succeeded = args[:load_succeeded] if args.key?(:load_succeeded) @test_failures = args[:test_failures] if args.key?(:test_failures) @test_passed = args[:test_passed] if args.key?(:test_passed) end end # class UrlMapsAggregatedList include Google::Apis::Core::Hashable # [Output Only] Unique identifier for the resource; defined by the server. # Corresponds to the JSON property `id` # @return [String] attr_accessor :id # A list of UrlMapsScopedList resources. # Corresponds to the JSON property `items` # @return [Hash] attr_accessor :items # Type of resource. # Corresponds to the JSON property `kind` # @return [String] attr_accessor :kind # [Output Only] This token allows you to get the next page of results for list # requests. If the number of results is larger than maxResults, use the # nextPageToken as a value for the query parameter pageToken in the next list # request. Subsequent list requests will have their own nextPageToken to # continue paging through the results. # Corresponds to the JSON property `nextPageToken` # @return [String] attr_accessor :next_page_token # [Output Only] Server-defined URL for this resource. # Corresponds to the JSON property `selfLink` # @return [String] attr_accessor :self_link # [Output Only] Unreachable resources. # Corresponds to the JSON property `unreachables` # @return [Array] attr_accessor :unreachables # [Output Only] Informational warning message. # Corresponds to the JSON property `warning` # @return [Google::Apis::ComputeAlpha::UrlMapsAggregatedList::Warning] attr_accessor :warning def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @id = args[:id] if args.key?(:id) @items = args[:items] if args.key?(:items) @kind = args[:kind] if args.key?(:kind) @next_page_token = args[:next_page_token] if args.key?(:next_page_token) @self_link = args[:self_link] if args.key?(:self_link) @unreachables = args[:unreachables] if args.key?(:unreachables) @warning = args[:warning] if args.key?(:warning) end # [Output Only] Informational warning message. class Warning include Google::Apis::Core::Hashable # [Output Only] A warning code, if applicable. For example, Compute Engine # returns NO_RESULTS_ON_PAGE if there are no results in the response. # Corresponds to the JSON property `code` # @return [String] attr_accessor :code # [Output Only] Metadata about this warning in key: value format. For example: " # data": [ ` "key": "scope", "value": "zones/us-east1-d" ` # Corresponds to the JSON property `data` # @return [Array] attr_accessor :data # [Output Only] A human-readable description of the warning code. # Corresponds to the JSON property `message` # @return [String] attr_accessor :message def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @code = args[:code] if args.key?(:code) @data = args[:data] if args.key?(:data) @message = args[:message] if args.key?(:message) end # class Datum include Google::Apis::Core::Hashable # [Output Only] A key that provides more detail on the warning being returned. # For example, for warnings where there are no results in a list request for a # particular zone, this key might be scope and the key value might be the zone # name. Other examples might be a key indicating a deprecated resource and a # suggested replacement, or a warning about invalid network settings (for # example, if an instance attempts to perform IP forwarding but is not enabled # for IP forwarding). # Corresponds to the JSON property `key` # @return [String] attr_accessor :key # [Output Only] A warning data value corresponding to the key. # 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 end end # class UrlMapsScopedList include Google::Apis::Core::Hashable # A list of UrlMaps contained in this scope. # Corresponds to the JSON property `urlMaps` # @return [Array] attr_accessor :url_maps # Informational warning which replaces the list of backend services when the # list is empty. # Corresponds to the JSON property `warning` # @return [Google::Apis::ComputeAlpha::UrlMapsScopedList::Warning] attr_accessor :warning def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @url_maps = args[:url_maps] if args.key?(:url_maps) @warning = args[:warning] if args.key?(:warning) end # Informational warning which replaces the list of backend services when the # list is empty. class Warning include Google::Apis::Core::Hashable # [Output Only] A warning code, if applicable. For example, Compute Engine # returns NO_RESULTS_ON_PAGE if there are no results in the response. # Corresponds to the JSON property `code` # @return [String] attr_accessor :code # [Output Only] Metadata about this warning in key: value format. For example: " # data": [ ` "key": "scope", "value": "zones/us-east1-d" ` # Corresponds to the JSON property `data` # @return [Array] attr_accessor :data # [Output Only] A human-readable description of the warning code. # Corresponds to the JSON property `message` # @return [String] attr_accessor :message def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @code = args[:code] if args.key?(:code) @data = args[:data] if args.key?(:data) @message = args[:message] if args.key?(:message) end # class Datum include Google::Apis::Core::Hashable # [Output Only] A key that provides more detail on the warning being returned. # For example, for warnings where there are no results in a list request for a # particular zone, this key might be scope and the key value might be the zone # name. Other examples might be a key indicating a deprecated resource and a # suggested replacement, or a warning about invalid network settings (for # example, if an instance attempts to perform IP forwarding but is not enabled # for IP forwarding). # Corresponds to the JSON property `key` # @return [String] attr_accessor :key # [Output Only] A warning data value corresponding to the key. # 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 end end # class UrlMapsValidateRequest include Google::Apis::Core::Hashable # Specifies the load balancer type(s) this validation request is for. Use # EXTERNAL_MANAGED for HTTP/HTTPS External Global Load Balancer with Advanced # Traffic Management. Use EXTERNAL for Classic HTTP/HTTPS External Global Load # Balancer. Other load balancer types are not supported. For more information, # refer to Choosing a load balancer. If unspecified, the load balancing scheme # will be inferred from the backend service resources this URL map references. # If that can not be inferred (for example, this URL map only references backend # buckets, or this Url map is for rewrites and redirects only and doesn't # reference any backends), EXTERNAL will be used as the default type. If # specified, the scheme(s) must not conflict with the load balancing scheme of # the backend service resources this Url map references. # Corresponds to the JSON property `loadBalancingSchemes` # @return [Array] attr_accessor :load_balancing_schemes # Represents a URL Map resource. Compute Engine has two URL Map resources: * [ # Global](/compute/docs/reference/rest/alpha/urlMaps) * [Regional](/compute/docs/ # reference/rest/alpha/regionUrlMaps) A URL map resource is a component of # certain types of cloud load balancers and Traffic Director: * urlMaps are used # by external HTTP(S) load balancers and Traffic Director. * regionUrlMaps are # used by internal HTTP(S) load balancers. For a list of supported URL map # features by the load balancer type, see the Load balancing features: Routing # and traffic management table. For a list of supported URL map features for # Traffic Director, see the Traffic Director features: Routing and traffic # management table. This resource defines mappings from hostnames and URL paths # to either a backend service or a backend bucket. To use the global urlMaps # resource, the backend service must have a loadBalancingScheme of either # EXTERNAL or INTERNAL_SELF_MANAGED. To use the regionUrlMaps resource, the # backend service must have a loadBalancingScheme of INTERNAL_MANAGED. For more # information, read URL Map Concepts. # Corresponds to the JSON property `resource` # @return [Google::Apis::ComputeAlpha::UrlMap] attr_accessor :resource def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @load_balancing_schemes = args[:load_balancing_schemes] if args.key?(:load_balancing_schemes) @resource = args[:resource] if args.key?(:resource) end end # class UrlMapsValidateResponse include Google::Apis::Core::Hashable # Message representing the validation result for a UrlMap. # Corresponds to the JSON property `result` # @return [Google::Apis::ComputeAlpha::UrlMapValidationResult] attr_accessor :result def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @result = args[:result] if args.key?(:result) end end # The spec for modifying the path before sending the request to the matched # backend service. class UrlRewrite include Google::Apis::Core::Hashable # Before forwarding the request to the selected service, the request's host # header is replaced with contents of hostRewrite. The value must be from 1 to # 255 characters. # Corresponds to the JSON property `hostRewrite` # @return [String] attr_accessor :host_rewrite # Before forwarding the request to the selected backend service, the matching # portion of the request's path is replaced by pathPrefixRewrite. The value must # be from 1 to 1024 characters. # Corresponds to the JSON property `pathPrefixRewrite` # @return [String] attr_accessor :path_prefix_rewrite def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @host_rewrite = args[:host_rewrite] if args.key?(:host_rewrite) @path_prefix_rewrite = args[:path_prefix_rewrite] if args.key?(:path_prefix_rewrite) end end # Subnetwork which the current user has compute.subnetworks.use permission on. class UsableSubnetwork include Google::Apis::Core::Hashable # The range of internal addresses that are owned by this subnetwork. # Corresponds to the JSON property `ipCidrRange` # @return [String] attr_accessor :ip_cidr_range # Network URL. # Corresponds to the JSON property `network` # @return [String] attr_accessor :network # Secondary IP ranges. # Corresponds to the JSON property `secondaryIpRanges` # @return [Array] attr_accessor :secondary_ip_ranges # Subnetwork URL. # Corresponds to the JSON property `subnetwork` # @return [String] attr_accessor :subnetwork def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @ip_cidr_range = args[:ip_cidr_range] if args.key?(:ip_cidr_range) @network = args[:network] if args.key?(:network) @secondary_ip_ranges = args[:secondary_ip_ranges] if args.key?(:secondary_ip_ranges) @subnetwork = args[:subnetwork] if args.key?(:subnetwork) end end # Secondary IP range of a usable subnetwork. class UsableSubnetworkSecondaryRange include Google::Apis::Core::Hashable # The range of IP addresses belonging to this subnetwork secondary range. # Corresponds to the JSON property `ipCidrRange` # @return [String] attr_accessor :ip_cidr_range # The name associated with this subnetwork secondary range, used when adding an # alias IP range to a VM instance. The name must be 1-63 characters long, and # comply with RFC1035. The name must be unique within the subnetwork. # Corresponds to the JSON property `rangeName` # @return [String] attr_accessor :range_name def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @ip_cidr_range = args[:ip_cidr_range] if args.key?(:ip_cidr_range) @range_name = args[:range_name] if args.key?(:range_name) end end # class UsableSubnetworksAggregatedList include Google::Apis::Core::Hashable # [Output Only] The unique identifier for the resource. This identifier is # defined by the server. # Corresponds to the JSON property `id` # @return [String] attr_accessor :id # [Output] A list of usable subnetwork URLs. # Corresponds to the JSON property `items` # @return [Array] attr_accessor :items # [Output Only] Type of resource. Always compute#usableSubnetworksAggregatedList # for aggregated lists of usable subnetworks. # Corresponds to the JSON property `kind` # @return [String] attr_accessor :kind # [Output Only] This token allows you to get the next page of results for list # requests. If the number of results is larger than maxResults, use the # nextPageToken as a value for the query parameter pageToken in the next list # request. Subsequent list requests will have their own nextPageToken to # continue paging through the results. In special cases listUsable may return 0 # subnetworks and nextPageToken which still should be used to get the next page # of results. # Corresponds to the JSON property `nextPageToken` # @return [String] attr_accessor :next_page_token # [Output Only] Server-defined URL for this resource. # Corresponds to the JSON property `selfLink` # @return [String] attr_accessor :self_link # [Output Only] Informational warning message. # Corresponds to the JSON property `warning` # @return [Google::Apis::ComputeAlpha::UsableSubnetworksAggregatedList::Warning] attr_accessor :warning def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @id = args[:id] if args.key?(:id) @items = args[:items] if args.key?(:items) @kind = args[:kind] if args.key?(:kind) @next_page_token = args[:next_page_token] if args.key?(:next_page_token) @self_link = args[:self_link] if args.key?(:self_link) @warning = args[:warning] if args.key?(:warning) end # [Output Only] Informational warning message. class Warning include Google::Apis::Core::Hashable # [Output Only] A warning code, if applicable. For example, Compute Engine # returns NO_RESULTS_ON_PAGE if there are no results in the response. # Corresponds to the JSON property `code` # @return [String] attr_accessor :code # [Output Only] Metadata about this warning in key: value format. For example: " # data": [ ` "key": "scope", "value": "zones/us-east1-d" ` # Corresponds to the JSON property `data` # @return [Array] attr_accessor :data # [Output Only] A human-readable description of the warning code. # Corresponds to the JSON property `message` # @return [String] attr_accessor :message def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @code = args[:code] if args.key?(:code) @data = args[:data] if args.key?(:data) @message = args[:message] if args.key?(:message) end # class Datum include Google::Apis::Core::Hashable # [Output Only] A key that provides more detail on the warning being returned. # For example, for warnings where there are no results in a list request for a # particular zone, this key might be scope and the key value might be the zone # name. Other examples might be a key indicating a deprecated resource and a # suggested replacement, or a warning about invalid network settings (for # example, if an instance attempts to perform IP forwarding but is not enabled # for IP forwarding). # Corresponds to the JSON property `key` # @return [String] attr_accessor :key # [Output Only] A warning data value corresponding to the key. # 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 end end # The location in Cloud Storage and naming method of the daily usage report. # Contains bucket_name and report_name prefix. class UsageExportLocation include Google::Apis::Core::Hashable # The name of an existing bucket in Cloud Storage where the usage report object # is stored. The Google Service Account is granted write access to this bucket. # This can either be the bucket name by itself, such as example-bucket, or the # bucket name with gs:// or https://storage.googleapis.com/ in front of it, such # as gs://example-bucket. # Corresponds to the JSON property `bucketName` # @return [String] attr_accessor :bucket_name # An optional prefix for the name of the usage report object stored in # bucketName. If not supplied, defaults to usage_gce. The report is stored as a # CSV file named report_name_prefix_gce_YYYYMMDD.csv where YYYYMMDD is the day # of the usage according to Pacific Time. If you supply a prefix, it should # conform to Cloud Storage object naming conventions. # Corresponds to the JSON property `reportNamePrefix` # @return [String] attr_accessor :report_name_prefix def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @bucket_name = args[:bucket_name] if args.key?(:bucket_name) @report_name_prefix = args[:report_name_prefix] if args.key?(:report_name_prefix) end end # Contain information of Nat mapping for a VM endpoint (i.e., NIC). class VmEndpointNatMappings include Google::Apis::Core::Hashable # Name of the VM instance which the endpoint belongs to # Corresponds to the JSON property `instanceName` # @return [String] attr_accessor :instance_name # # Corresponds to the JSON property `interfaceNatMappings` # @return [Array] attr_accessor :interface_nat_mappings def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @instance_name = args[:instance_name] if args.key?(:instance_name) @interface_nat_mappings = args[:interface_nat_mappings] if args.key?(:interface_nat_mappings) end end # Contain information of Nat mapping for an interface of this endpoint. class VmEndpointNatMappingsInterfaceNatMappings include Google::Apis::Core::Hashable # List of all drain IP:port-range mappings assigned to this interface. These # ranges are inclusive, that is, both the first and the last ports can be used # for NAT. Example: ["2.2.2.2:12345-12355", "1.1.1.1:2234-2234"]. # Corresponds to the JSON property `drainNatIpPortRanges` # @return [Array] attr_accessor :drain_nat_ip_port_ranges # A list of all IP:port-range mappings assigned to this interface. These ranges # are inclusive, that is, both the first and the last ports can be used for NAT. # Example: ["2.2.2.2:12345-12355", "1.1.1.1:2234-2234"]. # Corresponds to the JSON property `natIpPortRanges` # @return [Array] attr_accessor :nat_ip_port_ranges # Total number of drain ports across all NAT IPs allocated to this interface. It # equals to the aggregated port number in the field drain_nat_ip_port_ranges. # Corresponds to the JSON property `numTotalDrainNatPorts` # @return [Fixnum] attr_accessor :num_total_drain_nat_ports # Total number of ports across all NAT IPs allocated to this interface. It # equals to the aggregated port number in the field nat_ip_port_ranges. # Corresponds to the JSON property `numTotalNatPorts` # @return [Fixnum] attr_accessor :num_total_nat_ports # Information about mappings provided by rules in this NAT. # Corresponds to the JSON property `ruleMappings` # @return [Array] attr_accessor :rule_mappings # Alias IP range for this interface endpoint. It will be a private (RFC 1918) IP # range. Examples: "10.33.4.55/32", or "192.168.5.0/24". # Corresponds to the JSON property `sourceAliasIpRange` # @return [String] attr_accessor :source_alias_ip_range # Primary IP of the VM for this NIC. # Corresponds to the JSON property `sourceVirtualIp` # @return [String] attr_accessor :source_virtual_ip def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @drain_nat_ip_port_ranges = args[:drain_nat_ip_port_ranges] if args.key?(:drain_nat_ip_port_ranges) @nat_ip_port_ranges = args[:nat_ip_port_ranges] if args.key?(:nat_ip_port_ranges) @num_total_drain_nat_ports = args[:num_total_drain_nat_ports] if args.key?(:num_total_drain_nat_ports) @num_total_nat_ports = args[:num_total_nat_ports] if args.key?(:num_total_nat_ports) @rule_mappings = args[:rule_mappings] if args.key?(:rule_mappings) @source_alias_ip_range = args[:source_alias_ip_range] if args.key?(:source_alias_ip_range) @source_virtual_ip = args[:source_virtual_ip] if args.key?(:source_virtual_ip) end end # Contains information of NAT Mappings provided by a NAT Rule. class VmEndpointNatMappingsInterfaceNatMappingsNatRuleMappings include Google::Apis::Core::Hashable # List of all drain IP:port-range mappings assigned to this interface by this # rule. These ranges are inclusive, that is, both the first and the last ports # can be used for NAT. Example: ["2.2.2.2:12345-12355", "1.1.1.1:2234-2234"]. # Corresponds to the JSON property `drainNatIpPortRanges` # @return [Array] attr_accessor :drain_nat_ip_port_ranges # A list of all IP:port-range mappings assigned to this interface by this rule. # These ranges are inclusive, that is, both the first and the last ports can be # used for NAT. Example: ["2.2.2.2:12345-12355", "1.1.1.1:2234-2234"]. # Corresponds to the JSON property `natIpPortRanges` # @return [Array] attr_accessor :nat_ip_port_ranges # Total number of drain ports across all NAT IPs allocated to this interface by # this rule. It equals the aggregated port number in the field # drain_nat_ip_port_ranges. # Corresponds to the JSON property `numTotalDrainNatPorts` # @return [Fixnum] attr_accessor :num_total_drain_nat_ports # Total number of ports across all NAT IPs allocated to this interface by this # rule. It equals the aggregated port number in the field nat_ip_port_ranges. # Corresponds to the JSON property `numTotalNatPorts` # @return [Fixnum] attr_accessor :num_total_nat_ports # Rule number of the NAT Rule. # Corresponds to the JSON property `ruleNumber` # @return [Fixnum] attr_accessor :rule_number def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @drain_nat_ip_port_ranges = args[:drain_nat_ip_port_ranges] if args.key?(:drain_nat_ip_port_ranges) @nat_ip_port_ranges = args[:nat_ip_port_ranges] if args.key?(:nat_ip_port_ranges) @num_total_drain_nat_ports = args[:num_total_drain_nat_ports] if args.key?(:num_total_drain_nat_ports) @num_total_nat_ports = args[:num_total_nat_ports] if args.key?(:num_total_nat_ports) @rule_number = args[:rule_number] if args.key?(:rule_number) end end # Contains a list of VmEndpointNatMappings. class VmEndpointNatMappingsList include Google::Apis::Core::Hashable # [Output Only] The unique identifier for the resource. This identifier is # defined by the server. # Corresponds to the JSON property `id` # @return [String] attr_accessor :id # [Output Only] Type of resource. Always compute#vmEndpointNatMappingsList for # lists of Nat mappings of VM endpoints. # Corresponds to the JSON property `kind` # @return [String] attr_accessor :kind # [Output Only] This token allows you to get the next page of results for list # requests. If the number of results is larger than maxResults, use the # nextPageToken as a value for the query parameter pageToken in the next list # request. Subsequent list requests will have their own nextPageToken to # continue paging through the results. # Corresponds to the JSON property `nextPageToken` # @return [String] attr_accessor :next_page_token # [Output Only] A list of Nat mapping information of VM endpoints. # Corresponds to the JSON property `result` # @return [Array] attr_accessor :result # [Output Only] Server-defined URL for this resource. # Corresponds to the JSON property `selfLink` # @return [String] attr_accessor :self_link # [Output Only] Informational warning message. # Corresponds to the JSON property `warning` # @return [Google::Apis::ComputeAlpha::VmEndpointNatMappingsList::Warning] attr_accessor :warning def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @id = args[:id] if args.key?(:id) @kind = args[:kind] if args.key?(:kind) @next_page_token = args[:next_page_token] if args.key?(:next_page_token) @result = args[:result] if args.key?(:result) @self_link = args[:self_link] if args.key?(:self_link) @warning = args[:warning] if args.key?(:warning) end # [Output Only] Informational warning message. class Warning include Google::Apis::Core::Hashable # [Output Only] A warning code, if applicable. For example, Compute Engine # returns NO_RESULTS_ON_PAGE if there are no results in the response. # Corresponds to the JSON property `code` # @return [String] attr_accessor :code # [Output Only] Metadata about this warning in key: value format. For example: " # data": [ ` "key": "scope", "value": "zones/us-east1-d" ` # Corresponds to the JSON property `data` # @return [Array] attr_accessor :data # [Output Only] A human-readable description of the warning code. # Corresponds to the JSON property `message` # @return [String] attr_accessor :message def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @code = args[:code] if args.key?(:code) @data = args[:data] if args.key?(:data) @message = args[:message] if args.key?(:message) end # class Datum include Google::Apis::Core::Hashable # [Output Only] A key that provides more detail on the warning being returned. # For example, for warnings where there are no results in a list request for a # particular zone, this key might be scope and the key value might be the zone # name. Other examples might be a key indicating a deprecated resource and a # suggested replacement, or a warning about invalid network settings (for # example, if an instance attempts to perform IP forwarding but is not enabled # for IP forwarding). # Corresponds to the JSON property `key` # @return [String] attr_accessor :key # [Output Only] A warning data value corresponding to the key. # 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 end end # Represents a HA VPN gateway. HA VPN is a high-availability (HA) Cloud VPN # solution that lets you securely connect your on-premises network to your # Google Cloud Virtual Private Cloud network through an IPsec VPN connection in # a single region. For more information about Cloud HA VPN solutions, see Cloud # VPN topologies . class VpnGateway include Google::Apis::Core::Hashable # [Output Only] Creation timestamp in RFC3339 text format. # Corresponds to the JSON property `creationTimestamp` # @return [String] attr_accessor :creation_timestamp # An optional description of this resource. Provide this property when you # create the resource. # Corresponds to the JSON property `description` # @return [String] attr_accessor :description # [Output Only] The unique identifier for the resource. This identifier is # defined by the server. # Corresponds to the JSON property `id` # @return [Fixnum] attr_accessor :id # [Output Only] Type of resource. Always compute#vpnGateway for VPN gateways. # Corresponds to the JSON property `kind` # @return [String] attr_accessor :kind # A fingerprint for the labels being applied to this VpnGateway, which is # essentially a hash of the labels set used for optimistic locking. The # fingerprint is initially generated by Compute Engine and changes after every # request to modify or update labels. You must always provide an up-to-date # fingerprint hash in order to update or change labels, otherwise the request # will fail with error 412 conditionNotMet. To see the latest fingerprint, make # a get() request to retrieve an VpnGateway. # Corresponds to the JSON property `labelFingerprint` # NOTE: Values are automatically base64 encoded/decoded in the client library. # @return [String] attr_accessor :label_fingerprint # Labels for this resource. These can only be added or modified by the setLabels # method. Each label key/value pair must comply with RFC1035. Label values may # be empty. # Corresponds to the JSON property `labels` # @return [Hash] attr_accessor :labels # Name of the resource. Provided by the client when the resource is created. The # name must be 1-63 characters long, and comply with RFC1035. Specifically, the # name must be 1-63 characters long and match the regular expression `[a-z]([-a- # z0-9]*[a-z0-9])?` which means the first character must be a lowercase letter, # and all following characters must be a dash, lowercase letter, or digit, # except the last character, which cannot be a dash. # Corresponds to the JSON property `name` # @return [String] attr_accessor :name # URL of the network to which this VPN gateway is attached. Provided by the # client when the VPN gateway is created. # Corresponds to the JSON property `network` # @return [String] attr_accessor :network # [Output Only] URL of the region where the VPN gateway resides. # Corresponds to the JSON property `region` # @return [String] attr_accessor :region # [Output Only] Server-defined URL for the resource. # Corresponds to the JSON property `selfLink` # @return [String] attr_accessor :self_link # The stack type for this VPN gateway to identify the IP protocols that are # enabled. If not specified, IPV4_ONLY will be used. # Corresponds to the JSON property `stackType` # @return [String] attr_accessor :stack_type # The list of VPN interfaces associated with this VPN gateway. # Corresponds to the JSON property `vpnInterfaces` # @return [Array] attr_accessor :vpn_interfaces def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @creation_timestamp = args[:creation_timestamp] if args.key?(:creation_timestamp) @description = args[:description] if args.key?(:description) @id = args[:id] if args.key?(:id) @kind = args[:kind] if args.key?(:kind) @label_fingerprint = args[:label_fingerprint] if args.key?(:label_fingerprint) @labels = args[:labels] if args.key?(:labels) @name = args[:name] if args.key?(:name) @network = args[:network] if args.key?(:network) @region = args[:region] if args.key?(:region) @self_link = args[:self_link] if args.key?(:self_link) @stack_type = args[:stack_type] if args.key?(:stack_type) @vpn_interfaces = args[:vpn_interfaces] if args.key?(:vpn_interfaces) end end # class VpnGatewayAggregatedList include Google::Apis::Core::Hashable # [Output Only] Unique identifier for the resource; defined by the server. # Corresponds to the JSON property `id` # @return [String] attr_accessor :id # A list of VpnGateway resources. # Corresponds to the JSON property `items` # @return [Hash] attr_accessor :items # [Output Only] Type of resource. Always compute#vpnGateway for VPN gateways. # Corresponds to the JSON property `kind` # @return [String] attr_accessor :kind # [Output Only] This token allows you to get the next page of results for list # requests. If the number of results is larger than maxResults, use the # nextPageToken as a value for the query parameter pageToken in the next list # request. Subsequent list requests will have their own nextPageToken to # continue paging through the results. # Corresponds to the JSON property `nextPageToken` # @return [String] attr_accessor :next_page_token # [Output Only] Server-defined URL for this resource. # Corresponds to the JSON property `selfLink` # @return [String] attr_accessor :self_link # [Output Only] Unreachable resources. # Corresponds to the JSON property `unreachables` # @return [Array] attr_accessor :unreachables # [Output Only] Informational warning message. # Corresponds to the JSON property `warning` # @return [Google::Apis::ComputeAlpha::VpnGatewayAggregatedList::Warning] attr_accessor :warning def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @id = args[:id] if args.key?(:id) @items = args[:items] if args.key?(:items) @kind = args[:kind] if args.key?(:kind) @next_page_token = args[:next_page_token] if args.key?(:next_page_token) @self_link = args[:self_link] if args.key?(:self_link) @unreachables = args[:unreachables] if args.key?(:unreachables) @warning = args[:warning] if args.key?(:warning) end # [Output Only] Informational warning message. class Warning include Google::Apis::Core::Hashable # [Output Only] A warning code, if applicable. For example, Compute Engine # returns NO_RESULTS_ON_PAGE if there are no results in the response. # Corresponds to the JSON property `code` # @return [String] attr_accessor :code # [Output Only] Metadata about this warning in key: value format. For example: " # data": [ ` "key": "scope", "value": "zones/us-east1-d" ` # Corresponds to the JSON property `data` # @return [Array] attr_accessor :data # [Output Only] A human-readable description of the warning code. # Corresponds to the JSON property `message` # @return [String] attr_accessor :message def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @code = args[:code] if args.key?(:code) @data = args[:data] if args.key?(:data) @message = args[:message] if args.key?(:message) end # class Datum include Google::Apis::Core::Hashable # [Output Only] A key that provides more detail on the warning being returned. # For example, for warnings where there are no results in a list request for a # particular zone, this key might be scope and the key value might be the zone # name. Other examples might be a key indicating a deprecated resource and a # suggested replacement, or a warning about invalid network settings (for # example, if an instance attempts to perform IP forwarding but is not enabled # for IP forwarding). # Corresponds to the JSON property `key` # @return [String] attr_accessor :key # [Output Only] A warning data value corresponding to the key. # 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 end end # Contains a list of VpnGateway resources. class VpnGatewayList include Google::Apis::Core::Hashable # [Output Only] Unique identifier for the resource; defined by the server. # Corresponds to the JSON property `id` # @return [String] attr_accessor :id # A list of VpnGateway resources. # Corresponds to the JSON property `items` # @return [Array] attr_accessor :items # [Output Only] Type of resource. Always compute#vpnGateway for VPN gateways. # Corresponds to the JSON property `kind` # @return [String] attr_accessor :kind # [Output Only] This token allows you to get the next page of results for list # requests. If the number of results is larger than maxResults, use the # nextPageToken as a value for the query parameter pageToken in the next list # request. Subsequent list requests will have their own nextPageToken to # continue paging through the results. # Corresponds to the JSON property `nextPageToken` # @return [String] attr_accessor :next_page_token # [Output Only] Server-defined URL for this resource. # Corresponds to the JSON property `selfLink` # @return [String] attr_accessor :self_link # [Output Only] Informational warning message. # Corresponds to the JSON property `warning` # @return [Google::Apis::ComputeAlpha::VpnGatewayList::Warning] attr_accessor :warning def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @id = args[:id] if args.key?(:id) @items = args[:items] if args.key?(:items) @kind = args[:kind] if args.key?(:kind) @next_page_token = args[:next_page_token] if args.key?(:next_page_token) @self_link = args[:self_link] if args.key?(:self_link) @warning = args[:warning] if args.key?(:warning) end # [Output Only] Informational warning message. class Warning include Google::Apis::Core::Hashable # [Output Only] A warning code, if applicable. For example, Compute Engine # returns NO_RESULTS_ON_PAGE if there are no results in the response. # Corresponds to the JSON property `code` # @return [String] attr_accessor :code # [Output Only] Metadata about this warning in key: value format. For example: " # data": [ ` "key": "scope", "value": "zones/us-east1-d" ` # Corresponds to the JSON property `data` # @return [Array] attr_accessor :data # [Output Only] A human-readable description of the warning code. # Corresponds to the JSON property `message` # @return [String] attr_accessor :message def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @code = args[:code] if args.key?(:code) @data = args[:data] if args.key?(:data) @message = args[:message] if args.key?(:message) end # class Datum include Google::Apis::Core::Hashable # [Output Only] A key that provides more detail on the warning being returned. # For example, for warnings where there are no results in a list request for a # particular zone, this key might be scope and the key value might be the zone # name. Other examples might be a key indicating a deprecated resource and a # suggested replacement, or a warning about invalid network settings (for # example, if an instance attempts to perform IP forwarding but is not enabled # for IP forwarding). # Corresponds to the JSON property `key` # @return [String] attr_accessor :key # [Output Only] A warning data value corresponding to the key. # 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 end end # class VpnGatewayStatus include Google::Apis::Core::Hashable # List of VPN connection for this VpnGateway. # Corresponds to the JSON property `vpnConnections` # @return [Array] attr_accessor :vpn_connections def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @vpn_connections = args[:vpn_connections] if args.key?(:vpn_connections) end end # Describes the high availability requirement state for the VPN connection # between this Cloud VPN gateway and a peer gateway. class VpnGatewayStatusHighAvailabilityRequirementState include Google::Apis::Core::Hashable # Indicates the high availability requirement state for the VPN connection. # Valid values are CONNECTION_REDUNDANCY_MET, CONNECTION_REDUNDANCY_NOT_MET. # Corresponds to the JSON property `state` # @return [String] attr_accessor :state # Indicates the reason why the VPN connection does not meet the high # availability redundancy criteria/requirement. Valid values is # INCOMPLETE_TUNNELS_COVERAGE. # Corresponds to the JSON property `unsatisfiedReason` # @return [String] attr_accessor :unsatisfied_reason def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @state = args[:state] if args.key?(:state) @unsatisfied_reason = args[:unsatisfied_reason] if args.key?(:unsatisfied_reason) end end # Contains some information about a VPN tunnel. class VpnGatewayStatusTunnel include Google::Apis::Core::Hashable # The VPN gateway interface this VPN tunnel is associated with. # Corresponds to the JSON property `localGatewayInterface` # @return [Fixnum] attr_accessor :local_gateway_interface # The peer gateway interface this VPN tunnel is connected to, the peer gateway # could either be an external VPN gateway or GCP VPN gateway. # Corresponds to the JSON property `peerGatewayInterface` # @return [Fixnum] attr_accessor :peer_gateway_interface # URL reference to the VPN tunnel. # Corresponds to the JSON property `tunnelUrl` # @return [String] attr_accessor :tunnel_url def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @local_gateway_interface = args[:local_gateway_interface] if args.key?(:local_gateway_interface) @peer_gateway_interface = args[:peer_gateway_interface] if args.key?(:peer_gateway_interface) @tunnel_url = args[:tunnel_url] if args.key?(:tunnel_url) end end # A VPN connection contains all VPN tunnels connected from this VpnGateway to # the same peer gateway. The peer gateway could either be a external VPN gateway # or GCP VPN gateway. class VpnGatewayStatusVpnConnection include Google::Apis::Core::Hashable # URL reference to the peer external VPN gateways to which the VPN tunnels in # this VPN connection are connected. This field is mutually exclusive with # peer_gcp_gateway. # Corresponds to the JSON property `peerExternalGateway` # @return [String] attr_accessor :peer_external_gateway # URL reference to the peer side VPN gateways to which the VPN tunnels in this # VPN connection are connected. This field is mutually exclusive with # peer_gcp_gateway. # Corresponds to the JSON property `peerGcpGateway` # @return [String] attr_accessor :peer_gcp_gateway # Describes the high availability requirement state for the VPN connection # between this Cloud VPN gateway and a peer gateway. # Corresponds to the JSON property `state` # @return [Google::Apis::ComputeAlpha::VpnGatewayStatusHighAvailabilityRequirementState] attr_accessor :state # List of VPN tunnels that are in this VPN connection. # Corresponds to the JSON property `tunnels` # @return [Array] attr_accessor :tunnels def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @peer_external_gateway = args[:peer_external_gateway] if args.key?(:peer_external_gateway) @peer_gcp_gateway = args[:peer_gcp_gateway] if args.key?(:peer_gcp_gateway) @state = args[:state] if args.key?(:state) @tunnels = args[:tunnels] if args.key?(:tunnels) end end # A VPN gateway interface. class VpnGatewayVpnGatewayInterface include Google::Apis::Core::Hashable # [Output Only] Numeric identifier for this VPN interface associated with the # VPN gateway. # Corresponds to the JSON property `id` # @return [Fixnum] attr_accessor :id # URL of the VLAN attachment (interconnectAttachment) resource for this VPN # gateway interface. When the value of this field is present, the VPN gateway is # used for IPsec-encrypted Cloud Interconnect; all egress or ingress traffic for # this VPN gateway interface goes through the specified VLAN attachment resource. # Not currently available publicly. # Corresponds to the JSON property `interconnectAttachment` # @return [String] attr_accessor :interconnect_attachment # [Output Only] IP address for this VPN interface associated with the VPN # gateway. The IP address could be either a regional external IP address or a # regional internal IP address. The two IP addresses for a VPN gateway must be # all regional external or regional internal IP addresses. There cannot be a mix # of regional external IP addresses and regional internal IP addresses. For # IPsec-encrypted Cloud Interconnect, the IP addresses for both interfaces could # either be regional internal IP addresses or regional external IP addresses. # For regular (non IPsec-encrypted Cloud Interconnect) HA VPN tunnels, the IP # address must be a regional external IP address. # Corresponds to the JSON property `ipAddress` # @return [String] attr_accessor :ip_address def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @id = args[:id] if args.key?(:id) @interconnect_attachment = args[:interconnect_attachment] if args.key?(:interconnect_attachment) @ip_address = args[:ip_address] if args.key?(:ip_address) end end # class VpnGatewaysGetStatusResponse include Google::Apis::Core::Hashable # # Corresponds to the JSON property `result` # @return [Google::Apis::ComputeAlpha::VpnGatewayStatus] attr_accessor :result def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @result = args[:result] if args.key?(:result) end end # class VpnGatewaysScopedList include Google::Apis::Core::Hashable # [Output Only] A list of VPN gateways contained in this scope. # Corresponds to the JSON property `vpnGateways` # @return [Array] attr_accessor :vpn_gateways # [Output Only] Informational warning which replaces the list of addresses when # the list is empty. # Corresponds to the JSON property `warning` # @return [Google::Apis::ComputeAlpha::VpnGatewaysScopedList::Warning] attr_accessor :warning def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @vpn_gateways = args[:vpn_gateways] if args.key?(:vpn_gateways) @warning = args[:warning] if args.key?(:warning) end # [Output Only] Informational warning which replaces the list of addresses when # the list is empty. class Warning include Google::Apis::Core::Hashable # [Output Only] A warning code, if applicable. For example, Compute Engine # returns NO_RESULTS_ON_PAGE if there are no results in the response. # Corresponds to the JSON property `code` # @return [String] attr_accessor :code # [Output Only] Metadata about this warning in key: value format. For example: " # data": [ ` "key": "scope", "value": "zones/us-east1-d" ` # Corresponds to the JSON property `data` # @return [Array] attr_accessor :data # [Output Only] A human-readable description of the warning code. # Corresponds to the JSON property `message` # @return [String] attr_accessor :message def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @code = args[:code] if args.key?(:code) @data = args[:data] if args.key?(:data) @message = args[:message] if args.key?(:message) end # class Datum include Google::Apis::Core::Hashable # [Output Only] A key that provides more detail on the warning being returned. # For example, for warnings where there are no results in a list request for a # particular zone, this key might be scope and the key value might be the zone # name. Other examples might be a key indicating a deprecated resource and a # suggested replacement, or a warning about invalid network settings (for # example, if an instance attempts to perform IP forwarding but is not enabled # for IP forwarding). # Corresponds to the JSON property `key` # @return [String] attr_accessor :key # [Output Only] A warning data value corresponding to the key. # 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 end end # Represents a Cloud VPN Tunnel resource. For more information about VPN, read # the the Cloud VPN Overview. class VpnTunnel include Google::Apis::Core::Hashable # [Output Only] Creation timestamp in RFC3339 text format. # Corresponds to the JSON property `creationTimestamp` # @return [String] attr_accessor :creation_timestamp # An optional description of this resource. Provide this property when you # create the resource. # Corresponds to the JSON property `description` # @return [String] attr_accessor :description # [Output Only] Detailed status message for the VPN tunnel. # Corresponds to the JSON property `detailedStatus` # @return [String] attr_accessor :detailed_status # [Output Only] The unique identifier for the resource. This identifier is # defined by the server. # Corresponds to the JSON property `id` # @return [Fixnum] attr_accessor :id # IKE protocol version to use when establishing the VPN tunnel with the peer VPN # gateway. Acceptable IKE versions are 1 or 2. The default version is 2. # Corresponds to the JSON property `ikeVersion` # @return [Fixnum] attr_accessor :ike_version # [Output Only] Type of resource. Always compute#vpnTunnel for VPN tunnels. # Corresponds to the JSON property `kind` # @return [String] attr_accessor :kind # A fingerprint for the labels being applied to this VpnTunnel, which is # essentially a hash of the labels set used for optimistic locking. The # fingerprint is initially generated by Compute Engine and changes after every # request to modify or update labels. You must always provide an up-to-date # fingerprint hash in order to update or change labels, otherwise the request # will fail with error 412 conditionNotMet. To see the latest fingerprint, make # a get() request to retrieve a VpnTunnel. # Corresponds to the JSON property `labelFingerprint` # NOTE: Values are automatically base64 encoded/decoded in the client library. # @return [String] attr_accessor :label_fingerprint # Labels for this resource. These can only be added or modified by the setLabels # method. Each label key/value pair must comply with RFC1035. Label values may # be empty. # Corresponds to the JSON property `labels` # @return [Hash] attr_accessor :labels # Local traffic selector to use when establishing the VPN tunnel with the peer # VPN gateway. The value should be a CIDR formatted string, for example: 192.168. # 0.0/16. The ranges must be disjoint. Only IPv4 is supported. # Corresponds to the JSON property `localTrafficSelector` # @return [Array] attr_accessor :local_traffic_selector # Name of the resource. Provided by the client when the resource is created. The # name must be 1-63 characters long, and comply with RFC1035. Specifically, the # name must be 1-63 characters long and match the regular expression `[a-z]([-a- # z0-9]*[a-z0-9])?` which means the first character must be a lowercase letter, # and all following characters must be a dash, lowercase letter, or digit, # except the last character, which cannot be a dash. # Corresponds to the JSON property `name` # @return [String] attr_accessor :name # URL of the peer side external VPN gateway to which this VPN tunnel is # connected. Provided by the client when the VPN tunnel is created. This field # is exclusive with the field peerGcpGateway. # Corresponds to the JSON property `peerExternalGateway` # @return [String] attr_accessor :peer_external_gateway # The interface ID of the external VPN gateway to which this VPN tunnel is # connected. Provided by the client when the VPN tunnel is created. # Corresponds to the JSON property `peerExternalGatewayInterface` # @return [Fixnum] attr_accessor :peer_external_gateway_interface # URL of the peer side HA GCP VPN gateway to which this VPN tunnel is connected. # Provided by the client when the VPN tunnel is created. This field can be used # when creating highly available VPN from VPC network to VPC network, the field # is exclusive with the field peerExternalGateway. If provided, the VPN tunnel # will automatically use the same vpnGatewayInterface ID in the peer GCP VPN # gateway. # Corresponds to the JSON property `peerGcpGateway` # @return [String] attr_accessor :peer_gcp_gateway # IP address of the peer VPN gateway. Only IPv4 is supported. # Corresponds to the JSON property `peerIp` # @return [String] attr_accessor :peer_ip # [Output Only] URL of the region where the VPN tunnel resides. You must specify # this field as part of the HTTP request URL. It is not settable as a field in # the request body. # Corresponds to the JSON property `region` # @return [String] attr_accessor :region # Remote traffic selectors to use when establishing the VPN tunnel with the peer # VPN gateway. The value should be a CIDR formatted string, for example: 192.168. # 0.0/16. The ranges should be disjoint. Only IPv4 is supported. # Corresponds to the JSON property `remoteTrafficSelector` # @return [Array] attr_accessor :remote_traffic_selector # URL of the router resource to be used for dynamic routing. # Corresponds to the JSON property `router` # @return [String] attr_accessor :router # [Output Only] Server-defined URL for the resource. # Corresponds to the JSON property `selfLink` # @return [String] attr_accessor :self_link # Shared secret used to set the secure session between the Cloud VPN gateway and # the peer VPN gateway. # Corresponds to the JSON property `sharedSecret` # @return [String] attr_accessor :shared_secret # Hash of the shared secret. # Corresponds to the JSON property `sharedSecretHash` # @return [String] attr_accessor :shared_secret_hash # [Output Only] The status of the VPN tunnel, which can be one of the following: # - PROVISIONING: Resource is being allocated for the VPN tunnel. - # WAITING_FOR_FULL_CONFIG: Waiting to receive all VPN-related configs from the # user. Network, TargetVpnGateway, VpnTunnel, ForwardingRule, and Route # resources are needed to setup the VPN tunnel. - FIRST_HANDSHAKE: Successful # first handshake with the peer VPN. - ESTABLISHED: Secure session is # successfully established with the peer VPN. - NETWORK_ERROR: Deprecated, # replaced by NO_INCOMING_PACKETS - AUTHORIZATION_ERROR: Auth error (for example, # bad shared secret). - NEGOTIATION_FAILURE: Handshake failed. - DEPROVISIONING: # Resources are being deallocated for the VPN tunnel. - FAILED: Tunnel creation # has failed and the tunnel is not ready to be used. - NO_INCOMING_PACKETS: No # incoming packets from peer. - REJECTED: Tunnel configuration was rejected, can # be result of being denied access. - ALLOCATING_RESOURCES: Cloud VPN is in the # process of allocating all required resources. - STOPPED: Tunnel is stopped due # to its Forwarding Rules being deleted for Classic VPN tunnels or the project # is in frozen state. - PEER_IDENTITY_MISMATCH: Peer identity does not match # peer IP, probably behind NAT. - TS_NARROWING_NOT_ALLOWED: Traffic selector # narrowing not allowed for an HA-VPN tunnel. # Corresponds to the JSON property `status` # @return [String] attr_accessor :status # URL of the Target VPN gateway with which this VPN tunnel is associated. # Provided by the client when the VPN tunnel is created. # Corresponds to the JSON property `targetVpnGateway` # @return [String] attr_accessor :target_vpn_gateway # URL of the VPN gateway with which this VPN tunnel is associated. Provided by # the client when the VPN tunnel is created. This must be used (instead of # target_vpn_gateway) if a High Availability VPN gateway resource is created. # Corresponds to the JSON property `vpnGateway` # @return [String] attr_accessor :vpn_gateway # The interface ID of the VPN gateway with which this VPN tunnel is associated. # Corresponds to the JSON property `vpnGatewayInterface` # @return [Fixnum] attr_accessor :vpn_gateway_interface def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @creation_timestamp = args[:creation_timestamp] if args.key?(:creation_timestamp) @description = args[:description] if args.key?(:description) @detailed_status = args[:detailed_status] if args.key?(:detailed_status) @id = args[:id] if args.key?(:id) @ike_version = args[:ike_version] if args.key?(:ike_version) @kind = args[:kind] if args.key?(:kind) @label_fingerprint = args[:label_fingerprint] if args.key?(:label_fingerprint) @labels = args[:labels] if args.key?(:labels) @local_traffic_selector = args[:local_traffic_selector] if args.key?(:local_traffic_selector) @name = args[:name] if args.key?(:name) @peer_external_gateway = args[:peer_external_gateway] if args.key?(:peer_external_gateway) @peer_external_gateway_interface = args[:peer_external_gateway_interface] if args.key?(:peer_external_gateway_interface) @peer_gcp_gateway = args[:peer_gcp_gateway] if args.key?(:peer_gcp_gateway) @peer_ip = args[:peer_ip] if args.key?(:peer_ip) @region = args[:region] if args.key?(:region) @remote_traffic_selector = args[:remote_traffic_selector] if args.key?(:remote_traffic_selector) @router = args[:router] if args.key?(:router) @self_link = args[:self_link] if args.key?(:self_link) @shared_secret = args[:shared_secret] if args.key?(:shared_secret) @shared_secret_hash = args[:shared_secret_hash] if args.key?(:shared_secret_hash) @status = args[:status] if args.key?(:status) @target_vpn_gateway = args[:target_vpn_gateway] if args.key?(:target_vpn_gateway) @vpn_gateway = args[:vpn_gateway] if args.key?(:vpn_gateway) @vpn_gateway_interface = args[:vpn_gateway_interface] if args.key?(:vpn_gateway_interface) end end # class VpnTunnelAggregatedList include Google::Apis::Core::Hashable # [Output Only] Unique identifier for the resource; defined by the server. # Corresponds to the JSON property `id` # @return [String] attr_accessor :id # A list of VpnTunnelsScopedList resources. # Corresponds to the JSON property `items` # @return [Hash] attr_accessor :items # [Output Only] Type of resource. Always compute#vpnTunnel for VPN tunnels. # Corresponds to the JSON property `kind` # @return [String] attr_accessor :kind # [Output Only] This token allows you to get the next page of results for list # requests. If the number of results is larger than maxResults, use the # nextPageToken as a value for the query parameter pageToken in the next list # request. Subsequent list requests will have their own nextPageToken to # continue paging through the results. # Corresponds to the JSON property `nextPageToken` # @return [String] attr_accessor :next_page_token # [Output Only] Server-defined URL for this resource. # Corresponds to the JSON property `selfLink` # @return [String] attr_accessor :self_link # [Output Only] Unreachable resources. # Corresponds to the JSON property `unreachables` # @return [Array] attr_accessor :unreachables # [Output Only] Informational warning message. # Corresponds to the JSON property `warning` # @return [Google::Apis::ComputeAlpha::VpnTunnelAggregatedList::Warning] attr_accessor :warning def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @id = args[:id] if args.key?(:id) @items = args[:items] if args.key?(:items) @kind = args[:kind] if args.key?(:kind) @next_page_token = args[:next_page_token] if args.key?(:next_page_token) @self_link = args[:self_link] if args.key?(:self_link) @unreachables = args[:unreachables] if args.key?(:unreachables) @warning = args[:warning] if args.key?(:warning) end # [Output Only] Informational warning message. class Warning include Google::Apis::Core::Hashable # [Output Only] A warning code, if applicable. For example, Compute Engine # returns NO_RESULTS_ON_PAGE if there are no results in the response. # Corresponds to the JSON property `code` # @return [String] attr_accessor :code # [Output Only] Metadata about this warning in key: value format. For example: " # data": [ ` "key": "scope", "value": "zones/us-east1-d" ` # Corresponds to the JSON property `data` # @return [Array] attr_accessor :data # [Output Only] A human-readable description of the warning code. # Corresponds to the JSON property `message` # @return [String] attr_accessor :message def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @code = args[:code] if args.key?(:code) @data = args[:data] if args.key?(:data) @message = args[:message] if args.key?(:message) end # class Datum include Google::Apis::Core::Hashable # [Output Only] A key that provides more detail on the warning being returned. # For example, for warnings where there are no results in a list request for a # particular zone, this key might be scope and the key value might be the zone # name. Other examples might be a key indicating a deprecated resource and a # suggested replacement, or a warning about invalid network settings (for # example, if an instance attempts to perform IP forwarding but is not enabled # for IP forwarding). # Corresponds to the JSON property `key` # @return [String] attr_accessor :key # [Output Only] A warning data value corresponding to the key. # 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 end end # Contains a list of VpnTunnel resources. class VpnTunnelList include Google::Apis::Core::Hashable # [Output Only] Unique identifier for the resource; defined by the server. # Corresponds to the JSON property `id` # @return [String] attr_accessor :id # A list of VpnTunnel resources. # Corresponds to the JSON property `items` # @return [Array] attr_accessor :items # [Output Only] Type of resource. Always compute#vpnTunnel for VPN tunnels. # Corresponds to the JSON property `kind` # @return [String] attr_accessor :kind # [Output Only] This token allows you to get the next page of results for list # requests. If the number of results is larger than maxResults, use the # nextPageToken as a value for the query parameter pageToken in the next list # request. Subsequent list requests will have their own nextPageToken to # continue paging through the results. # Corresponds to the JSON property `nextPageToken` # @return [String] attr_accessor :next_page_token # [Output Only] Server-defined URL for this resource. # Corresponds to the JSON property `selfLink` # @return [String] attr_accessor :self_link # [Output Only] Informational warning message. # Corresponds to the JSON property `warning` # @return [Google::Apis::ComputeAlpha::VpnTunnelList::Warning] attr_accessor :warning def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @id = args[:id] if args.key?(:id) @items = args[:items] if args.key?(:items) @kind = args[:kind] if args.key?(:kind) @next_page_token = args[:next_page_token] if args.key?(:next_page_token) @self_link = args[:self_link] if args.key?(:self_link) @warning = args[:warning] if args.key?(:warning) end # [Output Only] Informational warning message. class Warning include Google::Apis::Core::Hashable # [Output Only] A warning code, if applicable. For example, Compute Engine # returns NO_RESULTS_ON_PAGE if there are no results in the response. # Corresponds to the JSON property `code` # @return [String] attr_accessor :code # [Output Only] Metadata about this warning in key: value format. For example: " # data": [ ` "key": "scope", "value": "zones/us-east1-d" ` # Corresponds to the JSON property `data` # @return [Array] attr_accessor :data # [Output Only] A human-readable description of the warning code. # Corresponds to the JSON property `message` # @return [String] attr_accessor :message def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @code = args[:code] if args.key?(:code) @data = args[:data] if args.key?(:data) @message = args[:message] if args.key?(:message) end # class Datum include Google::Apis::Core::Hashable # [Output Only] A key that provides more detail on the warning being returned. # For example, for warnings where there are no results in a list request for a # particular zone, this key might be scope and the key value might be the zone # name. Other examples might be a key indicating a deprecated resource and a # suggested replacement, or a warning about invalid network settings (for # example, if an instance attempts to perform IP forwarding but is not enabled # for IP forwarding). # Corresponds to the JSON property `key` # @return [String] attr_accessor :key # [Output Only] A warning data value corresponding to the key. # 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 end end # class VpnTunnelsScopedList include Google::Apis::Core::Hashable # A list of VPN tunnels contained in this scope. # Corresponds to the JSON property `vpnTunnels` # @return [Array] attr_accessor :vpn_tunnels # Informational warning which replaces the list of addresses when the list is # empty. # Corresponds to the JSON property `warning` # @return [Google::Apis::ComputeAlpha::VpnTunnelsScopedList::Warning] attr_accessor :warning def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @vpn_tunnels = args[:vpn_tunnels] if args.key?(:vpn_tunnels) @warning = args[:warning] if args.key?(:warning) end # Informational warning which replaces the list of addresses when the list is # empty. class Warning include Google::Apis::Core::Hashable # [Output Only] A warning code, if applicable. For example, Compute Engine # returns NO_RESULTS_ON_PAGE if there are no results in the response. # Corresponds to the JSON property `code` # @return [String] attr_accessor :code # [Output Only] Metadata about this warning in key: value format. For example: " # data": [ ` "key": "scope", "value": "zones/us-east1-d" ` # Corresponds to the JSON property `data` # @return [Array] attr_accessor :data # [Output Only] A human-readable description of the warning code. # Corresponds to the JSON property `message` # @return [String] attr_accessor :message def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @code = args[:code] if args.key?(:code) @data = args[:data] if args.key?(:data) @message = args[:message] if args.key?(:message) end # class Datum include Google::Apis::Core::Hashable # [Output Only] A key that provides more detail on the warning being returned. # For example, for warnings where there are no results in a list request for a # particular zone, this key might be scope and the key value might be the zone # name. Other examples might be a key indicating a deprecated resource and a # suggested replacement, or a warning about invalid network settings (for # example, if an instance attempts to perform IP forwarding but is not enabled # for IP forwarding). # Corresponds to the JSON property `key` # @return [String] attr_accessor :key # [Output Only] A warning data value corresponding to the key. # 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 end end # class WafExpressionSet include Google::Apis::Core::Hashable # A list of alternate IDs. The format should be: - E.g. XSS-stable Generic # suffix like "stable" is particularly useful if a policy likes to avail newer # set of expressions without having to change the policy. A given alias name can' # t be used for more than one entity set. # Corresponds to the JSON property `aliases` # @return [Array] attr_accessor :aliases # List of available expressions. # Corresponds to the JSON property `expressions` # @return [Array] attr_accessor :expressions # Google specified expression set ID. The format should be: - E.g. XSS-20170329 # required # Corresponds to the JSON property `id` # @return [String] attr_accessor :id def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @aliases = args[:aliases] if args.key?(:aliases) @expressions = args[:expressions] if args.key?(:expressions) @id = args[:id] if args.key?(:id) end end # class WafExpressionSetExpression include Google::Apis::Core::Hashable # Expression ID should uniquely identify the origin of the expression. E.g. # owasp-crs-v020901-id973337 identifies Owasp core rule set version 2.9.1 rule # id 973337. The ID could be used to determine the individual attack definition # that has been detected. It could also be used to exclude it from the policy in # case of false positive. required # Corresponds to the JSON property `id` # @return [String] attr_accessor :id def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @id = args[:id] if args.key?(:id) end end # In contrast to a single BackendService in HttpRouteAction to which all # matching traffic is directed to, WeightedBackendService allows traffic to be # split across multiple backend services. The volume of traffic for each backend # service is proportional to the weight specified in each WeightedBackendService class WeightedBackendService include Google::Apis::Core::Hashable # The full or partial URL to the default BackendService resource. Before # forwarding the request to backendService, the load balancer applies any # relevant headerActions specified as part of this backendServiceWeight. # Corresponds to the JSON property `backendService` # @return [String] attr_accessor :backend_service # The request and response header transformations that take effect before the # request is passed along to the selected backendService. # Corresponds to the JSON property `headerAction` # @return [Google::Apis::ComputeAlpha::HttpHeaderAction] attr_accessor :header_action # Specifies the fraction of traffic sent to a backend service, computed as # weight / (sum of all weightedBackendService weights in routeAction) . The # selection of a backend service is determined only for new traffic. Once a user' # s request has been directed to a backend service, subsequent requests are sent # to the same backend service as determined by the backend service's session # affinity policy. The value must be from 0 to 1000. # Corresponds to the JSON property `weight` # @return [Fixnum] attr_accessor :weight def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @backend_service = args[:backend_service] if args.key?(:backend_service) @header_action = args[:header_action] if args.key?(:header_action) @weight = args[:weight] if args.key?(:weight) end end # class XpnHostList include Google::Apis::Core::Hashable # [Output Only] Unique identifier for the resource; defined by the server. # Corresponds to the JSON property `id` # @return [String] attr_accessor :id # [Output Only] A list of shared VPC host project URLs. # Corresponds to the JSON property `items` # @return [Array] attr_accessor :items # [Output Only] Type of resource. Always compute#xpnHostList for lists of shared # VPC hosts. # Corresponds to the JSON property `kind` # @return [String] attr_accessor :kind # [Output Only] This token allows you to get the next page of results for list # requests. If the number of results is larger than maxResults, use the # nextPageToken as a value for the query parameter pageToken in the next list # request. Subsequent list requests will have their own nextPageToken to # continue paging through the results. # Corresponds to the JSON property `nextPageToken` # @return [String] attr_accessor :next_page_token # [Output Only] Server-defined URL for this resource. # Corresponds to the JSON property `selfLink` # @return [String] attr_accessor :self_link # [Output Only] Informational warning message. # Corresponds to the JSON property `warning` # @return [Google::Apis::ComputeAlpha::XpnHostList::Warning] attr_accessor :warning def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @id = args[:id] if args.key?(:id) @items = args[:items] if args.key?(:items) @kind = args[:kind] if args.key?(:kind) @next_page_token = args[:next_page_token] if args.key?(:next_page_token) @self_link = args[:self_link] if args.key?(:self_link) @warning = args[:warning] if args.key?(:warning) end # [Output Only] Informational warning message. class Warning include Google::Apis::Core::Hashable # [Output Only] A warning code, if applicable. For example, Compute Engine # returns NO_RESULTS_ON_PAGE if there are no results in the response. # Corresponds to the JSON property `code` # @return [String] attr_accessor :code # [Output Only] Metadata about this warning in key: value format. For example: " # data": [ ` "key": "scope", "value": "zones/us-east1-d" ` # Corresponds to the JSON property `data` # @return [Array] attr_accessor :data # [Output Only] A human-readable description of the warning code. # Corresponds to the JSON property `message` # @return [String] attr_accessor :message def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @code = args[:code] if args.key?(:code) @data = args[:data] if args.key?(:data) @message = args[:message] if args.key?(:message) end # class Datum include Google::Apis::Core::Hashable # [Output Only] A key that provides more detail on the warning being returned. # For example, for warnings where there are no results in a list request for a # particular zone, this key might be scope and the key value might be the zone # name. Other examples might be a key indicating a deprecated resource and a # suggested replacement, or a warning about invalid network settings (for # example, if an instance attempts to perform IP forwarding but is not enabled # for IP forwarding). # Corresponds to the JSON property `key` # @return [String] attr_accessor :key # [Output Only] A warning data value corresponding to the key. # 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 end end # Service resource (a.k.a service project) ID. class XpnResourceId include Google::Apis::Core::Hashable # The ID of the service resource. In the case of projects, this field supports # project id (e.g., my-project-123) and project number (e.g. 12345678). # Corresponds to the JSON property `id` # @return [String] attr_accessor :id # The type of the service resource. # 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) @id = args[:id] if args.key?(:id) @type = args[:type] if args.key?(:type) end end # Represents a Zone resource. A zone is a deployment area. These deployment # areas are subsets of a region. For example the zone us-east1-a is located in # the us-east1 region. For more information, read Regions and Zones. class Zone include Google::Apis::Core::Hashable # [Output Only] Available cpu/platform selections for the zone. # Corresponds to the JSON property `availableCpuPlatforms` # @return [Array] attr_accessor :available_cpu_platforms # [Output Only] Creation timestamp in RFC3339 text format. # Corresponds to the JSON property `creationTimestamp` # @return [String] attr_accessor :creation_timestamp # Deprecation status for a public resource. # Corresponds to the JSON property `deprecated` # @return [Google::Apis::ComputeAlpha::DeprecationStatus] attr_accessor :deprecated # [Output Only] Textual description of the resource. # Corresponds to the JSON property `description` # @return [String] attr_accessor :description # [Output Only] The unique identifier for the resource. This identifier is # defined by the server. # Corresponds to the JSON property `id` # @return [Fixnum] attr_accessor :id # [Output Only] Type of the resource. Always compute#zone for zones. # Corresponds to the JSON property `kind` # @return [String] attr_accessor :kind # [Output Only] Name of the resource. # Corresponds to the JSON property `name` # @return [String] attr_accessor :name # [Output Only] Full URL reference to the region which hosts the zone. # Corresponds to the JSON property `region` # @return [String] attr_accessor :region # [Output Only] Server-defined URL for the resource. # Corresponds to the JSON property `selfLink` # @return [String] attr_accessor :self_link # [Output Only] Status of the zone, either UP or DOWN. # Corresponds to the JSON property `status` # @return [String] attr_accessor :status # [Output Only] Reserved for future use. # Corresponds to the JSON property `supportsPzs` # @return [Boolean] attr_accessor :supports_pzs alias_method :supports_pzs?, :supports_pzs def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @available_cpu_platforms = args[:available_cpu_platforms] if args.key?(:available_cpu_platforms) @creation_timestamp = args[:creation_timestamp] if args.key?(:creation_timestamp) @deprecated = args[:deprecated] if args.key?(:deprecated) @description = args[:description] if args.key?(:description) @id = args[:id] if args.key?(:id) @kind = args[:kind] if args.key?(:kind) @name = args[:name] if args.key?(:name) @region = args[:region] if args.key?(:region) @self_link = args[:self_link] if args.key?(:self_link) @status = args[:status] if args.key?(:status) @supports_pzs = args[:supports_pzs] if args.key?(:supports_pzs) end end # Contains a list of zone resources. class ZoneList include Google::Apis::Core::Hashable # [Output Only] Unique identifier for the resource; defined by the server. # Corresponds to the JSON property `id` # @return [String] attr_accessor :id # A list of Zone resources. # Corresponds to the JSON property `items` # @return [Array] attr_accessor :items # Type of resource. # Corresponds to the JSON property `kind` # @return [String] attr_accessor :kind # [Output Only] This token allows you to get the next page of results for list # requests. If the number of results is larger than maxResults, use the # nextPageToken as a value for the query parameter pageToken in the next list # request. Subsequent list requests will have their own nextPageToken to # continue paging through the results. # Corresponds to the JSON property `nextPageToken` # @return [String] attr_accessor :next_page_token # [Output Only] Server-defined URL for this resource. # Corresponds to the JSON property `selfLink` # @return [String] attr_accessor :self_link # [Output Only] Informational warning message. # Corresponds to the JSON property `warning` # @return [Google::Apis::ComputeAlpha::ZoneList::Warning] attr_accessor :warning def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @id = args[:id] if args.key?(:id) @items = args[:items] if args.key?(:items) @kind = args[:kind] if args.key?(:kind) @next_page_token = args[:next_page_token] if args.key?(:next_page_token) @self_link = args[:self_link] if args.key?(:self_link) @warning = args[:warning] if args.key?(:warning) end # [Output Only] Informational warning message. class Warning include Google::Apis::Core::Hashable # [Output Only] A warning code, if applicable. For example, Compute Engine # returns NO_RESULTS_ON_PAGE if there are no results in the response. # Corresponds to the JSON property `code` # @return [String] attr_accessor :code # [Output Only] Metadata about this warning in key: value format. For example: " # data": [ ` "key": "scope", "value": "zones/us-east1-d" ` # Corresponds to the JSON property `data` # @return [Array] attr_accessor :data # [Output Only] A human-readable description of the warning code. # Corresponds to the JSON property `message` # @return [String] attr_accessor :message def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @code = args[:code] if args.key?(:code) @data = args[:data] if args.key?(:data) @message = args[:message] if args.key?(:message) end # class Datum include Google::Apis::Core::Hashable # [Output Only] A key that provides more detail on the warning being returned. # For example, for warnings where there are no results in a list request for a # particular zone, this key might be scope and the key value might be the zone # name. Other examples might be a key indicating a deprecated resource and a # suggested replacement, or a warning about invalid network settings (for # example, if an instance attempts to perform IP forwarding but is not enabled # for IP forwarding). # Corresponds to the JSON property `key` # @return [String] attr_accessor :key # [Output Only] A warning data value corresponding to the key. # 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 end end # class ZoneSetLabelsRequest include Google::Apis::Core::Hashable # The fingerprint of the previous set of labels for this resource, used to # detect conflicts. The fingerprint is initially generated by Compute Engine and # changes after every request to modify or update labels. You must always # provide an up-to-date fingerprint hash in order to update or change labels. # Make a get() request to the resource to get the latest fingerprint. # Corresponds to the JSON property `labelFingerprint` # NOTE: Values are automatically base64 encoded/decoded in the client library. # @return [String] attr_accessor :label_fingerprint # The labels to set for this resource. # Corresponds to the JSON property `labels` # @return [Hash] attr_accessor :labels def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @label_fingerprint = args[:label_fingerprint] if args.key?(:label_fingerprint) @labels = args[:labels] if args.key?(:labels) end end # class ZoneSetPolicyRequest include Google::Apis::Core::Hashable # Flatten Policy to create a backwacd compatible wire-format. Deprecated. Use ' # policy' to specify bindings. # Corresponds to the JSON property `bindings` # @return [Array] attr_accessor :bindings # Flatten Policy to create a backward compatible wire-format. Deprecated. Use ' # policy' to specify the etag. # Corresponds to the JSON property `etag` # NOTE: Values are automatically base64 encoded/decoded in the client library. # @return [String] attr_accessor :etag # An Identity and Access Management (IAM) policy, which specifies access # controls for Google Cloud resources. A `Policy` is a collection of `bindings`. # A `binding` binds one or more `members`, or principals, to a single `role`. # Principals can be user accounts, service accounts, Google groups, and domains ( # such as G Suite). A `role` is a named list of permissions; each `role` can be # an IAM predefined role or a user-created custom role. For some types of Google # Cloud resources, a `binding` can also specify a `condition`, which is a # logical expression that allows access to a resource only if the expression # evaluates to `true`. A condition can add constraints based on attributes of # the request, the resource, or both. To learn which resources support # conditions in their IAM policies, see the [IAM documentation](https://cloud. # google.com/iam/help/conditions/resource-policies). **JSON example:** ` " # bindings": [ ` "role": "roles/resourcemanager.organizationAdmin", "members": [ # "user:mike@example.com", "group:admins@example.com", "domain:google.com", " # serviceAccount:my-project-id@appspot.gserviceaccount.com" ] `, ` "role": " # roles/resourcemanager.organizationViewer", "members": [ "user:eve@example.com" # ], "condition": ` "title": "expirable access", "description": "Does not grant # access after Sep 2020", "expression": "request.time < timestamp('2020-10-01T00: # 00:00.000Z')", ` ` ], "etag": "BwWWja0YfJA=", "version": 3 ` **YAML example:** # bindings: - members: - user:mike@example.com - group:admins@example.com - # domain:google.com - serviceAccount:my-project-id@appspot.gserviceaccount.com # role: roles/resourcemanager.organizationAdmin - members: - user:eve@example. # com role: roles/resourcemanager.organizationViewer condition: title: expirable # access description: Does not grant access after Sep 2020 expression: request. # time < timestamp('2020-10-01T00:00:00.000Z') etag: BwWWja0YfJA= version: 3 For # a description of IAM and its features, see the [IAM documentation](https:// # cloud.google.com/iam/docs/). # Corresponds to the JSON property `policy` # @return [Google::Apis::ComputeAlpha::Policy] attr_accessor :policy def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @bindings = args[:bindings] if args.key?(:bindings) @etag = args[:etag] if args.key?(:etag) @policy = args[:policy] if args.key?(:policy) end end end end end