google-apis-storage_v1 0.19.0 → 0.31.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -22,6 +22,121 @@ module Google
22
22
  module Apis
23
23
  module StorageV1
24
24
 
25
+ # An Anywhere Cache instance.
26
+ class AnywhereCache
27
+ include Google::Apis::Core::Hashable
28
+
29
+ # The cache-level entry admission policy.
30
+ # Corresponds to the JSON property `admissionPolicy`
31
+ # @return [String]
32
+ attr_accessor :admission_policy
33
+
34
+ # The ID of the Anywhere cache instance.
35
+ # Corresponds to the JSON property `anywhereCacheId`
36
+ # @return [String]
37
+ attr_accessor :anywhere_cache_id
38
+
39
+ # The name of the bucket containing this cache instance.
40
+ # Corresponds to the JSON property `bucket`
41
+ # @return [String]
42
+ attr_accessor :bucket
43
+
44
+ # The creation time of the cache instance in RFC 3339 format.
45
+ # Corresponds to the JSON property `createTime`
46
+ # @return [DateTime]
47
+ attr_accessor :create_time
48
+
49
+ # The ID of the resource, including the project number, bucket name and anywhere
50
+ # cache ID.
51
+ # Corresponds to the JSON property `id`
52
+ # @return [String]
53
+ attr_accessor :id
54
+
55
+ # The kind of item this is. For Anywhere Cache, this is always storage#
56
+ # anywhereCache.
57
+ # Corresponds to the JSON property `kind`
58
+ # @return [String]
59
+ attr_accessor :kind
60
+
61
+ # True if the cache instance has an active Update long-running operation.
62
+ # Corresponds to the JSON property `pendingUpdate`
63
+ # @return [Boolean]
64
+ attr_accessor :pending_update
65
+ alias_method :pending_update?, :pending_update
66
+
67
+ # The link to this cache instance.
68
+ # Corresponds to the JSON property `selfLink`
69
+ # @return [String]
70
+ attr_accessor :self_link
71
+
72
+ # The current state of the cache instance.
73
+ # Corresponds to the JSON property `state`
74
+ # @return [String]
75
+ attr_accessor :state
76
+
77
+ # The TTL of all cache entries in whole seconds. e.g., "7200s".
78
+ # Corresponds to the JSON property `ttl`
79
+ # @return [String]
80
+ attr_accessor :ttl
81
+
82
+ # The modification time of the cache instance metadata in RFC 3339 format.
83
+ # Corresponds to the JSON property `updateTime`
84
+ # @return [DateTime]
85
+ attr_accessor :update_time
86
+
87
+ def initialize(**args)
88
+ update!(**args)
89
+ end
90
+
91
+ # Update properties of this object
92
+ def update!(**args)
93
+ @admission_policy = args[:admission_policy] if args.key?(:admission_policy)
94
+ @anywhere_cache_id = args[:anywhere_cache_id] if args.key?(:anywhere_cache_id)
95
+ @bucket = args[:bucket] if args.key?(:bucket)
96
+ @create_time = args[:create_time] if args.key?(:create_time)
97
+ @id = args[:id] if args.key?(:id)
98
+ @kind = args[:kind] if args.key?(:kind)
99
+ @pending_update = args[:pending_update] if args.key?(:pending_update)
100
+ @self_link = args[:self_link] if args.key?(:self_link)
101
+ @state = args[:state] if args.key?(:state)
102
+ @ttl = args[:ttl] if args.key?(:ttl)
103
+ @update_time = args[:update_time] if args.key?(:update_time)
104
+ end
105
+ end
106
+
107
+ # A list of Anywhere Caches.
108
+ class AnywhereCaches
109
+ include Google::Apis::Core::Hashable
110
+
111
+ # The list of items.
112
+ # Corresponds to the JSON property `items`
113
+ # @return [Array<Google::Apis::StorageV1::AnywhereCache>]
114
+ attr_accessor :items
115
+
116
+ # The kind of item this is. For lists of Anywhere Caches, this is always storage#
117
+ # anywhereCaches.
118
+ # Corresponds to the JSON property `kind`
119
+ # @return [String]
120
+ attr_accessor :kind
121
+
122
+ # The continuation token, used to page through large result sets. Provide this
123
+ # value in a subsequent request to return the next page of results.
124
+ # Corresponds to the JSON property `nextPageToken`
125
+ # @return [String]
126
+ attr_accessor :next_page_token
127
+
128
+ def initialize(**args)
129
+ update!(**args)
130
+ end
131
+
132
+ # Update properties of this object
133
+ def update!(**args)
134
+ @items = args[:items] if args.key?(:items)
135
+ @kind = args[:kind] if args.key?(:kind)
136
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
137
+ end
138
+ end
139
+
25
140
  # A bucket.
