google-apis-storage_v1 0.29.0 → 0.54.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,155 @@ module Google
22
22
  module Apis
23
23
  module StorageV1
24
24
 
25
+ # An AdvanceRelocateBucketOperation request.
26
+ class AdvanceRelocateBucketOperationRequest
27
+ include Google::Apis::Core::Hashable
28
+
29
+ # Specifies the time when the relocation will revert to the sync stage if the
30
+ # relocation hasn't succeeded.
31
+ # Corresponds to the JSON property `expireTime`
32
+ # @return [DateTime]
33
+ attr_accessor :expire_time
34
+
35
+ # Specifies the duration after which the relocation will revert to the sync
36
+ # stage if the relocation hasn't succeeded. Optional, if not supplied, a default
37
+ # value of 12h will be used.
38
+ # Corresponds to the JSON property `ttl`
39
+ # @return [String]
40
+ attr_accessor :ttl
41
+
42
+ def initialize(**args)
43
+ update!(**args)
44
+ end
45
+
46
+ # Update properties of this object
47
+ def update!(**args)
48
+ @expire_time = args[:expire_time] if args.key?(:expire_time)
49
+ @ttl = args[:ttl] if args.key?(:ttl)
50
+ end
51
+ end
52
+
53
+ # An Anywhere Cache instance.
54
+ class AnywhereCache
55
+ include Google::Apis::Core::Hashable
56
+
57
+ # The cache-level entry admission policy.
58
+ # Corresponds to the JSON property `admissionPolicy`
59
+ # @return [String]
60
+ attr_accessor :admission_policy
61
+
62
+ # The ID of the Anywhere cache instance.
63
+ # Corresponds to the JSON property `anywhereCacheId`
64
+ # @return [String]
65
+ attr_accessor :anywhere_cache_id
66
+
67
+ # The name of the bucket containing this cache instance.
68
+ # Corresponds to the JSON property `bucket`
69
+ # @return [String]
70
+ attr_accessor :bucket
71
+
72
+ # The creation time of the cache instance in RFC 3339 format.
73
+ # Corresponds to the JSON property `createTime`
74
+ # @return [DateTime]
75
+ attr_accessor :create_time
76
+
77
+ # The ID of the resource, including the project number, bucket name and anywhere
78
+ # cache ID.
79
+ # Corresponds to the JSON property `id`
80
+ # @return [String]
81
+ attr_accessor :id
82
+
83
+ # The kind of item this is. For Anywhere Cache, this is always storage#
84
+ # anywhereCache.
85
+ # Corresponds to the JSON property `kind`
86
+ # @return [String]
87
+ attr_accessor :kind
88
+
89
+ # True if the cache instance has an active Update long-running operation.
90
+ # Corresponds to the JSON property `pendingUpdate`
91
+ # @return [Boolean]
92
+ attr_accessor :pending_update
93
+ alias_method :pending_update?, :pending_update
94
+
95
+ # The link to this cache instance.
96
+ # Corresponds to the JSON property `selfLink`
97
+ # @return [String]
98
+ attr_accessor :self_link
99
+
100
+ # The current state of the cache instance.
101
+ # Corresponds to the JSON property `state`
102
+ # @return [String]
103
+ attr_accessor :state
104
+
105
+ # The TTL of all cache entries in whole seconds. e.g., "7200s".
106
+ # Corresponds to the JSON property `ttl`
107
+ # @return [String]
108
+ attr_accessor :ttl
109
+
110
+ # The modification time of the cache instance metadata in RFC 3339 format.
111
+ # Corresponds to the JSON property `updateTime`
112
+ # @return [DateTime]
113
+ attr_accessor :update_time
114
+
115
+ # The zone in which the cache instance is running. For example, us-central1-a.
116
+ # Corresponds to the JSON property `zone`
117
+ # @return [String]
118
+ attr_accessor :zone
119
+
120
+ def initialize(**args)
121
+ update!(**args)
122
+ end
123
+
124
+ # Update properties of this object
125
+ def update!(**args)
126
+ @admission_policy = args[:admission_policy] if args.key?(:admission_policy)
127
+ @anywhere_cache_id = args[:anywhere_cache_id] if args.key?(:anywhere_cache_id)
128
+ @bucket = args[:bucket] if args.key?(:bucket)
129
+ @create_time = args[:create_time] if args.key?(:create_time)
130
+ @id = args[:id] if args.key?(:id)
131
+ @kind = args[:kind] if args.key?(:kind)
132
+ @pending_update = args[:pending_update] if args.key?(:pending_update)
133
+ @self_link = args[:self_link] if args.key?(:self_link)
134
+ @state = args[:state] if args.key?(:state)
135
+ @ttl = args[:ttl] if args.key?(:ttl)
136
+ @update_time = args[:update_time] if args.key?(:update_time)
137
+ @zone = args[:zone] if args.key?(:zone)
138
+ end
139
+ end
140
+
141
+ # A list of Anywhere Caches.
142
+ class AnywhereCaches
143
+ include Google::Apis::Core::Hashable
144
+
145
+ # The list of items.
146
+ # Corresponds to the JSON property `items`
147
+ # @return [Array<Google::Apis::StorageV1::AnywhereCache>]
148
+ attr_accessor :items
149
+
150
+ # The kind of item this is. For lists of Anywhere Caches, this is always storage#
151
+ # anywhereCaches.
152
+ # Corresponds to the JSON property `kind`
153
+ # @return [String]
154
+ attr_accessor :kind
155
+
156
+ # The continuation token, used to page through large result sets. Provide this
157
+ # value in a subsequent request to return the next page of results.
158
+ # Corresponds to the JSON property `nextPageToken`
159
+ # @return [String]
160
+ attr_accessor :next_page_token
161
+
162
+ def initialize(**args)
163
+ update!(**args)
164
+ end
165
+
166
+ # Update properties of this object
167
+ def update!(**args)
168
+ @items = args[:items] if args.key?(:items)
169
+ @kind = args[:kind] if args.key?(:kind)
170
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
171
+ end
172
+ end
173
+
25
174
  # A bucket.
26
175
  class Bucket
27
176
  include Google::Apis::Core::Hashable
