google-apis-compute_beta 0.66.0 → 0.68.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.
@@ -567,6 +567,12 @@ module Google
567
567
  # @return [String]
568
568
  attr_accessor :public_ptr_domain_name
569
569
 
570
+ # [Output Only] The resource URL for the security policy associated with this
571
+ # access config.
572
+ # Corresponds to the JSON property `securityPolicy`
573
+ # @return [String]
574
+ attr_accessor :security_policy
575
+
570
576
  # Specifies whether a public DNS 'PTR' record should be created to map the
571
577
  # external IP address of the instance to a DNS domain name. This field is not
572
578
  # used in ipv6AccessConfig. A default PTR record will be created if the VM has
@@ -596,6 +602,7 @@ module Google
596
602
  @nat_ip = args[:nat_ip] if args.key?(:nat_ip)
597
603
  @network_tier = args[:network_tier] if args.key?(:network_tier)
598
604
  @public_ptr_domain_name = args[:public_ptr_domain_name] if args.key?(:public_ptr_domain_name)
605
+ @security_policy = args[:security_policy] if args.key?(:security_policy)
599
606
  @set_public_ptr = args[:set_public_ptr] if args.key?(:set_public_ptr)
600
607
  @type = args[:type] if args.key?(:type)
601
608
  end
@@ -3490,6 +3497,12 @@ module Google
3490
3497
  # @return [Google::Apis::ComputeBeta::Duration]
3491
3498
  attr_accessor :max_stream_duration
3492
3499
 
3500
+ # Deployment metadata associated with the resource to be set by a GKE hub
3501
+ # controller and read by the backend RCTH
3502
+ # Corresponds to the JSON property `metadatas`
3503
+ # @return [Hash<String,String>]
3504
+ attr_accessor :metadatas
3505
+
3493
3506
  # Name of the resource. Provided by the client when the resource is created. The
3494
3507
  # name must be 1-63 characters long, and comply with RFC1035. Specifically, the
3495
3508
  # name must be 1-63 characters long and match the regular expression `[a-z]([-a-
@@ -3629,6 +3642,7 @@ module Google
3629
3642
  @locality_lb_policy = args[:locality_lb_policy] if args.key?(:locality_lb_policy)
3630
3643
  @log_config = args[:log_config] if args.key?(:log_config)
3631
3644
  @max_stream_duration = args[:max_stream_duration] if args.key?(:max_stream_duration)
3645
+ @metadatas = args[:metadatas] if args.key?(:metadatas)
3632
3646
  @name = args[:name] if args.key?(:name)
3633
3647
  @network = args[:network] if args.key?(:network)
3634
3648
  @outlier_detection = args[:outlier_detection] if args.key?(:outlier_detection)
@@ -4973,6 +4987,12 @@ module Google
4973
4987
  class BulkInsertInstanceResourcePerInstanceProperties
4974
4988
  include Google::Apis::Core::Hashable
4975
4989
 
4990
+ # Specifies the hostname of the instance. More details in: https://cloud.google.
4991
+ # com/compute/docs/instances/custom-hostname-vm#naming_convention
4992
+ # Corresponds to the JSON property `hostname`
4993
+ # @return [String]
4994
+ attr_accessor :hostname
4995
+
4976
4996
  # This field is only temporary. It will be removed. Do not use it.
4977
4997
  # Corresponds to the JSON property `name`
4978
4998
  # @return [String]
@@ -4984,6 +5004,7 @@ module Google
4984
5004
 
4985
5005
  # Update properties of this object
4986
5006
  def update!(**args)
5007
+ @hostname = args[:hostname] if args.key?(:hostname)
4987
5008
  @name = args[:name] if args.key?(:name)
4988
5009
  end
4989
5010
  end
@@ -5278,7 +5299,7 @@ module Google
5278
5299
  # @return [String]
5279
5300
  attr_accessor :self_link
5280
5301
 
5281
- # Source commitment to be splitted into a new commitment.
5302
+ # Source commitment to be split into a new commitment.
5282
5303
  # Corresponds to the JSON property `splitSourceCommitment`
5283
5304
  # @return [String]
5284
5305
  attr_accessor :split_source_commitment
@@ -6439,6 +6460,25 @@ module Google
6439
6460
  # @return [String]
6440
6461
  attr_accessor :source_image_id
6441
6462
 
6463
+ # The source instant snapshot used to create this disk. You can provide this as
6464
+ # a partial or full URL to the resource. For example, the following are valid
6465
+ # values: - https://www.googleapis.com/compute/v1/projects/project/zones/zone /
6466
+ # instantSnapshots/instantSnapshot - projects/project/zones/zone/
6467
+ # instantSnapshots/instantSnapshot - zones/zone/instantSnapshots/instantSnapshot
6468
+ # Corresponds to the JSON property `sourceInstantSnapshot`
6469
+ # @return [String]
6470
+ attr_accessor :source_instant_snapshot
6471
+
6472
+ # [Output Only] The unique ID of the instant snapshot used to create this disk.
6473
+ # This value identifies the exact instant snapshot that was used to create this
6474
+ # persistent disk. For example, if you created the persistent disk from an
6475
+ # instant snapshot that was later deleted and recreated under the same name, the
6476
+ # source instant snapshot ID would identify the exact version of the instant
6477
+ # snapshot that was used.
6478
+ # Corresponds to the JSON property `sourceInstantSnapshotId`
6479
+ # @return [String]
6480
+ attr_accessor :source_instant_snapshot_id
6481
+
6442
6482
  # The source snapshot used to create this disk. You can provide this as a
6443
6483
  # partial or full URL to the resource. For example, the following are valid
6444
6484
  # values: - https://www.googleapis.com/compute/v1/projects/project /global/
@@ -6560,6 +6600,8 @@ module Google
6560
6600
  @source_image = args[:source_image] if args.key?(:source_image)
6561
6601
  @source_image_encryption_key = args[:source_image_encryption_key] if args.key?(:source_image_encryption_key)
6562
6602
  @source_image_id = args[:source_image_id] if args.key?(:source_image_id)
6603
+ @source_instant_snapshot = args[:source_instant_snapshot] if args.key?(:source_instant_snapshot)
6604
+ @source_instant_snapshot_id = args[:source_instant_snapshot_id] if args.key?(:source_instant_snapshot_id)
6563
6605
  @source_snapshot = args[:source_snapshot] if args.key?(:source_snapshot)
6564
6606
  @source_snapshot_encryption_key = args[:source_snapshot_encryption_key] if args.key?(:source_snapshot_encryption_key)
6565
6607
  @source_snapshot_id = args[:source_snapshot_id] if args.key?(:source_snapshot_id)
@@ -9107,6 +9149,14 @@ module Google
9107
9149
  # @return [Fixnum]
9108
9150
  attr_accessor :rule_tuple_count
9109
9151
 
9152
+ # A fully-qualified URL of a SecurityProfile resource instance. Example: https://
9153
+ # networksecurity.googleapis.com/v1/projects/`project`/locations/`location`/
9154
+ # securityProfileGroups/my-security-profile-group Must be specified if action = '
9155
+ # apply_security_profile_group' and cannot be specified for other actions.
9156
+ # Corresponds to the JSON property `securityProfileGroup`
9157
+ # @return [String]
9158
+ attr_accessor :security_profile_group
9159
+
9110
9160
  # A list of network resource URLs to which this rule applies. This field allows
9111
9161
  # you to control which network's VMs get this rule. If this field is left blank,
9112
9162
  # all VMs within the organization will receive the rule.
@@ -9132,6 +9182,14 @@ module Google
9132
9182
  # @return [Array<String>]
9133
9183
  attr_accessor :target_service_accounts
9134
9184
 
9185
+ # Boolean flag indicating if the traffic should be TLS decrypted. Can be set
9186
+ # only if action = 'apply_security_profile_group' and cannot be set for other
9187
+ # actions.
9188
+ # Corresponds to the JSON property `tlsInspect`
9189
+ # @return [Boolean]
9190
+ attr_accessor :tls_inspect
9191
+ alias_method :tls_inspect?, :tls_inspect
9192
+
9135
9193
  def initialize(**args)
9136
9194
  update!(**args)
9137
9195
  end
@@ -9148,9 +9206,11 @@ module Google
9148
9206
  @priority = args[:priority] if args.key?(:priority)
9149
9207
  @rule_name = args[:rule_name] if args.key?(:rule_name)
9150
9208
  @rule_tuple_count = args[:rule_tuple_count] if args.key?(:rule_tuple_count)
9209
+ @security_profile_group = args[:security_profile_group] if args.key?(:security_profile_group)
9151
9210
  @target_resources = args[:target_resources] if args.key?(:target_resources)
9152
9211
  @target_secure_tags = args[:target_secure_tags] if args.key?(:target_secure_tags)
9153
9212
  @target_service_accounts = args[:target_service_accounts] if args.key?(:target_service_accounts)
9213
+ @tls_inspect = args[:tls_inspect] if args.key?(:tls_inspect)
9154
9214
  end
9155
9215
  end
9156
9216
 
@@ -11689,6 +11749,12 @@ module Google
11689
11749
  # @return [String]
11690
11750
  attr_accessor :health_state
11691
11751
 
11752
+ # Health state of the ipv6 network endpoint determined based on the health
11753
+ # checks configured.
11754
+ # Corresponds to the JSON property `ipv6HealthState`
11755
+ # @return [String]
11756
+ attr_accessor :ipv6_health_state
11757
+
11692
11758
  def initialize(**args)
11693
11759
  update!(**args)
11694
11760
  end
@@ -11700,6 +11766,7 @@ module Google
11700
11766
  @health_check = args[:health_check] if args.key?(:health_check)
11701
11767
  @health_check_service = args[:health_check_service] if args.key?(:health_check_service)
11702
11768
  @health_state = args[:health_state] if args.key?(:health_state)
11769
+ @ipv6_health_state = args[:ipv6_health_state] if args.key?(:ipv6_health_state)
11703
11770
  end
11704
11771
  end
11705
11772
 
@@ -14936,12 +15003,13 @@ module Google
14936
15003
  # @return [String]
14937
15004
  attr_accessor :health_check
14938
15005
 
14939
- # The number of seconds that the managed instance group waits before it applies
14940
- # autohealing policies to new instances or recently recreated instances. This
14941
- # initial delay allows instances to initialize and run their startup scripts
14942
- # before the instance group determines that they are UNHEALTHY. This prevents
14943
- # the managed instance group from recreating its instances prematurely. This
14944
- # value must be from range [0, 3600].
15006
+ # The initial delay is the number of seconds that a new VM takes to initialize
15007
+ # and run its startup script. During a VM's initial delay period, the MIG
15008
+ # ignores unsuccessful health checks because the VM might be in the startup
15009
+ # process. This prevents the MIG from prematurely recreating a VM. If the health
15010
+ # check receives a healthy response during the initial delay, it indicates that
15011
+ # the startup process is complete and the VM is ready. The value of initial
15012
+ # delay must be between 0 and 3600 seconds. The default value is 0.
14945
15013
  # Corresponds to the JSON property `initialDelaySec`
14946
15014
  # @return [Fixnum]
14947
15015
  attr_accessor :initial_delay_sec
@@ -17582,41 +17650,505 @@ module Google
17582
17650
  end
17583
17651
 
17584
17652
  #
