google-apis-compute_v1 0.20.0 → 0.24.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -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