google-apis-compute_v1 0.20.0 → 0.24.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -464,15 +464,15 @@ module Google
464
464
  class AccessConfig
465
465
  include Google::Apis::Core::Hashable
466
466
 
467
- # [Output Only] The first IPv6 address of the external IPv6 range associated
468
- # with this instance, prefix length is stored in externalIpv6PrefixLength in
467
+ # The first IPv6 address of the external IPv6 range associated with this
468
+ # instance, prefix length is stored in externalIpv6PrefixLength in
469
469
  # ipv6AccessConfig. The field is output only, an IPv6 address from a subnetwork
470
470
  # associated with the instance will be allocated dynamically.
471
471
  # Corresponds to the JSON property `externalIpv6`
472
472
  # @return [String]
473
473
  attr_accessor :external_ipv6
474
474
 
475
- # [Output Only] The prefix length of the external IPv6 range.
475
+ # The prefix length of the external IPv6 range.
476
476
  # Corresponds to the JSON property `externalIpv6PrefixLength`
477
477
  # @return [Fixnum]
478
478
  attr_accessor :external_ipv6_prefix_length
@@ -633,14 +633,14 @@ module Google
633
633
  # regional internal IP address in a subnet of a VPC network) - VPC_PEERING for
634
634
  # global internal IP addresses used for private services access allocated ranges.
635
635
  # - NAT_AUTO for the regional external IP addresses used by Cloud NAT when
636
- # allocating addresses using . - IPSEC_INTERCONNECT for addresses created from a
637
- # private IP range that are reserved for a VLAN attachment in an *IPsec-
638
- # encrypted Cloud Interconnect* configuration. These addresses are regional
639
- # resources. Not currently available publicly. - `SHARED_LOADBALANCER_VIP` for
640
- # an internal IP address that is assigned to multiple internal forwarding rules.
641
- # - `PRIVATE_SERVICE_CONNECT` for a private network address that is used to
642
- # configure Private Service Connect. Only global internal addresses can use this
643
- # purpose.
636
+ # allocating addresses using automatic NAT IP address allocation. -
637
+ # IPSEC_INTERCONNECT for addresses created from a private IP range that are
638
+ # reserved for a VLAN attachment in an *IPsec-encrypted Cloud Interconnect*
639
+ # configuration. These addresses are regional resources. Not currently available
640
+ # publicly. - `SHARED_LOADBALANCER_VIP` for an internal IP address that is
641
+ # assigned to multiple internal forwarding rules. - `PRIVATE_SERVICE_CONNECT`
642
+ # for a private network address that is used to configure Private Service
643
+ # Connect. Only global internal addresses can use this purpose.
644
644
  # Corresponds to the JSON property `purpose`
645
645
  # @return [String]
646
646
  attr_accessor :purpose
@@ -1051,6 +1051,12 @@ module Google
1051
1051
  attr_accessor :enable_nested_virtualization
1052
1052
  alias_method :enable_nested_virtualization?, :enable_nested_virtualization
1053
1053
 
1054
+ # Whether to enable UEFI networking for instance creation.
1055
+ # Corresponds to the JSON property `enableUefiNetworking`
1056
+ # @return [Boolean]
1057
+ attr_accessor :enable_uefi_networking
1058
+ alias_method :enable_uefi_networking?, :enable_uefi_networking
1059
+
1054
1060
  # The number of threads per physical core. To disable simultaneous
1055
1061
  # multithreading (SMT) set this to 1. If unset, the maximum number of threads
1056
1062
  # supported per core by the underlying processor is assumed.
@@ -1065,6 +1071,7 @@ module Google
1065
1071
  # Update properties of this object
1066
1072
  def update!(**args)
1067
1073
  @enable_nested_virtualization = args[:enable_nested_virtualization] if args.key?(:enable_nested_virtualization)
1074
+ @enable_uefi_networking = args[:enable_uefi_networking] if args.key?(:enable_uefi_networking)
1068
1075
  @threads_per_core = args[:threads_per_core] if args.key?(:threads_per_core)
1069
1076
  end
1070
1077
  end
@@ -1315,7 +1322,8 @@ module Google
1315
1322
  # initializeParams.sourceSnapshot or disks.source is required except for local
1316
1323
  # SSD. If desired, you can also attach existing non-root persistent disks using
1317
1324
  # this property. This field is only applicable for persistent disks. Note that
1318
- # for InstanceTemplate, specify the disk name, not the URL for the disk.
1325
+ # for InstanceTemplate, specify the disk name for zonal disk, and the URL for
1326
+ # regional disk.
1319
1327
  # Corresponds to the JSON property `source`
1320
1328
  # @return [String]
1321
1329
  attr_accessor :source
@@ -1398,6 +1406,11 @@ module Google
1398
1406
  # @return [Hash<String,String>]
1399
1407
  attr_accessor :labels
1400
1408
 
1409
+ # A list of publicly visible licenses. Reserved for Google's use.
1410
+ # Corresponds to the JSON property `licenses`
1411
+ # @return [Array<String>]
1412
+ attr_accessor :licenses
1413
+
1401
1414
  # Specifies which action to take on instance update with this disk. Default is
1402
1415
  # to use the existing disk.
1403
1416
  # Corresponds to the JSON property `onUpdateAction`
@@ -1470,6 +1483,7 @@ module Google
1470
1483
  @disk_size_gb = args[:disk_size_gb] if args.key?(:disk_size_gb)
1471
1484
  @disk_type = args[:disk_type] if args.key?(:disk_type)
1472
1485
  @labels = args[:labels] if args.key?(:labels)
1486
+ @licenses = args[:licenses] if args.key?(:licenses)
1473
1487
  @on_update_action = args[:on_update_action] if args.key?(:on_update_action)
1474
1488
  @provisioned_iops = args[:provisioned_iops] if args.key?(:provisioned_iops)
1475
1489
  @resource_policies = args[:resource_policies] if args.key?(:resource_policies)
@@ -2633,6 +2647,12 @@ module Google
2633
2647
  # @return [Array<Google::Apis::ComputeV1::BackendBucketCdnPolicyBypassCacheOnRequestHeader>]
2634
2648
  attr_accessor :bypass_cache_on_request_headers
2635
2649
 
2650
+ # Message containing what to include in the cache key for a request for Cloud
2651
+ # CDN.
2652
+ # Corresponds to the JSON property `cacheKeyPolicy`
2653
+ # @return [Google::Apis::ComputeV1::BackendBucketCdnPolicyCacheKeyPolicy]
2654
+ attr_accessor :cache_key_policy
2655
+
2636
2656
  # Specifies the cache setting for all responses from this backend. The possible
2637
2657
  # values are: USE_ORIGIN_HEADERS Requires the origin to set valid caching
2638
2658
  # headers to cache content. Responses without these headers will not be cached
@@ -2756,6 +2776,7 @@ module Google
2756
2776
  # Update properties of this object
2757
2777
  def update!(**args)
2758
2778
  @bypass_cache_on_request_headers = args[:bypass_cache_on_request_headers] if args.key?(:bypass_cache_on_request_headers)
2779
+ @cache_key_policy = args[:cache_key_policy] if args.key?(:cache_key_policy)
2759
2780
  @cache_mode = args[:cache_mode] if args.key?(:cache_mode)
2760
2781
  @client_ttl = args[:client_ttl] if args.key?(:client_ttl)
2761
2782
  @default_ttl = args[:default_ttl] if args.key?(:default_ttl)
@@ -2791,6 +2812,34 @@ module Google
2791
2812
  end
2792
2813
  end
2793
2814
 
2815
+ # Message containing what to include in the cache key for a request for Cloud
2816
+ # CDN.
2817
+ class BackendBucketCdnPolicyCacheKeyPolicy
2818
+ include Google::Apis::Core::Hashable
2819
+
2820
+ # Allows HTTP request headers (by name) to be used in the cache key.
2821
+ # Corresponds to the JSON property `includeHttpHeaders`
2822
+ # @return [Array<String>]
2823
+ attr_accessor :include_http_headers
2824
+
2825
+ # Names of query string parameters to include in cache keys. All other
2826
+ # parameters will be excluded. '&' and '=' will be percent encoded and not
2827
+ # treated as delimiters.
2828
+ # Corresponds to the JSON property `queryStringWhitelist`
2829
+ # @return [Array<String>]
2830
+ attr_accessor :query_string_whitelist
2831
+
2832
+ def initialize(**args)
2833
+ update!(**args)
2834
+ end
2835
+
2836
+ # Update properties of this object
2837
+ def update!(**args)
2838
+ @include_http_headers = args[:include_http_headers] if args.key?(:include_http_headers)
2839
+ @query_string_whitelist = args[:query_string_whitelist] if args.key?(:query_string_whitelist)
2840
+ end
2841
+ end
2842
+
2794
2843
  # Specify CDN TTLs for response error codes.
2795
2844
  class BackendBucketCdnPolicyNegativeCachingPolicy
2796
2845
  include Google::Apis::Core::Hashable
@@ -3032,14 +3081,14 @@ module Google
3032
3081
 
3033
3082
  # For load balancers that have configurable failover: [Internal TCP/UDP Load
3034
3083
  # Balancing](https://cloud.google.com/load-balancing/docs/internal/failover-
3035
- # overview) and [external TCP/UDP Load Balancing](/network/networklb-failover-
3036
- # overview). On failover or failback, this field indicates whether connection
3037
- # draining will be honored. Google Cloud has a fixed connection draining timeout
3038
- # of 10 minutes. A setting of true terminates existing TCP connections to the
3039
- # active pool during failover and failback, immediately draining traffic. A
3040
- # setting of false allows existing TCP connections to persist, even on VMs no
3041
- # longer in the active pool, for up to the duration of the connection draining
3042
- # timeout (10 minutes).
3084
+ # overview) and [external TCP/UDP Load Balancing](https://cloud.google.com/load-
3085
+ # balancing/docs/network/networklb-failover-overview). On failover or failback,
3086
+ # this field indicates whether connection draining will be honored. Google Cloud
3087
+ # has a fixed connection draining timeout of 10 minutes. A setting of true
3088
+ # terminates existing TCP connections to the active pool during failover and
3089
+ # failback, immediately draining traffic. A setting of false allows existing TCP
3090
+ # connections to persist, even on VMs no longer in the active pool, for up to
3091
+ # the duration of the connection draining timeout (10 minutes).
3043
3092
  # Corresponds to the JSON property `failoverPolicy`
3044
3093
  # @return [Google::Apis::ComputeV1::BackendServiceFailoverPolicy]
3045
3094
  attr_accessor :failover_policy
@@ -3663,14 +3712,14 @@ module Google
3663
3712
 
3664
3713
  # For load balancers that have configurable failover: [Internal TCP/UDP Load
3665
3714
  # Balancing](https://cloud.google.com/load-balancing/docs/internal/failover-
3666
- # overview) and [external TCP/UDP Load Balancing](/network/networklb-failover-
3667
- # overview). On failover or failback, this field indicates whether connection
3668
- # draining will be honored. Google Cloud has a fixed connection draining timeout
3669
- # of 10 minutes. A setting of true terminates existing TCP connections to the
3670
- # active pool during failover and failback, immediately draining traffic. A
3671
- # setting of false allows existing TCP connections to persist, even on VMs no
3672
- # longer in the active pool, for up to the duration of the connection draining
3673
- # timeout (10 minutes).
3715
+ # overview) and [external TCP/UDP Load Balancing](https://cloud.google.com/load-
3716
+ # balancing/docs/network/networklb-failover-overview). On failover or failback,
3717
+ # this field indicates whether connection draining will be honored. Google Cloud
3718
+ # has a fixed connection draining timeout of 10 minutes. A setting of true
3719
+ # terminates existing TCP connections to the active pool during failover and
3720
+ # failback, immediately draining traffic. A setting of false allows existing TCP
3721
+ # connections to persist, even on VMs no longer in the active pool, for up to
3722
+ # the duration of the connection draining timeout (10 minutes).
3674
3723
  class BackendServiceFailoverPolicy
3675
3724
  include Google::Apis::Core::Hashable
3676
3725
 
@@ -3685,8 +3734,9 @@ module Google
3685
3734
  # distributed among all primary VMs when all primary and all backup backend VMs
3686
3735
  # are unhealthy. For load balancers that have configurable failover: [Internal
3687
3736
  # TCP/UDP Load Balancing](https://cloud.google.com/load-balancing/docs/internal/
3688
- # failover-overview) and [external TCP/UDP Load Balancing](/network/networklb-
3689
- # failover-overview). The default is false.
3737
+ # failover-overview) and [external TCP/UDP Load Balancing](https://cloud.google.
3738
+ # com/load-balancing/docs/network/networklb-failover-overview). The default is
3739
+ # false.
3690
3740
  # Corresponds to the JSON property `dropTrafficIfUnhealthy`