17585
- class InstancesSetLabelsRequest
17653
+ class InstancesSetLabelsRequest
17654
+ include Google::Apis::Core::Hashable
17655
+
17656
+ # Fingerprint of the previous set of labels for this resource, used to prevent
17657
+ # conflicts. Provide the latest fingerprint value when making a request to add
17658
+ # or change labels.
17659
+ # Corresponds to the JSON property `labelFingerprint`
17660
+ # NOTE: Values are automatically base64 encoded/decoded in the client library.
17661
+ # @return [String]
17662
+ attr_accessor :label_fingerprint
17663
+
17664
+ #
17665
+ # Corresponds to the JSON property `labels`
17666
+ # @return [Hash<String,String>]
17667
+ attr_accessor :labels
17668
+
17669
+ def initialize(**args)
17670
+ update!(**args)
17671
+ end
17672
+
17673
+ # Update properties of this object
17674
+ def update!(**args)
17675
+ @label_fingerprint = args[:label_fingerprint] if args.key?(:label_fingerprint)
17676
+ @labels = args[:labels] if args.key?(:labels)
17677
+ end
17678
+ end
17679
+
17680
+ #
17681
+ class InstancesSetMachineResourcesRequest
17682
+ include Google::Apis::Core::Hashable
17683
+
17684
+ # A list of the type and count of accelerator cards attached to the instance.
17685
+ # Corresponds to the JSON property `guestAccelerators`
17686
+ # @return [Array<Google::Apis::ComputeBeta::AcceleratorConfig>]
17687
+ attr_accessor :guest_accelerators
17688
+
17689
+ def initialize(**args)
17690
+ update!(**args)
17691
+ end
17692
+
17693
+ # Update properties of this object
17694
+ def update!(**args)
17695
+ @guest_accelerators = args[:guest_accelerators] if args.key?(:guest_accelerators)
17696
+ end
17697
+ end
17698
+
17699
+ #
17700
+ class InstancesSetMachineTypeRequest
17701
+ include Google::Apis::Core::Hashable
17702
+
17703
+ # Full or partial URL of the machine type resource. See Machine Types for a full
17704
+ # list of machine types. For example: zones/us-central1-f/machineTypes/n1-
17705
+ # standard-1
17706
+ # Corresponds to the JSON property `machineType`
17707
+ # @return [String]
17708
+ attr_accessor :machine_type
17709
+
17710
+ def initialize(**args)
17711
+ update!(**args)
17712
+ end
17713
+
17714
+ # Update properties of this object
17715
+ def update!(**args)
17716
+ @machine_type = args[:machine_type] if args.key?(:machine_type)
17717
+ end
17718
+ end
17719
+
17720
+ #
17721
+ class InstancesSetMinCpuPlatformRequest
17722
+ include Google::Apis::Core::Hashable
17723
+
17724
+ # Minimum cpu/platform this instance should be started at.
17725
+ # Corresponds to the JSON property `minCpuPlatform`
17726
+ # @return [String]
17727
+ attr_accessor :min_cpu_platform
17728
+
17729
+ def initialize(**args)
17730
+ update!(**args)
17731
+ end
17732
+
17733
+ # Update properties of this object
17734
+ def update!(**args)
17735
+ @min_cpu_platform = args[:min_cpu_platform] if args.key?(:min_cpu_platform)
17736
+ end
17737
+ end
17738
+
17739
+ #
17740
+ class InstancesSetNameRequest
17741
+ include Google::Apis::Core::Hashable
17742
+
17743
+ # The current name of this resource, used to prevent conflicts. Provide the
17744
+ # latest name when making a request to change name.
17745
+ # Corresponds to the JSON property `currentName`
17746
+ # @return [String]
17747
+ attr_accessor :current_name
17748
+
17749
+ # The name to be applied to the instance. Needs to be RFC 1035 compliant.
17750
+ # Corresponds to the JSON property `name`
17751
+ # @return [String]
17752
+ attr_accessor :name
17753
+
17754
+ def initialize(**args)
17755
+ update!(**args)
17756
+ end
17757
+
17758
+ # Update properties of this object
17759
+ def update!(**args)
17760
+ @current_name = args[:current_name] if args.key?(:current_name)
17761
+ @name = args[:name] if args.key?(:name)
17762
+ end
17763
+ end
17764
+
17765
+ #
17766
+ class InstancesSetSecurityPolicyRequest
17767
+ include Google::Apis::Core::Hashable
17768
+
17769
+ # The network interfaces that the security policy will be applied to. Network
17770
+ # interfaces use the nicN naming format. You can only set a security policy for
17771
+ # network interfaces with an access config.
17772
+ # Corresponds to the JSON property `networkInterfaces`
17773
+ # @return [Array<String>]
17774
+ attr_accessor :network_interfaces
17775
+
17776
+ # A full or partial URL to a security policy to add to this instance. If this
17777
+ # field is set to an empty string it will remove the associated security policy.
17778
+ # Corresponds to the JSON property `securityPolicy`
17779
+ # @return [String]
17780
+ attr_accessor :security_policy
17781
+
17782
+ def initialize(**args)
17783
+ update!(**args)
17784
+ end
17785
+
17786
+ # Update properties of this object
17787
+ def update!(**args)
17788
+ @network_interfaces = args[:network_interfaces] if args.key?(:network_interfaces)
17789
+ @security_policy = args[:security_policy] if args.key?(:security_policy)
17790
+ end
17791
+ end
17792
+
17793
+ #
17794
+ class InstancesSetServiceAccountRequest
17795
+ include Google::Apis::Core::Hashable
17796
+
17797
+ # Email address of the service account.
17798
+ # Corresponds to the JSON property `email`
17799
+ # @return [String]
17800
+ attr_accessor :email
17801
+
17802
+ # The list of scopes to be made available for this service account.
17803
+ # Corresponds to the JSON property `scopes`
17804
+ # @return [Array<String>]
17805
+ attr_accessor :scopes
17806
+
17807
+ def initialize(**args)
17808
+ update!(**args)
17809
+ end
17810
+
17811
+ # Update properties of this object
17812
+ def update!(**args)
17813
+ @email = args[:email] if args.key?(:email)
17814
+ @scopes = args[:scopes] if args.key?(:scopes)
17815
+ end
17816
+ end
17817
+
17818
+ #
17819
+ class InstancesStartWithEncryptionKeyRequest
17820
+ include Google::Apis::Core::Hashable
17821
+
17822
+ # Array of disks associated with this instance that are protected with a
17823
+ # customer-supplied encryption key. In order to start the instance, the disk url
17824
+ # and its corresponding key must be provided. If the disk is not protected with
17825
+ # a customer-supplied encryption key it should not be specified.
17826
+ # Corresponds to the JSON property `disks`
17827
+ # @return [Array<Google::Apis::ComputeBeta::CustomerEncryptionKeyProtectedDisk>]
17828
+ attr_accessor :disks
17829
+
17830
+ def initialize(**args)
17831
+ update!(**args)
17832
+ end
17833
+
17834
+ # Update properties of this object
17835
+ def update!(**args)
17836
+ @disks = args[:disks] if args.key?(:disks)
17837
+ end
17838
+ end
17839
+
17840
+ # Represents a InstantSnapshot resource. You can use instant snapshots to create
17841
+ # disk rollback points quickly..
17842
+ class InstantSnapshot
17843
+ include Google::Apis::Core::Hashable
17844
+
17845
+ # [Output Only] The architecture of the instant snapshot. Valid values are ARM64
17846
+ # or X86_64.
17847
+ # Corresponds to the JSON property `architecture`
17848
+ # @return [String]
17849
+ attr_accessor :architecture
17850
+
17851
+ # [Output Only] Creation timestamp in RFC3339 text format.
17852
+ # Corresponds to the JSON property `creationTimestamp`
17853
+ # @return [String]
17854
+ attr_accessor :creation_timestamp
17855
+
17856
+ # An optional description of this resource. Provide this property when you
17857
+ # create the resource.
17858
+ # Corresponds to the JSON property `description`
17859
+ # @return [String]
17860
+ attr_accessor :description
17861
+
17862
+ # [Output Only] Size of the source disk, specified in GB.
17863
+ # Corresponds to the JSON property `diskSizeGb`
17864
+ # @return [Fixnum]
17865
+ attr_accessor :disk_size_gb
17866
+
17867
+ # [Output Only] The unique identifier for the resource. This identifier is
17868
+ # defined by the server.
17869
+ # Corresponds to the JSON property `id`
17870
+ # @return [Fixnum]
17871
+ attr_accessor :id
17872
+
17873
+ # [Output Only] Type of the resource. Always compute#instantSnapshot for
17874
+ # InstantSnapshot resources.
17875
+ # Corresponds to the JSON property `kind`
17876
+ # @return [String]
17877
+ attr_accessor :kind
17878
+
17879
+ # A fingerprint for the labels being applied to this InstantSnapshot, which is
17880
+ # essentially a hash of the labels set used for optimistic locking. The
17881
+ # fingerprint is initially generated by Compute Engine and changes after every
17882
+ # request to modify or update labels. You must always provide an up-to-date
17883
+ # fingerprint hash in order to update or change labels, otherwise the request
17884
+ # will fail with error 412 conditionNotMet. To see the latest fingerprint, make
17885
+ # a get() request to retrieve a InstantSnapshot.
17886
+ # Corresponds to the JSON property `labelFingerprint`
17887
+ # NOTE: Values are automatically base64 encoded/decoded in the client library.
17888
+ # @return [String]
17889
+ attr_accessor :label_fingerprint
17890
+
17891
+ # Labels to apply to this InstantSnapshot. These can be later modified by the
17892
+ # setLabels method. Label values may be empty.
17893
+ # Corresponds to the JSON property `labels`
17894
+ # @return [Hash<String,String>]
17895
+ attr_accessor :labels
17896
+
17897
+ # Name of the resource; provided by the client when the resource is created. The
17898
+ # name must be 1-63 characters long, and comply with RFC1035. Specifically, the
17899
+ # name must be 1-63 characters long and match the regular expression `[a-z]([-a-
17900
+ # z0-9]*[a-z0-9])?` which means the first character must be a lowercase letter,
17901
+ # and all following characters must be a dash, lowercase letter, or digit,
17902
+ # except the last character, which cannot be a dash.
17903
+ # Corresponds to the JSON property `name`
17904
+ # @return [String]
17905
+ attr_accessor :name
17906
+
17907
+ # [Output Only] URL of the region where the instant snapshot resides. You must
17908
+ # specify this field as part of the HTTP request URL. It is not settable as a
17909
+ # field in the request body.
17910
+ # Corresponds to the JSON property `region`
17911
+ # @return [String]
17912
+ attr_accessor :region
17913
+
17914
+ # [Output Only] Status information for the instant snapshot resource.
17915
+ # Corresponds to the JSON property `resourceStatus`
17916
+ # @return [Google::Apis::ComputeBeta::InstantSnapshotResourceStatus]
17917
+ attr_accessor :resource_status
17918
+
17919
+ # [Output Only] Reserved for future use.
17920
+ # Corresponds to the JSON property `satisfiesPzs`
17921
+ # @return [Boolean]
17922
+ attr_accessor :satisfies_pzs
17923
+ alias_method :satisfies_pzs?, :satisfies_pzs
17924
+
17925
+ # [Output Only] Server-defined URL for the resource.
17926
+ # Corresponds to the JSON property `selfLink`
17927
+ # @return [String]
17928
+ attr_accessor :self_link
17929
+
17930
+ # [Output Only] Server-defined URL for this resource's resource id.
17931
+ # Corresponds to the JSON property `selfLinkWithId`
17932
+ # @return [String]
17933
+ attr_accessor :self_link_with_id
17934
+
17935
+ # URL of the source disk used to create this instant snapshot. Note that the
17936
+ # source disk must be in the same zone/region as the instant snapshot to be
17937
+ # created. This can be a full or valid partial URL. For example, the following
17938
+ # are valid values: - https://www.googleapis.com/compute/v1/projects/project/
17939
+ # zones/zone /disks/disk - https://www.googleapis.com/compute/v1/projects/
17940
+ # project/regions/region /disks/disk - projects/project/zones/zone/disks/disk -
17941
+ # projects/project/regions/region/disks/disk - zones/zone/disks/disk - regions/
17942
+ # region/disks/disk
17943
+ # Corresponds to the JSON property `sourceDisk`
17944
+ # @return [String]
17945
+ attr_accessor :source_disk
17946
+
17947
+ # [Output Only] The ID value of the disk used to create this InstantSnapshot.
17948
+ # This value may be used to determine whether the InstantSnapshot was taken from
17949
+ # the current or a previous instance of a given disk name.
17950
+ # Corresponds to the JSON property `sourceDiskId`
17951
+ # @return [String]
17952
+ attr_accessor :source_disk_id
17953
+
17954
+ # [Output Only] The status of the instantSnapshot. This can be CREATING,
17955
+ # DELETING, FAILED, or READY.
17956
+ # Corresponds to the JSON property `status`
17957
+ # @return [String]
17958
+ attr_accessor :status
17959
+
17960
+ # [Output Only] URL of the zone where the instant snapshot resides. You must
17961
+ # specify this field as part of the HTTP request URL. It is not settable as a
17962
+ # field in the request body.
17963
+ # Corresponds to the JSON property `zone`
17964
+ # @return [String]
17965
+ attr_accessor :zone
17966
+
17967
+ def initialize(**args)
17968
+ update!(**args)
17969
+ end
17970
+
17971
+ # Update properties of this object
17972
+ def update!(**args)
17973
+ @architecture = args[:architecture] if args.key?(:architecture)
17974
+ @creation_timestamp = args[:creation_timestamp] if args.key?(:creation_timestamp)
17975
+ @description = args[:description] if args.key?(:description)
17976
+ @disk_size_gb = args[:disk_size_gb] if args.key?(:disk_size_gb)
17977
+ @id = args[:id] if args.key?(:id)
17978
+ @kind = args[:kind] if args.key?(:kind)
17979
+ @label_fingerprint = args[:label_fingerprint] if args.key?(:label_fingerprint)
17980
+ @labels = args[:labels] if args.key?(:labels)
17981
+ @name = args[:name] if args.key?(:name)
17982
+ @region = args[:region] if args.key?(:region)
17983
+ @resource_status = args[:resource_status] if args.key?(:resource_status)
17984
+ @satisfies_pzs = args[:satisfies_pzs] if args.key?(:satisfies_pzs)
17985
+ @self_link = args[:self_link] if args.key?(:self_link)
17986
+ @self_link_with_id = args[:self_link_with_id] if args.key?(:self_link_with_id)
17987
+ @source_disk = args[:source_disk] if args.key?(:source_disk)
17988
+ @source_disk_id = args[:source_disk_id] if args.key?(:source_disk_id)
17989
+ @status = args[:status] if args.key?(:status)
17990
+ @zone = args[:zone] if args.key?(:zone)
17991
+ end
17992
+ end
17993
+
17994
+ #
17995
+ class InstantSnapshotAggregatedList
17996
+ include Google::Apis::Core::Hashable
17997
+
17998
+ # [Output Only] Unique identifier for the resource; defined by the server.
17999
+ # Corresponds to the JSON property `id`
18000
+ # @return [String]
18001
+ attr_accessor :id
18002
+
18003
+ # A list of InstantSnapshotsScopedList resources.
18004
+ # Corresponds to the JSON property `items`
18005
+ # @return [Hash<String,Google::Apis::ComputeBeta::InstantSnapshotsScopedList>]
18006
+ attr_accessor :items
18007
+
18008
+ # [Output Only] Type of resource. Always compute#instantSnapshotAggregatedList
18009
+ # for aggregated lists of instantSnapshots.
18010
+ # Corresponds to the JSON property `kind`
18011
+ # @return [String]
18012
+ attr_accessor :kind
18013
+
18014
+ # [Output Only] This token allows you to get the next page of results for list
18015
+ # requests. If the number of results is larger than maxResults, use the
18016
+ # nextPageToken as a value for the query parameter pageToken in the next list
18017
+ # request. Subsequent list requests will have their own nextPageToken to
18018
+ # continue paging through the results.
18019
+ # Corresponds to the JSON property `nextPageToken`
18020
+ # @return [String]
18021
+ attr_accessor :next_page_token
18022
+
18023
+ # [Output Only] Server-defined URL for this resource.
18024
+ # Corresponds to the JSON property `selfLink`
18025
+ # @return [String]
18026
+ attr_accessor :self_link
18027
+
18028
+ # [Output Only] Unreachable resources.
18029
+ # Corresponds to the JSON property `unreachables`
18030
+ # @return [Array<String>]
18031
+ attr_accessor :unreachables
18032
+
18033
+ # [Output Only] Informational warning message.
18034
+ # Corresponds to the JSON property `warning`
18035
+ # @return [Google::Apis::ComputeBeta::InstantSnapshotAggregatedList::Warning]
18036
+ attr_accessor :warning
18037
+
18038
+ def initialize(**args)
18039
+ update!(**args)
18040
+ end
18041
+
18042
+ # Update properties of this object
18043
+ def update!(**args)
18044
+ @id = args[:id] if args.key?(:id)
18045
+ @items = args[:items] if args.key?(:items)
18046
+ @kind = args[:kind] if args.key?(:kind)
18047
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
18048
+ @self_link = args[:self_link] if args.key?(:self_link)
18049
+ @unreachables = args[:unreachables] if args.key?(:unreachables)
18050
+ @warning = args[:warning] if args.key?(:warning)
18051
+ end
18052
+
18053
+ # [Output Only] Informational warning message.
18054
+ class Warning
18055
+ include Google::Apis::Core::Hashable
18056
+
18057
+ # [Output Only] A warning code, if applicable. For example, Compute Engine
18058
+ # returns NO_RESULTS_ON_PAGE if there are no results in the response.
18059
+ # Corresponds to the JSON property `code`
18060
+ # @return [String]
18061
+ attr_accessor :code
18062
+
18063
+ # [Output Only] Metadata about this warning in key: value format. For example: "
18064
+ # data": [ ` "key": "scope", "value": "zones/us-east1-d" `
18065
+ # Corresponds to the JSON property `data`
18066
+ # @return [Array<Google::Apis::ComputeBeta::InstantSnapshotAggregatedList::Warning::Datum>]
18067
+ attr_accessor :data
18068
+
18069
+ # [Output Only] A human-readable description of the warning code.
18070
+ # Corresponds to the JSON property `message`
18071
+ # @return [String]
18072
+ attr_accessor :message
18073
+
18074
+ def initialize(**args)
18075
+ update!(**args)
18076
+ end
18077
+
18078
+ # Update properties of this object
18079
+ def update!(**args)
18080
+ @code = args[:code] if args.key?(:code)
18081
+ @data = args[:data] if args.key?(:data)
18082
+ @message = args[:message] if args.key?(:message)
18083
+ end
18084
+
18085
+ #
18086
+ class Datum
18087
+ include Google::Apis::Core::Hashable
18088
+
18089
+ # [Output Only] A key that provides more detail on the warning being returned.
18090
+ # For example, for warnings where there are no results in a list request for a
18091
+ # particular zone, this key might be scope and the key value might be the zone
18092
+ # name. Other examples might be a key indicating a deprecated resource and a
18093
+ # suggested replacement, or a warning about invalid network settings (for
18094
+ # example, if an instance attempts to perform IP forwarding but is not enabled
18095
+ # for IP forwarding).
18096
+ # Corresponds to the JSON property `key`
18097
+ # @return [String]
18098
+ attr_accessor :key
18099
+
18100
+ # [Output Only] A warning data value corresponding to the key.
18101
+ # Corresponds to the JSON property `value`
18102
+ # @return [String]
18103
+ attr_accessor :value
18104
+
18105
+ def initialize(**args)
18106
+ update!(**args)
18107
+ end
18108
+
18109
+ # Update properties of this object
18110
+ def update!(**args)
18111
+ @key = args[:key] if args.key?(:key)
18112
+ @value = args[:value] if args.key?(:value)
18113
+ end
18114
+ end
18115
+ end
18116
+ end
18117
+
18118
+ #
18119
+ class InstantSnapshotExportParams
17586
18120
  include Google::Apis::Core::Hashable