@@ -83,6 +232,21 @@ module Google
83
232
  # @return [String]
84
233
  attr_accessor :etag
85
234
 
235
+ # The generation of this bucket.
236
+ # Corresponds to the JSON property `generation`
237
+ # @return [Fixnum]
238
+ attr_accessor :generation
239
+
240
+ # The hard delete time of the bucket in RFC 3339 format.
241
+ # Corresponds to the JSON property `hardDeleteTime`
242
+ # @return [DateTime]
243
+ attr_accessor :hard_delete_time
244
+
245
+ # The bucket's hierarchical namespace configuration.
246
+ # Corresponds to the JSON property `hierarchicalNamespace`
247
+ # @return [Google::Apis::StorageV1::Bucket::HierarchicalNamespace]
248
+ attr_accessor :hierarchical_namespace
249
+
86
250
  # The bucket's IAM configuration.
87
251
  # Corresponds to the JSON property `iamConfiguration`
88
252
  # @return [Google::Apis::StorageV1::Bucket::IamConfiguration]
@@ -93,6 +257,13 @@ module Google
93
257
  # @return [String]
94
258
  attr_accessor :id
95
259
 
260
+ # The bucket's IP filter configuration. Specifies the network sources that are
261
+ # allowed to access the operations on the bucket, as well as its underlying
262
+ # objects. Only enforced when the mode is set to 'Enabled'.
263
+ # Corresponds to the JSON property `ipFilter`
264
+ # @return [Google::Apis::StorageV1::Bucket::IpFilter]
265
+ attr_accessor :ip_filter
266
+
96
267
  # The kind of item this is. For buckets, this is always storage#bucket.
97
268
  # Corresponds to the JSON property `kind`
98
269
  # @return [String]
@@ -103,15 +274,16 @@ module Google
103
274
  # @return [Hash<String,String>]
104
275
  attr_accessor :labels
105
276
 
106
- # The bucket's lifecycle configuration. See lifecycle management for more
107
- # information.
277
+ # The bucket's lifecycle configuration. See [Lifecycle Management](https://cloud.
278
+ # google.com/storage/docs/lifecycle) for more information.
108
279
  # Corresponds to the JSON property `lifecycle`
109
280
  # @return [Google::Apis::StorageV1::Bucket::Lifecycle]
110
281
  attr_accessor :lifecycle
111
282
 
112
283
  # The location of the bucket. Object data for objects in the bucket resides in
113
- # physical storage within this region. Defaults to US. See the developer's guide
114
- # for the authoritative list.
284
+ # physical storage within this region. Defaults to US. See the [Developer's
285
+ # Guide](https://cloud.google.com/storage/docs/locations) for the authoritative
286
+ # list.
115
287
  # Corresponds to the JSON property `location`
116
288
  # @return [String]
117
289
  attr_accessor :location
@@ -171,6 +343,12 @@ module Google
171
343
  # @return [String]
172
344
  attr_accessor :rpo
173
345
 
346
+ # Reserved for future use.
347
+ # Corresponds to the JSON property `satisfiesPZI`
348
+ # @return [Boolean]
349
+ attr_accessor :satisfies_pzi
350
+ alias_method :satisfies_pzi?, :satisfies_pzi
351
+
174
352
  # Reserved for future use.
175
353
  # Corresponds to the JSON property `satisfiesPZS`
176
354
  # @return [Boolean]
@@ -188,13 +366,18 @@ module Google
188
366
  # @return [Google::Apis::StorageV1::Bucket::SoftDeletePolicy]
189
367
  attr_accessor :soft_delete_policy
190
368
 
369
+ # The soft delete time of the bucket in RFC 3339 format.
370
+ # Corresponds to the JSON property `softDeleteTime`
371
+ # @return [DateTime]
372
+ attr_accessor :soft_delete_time
373
+
191
374
  # The bucket's default storage class, used whenever no storageClass is specified
192
375
  # for a newly-created object. This defines how objects in the bucket are stored
193
376
  # and determines the SLA and the cost of storage. Values include MULTI_REGIONAL,
194
377
  # REGIONAL, STANDARD, NEARLINE, COLDLINE, ARCHIVE, and
195
378
  # DURABLE_REDUCED_AVAILABILITY. If this value is not specified when the bucket
196
- # is created, it will default to STANDARD. For more information, see storage
197
- # classes.
379
+ # is created, it will default to STANDARD. For more information, see [Storage
380
+ # Classes](https://cloud.google.com/storage/docs/storage-classes).
198
381
  # Corresponds to the JSON property `storageClass`
199
382
  # @return [String]
200
383
  attr_accessor :storage_class
@@ -215,8 +398,8 @@ module Google
215
398
  attr_accessor :versioning
216
399
 
217
400
  # The bucket's website configuration, controlling how the service behaves when
218
- # accessing bucket contents as a web site. See the Static Website Examples for
219
- # more information.
401
+ # accessing bucket contents as a web site. See the [Static Website Examples](
402
+ # https://cloud.google.com/storage/docs/static-website) for more information.
220
403
  # Corresponds to the JSON property `website`
221
404
  # @return [Google::Apis::StorageV1::Bucket::Website]
222
405
  attr_accessor :website
@@ -236,8 +419,12 @@ module Google
236
419
  @default_object_acl = args[:default_object_acl] if args.key?(:default_object_acl)
237
420
  @encryption = args[:encryption] if args.key?(:encryption)
238
421
  @etag = args[:etag] if args.key?(:etag)
422
+ @generation = args[:generation] if args.key?(:generation)
423
+ @hard_delete_time = args[:hard_delete_time] if args.key?(:hard_delete_time)
424
+ @hierarchical_namespace = args[:hierarchical_namespace] if args.key?(:hierarchical_namespace)
239
425
  @iam_configuration = args[:iam_configuration] if args.key?(:iam_configuration)
240
426
  @id = args[:id] if args.key?(:id)
427
+ @ip_filter = args[:ip_filter] if args.key?(:ip_filter)
241
428
  @kind = args[:kind] if args.key?(:kind)
242
429
  @labels = args[:labels] if args.key?(:labels)