3691
3741
  # @return [Boolean]
3692
3742
  attr_accessor :drop_traffic_if_unhealthy
@@ -3698,7 +3748,8 @@ module Google
3698
3748
  # the total number of healthy primary VMs is less than this ratio. For load
3699
3749
  # balancers that have configurable failover: [Internal TCP/UDP Load Balancing](
3700
3750
  # https://cloud.google.com/load-balancing/docs/internal/failover-overview) and [
3701
- # external TCP/UDP Load Balancing](/network/networklb-failover-overview).
3751
+ # external TCP/UDP Load Balancing](https://cloud.google.com/load-balancing/docs/
3752
+ # network/networklb-failover-overview).
3702
3753
  # Corresponds to the JSON property `failoverRatio`
3703
3754
  # @return [Float]
3704
3755
  attr_accessor :failover_ratio
@@ -4512,6 +4563,17 @@ module Google
4512
4563
  attr_accessor :include_host
4513
4564
  alias_method :include_host?, :include_host
4514
4565
 
4566
+ # Allows HTTP request headers (by name) to be used in the cache key.
4567
+ # Corresponds to the JSON property `includeHttpHeaders`
4568
+ # @return [Array<String>]
4569
+ attr_accessor :include_http_headers
4570
+
4571
+ # Allows HTTP cookies (by name) to be used in the cache key. The name=value pair
4572
+ # will be used in the cache key Cloud CDN generates.
4573
+ # Corresponds to the JSON property `includeNamedCookies`
4574
+ # @return [Array<String>]
4575
+ attr_accessor :include_named_cookies
4576
+
4515
4577
  # If true, http and https requests will be cached separately.
4516
4578
  # Corresponds to the JSON property `includeProtocol`
4517
4579
  # @return [Boolean]
@@ -4550,6 +4612,8 @@ module Google
4550
4612
  # Update properties of this object
4551
4613
  def update!(**args)
4552
4614
  @include_host = args[:include_host] if args.key?(:include_host)
4615
+ @include_http_headers = args[:include_http_headers] if args.key?(:include_http_headers)
4616
+ @include_named_cookies = args[:include_named_cookies] if args.key?(:include_named_cookies)
4553
4617
  @include_protocol = args[:include_protocol] if args.key?(:include_protocol)
4554
4618
  @include_query_string = args[:include_query_string] if args.key?(:include_query_string)
4555
4619
  @query_string_blacklist = args[:query_string_blacklist] if args.key?(:query_string_blacklist)
@@ -4614,6 +4678,16 @@ module Google
4614
4678
  class Commitment
4615
4679
  include Google::Apis::Core::Hashable
4616
4680
 
4681
+ # Specifies whether to enable automatic renewal for the commitment. The default
4682
+ # value is false if not specified. The field can be updated until the day of the
4683
+ # commitment expiration at 12:00am PST. If the field is set to true, the
4684
+ # commitment will be automatically renewed for either one or three years
4685
+ # according to the terms of the existing commitment.
4686
+ # Corresponds to the JSON property `autoRenew`
4687
+ # @return [Boolean]
4688
+ attr_accessor :auto_renew
4689
+ alias_method :auto_renew?, :auto_renew
4690
+
4617
4691
  # The category of the commitment. Category MACHINE specifies commitments
4618
4692
  # composed of machine resources such as VCPU or MEMORY, listed in resources.
4619
4693
  # Category LICENSE specifies commitments composed of software licenses, listed
@@ -4724,6 +4798,7 @@ module Google
4724
4798
 
4725
4799
  # Update properties of this object
4726
4800
  def update!(**args)
4801
+ @auto_renew = args[:auto_renew] if args.key?(:auto_renew)
4727
4802
  @category = args[:category] if args.key?(:category)
4728
4803
  @creation_timestamp = args[:creation_timestamp] if args.key?(:creation_timestamp)
4729
4804
  @description = args[:description] if args.key?(:description)
@@ -8418,8 +8493,7 @@ module Google
8418
8493
  attr_accessor :self_link
8419
8494
 
8420
8495
  # Service Directory resources to register this forwarding rule with. Currently,
8421
- # only supports a single Service Directory resource. It is only supported for
8422
- # internal load balancing.
8496
+ # only supports a single Service Directory resource.
8423
8497
  # Corresponds to the JSON property `serviceDirectoryRegistrations`
8424
8498
  # @return [Array<Google::Apis::ComputeV1::ForwardingRuleServiceDirectoryRegistration>]
8425
8499
  attr_accessor :service_directory_registrations
@@ -9571,8 +9645,8 @@ module Google
9571
9645
  attr_accessor :timeout_sec
9572
9646
 
9573
9647
  # Specifies the type of the healthCheck, either TCP, SSL, HTTP, HTTPS or HTTP2.
9574
- # If not specified, the default is TCP. Exactly one of the protocol-specific
9575
- # health check field must be specified, which must match type field.
9648
+ # Exactly one of the protocol-specific health check field must be specified,
9649
+ # which must match type field.
9576
9650
  # Corresponds to the JSON property `type`
9577
9651
  # @return [String]
9578
9652
  attr_accessor :type
@@ -12253,6 +12327,17 @@ module Google
12253
12327
  # @return [Google::Apis::ComputeV1::ShieldedInstanceIntegrityPolicy]
12254
12328
  attr_accessor :shielded_instance_integrity_policy
12255
12329
 
12330
+ # Source machine image
12331
+ # Corresponds to the JSON property `sourceMachineImage`
12332
+ # @return [String]
12333
+ attr_accessor :source_machine_image
12334
+
12335
+ # Source machine image encryption key when creating an instance from a machine
12336
+ # image.
12337
+ # Corresponds to the JSON property `sourceMachineImageEncryptionKey`
12338
+ # @return [Google::Apis::ComputeV1::CustomerEncryptionKey]
12339
+ attr_accessor :source_machine_image_encryption_key
12340
+
12256
12341
  # [Output Only] Whether a VM has been restricted for start because Compute
12257
12342
  # Engine has detected suspicious activity.
12258
12343
  # Corresponds to the JSON property `startRestricted`
@@ -12325,6 +12410,8 @@ module Google
12325
12410
  @service_accounts = args[:service_accounts] if args.key?(:service_accounts)
12326
12411
  @shielded_instance_config = args[:shielded_instance_config] if args.key?(:shielded_instance_config)
12327
12412
  @shielded_instance_integrity_policy = args[:shielded_instance_integrity_policy] if args.key?(:shielded_instance_integrity_policy)
12413
+ @source_machine_image = args[:source_machine_image] if args.key?(:source_machine_image)
12414
+ @source_machine_image_encryption_key = args[:source_machine_image_encryption_key] if args.key?(:source_machine_image_encryption_key)
12328
12415
  @start_restricted = args[:start_restricted] if args.key?(:start_restricted)
12329
12416
  @status = args[:status] if args.key?(:status)
12330
12417
  @status_message = args[:status_message] if args.key?(:status_message)
@@ -13059,6 +13146,30 @@ module Google
13059
13146
  # @return [Fixnum]
13060
13147
  attr_accessor :restarting
13061
13148
 
13149
+ # [Output Only] The number of instances in the managed instance group that are
13150
+ # scheduled to be resumed or are currently being resumed.
13151
+ # Corresponds to the JSON property `resuming`
13152
+ # @return [Fixnum]
13153
+ attr_accessor :resuming
13154
+
13155
+ # [Output Only] The number of instances in the managed instance group that are
13156
+ # scheduled to be started or are currently being started.
13157
+ # Corresponds to the JSON property `starting`
13158
+ # @return [Fixnum]
13159
+ attr_accessor :starting
13160
+
13161
+ # [Output Only] The number of instances in the managed instance group that are
13162
+ # scheduled to be stopped or are currently being stopped.
13163
+ # Corresponds to the JSON property `stopping`
13164
+ # @return [Fixnum]
13165
+ attr_accessor :stopping
13166
+
13167
+ # [Output Only] The number of instances in the managed instance group that are
13168
+ # scheduled to be suspended or are currently being suspended.
13169
+ # Corresponds to the JSON property `suspending`
13170
+ # @return [Fixnum]
13171
+ attr_accessor :suspending
13172
+
13062
13173
  # [Output Only] The number of instances in the managed instance group that are
13063
13174
  # being verified. See the managedInstances[].currentAction property in the
13064
13175
  # listManagedInstances method documentation.
@@ -13080,6 +13191,10 @@ module Google
13080
13191
  @recreating = args[:recreating] if args.key?(:recreating)
13081
13192
  @refreshing = args[:refreshing] if args.key?(:refreshing)
13082
13193
  @restarting = args[:restarting] if args.key?(:restarting)
13194
+ @resuming = args[:resuming] if args.key?(:resuming)
13195
+ @starting = args[:starting] if args.key?(:starting)
13196
+ @stopping = args[:stopping] if args.key?(:stopping)
13197
+ @suspending = args[:suspending] if args.key?(:suspending)
13083
13198
  @verifying = args[:verifying] if args.key?(:verifying)
13084
13199
  end
13085
13200
  end
@@ -14852,7 +14967,15 @@ module Google
14852
14967
  # @return [Google::Apis::ComputeV1::ReservationAffinity]
14853
14968
  attr_accessor :reservation_affinity
14854
14969
 
14855
- # Resource policies (names, not ULRs) applied to instances created from these
14970
+ # Resource manager tags to be bound to the instance. Tag keys and values have
14971
+ # the same definition as resource manager tags. Keys must be in the format `
14972
+ # tagKeys/`tag_key_id``, and values are in the format `tagValues/456`. The field
14973
+ # is ignored (both PUT & PATCH) when empty.
14974
+ # Corresponds to the JSON property `resourceManagerTags`
14975
+ # @return [Hash<String,String>]
14976
+ attr_accessor :resource_manager_tags
14977
+
14978
+ # Resource policies (names, not URLs) applied to instances created from these
14856
14979
  # properties. Note that for MachineImage, this is not supported yet.
14857
14980
  # Corresponds to the JSON property `resourcePolicies`
14858
14981
  # @return [Array<String>]
@@ -14901,6 +15024,7 @@ module Google
14901
15024
  @network_performance_config = args[:network_performance_config] if args.key?(:network_performance_config)
14902
15025
  @private_ipv6_google_access = args[:private_ipv6_google_access] if args.key?(:private_ipv6_google_access)
14903
15026
  @reservation_affinity = args[:reservation_affinity] if args.key?(:reservation_affinity)
15027
+ @resource_manager_tags = args[:resource_manager_tags] if args.key?(:resource_manager_tags)
14904
15028
  @resource_policies = args[:resource_policies] if args.key?(:resource_policies)
14905
15029
  @scheduling = args[:scheduling] if args.key?(:scheduling)
14906
15030
  @service_accounts = args[:service_accounts] if args.key?(:service_accounts)
@@ -15744,6 +15868,17 @@ module Google
15744
15868
  # @return [String]
15745
15869
  attr_accessor :bandwidth
15746
15870
 
15871
+ # Up to 16 candidate prefixes that control the allocation of
15872
+ # cloudRouterIpv6Address and customerRouterIpv6Address for this attachment. Each
15873
+ # prefix must be in the Global Unique Address (GUA) space. It is highly
15874
+ # recommended that it be in a range owned by the requestor. A GUA in a range
15875
+ # owned by Google will cause the request to fail. Google will select an
15876
+ # available prefix from the supplied candidates or fail the request. If not
15877
+ # supplied, a /125 from a Google-owned GUA block will be selected.
15878
+ # Corresponds to the JSON property `candidateIpv6Subnets`
15879
+ # @return [Array<String>]
15880
+ attr_accessor :candidate_ipv6_subnets
15881
+
15747
15882
  # Up to 16 candidate prefixes that can be used to restrict the allocation of
15748
15883
  # cloudRouterIpAddress and customerRouterIpAddress for this attachment. All
15749
15884
  # prefixes must be within link-local address space (169.254.0.0/16) and must be /
@@ -15761,6 +15896,20 @@ module Google
15761
15896
  # @return [String]
15762
15897
  attr_accessor :cloud_router_ip_address
15763
15898
 
15899
+ # [Output Only] IPv6 address + prefix length to be configured on Cloud Router
15900
+ # Interface for this interconnect attachment.
15901
+ # Corresponds to the JSON property `cloudRouterIpv6Address`
15902
+ # @return [String]
15903
+ attr_accessor :cloud_router_ipv6_address
15904
+
15905
+ # If supplied, the interface id (index within the subnet) to be used for the
15906
+ # cloud router address. The id must be in the range of 1 to 6. If a subnet mask
15907
+ # is supplied, it must be /125, and the subnet should either be 0 or match the
15908
+ # selected subnet.
15909
+ # Corresponds to the JSON property `cloudRouterIpv6InterfaceId`
15910
+ # @return [String]
15911
+ attr_accessor :cloud_router_ipv6_interface_id
15912
+
15764
15913
  # [Output Only] Creation timestamp in RFC3339 text format.
