google-apis-storage_v1 0.19.0 → 0.31.0

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