17587
18121
 
17588
- # Fingerprint of the previous set of labels for this resource, used to prevent
17589
- # conflicts. Provide the latest fingerprint value when making a request to add
17590
- # or change labels.
17591
- # Corresponds to the JSON property `labelFingerprint`
17592
- # NOTE: Values are automatically base64 encoded/decoded in the client library.
18122
+ # An optional base instant snapshot that this resource is compared against. If
18123
+ # not specified, all blocks of this resource are exported. The base instant
18124
+ # snapshot and this resource must be created from the same disk. The base
18125
+ # instant snapshot must be created earlier in time than this resource.
18126
+ # Corresponds to the JSON property `baseInstantSnapshot`
17593
18127
  # @return [String]
17594
- attr_accessor :label_fingerprint
18128
+ attr_accessor :base_instant_snapshot
17595
18129
 
17596
- #
17597
- # Corresponds to the JSON property `labels`
17598
- # @return [Hash<String,String>]
17599
- attr_accessor :labels
17600
-
17601
- def initialize(**args)
17602
- update!(**args)
17603
- end
18130
+ # The name of an existing bucket in Cloud Storage where the changed blocks will
18131
+ # be stored. The Google Service Account must have read and write access to this
18132
+ # bucket. The bucket has to be in the same region as this resource.
18133
+ # Corresponds to the JSON property `bucketName`
18134
+ # @return [String]
18135
+ attr_accessor :bucket_name
17604
18136
 
17605
- # Update properties of this object
17606
- def update!(**args)
17607
- @label_fingerprint = args[:label_fingerprint] if args.key?(:label_fingerprint)
17608
- @labels = args[:labels] if args.key?(:labels)
17609
- end
17610
- end
18137
+ # Encryption key used to encrypt the instant snapshot.
18138
+ # Corresponds to the JSON property `encryptionKey`
18139
+ # @return [Google::Apis::ComputeBeta::CustomerEncryptionKey]
18140
+ attr_accessor :encryption_key
17611
18141
 
17612
- #
17613
- class InstancesSetMachineResourcesRequest
17614
- include Google::Apis::Core::Hashable
18142
+ # Name of the output Bigstore object storing the changed blocks. Object name
18143
+ # must be less than 1024 bytes in length.
18144
+ # Corresponds to the JSON property `objectName`
18145
+ # @return [String]
18146
+ attr_accessor :object_name
17615
18147
 
17616
- # A list of the type and count of accelerator cards attached to the instance.
17617
- # Corresponds to the JSON property `guestAccelerators`
17618
- # @return [Array<Google::Apis::ComputeBeta::AcceleratorConfig>]
17619
- attr_accessor :guest_accelerators
18148
+ # The format of the output file.
18149
+ # Corresponds to the JSON property `outputType`
18150
+ # @return [String]
18151
+ attr_accessor :output_type
17620
18152
 
17621
18153
  def initialize(**args)
17622
18154
  update!(**args)
@@ -17624,39 +18156,51 @@ module Google
17624
18156
 
17625
18157
  # Update properties of this object
17626
18158
  def update!(**args)
17627
- @guest_accelerators = args[:guest_accelerators] if args.key?(:guest_accelerators)
18159
+ @base_instant_snapshot = args[:base_instant_snapshot] if args.key?(:base_instant_snapshot)
18160
+ @bucket_name = args[:bucket_name] if args.key?(:bucket_name)
18161
+ @encryption_key = args[:encryption_key] if args.key?(:encryption_key)
18162
+ @object_name = args[:object_name] if args.key?(:object_name)
18163
+ @output_type = args[:output_type] if args.key?(:output_type)
17628
18164
  end
17629
18165
  end
17630
18166
 
17631
- #
17632
- class InstancesSetMachineTypeRequest
18167
+ # Contains a list of InstantSnapshot resources.
18168
+ class InstantSnapshotList
17633
18169
  include Google::Apis::Core::Hashable
17634
18170
 
17635
- # Full or partial URL of the machine type resource. See Machine Types for a full
17636
- # list of machine types. For example: zones/us-central1-f/machineTypes/n1-
17637
- # standard-1
17638
- # Corresponds to the JSON property `machineType`
18171
+ # [Output Only] Unique identifier for the resource; defined by the server.
18172
+ # Corresponds to the JSON property `id`
17639
18173
  # @return [String]
17640
- attr_accessor :machine_type
18174
+ attr_accessor :id
17641
18175
 
17642
- def initialize(**args)
17643
- update!(**args)
17644
- end
18176
+ # A list of InstantSnapshot resources.
18177
+ # Corresponds to the JSON property `items`
18178
+ # @return [Array<Google::Apis::ComputeBeta::InstantSnapshot>]
18179
+ attr_accessor :items
17645
18180
 
17646
- # Update properties of this object
17647
- def update!(**args)
17648
- @machine_type = args[:machine_type] if args.key?(:machine_type)
17649
- end
17650
- end
18181
+ # Type of resource.
18182
+ # Corresponds to the JSON property `kind`
18183
+ # @return [String]
18184
+ attr_accessor :kind
17651
18185
 
17652
- #
17653
- class InstancesSetMinCpuPlatformRequest
17654
- include Google::Apis::Core::Hashable
18186
+ # [Output Only] This token allows you to get the next page of results for list
18187
+ # requests. If the number of results is larger than maxResults, use the
18188
+ # nextPageToken as a value for the query parameter pageToken in the next list
18189
+ # request. Subsequent list requests will have their own nextPageToken to
18190
+ # continue paging through the results.
18191
+ # Corresponds to the JSON property `nextPageToken`
18192
+ # @return [String]
18193
+ attr_accessor :next_page_token
17655
18194
 
17656
- # Minimum cpu/platform this instance should be started at.
17657
- # Corresponds to the JSON property `minCpuPlatform`
18195
+ # [Output Only] Server-defined URL for this resource.
18196
+ # Corresponds to the JSON property `selfLink`
17658
18197
  # @return [String]
17659
- attr_accessor :min_cpu_platform
18198
+ attr_accessor :self_link
18199
+
18200
+ # [Output Only] Informational warning message.
18201
+ # Corresponds to the JSON property `warning`
18202
+ # @return [Google::Apis::ComputeBeta::InstantSnapshotList::Warning]
18203
+ attr_accessor :warning
17660
18204
 
17661
18205
  def initialize(**args)
17662
18206
  update!(**args)
@@ -17664,24 +18208,87 @@ module Google
17664
18208
 
17665
18209
  # Update properties of this object
17666
18210
  def update!(**args)
17667
- @min_cpu_platform = args[:min_cpu_platform] if args.key?(:min_cpu_platform)
18211
+ @id = args[:id] if args.key?(:id)
18212
+ @items = args[:items] if args.key?(:items)
18213
+ @kind = args[:kind] if args.key?(:kind)
18214
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
18215
+ @self_link = args[:self_link] if args.key?(:self_link)
18216
+ @warning = args[:warning] if args.key?(:warning)
18217
+ end
18218
+
18219
+ # [Output Only] Informational warning message.
18220
+ class Warning
18221
+ include Google::Apis::Core::Hashable
18222
+
18223
+ # [Output Only] A warning code, if applicable. For example, Compute Engine
18224
+ # returns NO_RESULTS_ON_PAGE if there are no results in the response.
18225
+ # Corresponds to the JSON property `code`
18226
+ # @return [String]
18227
+ attr_accessor :code
18228
+
18229
+ # [Output Only] Metadata about this warning in key: value format. For example: "
18230
+ # data": [ ` "key": "scope", "value": "zones/us-east1-d" `
18231
+ # Corresponds to the JSON property `data`
18232
+ # @return [Array<Google::Apis::ComputeBeta::InstantSnapshotList::Warning::Datum>]
18233
+ attr_accessor :data
18234
+
18235
+ # [Output Only] A human-readable description of the warning code.
18236
+ # Corresponds to the JSON property `message`
18237
+ # @return [String]
18238
+ attr_accessor :message
18239
+
18240
+ def initialize(**args)
18241
+ update!(**args)
18242
+ end
18243
+
18244
+ # Update properties of this object
18245
+ def update!(**args)
18246
+ @code = args[:code] if args.key?(:code)
18247
+ @data = args[:data] if args.key?(:data)
18248
+ @message = args[:message] if args.key?(:message)
18249
+ end
18250
+
18251
+ #
18252
+ class Datum
18253
+ include Google::Apis::Core::Hashable
18254
+
18255
+ # [Output Only] A key that provides more detail on the warning being returned.
18256
+ # For example, for warnings where there are no results in a list request for a
18257
+ # particular zone, this key might be scope and the key value might be the zone
18258
+ # name. Other examples might be a key indicating a deprecated resource and a
18259
+ # suggested replacement, or a warning about invalid network settings (for
18260
+ # example, if an instance attempts to perform IP forwarding but is not enabled
18261
+ # for IP forwarding).
18262
+ # Corresponds to the JSON property `key`
18263
+ # @return [String]
18264
+ attr_accessor :key
18265
+
18266
+ # [Output Only] A warning data value corresponding to the key.
18267
+ # Corresponds to the JSON property `value`
18268
+ # @return [String]
18269
+ attr_accessor :value
18270
+
18271
+ def initialize(**args)
18272
+ update!(**args)
18273
+ end
18274
+
18275
+ # Update properties of this object
18276
+ def update!(**args)
18277
+ @key = args[:key] if args.key?(:key)
18278
+ @value = args[:value] if args.key?(:value)
18279
+ end
18280
+ end
17668
18281
  end
17669
18282
  end
17670
18283
 
17671
18284
  #
17672
- class InstancesSetNameRequest
18285
+ class InstantSnapshotResourceStatus
17673
18286
  include Google::Apis::Core::Hashable
17674
18287
 
17675
- # The current name of this resource, used to prevent conflicts. Provide the
17676
- # latest name when making a request to change name.
17677
- # Corresponds to the JSON property `currentName`
17678
- # @return [String]
17679
- attr_accessor :current_name
17680
-
17681
- # The name to be applied to the instance. Needs to be RFC 1035 compliant.
17682
- # Corresponds to the JSON property `name`
17683
- # @return [String]
17684
- attr_accessor :name
18288
+ # [Output Only] The storage size of this instant snapshot.
18289
+ # Corresponds to the JSON property `storageSizeBytes`
18290
+ # @return [Fixnum]
18291
+ attr_accessor :storage_size_bytes
17685
18292
 
17686
18293
  def initialize(**args)
17687
18294
  update!(**args)
@@ -17689,24 +18296,18 @@ module Google
17689
18296
 
17690
18297
  # Update properties of this object
17691
18298
  def update!(**args)
17692
- @current_name = args[:current_name] if args.key?(:current_name)
17693
- @name = args[:name] if args.key?(:name)
18299
+ @storage_size_bytes = args[:storage_size_bytes] if args.key?(:storage_size_bytes)
17694
18300
  end
17695
18301
  end
17696
18302
 
17697
18303
  #
17698
- class InstancesSetServiceAccountRequest
18304
+ class InstantSnapshotsExportRequest
17699
18305
  include Google::Apis::Core::Hashable
17700
18306
 
17701
- # Email address of the service account.
17702
- # Corresponds to the JSON property `email`
17703
- # @return [String]
17704
- attr_accessor :email
17705
-
17706
- # The list of scopes to be made available for this service account.
17707
- # Corresponds to the JSON property `scopes`
17708
- # @return [Array<String>]
17709
- attr_accessor :scopes
18307
+ # Parameters to export the changed blocks.
18308
+ # Corresponds to the JSON property `exportParams`
18309
+ # @return [Google::Apis::ComputeBeta::InstantSnapshotExportParams]
18310
+ attr_accessor :export_params
17710
18311
 
17711
18312
  def initialize(**args)
17712
18313
  update!(**args)
@@ -17714,22 +18315,24 @@ module Google
17714
18315
 
17715
18316
  # Update properties of this object
17716
18317
  def update!(**args)
17717
- @email = args[:email] if args.key?(:email)
17718
- @scopes = args[:scopes] if args.key?(:scopes)
18318
+ @export_params = args[:export_params] if args.key?(:export_params)
17719
18319
  end
17720
18320
  end
17721
18321
 
17722
18322
  #
17723
- class InstancesStartWithEncryptionKeyRequest
18323
+ class InstantSnapshotsScopedList
17724
18324
  include Google::Apis::Core::Hashable
17725
18325
 
17726
- # Array of disks associated with this instance that are protected with a
17727
- # customer-supplied encryption key. In order to start the instance, the disk url
17728
- # and its corresponding key must be provided. If the disk is not protected with
17729
- # a customer-supplied encryption key it should not be specified.
17730
- # Corresponds to the JSON property `disks`
17731
- # @return [Array<Google::Apis::ComputeBeta::CustomerEncryptionKeyProtectedDisk>]
17732
- attr_accessor :disks
18326
+ # [Output Only] A list of instantSnapshots contained in this scope.
18327
+ # Corresponds to the JSON property `instantSnapshots`
18328
+ # @return [Array<Google::Apis::ComputeBeta::InstantSnapshot>]
18329
+ attr_accessor :instant_snapshots
18330
+
18331
+ # [Output Only] Informational warning which replaces the list of
18332
+ # instantSnapshots when the list is empty.
18333
+ # Corresponds to the JSON property `warning`
18334
+ # @return [Google::Apis::ComputeBeta::InstantSnapshotsScopedList::Warning]
18335
+ attr_accessor :warning
17733
18336
 
17734
18337
  def initialize(**args)
17735
18338
  update!(**args)
@@ -17737,7 +18340,73 @@ module Google
17737
18340
 
17738
18341
  # Update properties of this object
17739
18342
  def update!(**args)
17740
- @disks = args[:disks] if args.key?(:disks)
18343
+ @instant_snapshots = args[:instant_snapshots] if args.key?(:instant_snapshots)
18344
+ @warning = args[:warning] if args.key?(:warning)
18345
+ end
18346
+
18347
+ # [Output Only] Informational warning which replaces the list of
18348
+ # instantSnapshots when the list is empty.
18349
+ class Warning
18350
+ include Google::Apis::Core::Hashable
18351
+
18352
+ # [Output Only] A warning code, if applicable. For example, Compute Engine
18353
+ # returns NO_RESULTS_ON_PAGE if there are no results in the response.
18354
+ # Corresponds to the JSON property `code`
18355
+ # @return [String]
18356
+ attr_accessor :code
18357
+
18358
+ # [Output Only] Metadata about this warning in key: value format. For example: "
18359
+ # data": [ ` "key": "scope", "value": "zones/us-east1-d" `
18360
+ # Corresponds to the JSON property `data`
18361
+ # @return [Array<Google::Apis::ComputeBeta::InstantSnapshotsScopedList::Warning::Datum>]
18362
+ attr_accessor :data
18363
+
18364
+ # [Output Only] A human-readable description of the warning code.
18365
+ # Corresponds to the JSON property `message`
18366
+ # @return [String]
18367
+ attr_accessor :message
18368
+
18369
+ def initialize(**args)
18370
+ update!(**args)
18371
+ end
18372
+
18373
+ # Update properties of this object
18374
+ def update!(**args)
18375
+ @code = args[:code] if args.key?(:code)
18376
+ @data = args[:data] if args.key?(:data)
18377
+ @message = args[:message] if args.key?(:message)
18378
+ end
18379
+
18380
+ #
18381
+ class Datum
18382
+ include Google::Apis::Core::Hashable
18383
+
18384
+ # [Output Only] A key that provides more detail on the warning being returned.
18385
+ # For example, for warnings where there are no results in a list request for a
18386
+ # particular zone, this key might be scope and the key value might be the zone
18387
+ # name. Other examples might be a key indicating a deprecated resource and a
18388
+ # suggested replacement, or a warning about invalid network settings (for
18389
+ # example, if an instance attempts to perform IP forwarding but is not enabled
18390
+ # for IP forwarding).
18391
+ # Corresponds to the JSON property `key`
18392
+ # @return [String]
18393
+ attr_accessor :key
18394
+
18395
+ # [Output Only] A warning data value corresponding to the key.
18396
+ # Corresponds to the JSON property `value`
18397
+ # @return [String]
18398
+ attr_accessor :value
18399
+
18400
+ def initialize(**args)
18401
+ update!(**args)
18402
+ end
18403
+
18404
+ # Update properties of this object
18405
+ def update!(**args)
18406
+ @key = args[:key] if args.key?(:key)
18407
+ @value = args[:value] if args.key?(:value)
18408
+ end
18409
+ end
17741
18410
  end