26
141
  class Bucket
27
142
  include Google::Apis::Core::Hashable
@@ -137,6 +252,11 @@ module Google
137
252
  # @return [String]
138
253
  attr_accessor :name
139
254
 
255
+ # The bucket's object retention config.
256
+ # Corresponds to the JSON property `objectRetention`
257
+ # @return [Google::Apis::StorageV1::Bucket::ObjectRetention]
258
+ attr_accessor :object_retention
259
+
140
260
  # The owner of the bucket. This is always the project team's owner group.
141
261
  # Corresponds to the JSON property `owner`
142
262
  # @return [Google::Apis::StorageV1::Bucket::Owner]
@@ -177,6 +297,12 @@ module Google
177
297
  # @return [String]
178
298
  attr_accessor :self_link
179
299
 
300
+ # The bucket's soft delete policy, which defines the period of time that soft-
301
+ # deleted objects will be retained, and cannot be permanently deleted.
302
+ # Corresponds to the JSON property `softDeletePolicy`
303
+ # @return [Google::Apis::StorageV1::Bucket::SoftDeletePolicy]
304
+ attr_accessor :soft_delete_policy
305
+
180
306
  # The bucket's default storage class, used whenever no storageClass is specified
181
307
  # for a newly-created object. This defines how objects in the bucket are stored
182
308
  # and determines the SLA and the cost of storage. Values include MULTI_REGIONAL,
@@ -235,12 +361,14 @@ module Google
235
361
  @logging = args[:logging] if args.key?(:logging)
236
362
  @metageneration = args[:metageneration] if args.key?(:metageneration)
237
363
  @name = args[:name] if args.key?(:name)
364
+ @object_retention = args[:object_retention] if args.key?(:object_retention)
238
365
  @owner = args[:owner] if args.key?(:owner)
239
366
  @project_number = args[:project_number] if args.key?(:project_number)
240
367
  @retention_policy = args[:retention_policy] if args.key?(:retention_policy)
241
368
  @rpo = args[:rpo] if args.key?(:rpo)
242
369
  @satisfies_pzs = args[:satisfies_pzs] if args.key?(:satisfies_pzs)
243
370
  @self_link = args[:self_link] if args.key?(:self_link)
371
+ @soft_delete_policy = args[:soft_delete_policy] if args.key?(:soft_delete_policy)
244
372
  @storage_class = args[:storage_class] if args.key?(:storage_class)
245
373
  @time_created = args[:time_created] if args.key?(:time_created)
246
374
  @updated = args[:updated] if args.key?(:updated)
@@ -258,6 +386,19 @@ module Google
258
386
  attr_accessor :enabled
259
387
  alias_method :enabled?, :enabled
260
388
 
389
+ # The storage class that objects in the bucket eventually transition to if they
390
+ # are not read for a certain length of time. Valid values are NEARLINE and
391
+ # ARCHIVE.
392
+ # Corresponds to the JSON property `terminalStorageClass`
393
+ # @return [String]
394
+ attr_accessor :terminal_storage_class
395
+
396
+ # A date and time in RFC 3339 format representing the time of the most recent
397
+ # update to "terminalStorageClass".
398
+ # Corresponds to the JSON property `terminalStorageClassUpdateTime`
399
+ # @return [DateTime]
400
+ attr_accessor :terminal_storage_class_update_time
401
+
261
402
  # A date and time in RFC 3339 format representing the instant at which "enabled"
262
403
  # was last toggled.