15765
15914
  # Corresponds to the JSON property `creationTimestamp`
15766
15915
  # @return [String]
@@ -15772,7 +15921,24 @@ module Google
15772
15921
  # @return [String]
15773
15922
  attr_accessor :customer_router_ip_address
15774
15923
 
15775
- # [Output Only] Dataplane version for this InterconnectAttachment.
15924
+ # [Output Only] IPv6 address + prefix length to be configured on the customer
15925
+ # router subinterface for this interconnect attachment.
15926
+ # Corresponds to the JSON property `customerRouterIpv6Address`
15927
+ # @return [String]
15928
+ attr_accessor :customer_router_ipv6_address
15929
+
15930
+ # If supplied, the interface id (index within the subnet) to be used for the
15931
+ # customer router address. The id must be in the range of 1 to 6. If a subnet
15932
+ # mask is supplied, it must be /125, and the subnet should either be 0 or match
15933
+ # the selected subnet.
15934
+ # Corresponds to the JSON property `customerRouterIpv6InterfaceId`
15935
+ # @return [String]
15936
+ attr_accessor :customer_router_ipv6_interface_id
15937
+
15938
+ # [Output only for types PARTNER and DEDICATED. Not present for PARTNER_PROVIDER.
15939
+ # ] Dataplane version for this InterconnectAttachment. This field is only
15940
+ # present for Dataplane version 2 and higher. Absence of this field in the API
15941
+ # output indicates that the Dataplane is version 1.
15776
15942
  # Corresponds to the JSON property `dataplaneVersion`
15777
15943
  # @return [Fixnum]
15778
15944
  attr_accessor :dataplane_version
@@ -15931,6 +16097,14 @@ module Google
15931
16097
  # @return [String]
15932
16098
  attr_accessor :self_link
15933
16099
 
16100
+ # The stack type for this interconnect attachment to identify whether the IPv6
16101
+ # feature is enabled or not. If not specified, IPV4_ONLY will be used. This
16102
+ # field can be both set at interconnect attachments creation and update
16103
+ # interconnect attachment operations.
16104
+ # Corresponds to the JSON property `stackType`
16105
+ # @return [String]
16106
+ attr_accessor :stack_type
16107
+
15934
16108
  # [Output Only] The current state of this attachment's functionality. Enum
15935
16109
  # values ACTIVE and UNPROVISIONED are shared by DEDICATED/PRIVATE, PARTNER, and
15936
16110
  # PARTNER_PROVIDER interconnect attachments, while enum values PENDING_PARTNER,
@@ -15973,10 +16147,15 @@ module Google
15973
16147
  def update!(**args)
15974
16148
  @admin_enabled = args[:admin_enabled] if args.key?(:admin_enabled)
15975
16149
  @bandwidth = args[:bandwidth] if args.key?(:bandwidth)
16150
+ @candidate_ipv6_subnets = args[:candidate_ipv6_subnets] if args.key?(:candidate_ipv6_subnets)
15976
16151
  @candidate_subnets = args[:candidate_subnets] if args.key?(:candidate_subnets)
15977
16152
  @cloud_router_ip_address = args[:cloud_router_ip_address] if args.key?(:cloud_router_ip_address)
16153
+ @cloud_router_ipv6_address = args[:cloud_router_ipv6_address] if args.key?(:cloud_router_ipv6_address)
16154
+ @cloud_router_ipv6_interface_id = args[:cloud_router_ipv6_interface_id] if args.key?(:cloud_router_ipv6_interface_id)
15978
16155
  @creation_timestamp = args[:creation_timestamp] if args.key?(:creation_timestamp)
15979
16156
  @customer_router_ip_address = args[:customer_router_ip_address] if args.key?(:customer_router_ip_address)
16157
+ @customer_router_ipv6_address = args[:customer_router_ipv6_address] if args.key?(:customer_router_ipv6_address)
16158
+ @customer_router_ipv6_interface_id = args[:customer_router_ipv6_interface_id] if args.key?(:customer_router_ipv6_interface_id)
15980
16159
  @dataplane_version = args[:dataplane_version] if args.key?(:dataplane_version)
15981
16160
  @description = args[:description] if args.key?(:description)
15982
16161
  @edge_availability_domain = args[:edge_availability_domain] if args.key?(:edge_availability_domain)
@@ -15997,6 +16176,7 @@ module Google
15997
16176
  @router = args[:router] if args.key?(:router)
15998
16177
  @satisfies_pzs = args[:satisfies_pzs] if args.key?(:satisfies_pzs)
15999
16178
  @self_link = args[:self_link] if args.key?(:self_link)
16179
+ @stack_type = args[:stack_type] if args.key?(:stack_type)
16000
16180
  @state = args[:state] if args.key?(:state)
16001
16181
  @type = args[:type] if args.key?(:type)
16002
16182
  @vlan_tag8021q = args[:vlan_tag8021q] if args.key?(:vlan_tag8021q)
@@ -17512,7 +17692,7 @@ module Google
17512
17692
  class LocationPolicyLocation
17513
17693
  include Google::Apis::Core::Hashable
17514
17694
 
17515
- # Preference for a given location: ALLOW or DENY.
17695
+ # Preference for a given location.
17516
17696
  # Corresponds to the JSON property `preference`
17517
17697
  # @return [String]
17518
17698
  attr_accessor :preference
@@ -17658,99 +17838,127 @@ module Google
17658
17838
  end
17659
17839
  end
17660
17840
 
17661
- # Represents a Machine Type resource. You can use specific machine types for
17662
- # your VM instances based on performance and pricing requirements. For more
17663
- # information, read Machine Types.
17664
- class MachineType
17841
+ # Represents a machine image resource. A machine image is a Compute Engine
17842
+ # resource that stores all the configuration, metadata, permissions, and data
17843
+ # from one or more disks required to create a Virtual machine (VM) instance. For
17844
+ # more information, see Machine images.
17845
+ class MachineImage
17665
17846
  include Google::Apis::Core::Hashable
17666
17847
 
17667
- # [Output Only] A list of accelerator configurations assigned to this machine
17668
- # type.
17669
- # Corresponds to the JSON property `accelerators`
17670
- # @return [Array<Google::Apis::ComputeV1::MachineType::Accelerator>]
17671
- attr_accessor :accelerators
17672
-
17673
- # [Output Only] Creation timestamp in RFC3339 text format.
17848
+ # [Output Only] The creation timestamp for this machine image in RFC3339 text
17849
+ # format.
17674
17850
  # Corresponds to the JSON property `creationTimestamp`
17675
17851
  # @return [String]
17676
17852
  attr_accessor :creation_timestamp
17677
17853
 
17678
- # Deprecation status for a public resource.
17679
- # Corresponds to the JSON property `deprecated`
17680
- # @return [Google::Apis::ComputeV1::DeprecationStatus]
17681
- attr_accessor :deprecated
17682
-
17683
- # [Output Only] An optional textual description of the resource.
17854
+ # An optional description of this resource. Provide this property when you
17855
+ # create the resource.
17684
17856
  # Corresponds to the JSON property `description`
17685
17857
  # @return [String]
17686
17858
  attr_accessor :description
17687
17859
 
17688
- # [Output Only] The number of virtual CPUs that are available to the instance.
17689
- # Corresponds to the JSON property `guestCpus`
17690
- # @return [Fixnum]
17691
- attr_accessor :guest_cpus
17860
+ # [Input Only] Whether to attempt an application consistent machine image by
17861
+ # informing the OS to prepare for the snapshot process. Currently only supported
17862
+ # on Windows instances using the Volume Shadow Copy Service (VSS).
17863
+ # Corresponds to the JSON property `guestFlush`
17864
+ # @return [Boolean]
17865
+ attr_accessor :guest_flush
17866
+ alias_method :guest_flush?, :guest_flush
17692
17867
 
17693
- # [Output Only] The unique identifier for the resource. This identifier is
17694
- # defined by the server.
17868
+ # [Output Only] A unique identifier for this machine image. The server defines
17869
+ # this identifier.
17695
17870
  # Corresponds to the JSON property `id`
17696
17871
  # @return [Fixnum]
17697
17872
  attr_accessor :id
17698
17873
 
17699
- # [Deprecated] This property is deprecated and will never be populated with any
17700
- # relevant values.
17701
- # Corresponds to the JSON property `imageSpaceGb`
17702
- # @return [Fixnum]
17703
- attr_accessor :image_space_gb
17704
-
17705
- # [Output Only] Whether this machine type has a shared CPU. See Shared-core
17706
- # machine types for more information.
17707
- # Corresponds to the JSON property `isSharedCpu`
17708
- # @return [Boolean]
17709
- attr_accessor :is_shared_cpu
17710
- alias_method :is_shared_cpu?, :is_shared_cpu
17874
+ # [Output Only] Properties of source instance
17875
+ # Corresponds to the JSON property `instanceProperties`
17876
+ # @return [Google::Apis::ComputeV1::InstanceProperties]
17877
+ attr_accessor :instance_properties
17711
17878
 
17712
- # [Output Only] The type of the resource. Always compute#machineType for machine
17713
- # types.
17879
+ # [Output Only] The resource type, which is always compute#machineImage for
17880
+ # machine image.
17714
17881
  # Corresponds to the JSON property `kind`
17715
17882
  # @return [String]
17716
17883
  attr_accessor :kind
17717
17884
 
17718
- # [Output Only] Maximum persistent disks allowed.
17719
- # Corresponds to the JSON property `maximumPersistentDisks`
17720
- # @return [Fixnum]
17721
- attr_accessor :maximum_persistent_disks
17722
-
17723
- # [Output Only] Maximum total persistent disks size (GB) allowed.
17724
- # Corresponds to the JSON property `maximumPersistentDisksSizeGb`
17725
- # @return [Fixnum]
17726
- attr_accessor :maximum_persistent_disks_size_gb
17727
-
17728
- # [Output Only] The amount of physical memory available to the instance, defined
17729
- # in MB.
17730
- # Corresponds to the JSON property `memoryMb`
17731
- # @return [Fixnum]
17732
- attr_accessor :memory_mb
17885
+ # Encrypts the machine image using a customer-supplied encryption key. After you
17886
+ # encrypt a machine image using a customer-supplied key, you must provide the
17887
+ # same key if you use the machine image later. For example, you must provide the
17888
+ # encryption key when you create an instance from the encrypted machine image in
17889
+ # a future request. Customer-supplied encryption keys do not protect access to
17890
+ # metadata of the machine image. If you do not provide an encryption key when
17891
+ # creating the machine image, then the machine image will be encrypted using an
17892
+ # automatically generated key and you do not need to provide a key to use the
17893
+ # machine image later.
17894
+ # Corresponds to the JSON property `machineImageEncryptionKey`
17895
+ # @return [Google::Apis::ComputeV1::CustomerEncryptionKey]
17896
+ attr_accessor :machine_image_encryption_key
17733
17897
 
17734
- # [Output Only] Name of the resource.
17898
+ # Name of the resource; provided by the client when the resource is created. The
17899
+ # name must be 1-63 characters long, and comply with RFC1035. Specifically, the
17900
+ # name must be 1-63 characters long and match the regular expression `[a-z]([-a-
17901
+ # z0-9]*[a-z0-9])?` which means the first character must be a lowercase letter,
17902
+ # and all following characters must be a dash, lowercase letter, or digit,
17903
+ # except the last character, which cannot be a dash.
17735
17904
  # Corresponds to the JSON property `name`
17736
17905
  # @return [String]
17737
17906
  attr_accessor :name
17738
17907
 
17739
- # [Output Only] A list of extended scratch disks assigned to the instance.
17740
- # Corresponds to the JSON property `scratchDisks`
17741
- # @return [Array<Google::Apis::ComputeV1::MachineType::ScratchDisk>]
17742
- attr_accessor :scratch_disks
17908
+ # [Output Only] Reserved for future use.
17909
+ # Corresponds to the JSON property `satisfiesPzs`
17910
+ # @return [Boolean]
17911
+ attr_accessor :satisfies_pzs
17912
+ alias_method :satisfies_pzs?, :satisfies_pzs
17743
17913
 
17744
- # [Output Only] Server-defined URL for the resource.
17914
+ # An array of Machine Image specific properties for disks attached to the source
17915
+ # instance
17916
+ # Corresponds to the JSON property `savedDisks`
17917
+ # @return [Array<Google::Apis::ComputeV1::SavedDisk>]
17918
+ attr_accessor :saved_disks
17919
+
17920
+ # [Output Only] The URL for this machine image. The server defines this URL.
17745
17921
  # Corresponds to the JSON property `selfLink`