17742
18411
  end
17743
18412
 
@@ -17924,6 +18593,12 @@ module Google
17924
18593
  # @return [Fixnum]
17925
18594
  attr_accessor :provisioned_link_count
17926
18595
 
18596
+ # Indicates that this is a Cross-Cloud Interconnect. This field specifies the
18597
+ # location outside of Google's network that the interconnect is connected to.
18598
+ # Corresponds to the JSON property `remoteLocation`
18599
+ # @return [String]
18600
+ attr_accessor :remote_location
18601
+
17927
18602
  # Target number of physical links in the link bundle, as requested by the
17928
18603
  # customer.
17929
18604
  # Corresponds to the JSON property `requestedLinkCount`
@@ -17979,6 +18654,7 @@ module Google
17979
18654
  @operational_status = args[:operational_status] if args.key?(:operational_status)
17980
18655
  @peer_ip_address = args[:peer_ip_address] if args.key?(:peer_ip_address)
17981
18656
  @provisioned_link_count = args[:provisioned_link_count] if args.key?(:provisioned_link_count)
18657
+ @remote_location = args[:remote_location] if args.key?(:remote_location)
17982
18658
  @requested_link_count = args[:requested_link_count] if args.key?(:requested_link_count)
17983
18659
  @satisfies_pzs = args[:satisfies_pzs] if args.key?(:satisfies_pzs)
17984
18660
  @self_link = args[:self_link] if args.key?(:self_link)
@@ -18046,6 +18722,12 @@ module Google
18046
18722
  # @return [String]
18047
18723
  attr_accessor :cloud_router_ipv6_interface_id
18048
18724
 
18725
+ # [Output Only] Constraints for this attachment, if any. The attachment does not
18726
+ # work if these constraints are not met.
18727
+ # Corresponds to the JSON property `configurationConstraints`
18728
+ # @return [Google::Apis::ComputeBeta::InterconnectAttachmentConfigurationConstraints]
18729
+ attr_accessor :configuration_constraints
18730
+
18049
18731
  # [Output Only] Creation timestamp in RFC3339 text format.
18050
18732
  # Corresponds to the JSON property `creationTimestamp`
18051
18733
  # @return [String]
@@ -18227,6 +18909,15 @@ module Google
18227
18909
  # @return [String]
18228
18910
  attr_accessor :region
18229
18911
 
18912
+ # [Output Only] If the attachment is on a Cross-Cloud Interconnect connection,
18913
+ # this field contains the interconnect's remote location service provider.
18914
+ # Example values: "Amazon Web Services" "Microsoft Azure". The field is set only
18915
+ # for attachments on Cross-Cloud Interconnect connections. Its value is copied
18916
+ # from the InterconnectRemoteLocation remoteService field.
18917
+ # Corresponds to the JSON property `remoteService`
18918
+ # @return [String]
18919
+ attr_accessor :remote_service
18920
+
18230
18921
  # URL of the Cloud Router to be used for dynamic routing. This router must be in
18231
18922
  # the same region as this InterconnectAttachment. The InterconnectAttachment
18232
18923
  # will automatically connect the Interconnect to the network & region within
@@ -18273,6 +18964,17 @@ module Google
18273
18964
  # @return [String]
18274
18965
  attr_accessor :state
18275
18966
 
18967
+ # Length of the IPv4 subnet mask. Allowed values: - 29 (default) - 30 The
18968
+ # default value is 29, except for Cross-Cloud Interconnect connections that use
18969
+ # an InterconnectRemoteLocation with a constraints.subnetLengthRange.min equal
18970
+ # to 30. For example, connections that use an Azure remote location fall into
18971
+ # this category. In these cases, the default value is 30, and requesting 29
18972
+ # returns an error. Where both 29 and 30 are allowed, 29 is preferred, because
18973
+ # it gives Google Cloud Support more debugging visibility.
18974
+ # Corresponds to the JSON property `subnetLength`
18975
+ # @return [Fixnum]
18976
+ attr_accessor :subnet_length
18977
+
18276
18978
  # The type of interconnect attachment this is, which can take one of the
18277
18979
  # following values: - DEDICATED: an attachment to a Dedicated Interconnect. -
18278
18980
  # PARTNER: an attachment to a Partner Interconnect, created by the customer. -
@@ -18301,6 +19003,7 @@ module Google
18301
19003
  @cloud_router_ip_address = args[:cloud_router_ip_address] if args.key?(:cloud_router_ip_address)
18302
19004
  @cloud_router_ipv6_address = args[:cloud_router_ipv6_address] if args.key?(:cloud_router_ipv6_address)
18303
19005
  @cloud_router_ipv6_interface_id = args[:cloud_router_ipv6_interface_id] if args.key?(:cloud_router_ipv6_interface_id)
19006
+ @configuration_constraints = args[:configuration_constraints] if args.key?(:configuration_constraints)
18304
19007
  @creation_timestamp = args[:creation_timestamp] if args.key?(:creation_timestamp)
18305
19008
  @customer_router_ip_address = args[:customer_router_ip_address] if args.key?(:customer_router_ip_address)
18306
19009
  @customer_router_ipv6_address = args[:customer_router_ipv6_address] if args.key?(:customer_router_ipv6_address)
@@ -18324,11 +19027,13 @@ module Google
18324
19027
  @partner_metadata = args[:partner_metadata] if args.key?(:partner_metadata)
18325
19028
  @private_interconnect_info = args[:private_interconnect_info] if args.key?(:private_interconnect_info)
18326
19029
  @region = args[:region] if args.key?(:region)
19030
+ @remote_service = args[:remote_service] if args.key?(:remote_service)
18327
19031
  @router = args[:router] if args.key?(:router)
18328
19032
  @satisfies_pzs = args[:satisfies_pzs] if args.key?(:satisfies_pzs)
18329
19033
  @self_link = args[:self_link] if args.key?(:self_link)
18330
19034
  @stack_type = args[:stack_type] if args.key?(:stack_type)
18331
19035
  @state = args[:state] if args.key?(:state)
19036
+ @subnet_length = args[:subnet_length] if args.key?(:subnet_length)
18332
19037
  @type = args[:type] if args.key?(:type)
18333
19038
  @vlan_tag8021q = args[:vlan_tag8021q] if args.key?(:vlan_tag8021q)
18334
19039
  end
@@ -18459,6 +19164,68 @@ module Google
18459
19164
  end
18460
19165
  end
18461
19166
 
19167
+ #
19168
+ class InterconnectAttachmentConfigurationConstraints
19169
+ include Google::Apis::Core::Hashable
19170
+
19171
+ # [Output Only] Whether the attachment's BGP session requires/allows/disallows
19172
+ # BGP MD5 authentication. This can take one of the following values:
19173
+ # MD5_OPTIONAL, MD5_REQUIRED, MD5_UNSUPPORTED. For example, a Cross-Cloud
19174
+ # Interconnect connection to a remote cloud provider that requires BGP MD5
19175
+ # authentication has the interconnectRemoteLocation
19176
+ # attachment_configuration_constraints.bgp_md5 field set to MD5_REQUIRED, and
19177
+ # that property is propagated to the attachment. Similarly, if BGP MD5 is
19178
+ # MD5_UNSUPPORTED, an error is returned if MD5 is requested.
19179
+ # Corresponds to the JSON property `bgpMd5`
19180
+ # @return [String]
19181
+ attr_accessor :bgp_md5
19182
+
19183
+ # [Output Only] List of ASN ranges that the remote location is known to support.
19184
+ # Formatted as an array of inclusive ranges `min: min-value, max: max-value`.
19185
+ # For example, [`min: 123, max: 123`, `min: 64512, max: 65534`] allows the peer
19186
+ # ASN to be 123 or anything in the range 64512-65534. This field is only
19187
+ # advisory. Although the API accepts other ranges, these are the ranges that we
19188
+ # recommend.
19189
+ # Corresponds to the JSON property `bgpPeerAsnRanges`
19190
+ # @return [Array<Google::Apis::ComputeBeta::InterconnectAttachmentConfigurationConstraintsBgpPeerAsnRange>]
19191
+ attr_accessor :bgp_peer_asn_ranges
19192
+
19193
+ def initialize(**args)
19194
+ update!(**args)
19195
+ end
19196
+
19197
+ # Update properties of this object
19198
+ def update!(**args)
19199
+ @bgp_md5 = args[:bgp_md5] if args.key?(:bgp_md5)
19200
+ @bgp_peer_asn_ranges = args[:bgp_peer_asn_ranges] if args.key?(:bgp_peer_asn_ranges)
19201
+ end
19202
+ end
19203
+
19204
+ #
19205
+ class InterconnectAttachmentConfigurationConstraintsBgpPeerAsnRange
19206
+ include Google::Apis::Core::Hashable
19207
+
19208
+ #
19209
+ # Corresponds to the JSON property `max`
19210
+ # @return [Fixnum]
19211
+ attr_accessor :max
19212
+
19213
+ #
19214
+ # Corresponds to the JSON property `min`
19215
+ # @return [Fixnum]
19216
+ attr_accessor :min
19217
+
19218
+ def initialize(**args)
19219
+ update!(**args)
19220
+ end
19221
+
19222
+ # Update properties of this object
19223
+ def update!(**args)
19224
+ @max = args[:max] if args.key?(:max)
19225
+ @min = args[:min] if args.key?(:min)
19226
+ end
19227
+ end
19228
+
18462
19229
  # Response to the list request, and contains a list of interconnect attachments.
18463
19230
  class InterconnectAttachmentList
18464
19231
  include Google::Apis::Core::Hashable
@@ -19135,12 +19902,390 @@ module Google
19135
19902
  # @return [Fixnum]
19136
19903
  attr_accessor :id
19137
19904
 