263
404
  # Corresponds to the JSON property `toggleTime`
@@ -271,6 +412,8 @@ module Google
271
412
  # Update properties of this object
272
413
  def update!(**args)
273
414
  @enabled = args[:enabled] if args.key?(:enabled)
415
+ @terminal_storage_class = args[:terminal_storage_class] if args.key?(:terminal_storage_class)
416
+ @terminal_storage_class_update_time = args[:terminal_storage_class_update_time] if args.key?(:terminal_storage_class_update_time)
274
417
  @toggle_time = args[:toggle_time] if args.key?(:toggle_time)
275
418
  end
276
419
  end
@@ -682,6 +825,25 @@ module Google
682
825
  end
683
826
  end
684
827
 
828
+ # The bucket's object retention config.
829
+ class ObjectRetention
830
+ include Google::Apis::Core::Hashable
831
+
832
+ # The bucket's object retention mode. Can be Enabled.
833
+ # Corresponds to the JSON property `mode`
834
+ # @return [String]
835
+ attr_accessor :mode
836
+
837
+ def initialize(**args)
838
+ update!(**args)
839
+ end
840
+
841
+ # Update properties of this object
842
+ def update!(**args)
843
+ @mode = args[:mode] if args.key?(:mode)
844
+ end
845
+ end
846
+
685
847
  # The owner of the bucket. This is always the project team's owner group.
686
848
  class Owner
687
849
  include Google::Apis::Core::Hashable
@@ -751,6 +913,34 @@ module Google
751
913
  end
752
914
  end
753
915
 
916
+ # The bucket's soft delete policy, which defines the period of time that soft-
917
+ # deleted objects will be retained, and cannot be permanently deleted.
918
+ class SoftDeletePolicy
919
+ include Google::Apis::Core::Hashable
920
+
921
+ # Server-determined value that indicates the time from which the policy, or one
922
+ # with a greater retention, was effective. This value is in RFC 3339 format.
923
+ # Corresponds to the JSON property `effectiveTime`
924
+ # @return [DateTime]
925
+ attr_accessor :effective_time
926
+
927
+ # The duration in seconds that soft-deleted objects in the bucket will be
928
+ # retained and cannot be permanently deleted.
929
+ # Corresponds to the JSON property `retentionDurationSeconds`
930
+ # @return [Fixnum]
931
+ attr_accessor :retention_duration_seconds
932
+
933
+ def initialize(**args)
934
+ update!(**args)
935
+ end
936
+
937
+ # Update properties of this object
938
+ def update!(**args)
939
+ @effective_time = args[:effective_time] if args.key?(:effective_time)
940
+ @retention_duration_seconds = args[:retention_duration_seconds] if args.key?(:retention_duration_seconds)
941
+ end
942
+ end
943
+
754
944
  # The bucket's versioning configuration.
755
945
  class Versioning
756
946
  include Google::Apis::Core::Hashable
@@ -979,6 +1169,59 @@ module Google
979
1169
  end
980
1170
  end
981
1171
 
