google-apis-compute_alpha 0.15.0 → 0.19.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -521,7 +521,9 @@ module Google
521
521
  attr_accessor :public_dns_name
522
522
 
523
523
  # The DNS domain name for the public PTR record. You can set this field only if
524
- # the `setPublicPtr` field is enabled.
524
+ # the `setPublicPtr` field is enabled in accessConfig. If this field is
525
+ # unspecified in ipv6AccessConfig, a default PTR record will be createc for
526
+ # first IP in associated external IPv6 range.
525
527
  # Corresponds to the JSON property `publicPtrDomainName`
526
528
  # @return [String]
527
529
  attr_accessor :public_ptr_domain_name
@@ -534,7 +536,9 @@ module Google
534
536
  alias_method :set_public_dns?, :set_public_dns
535
537
 
536
538
  # Specifies whether a public DNS 'PTR' record should be created to map the
537
- # external IP address of the instance to a DNS domain name.
539
+ # external IP address of the instance to a DNS domain name. This field is not
540
+ # used in ipv6AccessConfig. A default PTR record will be created if the VM has
541
+ # external IPv6 range associated.
538
542
  # Corresponds to the JSON property `setPublicPtr`
539
543
  # @return [Boolean]
540
544
  attr_accessor :set_public_ptr
@@ -633,8 +637,8 @@ module Google
633
637
 
634
638
  # Name of the resource. Provided by the client when the resource is created. The
635
639
  # name must be 1-63 characters long, and comply with RFC1035. Specifically, the
636
- # name must be 1-63 characters long and match the regular expression [a-z]([-a-
637
- # z0-9]*[a-z0-9])?. The first character must be a lowercase letter, and all
640
+ # name must be 1-63 characters long and match the regular expression `[a-z]([-a-
641
+ # z0-9]*[a-z0-9])?`. The first character must be a lowercase letter, and all
638
642
  # following characters (except for the last character) must be a dash, lowercase
639
643
  # letter, or digit. The last character must be a lowercase letter or digit.
640
644
  # Corresponds to the JSON property `name`
@@ -1094,6 +1098,12 @@ module Google
1094
1098
  attr_accessor :enable_nested_virtualization
1095
1099
  alias_method :enable_nested_virtualization?, :enable_nested_virtualization
1096
1100
 
1101
+ # Whether to enable UEFI networking for instance creation.
1102
+ # Corresponds to the JSON property `enableUefiNetworking`
1103
+ # @return [Boolean]
1104
+ attr_accessor :enable_uefi_networking
1105
+ alias_method :enable_uefi_networking?, :enable_uefi_networking
1106
+
1097
1107
  # The number of vNUMA nodes.
1098
1108
  # Corresponds to the JSON property `numaNodeCount`
1099
1109
  # @return [Fixnum]
@@ -1121,6 +1131,7 @@ module Google
1121
1131
  # Update properties of this object
1122
1132
  def update!(**args)
1123
1133
  @enable_nested_virtualization = args[:enable_nested_virtualization] if args.key?(:enable_nested_virtualization)
1134
+ @enable_uefi_networking = args[:enable_uefi_networking] if args.key?(:enable_uefi_networking)
1124
1135
  @numa_node_count = args[:numa_node_count] if args.key?(:numa_node_count)
1125
1136
  @threads_per_core = args[:threads_per_core] if args.key?(:threads_per_core)
1126
1137
  @visible_core_count = args[:visible_core_count] if args.key?(:visible_core_count)
@@ -1246,6 +1257,7 @@ module Google
1246
1257
  end
1247
1258
 
1248
1259
  # This reservation type allows to pre allocate specific instance configuration.
1260
+ # Next ID: 5
1249
1261
  class AllocationSpecificSkuReservation
1250
1262
  include Google::Apis::Core::Hashable
1251
1263
 
@@ -1377,6 +1389,17 @@ module Google
1377
1389
  # @return [Array<String>]
1378
1390
  attr_accessor :licenses
1379
1391
 
1392
+ # [Output Only] Whether to indicate the attached disk is locked. The locked disk
1393
+ # is not allowed to be detached from the instance, or to be used as the source
1394
+ # of the snapshot creation, and the image creation. The instance with at least
1395
+ # one locked attached disk is not allow to be used as source of machine image
1396
+ # creation, instant snapshot creation, and not allowed to be deleted with --keep-
1397
+ # disk parameter set to true for locked disks.
1398
+ # Corresponds to the JSON property `locked`
1399
+ # @return [Boolean]
1400
+ attr_accessor :locked
1401
+ alias_method :locked?, :locked
1402
+
1380
1403
  # The mode in which to attach this disk, either READ_WRITE or READ_ONLY. If not
1381
1404
  # specified, the default is to attach the disk in READ_WRITE mode.
1382
1405
  # Corresponds to the JSON property `mode`
@@ -1438,6 +1461,7 @@ module Google
1438
1461
  @interface = args[:interface] if args.key?(:interface)
1439
1462
  @kind = args[:kind] if args.key?(:kind)
1440
1463
  @licenses = args[:licenses] if args.key?(:licenses)
1464
+ @locked = args[:locked] if args.key?(:locked)
1441
1465
  @mode = args[:mode] if args.key?(:mode)
1442
1466
  @saved_state = args[:saved_state] if args.key?(:saved_state)
1443
1467
  @shielded_instance_initial_state = args[:shielded_instance_initial_state] if args.key?(:shielded_instance_initial_state)
@@ -1497,8 +1521,8 @@ module Google
1497
1521
  # @return [Array<Google::Apis::ComputeAlpha::GuestOsFeature>]
1498
1522
  attr_accessor :guest_os_features
1499
1523
 
1500
- # Specifies the disk interface to use for attaching this disk, which is either
1501
- # SCSI or NVME. The default is SCSI.
1524
+ # [Deprecated] Specifies the disk interface to use for attaching this disk,
1525
+ # which is either SCSI or NVME. The default is SCSI.
1502
1526
  # Corresponds to the JSON property `interface`
1503
1527
  # @return [String]
1504
1528
  attr_accessor :interface
@@ -2673,7 +2697,13 @@ module Google
2673
2697
 
2674
2698
  # Specifies how to determine whether the backend of a load balancer can handle
2675
2699
  # additional traffic or is fully loaded. For usage guidelines, see Connection
2676
- # balancing mode.
2700
+ # balancing mode. Backends must use compatible balancing modes. For more
2701
+ # information, see Supported balancing modes and target capacity settings and
2702
+ # Restrictions and guidance for instance groups. Note: Currently, if you use the
2703
+ # API to configure incompatible balancing modes, the configuration might be
2704
+ # accepted even though it has no impact and is ignored. Specifically, Backend.
2705
+ # maxUtilization is ignored when Backend.balancingMode is RATE. In the future,
2706
+ # this incompatible combination will be rejected.
2677
2707
  # Corresponds to the JSON property `balancingMode`
2678
2708
  # @return [String]
2679
2709
  attr_accessor :balancing_mode
@@ -2754,7 +2784,9 @@ module Google
2754
2784
  # @return [Float]
2755
2785
  attr_accessor :max_rate_per_instance
2756
2786
 
2757
- #
2787
+ # Optional parameter to define a target capacity for the UTILIZATIONbalancing
2788
+ # mode. The valid range is [0.0, 1.0]. For usage guidelines, see Utilization
2789
+ # balancing mode.
2758
2790
  # Corresponds to the JSON property `maxUtilization`
2759
2791
  # @return [Float]
2760
2792
  attr_accessor :max_utilization
@@ -2923,7 +2955,7 @@ module Google
2923
2955
  # specified), or else sets the response max-age directive to the lesser of the
2924
2956
  # client_ttl and default_ttl, and also ensures a "public" cache-control
2925
2957
  # directive is present. If a client TTL is not specified, a default value (1
2926
- # hour) will be used. The maximum allowed value is 86400s (1 day).
2958
+ # hour) will be used. The maximum allowed value is 31,622,400s (1 year).
2927
2959
  # Corresponds to the JSON property `clientTtl`
2928
2960
  # @return [Fixnum]
2929
2961
  attr_accessor :client_ttl
@@ -3510,6 +3542,21 @@ module Google
3510
3542
  # @return [String]
3511
3543
  attr_accessor :self_link_with_id
3512
3544
 
3545
+ # URLs of networkservices.ServiceBinding resources. Can only be set if load
3546
+ # balancing scheme is INTERNAL_SELF_MANAGED. If set, lists of backends and
3547
+ # health checks must be both empty.
3548
+ # Corresponds to the JSON property `serviceBindings`
3549
+ # @return [Array<String>]
3550
+ attr_accessor :service_bindings
3551
+
3552
+ # URL to networkservices.ServiceLbPolicy resource. Can only be set if load
3553
+ # balancing scheme is EXTERNAL, INTERNAL_MANAGED or INTERNAL_SELF_MANAGED. If
3554
+ # used with a backend service, must reference a global policy. If used with a
3555
+ # regional backend service, must reference a regional policy.
3556
+ # Corresponds to the JSON property `serviceLbPolicy`
3557
+ # @return [String]
3558
+ attr_accessor :service_lb_policy
3559
+
3513
3560
  # Type of session affinity to use. The default is NONE. For a detailed
3514
3561
  # description of session affinity options, see: [Session affinity](https://cloud.
3515
3562
  # google.com/load-balancing/docs/backend-service#session_affinity). Not
@@ -3574,6 +3621,8 @@ module Google
3574
3621
  @security_settings = args[:security_settings] if args.key?(:security_settings)
3575
3622
  @self_link = args[:self_link] if args.key?(:self_link)
3576
3623
  @self_link_with_id = args[:self_link_with_id] if args.key?(:self_link_with_id)
3624
+ @service_bindings = args[:service_bindings] if args.key?(:service_bindings)
3625
+ @service_lb_policy = args[:service_lb_policy] if args.key?(:service_lb_policy)
3577
3626
  @session_affinity = args[:session_affinity] if args.key?(:session_affinity)
3578
3627
  @subsetting = args[:subsetting] if args.key?(:subsetting)
3579
3628
  @timeout_sec = args[:timeout_sec] if args.key?(:timeout_sec)
@@ -3744,7 +3793,7 @@ module Google
3744
3793
  # specified), or else sets the response max-age directive to the lesser of the
3745
3794
  # client_ttl and default_ttl, and also ensures a "public" cache-control
3746
3795
  # directive is present. If a client TTL is not specified, a default value (1
3747
- # hour) will be used. The maximum allowed value is 86400s (1 day).
3796
+ # hour) will be used. The maximum allowed value is 31,622,400s (1 year).
3748
3797
  # Corresponds to the JSON property `clientTtl`
3749
3798
  # @return [Fixnum]
3750
3799
  attr_accessor :client_ttl
@@ -3929,8 +3978,8 @@ module Google
3929
3978
  # @return [String]
3930
3979
  attr_accessor :connection_persistence_on_unhealthy_backends
3931
3980
 
3932
- # Enable Strong Session Affinity. This is only available in External TCP/UDP
3933
- # load balancer.
3981
+ # Enable Strong Session Affinity for Network Load Balancing. This option is not
3982
+ # available publicly.
3934
3983
  # Corresponds to the JSON property `enableStrongAffinity`
3935
3984
  # @return [Boolean]
3936
3985
  attr_accessor :enable_strong_affinity
@@ -3938,9 +3987,9 @@ module Google
3938
3987
 
3939
3988
  # Specifies how long to keep a Connection Tracking entry while there is no
3940
3989
  # matching traffic (in seconds). For L4 ILB the minimum(default) is 10 minutes
3941
- # and maximum is 16 hours. For NLB the minimum(default) is 60 seconds and the
3942
- # maximum is 16 hours. This field will be supported only if the Connection
3943
- # Tracking key is less than 5-tuple.
3990
+ # and maximum is 16 hours. For Network Load Balancer the default is 60 seconds.
3991
+ # This option is not available publicly. This field will be supported only if
3992
+ # the Connection Tracking key is less than 5-tuple.
3944
3993
  # Corresponds to the JSON property `idleTimeoutSec`
3945
3994
  # @return [Fixnum]
3946
3995
  attr_accessor :idle_timeout_sec
@@ -4804,13 +4853,6 @@ module Google
4804
4853
  # @return [Hash<String,Google::Apis::ComputeAlpha::BulkInsertInstanceResourcePerInstanceProperties>]
4805
4854
  attr_accessor :per_instance_properties
4806
4855
 
4807
- # DEPRECATED: Please use instance_properties.secure_tag instead. Secure tags to
4808
- # apply to this instance. These can be later modified by the update method.
4809
- # Maximum number of secure tags allowed is 50.
4810
- # Corresponds to the JSON property `secureTags`
4811
- # @return [Array<String>]
4812
- attr_accessor :secure_tags
4813
-
4814
4856
  # Specifies the instance template from which to create instances. You may
4815
4857
  # combine sourceInstanceTemplate with instanceProperties to override specific
4816
4858
  # values from an existing instance template. Bulk API follows the semantics of
@@ -4836,7 +4878,6 @@ module Google
4836
4878
  @min_count = args[:min_count] if args.key?(:min_count)
4837
4879
  @name_pattern = args[:name_pattern] if args.key?(:name_pattern)
4838
4880
  @per_instance_properties = args[:per_instance_properties] if args.key?(:per_instance_properties)
4839
- @secure_tags = args[:secure_tags] if args.key?(:secure_tags)
4840
4881
  @source_instance_template = args[:source_instance_template] if args.key?(:source_instance_template)
4841
4882
  end
4842
4883
  end
@@ -5841,30 +5882,39 @@ module Google
5841
5882
  class CustomerEncryptionKey
5842
5883
  include Google::Apis::Core::Hashable
5843
5884
 
5844
- # The name of the encryption key that is stored in Google Cloud KMS.
5885
+ # The name of the encryption key that is stored in Google Cloud KMS. For example:
5886
+ # "kmsKeyName": "projects/kms_project_id/locations/region/keyRings/ key_region/
5887
+ # cryptoKeys/key
5845
5888
  # Corresponds to the JSON property `kmsKeyName`
5846
5889
  # @return [String]
5847
5890
  attr_accessor :kms_key_name
5848
5891
 