19138
- # [Output Only] Type of the resource. Always compute#interconnectLocation for
19139
- # interconnect locations.
19905
+ # [Output Only] Type of the resource. Always compute#interconnectLocation for
19906
+ # interconnect locations.
19907
+ # Corresponds to the JSON property `kind`
19908
+ # @return [String]
19909
+ attr_accessor :kind
19910
+
19911
+ # [Output Only] Name of the resource.
19912
+ # Corresponds to the JSON property `name`
19913
+ # @return [String]
19914
+ attr_accessor :name
19915
+
19916
+ # [Output Only] The peeringdb identifier for this facility (corresponding with a
19917
+ # netfac type in peeringdb).
19918
+ # Corresponds to the JSON property `peeringdbFacilityId`
19919
+ # @return [String]
19920
+ attr_accessor :peeringdb_facility_id
19921
+
19922
+ # [Output Only] A list of InterconnectLocation.RegionInfo objects, that describe
19923
+ # parameters pertaining to the relation between this InterconnectLocation and
19924
+ # various Google Cloud regions.
19925
+ # Corresponds to the JSON property `regionInfos`
19926
+ # @return [Array<Google::Apis::ComputeBeta::InterconnectLocationRegionInfo>]
19927
+ attr_accessor :region_infos
19928
+
19929
+ # [Output Only] Server-defined URL for the resource.
19930
+ # Corresponds to the JSON property `selfLink`
19931
+ # @return [String]
19932
+ attr_accessor :self_link
19933
+
19934
+ # [Output Only] The status of this InterconnectLocation, which can take one of
19935
+ # the following values: - CLOSED: The InterconnectLocation is closed and is
19936
+ # unavailable for provisioning new Interconnects. - AVAILABLE: The
19937
+ # InterconnectLocation is available for provisioning new Interconnects.
19938
+ # Corresponds to the JSON property `status`
19939
+ # @return [String]
19940
+ attr_accessor :status
19941
+
19942
+ # [Output Only] Reserved for future use.
19943
+ # Corresponds to the JSON property `supportsPzs`
19944
+ # @return [Boolean]
19945
+ attr_accessor :supports_pzs
19946
+ alias_method :supports_pzs?, :supports_pzs
19947
+
19948
+ def initialize(**args)
19949
+ update!(**args)
19950
+ end
19951
+
19952
+ # Update properties of this object
19953
+ def update!(**args)
19954
+ @address = args[:address] if args.key?(:address)
19955
+ @availability_zone = args[:availability_zone] if args.key?(:availability_zone)
19956
+ @city = args[:city] if args.key?(:city)
19957
+ @continent = args[:continent] if args.key?(:continent)
19958
+ @creation_timestamp = args[:creation_timestamp] if args.key?(:creation_timestamp)
19959
+ @description = args[:description] if args.key?(:description)
19960
+ @facility_provider = args[:facility_provider] if args.key?(:facility_provider)
19961
+ @facility_provider_facility_id = args[:facility_provider_facility_id] if args.key?(:facility_provider_facility_id)
19962
+ @id = args[:id] if args.key?(:id)
19963
+ @kind = args[:kind] if args.key?(:kind)
19964
+ @name = args[:name] if args.key?(:name)
19965
+ @peeringdb_facility_id = args[:peeringdb_facility_id] if args.key?(:peeringdb_facility_id)
19966
+ @region_infos = args[:region_infos] if args.key?(:region_infos)
19967
+ @self_link = args[:self_link] if args.key?(:self_link)
19968
+ @status = args[:status] if args.key?(:status)
19969
+ @supports_pzs = args[:supports_pzs] if args.key?(:supports_pzs)
19970
+ end
19971
+ end
19972
+
19973
+ # Response to the list request, and contains a list of interconnect locations.
19974
+ class InterconnectLocationList
19975
+ include Google::Apis::Core::Hashable
19976
+
19977
+ # [Output Only] Unique identifier for the resource; defined by the server.
19978
+ # Corresponds to the JSON property `id`
19979
+ # @return [String]
19980
+ attr_accessor :id
19981
+
19982
+ # A list of InterconnectLocation resources.
19983
+ # Corresponds to the JSON property `items`
19984
+ # @return [Array<Google::Apis::ComputeBeta::InterconnectLocation>]
19985
+ attr_accessor :items
19986
+
19987
+ # [Output Only] Type of resource. Always compute#interconnectLocationList for
19988
+ # lists of interconnect locations.
19989
+ # Corresponds to the JSON property `kind`
19990
+ # @return [String]
19991
+ attr_accessor :kind
19992
+
19993
+ # [Output Only] This token allows you to get the next page of results for list
19994
+ # requests. If the number of results is larger than maxResults, use the
19995
+ # nextPageToken as a value for the query parameter pageToken in the next list
19996
+ # request. Subsequent list requests will have their own nextPageToken to
19997
+ # continue paging through the results.
19998
+ # Corresponds to the JSON property `nextPageToken`
19999
+ # @return [String]
20000
+ attr_accessor :next_page_token
20001
+
20002
+ # [Output Only] Server-defined URL for this resource.
20003
+ # Corresponds to the JSON property `selfLink`
20004
+ # @return [String]
20005
+ attr_accessor :self_link
20006
+
20007
+ # [Output Only] Informational warning message.
20008
+ # Corresponds to the JSON property `warning`
20009
+ # @return [Google::Apis::ComputeBeta::InterconnectLocationList::Warning]
20010
+ attr_accessor :warning
20011
+
20012
+ def initialize(**args)
20013
+ update!(**args)
20014
+ end
20015
+
20016
+ # Update properties of this object
20017
+ def update!(**args)
20018
+ @id = args[:id] if args.key?(:id)
20019
+ @items = args[:items] if args.key?(:items)
20020
+ @kind = args[:kind] if args.key?(:kind)
20021
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
20022
+ @self_link = args[:self_link] if args.key?(:self_link)
20023
+ @warning = args[:warning] if args.key?(:warning)
20024
+ end
20025
+
20026
+ # [Output Only] Informational warning message.
20027
+ class Warning
20028
+ include Google::Apis::Core::Hashable
20029
+
20030
+ # [Output Only] A warning code, if applicable. For example, Compute Engine
20031
+ # returns NO_RESULTS_ON_PAGE if there are no results in the response.
20032
+ # Corresponds to the JSON property `code`
20033
+ # @return [String]
20034
+ attr_accessor :code
20035
+
20036
+ # [Output Only] Metadata about this warning in key: value format. For example: "
20037
+ # data": [ ` "key": "scope", "value": "zones/us-east1-d" `
20038
+ # Corresponds to the JSON property `data`
20039
+ # @return [Array<Google::Apis::ComputeBeta::InterconnectLocationList::Warning::Datum>]
20040
+ attr_accessor :data
20041
+
20042
+ # [Output Only] A human-readable description of the warning code.
20043
+ # Corresponds to the JSON property `message`
20044
+ # @return [String]
20045
+ attr_accessor :message
20046
+
20047
+ def initialize(**args)
20048
+ update!(**args)
20049
+ end
20050
+
20051
+ # Update properties of this object
20052
+ def update!(**args)
20053
+ @code = args[:code] if args.key?(:code)
20054
+ @data = args[:data] if args.key?(:data)
20055
+ @message = args[:message] if args.key?(:message)
20056
+ end
20057
+
20058
+ #
20059
+ class Datum
20060
+ include Google::Apis::Core::Hashable
20061
+
20062
+ # [Output Only] A key that provides more detail on the warning being returned.
20063
+ # For example, for warnings where there are no results in a list request for a
20064
+ # particular zone, this key might be scope and the key value might be the zone
20065
+ # name. Other examples might be a key indicating a deprecated resource and a
20066
+ # suggested replacement, or a warning about invalid network settings (for
20067
+ # example, if an instance attempts to perform IP forwarding but is not enabled
20068
+ # for IP forwarding).
20069
+ # Corresponds to the JSON property `key`
20070
+ # @return [String]
20071
+ attr_accessor :key
20072
+
20073
+ # [Output Only] A warning data value corresponding to the key.
20074
+ # Corresponds to the JSON property `value`
20075
+ # @return [String]
20076
+ attr_accessor :value
20077
+
20078
+ def initialize(**args)
20079
+ update!(**args)
20080
+ end
20081
+
20082
+ # Update properties of this object
20083
+ def update!(**args)
20084
+ @key = args[:key] if args.key?(:key)
20085
+ @value = args[:value] if args.key?(:value)
20086
+ end
20087
+ end
20088
+ end
20089
+ end
20090
+
20091
+ # Information about any potential InterconnectAttachments between an
20092
+ # Interconnect at a specific InterconnectLocation, and a specific Cloud Region.
20093
+ class InterconnectLocationRegionInfo
20094
+ include Google::Apis::Core::Hashable
20095
+
20096
+ # Expected round-trip time in milliseconds, from this InterconnectLocation to a
20097
+ # VM in this region.
20098
+ # Corresponds to the JSON property `expectedRttMs`
20099
+ # @return [Fixnum]
20100
+ attr_accessor :expected_rtt_ms
20101
+
20102
+ # Identifies the network presence of this location.
20103
+ # Corresponds to the JSON property `locationPresence`
20104
+ # @return [String]
20105
+ attr_accessor :location_presence
20106
+
20107
+ # URL for the region of this location.
20108
+ # Corresponds to the JSON property `region`
20109
+ # @return [String]
20110
+ attr_accessor :region
20111
+
20112
+ def initialize(**args)
20113
+ update!(**args)
20114
+ end
20115
+
20116
+ # Update properties of this object
20117
+ def update!(**args)
20118
+ @expected_rtt_ms = args[:expected_rtt_ms] if args.key?(:expected_rtt_ms)
20119
+ @location_presence = args[:location_presence] if args.key?(:location_presence)
20120
+ @region = args[:region] if args.key?(:region)
20121
+ end
20122
+ end
20123
+
20124
+ # Description of a planned outage on this Interconnect.
20125
+ class InterconnectOutageNotification
20126
+ include Google::Apis::Core::Hashable
20127
+
20128
+ # If issue_type is IT_PARTIAL_OUTAGE, a list of the Google-side circuit IDs that
20129
+ # will be affected.
20130
+ # Corresponds to the JSON property `affectedCircuits`
20131
+ # @return [Array<String>]
20132
+ attr_accessor :affected_circuits
20133
+
20134
+ # A description about the purpose of the outage.
20135
+ # Corresponds to the JSON property `description`
20136
+ # @return [String]
20137
+ attr_accessor :description
20138
+
20139
+ # Scheduled end time for the outage (milliseconds since Unix epoch).
20140
+ # Corresponds to the JSON property `endTime`
20141
+ # @return [Fixnum]
20142
+ attr_accessor :end_time
20143
+
20144
+ # Form this outage is expected to take, which can take one of the following
20145
+ # values: - OUTAGE: The Interconnect may be completely out of service for some
20146
+ # or all of the specified window. - PARTIAL_OUTAGE: Some circuits comprising the
20147
+ # Interconnect as a whole should remain up, but with reduced bandwidth. Note
20148
+ # that the versions of this enum prefixed with "IT_" have been deprecated in
20149
+ # favor of the unprefixed values.
20150
+ # Corresponds to the JSON property `issueType`
20151
+ # @return [String]
20152
+ attr_accessor :issue_type
20153
+
20154
+ # Unique identifier for this outage notification.
20155
+ # Corresponds to the JSON property `name`
20156
+ # @return [String]
20157
+ attr_accessor :name
20158
+
20159
+ # The party that generated this notification, which can take the following value:
20160
+ # - GOOGLE: this notification as generated by Google. Note that the value of
20161
+ # NSRC_GOOGLE has been deprecated in favor of GOOGLE.
20162
+ # Corresponds to the JSON property `source`
20163
+ # @return [String]
20164
+ attr_accessor :source
20165
+
20166
+ # Scheduled start time for the outage (milliseconds since Unix epoch).
20167
+ # Corresponds to the JSON property `startTime`
20168
+ # @return [Fixnum]
20169
+ attr_accessor :start_time
20170
+
20171
+ # State of this notification, which can take one of the following values: -
20172
+ # ACTIVE: This outage notification is active. The event could be in the past,
20173
+ # present, or future. See start_time and end_time for scheduling. - CANCELLED:
20174
+ # The outage associated with this notification was cancelled before the outage
20175
+ # was due to start. - COMPLETED: The outage associated with this notification is
20176
+ # complete. Note that the versions of this enum prefixed with "NS_" have been
20177
+ # deprecated in favor of the unprefixed values.
20178
+ # Corresponds to the JSON property `state`
20179
+ # @return [String]
20180
+ attr_accessor :state
20181
+
20182
+ def initialize(**args)
20183
+ update!(**args)
20184
+ end
20185
+
20186
+ # Update properties of this object
20187
+ def update!(**args)
20188
+ @affected_circuits = args[:affected_circuits] if args.key?(:affected_circuits)
20189
+ @description = args[:description] if args.key?(:description)
20190
+ @end_time = args[:end_time] if args.key?(:end_time)
20191
+ @issue_type = args[:issue_type] if args.key?(:issue_type)
20192
+ @name = args[:name] if args.key?(:name)
20193
+ @source = args[:source] if args.key?(:source)
20194
+ @start_time = args[:start_time] if args.key?(:start_time)
20195
+ @state = args[:state] if args.key?(:state)
20196
+ end
20197
+ end
20198
+
20199
+ # Represents a Cross-Cloud Interconnect Remote Location resource. You can use
20200
+ # this resource to find remote location details about an Interconnect attachment
20201
+ # (VLAN).
20202
+ class InterconnectRemoteLocation
20203
+ include Google::Apis::Core::Hashable
20204
+
20205
+ # [Output Only] The postal address of the Point of Presence, each line in the
20206
+ # address is separated by a newline character.
20207
+ # Corresponds to the JSON property `address`
20208
+ # @return [String]
20209
+ attr_accessor :address
20210
+
20211
+ # [Output Only] Subset of fields from InterconnectAttachment's |
20212
+ # configurationConstraints| field that apply to all attachments for this remote
20213
+ # location.
20214
+ # Corresponds to the JSON property `attachmentConfigurationConstraints`
20215
+ # @return [Google::Apis::ComputeBeta::InterconnectAttachmentConfigurationConstraints]
20216
+ attr_accessor :attachment_configuration_constraints
20217
+
20218
+ # [Output Only] Metropolitan area designator that indicates which city an
20219
+ # interconnect is located. For example: "Chicago, IL", "Amsterdam, Netherlands".
20220
+ # Corresponds to the JSON property `city`
20221
+ # @return [String]
20222
+ attr_accessor :city
20223
+
20224
+ # [Output Only] Constraints on the parameters for creating Cross-Cloud
20225
+ # Interconnect and associated InterconnectAttachments.
20226
+ # Corresponds to the JSON property `constraints`
20227
+ # @return [Google::Apis::ComputeBeta::InterconnectRemoteLocationConstraints]
20228
+ attr_accessor :constraints
20229
+
20230
+ # [Output Only] Continent for this location, which can take one of the following
20231
+ # values: - AFRICA - ASIA_PAC - EUROPE - NORTH_AMERICA - SOUTH_AMERICA
20232
+ # Corresponds to the JSON property `continent`
20233
+ # @return [String]
20234
+ attr_accessor :continent
20235
+
20236
+ # [Output Only] Creation timestamp in RFC3339 text format.
20237
+ # Corresponds to the JSON property `creationTimestamp`
20238
+ # @return [String]
20239
+ attr_accessor :creation_timestamp
20240
+
20241
+ # [Output Only] An optional description of the resource.
20242
+ # Corresponds to the JSON property `description`
20243
+ # @return [String]
20244
+ attr_accessor :description
20245
+
20246
+ # [Output Only] The name of the provider for this facility (e.g., EQUINIX).
20247
+ # Corresponds to the JSON property `facilityProvider`
20248
+ # @return [String]
20249
+ attr_accessor :facility_provider
20250
+
20251
+ # [Output Only] A provider-assigned Identifier for this facility (e.g., Ashburn-
20252
+ # DC1).
20253
+ # Corresponds to the JSON property `facilityProviderFacilityId`
20254
+ # @return [String]
20255
+ attr_accessor :facility_provider_facility_id
20256
+
20257
+ # [Output Only] The unique identifier for the resource. This identifier is
20258
+ # defined by the server.
20259
+ # Corresponds to the JSON property `id`
20260
+ # @return [Fixnum]
20261
+ attr_accessor :id
20262
+
20263
+ # [Output Only] Type of the resource. Always compute#interconnectRemoteLocation
20264
+ # for interconnect remote locations.
19140
20265
  # Corresponds to the JSON property `kind`
19141
20266
  # @return [String]
19142
20267
  attr_accessor :kind
19143
20268
 
20269
+ # [Output Only] Link Aggregation Control Protocol (LACP) constraints, which can
20270
+ # take one of the following values: LACP_SUPPORTED, LACP_UNSUPPORTED
20271
+ # Corresponds to the JSON property `lacp`
20272
+ # @return [String]
20273
+ attr_accessor :lacp
20274
+
20275
+ # [Output Only] The maximum number of 100 Gbps ports supported in a link
20276
+ # aggregation group (LAG). When linkType is 100 Gbps, requestedLinkCount cannot
20277
+ # exceed max_lag_size_100_gbps.
20278
+ # Corresponds to the JSON property `maxLagSize100Gbps`
20279
+ # @return [Fixnum]
20280
+ attr_accessor :max_lag_size100_gbps
20281
+
20282
+ # [Output Only] The maximum number of 10 Gbps ports supported in a link
20283
+ # aggregation group (LAG). When linkType is 10 Gbps, requestedLinkCount cannot
20284
+ # exceed max_lag_size_10_gbps.
20285
+ # Corresponds to the JSON property `maxLagSize10Gbps`
20286
+ # @return [Fixnum]
20287
+ attr_accessor :max_lag_size10_gbps
20288
+
19144
20289
  # [Output Only] Name of the resource.
19145
20290
  # Corresponds to the JSON property `name`
19146
20291
  # @return [String]
@@ -19152,32 +20297,31 @@ module Google
19152
20297
  # @return [String]
19153
20298
  attr_accessor :peeringdb_facility_id
19154
20299
 
19155
- # [Output Only] A list of InterconnectLocation.RegionInfo objects, that describe
19156
- # parameters pertaining to the relation between this InterconnectLocation and
19157
- # various Google Cloud regions.
19158
- # Corresponds to the JSON property `regionInfos`
19159
- # @return [Array<Google::Apis::ComputeBeta::InterconnectLocationRegionInfo>]
19160
- attr_accessor :region_infos
20300
+ # [Output Only] Permitted connections.
20301
+ # Corresponds to the JSON property `permittedConnections`
20302
+ # @return [Array<Google::Apis::ComputeBeta::InterconnectRemoteLocationPermittedConnections>]
20303
+ attr_accessor :permitted_connections
20304
+
20305
+ # [Output Only] Indicates the service provider present at the remote location.
20306
+ # Example values: "Amazon Web Services", "Microsoft Azure".
20307
+ # Corresponds to the JSON property `remoteService`
20308
+ # @return [String]
20309
+ attr_accessor :remote_service
19161
20310
 
19162
20311
  # [Output Only] Server-defined URL for the resource.
19163
20312
  # Corresponds to the JSON property `selfLink`
19164
20313
  # @return [String]
19165
20314
  attr_accessor :self_link
19166
20315
 
19167
- # [Output Only] The status of this InterconnectLocation, which can take one of
19168
- # the following values: - CLOSED: The InterconnectLocation is closed and is
19169
- # unavailable for provisioning new Interconnects. - AVAILABLE: The
19170
- # InterconnectLocation is available for provisioning new Interconnects.
20316
+ # [Output Only] The status of this InterconnectRemoteLocation, which can take
20317
+ # one of the following values: - CLOSED: The InterconnectRemoteLocation is
20318
+ # closed and is unavailable for provisioning new Cross-Cloud Interconnects. -
20319
+ # AVAILABLE: The InterconnectRemoteLocation is available for provisioning new
20320
+ # Cross-Cloud Interconnects.
19171
20321
  # Corresponds to the JSON property `status`
19172
20322
  # @return [String]
19173
20323
  attr_accessor :status
19174
20324
 
19175
- # [Output Only] Reserved for future use.
19176
- # Corresponds to the JSON property `supportsPzs`
19177
- # @return [Boolean]
19178
- attr_accessor :supports_pzs
19179
- alias_method :supports_pzs?, :supports_pzs
19180
-
19181
20325
  def initialize(**args)
19182
20326
  update!(**args)
19183
20327
  end
