google-apis-compute_alpha 0.15.0 → 0.19.0

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