243
430
  @lifecycle = args[:lifecycle] if args.key?(:lifecycle)
@@ -251,9 +438,11 @@ module Google
251
438
  @project_number = args[:project_number] if args.key?(:project_number)
252
439
  @retention_policy = args[:retention_policy] if args.key?(:retention_policy)
253
440
  @rpo = args[:rpo] if args.key?(:rpo)
441
+ @satisfies_pzi = args[:satisfies_pzi] if args.key?(:satisfies_pzi)
254
442
  @satisfies_pzs = args[:satisfies_pzs] if args.key?(:satisfies_pzs)
255
443
  @self_link = args[:self_link] if args.key?(:self_link)
256
444
  @soft_delete_policy = args[:soft_delete_policy] if args.key?(:soft_delete_policy)
445
+ @soft_delete_time = args[:soft_delete_time] if args.key?(:soft_delete_time)
257
446
  @storage_class = args[:storage_class] if args.key?(:storage_class)
258
447
  @time_created = args[:time_created] if args.key?(:time_created)
259
448
  @updated = args[:updated] if args.key?(:updated)
@@ -404,6 +593,26 @@ module Google
404
593
  end
405
594
  end
406
595
 
596
+ # The bucket's hierarchical namespace configuration.
597
+ class HierarchicalNamespace
598
+ include Google::Apis::Core::Hashable
599
+
600
+ # When set to true, hierarchical namespace is enabled for this bucket.
601
+ # Corresponds to the JSON property `enabled`
602
+ # @return [Boolean]
603
+ attr_accessor :enabled
604
+ alias_method :enabled?, :enabled
605
+
606
+ def initialize(**args)
607
+ update!(**args)
608
+ end
609
+
610
+ # Update properties of this object
611
+ def update!(**args)
612
+ @enabled = args[:enabled] if args.key?(:enabled)
613
+ end
614
+ end
615
+
407
616
  # The bucket's IAM configuration.
408
617
  class IamConfiguration
409
618
  include Google::Apis::Core::Hashable
@@ -502,8 +711,104 @@ module Google
502
711
  end
503
712
  end
504
713
 
505
- # The bucket's lifecycle configuration. See lifecycle management for more
506
- # information.
714
+ # The bucket's IP filter configuration. Specifies the network sources that are
715
+ # allowed to access the operations on the bucket, as well as its underlying
716
+ # objects. Only enforced when the mode is set to 'Enabled'.
717
+ class IpFilter
718
+ include Google::Apis::Core::Hashable
719
+
720
+ # Whether to allow all service agents to access the bucket regardless of the IP
721
+ # filter configuration.
722
+ # Corresponds to the JSON property `allowAllServiceAgentAccess`
723
+ # @return [Boolean]
724
+ attr_accessor :allow_all_service_agent_access
725
+ alias_method :allow_all_service_agent_access?, :allow_all_service_agent_access
726
+
727
+ # Whether to allow cross-org VPCs in the bucket's IP filter configuration.
728
+ # Corresponds to the JSON property `allowCrossOrgVpcs`
729
+ # @return [Boolean]
730
+ attr_accessor :allow_cross_org_vpcs
731
+ alias_method :allow_cross_org_vpcs?, :allow_cross_org_vpcs
732
+
733
+ # The mode of the IP filter. Valid values are 'Enabled' and 'Disabled'.
734
+ # Corresponds to the JSON property `mode`
735
+ # @return [String]
736
+ attr_accessor :mode
737
+
738
+ # The public network source of the bucket's IP filter.
739
+ # Corresponds to the JSON property `publicNetworkSource`
740
+ # @return [Google::Apis::StorageV1::Bucket::IpFilter::PublicNetworkSource]
741
+ attr_accessor :public_network_source
742
+
743
+ # The list of [VPC network](https://cloud.google.com/vpc/docs/vpc) sources of
744
+ # the bucket's IP filter.
745
+ # Corresponds to the JSON property `vpcNetworkSources`
746
+ # @return [Array<Google::Apis::StorageV1::Bucket::IpFilter::VpcNetworkSource>]
747
+ attr_accessor :vpc_network_sources
748
+
749
+ def initialize(**args)
750
+ update!(**args)
751
+ end
752
+
753
+ # Update properties of this object
754
+ def update!(**args)
755
+ @allow_all_service_agent_access = args[:allow_all_service_agent_access] if args.key?(:allow_all_service_agent_access)
756
+ @allow_cross_org_vpcs = args[:allow_cross_org_vpcs] if args.key?(:allow_cross_org_vpcs)
757
+ @mode = args[:mode] if args.key?(:mode)
758
+ @public_network_source = args[:public_network_source] if args.key?(:public_network_source)
759
+ @vpc_network_sources = args[:vpc_network_sources] if args.key?(:vpc_network_sources)
760
+ end
761
+
762
+ # The public network source of the bucket's IP filter.
763
+ class PublicNetworkSource
764
+ include Google::Apis::Core::Hashable
765
+
766
+ # The list of public IPv4, IPv6 cidr ranges that are allowed to access the
767
+ # bucket.
768
+ # Corresponds to the JSON property `allowedIpCidrRanges`
769
+ # @return [Array<String>]
770
+ attr_accessor :allowed_ip_cidr_ranges
771
+
772
+ def initialize(**args)
773
+ update!(**args)
774
+ end
775
+
776
+ # Update properties of this object
777
+ def update!(**args)
778
+ @allowed_ip_cidr_ranges = args[:allowed_ip_cidr_ranges] if args.key?(:allowed_ip_cidr_ranges)
779
+ end
780
+ end
781
+
782
+ #
783
+ class VpcNetworkSource
784
+ include Google::Apis::Core::Hashable
785
+
786
+ # The list of IPv4, IPv6 cidr ranges subnetworks that are allowed to access the
787
+ # bucket.
788
+ # Corresponds to the JSON property `allowedIpCidrRanges`
789
+ # @return [Array<String>]
790
+ attr_accessor :allowed_ip_cidr_ranges
791
+
792
+ # Name of the network. Format: projects/`PROJECT_ID`/global/networks/`
793
+ # NETWORK_NAME`
794
+ # Corresponds to the JSON property `network`
795
+ # @return [String]
796
+ attr_accessor :network
797
+
798
+ def initialize(**args)
799
+ update!(**args)
800
+ end
801
+
802
+ # Update properties of this object
803
+ def update!(**args)
804
+ @allowed_ip_cidr_ranges = args[:allowed_ip_cidr_ranges] if args.key?(:allowed_ip_cidr_ranges)
805
+ @network = args[:network] if args.key?(:network)
806
+ end
807
+ end
808
+ end
809
+
810
+ # The bucket's lifecycle configuration. See [Lifecycle Management](https://cloud.
811
+ # google.com/storage/docs/lifecycle) for more information.
507
812
  class Lifecycle