17746
17922
  # @return [String]
17747
17923
  attr_accessor :self_link
17748
17924
 
17749
- # [Output Only] The name of the zone where the machine type resides, such as us-
17750
- # central1-a.
17751
- # Corresponds to the JSON property `zone`
17925
+ # [Input Only] The customer-supplied encryption key of the disks attached to the
17926
+ # source instance. Required if the source disk is protected by a customer-
17927
+ # supplied encryption key.
17928
+ # Corresponds to the JSON property `sourceDiskEncryptionKeys`
17929
+ # @return [Array<Google::Apis::ComputeV1::SourceDiskEncryptionKey>]
17930
+ attr_accessor :source_disk_encryption_keys
17931
+
17932
+ # The source instance used to create the machine image. You can provide this as
17933
+ # a partial or full URL to the resource. For example, the following are valid
17934
+ # values: - https://www.googleapis.com/compute/v1/projects/project/zones/zone /
17935
+ # instances/instance - projects/project/zones/zone/instances/instance
17936
+ # Corresponds to the JSON property `sourceInstance`
17752
17937
  # @return [String]
17753
- attr_accessor :zone
17938
+ attr_accessor :source_instance
17939
+
17940
+ # DEPRECATED: Please use compute#instanceProperties instead. New properties will
17941
+ # not be added to this field.
17942
+ # Corresponds to the JSON property `sourceInstanceProperties`
17943
+ # @return [Google::Apis::ComputeV1::SourceInstanceProperties]
17944
+ attr_accessor :source_instance_properties
17945
+
17946
+ # [Output Only] The status of the machine image. One of the following values:
17947
+ # INVALID, CREATING, READY, DELETING, and UPLOADING.
17948
+ # Corresponds to the JSON property `status`
17949
+ # @return [String]
17950
+ attr_accessor :status
17951
+
17952
+ # The regional or multi-regional Cloud Storage bucket location where the machine
17953
+ # image is stored.
17954
+ # Corresponds to the JSON property `storageLocations`
17955
+ # @return [Array<String>]
17956
+ attr_accessor :storage_locations
17957
+
17958
+ # [Output Only] Total size of the storage used by the machine image.
17959
+ # Corresponds to the JSON property `totalStorageBytes`
17960
+ # @return [Fixnum]
17961
+ attr_accessor :total_storage_bytes
17754
17962
 
17755
17963
  def initialize(**args)
17756
17964
  update!(**args)
@@ -17758,71 +17966,28 @@ module Google
17758
17966
 
17759
17967
  # Update properties of this object
17760
17968
  def update!(**args)
17761
- @accelerators = args[:accelerators] if args.key?(:accelerators)
17762
17969
  @creation_timestamp = args[:creation_timestamp] if args.key?(:creation_timestamp)
17763
- @deprecated = args[:deprecated] if args.key?(:deprecated)
17764
17970
  @description = args[:description] if args.key?(:description)
17765
- @guest_cpus = args[:guest_cpus] if args.key?(:guest_cpus)
17971
+ @guest_flush = args[:guest_flush] if args.key?(:guest_flush)
17766
17972
  @id = args[:id] if args.key?(:id)
17767
- @image_space_gb = args[:image_space_gb] if args.key?(:image_space_gb)
17768
- @is_shared_cpu = args[:is_shared_cpu] if args.key?(:is_shared_cpu)
17973
+ @instance_properties = args[:instance_properties] if args.key?(:instance_properties)
17769
17974
  @kind = args[:kind] if args.key?(:kind)
17770
- @maximum_persistent_disks = args[:maximum_persistent_disks] if args.key?(:maximum_persistent_disks)
17771
- @maximum_persistent_disks_size_gb = args[:maximum_persistent_disks_size_gb] if args.key?(:maximum_persistent_disks_size_gb)
17772
- @memory_mb = args[:memory_mb] if args.key?(:memory_mb)
17975
+ @machine_image_encryption_key = args[:machine_image_encryption_key] if args.key?(:machine_image_encryption_key)
17773
17976
  @name = args[:name] if args.key?(:name)
17774
- @scratch_disks = args[:scratch_disks] if args.key?(:scratch_disks)
17977
+ @satisfies_pzs = args[:satisfies_pzs] if args.key?(:satisfies_pzs)
17978
+ @saved_disks = args[:saved_disks] if args.key?(:saved_disks)
17775
17979
  @self_link = args[:self_link] if args.key?(:self_link)
17776
- @zone = args[:zone] if args.key?(:zone)
17777
- end
17778
-
17779
- #
17780
- class Accelerator
17781
- include Google::Apis::Core::Hashable
17782
-
17783
- # Number of accelerator cards exposed to the guest.
17784
- # Corresponds to the JSON property `guestAcceleratorCount`
17785
- # @return [Fixnum]
17786
- attr_accessor :guest_accelerator_count
17787
-
17788
- # The accelerator type resource name, not a full URL, e.g. 'nvidia-tesla-k80'.
17789
- # Corresponds to the JSON property `guestAcceleratorType`
17790
- # @return [String]
17791
- attr_accessor :guest_accelerator_type
17792
-
17793
- def initialize(**args)
17794
- update!(**args)
17795
- end
17796
-
17797
- # Update properties of this object
17798
- def update!(**args)
17799
- @guest_accelerator_count = args[:guest_accelerator_count] if args.key?(:guest_accelerator_count)
17800
- @guest_accelerator_type = args[:guest_accelerator_type] if args.key?(:guest_accelerator_type)
17801
- end
17802
- end
17803
-
17804
- #
17805
- class ScratchDisk
17806
- include Google::Apis::Core::Hashable
17807
-
17808
- # Size of the scratch disk, defined in GB.
17809
- # Corresponds to the JSON property `diskGb`
17810
- # @return [Fixnum]
17811
- attr_accessor :disk_gb
17812
-
17813
- def initialize(**args)
17814
- update!(**args)
17815
- end
17816
-
17817
- # Update properties of this object
17818
- def update!(**args)
17819
- @disk_gb = args[:disk_gb] if args.key?(:disk_gb)
17820
- end
17980
+ @source_disk_encryption_keys = args[:source_disk_encryption_keys] if args.key?(:source_disk_encryption_keys)
17981
+ @source_instance = args[:source_instance] if args.key?(:source_instance)
17982
+ @source_instance_properties = args[:source_instance_properties] if args.key?(:source_instance_properties)
17983
+ @status = args[:status] if args.key?(:status)
17984
+ @storage_locations = args[:storage_locations] if args.key?(:storage_locations)
17985
+ @total_storage_bytes = args[:total_storage_bytes] if args.key?(:total_storage_bytes)
17821
17986
  end
17822
17987
  end
17823
17988
 
17824
- #
17825
- class MachineTypeAggregatedList
17989
+ # A list of machine images.
17990
+ class MachineImageList
17826
17991
  include Google::Apis::Core::Hashable
17827
17992
 
17828
17993
  # [Output Only] Unique identifier for the resource; defined by the server.
@@ -17830,13 +17995,13 @@ module Google
17830
17995
  # @return [String]
17831
17996
  attr_accessor :id
17832
17997
 
17833
- # A list of MachineTypesScopedList resources.
17998
+ # A list of MachineImage resources.
17834
17999
  # Corresponds to the JSON property `items`
17835
- # @return [Hash<String,Google::Apis::ComputeV1::MachineTypesScopedList>]
18000
+ # @return [Array<Google::Apis::ComputeV1::MachineImage>]
17836
18001
  attr_accessor :items
17837
18002
 
17838
- # [Output Only] Type of resource. Always compute#machineTypeAggregatedList for
17839
- # aggregated lists of machine types.
18003
+ # [Output Only] The resource type, which is always compute#
18004
+ # machineImagesListResponse for machine image lists.
17840
18005
  # Corresponds to the JSON property `kind`
17841
18006
  # @return [String]
17842
18007
  attr_accessor :kind
@@ -17855,14 +18020,9 @@ module Google
17855
18020
  # @return [String]
17856
18021
  attr_accessor :self_link
17857
18022
 
17858
- # [Output Only] Unreachable resources.
17859
- # Corresponds to the JSON property `unreachables`
17860
- # @return [Array<String>]
17861
- attr_accessor :unreachables
17862
-
17863
18023
  # [Output Only] Informational warning message.
17864
18024
  # Corresponds to the JSON property `warning`
17865
- # @return [Google::Apis::ComputeV1::MachineTypeAggregatedList::Warning]
18025
+ # @return [Google::Apis::ComputeV1::MachineImageList::Warning]
17866
18026
  attr_accessor :warning
17867
18027
 
17868
18028
  def initialize(**args)
@@ -17876,7 +18036,6 @@ module Google
17876
18036
  @kind = args[:kind] if args.key?(:kind)
17877
18037
  @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
17878
18038
  @self_link = args[:self_link] if args.key?(:self_link)
17879
- @unreachables = args[:unreachables] if args.key?(:unreachables)
17880
18039
  @warning = args[:warning] if args.key?(:warning)
17881
18040
  end
17882
18041
 
@@ -17893,7 +18052,294 @@ module Google
17893
18052
  # [Output Only] Metadata about this warning in key: value format. For example: "
17894
18053
  # data": [ ` "key": "scope", "value": "zones/us-east1-d" `
17895
18054
  # Corresponds to the JSON property `data`
