google-api-client 0.9.8 → 0.9.9

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (73) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +4 -0
  3. data/generated/google/apis/adexchangebuyer_v1_4.rb +1 -1
  4. data/generated/google/apis/adexchangebuyer_v1_4/classes.rb +76 -1
  5. data/generated/google/apis/adexchangebuyer_v1_4/representations.rb +22 -0
  6. data/generated/google/apis/adsense_v1_4.rb +1 -1
  7. data/generated/google/apis/adsensehost_v4_1.rb +1 -1
  8. data/generated/google/apis/analyticsreporting_v4.rb +1 -1
  9. data/generated/google/apis/analyticsreporting_v4/classes.rb +32 -14
  10. data/generated/google/apis/androidenterprise_v1.rb +1 -1
  11. data/generated/google/apis/androidenterprise_v1/classes.rb +1 -1
  12. data/generated/google/apis/androidpublisher_v2.rb +1 -1
  13. data/generated/google/apis/appstate_v1.rb +1 -1
  14. data/generated/google/apis/bigquery_v2.rb +1 -1
  15. data/generated/google/apis/bigquery_v2/classes.rb +10 -0
  16. data/generated/google/apis/bigquery_v2/representations.rb +1 -0
  17. data/generated/google/apis/calendar_v3.rb +1 -1
  18. data/generated/google/apis/clouddebugger_v2.rb +1 -1
  19. data/generated/google/apis/clouddebugger_v2/service.rb +2 -2
  20. data/generated/google/apis/compute_beta.rb +1 -1
  21. data/generated/google/apis/compute_beta/classes.rb +28 -5
  22. data/generated/google/apis/compute_beta/representations.rb +3 -0
  23. data/generated/google/apis/compute_beta/service.rb +1 -2
  24. data/generated/google/apis/compute_v1.rb +1 -1
  25. data/generated/google/apis/compute_v1/classes.rb +680 -4
  26. data/generated/google/apis/compute_v1/representations.rb +274 -0
  27. data/generated/google/apis/compute_v1/service.rb +442 -2
  28. data/generated/google/apis/deploymentmanager_v2.rb +1 -1
  29. data/generated/google/apis/dns_v1.rb +1 -1
  30. data/generated/google/apis/doubleclicksearch_v2.rb +1 -1
  31. data/generated/google/apis/drive_v2.rb +1 -1
  32. data/generated/google/apis/drive_v2/classes.rb +6 -0
  33. data/generated/google/apis/drive_v2/representations.rb +2 -0
  34. data/generated/google/apis/drive_v2/service.rb +8 -2
  35. data/generated/google/apis/drive_v3.rb +1 -1
  36. data/generated/google/apis/drive_v3/classes.rb +6 -0
  37. data/generated/google/apis/drive_v3/representations.rb +2 -0
  38. data/generated/google/apis/drive_v3/service.rb +4 -1
  39. data/generated/google/apis/fusiontables_v2.rb +1 -1
  40. data/generated/google/apis/fusiontables_v2/classes.rb +4 -3
  41. data/generated/google/apis/games_configuration_v1configuration.rb +1 -1
  42. data/generated/google/apis/games_management_v1management.rb +1 -1
  43. data/generated/google/apis/games_v1.rb +1 -1
  44. data/generated/google/apis/genomics_v1.rb +1 -1
  45. data/generated/google/apis/genomics_v1/classes.rb +63 -0
  46. data/generated/google/apis/genomics_v1/representations.rb +31 -0
  47. data/generated/google/apis/gmail_v1.rb +1 -1
  48. data/generated/google/apis/groupssettings_v1.rb +1 -1
  49. data/generated/google/apis/groupssettings_v1/classes.rb +12 -0
  50. data/generated/google/apis/groupssettings_v1/representations.rb +2 -0
  51. data/generated/google/apis/identitytoolkit_v3.rb +1 -1
  52. data/generated/google/apis/identitytoolkit_v3/classes.rb +30 -0
  53. data/generated/google/apis/identitytoolkit_v3/representations.rb +5 -0
  54. data/generated/google/apis/monitoring_v3.rb +45 -0
  55. data/generated/google/apis/monitoring_v3/classes.rb +1404 -0
  56. data/generated/google/apis/monitoring_v3/representations.rb +533 -0
  57. data/generated/google/apis/monitoring_v3/service.rb +743 -0
  58. data/generated/google/apis/oauth2_v2.rb +1 -1
  59. data/generated/google/apis/plus_domains_v1.rb +1 -1
  60. data/generated/google/apis/plus_v1.rb +1 -1
  61. data/generated/google/apis/sheets_v4.rb +1 -1
  62. data/generated/google/apis/vision_v1.rb +1 -1
  63. data/generated/google/apis/vision_v1/classes.rb +10 -9
  64. data/generated/google/apis/youtube_partner_v1.rb +1 -1
  65. data/generated/google/apis/youtube_v3.rb +1 -1
  66. data/generated/google/apis/youtube_v3/classes.rb +155 -0
  67. data/generated/google/apis/youtube_v3/representations.rb +81 -0
  68. data/generated/google/apis/youtube_v3/service.rb +6 -2
  69. data/lib/google/apis/errors.rb +2 -2
  70. data/lib/google/apis/version.rb +1 -1
  71. data/samples/cli/lib/samples/bigquery.rb +101 -0
  72. data/samples/cli/lib/samples/sheets.rb +61 -0
  73. metadata +8 -2
@@ -994,6 +994,7 @@ module Google
994
994
  # @private
995
995
  class Representation < Google::Apis::Core::JsonRepresentation
996
996
  property :query, as: 'query'
997
+ property :use_legacy_sql, as: 'useLegacySql'
997
998
  collection :user_defined_function_resources, as: 'userDefinedFunctionResources', class: Google::Apis::BigqueryV2::UserDefinedFunctionResource, decorator: Google::Apis::BigqueryV2::UserDefinedFunctionResource::Representation
998
999
 
999
1000
  end
@@ -25,7 +25,7 @@ module Google
25
25
  # @see https://developers.google.com/google-apps/calendar/firstapp
26
26
  module CalendarV3
27
27
  VERSION = 'V3'
28
- REVISION = '20160517'
28
+ REVISION = '20160605'
29
29
 
30
30
  # Manage your calendars
31
31
  AUTH_CALENDAR = 'https://www.googleapis.com/auth/calendar'
@@ -26,7 +26,7 @@ module Google
26
26
  # @see https://cloud.google.com/tools/cloud-debugger
27
27
  module ClouddebuggerV2
28
28
  VERSION = 'V2'
29
- REVISION = '20160309'
29
+ REVISION = '20160602'
30
30
 
31
31
  # View and manage your data across Google Cloud Platform services
32
32
  AUTH_CLOUD_PLATFORM = 'https://www.googleapis.com/auth/cloud-platform'
@@ -29,10 +29,10 @@ module Google
29
29
  # require 'google/apis/clouddebugger_v2'
30
30
  #
31
31
  # Clouddebugger = Google::Apis::ClouddebuggerV2 # Alias the module
32
- # service = Clouddebugger::ClouddebuggerService.new
32
+ # service = Clouddebugger::CloudDebuggerService.new
33
33
  #
34
34
  # @see https://cloud.google.com/tools/cloud-debugger