508
813
  include Google::Apis::Core::Hashable
509
814
 
@@ -809,7 +1114,7 @@ module Google
809
1114
  # @return [DateTime]
810
1115
  attr_accessor :effective_time
811
1116
 
812
- # The period of time in seconds, that soft-deleted objects in the bucket will be
1117
+ # The duration in seconds that soft-deleted objects in the bucket will be
813
1118
  # retained and cannot be permanently deleted.
814
1119
  # Corresponds to the JSON property `retentionDurationSeconds`
815
1120
  # @return [Fixnum]
@@ -847,8 +1152,8 @@ module Google
847
1152
  end
848
1153
 
849
1154
  # The bucket's website configuration, controlling how the service behaves when
850
- # accessing bucket contents as a web site. See the Static Website Examples for
851
- # more information.
1155
+ # accessing bucket contents as a web site. See the [Static Website Examples](
1156
+ # https://cloud.google.com/storage/docs/static-website) for more information.
852
1157
  class Website
853
1158
  include Google::Apis::Core::Hashable
854
1159
 
@@ -1022,6 +1327,95 @@ module Google
1022
1327
  end
1023
1328
  end
1024
1329
 
1330
+ # The storage layout configuration of a bucket.
1331
+ class BucketStorageLayout
1332
+ include Google::Apis::Core::Hashable
1333
+
1334
+ # The name of the bucket.
1335
+ # Corresponds to the JSON property `bucket`
1336
+ # @return [String]
1337
+ attr_accessor :bucket
1338
+
1339
+ # The bucket's custom placement configuration for Custom Dual Regions.
1340
+ # Corresponds to the JSON property `customPlacementConfig`
1341
+ # @return [Google::Apis::StorageV1::BucketStorageLayout::CustomPlacementConfig]
1342
+ attr_accessor :custom_placement_config
1343
+
1344
+ # The bucket's hierarchical namespace configuration.
1345
+ # Corresponds to the JSON property `hierarchicalNamespace`
1346
+ # @return [Google::Apis::StorageV1::BucketStorageLayout::HierarchicalNamespace]
1347
+ attr_accessor :hierarchical_namespace
1348
+
1349
+ # The kind of item this is. For storage layout, this is always storage#
1350
+ # storageLayout.
1351
+ # Corresponds to the JSON property `kind`
1352
+ # @return [String]
1353
+ attr_accessor :kind
1354
+
1355
+ # The location of the bucket.
1356
+ # Corresponds to the JSON property `location`
1357
+ # @return [String]
1358
+ attr_accessor :location
1359
+
1360
+ # The type of the bucket location.
1361
+ # Corresponds to the JSON property `locationType`
1362
+ # @return [String]
1363
+ attr_accessor :location_type
1364
+
1365
+ def initialize(**args)
1366
+ update!(**args)
1367
+ end
1368
+
1369
+ # Update properties of this object
1370
+ def update!(**args)
1371
+ @bucket = args[:bucket] if args.key?(:bucket)
1372
+ @custom_placement_config = args[:custom_placement_config] if args.key?(:custom_placement_config)
1373
+ @hierarchical_namespace = args[:hierarchical_namespace] if args.key?(:hierarchical_namespace)
1374
+ @kind = args[:kind] if args.key?(:kind)
1375
+ @location = args[:location] if args.key?(:location)
1376
+ @location_type = args[:location_type] if args.key?(:location_type)
1377
+ end
1378
+
1379
+ # The bucket's custom placement configuration for Custom Dual Regions.
1380
+ class CustomPlacementConfig
1381
+ include Google::Apis::Core::Hashable
1382
+
1383
+ # The list of regional locations in which data is placed.
1384
+ # Corresponds to the JSON property `dataLocations`
1385
+ # @return [Array<String>]
1386
+ attr_accessor :data_locations
1387
+
1388
+ def initialize(**args)
1389
+ update!(**args)
1390
+ end
1391
+
1392
+ # Update properties of this object
1393
+ def update!(**args)
1394
+ @data_locations = args[:data_locations] if args.key?(:data_locations)
1395
+ end
1396
+ end
1397
+
1398
+ # The bucket's hierarchical namespace configuration.
1399
+ class HierarchicalNamespace
1400
+ include Google::Apis::Core::Hashable
1401
+
1402
+ # When set to true, hierarchical namespace is enabled for this bucket.
1403
+ # Corresponds to the JSON property `enabled`
1404
+ # @return [Boolean]
1405
+ attr_accessor :enabled
1406
+ alias_method :enabled?, :enabled
1407
+
1408
+ def initialize(**args)
1409
+ update!(**args)
1410
+ end
1411
+
1412
+ # Update properties of this object
1413
+ def update!(**args)
1414
+ @enabled = args[:enabled] if args.key?(:enabled)
1415
+ end
1416
+ end
1417
+ end
1418
+
1025
1419
  # A list of buckets.
1026
1420
  class Buckets
1027
1421
  include Google::Apis::Core::Hashable
@@ -1312,10 +1706,137 @@ module Google
1312
1706
  end
1313
1707
  end
1314
1708
 