5849
5892
  # The service account being used for the encryption request for the given KMS
5850
- # key. If absent, the Compute Engine default service account is used.
5893
+ # key. If absent, the Compute Engine default service account is used. For
5894
+ # example: "kmsKeyServiceAccount": "name@project_id.iam.gserviceaccount.com/
5851
5895
  # Corresponds to the JSON property `kmsKeyServiceAccount`
5852
5896
  # @return [String]
5853
5897
  attr_accessor :kms_key_service_account
5854
5898
 
5855
5899
  # Specifies a 256-bit customer-supplied encryption key, encoded in RFC 4648
5856
- # base64 to either encrypt or decrypt this resource.
5900
+ # base64 to either encrypt or decrypt this resource. You can provide either the
5901
+ # rawKey or the rsaEncryptedKey. For example: "rawKey": "
5902
+ # SGVsbG8gZnJvbSBHb29nbGUgQ2xvdWQgUGxhdGZvcm0="
5857
5903
  # Corresponds to the JSON property `rawKey`
5858
5904
  # @return [String]
5859
5905
  attr_accessor :raw_key
5860
5906
 
5861
5907
  # Specifies an RFC 4648 base64 encoded, RSA-wrapped 2048-bit customer-supplied
5862
- # encryption key to either encrypt or decrypt this resource. The key must meet
5863
- # the following requirements before you can provide it to Compute Engine: 1. The
5864
- # key is wrapped using a RSA public key certificate provided by Google. 2. After
5865
- # being wrapped, the key must be encoded in RFC 4648 base64 encoding. Gets the
5866
- # RSA public key certificate provided by Google at: https://cloud-certs.storage.
5867
- # googleapis.com/google-cloud-csek-ingress.pem
5908
+ # encryption key to either encrypt or decrypt this resource. You can provide
5909
+ # either the rawKey or the rsaEncryptedKey. For example: "rsaEncryptedKey": "
5910
+ # ieCx/NcW06PcT7Ep1X6LUTc/hLvUDYyzSZPPVCVPTVEohpeHASqC8uw5TzyO9U+Fka9JFH
5911
+ # z0mBibXUInrC/jEk014kCK/NPjYgEMOyssZ4ZINPKxlUh2zn1bV+MCaTICrdmuSBTWlUUiFoD
5912
+ # D6PYznLwh8ZNdaheCeZ8ewEXgFQ8V+sDroLaN3Xs3MDTXQEMMoNUXMCZEIpg9Vtp9x2oe==" The
5913
+ # key must meet the following requirements before you can provide it to Compute
5914
+ # Engine: 1. The key is wrapped using a RSA public key certificate provided by
5915
+ # Google. 2. After being wrapped, the key must be encoded in RFC 4648 base64
5916
+ # encoding. Gets the RSA public key certificate provided by Google at: https://
5917
+ # cloud-certs.storage.googleapis.com/google-cloud-csek-ingress.pem
5868
5918
  # Corresponds to the JSON property `rsaEncryptedKey`
5869
5919
  # @return [String]
5870
5920
  attr_accessor :rsa_encrypted_key
@@ -5899,7 +5949,8 @@ module Google
5899
5949
  attr_accessor :disk_encryption_key
5900
5950
 
5901
5951
  # Specifies a valid partial or full URL to an existing Persistent Disk resource.
5902
- # This field is only applicable for persistent disks.
5952
+ # This field is only applicable for persistent disks. For example: "source": "/
5953
+ # compute/v1/projects/project_id/zones/zone/disks/ disk_name
5903
5954
  # Corresponds to the JSON property `source`
5904
5955
  # @return [String]
5905
5956
  attr_accessor :source
@@ -6000,14 +6051,20 @@ module Google
6000
6051
  # @return [String]
6001
6052
  attr_accessor :description
6002
6053
 
6003
- # Encrypts the disk using a customer-supplied encryption key. After you encrypt
6004
- # a disk with a customer-supplied key, you must provide the same key if you use
6005
- # the disk later (e.g. to create a disk snapshot, to create a disk image, to
6006
- # create a machine image, or to attach the disk to a virtual machine). Customer-
6007
- # supplied encryption keys do not protect access to metadata of the disk. If you
6008
- # do not provide an encryption key when creating the disk, then the disk will be
6009
- # encrypted using an automatically generated key and you do not need to provide
6010
- # a key to use the disk later.
6054
+ # Encrypts the disk using a customer-supplied encryption key or a customer-
6055
+ # managed encryption key. Encryption keys do not protect access to metadata of
6056
+ # the disk. After you encrypt a disk with a customer-supplied key, you must
6057
+ # provide the same key if you use the disk later. For example, to create a disk
6058
+ # snapshot, to create a disk image, to create a machine image, or to attach the
6059
+ # disk to a virtual machine. After you encrypt a disk with a customer-managed
6060
+ # key, the diskEncryptionKey.kmsKeyName is set to a key *version* name once the
6061
+ # disk is created. The disk is encrypted with this version of the key. In the
6062
+ # response, diskEncryptionKey.kmsKeyName appears in the following format: "
6063
+ # diskEncryptionKey.kmsKeyName": "projects/kms_project_id/locations/region/
6064
+ # keyRings/ key_region/cryptoKeys/key /cryptoKeysVersions/version If you do not
6065
+ # provide an encryption key when creating the disk, then the disk is encrypted
6066
+ # using an automatically generated key and you don't need to provide a key to
6067
+ # use the disk later.
6011
6068
  # Corresponds to the JSON property `diskEncryptionKey`
6012
6069
  # @return [Google::Apis::ComputeAlpha::CustomerEncryptionKey]
6013
6070
  attr_accessor :disk_encryption_key
@@ -6032,8 +6089,8 @@ module Google
6032
6089
  # @return [Fixnum]
6033
6090
  attr_accessor :id
6034
6091
 
6035
- # Specifies the disk interface to use for attaching this disk, which is either
6036
- # SCSI or NVME. The default is SCSI.
6092
+ # [Deprecated] Specifies the disk interface to use for attaching this disk,
6093
+ # which is either SCSI or NVME. The default is SCSI.
6037
6094
  # Corresponds to the JSON property `interface`
6038
6095
  # @return [String]
6039
6096
  attr_accessor :interface
@@ -6087,6 +6144,22 @@ module Google
6087
6144
  # @return [String]
6088
6145
  attr_accessor :location_hint
6089
6146
 
6147
+ # [Output Only] The field indicates if the disk is created from a locked source
6148
+ # image. Attachment of a disk created from a locked source image will cause the
6149
+ # following operations to become irreversibly prohibited: - R/W or R/O disk
6150
+ # attachment to any other instance - Disk detachment. And the disk can only be
6151
+ # deleted when the instance is deleted - Creation of images or snapshots - Disk
6152
+ # cloning Furthermore, the instance with at least one disk with locked flag set
6153
+ # to true will be prohibited from performing the operations below: - Further
6154
+ # attachment of secondary disks. - Detachment of any disks - Create machine
6155
+ # images - Create instance template - Delete the instance with --keep-disk
6156
+ # parameter set to true for locked disks - Attach a locked disk with --auto-
6157
+ # delete parameter set to false
6158
+ # Corresponds to the JSON property `locked`
6159
+ # @return [Boolean]
6160
+ attr_accessor :locked
6161
+ alias_method :locked?, :locked
6162
+
6090
6163
  # Indicates whether or not the disk can be read/write attached to more than one
6091
6164
  # instance.
6092
6165
  # Corresponds to the JSON property `multiWriter`
@@ -6216,25 +6289,6 @@ module Google
6216
6289
  # @return [String]
6217
6290
  attr_accessor :source_image_id
6218
6291
 
6219
- # [Deprecated] The source in-place snapshot used to create this disk. You can
6220
- # provide this as a partial or full URL to the resource. For example, the
6221
- # following are valid values: - https://www.googleapis.com/compute/v1/projects/
6222
- # project /global/inPlaceSnapshots/inPlaceSnapshots - projects/project/global/
6223
- # inPlaceSnapshots/inPlaceSnapshots - global/inPlaceSnapshots/inPlaceSnapshots
6224
- # Corresponds to the JSON property `sourceInPlaceSnapshot`
6225
- # @return [String]
6226
- attr_accessor :source_in_place_snapshot
6227
-
6228
- # Deprecated The unique ID of the in-place snapshot used to create this disk.
6229
- # This value identifies the exact in-place snapshot that was used to create this
6230
- # persistent disk. For example, if you created the persistent disk from an in-
6231
- # place snapshot that was later deleted and recreated under the same name, the
6232
- # source in-place snapshot ID would identify the exact version of the in-place
6233
- # snapshot that was used.
6234
- # Corresponds to the JSON property `sourceInPlaceSnapshotId`
6235
- # @return [String]
6236
- attr_accessor :source_in_place_snapshot_id
6237
-
6238
6292
  # The source instant snapshot used to create this disk. You can provide this as
6239
6293
  # a partial or full URL to the resource. For example, the following are valid
6240
6294
  # values: - https://www.googleapis.com/compute/v1/projects/project/zones/zone /
@@ -6350,6 +6404,7 @@ module Google
6350
6404
  @license_codes = args[:license_codes] if args.key?(:license_codes)
6351
6405
  @licenses = args[:licenses] if args.key?(:licenses)
6352
6406
  @location_hint = args[:location_hint] if args.key?(:location_hint)
6407
+ @locked = args[:locked] if args.key?(:locked)
6353
6408
  @multi_writer = args[:multi_writer] if args.key?(:multi_writer)
6354
6409
  @name = args[:name] if args.key?(:name)
6355
6410
  @options = args[:options] if args.key?(:options)
@@ -6367,8 +6422,6 @@ module Google
6367
6422
  @source_image = args[:source_image] if args.key?(:source_image)
6368
6423
  @source_image_encryption_key = args[:source_image_encryption_key] if args.key?(:source_image_encryption_key)
6369
6424
  @source_image_id = args[:source_image_id] if args.key?(:source_image_id)
6370
- @source_in_place_snapshot = args[:source_in_place_snapshot] if args.key?(:source_in_place_snapshot)
6371
- @source_in_place_snapshot_id = args[:source_in_place_snapshot_id] if args.key?(:source_in_place_snapshot_id)
6372
6425
  @source_instant_snapshot = args[:source_instant_snapshot] if args.key?(:source_instant_snapshot)
6373
6426
  @source_instant_snapshot_id = args[:source_instant_snapshot_id] if args.key?(:source_instant_snapshot_id)
6374
6427
  @source_snapshot = args[:source_snapshot] if args.key?(:source_snapshot)
@@ -7915,7 +7968,7 @@ module Google
7915
7968
 
7916
7969
  # If destination ranges are specified, the firewall rule applies only to traffic
7917
7970
  # that has destination IP address in these ranges. These ranges must be
7918
- # expressed in CIDR format. Only IPv4 is supported.
7971
+ # expressed in CIDR format. Both IPv4 and IPv6 are supported.
7919
7972
  # Corresponds to the JSON property `destinationRanges`
7920
7973
  # @return [Array<String>]
7921
7974
  attr_accessor :destination_ranges
@@ -7963,7 +8016,7 @@ module Google
7963
8016
  # Name of the resource; provided by the client when the resource is created. The
7964
8017
  # name must be 1-63 characters long, and comply with RFC1035. Specifically, the
7965
8018
  # name must be 1-63 characters long and match the regular expression `[a-z]([-a-
7966
- # z0-9]*[a-z0-9])?. The first character must be a lowercase letter, and all
8019
+ # z0-9]*[a-z0-9])?`. The first character must be a lowercase letter, and all
7967
8020
  # following characters (except for the last character) must be a dash, lowercase
7968
8021
  # letter, or digit. The last character must be a lowercase letter or digit.
7969
8022
  # Corresponds to the JSON property `name`
@@ -8008,7 +8061,7 @@ module Google
8008
8061
  # fields are set, the rule applies to traffic that has a source IP address
8009
8062
  # within sourceRanges OR a source IP from a resource with a matching tag listed
8010
8063
  # in the sourceTags field. The connection does not need to match both fields for
8011
- # the rule to apply. Only IPv4 is supported.
8064
+ # the rule to apply. Both IPv4 and IPv6 are supported.
8012
8065
  # Corresponds to the JSON property `sourceRanges`
8013
8066
  # @return [Array<String>]
8014
8067
  attr_accessor :source_ranges
@@ -8344,7 +8397,7 @@ module Google
8344
8397
  attr_accessor :description
8345
8398
 
8346
8399
  # Deprecated, please use short name instead. User-provided name of the
8347
- # Organization firewall plicy. The name should be unique in the organization in
8400
+ # Organization firewall policy. The name should be unique in the organization in
8348
8401
  # which the firewall policy is created. This name must be set on creation and
8349
8402
  # cannot be changed. The name must be 1-63 characters long, and comply with
8350
8403
  # RFC1035. Specifically, the name must be 1-63 characters long and match the
@@ -8730,6 +8783,12 @@ module Google
8730
8783
  class FirewallPolicyRuleMatcher
8731
8784
  include Google::Apis::Core::Hashable
8732
8785
 
8786
+ # Address groups which should be matched against the traffic destination.
8787
+ # Maximum number of destination address groups is 10.
8788
+ # Corresponds to the JSON property `destAddressGroups`
8789
+ # @return [Array<String>]
8790
+ attr_accessor :dest_address_groups
8791
+
8733
8792
  # CIDR IP address range. Maximum number of destination CIDR IP ranges allowed is
8734
8793
  # 5000.
8735
8794
  # Corresponds to the JSON property `destIpRanges`
@@ -8741,6 +8800,12 @@ module Google
8741
8800
  # @return [Array<Google::Apis::ComputeAlpha::FirewallPolicyRuleMatcherLayer4Config>]
8742
8801
  attr_accessor :layer4_configs
8743
8802
 
8803
+ # Address groups which should be matched against the traffic source. Maximum
8804
+ # number of source address groups is 10.
8805
+ # Corresponds to the JSON property `srcAddressGroups`
8806
+ # @return [Array<String>]
8807
+ attr_accessor :src_address_groups
8808
+
8744
8809
  # CIDR IP address range. Maximum number of source CIDR IP ranges allowed is 5000.