17896
- # @return [Array<Google::Apis::ComputeV1::MachineTypeAggregatedList::Warning::Datum>]
18055
+ # @return [Array<Google::Apis::ComputeV1::MachineImageList::Warning::Datum>]
18056
+ attr_accessor :data
18057
+
18058
+ # [Output Only] A human-readable description of the warning code.
18059
+ # Corresponds to the JSON property `message`
18060
+ # @return [String]
18061
+ attr_accessor :message
18062
+
18063
+ def initialize(**args)
18064
+ update!(**args)
18065
+ end
18066
+
18067
+ # Update properties of this object
18068
+ def update!(**args)
18069
+ @code = args[:code] if args.key?(:code)
18070
+ @data = args[:data] if args.key?(:data)
18071
+ @message = args[:message] if args.key?(:message)
18072
+ end
18073
+
18074
+ #
18075
+ class Datum
18076
+ include Google::Apis::Core::Hashable
18077
+
18078
+ # [Output Only] A key that provides more detail on the warning being returned.
18079
+ # For example, for warnings where there are no results in a list request for a
18080
+ # particular zone, this key might be scope and the key value might be the zone
18081
+ # name. Other examples might be a key indicating a deprecated resource and a
18082
+ # suggested replacement, or a warning about invalid network settings (for
18083
+ # example, if an instance attempts to perform IP forwarding but is not enabled
18084
+ # for IP forwarding).
18085
+ # Corresponds to the JSON property `key`
18086
+ # @return [String]
18087
+ attr_accessor :key
18088
+
18089
+ # [Output Only] A warning data value corresponding to the key.
18090
+ # Corresponds to the JSON property `value`
18091
+ # @return [String]
18092
+ attr_accessor :value
18093
+
18094
+ def initialize(**args)
18095
+ update!(**args)
18096
+ end
18097
+
18098
+ # Update properties of this object
18099
+ def update!(**args)
18100
+ @key = args[:key] if args.key?(:key)
18101
+ @value = args[:value] if args.key?(:value)
18102
+ end
18103
+ end
18104
+ end
18105
+ end
18106
+
18107
+ # Represents a Machine Type resource. You can use specific machine types for
18108
+ # your VM instances based on performance and pricing requirements. For more
18109
+ # information, read Machine Types.
18110
+ class MachineType
18111
+ include Google::Apis::Core::Hashable
18112
+
18113
+ # [Output Only] A list of accelerator configurations assigned to this machine
18114
+ # type.
18115
+ # Corresponds to the JSON property `accelerators`
18116
+ # @return [Array<Google::Apis::ComputeV1::MachineType::Accelerator>]
18117
+ attr_accessor :accelerators
18118
+
18119
+ # [Output Only] Creation timestamp in RFC3339 text format.
18120
+ # Corresponds to the JSON property `creationTimestamp`
18121
+ # @return [String]
18122
+ attr_accessor :creation_timestamp
18123
+
18124
+ # Deprecation status for a public resource.
18125
+ # Corresponds to the JSON property `deprecated`
18126
+ # @return [Google::Apis::ComputeV1::DeprecationStatus]
18127
+ attr_accessor :deprecated
18128
+
18129
+ # [Output Only] An optional textual description of the resource.
18130
+ # Corresponds to the JSON property `description`
18131
+ # @return [String]
18132
+ attr_accessor :description
18133
+
18134
+ # [Output Only] The number of virtual CPUs that are available to the instance.
18135
+ # Corresponds to the JSON property `guestCpus`
18136
+ # @return [Fixnum]
18137
+ attr_accessor :guest_cpus
18138
+
18139
+ # [Output Only] The unique identifier for the resource. This identifier is
18140
+ # defined by the server.
18141
+ # Corresponds to the JSON property `id`
18142
+ # @return [Fixnum]
18143
+ attr_accessor :id
18144
+
18145
+ # [Deprecated] This property is deprecated and will never be populated with any
18146
+ # relevant values.
18147
+ # Corresponds to the JSON property `imageSpaceGb`
18148
+ # @return [Fixnum]
18149
+ attr_accessor :image_space_gb
18150
+
18151
+ # [Output Only] Whether this machine type has a shared CPU. See Shared-core
18152
+ # machine types for more information.
18153
+ # Corresponds to the JSON property `isSharedCpu`
18154
+ # @return [Boolean]
18155
+ attr_accessor :is_shared_cpu
18156
+ alias_method :is_shared_cpu?, :is_shared_cpu
18157
+
18158
+ # [Output Only] The type of the resource. Always compute#machineType for machine
18159
+ # types.
18160
+ # Corresponds to the JSON property `kind`
18161
+ # @return [String]
18162
+ attr_accessor :kind
18163
+
18164
+ # [Output Only] Maximum persistent disks allowed.
18165
+ # Corresponds to the JSON property `maximumPersistentDisks`
18166
+ # @return [Fixnum]
18167
+ attr_accessor :maximum_persistent_disks
18168
+
18169
+ # [Output Only] Maximum total persistent disks size (GB) allowed.
18170
+ # Corresponds to the JSON property `maximumPersistentDisksSizeGb`
18171
+ # @return [Fixnum]
18172
+ attr_accessor :maximum_persistent_disks_size_gb
18173
+
18174
+ # [Output Only] The amount of physical memory available to the instance, defined
18175
+ # in MB.
18176
+ # Corresponds to the JSON property `memoryMb`
18177
+ # @return [Fixnum]
18178
+ attr_accessor :memory_mb
18179
+
18180
+ # [Output Only] Name of the resource.
18181
+ # Corresponds to the JSON property `name`
18182
+ # @return [String]
18183
+ attr_accessor :name
18184
+
18185
+ # [Output Only] A list of extended scratch disks assigned to the instance.
18186
+ # Corresponds to the JSON property `scratchDisks`
18187
+ # @return [Array<Google::Apis::ComputeV1::MachineType::ScratchDisk>]
18188
+ attr_accessor :scratch_disks
18189
+
18190
+ # [Output Only] Server-defined URL for the resource.
18191
+ # Corresponds to the JSON property `selfLink`
18192
+ # @return [String]
18193
+ attr_accessor :self_link
18194
+
18195
+ # [Output Only] The name of the zone where the machine type resides, such as us-
18196
+ # central1-a.
18197
+ # Corresponds to the JSON property `zone`
18198
+ # @return [String]
18199
+ attr_accessor :zone
18200
+
18201
+ def initialize(**args)
18202
+ update!(**args)
18203
+ end
18204
+
18205
+ # Update properties of this object
18206
+ def update!(**args)
18207
+ @accelerators = args[:accelerators] if args.key?(:accelerators)
18208
+ @creation_timestamp = args[:creation_timestamp] if args.key?(:creation_timestamp)
18209
+ @deprecated = args[:deprecated] if args.key?(:deprecated)
18210
+ @description = args[:description] if args.key?(:description)
18211
+ @guest_cpus = args[:guest_cpus] if args.key?(:guest_cpus)
18212
+ @id = args[:id] if args.key?(:id)
18213
+ @image_space_gb = args[:image_space_gb] if args.key?(:image_space_gb)
18214
+ @is_shared_cpu = args[:is_shared_cpu] if args.key?(:is_shared_cpu)
18215
+ @kind = args[:kind] if args.key?(:kind)
18216
+ @maximum_persistent_disks = args[:maximum_persistent_disks] if args.key?(:maximum_persistent_disks)
18217
+ @maximum_persistent_disks_size_gb = args[:maximum_persistent_disks_size_gb] if args.key?(:maximum_persistent_disks_size_gb)
18218
+ @memory_mb = args[:memory_mb] if args.key?(:memory_mb)
18219
+ @name = args[:name] if args.key?(:name)
18220
+ @scratch_disks = args[:scratch_disks] if args.key?(:scratch_disks)
18221
+ @self_link = args[:self_link] if args.key?(:self_link)
18222
+ @zone = args[:zone] if args.key?(:zone)
18223
+ end
18224
+
18225
+ #
18226
+ class Accelerator
18227
+ include Google::Apis::Core::Hashable
18228
+
18229
+ # Number of accelerator cards exposed to the guest.
18230
+ # Corresponds to the JSON property `guestAcceleratorCount`
18231
+ # @return [Fixnum]
18232
+ attr_accessor :guest_accelerator_count
18233
+
18234
+ # The accelerator type resource name, not a full URL, e.g. 'nvidia-tesla-k80'.
18235
+ # Corresponds to the JSON property `guestAcceleratorType`
18236
+ # @return [String]
18237
+ attr_accessor :guest_accelerator_type
18238
+
18239
+ def initialize(**args)
18240
+ update!(**args)
18241
+ end
18242
+
18243
+ # Update properties of this object
18244
+ def update!(**args)
18245
+ @guest_accelerator_count = args[:guest_accelerator_count] if args.key?(:guest_accelerator_count)
18246
+ @guest_accelerator_type = args[:guest_accelerator_type] if args.key?(:guest_accelerator_type)
18247
+ end
18248
+ end
18249
+
18250
+ #
18251
+ class ScratchDisk
18252
+ include Google::Apis::Core::Hashable
18253
+
18254
+ # Size of the scratch disk, defined in GB.
18255
+ # Corresponds to the JSON property `diskGb`
18256
+ # @return [Fixnum]
18257
+ attr_accessor :disk_gb
18258
+
18259
+ def initialize(**args)
18260
+ update!(**args)
18261
+ end
18262
+
18263
+ # Update properties of this object
18264
+ def update!(**args)
18265
+ @disk_gb = args[:disk_gb] if args.key?(:disk_gb)
18266
+ end
18267
+ end
18268
+ end
18269
+
18270
+ #
18271
+ class MachineTypeAggregatedList
18272
+ include Google::Apis::Core::Hashable
18273
+
18274
+ # [Output Only] Unique identifier for the resource; defined by the server.
18275
+ # Corresponds to the JSON property `id`
18276
+ # @return [String]
18277
+ attr_accessor :id
18278
+
18279
+ # A list of MachineTypesScopedList resources.
18280
+ # Corresponds to the JSON property `items`
18281
+ # @return [Hash<String,Google::Apis::ComputeV1::MachineTypesScopedList>]
18282
+ attr_accessor :items
18283
+
18284
+ # [Output Only] Type of resource. Always compute#machineTypeAggregatedList for
18285
+ # aggregated lists of machine types.
18286
+ # Corresponds to the JSON property `kind`
18287
+ # @return [String]
18288
+ attr_accessor :kind
18289
+
18290
+ # [Output Only] This token allows you to get the next page of results for list
18291
+ # requests. If the number of results is larger than maxResults, use the
18292
+ # nextPageToken as a value for the query parameter pageToken in the next list
18293
+ # request. Subsequent list requests will have their own nextPageToken to
18294
+ # continue paging through the results.
18295
+ # Corresponds to the JSON property `nextPageToken`
18296
+ # @return [String]
18297
+ attr_accessor :next_page_token
18298
+
18299
+ # [Output Only] Server-defined URL for this resource.
18300
+ # Corresponds to the JSON property `selfLink`
18301
+ # @return [String]
18302
+ attr_accessor :self_link
18303
+
18304
+ # [Output Only] Unreachable resources.
18305
+ # Corresponds to the JSON property `unreachables`
18306
+ # @return [Array<String>]
18307
+ attr_accessor :unreachables
18308
+
18309
+ # [Output Only] Informational warning message.
18310
+ # Corresponds to the JSON property `warning`
18311
+ # @return [Google::Apis::ComputeV1::MachineTypeAggregatedList::Warning]
18312
+ attr_accessor :warning
18313
+
18314
+ def initialize(**args)
18315
+ update!(**args)
18316
+ end
18317
+
18318
+ # Update properties of this object
18319
+ def update!(**args)
18320
+ @id = args[:id] if args.key?(:id)
18321
+ @items = args[:items] if args.key?(:items)
18322
+ @kind = args[:kind] if args.key?(:kind)
18323
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
18324
+ @self_link = args[:self_link] if args.key?(:self_link)
18325
+ @unreachables = args[:unreachables] if args.key?(:unreachables)
18326
+ @warning = args[:warning] if args.key?(:warning)
18327
+ end
18328
+
18329
+ # [Output Only] Informational warning message.
18330
+ class Warning
18331
+ include Google::Apis::Core::Hashable
18332
+
18333
+ # [Output Only] A warning code, if applicable. For example, Compute Engine
18334
+ # returns NO_RESULTS_ON_PAGE if there are no results in the response.
18335
+ # Corresponds to the JSON property `code`
18336
+ # @return [String]
18337
+ attr_accessor :code
18338
+
18339
+ # [Output Only] Metadata about this warning in key: value format. For example: "
18340
+ # data": [ ` "key": "scope", "value": "zones/us-east1-d" `
18341
+ # Corresponds to the JSON property `data`
18342
+ # @return [Array<Google::Apis::ComputeV1::MachineTypeAggregatedList::Warning::Datum>]
17897
18343
  attr_accessor :data
17898
18344
 
17899
18345
  # [Output Only] A human-readable description of the warning code.
@@ -18786,6 +19232,12 @@ module Google
18786
19232
  # @return [String]
18787
19233
  attr_accessor :network_endpoint_type
18788
19234
 
19235
+ # The target service url used to set up private service connection to a Google
19236
+ # API. An example value is: "asia-northeast3-cloudkms.googleapis.com"
19237
+ # Corresponds to the JSON property `pscTargetService`
19238
+ # @return [String]
19239
+ attr_accessor :psc_target_service
19240
+
18789
19241
  # [Output Only] The URL of the region where the network endpoint group is
18790
19242
  # located.
18791
19243
  # Corresponds to the JSON property `region`
@@ -18831,6 +19283,7 @@ module Google
18831
19283
  @name = args[:name] if args.key?(:name)
18832
19284
  @network = args[:network] if args.key?(:network)
18833
19285
  @network_endpoint_type = args[:network_endpoint_type] if args.key?(:network_endpoint_type)
19286
+ @psc_target_service = args[:psc_target_service] if args.key?(:psc_target_service)
18834
19287
  @region = args[:region] if args.key?(:region)
18835
19288
  @self_link = args[:self_link] if args.key?(:self_link)
18836
19289
  @size = args[:size] if args.key?(:size)
@@ -19531,7 +19984,7 @@ module Google
19531
19984
  # @return [String]
19532
19985
  attr_accessor :ipv6_access_type
19533
19986
 
19534
- # [Output Only] An IPv6 internal network address for this network interface.
19987
+ # An IPv6 internal network address for this network interface.
19535
19988
  # Corresponds to the JSON property `ipv6Address`
19536
19989
  # @return [String]
19537
19990
  attr_accessor :ipv6_address
@@ -28483,6 +28936,12 @@ module Google
28483
28936
  # @return [String]
28484
28937
  attr_accessor :enable
28485
28938
 
28939
+ # Enable IPv6 traffic over BGP Peer. If not specified, it is disabled by default.
28940
+ # Corresponds to the JSON property `enableIpv6`
28941
+ # @return [Boolean]
28942
+ attr_accessor :enable_ipv6
28943
+ alias_method :enable_ipv6?, :enable_ipv6
28944
+
28486
28945
  # Name of the interface the BGP peer is associated with.
28487
28946
  # Corresponds to the JSON property `interfaceName`
28488
28947
  # @return [String]
@@ -28494,6 +28953,11 @@ module Google
28494
28953
  # @return [String]
28495
28954
  attr_accessor :ip_address
28496
28955
 
28956
+ # IPv6 address of the interface inside Google Cloud Platform.
28957
+ # Corresponds to the JSON property `ipv6NexthopAddress`
28958
+ # @return [String]
28959
+ attr_accessor :ipv6_nexthop_address
28960
+
28497
28961
  # [Output Only] The resource that configures and manages this BGP peer. -
28498
28962
  # MANAGED_BY_USER is the default value and can be managed by you or other users -
28499
28963
  # MANAGED_BY_ATTACHMENT is a BGP peer that is configured and managed by Cloud
@@ -28526,6 +28990,11 @@ module Google
28526
28990
  # @return [String]
28527
28991
  attr_accessor :peer_ip_address
28528
28992
 