35
- class ClouddebuggerService < Google::Apis::Core::BaseService
35
+ class CloudDebuggerService < Google::Apis::Core::BaseService
36
36
  # @return [String]
37
37
  # API key. Your API key identifies your project and provides you with API access,
38
38
  # quota, and reports. Required unless you provide an OAuth 2.0 token.
@@ -25,7 +25,7 @@ module Google
25
25
  # @see https://developers.google.com/compute/docs/reference/latest/
26
26
  module ComputeBeta
27
27
  VERSION = 'Beta'
28
- REVISION = '20160519'
28
+ REVISION = '20160525'
29
29
 
30
30
  # View and manage your data across Google Cloud Platform services
31
31
  AUTH_CLOUD_PLATFORM = 'https://www.googleapis.com/auth/cloud-platform'
@@ -1020,6 +1020,13 @@ module Google
1020
1020
  class BackendService
1021
1021
  include Google::Apis::Core::Hashable
1022
1022
 
1023
+ # Lifetime of cookies in seconds if session_affinity is GENERATED_COOKIE. If set
1024
+ # to 0, the cookie is non-persistent and lasts only until the end of the browser
1025
+ # session (or equivalent). The maximum allowed value for TTL is one day.
1026
+ # Corresponds to the JSON property `affinityCookieTtlSec`
1027
+ # @return [Fixnum]
1028
+ attr_accessor :affinity_cookie_ttl_sec
1029
+
1023
1030
  # The list of backends that serve this BackendService.
1024
1031
  # Corresponds to the JSON property `backends`
1025
1032
  # @return [Array<Google::Apis::ComputeBeta::Backend>]
@@ -1108,6 +1115,11 @@ module Google
1108
1115
  # @return [String]
1109
1116
  attr_accessor :self_link
1110
1117
 
1118
+ # Type of session affinity to use.
1119
+ # Corresponds to the JSON property `sessionAffinity`
1120
+ # @return [String]
1121
+ attr_accessor :session_affinity
1122
+
1111
1123
  # How many seconds to wait for the backend before considering it a failed
1112
1124
  # request. Default is 30 seconds.
1113
1125
  # Corresponds to the JSON property `timeoutSec`
@@ -1120,6 +1132,7 @@ module Google
1120
1132
 
1121
1133
  # Update properties of this object
1122
1134
  def update!(**args)
1135
+ @affinity_cookie_ttl_sec = args[:affinity_cookie_ttl_sec] if args.key?(:affinity_cookie_ttl_sec)
1123
1136
  @backends = args[:backends] if args.key?(:backends)
1124
1137
  @creation_timestamp = args[:creation_timestamp] if args.key?(:creation_timestamp)
1125
1138
  @description = args[:description] if args.key?(:description)
@@ -1134,6 +1147,7 @@ module Google
1134
1147
  @protocol = args[:protocol] if args.key?(:protocol)
1135
1148
  @region = args[:region] if args.key?(:region)
1136
1149
  @self_link = args[:self_link] if args.key?(:self_link)
1150
+ @session_affinity = args[:session_affinity] if args.key?(:session_affinity)
1137
1151
  @timeout_sec = args[:timeout_sec] if args.key?(:timeout_sec)
1138
1152
  end
1139
1153
  end
@@ -3340,13 +3354,14 @@ module Google
3340
3354
  # A list of service accounts, with their specified scopes, authorized for this
3341
3355
  # instance. Service accounts generate access tokens that can be accessed through
3342
3356
  # the metadata server and used to authenticate applications on the instance. See
3343
- # Authenticating from Google Compute Engine for more information.
3357
+ # Service Accounts for more information.
3344
3358
  # Corresponds to the JSON property `serviceAccounts`
3345
3359
  # @return [Array<Google::Apis::ComputeBeta::ServiceAccount>]
3346
3360
  attr_accessor :service_accounts
3347
3361
 
3348
3362
  # [Output Only] The status of the instance. One of the following values:
3349
- # PROVISIONING, STAGING, RUNNING, STOPPING, and TERMINATED.
3363
+ # PROVISIONING, STAGING, RUNNING, STOPPING, SUSPENDED, SUSPENDING, and
3364
+ # TERMINATED.
3350
3365
  # Corresponds to the JSON property `status`
3351
3366
  # @return [String]
3352
3367
  attr_accessor :status
@@ -4574,8 +4589,8 @@ module Google
4574
4589
  # IP addresses other than their own and receive packets with destination IP
4575
4590
  # addresses other than their own. If these instances will be used as an IP
4576
4591
  # gateway or it will be set as the next-hop in a Route resource, specify true.
4577
- # If unsure, leave this set to false. See the canIpForward documentation for
4578
- # more information.
4592
+ # If unsure, leave this set to false. See the Enable IP forwarding for instances
4593
+ # documentation for more information.
4579
4594
  # Corresponds to the JSON property `canIpForward`
4580
4595
  # @return [Boolean]
4581
4596
  attr_accessor :can_ip_forward
@@ -7092,7 +7107,7 @@ module Google
7092
7107
  class RouterStatus
7093
7108
  include Google::Apis::Core::Hashable
7094
7109
 
7095
- # Best routes for this router.
7110
+ # Best routes for this router's network.
7096
7111
  # Corresponds to the JSON property `bestRoutes`
7097
7112
  # @return [Array<Google::Apis::ComputeBeta::Route>]
7098
7113
  attr_accessor :best_routes
@@ -9732,6 +9747,13 @@ module Google
9732
9747
  # @return [String]
9733
9748
  attr_accessor :region
9734
9749
 
9750
+ # Remote traffic selectors to use when establishing the VPN tunnel with peer VPN
9751
+ # gateway. The value should be a CIDR formatted string, for example: 192.168.0.0/
9752
+ # 16. The ranges should be disjoint.
9753
+ # Corresponds to the JSON property `remoteTrafficSelector`
9754
+ # @return [Array<String>]
9755
+ attr_accessor :remote_traffic_selector
9756
+
9735
9757
  # URL of router resource to be used for dynamic routing.
9736
9758
  # Corresponds to the JSON property `router`
9737
9759
  # @return [String]
@@ -9780,6 +9802,7 @@ module Google
9780
9802
  @name = args[:name] if args.key?(:name)
9781
9803
  @peer_ip = args[:peer_ip] if args.key?(:peer_ip)
9782
9804
  @region = args[:region] if args.key?(:region)
9805
+ @remote_traffic_selector = args[:remote_traffic_selector] if args.key?(:remote_traffic_selector)
9783
9806
  @router = args[:router] if args.key?(:router)
9784
9807
  @self_link = args[:self_link] if args.key?(:self_link)
9785
9808
  @shared_secret = args[:shared_secret] if args.key?(:shared_secret)
@@ -1551,6 +1551,7 @@ module Google
1551
1551
  class BackendService
1552
1552
  # @private
1553
1553
  class Representation < Google::Apis::Core::JsonRepresentation
1554
+ property :affinity_cookie_ttl_sec, as: 'affinityCookieTtlSec'
1554
1555
  collection :backends, as: 'backends', class: Google::Apis::ComputeBeta::Backend, decorator: Google::Apis::ComputeBeta::Backend::Representation
1555
1556
 
1556
1557
  property :creation_timestamp, as: 'creationTimestamp'
@@ -1566,6 +1567,7 @@ module Google
1566
1567
  property :protocol, as: 'protocol'