@@ -19185,8 +20329,9 @@ module Google
19185
20329
  # Update properties of this object
19186
20330
  def update!(**args)
19187
20331
  @address = args[:address] if args.key?(:address)
19188
- @availability_zone = args[:availability_zone] if args.key?(:availability_zone)
20332
+ @attachment_configuration_constraints = args[:attachment_configuration_constraints] if args.key?(:attachment_configuration_constraints)
19189
20333
  @city = args[:city] if args.key?(:city)
20334
+ @constraints = args[:constraints] if args.key?(:constraints)
19190
20335
  @continent = args[:continent] if args.key?(:continent)
19191
20336
  @creation_timestamp = args[:creation_timestamp] if args.key?(:creation_timestamp)
19192
20337
  @description = args[:description] if args.key?(:description)
@@ -19194,17 +20339,92 @@ module Google
19194
20339
  @facility_provider_facility_id = args[:facility_provider_facility_id] if args.key?(:facility_provider_facility_id)
19195
20340
  @id = args[:id] if args.key?(:id)
19196
20341
  @kind = args[:kind] if args.key?(:kind)
20342
+ @lacp = args[:lacp] if args.key?(:lacp)
20343
+ @max_lag_size100_gbps = args[:max_lag_size100_gbps] if args.key?(:max_lag_size100_gbps)
20344
+ @max_lag_size10_gbps = args[:max_lag_size10_gbps] if args.key?(:max_lag_size10_gbps)
19197
20345
  @name = args[:name] if args.key?(:name)
19198
20346
  @peeringdb_facility_id = args[:peeringdb_facility_id] if args.key?(:peeringdb_facility_id)
19199
- @region_infos = args[:region_infos] if args.key?(:region_infos)
20347
+ @permitted_connections = args[:permitted_connections] if args.key?(:permitted_connections)
20348
+ @remote_service = args[:remote_service] if args.key?(:remote_service)
19200
20349
  @self_link = args[:self_link] if args.key?(:self_link)
19201
20350
  @status = args[:status] if args.key?(:status)
19202
- @supports_pzs = args[:supports_pzs] if args.key?(:supports_pzs)
19203
20351
  end
19204
20352
  end
19205
20353
 
19206
- # Response to the list request, and contains a list of interconnect locations.
19207
- class InterconnectLocationList
20354
+ #
20355
+ class InterconnectRemoteLocationConstraints
20356
+ include Google::Apis::Core::Hashable
20357
+
20358
+ # [Output Only] Port pair remote location constraints, which can take one of the
20359
+ # following values: PORT_PAIR_UNCONSTRAINED_REMOTE_LOCATION,
20360
+ # PORT_PAIR_MATCHING_REMOTE_LOCATION. GCP's API refers only to individual ports,
20361
+ # but the UI uses this field when ordering a pair of ports, to prevent users
20362
+ # from accidentally ordering something that is incompatible with their cloud
20363
+ # provider. Specifically, when ordering a redundant pair of Cross-Cloud
20364
+ # Interconnect ports, and one of them uses a remote location with
20365
+ # portPairMatchingRemoteLocation set to matching, the UI requires that both
20366
+ # ports use the same remote location.
20367
+ # Corresponds to the JSON property `portPairRemoteLocation`
20368
+ # @return [String]
20369
+ attr_accessor :port_pair_remote_location
20370
+
20371
+ # [Output Only] Port pair VLAN constraints, which can take one of the following
20372
+ # values: PORT_PAIR_UNCONSTRAINED_VLAN, PORT_PAIR_MATCHING_VLAN
20373
+ # Corresponds to the JSON property `portPairVlan`
20374
+ # @return [String]
20375
+ attr_accessor :port_pair_vlan
20376
+
20377
+ # [Output Only] [min-length, max-length] The minimum and maximum value (
20378
+ # inclusive) for the IPv4 subnet length. For example, an
20379
+ # interconnectRemoteLocation for Azure has `min: 30, max: 30` because Azure
20380
+ # requires /30 subnets. This range specifies the values supported by both cloud
20381
+ # providers. Interconnect currently supports /29 and /30 IPv4 subnet lengths. If
20382
+ # a remote cloud has no constraint on IPv4 subnet length, the range would thus
20383
+ # be `min: 29, max: 30`.
20384
+ # Corresponds to the JSON property `subnetLengthRange`
20385
+ # @return [Google::Apis::ComputeBeta::InterconnectRemoteLocationConstraintsSubnetLengthRange]
20386
+ attr_accessor :subnet_length_range
20387
+
20388
+ def initialize(**args)
20389
+ update!(**args)
20390
+ end
20391
+
20392
+ # Update properties of this object
20393
+ def update!(**args)
20394
+ @port_pair_remote_location = args[:port_pair_remote_location] if args.key?(:port_pair_remote_location)
20395
+ @port_pair_vlan = args[:port_pair_vlan] if args.key?(:port_pair_vlan)
20396
+ @subnet_length_range = args[:subnet_length_range] if args.key?(:subnet_length_range)
20397
+ end
20398
+ end
20399
+
20400
+ #
20401
+ class InterconnectRemoteLocationConstraintsSubnetLengthRange
20402
+ include Google::Apis::Core::Hashable
20403
+
20404
+ #
20405
+ # Corresponds to the JSON property `max`
20406
+ # @return [Fixnum]
20407
+ attr_accessor :max
20408
+
20409
+ #
20410
+ # Corresponds to the JSON property `min`
20411
+ # @return [Fixnum]
20412
+ attr_accessor :min
20413
+
20414
+ def initialize(**args)
20415
+ update!(**args)
20416
+ end
20417
+
20418
+ # Update properties of this object
20419
+ def update!(**args)
20420
+ @max = args[:max] if args.key?(:max)
20421
+ @min = args[:min] if args.key?(:min)
20422
+ end
20423
+ end
20424
+
20425
+ # Response to the list request, and contains a list of interconnect remote
20426
+ # locations.
20427
+ class InterconnectRemoteLocationList
19208
20428
  include Google::Apis::Core::Hashable
19209
20429
 
19210
20430
  # [Output Only] Unique identifier for the resource; defined by the server.
@@ -19212,18 +20432,18 @@ module Google
19212
20432
  # @return [String]
19213
20433
  attr_accessor :id
19214
20434
 
19215
- # A list of InterconnectLocation resources.
20435
+ # A list of InterconnectRemoteLocation resources.
19216
20436
  # Corresponds to the JSON property `items`
19217
- # @return [Array<Google::Apis::ComputeBeta::InterconnectLocation>]
20437
+ # @return [Array<Google::Apis::ComputeBeta::InterconnectRemoteLocation>]
19218
20438
  attr_accessor :items
19219
20439
 
19220
- # [Output Only] Type of resource. Always compute#interconnectLocationList for
19221
- # lists of interconnect locations.
20440
+ # [Output Only] Type of resource. Always compute#interconnectRemoteLocationList
20441
+ # for lists of interconnect remote locations.
19222
20442
  # Corresponds to the JSON property `kind`
19223
20443
  # @return [String]
19224
20444
  attr_accessor :kind
19225
20445
 
19226
- # [Output Only] This token allows you to get the next page of results for list
20446
+ # [Output Only] This token lets you get the next page of results for list
19227
20447
  # requests. If the number of results is larger than maxResults, use the
19228
20448
  # nextPageToken as a value for the query parameter pageToken in the next list
19229
20449
  # request. Subsequent list requests will have their own nextPageToken to
@@ -19239,7 +20459,7 @@ module Google
19239
20459
 
19240
20460
  # [Output Only] Informational warning message.
19241
20461
  # Corresponds to the JSON property `warning`
19242
- # @return [Google::Apis::ComputeBeta::InterconnectLocationList::Warning]
20462
+ # @return [Google::Apis::ComputeBeta::InterconnectRemoteLocationList::Warning]
19243
20463
  attr_accessor :warning
19244
20464
 
19245
20465
  def initialize(**args)
@@ -19269,7 +20489,7 @@ module Google
19269
20489
  # [Output Only] Metadata about this warning in key: value format. For example: "
19270
20490
  # data": [ ` "key": "scope", "value": "zones/us-east1-d" `
19271
20491
  # Corresponds to the JSON property `data`
19272
- # @return [Array<Google::Apis::ComputeBeta::InterconnectLocationList::Warning::Datum>]
20492
+ # @return [Array<Google::Apis::ComputeBeta::InterconnectRemoteLocationList::Warning::Datum>]
19273
20493
  attr_accessor :data
19274
20494
 
19275
20495
  # [Output Only] A human-readable description of the warning code.
@@ -19321,26 +20541,15 @@ module Google
19321
20541
  end
19322
20542
  end
19323
20543
 
19324
- # Information about any potential InterconnectAttachments between an
19325
- # Interconnect at a specific InterconnectLocation, and a specific Cloud Region.
19326
- class InterconnectLocationRegionInfo
20544
+ #
20545
+ class InterconnectRemoteLocationPermittedConnections
19327
20546
  include Google::Apis::Core::Hashable
19328
20547
 
19329
- # Expected round-trip time in milliseconds, from this InterconnectLocation to a
19330
- # VM in this region.
19331
- # Corresponds to the JSON property `expectedRttMs`
19332
- # @return [Fixnum]
19333
- attr_accessor :expected_rtt_ms
19334
-
19335
- # Identifies the network presence of this location.
19336
- # Corresponds to the JSON property `locationPresence`
20548
+ # [Output Only] URL of an Interconnect location that is permitted to connect to
20549
+ # this Interconnect remote location.
20550
+ # Corresponds to the JSON property `interconnectLocation`
19337
20551
  # @return [String]
19338
- attr_accessor :location_presence
19339
-
19340
- # URL for the region of this location.
19341
- # Corresponds to the JSON property `region`
19342
- # @return [String]
19343
- attr_accessor :region
20552
+ attr_accessor :interconnect_location
19344
20553
 
19345
20554
  def initialize(**args)
19346
20555
  update!(**args)
@@ -19348,84 +20557,7 @@ module Google
19348
20557
 
19349
20558
  # Update properties of this object
19350
20559
  def update!(**args)
19351
- @expected_rtt_ms = args[:expected_rtt_ms] if args.key?(:expected_rtt_ms)
19352
- @location_presence = args[:location_presence] if args.key?(:location_presence)
19353
- @region = args[:region] if args.key?(:region)
19354
- end
19355
- end
19356
-
19357
- # Description of a planned outage on this Interconnect.
19358
- class InterconnectOutageNotification
19359
- include Google::Apis::Core::Hashable
19360
-
19361
- # If issue_type is IT_PARTIAL_OUTAGE, a list of the Google-side circuit IDs that
19362
- # will be affected.
19363
- # Corresponds to the JSON property `affectedCircuits`
19364
- # @return [Array<String>]
19365
- attr_accessor :affected_circuits
19366
-
19367
- # A description about the purpose of the outage.
19368
- # Corresponds to the JSON property `description`
19369
- # @return [String]
19370
- attr_accessor :description
19371
-
19372
- # Scheduled end time for the outage (milliseconds since Unix epoch).
19373
- # Corresponds to the JSON property `endTime`
19374
- # @return [Fixnum]
19375
- attr_accessor :end_time
19376
-
19377
- # Form this outage is expected to take, which can take one of the following
19378
- # values: - OUTAGE: The Interconnect may be completely out of service for some
19379
- # or all of the specified window. - PARTIAL_OUTAGE: Some circuits comprising the
19380
- # Interconnect as a whole should remain up, but with reduced bandwidth. Note
19381
- # that the versions of this enum prefixed with "IT_" have been deprecated in
19382
- # favor of the unprefixed values.
19383
- # Corresponds to the JSON property `issueType`
19384
- # @return [String]
19385
- attr_accessor :issue_type
19386
-
19387
- # Unique identifier for this outage notification.
19388
- # Corresponds to the JSON property `name`
19389
- # @return [String]
19390
- attr_accessor :name
19391
-
19392
- # The party that generated this notification, which can take the following value:
19393
- # - GOOGLE: this notification as generated by Google. Note that the value of
19394
- # NSRC_GOOGLE has been deprecated in favor of GOOGLE.
19395
- # Corresponds to the JSON property `source`
19396
- # @return [String]
19397
- attr_accessor :source
19398
-
19399
- # Scheduled start time for the outage (milliseconds since Unix epoch).
19400
- # Corresponds to the JSON property `startTime`
19401
- # @return [Fixnum]
19402
- attr_accessor :start_time
19403
-
19404
- # State of this notification, which can take one of the following values: -
19405
- # ACTIVE: This outage notification is active. The event could be in the past,
19406
- # present, or future. See start_time and end_time for scheduling. - CANCELLED:
19407
- # The outage associated with this notification was cancelled before the outage
19408
- # was due to start. - COMPLETED: The outage associated with this notification is
19409
- # complete. Note that the versions of this enum prefixed with "NS_" have been
19410
- # deprecated in favor of the unprefixed values.
19411
- # Corresponds to the JSON property `state`
19412
- # @return [String]
19413
- attr_accessor :state
19414
-
19415
- def initialize(**args)
19416
- update!(**args)
19417
- end
19418
-
19419
- # Update properties of this object
19420
- def update!(**args)
19421
- @affected_circuits = args[:affected_circuits] if args.key?(:affected_circuits)
19422
- @description = args[:description] if args.key?(:description)
19423
- @end_time = args[:end_time] if args.key?(:end_time)
19424
- @issue_type = args[:issue_type] if args.key?(:issue_type)
19425
- @name = args[:name] if args.key?(:name)
19426
- @source = args[:source] if args.key?(:source)
19427
- @start_time = args[:start_time] if args.key?(:start_time)
19428
- @state = args[:state] if args.key?(:state)
20560
+ @interconnect_location = args[:interconnect_location] if args.key?(:interconnect_location)
19429
20561
  end
19430
20562
  end
19431
20563
 
@@ -20450,7 +21582,7 @@ module Google
20450
21582
  # @return [Fixnum]
20451
21583
  attr_accessor :guest_accelerator_count
20452
21584
 
20453
- # The accelerator type resource name, not a full URL, e.g. 'nvidia-tesla-k80'.
21585
+ # The accelerator type resource name, not a full URL, e.g. nvidia-tesla-t4.
20454
21586
  # Corresponds to the JSON property `guestAcceleratorType`
20455
21587
  # @return [String]
20456
21588
  attr_accessor :guest_accelerator_type
@@ -21442,9 +22574,9 @@ module Google
21442
22574
  # @return [String]
21443
22575
  attr_accessor :description
21444
22576
 
21445
- # [Output Only] Fingerprint of this resource. A hash of the contents stored in
21446
- # this object. This field is used in optimistic locking. An up-to-date
21447
- # fingerprint must be provided in order to patch.
22577
+ # Fingerprint of this resource. A hash of the contents stored in this object.
22578
+ # This field is used in optimistic locking. An up-to-date fingerprint must be
22579
+ # provided in order to patch.
21448
22580
  # Corresponds to the JSON property `fingerprint`
21449
22581
  # NOTE: Values are automatically base64 encoded/decoded in the client library.
21450
22582
  # @return [String]
@@ -21472,6 +22604,10 @@ module Google
21472
22604
  attr_accessor :name
21473
22605
 
21474
22606
  # [Output Only] The URL of the network which the Network Attachment belongs to.
22607
+ # Practically it is inferred by fetching the network of the first subnetwork
22608
+ # associated. Because it is required that all the subnetworks must be from the
22609
+ # same network, it is assured that the Network Attachment belongs to the same
22610
+ # network as all the subnetworks.
21475
22611
  # Corresponds to the JSON property `network`
21476
22612
  # @return [String]
21477
22613
  attr_accessor :network