8745
8810
  # Corresponds to the JSON property `srcIpRanges`
8746
8811
  # @return [Array<String>]
@@ -8760,8 +8825,10 @@ module Google
8760
8825
 
8761
8826
  # Update properties of this object
8762
8827
  def update!(**args)
8828
+ @dest_address_groups = args[:dest_address_groups] if args.key?(:dest_address_groups)
8763
8829
  @dest_ip_ranges = args[:dest_ip_ranges] if args.key?(:dest_ip_ranges)
8764
8830
  @layer4_configs = args[:layer4_configs] if args.key?(:layer4_configs)
8831
+ @src_address_groups = args[:src_address_groups] if args.key?(:src_address_groups)
8765
8832
  @src_ip_ranges = args[:src_ip_ranges] if args.key?(:src_ip_ranges)
8766
8833
  @src_secure_tags = args[:src_secure_tags] if args.key?(:src_secure_tags)
8767
8834
  end
@@ -10289,7 +10356,7 @@ module Google
10289
10356
  # resourcemanager.organizationAdmin - members: - user:eve@example.com role:
10290
10357
  # roles/resourcemanager.organizationViewer condition: title: expirable access
10291
10358
  # description: Does not grant access after Sep 2020 expression: request.time <
10292
- # timestamp('2020-10-01T00:00:00.000Z') - etag: BwWWja0YfJA= - version: 3 For a
10359
+ # timestamp('2020-10-01T00:00:00.000Z') etag: BwWWja0YfJA= version: 3 For a
10293
10360
  # description of IAM and its features, see the [IAM documentation](https://cloud.
10294
10361
  # google.com/iam/docs/).
10295
10362
  # Corresponds to the JSON property `policy`
@@ -10386,7 +10453,7 @@ module Google
10386
10453
  # resourcemanager.organizationAdmin - members: - user:eve@example.com role:
10387
10454
  # roles/resourcemanager.organizationViewer condition: title: expirable access
10388
10455
  # description: Does not grant access after Sep 2020 expression: request.time <
10389
- # timestamp('2020-10-01T00:00:00.000Z') - etag: BwWWja0YfJA= - version: 3 For a
10456
+ # timestamp('2020-10-01T00:00:00.000Z') etag: BwWWja0YfJA= version: 3 For a
10390
10457
  # description of IAM and its features, see the [IAM documentation](https://cloud.
10391
10458
  # google.com/iam/docs/).
10392
10459
  # Corresponds to the JSON property `policy`
@@ -13285,6 +13352,24 @@ module Google
13285
13352
  # @return [Array<String>]
13286
13353
  attr_accessor :licenses
13287
13354
 
13355
+ # A flag for marketplace VM disk created from the image, which is designed for
13356
+ # marketplace VM disk to prevent the proprietary data on the disk from being
13357
+ # accessed unwantedly. The flag will be inherited by the disk created from the
13358
+ # image. The disk with locked flag set to true will be prohibited from
13359
+ # performing the operations below: - R/W or R/O disk attach - Disk detach, if
13360
+ # disk is created via create-on-create - Create images - Create snapshots -
13361
+ # Create disk clone (create disk from the current disk) The image with the
13362
+ # locked field set to true will be prohibited from performing the operations
13363
+ # below: - Create images from the current image - Update the locked field for
13364
+ # the current image The instance with at least one disk with locked flag set to
13365
+ # true will be prohibited from performing the operations below: - Secondary disk
13366
+ # attach - Create instant snapshot - Create machine images - Create instance
13367
+ # template - Delete the instance with --keep-disk parameter set to true
13368
+ # Corresponds to the JSON property `locked`
13369
+ # @return [Boolean]
13370
+ attr_accessor :locked
13371
+ alias_method :locked?, :locked
13372
+
13288
13373
  # Name of the resource; provided by the client when the resource is created. The
13289
13374
  # name must be 1-63 characters long, and comply with RFC1035. Specifically, the
13290
13375
  # name must be 1-63 characters long and match the regular expression `[a-z]([-a-
@@ -13350,10 +13435,12 @@ module Google
13350
13435
  # @return [String]
13351
13436
  attr_accessor :source_disk_id
13352
13437
 
13353
- # URL of the source image used to create this image. In order to create an image,
13354
- # you must provide the full or partial URL of one of the following: - The
13355
- # rawDisk.source URL - The sourceDisk URL - The sourceImage URL - The
13356
- # sourceSnapshot URL
13438
+ # URL of the source image used to create this image. The following are valid
13439
+ # formats for the URL: - https://www.googleapis.com/compute/v1/projects/
13440
+ # project_id/global/ images/image_name - projects/project_id/global/images/
13441
+ # image_name In order to create an image, you must provide the full or partial
13442
+ # URL of one of the following: - The rawDisk.source URL - The sourceDisk URL -
13443
+ # The sourceImage URL - The sourceSnapshot URL
13357
13444
  # Corresponds to the JSON property `sourceImage`
13358
13445
  # @return [String]
13359
13446
  attr_accessor :source_image
@@ -13371,10 +13458,12 @@ module Google
13371
13458
  # @return [String]
13372
13459
  attr_accessor :source_image_id
13373
13460
 
13374
- # URL of the source snapshot used to create this image. In order to create an
13375
- # image, you must provide the full or partial URL of one of the following: - The
13376
- # rawDisk.source URL - The sourceDisk URL - The sourceImage URL - The
13377
- # sourceSnapshot URL
13461
+ # URL of the source snapshot used to create this image. The following are valid
13462
+ # formats for the URL: - https://www.googleapis.com/compute/v1/projects/
13463
+ # project_id/global/ snapshots/snapshot_name - projects/project_id/global/
13464
+ # snapshots/snapshot_name In order to create an image, you must provide the full
13465
+ # or partial URL of one of the following: - The rawDisk.source URL - The
13466
+ # sourceDisk URL - The sourceImage URL - The sourceSnapshot URL
13378
13467
  # Corresponds to the JSON property `sourceSnapshot`
13379
13468
  # @return [String]
13380
13469
  attr_accessor :source_snapshot
@@ -13441,6 +13530,7 @@ module Google
13441
13530
  @labels = args[:labels] if args.key?(:labels)
13442
13531
  @license_codes = args[:license_codes] if args.key?(:license_codes)
13443
13532
  @licenses = args[:licenses] if args.key?(:licenses)
13533
+ @locked = args[:locked] if args.key?(:locked)
13444
13534
  @name = args[:name] if args.key?(:name)
13445
13535
  @raw_disk = args[:raw_disk] if args.key?(:raw_disk)
13446
13536
  @rollout_override = args[:rollout_override] if args.key?(:rollout_override)
@@ -13480,10 +13570,12 @@ module Google
13480
13570
  # @return [String]
13481
13571
  attr_accessor :sha1_checksum
13482
13572
 
13483
- # The full Google Cloud Storage URL where the disk image is stored. In order to
13484
- # create an image, you must provide the full or partial URL of one of the
13485
- # following: - The rawDisk.source URL - The sourceDisk URL - The sourceImage URL
13486
- # - The sourceSnapshot URL
13573
+ # The full Google Cloud Storage URL where the raw disk image archive is stored.
13574
+ # The following are valid formats for the URL: - https://storage.googleapis.com/
13575
+ # bucket_name/image_archive_name - https://storage.googleapis.com/bucket_name/
13576
+ # folder_name/ image_archive_name In order to create an image, you must provide
13577
+ # the full or partial URL of one of the following: - The rawDisk.source URL -
13578
+ # The sourceDisk URL - The sourceImage URL - The sourceSnapshot URL
13487
13579
  # Corresponds to the JSON property `source`
13488
13580
  # @return [String]
13489
13581
  attr_accessor :source
@@ -13638,264 +13730,6 @@ module Google
13638
13730
  end
13639
13731
  end
13640
13732
 
13641
- # Represents a InPlaceSnapshot resource. You can use in-place snapshots to
13642
- # create disk rollback points quickly..
13643
- class InPlaceSnapshot
13644
- include Google::Apis::Core::Hashable
13645
-
13646
- # [Output Only] Creation timestamp in RFC3339 text format.
13647
- # Corresponds to the JSON property `creationTimestamp`
13648
- # @return [String]
13649
- attr_accessor :creation_timestamp
13650
-
13651
- # An optional description of this resource. Provide this property when you
13652
- # create the resource.
13653
- # Corresponds to the JSON property `description`
13654
- # @return [String]
13655
- attr_accessor :description
13656
-
13657
- # [Output Only] Size of the source disk, specified in GB.
13658
- # Corresponds to the JSON property `diskSizeGb`
13659
- # @return [Fixnum]
13660
- attr_accessor :disk_size_gb
13661
-
13662
- # Specifies to create an application consistent in-place snapshot by informing
13663
- # the OS to prepare for the snapshot process. Currently only supported on
13664
- # Windows instances using the Volume Shadow Copy Service (VSS).
13665
- # Corresponds to the JSON property `guestFlush`
13666
- # @return [Boolean]
13667
- attr_accessor :guest_flush
13668
- alias_method :guest_flush?, :guest_flush
13669
-
13670
- # [Output Only] The unique identifier for the resource. This identifier is
13671
- # defined by the server.
13672
- # Corresponds to the JSON property `id`
13673
- # @return [Fixnum]
13674
- attr_accessor :id
13675
-
13676
- # [Output Only] Type of the resource. Always compute#inPlaceSnapshot for
13677
- # InPlaceSnapshot resources.
13678
- # Corresponds to the JSON property `kind`
13679
- # @return [String]
13680
- attr_accessor :kind
13681
-
13682
- # A fingerprint for the labels being applied to this InPlaceSnapshot, which is
13683
- # essentially a hash of the labels set used for optimistic locking. The
13684
- # fingerprint is initially generated by Compute Engine and changes after every
13685
- # request to modify or update labels. You must always provide an up-to-date
13686
- # fingerprint hash in order to update or change labels, otherwise the request
13687
- # will fail with error 412 conditionNotMet. To see the latest fingerprint, make
13688
- # a get() request to retrieve a InPlaceSnapshot.
13689
- # Corresponds to the JSON property `labelFingerprint`
13690
- # NOTE: Values are automatically base64 encoded/decoded in the client library.
13691
- # @return [String]
13692
- attr_accessor :label_fingerprint
13693
-
13694
- # Labels to apply to this InPlaceSnapshot. These can be later modified by the
13695
- # setLabels method. Label values may be empty.
13696
- # Corresponds to the JSON property `labels`
13697
- # @return [Hash<String,String>]
13698
- attr_accessor :labels
13699
-
13700
- # Name of the resource; provided by the client when the resource is created. The
13701
- # name must be 1-63 characters long, and comply with RFC1035. Specifically, the
13702
- # name must be 1-63 characters long and match the regular expression `[a-z]([-a-
13703
- # z0-9]*[a-z0-9])?` which means the first character must be a lowercase letter,
13704
- # and all following characters must be a dash, lowercase letter, or digit,
13705
- # except the last character, which cannot be a dash.
13706
- # Corresponds to the JSON property `name`
13707
- # @return [String]
13708
- attr_accessor :name
13709
-
13710
- # [Output Only] URL of the region where the in-place snapshot resides. You must
13711
- # specify this field as part of the HTTP request URL. It is not settable as a
13712
- # field in the request body.
13713
- # Corresponds to the JSON property `region`
13714
- # @return [String]
13715
- attr_accessor :region
13716
-
13717
- # [Output Only] Server-defined URL for the resource.
13718
- # Corresponds to the JSON property `selfLink`
13719
- # @return [String]
13720
- attr_accessor :self_link
13721
-
13722
- # [Output Only] Server-defined URL for this resource's resource id.
13723
- # Corresponds to the JSON property `selfLinkWithId`
13724
- # @return [String]
13725
- attr_accessor :self_link_with_id
13726
-
13727
- # URL of the source disk used to create this in-place snapshot. Note that the
13728
- # source disk must be in the same zone/region as the in-place snapshot to be
13729
- # created. This can be a full or valid partial URL. For example, the following
13730
- # are valid values: - https://www.googleapis.com/compute/v1/projects/project/
13731
- # zones/zone /disks/disk - projects/project/zones/zone/disks/disk - zones/zone/
13732
- # disks/disk
13733
- # Corresponds to the JSON property `sourceDisk`
13734
- # @return [String]
13735
- attr_accessor :source_disk
13736
-
13737
- # [Output Only] The ID value of the disk used to create this InPlaceSnapshot.
13738
- # This value may be used to determine whether the InPlaceSnapshot was taken from
13739
- # the current or a previous instance of a given disk name.
13740
- # Corresponds to the JSON property `sourceDiskId`
13741
- # @return [String]
13742
- attr_accessor :source_disk_id
13743
-
13744
- # [Output Only] The status of the inPlaceSnapshot. This can be CREATING,
13745
- # DELETING, FAILED, or READY.
13746
- # Corresponds to the JSON property `status`
13747
- # @return [String]
13748
- attr_accessor :status
13749
-
13750
- # [Output Only] URL of the zone where the in-place snapshot resides. You must
13751
- # specify this field as part of the HTTP request URL. It is not settable as a
13752
- # field in the request body.
13753
- # Corresponds to the JSON property `zone`
13754
- # @return [String]
13755
- attr_accessor :zone
13756
-
13757
- def initialize(**args)
13758
- update!(**args)
13759
- end
13760
-
13761
- # Update properties of this object
13762
- def update!(**args)
13763
- @creation_timestamp = args[:creation_timestamp] if args.key?(:creation_timestamp)
13764
- @description = args[:description] if args.key?(:description)
13765
- @disk_size_gb = args[:disk_size_gb] if args.key?(:disk_size_gb)
13766
- @guest_flush = args[:guest_flush] if args.key?(:guest_flush)
13767
- @id = args[:id] if args.key?(:id)
13768
- @kind = args[:kind] if args.key?(:kind)
13769
- @label_fingerprint = args[:label_fingerprint] if args.key?(:label_fingerprint)
13770
- @labels = args[:labels] if args.key?(:labels)
13771
- @name = args[:name] if args.key?(:name)
13772
- @region = args[:region] if args.key?(:region)
13773
- @self_link = args[:self_link] if args.key?(:self_link)
13774
- @self_link_with_id = args[:self_link_with_id] if args.key?(:self_link_with_id)
13775
- @source_disk = args[:source_disk] if args.key?(:source_disk)
13776
- @source_disk_id = args[:source_disk_id] if args.key?(:source_disk_id)
13777
- @status = args[:status] if args.key?(:status)
13778
- @zone = args[:zone] if args.key?(:zone)
13779
- end
13780
- end
13781
-
13782
- # Contains a list of InPlaceSnapshot resources.
13783
- class InPlaceSnapshotList
13784
- include Google::Apis::Core::Hashable
13785
-
13786
- # [Output Only] Unique identifier for the resource; defined by the server.
13787
- # Corresponds to the JSON property `id`
13788
- # @return [String]
13789
- attr_accessor :id
13790
-
13791
- # A list of InPlaceSnapshot resources.
13792
- # Corresponds to the JSON property `items`
13793
- # @return [Array<Google::Apis::ComputeAlpha::InPlaceSnapshot>]
13794
- attr_accessor :items
13795
-
13796
- # Type of resource.
13797
- # Corresponds to the JSON property `kind`
13798
- # @return [String]
13799
- attr_accessor :kind
13800
-
13801
- # [Output Only] This token allows you to get the next page of results for list
13802
- # requests. If the number of results is larger than maxResults, use the
13803
- # nextPageToken as a value for the query parameter pageToken in the next list
13804
- # request. Subsequent list requests will have their own nextPageToken to
13805
- # continue paging through the results.
13806
- # Corresponds to the JSON property `nextPageToken`
13807
- # @return [String]
13808
- attr_accessor :next_page_token
13809
-
13810
- # [Output Only] Server-defined URL for this resource.
13811
- # Corresponds to the JSON property `selfLink`
13812
- # @return [String]
13813
- attr_accessor :self_link
13814
-
13815
- # [Output Only] Informational warning message.
13816
- # Corresponds to the JSON property `warning`
13817
- # @return [Google::Apis::ComputeAlpha::InPlaceSnapshotList::Warning]
13818
- attr_accessor :warning
13819
-
13820
- def initialize(**args)
13821
- update!(**args)
13822
- end
13823
-
13824
- # Update properties of this object
13825
- def update!(**args)
13826
- @id = args[:id] if args.key?(:id)
13827
- @items = args[:items] if args.key?(:items)
13828
- @kind = args[:kind] if args.key?(:kind)
13829
- @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
13830
- @self_link = args[:self_link] if args.key?(:self_link)
13831
- @warning = args[:warning] if args.key?(:warning)
13832
- end
13833
-
13834
- # [Output Only] Informational warning message.
13835
- class Warning
13836
- include Google::Apis::Core::Hashable
13837
-
13838
- # [Output Only] A warning code, if applicable. For example, Compute Engine
13839
- # returns NO_RESULTS_ON_PAGE if there are no results in the response.
13840
- # Corresponds to the JSON property `code`
13841
- # @return [String]
13842
- attr_accessor :code
13843
-
13844
- # [Output Only] Metadata about this warning in key: value format. For example: "
13845
- # data": [ ` "key": "scope", "value": "zones/us-east1-d" `
13846
- # Corresponds to the JSON property `data`
13847
- # @return [Array<Google::Apis::ComputeAlpha::InPlaceSnapshotList::Warning::Datum>]
13848
- attr_accessor :data
13849
-
13850
- # [Output Only] A human-readable description of the warning code.
13851
- # Corresponds to the JSON property `message`
13852
- # @return [String]
13853
- attr_accessor :message
13854
-
13855
- def initialize(**args)
13856
- update!(**args)
13857
- end
13858
-
13859
- # Update properties of this object
13860
- def update!(**args)
13861
- @code = args[:code] if args.key?(:code)
13862
- @data = args[:data] if args.key?(:data)
13863
- @message = args[:message] if args.key?(:message)
13864
- end
13865
-
13866
- #
13867
- class Datum
13868
- include Google::Apis::Core::Hashable
13869
-
13870
- # [Output Only] A key that provides more detail on the warning being returned.
13871
- # For example, for warnings where there are no results in a list request for a
13872
- # particular zone, this key might be scope and the key value might be the zone
13873
- # name. Other examples might be a key indicating a deprecated resource and a
13874
- # suggested replacement, or a warning about invalid network settings (for
13875
- # example, if an instance attempts to perform IP forwarding but is not enabled
13876
- # for IP forwarding).
13877
- # Corresponds to the JSON property `key`
13878
- # @return [String]
13879
- attr_accessor :key
13880
-
13881
- # [Output Only] A warning data value corresponding to the key.
13882
- # Corresponds to the JSON property `value`
13883
- # @return [String]
13884
- attr_accessor :value
13885
-
13886
- def initialize(**args)
13887
- update!(**args)
13888
- end
13889
-
13890
- # Update properties of this object
13891
- def update!(**args)
13892
- @key = args[:key] if args.key?(:key)
13893
- @value = args[:value] if args.key?(:value)
13894
- end
13895
- end
13896
- end
13897
- end
13898
-
13899
13733
  # Initial State for shielded instance, these are public keys which are safe to