1172
+ # A bulk restore objects request.
1173
+ class BulkRestoreObjectsRequest
1174
+ include Google::Apis::Core::Hashable
1175
+
1176
+ # If false (default), the restore will not overwrite live objects with the same
1177
+ # name at the destination. This means some deleted objects may be skipped. If
1178
+ # true, live objects will be overwritten resulting in a noncurrent object (if
1179
+ # versioning is enabled). If versioning is not enabled, overwriting the object
1180
+ # will result in a soft-deleted object. In either case, if a noncurrent object
1181
+ # already exists with the same name, a live version can be written without issue.
1182
+ # Corresponds to the JSON property `allowOverwrite`
1183
+ # @return [Boolean]
1184
+ attr_accessor :allow_overwrite
1185
+ alias_method :allow_overwrite?, :allow_overwrite
1186
+
1187
+ # If true, copies the source object's ACL; otherwise, uses the bucket's default
1188
+ # object ACL. The default is false.
1189
+ # Corresponds to the JSON property `copySourceAcl`
1190
+ # @return [Boolean]
1191
+ attr_accessor :copy_source_acl
1192
+ alias_method :copy_source_acl?, :copy_source_acl
1193
+
1194
+ # Restores only the objects matching any of the specified glob(s). If this
1195
+ # parameter is not specified, all objects will be restored within the specified
1196
+ # time range.
1197
+ # Corresponds to the JSON property `matchGlobs`
1198
+ # @return [Array<String>]
1199
+ attr_accessor :match_globs
1200
+
1201
+ # Restores only the objects that were soft-deleted after this time.
1202
+ # Corresponds to the JSON property `softDeletedAfterTime`
1203
+ # @return [DateTime]
1204
+ attr_accessor :soft_deleted_after_time
1205
+
1206
+ # Restores only the objects that were soft-deleted before this time.
1207
+ # Corresponds to the JSON property `softDeletedBeforeTime`
1208
+ # @return [DateTime]
1209
+ attr_accessor :soft_deleted_before_time
1210
+
1211
+ def initialize(**args)
1212
+ update!(**args)
1213
+ end
1214
+
1215
+ # Update properties of this object
1216
+ def update!(**args)
1217
+ @allow_overwrite = args[:allow_overwrite] if args.key?(:allow_overwrite)
1218
+ @copy_source_acl = args[:copy_source_acl] if args.key?(:copy_source_acl)
1219
+ @match_globs = args[:match_globs] if args.key?(:match_globs)
1220
+ @soft_deleted_after_time = args[:soft_deleted_after_time] if args.key?(:soft_deleted_after_time)
1221
+ @soft_deleted_before_time = args[:soft_deleted_before_time] if args.key?(:soft_deleted_before_time)
1222
+ end
1223
+ end
1224
+
982
1225
  # An notification channel used to watch for resource changes.
983
1226
  class Channel
984
1227
  include Google::Apis::Core::Hashable
@@ -1184,6 +1427,131 @@ module Google
1184
1427
  end
1185
1428
  end
1186
1429
 