@@ -22250,6 +23386,11 @@ module Google
22250
23386
  # @return [String]
22251
23387
  attr_accessor :ip_address
22252
23388
 
23389
+ # Optional IPv6 address of network endpoint.
23390
+ # Corresponds to the JSON property `ipv6Address`
23391
+ # @return [String]
23392
+ attr_accessor :ipv6_address
23393
+
22253
23394
  # Optional port number of network endpoint. If not specified, the defaultPort
22254
23395
  # for the network endpoint group will be used.
22255
23396
  # Corresponds to the JSON property `port`
@@ -22266,6 +23407,7 @@ module Google
22266
23407
  @fqdn = args[:fqdn] if args.key?(:fqdn)
22267
23408
  @instance = args[:instance] if args.key?(:instance)
22268
23409
  @ip_address = args[:ip_address] if args.key?(:ip_address)
23410
+ @ipv6_address = args[:ipv6_address] if args.key?(:ipv6_address)
22269
23411
  @port = args[:port] if args.key?(:port)
22270
23412
  end
22271
23413
  end
@@ -30266,6 +31408,25 @@ module Google
30266
31408
  end
30267
31409
  end
30268
31410
 
31411
+ #
31412
+ class RegionInstantSnapshotsExportRequest
31413
+ include Google::Apis::Core::Hashable
31414
+
31415
+ # Parameters to export the changed blocks.
31416
+ # Corresponds to the JSON property `exportParams`
31417
+ # @return [Google::Apis::ComputeBeta::InstantSnapshotExportParams]
31418
+ attr_accessor :export_params
31419
+
31420
+ def initialize(**args)
31421
+ update!(**args)
31422
+ end
31423
+
31424
+ # Update properties of this object
31425
+ def update!(**args)
31426
+ @export_params = args[:export_params] if args.key?(:export_params)
31427
+ end
31428
+ end
31429
+
30269
31430
  # Contains a list of region resources.
30270
31431
  class RegionList
30271
31432
  include Google::Apis::Core::Hashable
@@ -33423,9 +34584,8 @@ module Google
33423
34584
  # ranges in every Subnetwork are allowed to Nat. - LIST_OF_SUBNETWORKS: A list
33424
34585
  # of Subnetworks are allowed to Nat (specified in the field subnetwork below)
33425
34586
  # The default is SUBNETWORK_IP_RANGE_TO_NAT_OPTION_UNSPECIFIED. Note that if
33426
- # this field contains ALL_SUBNETWORKS_ALL_IP_RANGES or
33427
- # ALL_SUBNETWORKS_ALL_PRIMARY_IP_RANGES, then there should not be any other
33428
- # Router.Nat section in any Router for this network in this region.
34587
+ # this field contains ALL_SUBNETWORKS_ALL_IP_RANGES then there should not be any
34588
+ # other Router.Nat section in any Router for this network in this region.
33429
34589
  # Corresponds to the JSON property `sourceSubnetworkIpRangesToNat`
33430
34590
  # @return [String]
33431
34591
  attr_accessor :source_subnetwork_ip_ranges_to_nat
@@ -34976,6 +36136,16 @@ module Google
34976
36136
  # @return [String]
34977
36137
  attr_accessor :type
34978
36138
 
36139
+ # Definitions of user-defined fields for CLOUD_ARMOR_NETWORK policies. A user-
36140
+ # defined field consists of up to 4 bytes extracted from a fixed offset in the
36141
+ # packet, relative to the IPv4, IPv6, TCP, or UDP header, with an optional mask
36142
+ # to select certain bits. Rules may then specify matching values for these
36143
+ # fields. Example: userDefinedFields: - name: "ipv4_fragment_offset" base: IPV4
36144
+ # offset: 6 size: 2 mask: "0x1fff"
36145
+ # Corresponds to the JSON property `userDefinedFields`
36146
+ # @return [Array<Google::Apis::ComputeBeta::SecurityPolicyUserDefinedField>]
36147
+ attr_accessor :user_defined_fields
36148
+
34979
36149
  def initialize(**args)
34980
36150
  update!(**args)
34981
36151
  end
@@ -35003,6 +36173,7 @@ module Google
35003
36173
  @self_link = args[:self_link] if args.key?(:self_link)
35004
36174
  @self_link_with_id = args[:self_link_with_id] if args.key?(:self_link_with_id)
35005
36175
  @type = args[:type] if args.key?(:type)
36176
+ @user_defined_fields = args[:user_defined_fields] if args.key?(:user_defined_fields)
35006
36177
  end
35007
36178
  end
35008
36179
 
@@ -35434,6 +36605,12 @@ module Google
35434
36605
  # @return [Google::Apis::ComputeBeta::SecurityPolicyRuleMatcher]
35435
36606
  attr_accessor :match
35436
36607
 
36608
+ # Represents a match condition that incoming network traffic is evaluated
36609
+ # against.
36610
+ # Corresponds to the JSON property `networkMatch`
36611
+ # @return [Google::Apis::ComputeBeta::SecurityPolicyRuleNetworkMatcher]
36612
+ attr_accessor :network_match
36613
+
35437
36614
  # Preconfigured WAF configuration to be applied for the rule. If the rule does
35438
36615
  # not evaluate preconfigured WAF rules, i.e., if evaluatePreconfiguredWaf() is
35439
36616
  # not used, this field will have no effect.
@@ -35508,6 +36685,7 @@ module Google
35508
36685
  @header_action = args[:header_action] if args.key?(:header_action)
35509
36686
  @kind = args[:kind] if args.key?(:kind)
35510
36687
  @match = args[:match] if args.key?(:match)
36688
+ @network_match = args[:network_match] if args.key?(:network_match)
35511
36689
  @preconfigured_waf_config = args[:preconfigured_waf_config] if args.key?(:preconfigured_waf_config)
35512
36690
  @preview = args[:preview] if args.key?(:preview)
35513
36691
  @priority = args[:priority] if args.key?(:priority)
@@ -35595,6 +36773,12 @@ module Google
35595
36773
  # @return [Google::Apis::ComputeBeta::Expr]
35596
36774
  attr_accessor :expr
35597
36775
 
36776
+ # The configuration options available when specifying a user defined CEVAL
36777
+ # expression (i.e., 'expr').
36778
+ # Corresponds to the JSON property `exprOptions`
36779
+ # @return [Google::Apis::ComputeBeta::SecurityPolicyRuleMatcherExprOptions]
36780
+ attr_accessor :expr_options
36781
+
35598
36782
  # Preconfigured versioned expression. If this field is specified, config must
35599
36783
  # also be specified. Available preconfigured expressions along with their
35600
36784
  # requirements are: SRC_IPS_V1 - must specify the corresponding src_ip_range
@@ -35611,6 +36795,7 @@ module Google
35611
36795
  def update!(**args)
35612
36796
  @config = args[:config] if args.key?(:config)
35613
36797
  @expr = args[:expr] if args.key?(:expr)
36798
+ @expr_options = args[:expr_options] if args.key?(:expr_options)
35614
36799
  @versioned_expr = args[:versioned_expr] if args.key?(:versioned_expr)
35615
36800
  end
35616
36801
  end
@@ -35680,6 +36865,151 @@ module Google
35680
36865
  end
35681
36866
  end
35682
36867
 
36868
+ #
36869
+ class SecurityPolicyRuleMatcherExprOptions
36870
+ include Google::Apis::Core::Hashable
36871
+
36872
+ # reCAPTCHA configuration options to be applied for the rule. If the rule does
36873
+ # not evaluate reCAPTCHA tokens, this field will have no effect.
36874
+ # Corresponds to the JSON property `recaptchaOptions`
36875
+ # @return [Google::Apis::ComputeBeta::SecurityPolicyRuleMatcherExprOptionsRecaptchaOptions]
36876
+ attr_accessor :recaptcha_options
36877
+
36878
+ def initialize(**args)
36879
+ update!(**args)
36880
+ end
36881
+
36882
+ # Update properties of this object
36883
+ def update!(**args)
36884
+ @recaptcha_options = args[:recaptcha_options] if args.key?(:recaptcha_options)
36885
+ end
36886
+ end
36887
+
36888
+ #
36889
+ class SecurityPolicyRuleMatcherExprOptionsRecaptchaOptions
36890
+ include Google::Apis::Core::Hashable
36891
+
36892
+ # A list of site keys to be used during the validation of reCAPTCHA action-
36893
+ # tokens. The provided site keys need to be created from reCAPTCHA API under the
36894
+ # same project where the security policy is created.
36895
+ # Corresponds to the JSON property `actionTokenSiteKeys`
36896
+ # @return [Array<String>]
36897
+ attr_accessor :action_token_site_keys
36898
+
36899
+ # A list of site keys to be used during the validation of reCAPTCHA session-
36900
+ # tokens. The provided site keys need to be created from reCAPTCHA API under the
36901
+ # same project where the security policy is created.
36902
+ # Corresponds to the JSON property `sessionTokenSiteKeys`
36903
+ # @return [Array<String>]
36904
+ attr_accessor :session_token_site_keys
36905
+
36906
+ def initialize(**args)
36907
+ update!(**args)
36908
+ end
36909
+
36910
+ # Update properties of this object
36911
+ def update!(**args)
36912
+ @action_token_site_keys = args[:action_token_site_keys] if args.key?(:action_token_site_keys)
36913
+ @session_token_site_keys = args[:session_token_site_keys] if args.key?(:session_token_site_keys)
36914
+ end
36915
+ end
36916
+
36917
+ # Represents a match condition that incoming network traffic is evaluated
36918
+ # against.
36919
+ class SecurityPolicyRuleNetworkMatcher
36920
+ include Google::Apis::Core::Hashable
36921
+
36922
+ # Destination IPv4/IPv6 addresses or CIDR prefixes, in standard text format.
36923
+ # Corresponds to the JSON property `destIpRanges`
36924
+ # @return [Array<String>]
36925
+ attr_accessor :dest_ip_ranges
36926
+
36927
+ # Destination port numbers for TCP/UDP/SCTP. Each element can be a 16-bit
36928
+ # unsigned decimal number (e.g. "80") or range (e.g. "0-1023").
36929
+ # Corresponds to the JSON property `destPorts`
36930
+ # @return [Array<String>]
36931
+ attr_accessor :dest_ports
36932
+
36933
+ # IPv4 protocol / IPv6 next header (after extension headers). Each element can
36934
+ # be an 8-bit unsigned decimal number (e.g. "6"), range (e.g. "253-254"), or one
36935
+ # of the following protocol names: "tcp", "udp", "icmp", "esp", "ah", "ipip", or
36936
+ # "sctp".
36937
+ # Corresponds to the JSON property `ipProtocols`
36938
+ # @return [Array<String>]
36939
+ attr_accessor :ip_protocols
36940
+
36941
+ # BGP Autonomous System Number associated with the source IP address.
36942
+ # Corresponds to the JSON property `srcAsns`
36943
+ # @return [Array<Fixnum>]
36944
+ attr_accessor :src_asns
36945
+
36946
+ # Source IPv4/IPv6 addresses or CIDR prefixes, in standard text format.
36947
+ # Corresponds to the JSON property `srcIpRanges`
36948
+ # @return [Array<String>]
36949
+ attr_accessor :src_ip_ranges
36950
+
36951
+ # Source port numbers for TCP/UDP/SCTP. Each element can be a 16-bit unsigned
36952
+ # decimal number (e.g. "80") or range (e.g. "0-1023").
36953
+ # Corresponds to the JSON property `srcPorts`
36954
+ # @return [Array<String>]
36955
+ attr_accessor :src_ports
36956
+
36957
+ # Two-letter ISO 3166-1 alpha-2 country code associated with the source IP
36958
+ # address.
36959
+ # Corresponds to the JSON property `srcRegionCodes`
36960
+ # @return [Array<String>]
36961
+ attr_accessor :src_region_codes
36962
+
36963
+ # User-defined fields. Each element names a defined field and lists the matching
36964
+ # values for that field.
36965
+ # Corresponds to the JSON property `userDefinedFields`
36966
+ # @return [Array<Google::Apis::ComputeBeta::SecurityPolicyRuleNetworkMatcherUserDefinedFieldMatch>]
36967
+ attr_accessor :user_defined_fields
36968
+
36969
+ def initialize(**args)
36970
+ update!(**args)
36971
+ end
36972
+
36973
+ # Update properties of this object
36974
+ def update!(**args)
36975
+ @dest_ip_ranges = args[:dest_ip_ranges] if args.key?(:dest_ip_ranges)
36976
+ @dest_ports = args[:dest_ports] if args.key?(:dest_ports)
36977
+ @ip_protocols = args[:ip_protocols] if args.key?(:ip_protocols)
36978
+ @src_asns = args[:src_asns] if args.key?(:src_asns)
36979
+ @src_ip_ranges = args[:src_ip_ranges] if args.key?(:src_ip_ranges)
36980
+ @src_ports = args[:src_ports] if args.key?(:src_ports)
36981
+ @src_region_codes = args[:src_region_codes] if args.key?(:src_region_codes)
36982
+ @user_defined_fields = args[:user_defined_fields] if args.key?(:user_defined_fields)
36983
+ end
36984
+ end
36985
+
36986
+ #
36987
+ class SecurityPolicyRuleNetworkMatcherUserDefinedFieldMatch
36988
+ include Google::Apis::Core::Hashable
36989
+
36990
+ # Name of the user-defined field, as given in the definition.
36991
+ # Corresponds to the JSON property `name`
36992
+ # @return [String]
36993
+ attr_accessor :name
36994
+
36995
+ # Matching values of the field. Each element can be a 32-bit unsigned decimal or
36996
+ # hexadecimal (starting with "0x") number (e.g. "64") or range (e.g. "0x400-
36997
+ # 0x7ff").
36998
+ # Corresponds to the JSON property `values`
36999
+ # @return [Array<String>]
37000
+ attr_accessor :values
37001
+
37002
+ def initialize(**args)
37003
+ update!(**args)
37004
+ end
37005
+
37006
+ # Update properties of this object
37007
+ def update!(**args)
37008
+ @name = args[:name] if args.key?(:name)
37009
+ @values = args[:values] if args.key?(:values)
37010
+ end
37011
+ end
37012
+
35683
37013
  #
35684
37014
  class SecurityPolicyRulePreconfiguredWafConfig
35685
37015
  include Google::Apis::Core::Hashable
@@ -35980,6 +37310,59 @@ module Google
35980
37310
  end
35981
37311
  end
35982
37312
 
37313
+ #
37314
+ class SecurityPolicyUserDefinedField
37315
+ include Google::Apis::Core::Hashable
37316
+
37317
+ # The base relative to which 'offset' is measured. Possible values are: - IPV4:
37318
+ # Points to the beginning of the IPv4 header. - IPV6: Points to the beginning of
37319
+ # the IPv6 header. - TCP: Points to the beginning of the TCP header, skipping
37320
+ # over any IPv4 options or IPv6 extension headers. Not present for non-first
37321
+ # fragments. - UDP: Points to the beginning of the UDP header, skipping over any
37322
+ # IPv4 options or IPv6 extension headers. Not present for non-first fragments.
37323
+ # required
37324
+ # Corresponds to the JSON property `base`
37325
+ # @return [String]
37326
+ attr_accessor :base
37327
+
37328
+ # If specified, apply this mask (bitwise AND) to the field to ignore bits before
37329
+ # matching. Encoded as a hexadecimal number (starting with "0x"). The last byte
37330
+ # of the field (in network byte order) corresponds to the least significant byte
37331
+ # of the mask.
37332
+ # Corresponds to the JSON property `mask`
37333
+ # @return [String]
37334
+ attr_accessor :mask
37335
+
37336
+ # The name of this field. Must be unique within the policy.
37337
+ # Corresponds to the JSON property `name`
37338
+ # @return [String]
37339
+ attr_accessor :name
37340
+
37341
+ # Offset of the first byte of the field (in network byte order) relative to '
37342
+ # base'.
37343
+ # Corresponds to the JSON property `offset`
37344
+ # @return [Fixnum]
37345
+ attr_accessor :offset
37346
+
37347
+ # Size of the field in bytes. Valid values: 1-4.
37348
+ # Corresponds to the JSON property `size`
37349
+ # @return [Fixnum]
37350
+ attr_accessor :size
37351
+
37352
+ def initialize(**args)
37353
+ update!(**args)
37354
+ end
37355
+
37356
+ # Update properties of this object
37357
+ def update!(**args)
37358
+ @base = args[:base] if args.key?(:base)
37359
+ @mask = args[:mask] if args.key?(:mask)
37360
+ @name = args[:name] if args.key?(:name)
37361
+ @offset = args[:offset] if args.key?(:offset)
37362
+ @size = args[:size] if args.key?(:size)
37363
+ end
37364
+ end
37365
+
35983
37366
  # The authentication and authorization settings for a BackendService.