1567
1568
  property :region, as: 'region'
1568
1569
  property :self_link, as: 'selfLink'
1570
+ property :session_affinity, as: 'sessionAffinity'
1569
1571
  property :timeout_sec, as: 'timeoutSec'
1570
1572
  end
1571
1573
  end
@@ -3682,6 +3684,7 @@ module Google
3682
3684
  property :name, as: 'name'
3683
3685
  property :peer_ip, as: 'peerIp'
3684
3686
  property :region, as: 'region'
3687
+ collection :remote_traffic_selector, as: 'remoteTrafficSelector'
3685
3688
  property :router, as: 'router'
3686
3689
  property :self_link, as: 'selfLink'
3687
3690
  property :shared_secret, as: 'sharedSecret'
@@ -4122,10 +4122,9 @@ module Google
4122
4122
  # Retrieves the list of private images available to the specified project.
4123
4123
  # Private images are images you create that belong to your project. This method
4124
4124
  # does not get any images that belong to other projects, including publicly-
4125
- # available images, like Debian 7. If you want to get a list of publicly-
4125
+ # available images, like Debian 8. If you want to get a list of publicly-
4126
4126
  # available images, use this method to make a request to the respective image
4127
4127
  # project, such as debian-cloud or windows-cloud.
4128
- # See Accessing images for more information.
4129
4128
  # @param [String] project
4130
4129
  # Project ID for this request.
4131
4130
  # @param [String] filter
@@ -25,7 +25,7 @@ module Google
25
25
  # @see https://developers.google.com/compute/docs/reference/latest/
26
26
  module ComputeV1
27
27
  VERSION = 'V1'
28
- REVISION = '20160519'
28
+ REVISION = '20160525'
29
29
 
30
30
  # View and manage your data across Google Cloud Platform services
31
31
  AUTH_CLOUD_PLATFORM = 'https://www.googleapis.com/auth/cloud-platform'
@@ -365,6 +365,11 @@ module Google
365
365
  # @return [String]
366
366
  attr_accessor :device_name
367
367
 
368
+ # Represents a customer-supplied encryption key
369
+ # Corresponds to the JSON property `diskEncryptionKey`
370
+ # @return [Google::Apis::ComputeV1::CustomerEncryptionKey]
371
+ attr_accessor :disk_encryption_key
372
+
368
373
  # Assigns a zero-based index to this disk, where 0 is reserved for the boot disk.
369
374
  # For example, if you have many disks attached to an instance, each disk would
370
375
  # have a unique index number. If not specified, the server will choose an
@@ -429,6 +434,7 @@ module Google
429
434
  @auto_delete = args[:auto_delete] if args.key?(:auto_delete)
430
435
  @boot = args[:boot] if args.key?(:boot)
431
436
  @device_name = args[:device_name] if args.key?(:device_name)
437
+ @disk_encryption_key = args[:disk_encryption_key] if args.key?(:disk_encryption_key)
432
438
  @index = args[:index] if args.key?(:index)
433
439
  @initialize_params = args[:initialize_params] if args.key?(:initialize_params)
434
440
  @interface = args[:interface] if args.key?(:interface)
@@ -493,6 +499,11 @@ module Google
493
499
  # @return [String]
494
500
  attr_accessor :source_image
495
501
 
502
+ # Represents a customer-supplied encryption key
503
+ # Corresponds to the JSON property `sourceImageEncryptionKey`
504
+ # @return [Google::Apis::ComputeV1::CustomerEncryptionKey]
505
+ attr_accessor :source_image_encryption_key
506
+
496
507
  def initialize(**args)
497
508
  update!(**args)
498
509
  end
@@ -503,6 +514,7 @@ module Google
503
514
  @disk_size_gb = args[:disk_size_gb] if args.key?(:disk_size_gb)
504
515
  @disk_type = args[:disk_type] if args.key?(:disk_type)
505
516
  @source_image = args[:source_image] if args.key?(:source_image)
517
+ @source_image_encryption_key = args[:source_image_encryption_key] if args.key?(:source_image_encryption_key)
506
518
  end
507
519
  end
508
520
 
@@ -1188,6 +1200,59 @@ module Google
1188
1200
  end
1189
1201
  end
1190
1202
 
1203
+ # Represents a customer-supplied encryption key
1204
+ class CustomerEncryptionKey
1205
+ include Google::Apis::Core::Hashable
1206
+
1207
+ # Specifies a 256-bit customer-supplied encryption key, encoded in base64 to
1208
+ # either encrypt or decrypt this resource.
1209
+ # Corresponds to the JSON property `rawKey`
1210
+ # @return [String]
1211
+ attr_accessor :raw_key
1212
+
1213
+ # [Output only] The base64 encoded SHA-256 hash of the customer-supplied
1214
+ # encryption key that protects this resource.
1215
+ # Corresponds to the JSON property `sha256`
1216
+ # @return [String]
1217
+ attr_accessor :sha256
1218
+
1219
+ def initialize(**args)
1220
+ update!(**args)
1221
+ end
1222
+
1223
+ # Update properties of this object
1224
+ def update!(**args)
1225
+ @raw_key = args[:raw_key] if args.key?(:raw_key)
1226
+ @sha256 = args[:sha256] if args.key?(:sha256)
1227
+ end
1228
+ end
1229
+
1230
+ #
1231
+ class CustomerEncryptionKeyProtectedDisk
1232
+ include Google::Apis::Core::Hashable
1233
+
1234
+ # Represents a customer-supplied encryption key
1235
+ # Corresponds to the JSON property `diskEncryptionKey`
1236
+ # @return [Google::Apis::ComputeV1::CustomerEncryptionKey]
1237
+ attr_accessor :disk_encryption_key
1238
+
1239
+ # Specifies a valid partial or full URL to an existing Persistent Disk resource.
1240
+ # This field is only applicable for persistent disks.
1241
+ # Corresponds to the JSON property `source`
1242
+ # @return [String]
1243
+ attr_accessor :source
1244
+
1245
+ def initialize(**args)
1246
+ update!(**args)
1247
+ end
1248
+
1249
+ # Update properties of this object
1250
+ def update!(**args)
1251
+ @disk_encryption_key = args[:disk_encryption_key] if args.key?(:disk_encryption_key)
1252
+ @source = args[:source] if args.key?(:source)
1253
+ end
1254
+ end
1255
+
1191
1256
  # Deprecation status for a public resource.
1192
1257
  class DeprecationStatus
1193
1258
  include Google::Apis::Core::Hashable
@@ -1255,6 +1320,11 @@ module Google
1255
1320
  # @return [String]
1256
1321
  attr_accessor :description
1257
1322
 
1323
+ # Represents a customer-supplied encryption key
1324
+ # Corresponds to the JSON property `diskEncryptionKey`
1325
+ # @return [Google::Apis::ComputeV1::CustomerEncryptionKey]
1326
+ attr_accessor :disk_encryption_key
1327
+
1258
1328
  # [Output Only] The unique identifier for the resource. This identifier is
1259
1329
  # defined by the server.
1260
1330
  # Corresponds to the JSON property `id`
@@ -1330,6 +1400,11 @@ module Google
1330
1400
  # @return [String]
1331
1401
  attr_accessor :source_image
1332
1402
 