13900
13734
  # store in public
13901
13735
  class InitialStateConfig
@@ -14261,7 +14095,9 @@ module Google
14261
14095
  # @return [Google::Apis::ComputeAlpha::Tags]
14262
14096
  attr_accessor :tags
14263
14097
 
14264
- # Upcoming Maintenance notification information.
14098
+ # Upcoming Maintenance notification information. TODO(b/196881882) Deprecate
14099
+ # this proto once it's fully migrated to be under proto ResourceStatus.
14100
+ # UpcomingMaintenance.
14265
14101
  # Corresponds to the JSON property `upcomingMaintenance`
14266
14102
  # @return [Google::Apis::ComputeAlpha::UpcomingMaintenance]
14267
14103
  attr_accessor :upcoming_maintenance
@@ -14830,6 +14666,12 @@ module Google
14830
14666
  class InstanceGroupManager
14831
14667
  include Google::Apis::Core::Hashable
14832
14668
 
14669
+ # Specifies the instances configs overrides that should be applied for all
14670
+ # instances in the MIG.
14671
+ # Corresponds to the JSON property `allInstancesConfig`
14672
+ # @return [Google::Apis::ComputeAlpha::InstanceGroupManagerAllInstancesConfig]
14673
+ attr_accessor :all_instances_config
14674
+
14833
14675
  # The autohealing policy for this managed instance group. You can specify only
14834
14676
  # one value.
14835
14677
  # Corresponds to the JSON property `autoHealingPolicies`
@@ -14951,7 +14793,7 @@ module Google
14951
14793
  # @return [String]
14952
14794
  attr_accessor :service_account
14953
14795
 
14954
- # Stanby policy for stopped and suspended instances.
14796
+ # Standby policy for stopped and suspended instances.
14955
14797
  # Corresponds to the JSON property `standbyPolicy`
14956
14798
  # @return [Google::Apis::ComputeAlpha::InstanceGroupManagerStandbyPolicy]
14957
14799
  attr_accessor :standby_policy
@@ -15024,6 +14866,7 @@ module Google
15024
14866
 
15025
14867
  # Update properties of this object
15026
14868
  def update!(**args)
14869
+ @all_instances_config = args[:all_instances_config] if args.key?(:all_instances_config)
15027
14870
  @auto_healing_policies = args[:auto_healing_policies] if args.key?(:auto_healing_policies)
15028
14871
  @base_instance_name = args[:base_instance_name] if args.key?(:base_instance_name)
15029
14872
  @creation_timestamp = args[:creation_timestamp] if args.key?(:creation_timestamp)
@@ -15295,6 +15138,25 @@ module Google
15295
15138
  end
15296
15139
  end
15297
15140
 
15141
+ #
15142
+ class InstanceGroupManagerAllInstancesConfig
15143
+ include Google::Apis::Core::Hashable
15144
+
15145
+ # Represents the change that you want to make to the instance properties.
15146
+ # Corresponds to the JSON property `properties`
15147
+ # @return [Google::Apis::ComputeAlpha::InstancePropertiesPatch]
15148
+ attr_accessor :properties
15149
+
15150
+ def initialize(**args)
15151
+ update!(**args)
15152
+ end
15153
+
15154
+ # Update properties of this object
15155
+ def update!(**args)
15156
+ @properties = args[:properties] if args.key?(:properties)
15157
+ end
15158
+ end
15159
+
15298
15160
  #
15299
15161
  class InstanceGroupManagerAutoHealingPolicy
15300
15162
  include Google::Apis::Core::Hashable
@@ -15319,6 +15181,11 @@ module Google
15319
15181
  # @return [Google::Apis::ComputeAlpha::FixedOrPercent]
15320
15182
  attr_accessor :max_unavailable
15321
15183
 
15184
+ #
15185
+ # Corresponds to the JSON property `updateInstances`
15186
+ # @return [String]
15187
+ attr_accessor :update_instances
15188
+
15322
15189
  def initialize(**args)
15323
15190
  update!(**args)
15324
15191
  end
@@ -15328,6 +15195,7 @@ module Google
15328
15195
  @health_check = args[:health_check] if args.key?(:health_check)
15329
15196
  @initial_delay_sec = args[:initial_delay_sec] if args.key?(:initial_delay_sec)
15330
15197
  @max_unavailable = args[:max_unavailable] if args.key?(:max_unavailable)
15198
+ @update_instances = args[:update_instances] if args.key?(:update_instances)
15331
15199
  end
15332
15200
  end
15333
15201
 
@@ -15520,6 +15388,12 @@ module Google
15520
15388
  class InstanceGroupManagerStatus
15521
15389
  include Google::Apis::Core::Hashable
15522
15390
 
15391
+ # [Output Only] A status of consistency of Instances' config applied to
15392
+ # instances with Instances' config defined in managed instance group.
15393
+ # Corresponds to the JSON property `allInstancesConfig`
15394
+ # @return [Google::Apis::ComputeAlpha::InstanceGroupManagerStatusAllInstancesConfig]
15395
+ attr_accessor :all_instances_config
15396
+
15523
15397
  # [Output Only] The URL of the Autoscaler that targets this instance group
15524
15398
  # manager.
15525
15399
  # Corresponds to the JSON property `autoscaler`
@@ -15554,6 +15428,7 @@ module Google
15554
15428
 
15555
15429
  # Update properties of this object
15556
15430
  def update!(**args)
15431
+ @all_instances_config = args[:all_instances_config] if args.key?(:all_instances_config)
15557
15432
  @autoscaler = args[:autoscaler] if args.key?(:autoscaler)
15558
15433
  @is_stable = args[:is_stable] if args.key?(:is_stable)
15559
15434
  @stateful = args[:stateful] if args.key?(:stateful)
@@ -15561,6 +15436,34 @@ module Google
15561
15436
  end
15562
15437
  end
15563
15438
 
15439
+ #
15440
+ class InstanceGroupManagerStatusAllInstancesConfig
15441
+ include Google::Apis::Core::Hashable
15442
+
15443
+ # [Output Only] Current instances' config revision. This value is in RFC3339
15444
+ # text format.
15445
+ # Corresponds to the JSON property `currentRevision`
15446
+ # @return [String]
15447
+ attr_accessor :current_revision
15448
+
15449
+ # [Output Only] A bit indicating whether instances' config has been applied to
15450
+ # all managed instances in managed instance group.
15451
+ # Corresponds to the JSON property `effective`
15452
+ # @return [Boolean]
15453
+ attr_accessor :effective
15454
+ alias_method :effective?, :effective
15455
+
15456
+ def initialize(**args)
15457
+ update!(**args)
15458
+ end
15459
+
15460
+ # Update properties of this object
15461
+ def update!(**args)
15462
+ @current_revision = args[:current_revision] if args.key?(:current_revision)
15463
+ @effective = args[:effective] if args.key?(:effective)
15464
+ end
15465
+ end
15466
+
15564
15467
  #
15565
15468
  class InstanceGroupManagerStatusStateful
15566
15469
  include Google::Apis::Core::Hashable
@@ -17188,7 +17091,7 @@ module Google
17188
17091
  # @return [Array<Google::Apis::ComputeAlpha::NetworkInterface>]
17189
17092
  attr_accessor :network_interfaces
17190
17093
 
17191
- #
17094
+ # Note that for MachineImage, this is not supported yet.
17192
17095
  # Corresponds to the JSON property `networkPerformanceConfig`
17193
17096
  # @return [Google::Apis::ComputeAlpha::NetworkPerformanceConfig]
17194
17097
  attr_accessor :network_performance_config
@@ -17199,7 +17102,8 @@ module Google
17199
17102
  attr_accessor :post_key_revocation_action_type
17200
17103
 
17201
17104
  # The private IPv6 google access type for VMs. If not specified, use
17202
- # INHERIT_FROM_SUBNETWORK as default.
17105
+ # INHERIT_FROM_SUBNETWORK as default. Note that for MachineImage, this is not
17106
+ # supported yet.
17203
17107
  # Corresponds to the JSON property `privateIpv6GoogleAccess`
17204
17108
  # @return [String]
17205
17109
  attr_accessor :private_ipv6_google_access
@@ -17210,7 +17114,7 @@ module Google
17210
17114
  attr_accessor :reservation_affinity
17211
17115
 
17212
17116
  # Resource policies (names, not ULRs) applied to instances created from these
17213
- # properties.
17117
+ # properties. Note that for MachineImage, this is not supported yet.
17214
17118
  # Corresponds to the JSON property `resourcePolicies`
17215
17119
  # @return [Array<String>]
17216
17120
  attr_accessor :resource_policies
@@ -17221,7 +17125,7 @@ module Google
17221
17125
  attr_accessor :scheduling
17222
17126
 
17223
17127
  # [Input Only] Secure tags to apply to this instance. Maximum number of secure
17224
- # tags allowed is 50.
17128
+ # tags allowed is 50. Note that for MachineImage, this is not supported yet.
17225
17129
  # Corresponds to the JSON property `secureTags`
17226
17130
  # @return [Array<String>]
17227
17131
  attr_accessor :secure_tags
@@ -17281,6 +17185,32 @@ module Google
17281
17185
  end