1430
+ # The response message for storage.buckets.operations.list.
1431
+ class GoogleLongrunningListOperationsResponse
1432
+ include Google::Apis::Core::Hashable
1433
+
1434
+ # The continuation token, used to page through large result sets. Provide this
1435
+ # value in a subsequent request to return the next page of results.
1436
+ # Corresponds to the JSON property `nextPageToken`
1437
+ # @return [String]
1438
+ attr_accessor :next_page_token
1439
+
1440
+ # A list of operations that matches the specified filter in the request.
1441
+ # Corresponds to the JSON property `operations`
1442
+ # @return [Array<Google::Apis::StorageV1::GoogleLongrunningOperation>]
1443
+ attr_accessor :operations
1444
+
1445
+ def initialize(**args)
1446
+ update!(**args)
1447
+ end
1448
+
1449
+ # Update properties of this object
1450
+ def update!(**args)
1451
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
1452
+ @operations = args[:operations] if args.key?(:operations)
1453
+ end
1454
+ end
1455
+
1456
+ # This resource represents a long-running operation that is the result of a
1457
+ # network API call.
1458
+ class GoogleLongrunningOperation
1459
+ include Google::Apis::Core::Hashable
1460
+
1461
+ # If the value is "false", it means the operation is still in progress. If "true"
1462
+ # , the operation is completed, and either "error" or "response" is available.
1463
+ # Corresponds to the JSON property `done`
1464
+ # @return [Boolean]
1465
+ attr_accessor :done
1466
+ alias_method :done?, :done
1467
+
1468
+ # The "Status" type defines a logical error model that is suitable for different
1469
+ # programming environments, including REST APIs and RPC APIs. It is used by [
1470
+ # gRPC](https://github.com/grpc). Each "Status" message contains three pieces of
1471
+ # data: error code, error message, and error details. You can find out more
1472
+ # about this error model and how to work with it in the [API Design Guide](https:
1473
+ # //cloud.google.com/apis/design/errors).
1474
+ # Corresponds to the JSON property `error`
1475
+ # @return [Google::Apis::StorageV1::GoogleRpcStatus]
1476
+ attr_accessor :error
1477
+
1478
+ # Service-specific metadata associated with the operation. It typically contains
1479
+ # progress information and common metadata such as create time. Some services
1480
+ # might not provide such metadata. Any method that returns a long-running
1481
+ # operation should document the metadata type, if any.
1482
+ # Corresponds to the JSON property `metadata`
1483
+ # @return [Hash<String,Object>]
1484
+ attr_accessor :metadata
1485
+
1486
+ # The server-assigned name, which is only unique within the same service that
1487
+ # originally returns it. If you use the default HTTP mapping, the "name" should
1488
+ # be a resource name ending with "operations/`operationId`".
1489
+ # Corresponds to the JSON property `name`
1490
+ # @return [String]
1491
+ attr_accessor :name
1492
+
1493
+ # The normal response of the operation in case of success. If the original
1494
+ # method returns no data on success, such as "Delete", the response is google.
1495
+ # protobuf.Empty. If the original method is standard Get/Create/Update, the
1496
+ # response should be the resource. For other methods, the response should have
1497
+ # the type "XxxResponse", where "Xxx" is the original method name. For example,
1498
+ # if the original method name is "TakeSnapshot()", the inferred response type is
1499
+ # "TakeSnapshotResponse".
1500
+ # Corresponds to the JSON property `response`
1501
+ # @return [Hash<String,Object>]
1502
+ attr_accessor :response
1503
+
1504
+ def initialize(**args)
1505
+ update!(**args)
1506
+ end
1507
+
1508
+ # Update properties of this object
1509
+ def update!(**args)
1510
+ @done = args[:done] if args.key?(:done)
1511
+ @error = args[:error] if args.key?(:error)
1512
+ @metadata = args[:metadata] if args.key?(:metadata)
1513
+ @name = args[:name] if args.key?(:name)
1514
+ @response = args[:response] if args.key?(:response)
1515
+ end
1516
+ end
1517
+
1518
+ # The "Status" type defines a logical error model that is suitable for different
1519
+ # programming environments, including REST APIs and RPC APIs. It is used by [
1520
+ # gRPC](https://github.com/grpc). Each "Status" message contains three pieces of
1521
+ # data: error code, error message, and error details. You can find out more
1522
+ # about this error model and how to work with it in the [API Design Guide](https:
1523
+ # //cloud.google.com/apis/design/errors).
1524
+ class GoogleRpcStatus
1525
+ include Google::Apis::Core::Hashable
1526
+
1527
+ # The status code, which should be an enum value of google.rpc.Code.
1528
+ # Corresponds to the JSON property `code`
1529
+ # @return [Fixnum]
1530
+ attr_accessor :code
1531
+
1532
+ # A list of messages that carry the error details. There is a common set of
1533
+ # message types for APIs to use.
1534
+ # Corresponds to the JSON property `details`
1535
+ # @return [Array<Hash<String,Object>>]
1536
+ attr_accessor :details
1537
+
1538
+ # A developer-facing error message, which should be in English.
1539
+ # Corresponds to the JSON property `message`
1540
+ # @return [String]
1541
+ attr_accessor :message
1542
+
1543
+ def initialize(**args)
1544
+ update!(**args)
1545
+ end
1546
+
1547
+ # Update properties of this object
1548
+ def update!(**args)
1549
+ @code = args[:code] if args.key?(:code)
1550
+ @details = args[:details] if args.key?(:details)
1551
+ @message = args[:message] if args.key?(:message)
1552
+ end
1553
+ end
1554
+
1187
1555
  # JSON template to produce a JSON-style HMAC Key resource for Create responses.
1188
1556
  class HmacKey
1189
1557
  include Google::Apis::Core::Hashable
@@ -1322,6 +1690,103 @@ module Google
1322
1690
  end
1323
1691
  end
1324
1692
 