1403
+ # Represents a customer-supplied encryption key
1404
+ # Corresponds to the JSON property `sourceImageEncryptionKey`
1405
+ # @return [Google::Apis::ComputeV1::CustomerEncryptionKey]
1406
+ attr_accessor :source_image_encryption_key
1407
+
1333
1408
  # [Output Only] The ID value of the image used to create this disk. This value
1334
1409
  # identifies the exact image that was used to create this persistent disk. For
1335
1410
  # example, if you created the persistent disk from an image that was later
@@ -1350,6 +1425,11 @@ module Google
1350
1425
  # @return [String]
1351
1426
  attr_accessor :source_snapshot
1352
1427
 
1428
+ # Represents a customer-supplied encryption key
1429
+ # Corresponds to the JSON property `sourceSnapshotEncryptionKey`
1430
+ # @return [Google::Apis::ComputeV1::CustomerEncryptionKey]
1431
+ attr_accessor :source_snapshot_encryption_key
1432
+
1353
1433
  # [Output Only] The unique ID of the snapshot used to create this disk. This
1354
1434
  # value identifies the exact snapshot that was used to create this persistent
1355
1435
  # disk. For example, if you created the persistent disk from a snapshot that was
@@ -1390,6 +1470,7 @@ module Google
1390
1470
  def update!(**args)
1391
1471
  @creation_timestamp = args[:creation_timestamp] if args.key?(:creation_timestamp)
1392
1472
  @description = args[:description] if args.key?(:description)
1473
+ @disk_encryption_key = args[:disk_encryption_key] if args.key?(:disk_encryption_key)
1393
1474
  @id = args[:id] if args.key?(:id)
1394
1475
  @kind = args[:kind] if args.key?(:kind)
1395
1476
  @last_attach_timestamp = args[:last_attach_timestamp] if args.key?(:last_attach_timestamp)
@@ -1400,8 +1481,10 @@ module Google
1400
1481
  @self_link = args[:self_link] if args.key?(:self_link)
1401
1482
  @size_gb = args[:size_gb] if args.key?(:size_gb)
1402
1483
  @source_image = args[:source_image] if args.key?(:source_image)
1484
+ @source_image_encryption_key = args[:source_image_encryption_key] if args.key?(:source_image_encryption_key)
1403
1485
  @source_image_id = args[:source_image_id] if args.key?(:source_image_id)
1404
1486
  @source_snapshot = args[:source_snapshot] if args.key?(:source_snapshot)
1487
+ @source_snapshot_encryption_key = args[:source_snapshot_encryption_key] if args.key?(:source_snapshot_encryption_key)
1405
1488
  @source_snapshot_id = args[:source_snapshot_id] if args.key?(:source_snapshot_id)
1406
1489
  @status = args[:status] if args.key?(:status)
1407
1490
  @type = args[:type] if args.key?(:type)
@@ -2837,6 +2920,11 @@ module Google
2837
2920
  # @return [String]
2838
2921
  attr_accessor :id
2839
2922
 
2923
+ # Represents a customer-supplied encryption key
2924
+ # Corresponds to the JSON property `imageEncryptionKey`
2925
+ # @return [Google::Apis::ComputeV1::CustomerEncryptionKey]
2926
+ attr_accessor :image_encryption_key
2927
+
2840
2928
  # [Output Only] Type of the resource. Always compute#image for images.
2841
2929
  # Corresponds to the JSON property `kind`
2842
2930
  # @return [String]
@@ -2878,6 +2966,11 @@ module Google
2878
2966
  # @return [String]
2879
2967
  attr_accessor :source_disk
2880
2968
 
2969
+ # Represents a customer-supplied encryption key
2970
+ # Corresponds to the JSON property `sourceDiskEncryptionKey`
2971
+ # @return [Google::Apis::ComputeV1::CustomerEncryptionKey]
2972
+ attr_accessor :source_disk_encryption_key
2973
+
2881
2974
  # The ID value of the disk used to create this image. This value may be used to
2882
2975
  # determine whether the image was taken from the current or a previous instance
2883
2976
  # of a given disk name.
@@ -2912,12 +3005,14 @@ module Google
2912
3005
  @disk_size_gb = args[:disk_size_gb] if args.key?(:disk_size_gb)
2913
3006
  @family = args[:family] if args.key?(:family)
2914
3007
  @id = args[:id] if args.key?(:id)
3008
+ @image_encryption_key = args[:image_encryption_key] if args.key?(:image_encryption_key)
2915
3009
  @kind = args[:kind] if args.key?(:kind)
2916
3010
  @licenses = args[:licenses] if args.key?(:licenses)
2917
3011
  @name = args[:name] if args.key?(:name)
2918
3012
  @raw_disk = args[:raw_disk] if args.key?(:raw_disk)
2919
3013
  @self_link = args[:self_link] if args.key?(:self_link)
2920
3014
  @source_disk = args[:source_disk] if args.key?(:source_disk)
3015
+ @source_disk_encryption_key = args[:source_disk_encryption_key] if args.key?(:source_disk_encryption_key)
2921
3016
  @source_disk_id = args[:source_disk_id] if args.key?(:source_disk_id)
2922
3017
  @source_type = args[:source_type] if args.key?(:source_type)
2923
3018
  @status = args[:status] if args.key?(:status)
@@ -3104,13 +3199,14 @@ module Google
3104
3199
  # A list of service accounts, with their specified scopes, authorized for this
3105
3200
  # instance. Service accounts generate access tokens that can be accessed through
3106
3201
  # the metadata server and used to authenticate applications on the instance. See
3107
- # Authenticating from Google Compute Engine for more information.
3202
+ # Service Accounts for more information.
3108
3203
  # Corresponds to the JSON property `serviceAccounts`
3109
3204
  # @return [Array<Google::Apis::ComputeV1::ServiceAccount>]
3110
3205
  attr_accessor :service_accounts
3111
3206
 
3112
3207
  # [Output Only] The status of the instance. One of the following values:
3113
- # PROVISIONING, STAGING, RUNNING, STOPPING, and TERMINATED.
3208
+ # PROVISIONING, STAGING, RUNNING, STOPPING, SUSPENDED, SUSPENDING, and
3209
+ # TERMINATED.
3114
3210
  # Corresponds to the JSON property `status`
3115
3211
  # @return [String]
3116
3212
  attr_accessor :status
@@ -4232,8 +4328,8 @@ module Google
4232
4328
  # IP addresses other than their own and receive packets with destination IP
4233
4329
  # addresses other than their own. If these instances will be used as an IP
4234
4330
  # gateway or it will be set as the next-hop in a Route resource, specify true.
4235
- # If unsure, leave this set to false. See the canIpForward documentation for
4236
- # more information.
4331
+ # If unsure, leave this set to false. See the Enable IP forwarding for instances
4332
+ # documentation for more information.
4237
4333
  # Corresponds to the JSON property `canIpForward`
4238
4334
  # @return [Boolean]
4239
4335
  attr_accessor :can_ip_forward
@@ -4577,6 +4673,30 @@ module Google
4577
4673
  end
4578
4674
  end
4579
4675
 