28993
+ # IPv6 address of the BGP interface outside Google Cloud Platform.
28994
+ # Corresponds to the JSON property `peerIpv6NexthopAddress`
28995
+ # @return [String]
28996
+ attr_accessor :peer_ipv6_nexthop_address
28997
+
28529
28998
  # URI of the VM instance that is used as third-party router appliances such as
28530
28999
  # Next Gen Firewalls, Virtual Routers, or Router Appliances. The VM instance
28531
29000
  # must be located in zones contained in the same region as this Cloud Router.
@@ -28546,12 +29015,15 @@ module Google
28546
29015
  @advertised_route_priority = args[:advertised_route_priority] if args.key?(:advertised_route_priority)
28547
29016
  @bfd = args[:bfd] if args.key?(:bfd)
28548
29017
  @enable = args[:enable] if args.key?(:enable)
29018
+ @enable_ipv6 = args[:enable_ipv6] if args.key?(:enable_ipv6)
28549
29019
  @interface_name = args[:interface_name] if args.key?(:interface_name)
28550
29020
  @ip_address = args[:ip_address] if args.key?(:ip_address)
29021
+ @ipv6_nexthop_address = args[:ipv6_nexthop_address] if args.key?(:ipv6_nexthop_address)
28551
29022
  @management_type = args[:management_type] if args.key?(:management_type)
28552
29023
  @name = args[:name] if args.key?(:name)
28553
29024
  @peer_asn = args[:peer_asn] if args.key?(:peer_asn)
28554
29025
  @peer_ip_address = args[:peer_ip_address] if args.key?(:peer_ip_address)
29026
+ @peer_ipv6_nexthop_address = args[:peer_ipv6_nexthop_address] if args.key?(:peer_ipv6_nexthop_address)
28555
29027
  @router_appliance_instance = args[:router_appliance_instance] if args.key?(:router_appliance_instance)
28556
29028
  end
28557
29029
  end
@@ -29616,6 +30088,171 @@ module Google
29616
30088
  end
29617
30089
  end
29618
30090
 
30091
+ # DEPRECATED: Please use compute#savedDisk instead. An instance-attached disk
30092
+ # resource.
30093
+ class SavedAttachedDisk
30094
+ include Google::Apis::Core::Hashable
30095
+
30096
+ # Specifies whether the disk will be auto-deleted when the instance is deleted (
30097
+ # but not when the disk is detached from the instance).
30098
+ # Corresponds to the JSON property `autoDelete`
30099
+ # @return [Boolean]
30100
+ attr_accessor :auto_delete
30101
+ alias_method :auto_delete?, :auto_delete
30102
+
30103
+ # Indicates that this is a boot disk. The virtual machine will use the first
30104
+ # partition of the disk for its root filesystem.
30105
+ # Corresponds to the JSON property `boot`
30106
+ # @return [Boolean]
30107
+ attr_accessor :boot
30108
+ alias_method :boot?, :boot
30109
+
30110
+ # Specifies the name of the disk attached to the source instance.
30111
+ # Corresponds to the JSON property `deviceName`
30112
+ # @return [String]
30113
+ attr_accessor :device_name
30114
+
30115
+ # The encryption key for the disk.
30116
+ # Corresponds to the JSON property `diskEncryptionKey`
30117
+ # @return [Google::Apis::ComputeV1::CustomerEncryptionKey]
30118
+ attr_accessor :disk_encryption_key
30119
+
30120
+ # The size of the disk in base-2 GB.
30121
+ # Corresponds to the JSON property `diskSizeGb`
30122
+ # @return [Fixnum]
30123
+ attr_accessor :disk_size_gb
30124
+
30125
+ # [Output Only] URL of the disk type resource. For example: projects/project /
30126
+ # zones/zone/diskTypes/pd-standard or pd-ssd
30127
+ # Corresponds to the JSON property `diskType`
30128
+ # @return [String]
30129
+ attr_accessor :disk_type
30130
+
30131
+ # A list of features to enable on the guest operating system. Applicable only
30132
+ # for bootable images. Read Enabling guest operating system features to see a
30133
+ # list of available options.
30134
+ # Corresponds to the JSON property `guestOsFeatures`
30135
+ # @return [Array<Google::Apis::ComputeV1::GuestOsFeature>]
30136
+ attr_accessor :guest_os_features
30137
+
30138
+ # Specifies zero-based index of the disk that is attached to the source instance.
30139
+ # Corresponds to the JSON property `index`
30140
+ # @return [Fixnum]
30141
+ attr_accessor :index
30142
+
30143
+ # Specifies the disk interface to use for attaching this disk, which is either
30144
+ # SCSI or NVME.
30145
+ # Corresponds to the JSON property `interface`
30146
+ # @return [String]
30147
+ attr_accessor :interface
30148
+
30149
+ # [Output Only] Type of the resource. Always compute#attachedDisk for attached
30150
+ # disks.
30151
+ # Corresponds to the JSON property `kind`
30152
+ # @return [String]
30153
+ attr_accessor :kind
30154
+
30155
+ # [Output Only] Any valid publicly visible licenses.
30156
+ # Corresponds to the JSON property `licenses`
30157
+ # @return [Array<String>]
30158
+ attr_accessor :licenses
30159
+
30160
+ # The mode in which this disk is attached to the source instance, either
30161
+ # READ_WRITE or READ_ONLY.
30162
+ # Corresponds to the JSON property `mode`
30163
+ # @return [String]
30164
+ attr_accessor :mode
30165
+
30166
+ # Specifies a URL of the disk attached to the source instance.
30167
+ # Corresponds to the JSON property `source`
30168
+ # @return [String]
30169
+ attr_accessor :source
30170
+
30171
+ # [Output Only] A size of the storage used by the disk's snapshot by this
30172
+ # machine image.
30173
+ # Corresponds to the JSON property `storageBytes`
30174
+ # @return [Fixnum]
30175
+ attr_accessor :storage_bytes
30176
+
30177
+ # [Output Only] An indicator whether storageBytes is in a stable state or it is
30178
+ # being adjusted as a result of shared storage reallocation. This status can
30179
+ # either be UPDATING, meaning the size of the snapshot is being updated, or
30180
+ # UP_TO_DATE, meaning the size of the snapshot is up-to-date.
30181
+ # Corresponds to the JSON property `storageBytesStatus`
30182
+ # @return [String]
30183
+ attr_accessor :storage_bytes_status
30184
+
30185
+ # Specifies the type of the attached disk, either SCRATCH or PERSISTENT.
30186
+ # Corresponds to the JSON property `type`
30187
+ # @return [String]
30188
+ attr_accessor :type
30189
+
30190
+ def initialize(**args)
30191
+ update!(**args)
30192
+ end
30193
+
30194
+ # Update properties of this object
30195
+ def update!(**args)
30196
+ @auto_delete = args[:auto_delete] if args.key?(:auto_delete)
30197
+ @boot = args[:boot] if args.key?(:boot)
30198
+ @device_name = args[:device_name] if args.key?(:device_name)
30199
+ @disk_encryption_key = args[:disk_encryption_key] if args.key?(:disk_encryption_key)
30200
+ @disk_size_gb = args[:disk_size_gb] if args.key?(:disk_size_gb)
30201
+ @disk_type = args[:disk_type] if args.key?(:disk_type)
30202
+ @guest_os_features = args[:guest_os_features] if args.key?(:guest_os_features)
30203
+ @index = args[:index] if args.key?(:index)
30204
+ @interface = args[:interface] if args.key?(:interface)
30205
+ @kind = args[:kind] if args.key?(:kind)
30206
+ @licenses = args[:licenses] if args.key?(:licenses)
30207
+ @mode = args[:mode] if args.key?(:mode)
30208
+ @source = args[:source] if args.key?(:source)
30209
+ @storage_bytes = args[:storage_bytes] if args.key?(:storage_bytes)
30210
+ @storage_bytes_status = args[:storage_bytes_status] if args.key?(:storage_bytes_status)
30211
+ @type = args[:type] if args.key?(:type)
30212
+ end
30213
+ end
30214
+
30215
+ # An instance-attached disk resource.
30216
+ class SavedDisk
30217
+ include Google::Apis::Core::Hashable
30218
+
30219
+ # [Output Only] Type of the resource. Always compute#savedDisk for attached
30220
+ # disks.
30221
+ # Corresponds to the JSON property `kind`
30222
+ # @return [String]
30223
+ attr_accessor :kind
30224
+
30225
+ # Specifies a URL of the disk attached to the source instance.
30226
+ # Corresponds to the JSON property `sourceDisk`
30227
+ # @return [String]
30228
+ attr_accessor :source_disk
30229
+
30230
+ # [Output Only] Size of the individual disk snapshot used by this machine image.
30231
+ # Corresponds to the JSON property `storageBytes`
30232
+ # @return [Fixnum]
30233
+ attr_accessor :storage_bytes
30234
+
30235
+ # [Output Only] An indicator whether storageBytes is in a stable state or it is
30236
+ # being adjusted as a result of shared storage reallocation. This status can
30237
+ # either be UPDATING, meaning the size of the snapshot is being updated, or
30238
+ # UP_TO_DATE, meaning the size of the snapshot is up-to-date.
30239
+ # Corresponds to the JSON property `storageBytesStatus`
30240
+ # @return [String]
30241
+ attr_accessor :storage_bytes_status
30242
+
30243
+ def initialize(**args)
30244
+ update!(**args)
30245
+ end
30246
+
30247
+ # Update properties of this object
30248
+ def update!(**args)
30249
+ @kind = args[:kind] if args.key?(:kind)
30250
+ @source_disk = args[:source_disk] if args.key?(:source_disk)
30251
+ @storage_bytes = args[:storage_bytes] if args.key?(:storage_bytes)
30252
+ @storage_bytes_status = args[:storage_bytes_status] if args.key?(:storage_bytes_status)
30253
+ end
30254
+ end
30255
+
29619
30256
  #
29620
30257
  class ScalingScheduleStatus
29621
30258
  include Google::Apis::Core::Hashable
@@ -29665,6 +30302,11 @@ module Google
29665
30302
  attr_accessor :automatic_restart
29666
30303
  alias_method :automatic_restart?, :automatic_restart
29667
30304
 
30305
+ # Specifies the termination action for the instance.
30306
+ # Corresponds to the JSON property `instanceTerminationAction`
30307
+ # @return [String]
30308
+ attr_accessor :instance_termination_action
30309
+
29668
30310
  # An opaque location hint used to place the instance close to other resources.
29669
30311
  # This field is for use by internal tools that use the public API.
29670
30312
  # Corresponds to the JSON property `locationHint`
@@ -29685,8 +30327,8 @@ module Google
29685
30327
 
29686
30328
  # Defines the maintenance behavior for this instance. For standard instances,
29687
30329
  # the default behavior is MIGRATE. For preemptible instances, the default and
29688
- # only possible behavior is TERMINATE. For more information, see Setting
29689
- # Instance Scheduling Options.
30330
+ # only possible behavior is TERMINATE. For more information, see Set VM
30331
+ # availability policies.
29690
30332
  # Corresponds to the JSON property `onHostMaintenance`
29691
30333
  # @return [String]
29692
30334
  attr_accessor :on_host_maintenance
@@ -29700,6 +30342,11 @@ module Google
29700
30342
  attr_accessor :preemptible
29701
30343
  alias_method :preemptible?, :preemptible
29702
30344
 
30345
+ # Specifies the provisioning model of the instance.
30346
+ # Corresponds to the JSON property `provisioningModel`
30347
+ # @return [String]
30348
+ attr_accessor :provisioning_model
30349
+
29703
30350
  def initialize(**args)
29704
30351
  update!(**args)
29705
30352
  end
@@ -29707,11 +30354,13 @@ module Google
29707
30354
  # Update properties of this object
29708
30355
  def update!(**args)
29709
30356
  @automatic_restart = args[:automatic_restart] if args.key?(:automatic_restart)
30357
+ @instance_termination_action = args[:instance_termination_action] if args.key?(:instance_termination_action)
29710
30358
  @location_hint = args[:location_hint] if args.key?(:location_hint)
29711
30359
  @min_node_cpus = args[:min_node_cpus] if args.key?(:min_node_cpus)
29712
30360
  @node_affinities = args[:node_affinities] if args.key?(:node_affinities)
29713
30361
  @on_host_maintenance = args[:on_host_maintenance] if args.key?(:on_host_maintenance)
29714
30362
  @preemptible = args[:preemptible] if args.key?(:preemptible)
30363
+ @provisioning_model = args[:provisioning_model] if args.key?(:provisioning_model)
29715
30364
  end
29716
30365
  end
29717
30366
 
@@ -29873,6 +30522,11 @@ module Google
29873
30522
  # @return [String]
29874
30523
  attr_accessor :name
29875
30524
 