1693
+ # A managed folder.
1694
+ class ManagedFolder
1695
+ include Google::Apis::Core::Hashable
1696
+
1697
+ # The name of the bucket containing this managed folder.
1698
+ # Corresponds to the JSON property `bucket`
1699
+ # @return [String]
1700
+ attr_accessor :bucket
1701
+
1702
+ # The creation time of the managed folder in RFC 3339 format.
1703
+ # Corresponds to the JSON property `createTime`
1704
+ # @return [DateTime]
1705
+ attr_accessor :create_time
1706
+
1707
+ # The ID of the managed folder, including the bucket name and managed folder
1708
+ # name.
1709
+ # Corresponds to the JSON property `id`
1710
+ # @return [String]
1711
+ attr_accessor :id
1712
+
1713
+ # The kind of item this is. For managed folders, this is always storage#
1714
+ # managedFolder.
1715
+ # Corresponds to the JSON property `kind`
1716
+ # @return [String]
1717
+ attr_accessor :kind
1718
+
1719
+ # The version of the metadata for this managed folder. Used for preconditions
1720
+ # and for detecting changes in metadata.
1721
+ # Corresponds to the JSON property `metageneration`
1722
+ # @return [Fixnum]
1723
+ attr_accessor :metageneration
1724
+
1725
+ # The name of the managed folder. Required if not specified by URL parameter.
1726
+ # Corresponds to the JSON property `name`
1727
+ # @return [String]
1728
+ attr_accessor :name
1729
+
1730
+ # The link to this managed folder.
1731
+ # Corresponds to the JSON property `selfLink`
1732
+ # @return [String]
1733
+ attr_accessor :self_link
1734
+
1735
+ # The last update time of the managed folder metadata in RFC 3339 format.
1736
+ # Corresponds to the JSON property `updateTime`
1737
+ # @return [DateTime]
1738
+ attr_accessor :update_time
1739
+
1740
+ def initialize(**args)
1741
+ update!(**args)
1742
+ end
1743
+
1744
+ # Update properties of this object
1745
+ def update!(**args)
1746
+ @bucket = args[:bucket] if args.key?(:bucket)
1747
+ @create_time = args[:create_time] if args.key?(:create_time)
1748
+ @id = args[:id] if args.key?(:id)
1749
+ @kind = args[:kind] if args.key?(:kind)
1750
+ @metageneration = args[:metageneration] if args.key?(:metageneration)
1751
+ @name = args[:name] if args.key?(:name)
1752
+ @self_link = args[:self_link] if args.key?(:self_link)
1753
+ @update_time = args[:update_time] if args.key?(:update_time)
1754
+ end
1755
+ end
1756
+
1757
+ # A list of managed folders.
1758
+ class ManagedFolders
1759
+ include Google::Apis::Core::Hashable
1760
+
1761
+ # The list of items.
1762
+ # Corresponds to the JSON property `items`
1763
+ # @return [Array<Google::Apis::StorageV1::ManagedFolder>]
1764
+ attr_accessor :items
1765
+
1766
+ # The kind of item this is. For lists of managed folders, this is always storage#
1767
+ # managedFolders.
1768
+ # Corresponds to the JSON property `kind`
1769
+ # @return [String]
1770
+ attr_accessor :kind
1771
+
1772
+ # The continuation token, used to page through large result sets. Provide this
1773
+ # value in a subsequent request to return the next page of results.
1774
+ # Corresponds to the JSON property `nextPageToken`
1775
+ # @return [String]
1776
+ attr_accessor :next_page_token
1777
+
1778
+ def initialize(**args)
1779
+ update!(**args)
1780
+ end
1781
+
1782
+ # Update properties of this object
1783
+ def update!(**args)
1784
+ @items = args[:items] if args.key?(:items)
1785
+ @kind = args[:kind] if args.key?(:kind)
1786
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
1787
+ end
1788
+ end
1789
+
1325
1790
  # A subscription to receive Google PubSub notifications.
1326
1791
  class Notification
1327
1792
  include Google::Apis::Core::Hashable
@@ -1511,6 +1976,13 @@ module Google
1511
1976
  # @return [Fixnum]
1512
1977
  attr_accessor :generation
1513
1978
 
1979
+ # This is the time (in the future) when the soft-deleted object will no longer
1980
+ # be restorable. It is equal to the soft delete time plus the current soft
1981
+ # delete retention duration of the bucket.
1982
+ # Corresponds to the JSON property `hardDeleteTime`
1983
+ # @return [DateTime]
1984
+ attr_accessor :hard_delete_time
1985
+
1514
1986
  # The ID of the object, including the bucket name, object name, and generation