4676
+ #
4677
+ class InstancesStartWithEncryptionKeyRequest
4678
+ include Google::Apis::Core::Hashable
4679
+
4680
+ # Array of disks associated with this instance that are protected with a
4681
+ # customer-supplied encryption key.
4682
+ # In order to start the instance, the disk url and its corresponding key must be
4683
+ # provided.
4684
+ # If the disk is not protected with a customer-supplied encryption key it should
4685
+ # not be specified.
4686
+ # Corresponds to the JSON property `disks`
4687
+ # @return [Array<Google::Apis::ComputeV1::CustomerEncryptionKeyProtectedDisk>]
4688
+ attr_accessor :disks
4689
+
4690
+ def initialize(**args)
4691
+ update!(**args)
4692
+ end
4693
+
4694
+ # Update properties of this object
4695
+ def update!(**args)
4696
+ @disks = args[:disks] if args.key?(:disks)
4697
+ end
4698
+ end
4699
+
4580
4700
  # A license resource.
4581
4701
  class License
4582
4702
  include Google::Apis::Core::Hashable
@@ -4653,6 +4773,13 @@ module Google
4653
4773
  # @return [Fixnum]
4654
4774
  attr_accessor :image_space_gb
4655
4775
 
4776
+ # [Output Only] Whether this machine type has a shared CPU. See Shared-core
4777
+ # machine types for more information.
4778
+ # Corresponds to the JSON property `isSharedCpu`
4779
+ # @return [Boolean]
4780
+ attr_accessor :is_shared_cpu
4781
+ alias_method :is_shared_cpu?, :is_shared_cpu
4782
+
4656
4783
  # [Output Only] The type of the resource. Always compute#machineType for machine
4657
4784
  # types.
4658
4785
  # Corresponds to the JSON property `kind`
@@ -4708,6 +4835,7 @@ module Google
4708
4835
  @guest_cpus = args[:guest_cpus] if args.key?(:guest_cpus)
4709
4836
  @id = args[:id] if args.key?(:id)
4710
4837
  @image_space_gb = args[:image_space_gb] if args.key?(:image_space_gb)
4838
+ @is_shared_cpu = args[:is_shared_cpu] if args.key?(:is_shared_cpu)
4711
4839
  @kind = args[:kind] if args.key?(:kind)
4712
4840
  @maximum_persistent_disks = args[:maximum_persistent_disks] if args.key?(:maximum_persistent_disks)
4713
4841
  @maximum_persistent_disks_size_gb = args[:maximum_persistent_disks_size_gb] if args.key?(:maximum_persistent_disks_size_gb)
@@ -5927,6 +6055,11 @@ module Google
5927
6055
  # @return [String]
5928
6056
  attr_accessor :creation_timestamp
5929
6057
 
6058
+ # [Output Only] Default service account used by VMs running in this project.
6059
+ # Corresponds to the JSON property `defaultServiceAccount`
6060
+ # @return [String]
6061
+ attr_accessor :default_service_account
6062
+
5930
6063
  # An optional textual description of the resource.
5931
6064
  # Corresponds to the JSON property `description`
5932
6065
  # @return [String]
@@ -5979,6 +6112,7 @@ module Google
5979
6112
  def update!(**args)
5980
6113
  @common_instance_metadata = args[:common_instance_metadata] if args.key?(:common_instance_metadata)
5981
6114
  @creation_timestamp = args[:creation_timestamp] if args.key?(:creation_timestamp)
6115
+ @default_service_account = args[:default_service_account] if args.key?(:default_service_account)
5982
6116
  @description = args[:description] if args.key?(:description)
5983
6117
  @enabled_features = args[:enabled_features] if args.key?(:enabled_features)
5984
6118
  @id = args[:id] if args.key?(:id)
@@ -6411,6 +6545,522 @@ module Google
6411
6545
  end
6412
6546
  end
6413
6547
 