35984
37367
  class SecuritySettings
35985
37368
  include Google::Apis::Core::Hashable
@@ -36001,7 +37384,7 @@ module Google
36001
37384
  # describes how clients should authenticate with this service's backends.
36002
37385
  # clientTlsPolicy only applies to a global BackendService with the
36003
37386
  # loadBalancingScheme set to INTERNAL_SELF_MANAGED. If left blank,
36004
- # communications are not encrypted. Note: This field currently has no impact.
37387
+ # communications are not encrypted.
36005
37388
  # Corresponds to the JSON property `clientTlsPolicy`
36006
37389
  # @return [String]
36007
37390
  attr_accessor :client_tls_policy
@@ -36017,7 +37400,7 @@ module Google
36017
37400
  # provisions server identities. Only applies to a global BackendService with
36018
37401
  # loadBalancingScheme set to INTERNAL_SELF_MANAGED. Only applies when
36019
37402
  # BackendService has an attached clientTlsPolicy with clientCertificate (mTLS
36020
- # mode). Note: This field currently has no impact.
37403
+ # mode).
36021
37404
  # Corresponds to the JSON property `subjectAltNames`
36022
37405
  # @return [Array<String>]
36023
37406
  attr_accessor :subject_alt_names
@@ -37169,6 +38552,25 @@ module Google
37169
38552
  # @return [String]
37170
38553
  attr_accessor :source_disk_id
37171
38554
 
38555
+ # The source instant snapshot used to create this snapshot. You can provide this
38556
+ # as a partial or full URL to the resource. For example, the following are valid
38557
+ # values: - https://www.googleapis.com/compute/v1/projects/project/zones/zone /
38558
+ # instantSnapshots/instantSnapshot - projects/project/zones/zone/
38559
+ # instantSnapshots/instantSnapshot - zones/zone/instantSnapshots/instantSnapshot
38560
+ # Corresponds to the JSON property `sourceInstantSnapshot`
38561
+ # @return [String]
38562
+ attr_accessor :source_instant_snapshot
38563
+
38564
+ # [Output Only] The unique ID of the instant snapshot used to create this
38565
+ # snapshot. This value identifies the exact instant snapshot that was used to
38566
+ # create this persistent disk. For example, if you created the persistent disk
38567
+ # from an instant snapshot that was later deleted and recreated under the same
38568
+ # name, the source instant snapshot ID would identify the exact instant snapshot
38569
+ # that was used.
38570
+ # Corresponds to the JSON property `sourceInstantSnapshotId`
38571
+ # @return [String]
38572
+ attr_accessor :source_instant_snapshot_id
38573
+
37172
38574
  # [Output Only] URL of the resource policy which created this scheduled snapshot.
37173
38575
  # Corresponds to the JSON property `sourceSnapshotSchedulePolicy`
37174
38576
  # @return [String]
@@ -37241,6 +38643,8 @@ module Google
37241
38643
  @source_disk = args[:source_disk] if args.key?(:source_disk)
37242
38644
  @source_disk_encryption_key = args[:source_disk_encryption_key] if args.key?(:source_disk_encryption_key)
37243
38645
  @source_disk_id = args[:source_disk_id] if args.key?(:source_disk_id)
38646
+ @source_instant_snapshot = args[:source_instant_snapshot] if args.key?(:source_instant_snapshot)
38647
+ @source_instant_snapshot_id = args[:source_instant_snapshot_id] if args.key?(:source_instant_snapshot_id)
37244
38648
  @source_snapshot_schedule_policy = args[:source_snapshot_schedule_policy] if args.key?(:source_snapshot_schedule_policy)
37245
38649
  @source_snapshot_schedule_policy_id = args[:source_snapshot_schedule_policy_id] if args.key?(:source_snapshot_schedule_policy_id)
37246
38650
  @status = args[:status] if args.key?(:status)
@@ -38756,8 +40160,8 @@ module Google
38756
40160
  # Whether to enable flow logging for this subnetwork. If this field is not
38757
40161
  # explicitly set, it will not appear in get listings. If not set the default
38758
40162
  # behavior is determined by the org policy, if there is no org policy specified,
38759
- # then it will default to disabled. This field isn't supported with the purpose
38760
- # field set to INTERNAL_HTTPS_LOAD_BALANCER.
40163
+ # then it will default to disabled. This field isn't supported if the subnet
40164
+ # purpose field is set to REGIONAL_MANAGED_PROXY.
38761
40165
  # Corresponds to the JSON property `enableFlowLogs`
38762
40166
  # @return [Boolean]
38763
40167
  attr_accessor :enable_flow_logs
@@ -38861,12 +40265,19 @@ module Google
38861
40265
  # @return [String]
38862
40266
  attr_accessor :private_ipv6_google_access
38863
40267
 
38864
- # The purpose of the resource. This field can be either PRIVATE_RFC_1918 or
38865
- # INTERNAL_HTTPS_LOAD_BALANCER. A subnetwork with purpose set to
38866
- # INTERNAL_HTTPS_LOAD_BALANCER is a user-created subnetwork that is reserved for
38867
- # Internal HTTP(S) Load Balancing. If unspecified, the purpose defaults to
38868
- # PRIVATE_RFC_1918. The enableFlowLogs field isn't supported with the purpose
38869
- # field set to INTERNAL_HTTPS_LOAD_BALANCER.
40268
+ # The purpose of the resource. This field can be either PRIVATE,
40269
+ # REGIONAL_MANAGED_PROXY, PRIVATE_SERVICE_CONNECT, or
40270
+ # INTERNAL_HTTPS_LOAD_BALANCER. PRIVATE is the default purpose for user-created
40271
+ # subnets or subnets that are automatically created in auto mode networks. A
40272
+ # subnet with purpose set to REGIONAL_MANAGED_PROXY is a user-created subnetwork
40273
+ # that is reserved for regional Envoy-based load balancers. A subnet with
40274
+ # purpose set to PRIVATE_SERVICE_CONNECT is used to publish services using
40275
+ # Private Service Connect. A subnet with purpose set to
40276
+ # INTERNAL_HTTPS_LOAD_BALANCER is a proxy-only subnet that can be used only by
40277
+ # regional internal HTTP(S) load balancers. Note that REGIONAL_MANAGED_PROXY is
40278
+ # the preferred setting for all regional Envoy load balancers. If unspecified,
40279
+ # the subnet purpose defaults to PRIVATE. The enableFlowLogs field isn't
40280
+ # supported if the subnet purpose field is set to REGIONAL_MANAGED_PROXY.
38870
40281
  # Corresponds to the JSON property `purpose`
38871
40282
  # @return [String]
38872
40283
  attr_accessor :purpose
@@ -38883,11 +40294,10 @@ module Google
38883
40294
  attr_accessor :reserved_internal_range
38884
40295
 
38885
40296
  # The role of subnetwork. Currently, this field is only used when purpose =
38886
- # INTERNAL_HTTPS_LOAD_BALANCER. The value can be set to ACTIVE or BACKUP. An
38887
- # ACTIVE subnetwork is one that is currently being used for Internal HTTP(S)
38888
- # Load Balancing. A BACKUP subnetwork is one that is ready to be promoted to
38889
- # ACTIVE or is currently draining. This field can be updated with a patch
38890
- # request.
40297
+ # REGIONAL_MANAGED_PROXY. The value can be set to ACTIVE or BACKUP. An ACTIVE
40298
+ # subnetwork is one that is currently being used for Envoy-based load balancers
40299
+ # in a region. A BACKUP subnetwork is one that is ready to be promoted to ACTIVE
40300
+ # or is currently draining. This field can be updated with a patch request.
38891
40301
  # Corresponds to the JSON property `role`
38892
40302
  # @return [String]
38893
40303
  attr_accessor :role
@@ -39215,7 +40625,8 @@ module Google
39215
40625
  # Whether to enable flow logging for this subnetwork. If this field is not
39216
40626
  # explicitly set, it will not appear in get listings. If not set the default
39217
40627
  # behavior is determined by the org policy, if there is no org policy specified,
39218
- # then it will default to disabled.
40628
+ # then it will default to disabled. Flow logging isn't supported if the subnet
40629
+ # purpose field is set to REGIONAL_MANAGED_PROXY.
39219
40630
  # Corresponds to the JSON property `enable`
39220
40631
  # @return [Boolean]
39221
40632
  attr_accessor :enable
@@ -40905,6 +42316,12 @@ module Google
40905
42316
  # @return [String]
40906
42317
  attr_accessor :network
40907
42318
 
42319
+ # [Output Only] The resource URL for the security policy associated with this
42320
+ # target instance.
42321
+ # Corresponds to the JSON property `securityPolicy`
42322
+ # @return [String]
42323
+ attr_accessor :security_policy
42324
+
40908
42325
  # [Output Only] Server-defined URL for the resource.
40909
42326
  # Corresponds to the JSON property `selfLink`
40910
42327
  # @return [String]
@@ -40931,6 +42348,7 @@ module Google
40931
42348
  @name = args[:name] if args.key?(:name)
40932
42349
  @nat_policy = args[:nat_policy] if args.key?(:nat_policy)
40933
42350
  @network = args[:network] if args.key?(:network)
42351
+ @security_policy = args[:security_policy] if args.key?(:security_policy)
40934
42352
  @self_link = args[:self_link] if args.key?(:self_link)
40935
42353
  @zone = args[:zone] if args.key?(:zone)
40936
42354
  end
@@ -41354,6 +42772,12 @@ module Google
41354
42772
  # @return [String]
41355
42773
  attr_accessor :region
41356
42774
 
42775
+ # [Output Only] The resource URL for the security policy associated with this
42776
+ # target pool.
42777
+ # Corresponds to the JSON property `securityPolicy`
42778
+ # @return [String]
42779
+ attr_accessor :security_policy
42780
+
41357
42781
  # [Output Only] Server-defined URL for the resource.
41358
42782
  # Corresponds to the JSON property `selfLink`
41359
42783
  # @return [String]
@@ -41385,6 +42809,7 @@ module Google
41385
42809
  @kind = args[:kind] if args.key?(:kind)
41386
42810
  @name = args[:name] if args.key?(:name)
41387
42811
  @region = args[:region] if args.key?(:region)
42812
+ @security_policy = args[:security_policy] if args.key?(:security_policy)
41388
42813
  @self_link = args[:self_link] if args.key?(:self_link)
41389
42814
  @session_affinity = args[:session_affinity] if args.key?(:session_affinity)
41390
42815
  end
@@ -43997,22 +45422,28 @@ module Google
43997
45422
  # @return [String]
43998
45423
  attr_accessor :network
43999
45424
 
44000
- # The purpose of the resource. This field can be either PRIVATE_RFC_1918 or
44001
- # INTERNAL_HTTPS_LOAD_BALANCER. A subnetwork with purpose set to
44002
- # INTERNAL_HTTPS_LOAD_BALANCER is a user-created subnetwork that is reserved for
44003
- # Internal HTTP(S) Load Balancing. If unspecified, the purpose defaults to
44004
- # PRIVATE_RFC_1918. The enableFlowLogs field isn't supported with the purpose
44005
- # field set to INTERNAL_HTTPS_LOAD_BALANCER.
45425
+ # The purpose of the resource. This field can be either PRIVATE,
45426
+ # REGIONAL_MANAGED_PROXY, PRIVATE_SERVICE_CONNECT, or
45427
+ # INTERNAL_HTTPS_LOAD_BALANCER. PRIVATE is the default purpose for user-created
45428
+ # subnets or subnets that are automatically created in auto mode networks. A
45429
+ # subnet with purpose set to REGIONAL_MANAGED_PROXY is a user-created subnetwork
45430
+ # that is reserved for regional Envoy-based load balancers. A subnet with
45431
+ # purpose set to PRIVATE_SERVICE_CONNECT is used to publish services using
45432
+ # Private Service Connect. A subnet with purpose set to
45433
+ # INTERNAL_HTTPS_LOAD_BALANCER is a proxy-only subnet that can be used only by
45434
+ # regional internal HTTP(S) load balancers. Note that REGIONAL_MANAGED_PROXY is
45435
+ # the preferred setting for all regional Envoy load balancers. If unspecified,
45436
+ # the subnet purpose defaults to PRIVATE. The enableFlowLogs field isn't
45437
+ # supported if the subnet purpose field is set to REGIONAL_MANAGED_PROXY.
44006
45438
  # Corresponds to the JSON property `purpose`
44007
45439
  # @return [String]
44008
45440
  attr_accessor :purpose
44009
45441
 
44010
45442
  # The role of subnetwork. Currently, this field is only used when purpose =
44011
- # INTERNAL_HTTPS_LOAD_BALANCER. The value can be set to ACTIVE or BACKUP. An
44012
- # ACTIVE subnetwork is one that is currently being used for Internal HTTP(S)
44013
- # Load Balancing. A BACKUP subnetwork is one that is ready to be promoted to
44014
- # ACTIVE or is currently draining. This field can be updated with a patch
44015
- # request.
45443
+ # REGIONAL_MANAGED_PROXY. The value can be set to ACTIVE or BACKUP. An ACTIVE
45444
+ # subnetwork is one that is currently being used for Envoy-based load balancers
45445
+ # in a region. A BACKUP subnetwork is one that is ready to be promoted to ACTIVE
45446
+ # or is currently draining. This field can be updated with a patch request.
44016
45447
  # Corresponds to the JSON property `role`
44017
45448
  # @return [String]
44018
45449
  attr_accessor :role
@@ -44905,7 +46336,7 @@ module Google
44905
46336
  attr_accessor :local_gateway_interface
44906
46337
 
44907
46338
  # The peer gateway interface this VPN tunnel is connected to, the peer gateway
44908
- # could either be an external VPN gateway or GCP VPN gateway.
46339
+ # could either be an external VPN gateway or a Google Cloud VPN gateway.
44909
46340
  # Corresponds to the JSON property `peerGatewayInterface`
44910
46341
  # @return [Fixnum]
44911
46342
  attr_accessor :peer_gateway_interface
@@ -44928,8 +46359,8 @@ module Google
44928
46359
  end
44929
46360
 
44930
46361
  # A VPN connection contains all VPN tunnels connected from this VpnGateway to
44931
- # the same peer gateway. The peer gateway could either be a external VPN gateway
44932
- # or GCP VPN gateway.
46362
+ # the same peer gateway. The peer gateway could either be an external VPN
46363
+ # gateway or a Google Cloud VPN gateway.
44933
46364
  class VpnGatewayStatusVpnConnection
44934
46365
  include Google::Apis::Core::Hashable
44935
46366