17282
17186
  end
17283
17187
 
17188
+ # Represents the change that you want to make to the instance properties.
17189
+ class InstancePropertiesPatch
17190
+ include Google::Apis::Core::Hashable
17191
+
17192
+ # The label key-value pairs that you want to patch onto the instance.
17193
+ # Corresponds to the JSON property `labels`
17194
+ # @return [Hash<String,String>]
17195
+ attr_accessor :labels
17196
+
17197
+ # The metadata key-value pairs that you want to patch onto the instance. For
17198
+ # more information, see Project and instance metadata.
17199
+ # Corresponds to the JSON property `metadata`
17200
+ # @return [Hash<String,String>]
17201
+ attr_accessor :metadata
17202
+
17203
+ def initialize(**args)
17204
+ update!(**args)
17205
+ end
17206
+
17207
+ # Update properties of this object
17208
+ def update!(**args)
17209
+ @labels = args[:labels] if args.key?(:labels)
17210
+ @metadata = args[:metadata] if args.key?(:metadata)
17211
+ end
17212
+ end
17213
+
17284
17214
  #
17285
17215
  class InstanceReference
17286
17216
  include Google::Apis::Core::Hashable
@@ -18118,6 +18048,130 @@ module Google
18118
18048
  end
18119
18049
  end
18120
18050
 
18051
+ #
18052
+ class InstantSnapshotAggregatedList
18053
+ include Google::Apis::Core::Hashable
18054
+
18055
+ # [Output Only] Unique identifier for the resource; defined by the server.
18056
+ # Corresponds to the JSON property `id`
18057
+ # @return [String]
18058
+ attr_accessor :id
18059
+
18060
+ # A list of InstantSnapshotsScopedList resources.
18061
+ # Corresponds to the JSON property `items`
18062
+ # @return [Hash<String,Google::Apis::ComputeAlpha::InstantSnapshotsScopedList>]
18063
+ attr_accessor :items
18064
+
18065
+ # [Output Only] Type of resource. Always compute#instantSnapshotAggregatedList
18066
+ # for aggregated lists of instantSnapshots.
18067
+ # Corresponds to the JSON property `kind`
18068
+ # @return [String]
18069
+ attr_accessor :kind
18070
+
18071
+ # [Output Only] This token allows you to get the next page of results for list
18072
+ # requests. If the number of results is larger than maxResults, use the
18073
+ # nextPageToken as a value for the query parameter pageToken in the next list
18074
+ # request. Subsequent list requests will have their own nextPageToken to
18075
+ # continue paging through the results.
18076
+ # Corresponds to the JSON property `nextPageToken`
18077
+ # @return [String]
18078
+ attr_accessor :next_page_token
18079
+
18080
+ # [Output Only] Server-defined URL for this resource.
18081
+ # Corresponds to the JSON property `selfLink`
18082
+ # @return [String]
18083
+ attr_accessor :self_link
18084
+
18085
+ # [Output Only] Unreachable resources.
18086
+ # Corresponds to the JSON property `unreachables`
18087
+ # @return [Array<String>]
18088
+ attr_accessor :unreachables
18089
+
18090
+ # [Output Only] Informational warning message.
18091
+ # Corresponds to the JSON property `warning`
18092
+ # @return [Google::Apis::ComputeAlpha::InstantSnapshotAggregatedList::Warning]
18093
+ attr_accessor :warning
18094
+
18095
+ def initialize(**args)
18096
+ update!(**args)
18097
+ end
18098
+
18099
+ # Update properties of this object
18100
+ def update!(**args)
18101
+ @id = args[:id] if args.key?(:id)
18102
+ @items = args[:items] if args.key?(:items)
18103
+ @kind = args[:kind] if args.key?(:kind)
18104
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
18105
+ @self_link = args[:self_link] if args.key?(:self_link)
18106
+ @unreachables = args[:unreachables] if args.key?(:unreachables)
18107
+ @warning = args[:warning] if args.key?(:warning)
18108
+ end
18109
+
18110
+ # [Output Only] Informational warning message.
18111
+ class Warning
18112
+ include Google::Apis::Core::Hashable
18113
+
18114
+ # [Output Only] A warning code, if applicable. For example, Compute Engine
18115
+ # returns NO_RESULTS_ON_PAGE if there are no results in the response.
18116
+ # Corresponds to the JSON property `code`
18117
+ # @return [String]
18118
+ attr_accessor :code
18119
+
18120
+ # [Output Only] Metadata about this warning in key: value format. For example: "
18121
+ # data": [ ` "key": "scope", "value": "zones/us-east1-d" `
18122
+ # Corresponds to the JSON property `data`
18123
+ # @return [Array<Google::Apis::ComputeAlpha::InstantSnapshotAggregatedList::Warning::Datum>]
18124
+ attr_accessor :data
18125
+
18126
+ # [Output Only] A human-readable description of the warning code.
18127
+ # Corresponds to the JSON property `message`
18128
+ # @return [String]
18129
+ attr_accessor :message
18130
+
18131
+ def initialize(**args)
18132
+ update!(**args)
18133
+ end
18134
+
18135
+ # Update properties of this object
18136
+ def update!(**args)
18137
+ @code = args[:code] if args.key?(:code)
18138
+ @data = args[:data] if args.key?(:data)
18139
+ @message = args[:message] if args.key?(:message)
18140
+ end
18141
+
18142
+ #
18143
+ class Datum
18144
+ include Google::Apis::Core::Hashable
18145
+
18146
+ # [Output Only] A key that provides more detail on the warning being returned.
18147
+ # For example, for warnings where there are no results in a list request for a
18148
+ # particular zone, this key might be scope and the key value might be the zone
18149
+ # name. Other examples might be a key indicating a deprecated resource and a
18150
+ # suggested replacement, or a warning about invalid network settings (for
18151
+ # example, if an instance attempts to perform IP forwarding but is not enabled
18152
+ # for IP forwarding).
18153
+ # Corresponds to the JSON property `key`
18154
+ # @return [String]
18155
+ attr_accessor :key
18156
+
18157
+ # [Output Only] A warning data value corresponding to the key.
18158
+ # Corresponds to the JSON property `value`
18159
+ # @return [String]
18160
+ attr_accessor :value
18161
+
18162
+ def initialize(**args)
18163
+ update!(**args)
18164
+ end
18165
+
18166
+ # Update properties of this object
18167
+ def update!(**args)
18168
+ @key = args[:key] if args.key?(:key)
18169
+ @value = args[:value] if args.key?(:value)
18170
+ end
18171
+ end
18172
+ end
18173
+ end
18174
+
18121
18175
  #
18122
18176
  class InstantSnapshotExportParams
18123
18177
  include Google::Apis::Core::Hashable
@@ -18284,6 +18338,116 @@ module Google
18284
18338
  end
18285
18339
  end
18286
18340
 
18341
+ #
18342
+ class InstantSnapshotsExportRequest
18343
+ include Google::Apis::Core::Hashable
18344
+
18345
+ # Parameters to export the changed blocks.
18346
+ # Corresponds to the JSON property `exportParams`
18347
+ # @return [Google::Apis::ComputeAlpha::InstantSnapshotExportParams]
18348
+ attr_accessor :export_params
18349
+
18350
+ def initialize(**args)
18351
+ update!(**args)
18352
+ end
18353
+
18354
+ # Update properties of this object
18355
+ def update!(**args)
18356
+ @export_params = args[:export_params] if args.key?(:export_params)
18357
+ end
18358
+ end
18359
+
18360
+ #
18361
+ class InstantSnapshotsScopedList
18362
+ include Google::Apis::Core::Hashable
18363
+
18364
+ # [Output Only] A list of instantSnapshots contained in this scope.
18365
+ # Corresponds to the JSON property `instantSnapshots`
18366
+ # @return [Array<Google::Apis::ComputeAlpha::InstantSnapshot>]
18367
+ attr_accessor :instant_snapshots
18368
+
18369
+ # [Output Only] Informational warning which replaces the list of
18370
+ # instantSnapshots when the list is empty.
18371
+ # Corresponds to the JSON property `warning`
18372
+ # @return [Google::Apis::ComputeAlpha::InstantSnapshotsScopedList::Warning]
18373
+ attr_accessor :warning
18374
+
18375
+ def initialize(**args)
18376
+ update!(**args)
18377
+ end
18378
+
18379
+ # Update properties of this object
18380
+ def update!(**args)
18381
+ @instant_snapshots = args[:instant_snapshots] if args.key?(:instant_snapshots)
18382
+ @warning = args[:warning] if args.key?(:warning)
18383
+ end
18384
+
18385
+ # [Output Only] Informational warning which replaces the list of
18386
+ # instantSnapshots when the list is empty.
18387
+ class Warning
18388
+ include Google::Apis::Core::Hashable
18389
+
18390
+ # [Output Only] A warning code, if applicable. For example, Compute Engine
18391
+ # returns NO_RESULTS_ON_PAGE if there are no results in the response.
18392
+ # Corresponds to the JSON property `code`
18393
+ # @return [String]
18394
+ attr_accessor :code
18395
+
18396
+ # [Output Only] Metadata about this warning in key: value format. For example: "
18397
+ # data": [ ` "key": "scope", "value": "zones/us-east1-d" `
18398
+ # Corresponds to the JSON property `data`
18399
+ # @return [Array<Google::Apis::ComputeAlpha::InstantSnapshotsScopedList::Warning::Datum>]
18400
+ attr_accessor :data
18401
+
18402
+ # [Output Only] A human-readable description of the warning code.
18403
+ # Corresponds to the JSON property `message`
18404
+ # @return [String]
18405
+ attr_accessor :message
18406
+
18407
+ def initialize(**args)
18408
+ update!(**args)
18409
+ end
18410
+
18411
+ # Update properties of this object
18412
+ def update!(**args)
18413
+ @code = args[:code] if args.key?(:code)
18414
+ @data = args[:data] if args.key?(:data)
18415
+ @message = args[:message] if args.key?(:message)
18416
+ end
18417
+
18418
+ #
18419
+ class Datum
18420
+ include Google::Apis::Core::Hashable
18421
+
18422
+ # [Output Only] A key that provides more detail on the warning being returned.
18423
+ # For example, for warnings where there are no results in a list request for a
18424
+ # particular zone, this key might be scope and the key value might be the zone
18425
+ # name. Other examples might be a key indicating a deprecated resource and a
18426
+ # suggested replacement, or a warning about invalid network settings (for
18427
+ # example, if an instance attempts to perform IP forwarding but is not enabled
18428
+ # for IP forwarding).
18429
+ # Corresponds to the JSON property `key`
18430
+ # @return [String]
18431
+ attr_accessor :key
18432
+
18433
+ # [Output Only] A warning data value corresponding to the key.
18434
+ # Corresponds to the JSON property `value`
18435
+ # @return [String]
18436
+ attr_accessor :value
18437
+
18438
+ def initialize(**args)
18439
+ update!(**args)
18440
+ end
18441
+
18442
+ # Update properties of this object
18443
+ def update!(**args)
18444
+ @key = args[:key] if args.key?(:key)
18445
+ @value = args[:value] if args.key?(:value)
18446
+ end
18447
+ end
18448
+ end
18449
+ end
18450
+
18287
18451
  # HttpRouteRuleMatch criteria for field values that must stay within the
18288
18452
  # specified integer range.
18289
18453
  class Int64RangeMatch
@@ -19366,11 +19530,6 @@ module Google
19366
19530
  # @return [String]
19367
19531
  attr_accessor :mac_address
19368
19532
 
19369
- # Describes the status of MACsec encryption on the link.
19370
- # Corresponds to the JSON property `macsec`
19371
- # @return [Google::Apis::ComputeAlpha::InterconnectDiagnosticsMacsecStatus]
19372
- attr_accessor :macsec
19373
-
19374
19533
  def initialize(**args)
19375
19534
  update!(**args)
19376
19535
  end
@@ -19380,7 +19539,6 @@ module Google
19380
19539
  @arp_caches = args[:arp_caches] if args.key?(:arp_caches)
19381
19540
  @links = args[:links] if args.key?(:links)
19382
19541
  @mac_address = args[:mac_address] if args.key?(:mac_address)
19383
- @macsec = args[:macsec] if args.key?(:macsec)
19384
19542
  end
19385
19543
  end
19386
19544
 
@@ -19502,6 +19660,11 @@ module Google
19502
19660
  # @return [Google::Apis::ComputeAlpha::InterconnectDiagnosticsLinkLacpStatus]
19503
19661
  attr_accessor :lacp_status
19504
19662
 
19663
+ # Describes the status of MACsec encryption on the link.
19664
+ # Corresponds to the JSON property `macsec`
19665
+ # @return [Google::Apis::ComputeAlpha::InterconnectDiagnosticsMacsecStatus]
19666
+ attr_accessor :macsec
19667
+
19505
19668
  # An InterconnectDiagnostics.LinkOpticalPower object, describing the current
19506
19669
  # value and status of the received light level.
19507
19670
  # Corresponds to the JSON property `receivingOpticalPower`
@@ -19524,6 +19687,7 @@ module Google
19524
19687
  @circuit_id = args[:circuit_id] if args.key?(:circuit_id)
19525
19688
  @google_demarc = args[:google_demarc] if args.key?(:google_demarc)
19526
19689
  @lacp_status = args[:lacp_status] if args.key?(:lacp_status)
19690
+ @macsec = args[:macsec] if args.key?(:macsec)
19527
19691
  @receiving_optical_power = args[:receiving_optical_power] if args.key?(:receiving_optical_power)
19528
19692
  @transmitting_optical_power = args[:transmitting_optical_power] if args.key?(:transmitting_optical_power)
19529
19693
  end
@@ -19539,18 +19703,11 @@ module Google
19539
19703
  # @return [String]
19540
19704
  attr_accessor :ckn
19541
19705
 