6548
+ # Router resource.
6549
+ class Router
6550
+ include Google::Apis::Core::Hashable
6551
+
6552
+ #
6553
+ # Corresponds to the JSON property `bgp`
6554
+ # @return [Google::Apis::ComputeV1::RouterBgp]
6555
+ attr_accessor :bgp
6556
+
6557
+ #
6558
+ # Corresponds to the JSON property `bgpPeers`
6559
+ # @return [Array<Google::Apis::ComputeV1::RouterBgpPeer>]
6560
+ attr_accessor :bgp_peers
6561
+
6562
+ # [Output Only] Creation timestamp in RFC3339 text format.
6563
+ # Corresponds to the JSON property `creationTimestamp`
6564
+ # @return [String]
6565
+ attr_accessor :creation_timestamp
6566
+
6567
+ # An optional description of this resource. Provide this property when you
6568
+ # create the resource.
6569
+ # Corresponds to the JSON property `description`
6570
+ # @return [String]
6571
+ attr_accessor :description
6572
+
6573
+ # [Output Only] The unique identifier for the resource. This identifier is
6574
+ # defined by the server.
6575
+ # Corresponds to the JSON property `id`
6576
+ # @return [String]
6577
+ attr_accessor :id
6578
+
6579
+ #
6580
+ # Corresponds to the JSON property `interfaces`
6581
+ # @return [Array<Google::Apis::ComputeV1::RouterInterface>]
6582
+ attr_accessor :interfaces
6583
+
6584
+ # [Output Only] Type of resource. Always compute#router for routers.
6585
+ # Corresponds to the JSON property `kind`
6586
+ # @return [String]
6587
+ attr_accessor :kind
6588
+
6589
+ # Name of the resource. Provided by the client when the resource is created. The
6590
+ # name must be 1-63 characters long, and comply with RFC1035. Specifically, the
6591
+ # name must be 1-63 characters long and match the regular expression [a-z]([-a-
6592
+ # z0-9]*[a-z0-9])? which means the first character must be a lowercase letter,
6593
+ # and all following characters must be a dash, lowercase letter, or digit,
6594
+ # except the last character, which cannot be a dash.
6595
+ # Corresponds to the JSON property `name`
6596
+ # @return [String]
6597
+ attr_accessor :name
6598
+
6599
+ # URI of the network to which this router belongs.
6600
+ # Corresponds to the JSON property `network`
6601
+ # @return [String]
6602
+ attr_accessor :network
6603
+
6604
+ # [Output Only] URI of the region where the router resides.
6605
+ # Corresponds to the JSON property `region`
6606
+ # @return [String]
6607
+ attr_accessor :region
6608
+
6609
+ # [Output Only] Server-defined URL for the resource.
6610
+ # Corresponds to the JSON property `selfLink`
6611
+ # @return [String]
6612
+ attr_accessor :self_link
6613
+
6614
+ def initialize(**args)
6615
+ update!(**args)
6616
+ end
6617
+
6618
+ # Update properties of this object
6619
+ def update!(**args)
6620
+ @bgp = args[:bgp] if args.key?(:bgp)
6621
+ @bgp_peers = args[:bgp_peers] if args.key?(:bgp_peers)
6622
+ @creation_timestamp = args[:creation_timestamp] if args.key?(:creation_timestamp)
6623
+ @description = args[:description] if args.key?(:description)
6624
+ @id = args[:id] if args.key?(:id)
6625
+ @interfaces = args[:interfaces] if args.key?(:interfaces)
6626
+ @kind = args[:kind] if args.key?(:kind)
6627
+ @name = args[:name] if args.key?(:name)
6628
+ @network = args[:network] if args.key?(:network)
6629
+ @region = args[:region] if args.key?(:region)
6630
+ @self_link = args[:self_link] if args.key?(:self_link)
6631
+ end
6632
+ end
6633
+
6634
+ # Contains a list of routers.
6635
+ class RouterAggregatedList
6636
+ include Google::Apis::Core::Hashable
6637
+
6638
+ # [Output Only] The unique identifier for the resource. This identifier is
6639
+ # defined by the server.
6640
+ # Corresponds to the JSON property `id`
6641
+ # @return [String]
6642
+ attr_accessor :id
6643
+
6644
+ # A map of scoped router lists.
6645
+ # Corresponds to the JSON property `items`
6646
+ # @return [Hash<String,Google::Apis::ComputeV1::RoutersScopedList>]
6647
+ attr_accessor :items
6648
+
6649
+ # Type of resource.
6650
+ # Corresponds to the JSON property `kind`
6651
+ # @return [String]
6652
+ attr_accessor :kind
6653
+
6654
+ # [Output Only] This token allows you to get the next page of results for list
6655
+ # requests. If the number of results is larger than maxResults, use the
6656
+ # nextPageToken as a value for the query parameter pageToken in the next list
6657
+ # request. Subsequent list requests will have their own nextPageToken to
6658
+ # continue paging through the results.
6659
+ # Corresponds to the JSON property `nextPageToken`
6660
+ # @return [String]
6661
+ attr_accessor :next_page_token
6662
+
6663
+ # [Output Only] Server-defined URL for this resource.
6664
+ # Corresponds to the JSON property `selfLink`
6665
+ # @return [String]
6666
+ attr_accessor :self_link
6667
+
6668
+ def initialize(**args)
6669
+ update!(**args)
6670
+ end
6671
+
6672
+ # Update properties of this object
6673
+ def update!(**args)
6674
+ @id = args[:id] if args.key?(:id)
6675
+ @items = args[:items] if args.key?(:items)
6676
+ @kind = args[:kind] if args.key?(:kind)
6677
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
6678
+ @self_link = args[:self_link] if args.key?(:self_link)
6679
+ end
6680
+ end
6681
+
6682
+ #
6683
+ class RouterBgp
6684
+ include Google::Apis::Core::Hashable
6685
+
6686
+ # Local BGP Autonomous System Number (ASN). Must be an RFC6996 private ASN,
6687
+ # either 16-bit or 32-bit. The value will be fixed for this router resource. All
6688
+ # VPN tunnels that link to this router will have the same local ASN.
6689
+ # Corresponds to the JSON property `asn`
6690
+ # @return [Fixnum]
6691
+ attr_accessor :asn
6692
+
6693
+ def initialize(**args)
6694
+ update!(**args)
6695
+ end
6696
+
6697
+ # Update properties of this object
6698
+ def update!(**args)
6699
+ @asn = args[:asn] if args.key?(:asn)
6700
+ end
6701
+ end
6702
+
6703
+ # BGP information that needs to be configured into the routing stack to
6704
+ # establish the BGP peering. It must specify peer ASN and either interface name,
6705
+ # IP, or peer IP. Reference: https://tools.ietf.org/html/rfc4273
6706
+ class RouterBgpPeer
6707
+ include Google::Apis::Core::Hashable
6708
+
6709
+ # The priority of routes advertised to this BGP peer. In the case where there is
6710
+ # more than one matching route of maximum length, the routes with lowest
6711
+ # priority value win.
6712
+ # Corresponds to the JSON property `advertisedRoutePriority`
6713
+ # @return [Fixnum]
6714
+ attr_accessor :advertised_route_priority
6715
+
6716
+ # Name of the interface the BGP peer is associated with.
6717
+ # Corresponds to the JSON property `interfaceName`
6718
+ # @return [String]
6719
+ attr_accessor :interface_name
6720
+
6721
+ # IP address of the interface inside Google Cloud Platform.
6722
+ # Corresponds to the JSON property `ipAddress`
6723
+ # @return [String]
6724
+ attr_accessor :ip_address
6725
+
6726
+ # Name of this BGP peer. The name must be 1-63 characters long and comply with
6727
+ # RFC1035.
6728
+ # Corresponds to the JSON property `name`
6729
+ # @return [String]
6730
+ attr_accessor :name
6731
+
6732
+ # Peer BGP Autonomous System Number (ASN). For VPN use case, this value can be
6733
+ # different for every tunnel.
6734
+ # Corresponds to the JSON property `peerAsn`
6735
+ # @return [Fixnum]
6736
+ attr_accessor :peer_asn
6737
+
6738
+ # IP address of the BGP interface outside Google cloud.
6739
+ # Corresponds to the JSON property `peerIpAddress`
6740
+ # @return [String]
6741
+ attr_accessor :peer_ip_address
6742
+
6743
+ def initialize(**args)
6744
+ update!(**args)
6745
+ end
6746
+
6747
+ # Update properties of this object
6748
+ def update!(**args)
6749
+ @advertised_route_priority = args[:advertised_route_priority] if args.key?(:advertised_route_priority)
6750
+ @interface_name = args[:interface_name] if args.key?(:interface_name)
6751
+ @ip_address = args[:ip_address] if args.key?(:ip_address)
6752
+ @name = args[:name] if args.key?(:name)
6753
+ @peer_asn = args[:peer_asn] if args.key?(:peer_asn)
6754
+ @peer_ip_address = args[:peer_ip_address] if args.key?(:peer_ip_address)
6755
+ end
6756
+ end
6757
+
6758
+ # Router interfaces. Each interface requires either one linked resource (e.g.
6759
+ # linked_vpn_tunnel) or IP address + range (specified in ip_range).
6760
+ class RouterInterface
6761
+ include Google::Apis::Core::Hashable
6762
+
6763
+ # IP address and range of the interface. The IP range must be in the RFC3927
6764
+ # link-local IP space. The value must be a CIDR-formatted string, for example:
6765
+ # 169.254.0.1/30. NOTE: Do not truncate the address as it represents the IP
6766
+ # address of the interface.
6767
+ # Corresponds to the JSON property `ipRange`
6768
+ # @return [String]
6769
+ attr_accessor :ip_range
6770
+
6771
+ # URI of linked VPN tunnel. It must be in the same region as the router. Each
6772
+ # interface can have at most one linked resource.
6773
+ # Corresponds to the JSON property `linkedVpnTunnel`
6774
+ # @return [String]
6775
+ attr_accessor :linked_vpn_tunnel
6776
+
6777
+ # Name of this interface entry. The name must be 1-63 characters long and comply
6778
+ # with RFC1035.
6779
+ # Corresponds to the JSON property `name`
6780
+ # @return [String]
6781
+ attr_accessor :name
6782
+
6783
+ def initialize(**args)
6784
+ update!(**args)
6785
+ end
6786
+
6787
+ # Update properties of this object
6788
+ def update!(**args)
6789
+ @ip_range = args[:ip_range] if args.key?(:ip_range)
6790
+ @linked_vpn_tunnel = args[:linked_vpn_tunnel] if args.key?(:linked_vpn_tunnel)
6791
+ @name = args[:name] if args.key?(:name)
6792
+ end
6793
+ end
6794
+
6795
+ # Contains a list of Router resources.
6796
+ class RouterList
6797
+ include Google::Apis::Core::Hashable
6798
+
6799
+ # [Output Only] The unique identifier for the resource. This identifier is
6800
+ # defined by the server.
6801
+ # Corresponds to the JSON property `id`
6802
+ # @return [String]
6803
+ attr_accessor :id
6804
+
6805
+ # A list of Router resources.
6806
+ # Corresponds to the JSON property `items`
6807
+ # @return [Array<Google::Apis::ComputeV1::Router>]
6808
+ attr_accessor :items
6809
+
6810
+ # [Output Only] Type of resource. Always compute#router for routers.
6811
+ # Corresponds to the JSON property `kind`
6812
+ # @return [String]
6813
+ attr_accessor :kind
6814
+
6815
+ # [Output Only] This token allows you to get the next page of results for list
6816
+ # requests. If the number of results is larger than maxResults, use the
6817
+ # nextPageToken as a value for the query parameter pageToken in the next list
6818
+ # request. Subsequent list requests will have their own nextPageToken to
6819
+ # continue paging through the results.
6820
+ # Corresponds to the JSON property `nextPageToken`
6821
+ # @return [String]
6822
+ attr_accessor :next_page_token
6823
+
6824
+ # [Output Only] Server-defined URL for the resource.
6825
+ # Corresponds to the JSON property `selfLink`
6826
+ # @return [String]
6827
+ attr_accessor :self_link
6828
+
6829
+ def initialize(**args)
6830
+ update!(**args)
6831
+ end
6832
+
6833
+ # Update properties of this object
6834
+ def update!(**args)
6835
+ @id = args[:id] if args.key?(:id)
6836
+ @items = args[:items] if args.key?(:items)
6837
+ @kind = args[:kind] if args.key?(:kind)
6838
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
6839
+ @self_link = args[:self_link] if args.key?(:self_link)
6840
+ end
6841
+ end
6842
+
6843
+ #
6844
+ class RouterStatus
6845
+ include Google::Apis::Core::Hashable
6846
+
6847
+ # Best routes for this router's network.
6848
+ # Corresponds to the JSON property `bestRoutes`
6849
+ # @return [Array<Google::Apis::ComputeV1::Route>]
6850
+ attr_accessor :best_routes
6851
+
6852
+ #
6853
+ # Corresponds to the JSON property `bgpPeerStatus`
6854
+ # @return [Array<Google::Apis::ComputeV1::RouterStatusBgpPeerStatus>]
6855
+ attr_accessor :bgp_peer_status
6856
+
6857
+ # URI of the network to which this router belongs.
6858
+ # Corresponds to the JSON property `network`
6859
+ # @return [String]
6860
+ attr_accessor :network
6861
+
6862
+ def initialize(**args)
6863
+ update!(**args)
6864
+ end
6865
+
6866
+ # Update properties of this object
6867
+ def update!(**args)
6868
+ @best_routes = args[:best_routes] if args.key?(:best_routes)
6869
+ @bgp_peer_status = args[:bgp_peer_status] if args.key?(:bgp_peer_status)
6870
+ @network = args[:network] if args.key?(:network)
6871
+ end
6872
+ end
6873
+
6874
+ #
6875
+ class RouterStatusBgpPeerStatus
6876
+ include Google::Apis::Core::Hashable
6877
+
6878
+ # Routes that were advertised to the remote BGP peer
6879
+ # Corresponds to the JSON property `advertisedRoutes`
6880
+ # @return [Array<Google::Apis::ComputeV1::Route>]
6881
+ attr_accessor :advertised_routes
6882
+
6883
+ # IP address of the local BGP interface.
6884
+ # Corresponds to the JSON property `ipAddress`
6885
+ # @return [String]
6886
+ attr_accessor :ip_address
6887
+
6888
+ # URL of the VPN tunnel that this BGP peer controls.
6889
+ # Corresponds to the JSON property `linkedVpnTunnel`
6890
+ # @return [String]
6891
+ attr_accessor :linked_vpn_tunnel
6892
+
6893
+ # Name of this BGP peer. Unique within the Routers resource.
6894
+ # Corresponds to the JSON property `name`
6895
+ # @return [String]
6896
+ attr_accessor :name
6897
+
6898
+ # Number of routes learned from the remote BGP Peer.
6899
+ # Corresponds to the JSON property `numLearnedRoutes`
6900
+ # @return [Fixnum]
6901
+ attr_accessor :num_learned_routes
6902
+
6903
+ # IP address of the remote BGP interface.
6904
+ # Corresponds to the JSON property `peerIpAddress`
6905
+ # @return [String]
6906
+ attr_accessor :peer_ip_address
6907
+
6908
+ # BGP state as specified in RFC1771.
6909
+ # Corresponds to the JSON property `state`
6910
+ # @return [String]
6911
+ attr_accessor :state
6912
+
6913
+ # Status of the BGP peer: `UP, DOWN`
6914
+ # Corresponds to the JSON property `status`
6915
+ # @return [String]
6916
+ attr_accessor :status
6917
+
6918
+ # Time this session has been up. Format: 14 years, 51 weeks, 6 days, 23 hours,
6919
+ # 59 minutes, 59 seconds
6920
+ # Corresponds to the JSON property `uptime`
6921
+ # @return [String]
6922
+ attr_accessor :uptime
6923
+
6924
+ # Time this session has been up, in seconds. Format: 145
6925
+ # Corresponds to the JSON property `uptimeSeconds`
6926
+ # @return [String]
6927
+ attr_accessor :uptime_seconds
6928
+
6929
+ def initialize(**args)
6930
+ update!(**args)
6931
+ end
6932
+
6933
+ # Update properties of this object
6934
+ def update!(**args)
6935
+ @advertised_routes = args[:advertised_routes] if args.key?(:advertised_routes)
6936
+ @ip_address = args[:ip_address] if args.key?(:ip_address)
6937
+ @linked_vpn_tunnel = args[:linked_vpn_tunnel] if args.key?(:linked_vpn_tunnel)
6938
+ @name = args[:name] if args.key?(:name)
6939
+ @num_learned_routes = args[:num_learned_routes] if args.key?(:num_learned_routes)
6940
+ @peer_ip_address = args[:peer_ip_address] if args.key?(:peer_ip_address)
6941
+ @state = args[:state] if args.key?(:state)
6942
+ @status = args[:status] if args.key?(:status)
6943
+ @uptime = args[:uptime] if args.key?(:uptime)
6944
+ @uptime_seconds = args[:uptime_seconds] if args.key?(:uptime_seconds)
6945
+ end
6946
+ end
6947
+
6948
+ #
6949
+ class RouterStatusResponse
6950
+ include Google::Apis::Core::Hashable
6951
+
6952
+ # Type of resource.
6953
+ # Corresponds to the JSON property `kind`
6954
+ # @return [String]
6955
+ attr_accessor :kind
6956
+
6957
+ #
6958
+ # Corresponds to the JSON property `result`
6959
+ # @return [Google::Apis::ComputeV1::RouterStatus]
6960
+ attr_accessor :result
6961
+
6962
+ def initialize(**args)
6963
+ update!(**args)
6964
+ end
6965
+
6966
+ # Update properties of this object
6967
+ def update!(**args)
6968
+ @kind = args[:kind] if args.key?(:kind)
6969
+ @result = args[:result] if args.key?(:result)
6970
+ end
6971
+ end
6972
+
6973
+ #
6974
+ class RoutersScopedList
6975
+ include Google::Apis::Core::Hashable
6976
+
6977
+ # List of routers contained in this scope.
6978
+ # Corresponds to the JSON property `routers`
6979
+ # @return [Array<Google::Apis::ComputeV1::Router>]
6980
+ attr_accessor :routers
6981
+
6982
+ # Informational warning which replaces the list of routers when the list is
6983
+ # empty.
6984
+ # Corresponds to the JSON property `warning`
6985
+ # @return [Google::Apis::ComputeV1::RoutersScopedList::Warning]
6986
+ attr_accessor :warning
6987
+
6988
+ def initialize(**args)
6989
+ update!(**args)
6990
+ end
6991
+
6992
+ # Update properties of this object
6993
+ def update!(**args)
6994
+ @routers = args[:routers] if args.key?(:routers)
6995
+ @warning = args[:warning] if args.key?(:warning)
6996
+ end
6997
+
6998
+ # Informational warning which replaces the list of routers when the list is
6999
+ # empty.
7000
+ class Warning
7001
+ include Google::Apis::Core::Hashable
7002
+
7003
+ # [Output Only] A warning code, if applicable. For example, Compute Engine
7004
+ # returns NO_RESULTS_ON_PAGE if there are no results in the response.
7005
+ # Corresponds to the JSON property `code`
7006
+ # @return [String]
7007
+ attr_accessor :code
7008
+
7009
+ # [Output Only] Metadata about this warning in key: value format. For example:
7010
+ # "data": [ ` "key": "scope", "value": "zones/us-east1-d" `
7011
+ # Corresponds to the JSON property `data`
7012
+ # @return [Array<Google::Apis::ComputeV1::RoutersScopedList::Warning::Datum>]
7013
+ attr_accessor :data
7014
+
7015
+ # [Output Only] A human-readable description of the warning code.
7016
+ # Corresponds to the JSON property `message`
7017
+ # @return [String]
7018
+ attr_accessor :message
7019
+
7020
+ def initialize(**args)
7021
+ update!(**args)
7022
+ end
7023
+
7024
+ # Update properties of this object
7025
+ def update!(**args)
7026
+ @code = args[:code] if args.key?(:code)
7027
+ @data = args[:data] if args.key?(:data)
7028
+ @message = args[:message] if args.key?(:message)
7029
+ end
7030
+
7031
+ #
7032
+ class Datum
7033
+ include Google::Apis::Core::Hashable
7034
+
7035
+ # [Output Only] A key that provides more detail on the warning being returned.
7036
+ # For example, for warnings where there are no results in a list request for a
7037
+ # particular zone, this key might be scope and the key value might be the zone
7038
+ # name. Other examples might be a key indicating a deprecated resource and a
7039
+ # suggested replacement, or a warning about invalid network settings (for
7040
+ # example, if an instance attempts to perform IP forwarding but is not enabled
7041
+ # for IP forwarding).
7042
+ # Corresponds to the JSON property `key`
7043
+ # @return [String]
7044
+ attr_accessor :key
7045
+
7046
+ # [Output Only] A warning data value corresponding to the key.
7047
+ # Corresponds to the JSON property `value`
7048
+ # @return [String]
7049
+ attr_accessor :value
7050
+
7051
+ def initialize(**args)
7052
+ update!(**args)
7053
+ end
7054
+
7055
+ # Update properties of this object
7056
+ def update!(**args)
7057
+ @key = args[:key] if args.key?(:key)
7058
+ @value = args[:value] if args.key?(:value)
7059
+ end
7060
+ end
7061
+ end
7062
+ end
7063
+
6414
7064
  # Sets the scheduling options for an Instance.