1709
+ # A folder. Only available in buckets with hierarchical namespace enabled.
1710
+ class Folder
1711
+ include Google::Apis::Core::Hashable
1712
+
1713
+ # The name of the bucket containing this folder.
1714
+ # Corresponds to the JSON property `bucket`
1715
+ # @return [String]
1716
+ attr_accessor :bucket
1717
+
1718
+ # The creation time of the folder in RFC 3339 format.
1719
+ # Corresponds to the JSON property `createTime`
1720
+ # @return [DateTime]
1721
+ attr_accessor :create_time
1722
+
1723
+ # The ID of the folder, including the bucket name, folder name.
1724
+ # Corresponds to the JSON property `id`
1725
+ # @return [String]
1726
+ attr_accessor :id
1727
+
1728
+ # The kind of item this is. For folders, this is always storage#folder.
1729
+ # Corresponds to the JSON property `kind`
1730
+ # @return [String]
1731
+ attr_accessor :kind
1732
+
1733
+ # The version of the metadata for this folder. Used for preconditions and for
1734
+ # detecting changes in metadata.
1735
+ # Corresponds to the JSON property `metageneration`
1736
+ # @return [Fixnum]
1737
+ attr_accessor :metageneration
1738
+
1739
+ # The name of the folder. Required if not specified by URL parameter.
1740
+ # Corresponds to the JSON property `name`
1741
+ # @return [String]
1742
+ attr_accessor :name
1743
+
1744
+ # Only present if the folder is part of an ongoing rename folder operation.
1745
+ # Contains information which can be used to query the operation status.
1746
+ # Corresponds to the JSON property `pendingRenameInfo`
1747
+ # @return [Google::Apis::StorageV1::Folder::PendingRenameInfo]
1748
+ attr_accessor :pending_rename_info
1749
+
1750
+ # The link to this folder.
1751
+ # Corresponds to the JSON property `selfLink`
1752
+ # @return [String]
1753
+ attr_accessor :self_link
1754
+
1755
+ # The modification time of the folder metadata in RFC 3339 format.
1756
+ # Corresponds to the JSON property `updateTime`
1757
+ # @return [DateTime]
1758
+ attr_accessor :update_time
1759
+
1760
+ def initialize(**args)
1761
+ update!(**args)
1762
+ end
1763
+
1764
+ # Update properties of this object
1765
+ def update!(**args)
1766
+ @bucket = args[:bucket] if args.key?(:bucket)
1767
+ @create_time = args[:create_time] if args.key?(:create_time)
1768
+ @id = args[:id] if args.key?(:id)
1769
+ @kind = args[:kind] if args.key?(:kind)
1770
+ @metageneration = args[:metageneration] if args.key?(:metageneration)
1771
+ @name = args[:name] if args.key?(:name)
1772
+ @pending_rename_info = args[:pending_rename_info] if args.key?(:pending_rename_info)
1773
+ @self_link = args[:self_link] if args.key?(:self_link)
1774
+ @update_time = args[:update_time] if args.key?(:update_time)
1775
+ end
1776
+
1777
+ # Only present if the folder is part of an ongoing rename folder operation.
1778
+ # Contains information which can be used to query the operation status.
1779
+ class PendingRenameInfo
1780
+ include Google::Apis::Core::Hashable
1781
+
1782
+ # The ID of the rename folder operation.
1783
+ # Corresponds to the JSON property `operationId`
1784
+ # @return [String]
1785
+ attr_accessor :operation_id
1786
+
1787
+ def initialize(**args)
1788
+ update!(**args)
1789
+ end
1790
+
1791
+ # Update properties of this object
1792
+ def update!(**args)
1793
+ @operation_id = args[:operation_id] if args.key?(:operation_id)
1794
+ end
1795
+ end
1796
+ end
1797
+
1798
+ # A list of folders.
1799
+ class Folders
1800
+ include Google::Apis::Core::Hashable
1801
+
1802
+ # The list of items.
1803
+ # Corresponds to the JSON property `items`
1804
+ # @return [Array<Google::Apis::StorageV1::Folder>]
1805
+ attr_accessor :items
1806
+
1807
+ # The kind of item this is. For lists of folders, this is always storage#folders.
1808
+ # Corresponds to the JSON property `kind`
1809
+ # @return [String]
1810
+ attr_accessor :kind
1811
+
1812
+ # The continuation token, used to page through large result sets. Provide this
1813
+ # value in a subsequent request to return the next page of results.
1814
+ # Corresponds to the JSON property `nextPageToken`
1815
+ # @return [String]
1816
+ attr_accessor :next_page_token
1817
+
1818
+ def initialize(**args)
1819
+ update!(**args)
1820
+ end
1821
+
1822
+ # Update properties of this object
1823
+ def update!(**args)
1824
+ @items = args[:items] if args.key?(:items)
1825
+ @kind = args[:kind] if args.key?(:kind)
1826
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
1827
+ end
1828
+ end
1829
+
1315
1830
  # The response message for storage.buckets.operations.list.
1316
1831
  class GoogleLongrunningListOperationsResponse
1317
1832
  include Google::Apis::Core::Hashable
1318
1833
 
1834
+ # The kind of item this is. For lists of operations, this is always storage#
1835
+ # operations.
1836
+ # Corresponds to the JSON property `kind`
1837
+ # @return [String]
1838
+ attr_accessor :kind
1839
+
1319
1840
  # The continuation token, used to page through large result sets. Provide this
1320
1841
  # value in a subsequent request to return the next page of results.
1321
1842
  # Corresponds to the JSON property `nextPageToken`
@@ -1333,6 +1854,7 @@ module Google
1333
1854
 
1334
1855
  # Update properties of this object
1335
1856
  def update!(**args)
1857
+ @kind = args[:kind] if args.key?(:kind)
1336
1858
  @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
1337
1859
  @operations = args[:operations] if args.key?(:operations)
1338
1860
  end
@@ -1360,6 +1882,11 @@ module Google
1360
1882
  # @return [Google::Apis::StorageV1::GoogleRpcStatus]
1361
1883
  attr_accessor :error
1362
1884
 
1885
+ # The kind of item this is. For operations, this is always storage#operation.
1886
+ # Corresponds to the JSON property `kind`
1887
+ # @return [String]
1888
+ attr_accessor :kind
1889
+
1363
1890
  # Service-specific metadata associated with the operation. It typically contains
1364
1891
  # progress information and common metadata such as create time. Some services
1365
1892
  # might not provide such metadata. Any method that returns a long-running