30525
+ #
30526
+ # Corresponds to the JSON property `recaptchaOptionsConfig`
30527
+ # @return [Google::Apis::ComputeV1::SecurityPolicyRecaptchaOptionsConfig]
30528
+ attr_accessor :recaptcha_options_config
30529
+
29876
30530
  # A list of rules that belong to this policy. There must always be a default
29877
30531
  # rule (rule with priority 2147483647 and match "*"). If no rules are provided
29878
30532
  # when creating a security policy, a default rule with action "allow" will be
@@ -29911,6 +30565,7 @@ module Google
29911
30565
  @id = args[:id] if args.key?(:id)
29912
30566
  @kind = args[:kind] if args.key?(:kind)
29913
30567
  @name = args[:name] if args.key?(:name)
30568
+ @recaptcha_options_config = args[:recaptcha_options_config] if args.key?(:recaptcha_options_config)
29914
30569
  @rules = args[:rules] if args.key?(:rules)
29915
30570
  @self_link = args[:self_link] if args.key?(:self_link)
29916
30571
  @type = args[:type] if args.key?(:type)
@@ -30100,6 +30755,29 @@ module Google
30100
30755
  end
30101
30756
  end
30102
30757
 
30758
+ #
30759
+ class SecurityPolicyRecaptchaOptionsConfig
30760
+ include Google::Apis::Core::Hashable
30761
+
30762
+ # An optional field to supply a reCAPTCHA site key to be used for all the rules
30763
+ # using the redirect action with the type of GOOGLE_RECAPTCHA under the security
30764
+ # policy. The specified site key needs to be created from the reCAPTCHA API. The
30765
+ # user is responsible for the validity of the specified site key. If not
30766
+ # specified, a Google-managed site key is used.
30767
+ # Corresponds to the JSON property `redirectSiteKey`
30768
+ # @return [String]
30769
+ attr_accessor :redirect_site_key
30770
+
30771
+ def initialize(**args)
30772
+ update!(**args)
30773
+ end
30774
+
30775
+ # Update properties of this object
30776
+ def update!(**args)
30777
+ @redirect_site_key = args[:redirect_site_key] if args.key?(:redirect_site_key)
30778
+ end
30779
+ end
30780
+
30103
30781
  #
30104
30782
  class SecurityPolicyReference
30105
30783
  include Google::Apis::Core::Hashable
@@ -30124,9 +30802,17 @@ module Google
30124
30802
  class SecurityPolicyRule
30125
30803
  include Google::Apis::Core::Hashable
30126
30804
 
30127
- # The Action to perform when the client connection triggers the rule. Can
30128
- # currently be either "allow" or "deny()" where valid values for status are 403,
30129
- # 404, and 502.
30805
+ # The Action to perform when the rule is matched. The following are the valid
30806
+ # actions: - allow: allow access to target. - deny(): deny access to target,
30807
+ # returns the HTTP response code specified (valid values are 403, 404, and 502).
30808
+ # - rate_based_ban: limit client traffic to the configured threshold and ban the
30809
+ # client if the traffic exceeds the threshold. Configure parameters for this
30810
+ # action in RateLimitOptions. Requires rate_limit_options to be set. - redirect:
30811
+ # redirect to a different target. This can either be an internal reCAPTCHA
30812
+ # redirect, or an external URL-based redirect via a 302 response. Parameters for
30813
+ # this action can be configured via redirectOptions. - throttle: limit client
30814
+ # traffic to the configured threshold. Configure parameters for this action in
30815
+ # rateLimitOptions. Requires rate_limit_options to be set for this.
30130
30816
  # Corresponds to the JSON property `action`
30131
30817
  # @return [String]
30132
30818
  attr_accessor :action
@@ -30137,6 +30823,11 @@ module Google
30137
30823
  # @return [String]
30138
30824
  attr_accessor :description
30139
30825
 
30826
+ # Optional, additional actions that are performed on headers.
30827
+ # Corresponds to the JSON property `headerAction`
30828
+ # @return [Google::Apis::ComputeV1::SecurityPolicyRuleHttpHeaderAction]
30829
+ attr_accessor :header_action
30830
+
30140
30831
  # [Output only] Type of the resource. Always compute#securityPolicyRule for
30141
30832
  # security policy rules
30142
30833
  # Corresponds to the JSON property `kind`
@@ -30163,6 +30854,18 @@ module Google
30163
30854
  # @return [Fixnum]
30164
30855
  attr_accessor :priority
30165
30856
 
30857
+ # Must be specified if the action is "rate_based_ban" or "throttle". Cannot be
30858
+ # specified for any other actions.
30859
+ # Corresponds to the JSON property `rateLimitOptions`
30860
+ # @return [Google::Apis::ComputeV1::SecurityPolicyRuleRateLimitOptions]
30861
+ attr_accessor :rate_limit_options
30862
+
30863
+ # Parameters defining the redirect action. Cannot be specified for any other
30864
+ # actions.
30865
+ # Corresponds to the JSON property `redirectOptions`
30866
+ # @return [Google::Apis::ComputeV1::SecurityPolicyRuleRedirectOptions]
30867
+ attr_accessor :redirect_options
30868
+
30166
30869
  def initialize(**args)
30167
30870
  update!(**args)
30168
30871
  end
@@ -30171,10 +30874,57 @@ module Google
30171
30874
  def update!(**args)
30172
30875
  @action = args[:action] if args.key?(:action)
30173
30876
  @description = args[:description] if args.key?(:description)
30877
+ @header_action = args[:header_action] if args.key?(:header_action)
30174
30878
  @kind = args[:kind] if args.key?(:kind)
30175
30879
  @match = args[:match] if args.key?(:match)
30176
30880
  @preview = args[:preview] if args.key?(:preview)
30177
30881
  @priority = args[:priority] if args.key?(:priority)
30882
+ @rate_limit_options = args[:rate_limit_options] if args.key?(:rate_limit_options)
30883
+ @redirect_options = args[:redirect_options] if args.key?(:redirect_options)
30884
+ end
30885
+ end
30886
+
30887
+ #
30888
+ class SecurityPolicyRuleHttpHeaderAction
30889
+ include Google::Apis::Core::Hashable
30890
+
30891
+ # The list of request headers to add or overwrite if they're already present.
30892
+ # Corresponds to the JSON property `requestHeadersToAdds`
30893
+ # @return [Array<Google::Apis::ComputeV1::SecurityPolicyRuleHttpHeaderActionHttpHeaderOption>]
30894
+ attr_accessor :request_headers_to_adds
30895
+
30896
+ def initialize(**args)
30897
+ update!(**args)
30898
+ end
30899
+
30900
+ # Update properties of this object
30901
+ def update!(**args)
30902
+ @request_headers_to_adds = args[:request_headers_to_adds] if args.key?(:request_headers_to_adds)
30903
+ end
30904
+ end
30905
+
30906
+ #
30907
+ class SecurityPolicyRuleHttpHeaderActionHttpHeaderOption
30908
+ include Google::Apis::Core::Hashable
30909
+
30910
+ # The name of the header to set.
30911
+ # Corresponds to the JSON property `headerName`
30912
+ # @return [String]
30913
+ attr_accessor :header_name
30914
+
30915
+ # The value to set the named header to.
30916
+ # Corresponds to the JSON property `headerValue`
30917
+ # @return [String]
30918
+ attr_accessor :header_value
30919
+
30920
+ def initialize(**args)
30921
+ update!(**args)
30922
+ end
30923
+
30924
+ # Update properties of this object
30925
+ def update!(**args)
30926
+ @header_name = args[:header_name] if args.key?(:header_name)
30927
+ @header_value = args[:header_value] if args.key?(:header_value)
30178
30928
  end
30179
30929
  end
30180
30930
 
@@ -30248,6 +30998,144 @@ module Google
30248
30998
  end
30249
30999
  end
30250
31000
 
31001
+ #
31002
+ class SecurityPolicyRuleRateLimitOptions
31003
+ include Google::Apis::Core::Hashable
31004
+
31005
+ # Can only be specified if the action for the rule is "rate_based_ban". If
31006
+ # specified, determines the time (in seconds) the traffic will continue to be
31007
+ # banned by the rate limit after the rate falls below the threshold.
31008
+ # Corresponds to the JSON property `banDurationSec`
31009
+ # @return [Fixnum]
31010
+ attr_accessor :ban_duration_sec
31011
+
31012
+ # Can only be specified if the action for the rule is "rate_based_ban". If
31013
+ # specified, the key will be banned for the configured 'ban_duration_sec' when
31014
+ # the number of requests that exceed the 'rate_limit_threshold' also exceed this
31015
+ # 'ban_threshold'.
31016
+ # Corresponds to the JSON property `banThreshold`
31017
+ # @return [Google::Apis::ComputeV1::SecurityPolicyRuleRateLimitOptionsThreshold]
31018
+ attr_accessor :ban_threshold
31019
+
31020
+ # Action to take for requests that are under the configured rate limit threshold.
31021
+ # Valid option is "allow" only.
31022
+ # Corresponds to the JSON property `conformAction`
31023
+ # @return [String]
31024
+ attr_accessor :conform_action
31025
+
31026
+ # Determines the key to enforce the rate_limit_threshold on. Possible values are:
31027
+ # - ALL: A single rate limit threshold is applied to all the requests matching
31028
+ # this rule. This is the default value if this field 'enforce_on_key' is not
31029
+ # configured. - IP: The source IP address of the request is the key. Each IP has
31030
+ # this limit enforced separately. - HTTP_HEADER: The value of the HTTP header
31031
+ # whose name is configured under "enforce_on_key_name". The key value is
31032
+ # truncated to the first 128 bytes of the header value. If no such header is
31033
+ # present in the request, the key type defaults to ALL. - XFF_IP: The first IP
31034
+ # address (i.e. the originating client IP address) specified in the list of IPs
31035
+ # under X-Forwarded-For HTTP header. If no such header is present or the value
31036
+ # is not a valid IP, the key type defaults to ALL. - HTTP_COOKIE: The value of
31037
+ # the HTTP cookie whose name is configured under "enforce_on_key_name". The key
31038
+ # value is truncated to the first 128 bytes of the cookie value. If no such
31039
+ # cookie is present in the request, the key type defaults to ALL.
31040
+ # Corresponds to the JSON property `enforceOnKey`
31041
+ # @return [String]
31042
+ attr_accessor :enforce_on_key
31043
+
31044
+ # Rate limit key name applicable only for the following key types: HTTP_HEADER --
31045
+ # Name of the HTTP header whose value is taken as the key value. HTTP_COOKIE --
31046
+ # Name of the HTTP cookie whose value is taken as the key value.
31047
+ # Corresponds to the JSON property `enforceOnKeyName`
31048
+ # @return [String]
31049
+ attr_accessor :enforce_on_key_name
31050
+
31051
+ # Action to take for requests that are above the configured rate limit threshold,
31052
+ # to either deny with a specified HTTP response code, or redirect to a
31053
+ # different endpoint. Valid options are "deny()" where valid values for status
31054
+ # are 403, 404, 429, and 502, and "redirect" where the redirect parameters come
31055
+ # from exceed_redirect_options below.
31056
+ # Corresponds to the JSON property `exceedAction`
31057
+ # @return [String]
31058
+ attr_accessor :exceed_action
31059
+
31060
+ # Parameters defining the redirect action that is used as the exceed action.
31061
+ # Cannot be specified if the exceed action is not redirect.
31062
+ # Corresponds to the JSON property `exceedRedirectOptions`
31063
+ # @return [Google::Apis::ComputeV1::SecurityPolicyRuleRedirectOptions]
31064
+ attr_accessor :exceed_redirect_options
31065
+
31066
+ # Threshold at which to begin ratelimiting.
31067
+ # Corresponds to the JSON property `rateLimitThreshold`
31068
+ # @return [Google::Apis::ComputeV1::SecurityPolicyRuleRateLimitOptionsThreshold]
31069
+ attr_accessor :rate_limit_threshold
31070
+
31071
+ def initialize(**args)
31072
+ update!(**args)
31073
+ end
31074
+
31075
+ # Update properties of this object
31076
+ def update!(**args)
31077
+ @ban_duration_sec = args[:ban_duration_sec] if args.key?(:ban_duration_sec)
31078
+ @ban_threshold = args[:ban_threshold] if args.key?(:ban_threshold)
31079
+ @conform_action = args[:conform_action] if args.key?(:conform_action)
31080
+ @enforce_on_key = args[:enforce_on_key] if args.key?(:enforce_on_key)
31081
+ @enforce_on_key_name = args[:enforce_on_key_name] if args.key?(:enforce_on_key_name)
31082
+ @exceed_action = args[:exceed_action] if args.key?(:exceed_action)
31083
+ @exceed_redirect_options = args[:exceed_redirect_options] if args.key?(:exceed_redirect_options)
31084
+ @rate_limit_threshold = args[:rate_limit_threshold] if args.key?(:rate_limit_threshold)
31085
+ end
31086
+ end
31087
+
31088
+ #
31089
+ class SecurityPolicyRuleRateLimitOptionsThreshold
31090
+ include Google::Apis::Core::Hashable
31091
+
31092
+ # Number of HTTP(S) requests for calculating the threshold.
31093
+ # Corresponds to the JSON property `count`
31094
+ # @return [Fixnum]
31095
+ attr_accessor :count
31096
+
31097
+ # Interval over which the threshold is computed.
31098
+ # Corresponds to the JSON property `intervalSec`
31099
+ # @return [Fixnum]
31100
+ attr_accessor :interval_sec
31101
+
31102
+ def initialize(**args)
31103
+ update!(**args)
31104
+ end
31105
+
31106
+ # Update properties of this object
31107
+ def update!(**args)
31108
+ @count = args[:count] if args.key?(:count)
31109
+ @interval_sec = args[:interval_sec] if args.key?(:interval_sec)
31110
+ end
31111
+ end
31112
+
31113
+ #
31114
+ class SecurityPolicyRuleRedirectOptions
31115
+ include Google::Apis::Core::Hashable
31116
+
31117
+ # Target for the redirect action. This is required if the type is EXTERNAL_302
31118
+ # and cannot be specified for GOOGLE_RECAPTCHA.
31119
+ # Corresponds to the JSON property `target`
31120
+ # @return [String]
31121
+ attr_accessor :target
31122
+
31123
+ # Type of the redirect action.
31124
+ # Corresponds to the JSON property `type`
31125
+ # @return [String]
31126
+ attr_accessor :type
31127
+
31128
+ def initialize(**args)
31129
+ update!(**args)
31130
+ end
31131
+
31132
+ # Update properties of this object
31133
+ def update!(**args)
31134
+ @target = args[:target] if args.key?(:target)
31135
+ @type = args[:type] if args.key?(:type)
31136
+ end
31137
+ end
31138
+
30251
31139
  # The authentication and authorization settings for a BackendService.