19542
- # The current state of MACsec configuration on this Interconnect, which can take
19543
- # one of the following values: - INITIALIZED: MACsec has been configured on the
19544
- # bundle interface. The Google edge router is waiting to establish a MACsec
19545
- # session with the customer router on the other side of this Interconnect. In
19546
- # addition, when key rollover fails between the two routers, the bundle
19547
- # interface will return to the initialized state. - SECURED: MACsec session has
19548
- # been successfully established between the Google edge router and the customer
19549
- # router. - FAILED: MACsec configuration on the bundle interface encountered an
19550
- # error. - DISABLED: MACsec is explicitly disabled on this Interconnect.
19551
- # Corresponds to the JSON property `state`
19552
- # @return [String]
19553
- attr_accessor :state
19706
+ # Indicates whether or not MACsec is operational on this link.
19707
+ # Corresponds to the JSON property `operational`
19708
+ # @return [Boolean]
19709
+ attr_accessor :operational
19710
+ alias_method :operational?, :operational
19554
19711
 
19555
19712
  def initialize(**args)
19556
19713
  update!(**args)
@@ -19559,7 +19716,7 @@ module Google
19559
19716
  # Update properties of this object
19560
19717
  def update!(**args)
19561
19718
  @ckn = args[:ckn] if args.key?(:ckn)
19562
- @state = args[:state] if args.key?(:state)
19719
+ @operational = args[:operational] if args.key?(:operational)
19563
19720
  end
19564
19721
  end
19565
19722
 
@@ -21217,6 +21374,11 @@ module Google
21217
21374
  # @return [Fixnum]
21218
21375
  attr_accessor :id
21219
21376
 
21377
+ # [Output Only] Properties of source instance
21378
+ # Corresponds to the JSON property `instanceProperties`
21379
+ # @return [Google::Apis::ComputeAlpha::InstanceProperties]
21380
+ attr_accessor :instance_properties
21381
+
21220
21382
  # [Output Only] The resource type, which is always compute#machineImage for
21221
21383
  # machine image.
21222
21384
  # Corresponds to the JSON property `kind`
@@ -21252,6 +21414,12 @@ module Google
21252
21414
  attr_accessor :satisfies_pzs
21253
21415
  alias_method :satisfies_pzs?, :satisfies_pzs
21254
21416
 
21417
+ # An array of Machine Image specific properties for disks attached to the source
21418
+ # instance
21419
+ # Corresponds to the JSON property `savedDisks`
21420
+ # @return [Array<Google::Apis::ComputeAlpha::SavedDisk>]
21421
+ attr_accessor :saved_disks
21422
+
21255
21423
  # [Output Only] The URL for this machine image. The server defines this URL.
21256
21424
  # Corresponds to the JSON property `selfLink`
21257
21425
  # @return [String]
@@ -21309,10 +21477,12 @@ module Google
21309
21477
  @description = args[:description] if args.key?(:description)
21310
21478
  @guest_flush = args[:guest_flush] if args.key?(:guest_flush)
21311
21479
  @id = args[:id] if args.key?(:id)
21480
+ @instance_properties = args[:instance_properties] if args.key?(:instance_properties)
21312
21481
  @kind = args[:kind] if args.key?(:kind)
21313
21482
  @machine_image_encryption_key = args[:machine_image_encryption_key] if args.key?(:machine_image_encryption_key)
21314
21483
  @name = args[:name] if args.key?(:name)
21315
21484
  @satisfies_pzs = args[:satisfies_pzs] if args.key?(:satisfies_pzs)
21485
+ @saved_disks = args[:saved_disks] if args.key?(:saved_disks)
21316
21486
  @self_link = args[:self_link] if args.key?(:self_link)
21317
21487
  @self_link_with_id = args[:self_link_with_id] if args.key?(:self_link_with_id)
21318
21488
  @source_disk_encryption_keys = args[:source_disk_encryption_keys] if args.key?(:source_disk_encryption_keys)
@@ -21916,6 +22086,11 @@ module Google
21916
22086
  class ManagedInstance
21917
22087
  include Google::Apis::Core::Hashable
21918
22088
 
22089
+ # [Output Only] Instances config revision applied to this instance.
22090
+ # Corresponds to the JSON property `allInstancesConfig`
22091
+ # @return [Google::Apis::ComputeAlpha::ManagedInstanceAllInstancesConfig]
22092
+ attr_accessor :all_instances_config
22093
+
21919
22094
  # [Output Only] The current action that the managed instance group has scheduled
21920
22095
  # for the instance. Possible values: - NONE The instance is running, and the
21921
22096
  # managed instance group does not have any scheduled actions for this instance. -
@@ -22006,6 +22181,7 @@ module Google
22006
22181
 
22007
22182
  # Update properties of this object
22008
22183
  def update!(**args)
22184
+ @all_instances_config = args[:all_instances_config] if args.key?(:all_instances_config)
22009
22185
  @current_action = args[:current_action] if args.key?(:current_action)
22010
22186
  @id = args[:id] if args.key?(:id)
22011
22187
  @instance = args[:instance] if args.key?(:instance)
@@ -22021,6 +22197,25 @@ module Google
22021
22197
  end
22022
22198
  end
22023
22199
 
22200
+ #
22201
+ class ManagedInstanceAllInstancesConfig
22202
+ include Google::Apis::Core::Hashable
22203
+
22204
+ # [Output Only] Instances config revision. This value is in RFC3339 text format.
22205
+ # Corresponds to the JSON property `revision`
22206
+ # @return [String]
22207
+ attr_accessor :revision
22208
+
22209
+ def initialize(**args)
22210
+ update!(**args)
22211
+ end
22212
+
22213
+ # Update properties of this object
22214
+ def update!(**args)
22215
+ @revision = args[:revision] if args.key?(:revision)
22216
+ end
22217
+ end
22218
+
22024
22219
  #
22025
22220
  class ManagedInstanceInstanceHealth
22026
22221
  include Google::Apis::Core::Hashable
@@ -22404,6 +22599,13 @@ module Google
22404
22599
  # @return [String]
22405
22600
  attr_accessor :description
22406
22601
 
22602
+ # Enable ULA internal ipv6 on this network. Enabling this feature will assign a /
22603
+ # 48 from google defined ULA prefix fd20::/20. .
22604
+ # Corresponds to the JSON property `enableUlaInternalIpv6`
22605
+ # @return [Boolean]
22606
+ attr_accessor :enable_ula_internal_ipv6
22607
+ alias_method :enable_ula_internal_ipv6?, :enable_ula_internal_ipv6
22608
+
22407
22609
  # [Output Only] URL of the firewall policy the network is associated with.
22408
22610
  # Corresponds to the JSON property `firewallPolicy`
22409
22611
  # @return [String]
@@ -22421,13 +22623,23 @@ module Google
22421
22623
  # @return [Fixnum]
22422
22624
  attr_accessor :id
22423
22625
 
22626
+ # When enabling ula internal ipv6, caller optionally can specify the /48 range
22627
+ # they want from the google defined ULA prefix fd20::/20. The input must be a
22628
+ # valid /48 ULA IPv6 address and must be within the fd20::/20. Operation will
22629
+ # fail if the speficied /48 is already in used by another resource. If the field
22630
+ # is not speficied, then a /48 range will be randomly allocated from fd20::/20
22631
+ # and returned via this field. .
22632
+ # Corresponds to the JSON property `internalIpv6Range`
22633
+ # @return [String]
22634
+ attr_accessor :internal_ipv6_range
22635
+
22424
22636
  # [Output Only] Type of the resource. Always compute#network for networks.
22425
22637
  # Corresponds to the JSON property `kind`
22426
22638
  # @return [String]
22427
22639
  attr_accessor :kind
22428
22640
 
22429
22641
  # Maximum Transmission Unit in bytes. The minimum value for this field is 1460
22430
- # and the maximum value is 1500 bytes.
22642
+ # and the maximum value is 1500 bytes. If unspecified, defaults to 1460.
22431
22643
  # Corresponds to the JSON property `mtu`
22432
22644
  # @return [Fixnum]
22433
22645
  attr_accessor :mtu
@@ -22442,6 +22654,11 @@ module Google
22442
22654
  # @return [String]
22443
22655
  attr_accessor :name
22444
22656
 
22657
+ #
22658
+ # Corresponds to the JSON property `networkFirewallPolicyEnforcementOrder`
22659
+ # @return [String]
22660
+ attr_accessor :network_firewall_policy_enforcement_order
22661
+
22445
22662
  # [Output Only] A list of network peerings for the resource.
22446
22663
  # Corresponds to the JSON property `peerings`
22447
22664
  # @return [Array<Google::Apis::ComputeAlpha::NetworkPeering>]
@@ -22480,12 +22697,15 @@ module Google
22480
22697
  @auto_create_subnetworks = args[:auto_create_subnetworks] if args.key?(:auto_create_subnetworks)
22481
22698
  @creation_timestamp = args[:creation_timestamp] if args.key?(:creation_timestamp)
22482
22699
  @description = args[:description] if args.key?(:description)
22700
+ @enable_ula_internal_ipv6 = args[:enable_ula_internal_ipv6] if args.key?(:enable_ula_internal_ipv6)
22483
22701
  @firewall_policy = args[:firewall_policy] if args.key?(:firewall_policy)
22484
22702
  @gateway_i_pv4 = args[:gateway_i_pv4] if args.key?(:gateway_i_pv4)
22485
22703
  @id = args[:id] if args.key?(:id)
22704
+ @internal_ipv6_range = args[:internal_ipv6_range] if args.key?(:internal_ipv6_range)
22486
22705
  @kind = args[:kind] if args.key?(:kind)
22487
22706
  @mtu = args[:mtu] if args.key?(:mtu)
22488
22707
  @name = args[:name] if args.key?(:name)
22708
+ @network_firewall_policy_enforcement_order = args[:network_firewall_policy_enforcement_order] if args.key?(:network_firewall_policy_enforcement_order)
22489
22709
  @peerings = args[:peerings] if args.key?(:peerings)
22490
22710
  @routing_config = args[:routing_config] if args.key?(:routing_config)
22491
22711
  @self_link = args[:self_link] if args.key?(:self_link)
@@ -24150,9 +24370,8 @@ module Google
24150
24370
  alias_method :export_custom_routes?, :export_custom_routes
24151
24371
 
24152
24372
  # Whether subnet routes with public IP range are exported. The default value is
24153
- # true, all subnet routes are exported. The IPv4 special-use ranges (https://en.
24154
- # wikipedia.org/wiki/IPv4#Special_addresses) are always exported to peers and
24155
- # are not controlled by this field.
24373
+ # true, all subnet routes are exported. IPv4 special-use ranges are always
24374
+ # exported to peers and are not controlled by this field.
24156
24375
  # Corresponds to the JSON property `exportSubnetRoutesWithPublicIp`
24157
24376
  # @return [Boolean]
24158
24377
  attr_accessor :export_subnet_routes_with_public_ip
@@ -24165,9 +24384,8 @@ module Google
24165
24384
  alias_method :import_custom_routes?, :import_custom_routes
24166
24385
 
24167
24386
  # Whether subnet routes with public IP range are imported. The default value is
24168
- # false. The IPv4 special-use ranges (https://en.wikipedia.org/wiki/IPv4#
24169
- # Special_addresses) are always imported from peers and are not controlled by
24170
- # this field.
24387
+ # false. IPv4 special-use ranges are always imported from peers and are not
24388
+ # controlled by this field.
24171
24389
  # Corresponds to the JSON property `importSubnetRoutesWithPublicIp`
24172
24390
  # @return [Boolean]
24173
24391
  attr_accessor :import_subnet_routes_with_public_ip
@@ -24481,7 +24699,7 @@ module Google
24481
24699
  end
24482
24700
  end
24483
24701
 
24484
- # Represent a sole-tenant Node Group resource. A sole-tenant node is a physical
24702
+ # Represents a sole-tenant Node Group resource. A sole-tenant node is a physical
24485
24703
  # server that is dedicated to hosting VM instances only for your specific
24486
24704
  # project. Use sole-tenant nodes to keep your instances physically separated
24487
24705
  # from instances in other projects, or to group your instances together on the
@@ -26734,6 +26952,11 @@ module Google
26734
26952
  # @return [String]
26735
26953
  attr_accessor :kind
26736
26954
 
26955
+ # [Output Only] Service-specific metadata attached to this operation.
26956
+ # Corresponds to the JSON property `metadata`
26957
+ # @return [Hash<String,Object>]
26958
+ attr_accessor :metadata
26959
+
26737
26960
  # [Output Only] Name of the operation.
26738
26961
  # Corresponds to the JSON property `name`
26739
26962
  # @return [String]
@@ -26840,6 +27063,7 @@ module Google
26840
27063
  @id = args[:id] if args.key?(:id)
26841
27064
  @insert_time = args[:insert_time] if args.key?(:insert_time)
26842
27065
  @kind = args[:kind] if args.key?(:kind)
27066
+ @metadata = args[:metadata] if args.key?(:metadata)
26843
27067
  @name = args[:name] if args.key?(:name)
26844
27068
  @operation_group_id = args[:operation_group_id] if args.key?(:operation_group_id)
26845
27069
  @operation_type = args[:operation_type] if args.key?(:operation_type)
@@ -28478,7 +28702,7 @@ module Google
28478
28702
  # resourcemanager.organizationAdmin - members: - user:eve@example.com role:
28479
28703
  # roles/resourcemanager.organizationViewer condition: title: expirable access
28480
28704
  # description: Does not grant access after Sep 2020 expression: request.time <
28481
- # timestamp('2020-10-01T00:00:00.000Z') - etag: BwWWja0YfJA= - version: 3 For a
28705
+ # timestamp('2020-10-01T00:00:00.000Z') etag: BwWWja0YfJA= version: 3 For a
28482
28706
  # description of IAM and its features, see the [IAM documentation](https://cloud.
28483
28707
  # google.com/iam/docs/).
28484
28708
  class Policy
@@ -28971,6 +29195,16 @@ module Google
28971
29195
  # @return [String]
28972
29196
  attr_accessor :organization
28973
29197
 
29198
+ # Opt-in for partial page behavior which provides a partial filled page (number
29199
+ # of items on which may be smaller than maxResults) within the API deadline. If
29200
+ # opt-in, then the user should rely on if nextPageToken is empty in the response
29201
+ # to determine if there is a next page. Empty page is also valid and possible.
29202
+ # The default value is false.
29203
+ # Corresponds to the JSON property `returnPartialPage`
29204
+ # @return [Boolean]
29205
+ attr_accessor :return_partial_page
29206
+ alias_method :return_partial_page?, :return_partial_page
29207
+
28974
29208
  def initialize(**args)
