google-apis-compute_beta 0.66.0 → 0.68.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -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