@@ -1386,6 +1913,11 @@ module Google
1386
1913
  # @return [Hash<String,Object>]
1387
1914
  attr_accessor :response
1388
1915
 
1916
+ # The link to this long running operation.
1917
+ # Corresponds to the JSON property `selfLink`
1918
+ # @return [String]
1919
+ attr_accessor :self_link
1920
+
1389
1921
  def initialize(**args)
1390
1922
  update!(**args)
1391
1923
  end
@@ -1394,9 +1926,11 @@ module Google
1394
1926
  def update!(**args)
1395
1927
  @done = args[:done] if args.key?(:done)
1396
1928
  @error = args[:error] if args.key?(:error)
1929
+ @kind = args[:kind] if args.key?(:kind)
1397
1930
  @metadata = args[:metadata] if args.key?(:metadata)
1398
1931
  @name = args[:name] if args.key?(:name)
1399
1932
  @response = args[:response] if args.key?(:response)
1933
+ @self_link = args[:self_link] if args.key?(:self_link)
1400
1934
  end
1401
1935
  end
1402
1936
 
@@ -1817,9 +2351,17 @@ module Google
1817
2351
  # @return [String]
1818
2352
  attr_accessor :content_type
1819
2353
 
2354
+ # User-defined or system-defined object contexts. Each object context is a key-
2355
+ # payload pair, where the key provides the identification and the payload holds
2356
+ # the associated value and additional metadata.
2357
+ # Corresponds to the JSON property `contexts`
2358
+ # @return [Google::Apis::StorageV1::Object::Contexts]
2359
+ attr_accessor :contexts
2360
+
1820
2361
  # CRC32c checksum, as described in RFC 4960, Appendix B; encoded using base64 in
1821
2362
  # big-endian byte order. For more information about using the CRC32c checksum,
1822
- # see Hashes and ETags: Best Practices.
2363
+ # see [Data Validation and Change Detection](https://cloud.google.com/storage/
2364
+ # docs/data-validation).
1823
2365
  # Corresponds to the JSON property `crc32c`
1824
2366
  # @return [String]
1825
2367
  attr_accessor :crc32c
@@ -1886,7 +2428,8 @@ module Google
1886
2428
  attr_accessor :kms_key_name
1887
2429
 
1888
2430
  # MD5 hash of the data; encoded using base64. For more information about using
1889
- # the MD5 hash, see Hashes and ETags: Best Practices.
2431
+ # the MD5 hash, see [Data Validation and Change Detection](https://cloud.google.
2432
+ # com/storage/docs/data-validation).
1890
2433
  # Corresponds to the JSON property `md5Hash`
1891
2434
  # @return [String]
1892
2435
  attr_accessor :md5_hash
@@ -1919,6 +2462,13 @@ module Google
1919
2462
  # @return [Google::Apis::StorageV1::Object::Owner]
1920
2463
  attr_accessor :owner
1921
2464
 
2465
+ # Restore token used to differentiate deleted objects with the same name and
2466
+ # generation. This field is only returned for deleted objects in hierarchical
2467
+ # namespace buckets.
2468
+ # Corresponds to the JSON property `restoreToken`
2469
+ # @return [String]
2470
+ attr_accessor :restore_token
2471
+
1922
2472
  # A collection of object level retention parameters.
1923
2473
  # Corresponds to the JSON property `retention`
1924
2474
  # @return [Google::Apis::StorageV1::Object::Retention]
@@ -1975,6 +2525,11 @@ module Google
1975
2525
  # @return [DateTime]
1976
2526
  attr_accessor :time_deleted
1977
2527
 
2528
+ # The time when the object was finalized.
2529
+ # Corresponds to the JSON property `timeFinalized`
2530
+ # @return [DateTime]
2531
+ attr_accessor :time_finalized
2532
+
1978
2533
  # The time at which the object's storage class was last changed. When the object
1979
2534
  # is initially created, it will be set to timeCreated.
1980
2535
  # Corresponds to the JSON property `timeStorageClassUpdated`
@@ -2004,6 +2559,7 @@ module Google
2004
2559
  @content_encoding = args[:content_encoding] if args.key?(:content_encoding)
2005
2560
  @content_language = args[:content_language] if args.key?(:content_language)
2006
2561
  @content_type = args[:content_type] if args.key?(:content_type)
2562
+ @contexts = args[:contexts] if args.key?(:contexts)
2007
2563
  @crc32c = args[:crc32c] if args.key?(:crc32c)
2008
2564
  @custom_time = args[:custom_time] if args.key?(:custom_time)
2009
2565
  @customer_encryption = args[:customer_encryption] if args.key?(:customer_encryption)
@@ -2020,6 +2576,7 @@ module Google
2020
2576
  @metageneration = args[:metageneration] if args.key?(:metageneration)
2021
2577
  @name = args[:name] if args.key?(:name)
2022
2578
  @owner = args[:owner] if args.key?(:owner)
2579
+ @restore_token = args[:restore_token] if args.key?(:restore_token)
2023
2580
  @retention = args[:retention] if args.key?(:retention)
2024
2581
  @retention_expiration_time = args[:retention_expiration_time] if args.key?(:retention_expiration_time)
2025
2582
  @self_link = args[:self_link] if args.key?(:self_link)
@@ -2029,10 +2586,32 @@ module Google
2029
2586
  @temporary_hold = args[:temporary_hold] if args.key?(:temporary_hold)
2030
2587
  @time_created = args[:time_created] if args.key?(:time_created)
2031
2588
  @time_deleted = args[:time_deleted] if args.key?(:time_deleted)
2589
+ @time_finalized = args[:time_finalized] if args.key?(:time_finalized)
2032
2590
  @time_storage_class_updated = args[:time_storage_class_updated] if args.key?(:time_storage_class_updated)
2033
2591
  @updated = args[:updated] if args.key?(:updated)
2034
2592
  end
2035
2593
 