1515
1987
  # number.
1516
1988
  # Corresponds to the JSON property `id`
@@ -1562,6 +2034,11 @@ module Google
1562
2034
  # @return [Google::Apis::StorageV1::Object::Owner]
1563
2035
  attr_accessor :owner
1564
2036
 
2037
+ # A collection of object level retention parameters.
2038
+ # Corresponds to the JSON property `retention`
2039
+ # @return [Google::Apis::StorageV1::Object::Retention]
2040
+ attr_accessor :retention
2041
+
1565
2042
  # A server-determined value that specifies the earliest time that the object's
1566
2043
  # retention period expires. This value is in RFC 3339 format. Note 1: This field
1567
2044
  # is not provided for objects with an active event-based hold, since retention
@@ -1582,6 +2059,11 @@ module Google
1582
2059
  # @return [Fixnum]
1583
2060
  attr_accessor :size
1584
2061
 
2062
+ # The time at which the object became soft-deleted in RFC 3339 format.
2063
+ # Corresponds to the JSON property `softDeleteTime`
2064
+ # @return [DateTime]
2065
+ attr_accessor :soft_delete_time
2066
+
1585
2067
  # Storage class of the object.
1586
2068
  # Corresponds to the JSON property `storageClass`
1587
2069
  # @return [String]
@@ -1602,8 +2084,8 @@ module Google
1602
2084
  # @return [DateTime]
1603
2085
  attr_accessor :time_created
1604
2086
 
1605
- # The deletion time of the object in RFC 3339 format. Will be returned if and
1606
- # only if this version of the object has been deleted.
2087
+ # The time at which the object became noncurrent in RFC 3339 format. Will be
2088
+ # returned if and only if this version of the object has been deleted.
1607
2089
  # Corresponds to the JSON property `timeDeleted`
1608
2090
  # @return [DateTime]
1609
2091
  attr_accessor :time_deleted
@@ -1643,6 +2125,7 @@ module Google
1643
2125
  @etag = args[:etag] if args.key?(:etag)
1644
2126
  @event_based_hold = args[:event_based_hold] if args.key?(:event_based_hold)
1645
2127
  @generation = args[:generation] if args.key?(:generation)
2128
+ @hard_delete_time = args[:hard_delete_time] if args.key?(:hard_delete_time)
1646
2129
  @id = args[:id] if args.key?(:id)
1647
2130
  @kind = args[:kind] if args.key?(:kind)
1648
2131
  @kms_key_name = args[:kms_key_name] if args.key?(:kms_key_name)
@@ -1652,9 +2135,11 @@ module Google
1652
2135
  @metageneration = args[:metageneration] if args.key?(:metageneration)
1653
2136
  @name = args[:name] if args.key?(:name)
1654
2137
  @owner = args[:owner] if args.key?(:owner)
2138
+ @retention = args[:retention] if args.key?(:retention)
1655
2139
  @retention_expiration_time = args[:retention_expiration_time] if args.key?(:retention_expiration_time)
1656
2140
  @self_link = args[:self_link] if args.key?(:self_link)
1657
2141
  @size = args[:size] if args.key?(:size)
2142
+ @soft_delete_time = args[:soft_delete_time] if args.key?(:soft_delete_time)
1658
2143
  @storage_class = args[:storage_class] if args.key?(:storage_class)
1659
2144
  @temporary_hold = args[:temporary_hold] if args.key?(:temporary_hold)
1660
2145
  @time_created = args[:time_created] if args.key?(:time_created)
@@ -1713,6 +2198,31 @@ module Google
1713
2198
  @entity_id = args[:entity_id] if args.key?(:entity_id)
1714
2199
  end
1715
2200
  end