6415
7065
  class Scheduling
6416
7066
  include Google::Apis::Core::Hashable
@@ -6561,11 +7211,21 @@ module Google
6561
7211
  # @return [String]
6562
7212
  attr_accessor :self_link
6563
7213
 
7214
+ # Represents a customer-supplied encryption key
7215
+ # Corresponds to the JSON property `snapshotEncryptionKey`
7216
+ # @return [Google::Apis::ComputeV1::CustomerEncryptionKey]
7217
+ attr_accessor :snapshot_encryption_key
7218
+
6564
7219
  # [Output Only] The source disk used to create this snapshot.
6565
7220
  # Corresponds to the JSON property `sourceDisk`
6566
7221
  # @return [String]
6567
7222
  attr_accessor :source_disk
6568
7223
 
7224
+ # Represents a customer-supplied encryption key
7225
+ # Corresponds to the JSON property `sourceDiskEncryptionKey`
7226
+ # @return [Google::Apis::ComputeV1::CustomerEncryptionKey]
7227
+ attr_accessor :source_disk_encryption_key
7228
+
6569
7229
  # [Output Only] The ID value of the disk used to create this snapshot. This
6570
7230
  # value may be used to determine whether the snapshot was taken from the current
6571
7231
  # or a previous instance of a given disk name.