30252
31140
  class SecuritySettings
30253
31141
  include Google::Apis::Core::Hashable
@@ -30425,6 +31313,13 @@ module Google
30425
31313
  # @return [String]
30426
31314
  attr_accessor :description
30427
31315
 
31316
+ # If specified, the domain name will be used during the integration between the
31317
+ # PSC connected endpoints and the Cloud DNS. For example, this is a valid domain
31318
+ # name: "p.mycompany.com.". Current max number of domain names supported is 1.
31319
+ # Corresponds to the JSON property `domainNames`
31320
+ # @return [Array<String>]
31321
+ attr_accessor :domain_names
31322
+
30428
31323
  # If true, enable the proxy protocol which is for supplying client TCP/IP
30429
31324
  # address data in TCP connections that traverse proxies on their way to
30430
31325
  # destination servers.
@@ -30513,6 +31408,7 @@ module Google
30513
31408
  @consumer_reject_lists = args[:consumer_reject_lists] if args.key?(:consumer_reject_lists)
30514
31409
  @creation_timestamp = args[:creation_timestamp] if args.key?(:creation_timestamp)
30515
31410
  @description = args[:description] if args.key?(:description)
31411
+ @domain_names = args[:domain_names] if args.key?(:domain_names)
30516
31412
  @enable_proxy_protocol = args[:enable_proxy_protocol] if args.key?(:enable_proxy_protocol)
30517
31413
  @fingerprint = args[:fingerprint] if args.key?(:fingerprint)
30518
31414
  @id = args[:id] if args.key?(:id)
@@ -31426,6 +32322,35 @@ module Google
31426
32322
  end
31427
32323
  end
31428
32324
 
32325
+ #
32326
+ class SourceDiskEncryptionKey
32327
+ include Google::Apis::Core::Hashable
32328
+
32329
+ # The customer-supplied encryption key of the source disk. Required if the
32330
+ # source disk is protected by a customer-supplied encryption key.
32331
+ # Corresponds to the JSON property `diskEncryptionKey`
32332
+ # @return [Google::Apis::ComputeV1::CustomerEncryptionKey]
32333
+ attr_accessor :disk_encryption_key
32334
+
32335
+ # URL of the disk attached to the source instance. This can be a full or valid
32336
+ # partial URL. For example, the following are valid values: - https://www.
32337
+ # googleapis.com/compute/v1/projects/project/zones/zone /disks/disk - projects/
32338
+ # project/zones/zone/disks/disk - zones/zone/disks/disk
32339
+ # Corresponds to the JSON property `sourceDisk`
32340
+ # @return [String]
32341
+ attr_accessor :source_disk
32342
+
32343
+ def initialize(**args)
32344
+ update!(**args)
32345
+ end
32346
+
32347
+ # Update properties of this object
32348
+ def update!(**args)
32349
+ @disk_encryption_key = args[:disk_encryption_key] if args.key?(:disk_encryption_key)
32350
+ @source_disk = args[:source_disk] if args.key?(:source_disk)
32351
+ end
32352
+ end
32353
+
31429
32354
  # A specification of the parameters to use when creating the instance template
31430
32355
  # from a source instance.
31431
32356
  class SourceInstanceParams
@@ -31449,6 +32374,116 @@ module Google
31449
32374
  end
31450
32375
  end
31451
32376
 
32377
+ # DEPRECATED: Please use compute#instanceProperties instead. New properties will
32378
+ # not be added to this field.
32379
+ class SourceInstanceProperties
32380
+ include Google::Apis::Core::Hashable
32381
+
32382
+ # Enables instances created based on this machine image to send packets with
32383
+ # source IP addresses other than their own and receive packets with destination
32384
+ # IP addresses other than their own. If these instances will be used as an IP
32385
+ # gateway or it will be set as the next-hop in a Route resource, specify true.
32386
+ # If unsure, leave this set to false. See the Enable IP forwarding documentation
32387
+ # for more information.
32388
+ # Corresponds to the JSON property `canIpForward`
32389
+ # @return [Boolean]
32390
+ attr_accessor :can_ip_forward
32391
+ alias_method :can_ip_forward?, :can_ip_forward
32392
+
32393
+ # Whether the instance created from this machine image should be protected
32394
+ # against deletion.
32395
+ # Corresponds to the JSON property `deletionProtection`
32396
+ # @return [Boolean]
32397
+ attr_accessor :deletion_protection
32398
+ alias_method :deletion_protection?, :deletion_protection
32399
+
32400
+ # An optional text description for the instances that are created from this
32401
+ # machine image.
32402
+ # Corresponds to the JSON property `description`
32403
+ # @return [String]
32404
+ attr_accessor :description
32405
+
32406
+ # An array of disks that are associated with the instances that are created from
32407
+ # this machine image.
32408
+ # Corresponds to the JSON property `disks`
32409
+ # @return [Array<Google::Apis::ComputeV1::SavedAttachedDisk>]
32410
+ attr_accessor :disks
32411
+
32412
+ # A list of guest accelerator cards' type and count to use for instances created
32413
+ # from this machine image.
32414
+ # Corresponds to the JSON property `guestAccelerators`
32415
+ # @return [Array<Google::Apis::ComputeV1::AcceleratorConfig>]
32416
+ attr_accessor :guest_accelerators
32417
+
32418
+ # Labels to apply to instances that are created from this machine image.
32419
+ # Corresponds to the JSON property `labels`
32420
+ # @return [Hash<String,String>]
32421
+ attr_accessor :labels
32422
+
32423
+ # The machine type to use for instances that are created from this machine image.
32424
+ # Corresponds to the JSON property `machineType`
32425
+ # @return [String]
32426
+ attr_accessor :machine_type
32427
+
32428
+ # A metadata key/value entry.
32429
+ # Corresponds to the JSON property `metadata`
32430
+ # @return [Google::Apis::ComputeV1::Metadata]
32431
+ attr_accessor :metadata
32432
+
32433
+ # Minimum cpu/platform to be used by instances created from this machine image.
32434
+ # The instance may be scheduled on the specified or newer cpu/platform.
32435
+ # Applicable values are the friendly names of CPU platforms, such as
32436
+ # minCpuPlatform: "Intel Haswell" or minCpuPlatform: "Intel Sandy Bridge". For
32437
+ # more information, read Specifying a Minimum CPU Platform.
32438
+ # Corresponds to the JSON property `minCpuPlatform`
32439
+ # @return [String]
32440
+ attr_accessor :min_cpu_platform
32441
+
32442
+ # An array of network access configurations for this interface.
32443
+ # Corresponds to the JSON property `networkInterfaces`
32444
+ # @return [Array<Google::Apis::ComputeV1::NetworkInterface>]
32445
+ attr_accessor :network_interfaces
32446
+
32447
+ # Sets the scheduling options for an Instance. NextID: 21
32448
+ # Corresponds to the JSON property `scheduling`
32449
+ # @return [Google::Apis::ComputeV1::Scheduling]
32450
+ attr_accessor :scheduling
32451
+
32452
+ # A list of service accounts with specified scopes. Access tokens for these
32453
+ # service accounts are available to the instances that are created from this
32454
+ # machine image. Use metadata queries to obtain the access tokens for these
32455
+ # instances.
32456
+ # Corresponds to the JSON property `serviceAccounts`
32457
+ # @return [Array<Google::Apis::ComputeV1::ServiceAccount>]
32458
+ attr_accessor :service_accounts
32459
+
32460
+ # A set of instance tags.
32461
+ # Corresponds to the JSON property `tags`
32462
+ # @return [Google::Apis::ComputeV1::Tags]
32463
+ attr_accessor :tags
32464
+
32465
+ def initialize(**args)
32466
+ update!(**args)
32467
+ end
32468
+
32469
+ # Update properties of this object
32470
+ def update!(**args)
32471
+ @can_ip_forward = args[:can_ip_forward] if args.key?(:can_ip_forward)
32472
+ @deletion_protection = args[:deletion_protection] if args.key?(:deletion_protection)
32473
+ @description = args[:description] if args.key?(:description)
32474
+ @disks = args[:disks] if args.key?(:disks)
32475
+ @guest_accelerators = args[:guest_accelerators] if args.key?(:guest_accelerators)
32476
+ @labels = args[:labels] if args.key?(:labels)
32477
+ @machine_type = args[:machine_type] if args.key?(:machine_type)
32478
+ @metadata = args[:metadata] if args.key?(:metadata)
32479
+ @min_cpu_platform = args[:min_cpu_platform] if args.key?(:min_cpu_platform)
32480
+ @network_interfaces = args[:network_interfaces] if args.key?(:network_interfaces)
32481
+ @scheduling = args[:scheduling] if args.key?(:scheduling)
32482
+ @service_accounts = args[:service_accounts] if args.key?(:service_accounts)
32483
+ @tags = args[:tags] if args.key?(:tags)
32484
+ end
32485
+ end
32486
+
31452
32487
  # Represents an SSL Certificate resource. Google Compute Engine has two SSL
31453
32488
  # Certificate resources: * [Global](/compute/docs/reference/rest/v1/
31454
32489
  # sslCertificates) * [Regional](/compute/docs/reference/rest/v1/
@@ -32433,7 +33468,7 @@ module Google
32433
33468
  attr_accessor :ipv6_access_type
32434
33469
 
32435
33470
  # [Output Only] The range of internal IPv6 addresses that are owned by this
32436
- # subnetwork.
33471
+ # subnetwork. Note this will be for private google access only eventually.
32437
33472
  # Corresponds to the JSON property `ipv6CidrRange`
32438
33473
  # @return [String]
32439
33474
  attr_accessor :ipv6_cidr_range
@@ -37575,6 +38610,12 @@ module Google
37575
38610
  # @return [String]
37576
38611
  attr_accessor :self_link
37577
38612
 
38613
+ # The stack type for this VPN gateway to identify the IP protocols that are
38614
+ # enabled. If not specified, IPV4_ONLY will be used.
38615
+ # Corresponds to the JSON property `stackType`
38616
+ # @return [String]
38617
+ attr_accessor :stack_type
38618
+
37578
38619
  # The list of VPN interfaces associated with this VPN gateway.
37579
38620
  # Corresponds to the JSON property `vpnInterfaces`
37580
38621
  # @return [Array<Google::Apis::ComputeV1::VpnGatewayVpnGatewayInterface>]
@@ -37596,6 +38637,7 @@ module Google
37596
38637
  @network = args[:network] if args.key?(:network)
37597
38638
  @region = args[:region] if args.key?(:region)
37598
38639
  @self_link = args[:self_link] if args.key?(:self_link)
38640
+ @stack_type = args[:stack_type] if args.key?(:stack_type)
37599
38641
  @vpn_interfaces = args[:vpn_interfaces] if args.key?(:vpn_interfaces)
37600
38642
  end
37601
38643
  end