2201
+
2202
+ # A collection of object level retention parameters.
2203
+ class Retention
2204
+ include Google::Apis::Core::Hashable
2205
+
2206
+ # The bucket's object retention mode, can only be Unlocked or Locked.
2207
+ # Corresponds to the JSON property `mode`
2208
+ # @return [String]
2209
+ attr_accessor :mode
2210
+
2211
+ # A time in RFC 3339 format until which object retention protects this object.
2212
+ # Corresponds to the JSON property `retainUntilTime`
2213
+ # @return [DateTime]
2214
+ attr_accessor :retain_until_time
2215
+
2216
+ def initialize(**args)
2217
+ update!(**args)
2218
+ end
2219
+
2220
+ # Update properties of this object
2221
+ def update!(**args)
2222
+ @mode = args[:mode] if args.key?(:mode)
2223
+ @retain_until_time = args[:retain_until_time] if args.key?(:retain_until_time)
2224
+ end
2225
+ end
1716
2226
  end
1717
2227
 
1718
2228
  # An access-control entry.
@@ -1909,7 +2419,7 @@ module Google
1909
2419
  end
1910
2420
  end
1911
2421
 
1912
- # A bucket/object IAM policy.
2422
+ # A bucket/object/managedFolder IAM policy.
1913
2423
  class Policy
1914
2424
  include Google::Apis::Core::Hashable
1915
2425
 
@@ -1932,11 +2442,11 @@ module Google
1932
2442
  attr_accessor :kind
1933
2443
 
1934
2444
  # The ID of the resource to which this policy belongs. Will be of the form
1935
- # projects/_/buckets/bucket for buckets, and projects/_/buckets/bucket/objects/
1936
- # object for objects. A specific generation may be specified by appending #
1937
- # generationNumber to the end of the object name, e.g. projects/_/buckets/my-
1938
- # bucket/objects/data.txt#17. The current generation can be denoted with #0.
1939
- # This field is ignored on input.
2445
+ # projects/_/buckets/bucket for buckets, projects/_/buckets/bucket/objects/
2446
+ # object for objects, and projects/_/buckets/bucket/managedFolders/managedFolder.
2447
+ # A specific generation may be specified by appending #generationNumber to the
2448
+ # end of the object name, e.g. projects/_/buckets/my-bucket/objects/data.txt#17.
2449
+ # The current generation can be denoted with #0. This field is ignored on input.
1940
2450
  # Corresponds to the JSON property `resourceId`
1941
2451
  # @return [String]
1942
2452
  attr_accessor :resource_id
@@ -2115,7 +2625,7 @@ module Google
2115
2625
  end
2116
2626
  end
2117
2627
 
2118
- # A storage.(buckets|objects).testIamPermissions response.
2628
+ # A storage.(buckets|objects|managedFolders).testIamPermissions response.
2119
2629
  class TestIamPermissionsResponse
2120
2630
  include Google::Apis::Core::Hashable
2121
2631
 
@@ -2125,8 +2635,8 @@ module Google
2125
2635
  attr_accessor :kind
2126
2636
 
2127
2637
  # The permissions held by the caller. Permissions are always of the format
2128
- # storage.resource.capability, where resource is one of buckets or objects. The
2129
- # supported permissions are as follows:
2638
+ # storage.resource.capability, where resource is one of buckets, objects, or
2639
+ # managedFolders. The supported permissions are as follows:
2130
2640
  # - storage.buckets.delete — Delete bucket.
2131
2641
  # - storage.buckets.get — Read bucket metadata.
2132
2642
  # - storage.buckets.getIamPolicy — Read bucket IAM policy.
@@ -2141,6 +2651,12 @@ module Google
2141
2651
  # - storage.objects.list — List objects.
2142
2652
  # - storage.objects.setIamPolicy — Update object IAM policy.
2143
2653
  # - storage.objects.update — Update object metadata.
2654
+ # - storage.managedFolders.delete — Delete managed folder.
2655
+ # - storage.managedFolders.get — Read managed folder metadata.
2656
+ # - storage.managedFolders.getIamPolicy — Read managed folder IAM policy.
2657
+ # - storage.managedFolders.create — Create managed folder.
2658
+ # - storage.managedFolders.list — List managed folders.
2659
+ # - storage.managedFolders.setIamPolicy — Update managed folder IAM policy.
2144
2660
  # Corresponds to the JSON property `permissions`
2145
2661
  # @return [Array<String>]
2146
2662
  attr_accessor :permissions