@@ -6608,7 +7268,9 @@ module Google
6608
7268
  @licenses = args[:licenses] if args.key?(:licenses)
6609
7269
  @name = args[:name] if args.key?(:name)
6610
7270
  @self_link = args[:self_link] if args.key?(:self_link)
7271
+ @snapshot_encryption_key = args[:snapshot_encryption_key] if args.key?(:snapshot_encryption_key)
6611
7272
  @source_disk = args[:source_disk] if args.key?(:source_disk)
7273
+ @source_disk_encryption_key = args[:source_disk_encryption_key] if args.key?(:source_disk_encryption_key)
6612
7274
  @source_disk_id = args[:source_disk_id] if args.key?(:source_disk_id)
6613
7275
  @status = args[:status] if args.key?(:status)
6614
7276
  @storage_bytes = args[:storage_bytes] if args.key?(:storage_bytes)
@@ -8748,6 +9410,18 @@ module Google
8748
9410
  # @return [String]
8749
9411
  attr_accessor :region
8750
9412
 
9413
+ # Remote traffic selectors to use when establishing the VPN tunnel with peer VPN
9414
+ # gateway. The value should be a CIDR formatted string, for example: 192.168.0.0/
9415
+ # 16. The ranges should be disjoint.
9416
+ # Corresponds to the JSON property `remoteTrafficSelector`
9417
+ # @return [Array<String>]
9418
+ attr_accessor :remote_traffic_selector
9419
+
9420
+ # URL of router resource to be used for dynamic routing.
9421
+ # Corresponds to the JSON property `router`
9422
+ # @return [String]
9423
+ attr_accessor :router
9424
+
8751
9425
  # [Output Only] Server-defined URL for the resource.
8752
9426
  # Corresponds to the JSON property `selfLink`
8753
9427
  # @return [String]
@@ -8791,6 +9465,8 @@ module Google
8791
9465
  @name = args[:name] if args.key?(:name)
8792
9466
  @peer_ip = args[:peer_ip] if args.key?(:peer_ip)
8793
9467
  @region = args[:region] if args.key?(:region)
9468
+ @remote_traffic_selector = args[:remote_traffic_selector] if args.key?(:remote_traffic_selector)
9469
+ @router = args[:router] if args.key?(:router)
8794
9470
  @self_link = args[:self_link] if args.key?(:self_link)
8795
9471
  @shared_secret = args[:shared_secret] if args.key?(:shared_secret)
8796
9472
  @shared_secret_hash = args[:shared_secret_hash] if args.key?(:shared_secret_hash)