28975
29209
  update!(**args)
28976
29210
  end
@@ -28978,6 +29212,7 @@ module Google
28978
29212
  # Update properties of this object
28979
29213
  def update!(**args)
28980
29214
  @organization = args[:organization] if args.key?(:organization)
29215
+ @return_partial_page = args[:return_partial_page] if args.key?(:return_partial_page)
28981
29216
  end
28982
29217
  end
28983
29218
 
@@ -31579,7 +31814,7 @@ module Google
31579
31814
  # resourcemanager.organizationAdmin - members: - user:eve@example.com role:
31580
31815
  # roles/resourcemanager.organizationViewer condition: title: expirable access
31581
31816
  # description: Does not grant access after Sep 2020 expression: request.time <
31582
- # timestamp('2020-10-01T00:00:00.000Z') - etag: BwWWja0YfJA= - version: 3 For a
31817
+ # timestamp('2020-10-01T00:00:00.000Z') etag: BwWWja0YfJA= version: 3 For a
31583
31818
  # description of IAM and its features, see the [IAM documentation](https://cloud.
31584
31819
  # google.com/iam/docs/).
31585
31820
  # Corresponds to the JSON property `policy`
@@ -31741,6 +31976,7 @@ module Google
31741
31976
  attr_accessor :share_settings
31742
31977
 
31743
31978
  # This reservation type allows to pre allocate specific instance configuration.
31979
+ # Next ID: 5
31744
31980
  # Corresponds to the JSON property `specificReservation`
31745
31981
  # @return [Google::Apis::ComputeAlpha::AllocationSpecificSkuReservation]
31746
31982
  attr_accessor :specific_reservation
@@ -33306,6 +33542,11 @@ module Google
33306
33542
  attr_accessor :allow_conflicting_subnetworks
33307
33543
  alias_method :allow_conflicting_subnetworks?, :allow_conflicting_subnetworks
33308
33544
 
33545
+ # [Output Only] AS path.
33546
+ # Corresponds to the JSON property `asPaths`
33547
+ # @return [Array<Google::Apis::ComputeAlpha::RouteAsPath>]
33548
+ attr_accessor :as_paths
33549
+
33309
33550
  # [Output Only] Creation timestamp in RFC3339 text format.
33310
33551
  # Corresponds to the JSON property `creationTimestamp`
33311
33552
  # @return [String]
@@ -33416,6 +33657,15 @@ module Google
33416
33657
  # @return [Fixnum]
33417
33658
  attr_accessor :priority
33418
33659
 
33660
+ # [Output Only] The type of this route, which can be one of the following values:
33661
+ # - 'TRANSIT' for a transit route that this router learned from another Cloud
33662
+ # Router and will readvertise to one of its BGP peers - 'SUBNET' for a route
33663
+ # from a subnet of the VPC - 'BGP' for a route learned from a BGP peer of this
33664
+ # router - 'STATIC' for a static route
33665
+ # Corresponds to the JSON property `routeType`
33666
+ # @return [String]
33667
+ attr_accessor :route_type
33668
+
33419
33669
  # [Output Only] Server-defined fully-qualified URL for this resource.
33420
33670
  # Corresponds to the JSON property `selfLink`
33421
33671
  # @return [String]
@@ -33444,6 +33694,7 @@ module Google
33444
33694
  # Update properties of this object
33445
33695
  def update!(**args)
33446
33696
  @allow_conflicting_subnetworks = args[:allow_conflicting_subnetworks] if args.key?(:allow_conflicting_subnetworks)
33697
+ @as_paths = args[:as_paths] if args.key?(:as_paths)
33447
33698
  @creation_timestamp = args[:creation_timestamp] if args.key?(:creation_timestamp)
33448
33699
  @description = args[:description] if args.key?(:description)
33449
33700
  @dest_range = args[:dest_range] if args.key?(:dest_range)
@@ -33461,6 +33712,7 @@ module Google
33461
33712
  @next_hop_peering = args[:next_hop_peering] if args.key?(:next_hop_peering)
33462
33713
  @next_hop_vpn_tunnel = args[:next_hop_vpn_tunnel] if args.key?(:next_hop_vpn_tunnel)
33463
33714
  @priority = args[:priority] if args.key?(:priority)
33715
+ @route_type = args[:route_type] if args.key?(:route_type)
33464
33716
  @self_link = args[:self_link] if args.key?(:self_link)
33465
33717
  @self_link_with_id = args[:self_link_with_id] if args.key?(:self_link_with_id)
33466
33718
  @tags = args[:tags] if args.key?(:tags)
@@ -33532,6 +33784,37 @@ module Google
33532
33784
  end
33533
33785
  end
33534
33786
 
33787
+ #
33788
+ class RouteAsPath
33789
+ include Google::Apis::Core::Hashable
33790
+
33791
+ # [Output Only] The AS numbers of the AS Path.
33792
+ # Corresponds to the JSON property `asLists`
33793
+ # @return [Array<Fixnum>]
33794
+ attr_accessor :as_lists
33795
+
33796
+ # [Output Only] The type of the AS Path, which can be one of the following
33797
+ # values: - 'AS_SET': unordered set of autonomous systems that the route in has
33798
+ # traversed - 'AS_SEQUENCE': ordered set of autonomous systems that the route
33799
+ # has traversed - 'AS_CONFED_SEQUENCE': ordered set of Member Autonomous Systems
33800
+ # in the local confederation that the route has traversed - 'AS_CONFED_SET':
33801
+ # unordered set of Member Autonomous Systems in the local confederation that the
33802
+ # route has traversed
33803
+ # Corresponds to the JSON property `pathSegmentType`
33804
+ # @return [String]
33805
+ attr_accessor :path_segment_type
33806
+
33807
+ def initialize(**args)
33808
+ update!(**args)
33809
+ end
33810
+
33811
+ # Update properties of this object
33812
+ def update!(**args)
33813
+ @as_lists = args[:as_lists] if args.key?(:as_lists)
33814
+ @path_segment_type = args[:path_segment_type] if args.key?(:path_segment_type)
33815
+ end
33816
+ end
33817
+
33535
33818
  # Contains a list of Route resources.
33536
33819
  class RouteList
33537
33820
  include Google::Apis::Core::Hashable
@@ -34004,7 +34287,7 @@ module Google
34004
34287
  # @return [Fixnum]
34005
34288
  attr_accessor :advertised_route_priority
34006
34289
 
34007
- # BFD configuration for the BGP peering. Not currently available publicly.
34290
+ # BFD configuration for the BGP peering.
34008
34291
  # Corresponds to the JSON property `bfd`
34009
34292
  # @return [Google::Apis::ComputeAlpha::RouterBgpPeerBfd]
34010
34293
  attr_accessor :bfd
@@ -34116,8 +34399,8 @@ module Google
34116
34399
  # The minimum interval, in milliseconds, between BFD control packets received
34117
34400
  # from the peer router. The actual value is negotiated between the two routers
34118
34401
  # and is equal to the greater of this value and the transmit interval of the
34119
- # other router. Not currently available publicly. If set, this value must be
34120
- # between 100 and 30000. The default is 300.
34402
+ # other router. If set, this value must be between 1000 and 30000. The default
34403
+ # is 1000.
34121
34404
  # Corresponds to the JSON property `minReceiveInterval`
34122
34405
  # @return [Fixnum]
34123
34406
  attr_accessor :min_receive_interval
@@ -34125,8 +34408,8 @@ module Google
34125
34408
  # The minimum interval, in milliseconds, between BFD control packets transmitted
34126
34409
  # to the peer router. The actual value is negotiated between the two routers and
34127
34410
  # is equal to the greater of this value and the corresponding receive interval
34128
- # of the other router. Not currently available publicly. If set, this value must
34129
- # be between 100 and 30000. The default is 300.
34411
+ # of the other router. If set, this value must be between 1000 and 30000. The
34412
+ # default is 1000.
34130
34413
  # Corresponds to the JSON property `minTransmitInterval`
34131
34414
  # @return [Fixnum]
34132
34415
  attr_accessor :min_transmit_interval
@@ -34141,8 +34424,8 @@ module Google
34141
34424
  attr_accessor :mode
34142
34425
 
34143
34426
  # The number of consecutive BFD packets that must be missed before BFD declares
34144
- # that a peer is unavailable. Not currently available publicly. If set, the
34145
- # value must be a value between 2 and 16. The default is 3.
34427
+ # that a peer is unavailable. If set, the value must be a value between 5 and 16.
34428
+ # The default is 5.
34146
34429
  # Corresponds to the JSON property `multiplier`
34147
34430
  # @return [Fixnum]
34148
34431
  attr_accessor :multiplier
@@ -34159,11 +34442,11 @@ module Google
34159
34442
  # @return [String]
34160
34443
  attr_accessor :packet_mode
34161
34444
 
34162
- # The BFD session initialization mode for this BGP peer. Not currently available
34163
- # publicly. If set to ACTIVE, the Cloud Router will initiate the BFD session for
34164
- # this BGP peer. If set to PASSIVE, the Cloud Router will wait for the peer
34165
- # router to initiate the BFD session for this BGP peer. If set to DISABLED, BFD
34166
- # is disabled for this BGP peer. The default is PASSIVE.
34445
+ # The BFD session initialization mode for this BGP peer. If set to ACTIVE, the
34446
+ # Cloud Router will initiate the BFD session for this BGP peer. If set to
34447
+ # PASSIVE, the Cloud Router will wait for the peer router to initiate the BFD
34448
+ # session for this BGP peer. If set to DISABLED, BFD is disabled for this BGP
34449
+ # peer. The default is PASSIVE.
34167
34450
  # Corresponds to the JSON property `sessionInitializationMode`
34168
34451
  # @return [String]
34169
34452
  attr_accessor :session_initialization_mode
@@ -34605,9 +34888,11 @@ module Google
34605
34888
 
34606
34889
  # CEL expression that specifies the match condition that egress traffic from a
34607
34890
  # VM is evaluated against. If it evaluates to true, the corresponding `action`
34608
- # is enforced. The following examples are valid match expressions: "inIpRange(
34609
- # destination.ip, '1.1.0.0/16') || inIpRange(destination.ip, '2.2.0.0/16')" "
34610
- # destination.ip == '1.1.0.1' || destination.ip == '8.8.8.8'"
34891
+ # is enforced. The following examples are valid match expressions for public NAT:
34892
+ # "inIpRange(destination.ip, '1.1.0.0/16') || inIpRange(destination.ip, '2.2.0.
34893
+ # 0/16')" "destination.ip == '1.1.0.1' || destination.ip == '8.8.8.8'" The
34894
+ # following example is a valid match expression for private NAT: "nexthop.hub ==
34895
+ # '/projects/my-project/global/hub/hub-1'"
34611
34896
  # Corresponds to the JSON property `match`
34612
34897
  # @return [String]
34613
34898
  attr_accessor :match
@@ -34637,14 +34922,15 @@ module Google
34637
34922
  include Google::Apis::Core::Hashable
34638
34923
 
34639
34924
  # A list of URLs of the IP resources used for this NAT rule. These IP addresses
34640
- # must be valid static external IP addresses assigned to the project.
34925
+ # must be valid static external IP addresses assigned to the project. This field
34926
+ # is used for public NAT.
34641
34927
  # Corresponds to the JSON property `sourceNatActiveIps`
34642
34928
  # @return [Array<String>]
34643
34929
  attr_accessor :source_nat_active_ips
34644
34930
 
34645
34931
  # A list of URLs of the IP resources to be drained. These IPs must be valid
34646
34932
  # static external IPs that have been assigned to the NAT. These IPs should be
34647
- # used for updating/patching a NAT rule only.
34933
+ # used for updating/patching a NAT rule only. This field is used for public NAT.
34648
34934
  # Corresponds to the JSON property `sourceNatDrainIps`
34649
34935
  # @return [Array<String>]
34650
34936
  attr_accessor :source_nat_drain_ips
@@ -35341,6 +35627,47 @@ module Google
35341
35627
  end
35342
35628
  end
35343
35629
 
35630
+ # An instance-attached disk resource.
35631
+ class SavedDisk
35632
+ include Google::Apis::Core::Hashable
35633
+
35634
+ # [Output Only] Type of the resource. Always compute#savedDisk for attached
35635
+ # disks.
35636
+ # Corresponds to the JSON property `kind`
35637
+ # @return [String]
35638
+ attr_accessor :kind
35639
+
35640
+ # Specifies a URL of the disk attached to the source instance.
35641
+ # Corresponds to the JSON property `sourceDisk`
35642
+ # @return [String]
35643
+ attr_accessor :source_disk
35644
+
35645
+ # [Output Only] Size of the individual disk snapshot used by this machine image.
35646
+ # Corresponds to the JSON property `storageBytes`
35647
+ # @return [Fixnum]
35648
+ attr_accessor :storage_bytes
35649
+
35650
+ # [Output Only] An indicator whether storageBytes is in a stable state or it is
35651
+ # being adjusted as a result of shared storage reallocation. This status can
35652
+ # either be UPDATING, meaning the size of the snapshot is being updated, or
35653
+ # UP_TO_DATE, meaning the size of the snapshot is up-to-date.
35654
+ # Corresponds to the JSON property `storageBytesStatus`
35655
+ # @return [String]
35656
+ attr_accessor :storage_bytes_status
35657
+
35658
+ def initialize(**args)
35659
+ update!(**args)
35660
+ end
35661
+
35662
+ # Update properties of this object
35663
+ def update!(**args)
35664
+ @kind = args[:kind] if args.key?(:kind)
35665
+ @source_disk = args[:source_disk] if args.key?(:source_disk)
35666
+ @storage_bytes = args[:storage_bytes] if args.key?(:storage_bytes)
35667
+ @storage_bytes_status = args[:storage_bytes_status] if args.key?(:storage_bytes_status)
35668
+ end
35669
+ end
35670
+
35344
35671
  #
35345
35672
  class ScalingScheduleStatus
35346
35673
  include Google::Apis::Core::Hashable
@@ -35418,6 +35745,11 @@ module Google
35418
35745
  # @return [Fixnum]