2594
+ # User-defined or system-defined object contexts. Each object context is a key-
2595
+ # payload pair, where the key provides the identification and the payload holds
2596
+ # the associated value and additional metadata.
2597
+ class Contexts
2598
+ include Google::Apis::Core::Hashable
2599
+
2600
+ # User-defined object contexts.
2601
+ # Corresponds to the JSON property `custom`
2602
+ # @return [Hash<String,Google::Apis::StorageV1::ObjectCustomContextPayload>]
2603
+ attr_accessor :custom
2604
+
2605
+ def initialize(**args)
2606
+ update!(**args)
2607
+ end
2608
+
2609
+ # Update properties of this object
2610
+ def update!(**args)
2611
+ @custom = args[:custom] if args.key?(:custom)
2612
+ end
2613
+ end
2614
+
2036
2615
  # Metadata of customer-supplied encryption key, if the object is encrypted by
2037
2616
  # such a key.
2038
2617
  class CustomerEncryption
@@ -2265,6 +2844,37 @@ module Google
2265
2844
  end
2266
2845
  end
2267
2846
 
2847
+ # The payload of a single user-defined object context.
2848
+ class ObjectCustomContextPayload
2849
+ include Google::Apis::Core::Hashable
2850
+
2851
+ # The time at which the object context was created in RFC 3339 format.
2852
+ # Corresponds to the JSON property `createTime`
2853
+ # @return [DateTime]
2854
+ attr_accessor :create_time
2855
+
2856
+ # The time at which the object context was last updated in RFC 3339 format.
2857
+ # Corresponds to the JSON property `updateTime`
2858
+ # @return [DateTime]
2859
+ attr_accessor :update_time
2860
+
2861
+ # The value of the object context.
2862
+ # Corresponds to the JSON property `value`
2863
+ # @return [String]
2864
+ attr_accessor :value
2865
+
2866
+ def initialize(**args)
2867
+ update!(**args)
2868
+ end
2869
+
2870
+ # Update properties of this object
2871
+ def update!(**args)
2872
+ @create_time = args[:create_time] if args.key?(:create_time)
2873
+ @update_time = args[:update_time] if args.key?(:update_time)
2874
+ @value = args[:value] if args.key?(:value)
2875
+ end
2876
+ end
2877
+
2268
2878
  # A list of objects.
2269
2879
  class Objects
2270
2880
  include Google::Apis::Core::Hashable
@@ -2367,23 +2977,23 @@ module Google
2367
2977
 
2368
2978
  # A collection of identifiers for members who may assume the provided role.
2369
2979
  # Recognized identifiers are as follows:
2370
- # - allUsers A special identifier that represents anyone on the internet; with
2980
+ # - allUsers - A special identifier that represents anyone on the internet; with
2371
2981
  # or without a Google account.
2372
- # - allAuthenticatedUsers A special identifier that represents anyone who is
2982
+ # - allAuthenticatedUsers - A special identifier that represents anyone who is
2373
2983
  # authenticated with a Google account or a service account.
2374
- # - user:emailid An email address that represents a specific account. For
2984
+ # - user:emailid - An email address that represents a specific account. For
2375
2985
  # example, user:alice@gmail.com or user:joe@example.com.
2376
- # - serviceAccount:emailid An email address that represents a service account.
2986
+ # - serviceAccount:emailid - An email address that represents a service account.
2377
2987
  # For example, serviceAccount:my-other-app@appspot.gserviceaccount.com .
2378
- # - group:emailid An email address that represents a Google group. For example,
2988
+ # - group:emailid - An email address that represents a Google group. For example,
2379
2989
  # group:admins@example.com.
2380
- # - domain:domain A Google Apps domain name that represents all the users of
2990
+ # - domain:domain - A Google Apps domain name that represents all the users of
2381
2991
  # that domain. For example, domain:google.com or domain:example.com.
2382
- # - projectOwner:projectid Owners of the given project. For example,
2992
+ # - projectOwner:projectid - Owners of the given project. For example,
2383
2993
  # projectOwner:my-example-project
2384
- # - projectEditor:projectid Editors of the given project. For example,
2994
+ # - projectEditor:projectid - Editors of the given project. For example,
2385
2995
  # projectEditor:my-example-project
2386
- # - projectViewer:projectid Viewers of the given project. For example,
2996
+ # - projectViewer:projectid - Viewers of the given project. For example,
2387
2997
  # projectViewer:my-example-project
2388
2998
  # Corresponds to the JSON property `members`
2389
2999
  # @return [Array<String>]
@@ -2394,23 +3004,23 @@ module Google
2394
3004
  # ACLs, and legacy IAM roles, which do map directly to ACL permissions. All
2395
3005
  # roles are of the format roles/storage.specificRole.
2396
3006
  # The new IAM roles are:
2397
- # - roles/storage.admin Full control of Google Cloud Storage resources.
2398
- # - roles/storage.objectViewer Read-Only access to Google Cloud Storage
3007
+ # - roles/storage.admin - Full control of Google Cloud Storage resources.
3008
+ # - roles/storage.objectViewer - Read-Only access to Google Cloud Storage
2399
3009
  # objects.
2400
- # - roles/storage.objectCreator Access to create objects in Google Cloud
3010
+ # - roles/storage.objectCreator - Access to create objects in Google Cloud
2401
3011
  # Storage.
2402
- # - roles/storage.objectAdmin Full control of Google Cloud Storage objects.
3012
+ # - roles/storage.objectAdmin - Full control of Google Cloud Storage objects.
2403
3013
  # The legacy IAM roles are:
2404
- # - roles/storage.legacyObjectReader Read-only access to objects without
3014
+ # - roles/storage.legacyObjectReader - Read-only access to objects without
2405
3015
  # listing. Equivalent to an ACL entry on an object with the READER role.
2406
- # - roles/storage.legacyObjectOwner Read/write access to existing objects
3016
+ # - roles/storage.legacyObjectOwner - Read/write access to existing objects
2407
3017
  # without listing. Equivalent to an ACL entry on an object with the OWNER role.
2408
- # - roles/storage.legacyBucketReader Read access to buckets with object
3018
+ # - roles/storage.legacyBucketReader - Read access to buckets with object
2409
3019
  # listing. Equivalent to an ACL entry on a bucket with the READER role.