35419
35746
  attr_accessor :host_error_timeout_seconds
35420
35747
 
35748
+ # Specifies the termination action for the instance.
35749
+ # Corresponds to the JSON property `instanceTerminationAction`
35750
+ # @return [String]
35751
+ attr_accessor :instance_termination_action
35752
+
35421
35753
  # Defines whether the instance is tolerant of higher cpu latency. This can only
35422
35754
  # be set during instance creation, or when the instance is not currently running.
35423
35755
  # It must not be set if the preemptible option is also set.
@@ -35489,6 +35821,7 @@ module Google
35489
35821
  @current_cpus = args[:current_cpus] if args.key?(:current_cpus)
35490
35822
  @current_memory_mb = args[:current_memory_mb] if args.key?(:current_memory_mb)
35491
35823
  @host_error_timeout_seconds = args[:host_error_timeout_seconds] if args.key?(:host_error_timeout_seconds)
35824
+ @instance_termination_action = args[:instance_termination_action] if args.key?(:instance_termination_action)
35492
35825
  @latency_tolerant = args[:latency_tolerant] if args.key?(:latency_tolerant)
35493
35826
  @location_hint = args[:location_hint] if args.key?(:location_hint)
35494
35827
  @maintenance_freeze_duration_hours = args[:maintenance_freeze_duration_hours] if args.key?(:maintenance_freeze_duration_hours)
@@ -35986,8 +36319,8 @@ module Google
35986
36319
  # HTTP requests targeting backend services. They filter requests before they hit
35987
36320
  # the origin servers. CLOUD_ARMOR_EDGE - Cloud Armor edge security policies can
35988
36321
  # be configured to filter incoming HTTP requests targeting backend services (
35989
- # including Cloud CDN-enabled) as well as backend buckets (GCS). They filter
35990
- # requests before the request is served from Googles cache.
36322
+ # including Cloud CDN-enabled) as well as backend buckets (Cloud Storage). They
36323
+ # filter requests before the request is served from Google's cache.
35991
36324
  # Corresponds to the JSON property `type`
35992
36325
  # @return [String]
35993
36326
  attr_accessor :type
@@ -36672,23 +37005,23 @@ module Google
36672
37005
  attr_accessor :conform_action
36673
37006
 
36674
37007
  # Determines the key to enforce the rate_limit_threshold on. Possible values are:
36675
- # ALL -- A single rate limit threshold is applied to all the requests
37008
+ # "ALL" -- A single rate limit threshold is applied to all the requests
36676
37009
  # matching this rule. This is the default value if this field 'enforce_on_key'
36677
- # is not configured. ALL_IPS -- This definition, equivalent to "ALL", has been
36678
- # depprecated. IP -- The source IP address of the request is the key. Each IP
36679
- # has this limit enforced separately. HTTP_HEADER -- The value of the HTTP
36680
- # Header whose name is configured under enforce_on_key_name”. The key value is
36681
- # truncated to the first 128 bytes of the Header value. If no such header is
36682
- # present in the request, the key type defaults to ALL”. XFF_IP -- The first
37010
+ # is not configured. "ALL_IPS" -- This definition, equivalent to "ALL", has been
37011
+ # depprecated. "IP" -- The source IP address of the request is the key. Each IP
37012
+ # has this limit enforced separately. "HTTP_HEADER" -- The value of the HTTP
37013
+ # header whose name is configured under "enforce_on_key_name". The key value is
37014
+ # truncated to the first 128 bytes of the header value. If no such header is
37015
+ # present in the request, the key type defaults to "ALL". "XFF_IP" -- The first
36683
37016
  # IP address (i.e. the originating client IP address) specified in the list of
36684
- # IPs under X-Forwarded-For HTTP Header. If no such header is present or the
36685
- # value is not a valid IP, the key type defaults to ALL”.
37017
+ # IPs under X-Forwarded-For HTTP header. If no such header is present or the
37018
+ # value is not a valid IP, the key type defaults to "ALL".
36686
37019
  # Corresponds to the JSON property `enforceOnKey`
36687
37020
  # @return [String]
36688
37021
  attr_accessor :enforce_on_key
36689
37022
 
36690
37023
  # Rate limit key name applicable only for the following key types: HTTP_HEADER --
36691
- # Name of the HTTP Header whose value is taken as the key value.
37024
+ # Name of the HTTP header whose value is taken as the key value.
36692
37025
  # Corresponds to the JSON property `enforceOnKeyName`
36693
37026
  # @return [String]
36694
37027
  attr_accessor :enforce_on_key_name
@@ -36973,7 +37306,7 @@ module Google
36973
37306
  # Represents a ServiceAttachment resource. A service attachment represents a
36974
37307
  # service that a producer has exposed. It encapsulates the load balancer which
36975
37308
  # fronts the service runs and a list of NAT IP ranges that the producers uses to
36976
- # represent the consumers connecting to the service. next tag = 19
37309
+ # represent the consumers connecting to the service. next tag = 20
36977
37310
  class ServiceAttachment
36978
37311
  include Google::Apis::Core::Hashable
36979
37312
 
@@ -37506,6 +37839,20 @@ module Google
37506
37839
  class ShareSettings
37507
37840
  include Google::Apis::Core::Hashable
37508
37841
 
37842
+ # A map of folder id and folder config to specify consumer projects for this
37843
+ # shared-reservation. This is only valid when share_type's value is
37844
+ # DIRECT_PROJECTS_UNDER_SPECIFIC_FOLDERS.
37845
+ # Corresponds to the JSON property `folderMap`
37846
+ # @return [Hash<String,Google::Apis::ComputeAlpha::ShareSettingsFolderConfig>]
37847
+ attr_accessor :folder_map
37848
+
37849
+ # A map of project id and project config. Using map format to ease add-to/remove-
37850
+ # from the Project list in PATCH command. In future we will deprecate (And later
37851
+ # remove) the array one.
37852
+ # Corresponds to the JSON property `projectMap`
37853
+ # @return [Hash<String,Google::Apis::ComputeAlpha::ShareSettingsProjectConfig>]
37854
+ attr_accessor :project_map
37855
+
37509
37856
  # A List of Project names to specify consumer projects for this shared-
37510
37857
  # reservation. This is only valid when share_type's value is SPECIFIC_PROJECTS.
37511
37858
  # Corresponds to the JSON property `projects`
@@ -37523,11 +37870,53 @@ module Google
37523
37870
 
37524
37871
  # Update properties of this object
37525
37872
  def update!(**args)
37873
+ @folder_map = args[:folder_map] if args.key?(:folder_map)
37874
+ @project_map = args[:project_map] if args.key?(:project_map)
37526
37875
  @projects = args[:projects] if args.key?(:projects)
37527
37876
  @share_type = args[:share_type] if args.key?(:share_type)
37528
37877
  end
37529
37878
  end
37530
37879
 
37880
+ # Config for each folder in the share settings.
37881
+ class ShareSettingsFolderConfig
37882
+ include Google::Apis::Core::Hashable
37883
+
37884
+ # The folder ID, should be same as the key of this folder config in the parent
37885
+ # map.
37886
+ # Corresponds to the JSON property `folderId`
37887
+ # @return [String]
37888
+ attr_accessor :folder_id
37889
+
37890
+ def initialize(**args)
37891
+ update!(**args)
37892
+ end
37893
+
37894
+ # Update properties of this object
37895
+ def update!(**args)
37896
+ @folder_id = args[:folder_id] if args.key?(:folder_id)
37897
+ end
37898
+ end
37899
+
37900
+ # Config for each project in the share settings.
37901
+ class ShareSettingsProjectConfig
37902
+ include Google::Apis::Core::Hashable
37903
+
37904
+ # The project ID, should be same as the key of this project config in the parent
37905
+ # map.
37906
+ # Corresponds to the JSON property `projectId`
37907
+ # @return [String]
37908
+ attr_accessor :project_id
37909
+
37910
+ def initialize(**args)
37911
+ update!(**args)
37912
+ end
37913
+
37914
+ # Update properties of this object
37915
+ def update!(**args)
37916
+ @project_id = args[:project_id] if args.key?(:project_id)
37917
+ end
37918
+ end
37919
+
37531
37920
  # A set of Shielded Instance options.
37532
37921
  class ShieldedInstanceConfig
37533
37922
  include Google::Apis::Core::Hashable
@@ -39317,16 +39706,19 @@ module Google
39317
39706
  # @return [String]
39318
39707
  attr_accessor :aggregation_interval
39319
39708
 
39320
- # Whether this subnetwork can conflict with static routes. Setting this to true
39321
- # allows this subnetwork's primary and secondary ranges to conflict with routes
39322
- # that have already been configured on the corresponding network. Static routes
39323
- # will take precedence over the subnetwork route if the route prefix length is
39324
- # at least as large as the subnetwork prefix length. Also, packets destined to
39325
- # IPs within subnetwork may contain private/sensitive data and are prevented
39326
- # from leaving the virtual network. Setting this field to true will disable this
39327
- # feature. The default value is false and applies to all existing subnetworks
39328
- # and automatically created subnetworks. This field cannot be set to true at
39329
- # resource creation time.
39709
+ # Whether this subnetwork's ranges can conflict with existing static routes.
39710
+ # Setting this to true allows this subnetwork's primary and secondary ranges to
39711
+ # overlap with (and contain) static routes that have already been configured on
39712
+ # the corresponding network. For example if a static route has range 10.1.0.0/16,
39713
+ # a subnet range 10.0.0.0/8 could only be created if allow_conflicting_routes=
39714
+ # true. Overlapping is only allowed on subnetwork operations; routes whose
39715
+ # ranges conflict with this subnetwork's ranges won't be allowed unless route.
39716
+ # allow_conflicting_subnetworks is set to true. Typically packets destined to
39717
+ # IPs within the subnetwork (which may contain private/sensitive data) are
39718
+ # prevented from leaving the virtual network. Setting this field to true will
39719
+ # disable this feature. The default value is false and applies to all existing
39720
+ # subnetworks and automatically created subnetworks. This field cannot be set to
39721
+ # true at resource creation time.
39330
39722
  # Corresponds to the JSON property `allowSubnetCidrRoutesOverlap`
39331
39723
  # @return [Boolean]
39332
39724
  attr_accessor :allow_subnet_cidr_routes_overlap
@@ -39458,9 +39850,8 @@ module Google
39458
39850
  attr_accessor :name
39459
39851
 
39460
39852
  # The URL of the network to which this subnetwork belongs, provided by the
39461
- # client when initially creating the subnetwork. Only networks that are in the
39462
- # distributed mode can have subnetworks. This field can be set only at resource
39463
- # creation time.
39853
+ # client when initially creating the subnetwork. This field can be set only at
39854
+ # resource creation time.
39464
39855
  # Corresponds to the JSON property `network`
39465
39856
  # @return [String]
39466
39857
  attr_accessor :network
@@ -43792,7 +44183,9 @@ module Google
43792
44183
  end
43793
44184
  end
43794
44185
 
43795
- # Upcoming Maintenance notification information.
44186
+ # Upcoming Maintenance notification information. TODO(b/196881882) Deprecate
44187
+ # this proto once it's fully migrated to be under proto ResourceStatus.
44188
+ # UpcomingMaintenance.
43796
44189
  class UpcomingMaintenance
43797
44190
  include Google::Apis::Core::Hashable
43798
44191
 
@@ -45146,6 +45539,12 @@ module Google
45146
45539
  # @return [String]
45147
45540
  attr_accessor :self_link
45148
45541
 
45542
+ # The stack type for this VPN gateway to identify the IP protocols that are
45543
+ # enabled. If not specified, IPV4_ONLY will be used.
45544
+ # Corresponds to the JSON property `stackType`
45545
+ # @return [String]
45546
+ attr_accessor :stack_type
45547
+
45149
45548
  # The list of VPN interfaces associated with this VPN gateway.
45150
45549
  # Corresponds to the JSON property `vpnInterfaces`
45151
45550
  # @return [Array<Google::Apis::ComputeAlpha::VpnGatewayVpnGatewayInterface>]
@@ -45167,6 +45566,7 @@ module Google
45167
45566
  @network = args[:network] if args.key?(:network)
45168
45567
  @region = args[:region] if args.key?(:region)
45169
45568
  @self_link = args[:self_link] if args.key?(:self_link)
45569
+ @stack_type = args[:stack_type] if args.key?(:stack_type)
45170
45570
  @vpn_interfaces = args[:vpn_interfaces] if args.key?(:vpn_interfaces)
45171
45571
  end
45172
45572
  end
@@ -46558,25 +46958,6 @@ module Google
46558
46958
  end
46559
46959
  end
46560
46960
 
46561
- #
46562
- class ZoneInstantSnapshotsExportRequest
46563
- include Google::Apis::Core::Hashable
46564
-
46565
- # Parameters to export the changed blocks.
46566
- # Corresponds to the JSON property `exportParams`
46567
- # @return [Google::Apis::ComputeAlpha::InstantSnapshotExportParams]
46568
- attr_accessor :export_params
46569
-
46570
- def initialize(**args)
46571
- update!(**args)
46572
- end
46573
-
46574
- # Update properties of this object
46575
- def update!(**args)
46576
- @export_params = args[:export_params] if args.key?(:export_params)
46577
- end
46578
- end
46579
-
46580
46961
  # Contains a list of zone resources.
46581
46962
  class ZoneList
46582
46963
  include Google::Apis::Core::Hashable
@@ -46765,7 +47146,7 @@ module Google
46765
47146
  # resourcemanager.organizationAdmin - members: - user:eve@example.com role:
46766
47147
  # roles/resourcemanager.organizationViewer condition: title: expirable access
46767
47148
  # description: Does not grant access after Sep 2020 expression: request.time <
46768
- # timestamp('2020-10-01T00:00:00.000Z') - etag: BwWWja0YfJA= - version: 3 For a
47149
+ # timestamp('2020-10-01T00:00:00.000Z') etag: BwWWja0YfJA= version: 3 For a
46769
47150
  # description of IAM and its features, see the [IAM documentation](https://cloud.
46770
47151
  # google.com/iam/docs/).
46771
47152
  # Corresponds to the JSON property `policy`