2410
- # - roles/storage.legacyBucketWriter Read access to buckets with object
3020
+ # - roles/storage.legacyBucketWriter - Read access to buckets with object
2411
3021
  # listing/creation/deletion. Equivalent to an ACL entry on a bucket with the
2412
3022
  # WRITER role.
2413
- # - roles/storage.legacyBucketOwner Read and write access to existing buckets
3023
+ # - roles/storage.legacyBucketOwner - Read and write access to existing buckets
2414
3024
  # with object listing/creation/deletion. Equivalent to an ACL entry on a bucket
2415
3025
  # with the OWNER role.
2416
3026
  # Corresponds to the JSON property `role`
@@ -2430,6 +3040,59 @@ module Google
2430
3040
  end
2431
3041
  end
2432
3042
 
3043
+ # A Relocate Bucket request.
3044
+ class RelocateBucketRequest
3045
+ include Google::Apis::Core::Hashable
3046
+
3047
+ # The bucket's new custom placement configuration if relocating to a Custom Dual
3048
+ # Region.
3049
+ # Corresponds to the JSON property `destinationCustomPlacementConfig`
3050
+ # @return [Google::Apis::StorageV1::RelocateBucketRequest::DestinationCustomPlacementConfig]
3051
+ attr_accessor :destination_custom_placement_config
3052
+
3053
+ # The new location the bucket will be relocated to.
3054
+ # Corresponds to the JSON property `destinationLocation`
3055
+ # @return [String]
3056
+ attr_accessor :destination_location
3057
+
3058
+ # If true, validate the operation, but do not actually relocate the bucket.
3059
+ # Corresponds to the JSON property `validateOnly`
3060
+ # @return [Boolean]
3061
+ attr_accessor :validate_only
3062
+ alias_method :validate_only?, :validate_only
3063
+
3064
+ def initialize(**args)
3065
+ update!(**args)
3066
+ end
3067
+
3068
+ # Update properties of this object
3069
+ def update!(**args)
3070
+ @destination_custom_placement_config = args[:destination_custom_placement_config] if args.key?(:destination_custom_placement_config)
3071
+ @destination_location = args[:destination_location] if args.key?(:destination_location)
3072
+ @validate_only = args[:validate_only] if args.key?(:validate_only)
3073
+ end
3074
+
3075
+ # The bucket's new custom placement configuration if relocating to a Custom Dual
3076
+ # Region.
3077
+ class DestinationCustomPlacementConfig
3078
+ include Google::Apis::Core::Hashable
3079
+
3080
+ # The list of regional locations in which data is placed.
3081
+ # Corresponds to the JSON property `dataLocations`
3082
+ # @return [Array<String>]
3083
+ attr_accessor :data_locations
3084
+
3085
+ def initialize(**args)
3086
+ update!(**args)
3087
+ end
3088
+
3089
+ # Update properties of this object
3090
+ def update!(**args)
3091
+ @data_locations = args[:data_locations] if args.key?(:data_locations)
3092
+ end
3093
+ end
3094
+ end
3095
+
2433
3096
  # A rewrite response.
2434
3097
  class RewriteResponse
2435
3098
  include Google::Apis::Core::Hashable
@@ -2522,26 +3185,26 @@ module Google
2522
3185
  # The permissions held by the caller. Permissions are always of the format
2523
3186
  # storage.resource.capability, where resource is one of buckets, objects, or
2524
3187
  # managedFolders. The supported permissions are as follows:
2525
- # - storage.buckets.delete Delete bucket.
2526
- # - storage.buckets.get Read bucket metadata.
2527
- # - storage.buckets.getIamPolicy Read bucket IAM policy.
2528
- # - storage.buckets.create Create bucket.
2529
- # - storage.buckets.list List buckets.
2530
- # - storage.buckets.setIamPolicy Update bucket IAM policy.
2531
- # - storage.buckets.update Update bucket metadata.
2532
- # - storage.objects.delete Delete object.
2533
- # - storage.objects.get Read object data and metadata.
2534
- # - storage.objects.getIamPolicy Read object IAM policy.
2535
- # - storage.objects.create Create object.
2536
- # - storage.objects.list List objects.
2537
- # - storage.objects.setIamPolicy Update object IAM policy.
2538
- # - storage.objects.update Update object metadata.
2539
- # - storage.managedFolders.delete Delete managed folder.
2540
- # - storage.managedFolders.get Read managed folder metadata.
2541
- # - storage.managedFolders.getIamPolicy Read managed folder IAM policy.
2542
- # - storage.managedFolders.create Create managed folder.
2543
- # - storage.managedFolders.list List managed folders.
2544
- # - storage.managedFolders.setIamPolicy Update managed folder IAM policy.
3188
+ # - storage.buckets.delete - Delete bucket.
3189
+ # - storage.buckets.get - Read bucket metadata.
3190
+ # - storage.buckets.getIamPolicy - Read bucket IAM policy.
3191
+ # - storage.buckets.create - Create bucket.
3192
+ # - storage.buckets.list - List buckets.
3193
+ # - storage.buckets.setIamPolicy - Update bucket IAM policy.
3194
+ # - storage.buckets.update - Update bucket metadata.
3195
+ # - storage.objects.delete - Delete object.
3196
+ # - storage.objects.get - Read object data and metadata.
3197
+ # - storage.objects.getIamPolicy - Read object IAM policy.
3198
+ # - storage.objects.create - Create object.
3199
+ # - storage.objects.list - List objects.
3200
+ # - storage.objects.setIamPolicy - Update object IAM policy.
3201
+ # - storage.objects.update - Update object metadata.
3202
+ # - storage.managedFolders.delete - Delete managed folder.
3203
+ # - storage.managedFolders.get - Read managed folder metadata.
3204
+ # - storage.managedFolders.getIamPolicy - Read managed folder IAM policy.
3205
+ # - storage.managedFolders.create - Create managed folder.
3206
+ # - storage.managedFolders.list - List managed folders.
3207
+ # - storage.managedFolders.setIamPolicy - Update managed folder IAM policy.
2545
3208
  # Corresponds to the JSON property `permissions`
2546
3209
  # @return [Array<String>]
2547
3210
  attr_accessor :permissions