google-apis-storage_v1 0.29.0 → 0.56.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)
@@ -388,19 +577,155 @@ module Google
388
577
  class Encryption
389
578
  include Google::Apis::Core::Hashable
390
579
 
580
+ # If set, the new objects created in this bucket must comply with this
581
+ # enforcement config. Changing this has no effect on existing objects; it
582
+ # applies to new objects only. If omitted, the new objects are allowed to be
583
+ # encrypted with Customer Managed Encryption type by default.
584
+ # Corresponds to the JSON property `customerManagedEncryptionEnforcementConfig`
585
+ # @return [Google::Apis::StorageV1::Bucket::Encryption::CustomerManagedEncryptionEnforcementConfig]
586
+ attr_accessor :customer_managed_encryption_enforcement_config
587
+
588
+ # If set, the new objects created in this bucket must comply with this
589
+ # enforcement config. Changing this has no effect on existing objects; it
590
+ # applies to new objects only. If omitted, the new objects are allowed to be
591
+ # encrypted with Customer Supplied Encryption type by default.
592
+ # Corresponds to the JSON property `customerSuppliedEncryptionEnforcementConfig`
593
+ # @return [Google::Apis::StorageV1::Bucket::Encryption::CustomerSuppliedEncryptionEnforcementConfig]
594
+ attr_accessor :customer_supplied_encryption_enforcement_config
595
+
391
596
  # A Cloud KMS key that will be used to encrypt objects inserted into this bucket,
392
597
  # if no encryption method is specified.
393
598
  # Corresponds to the JSON property `defaultKmsKeyName`
394
599
  # @return [String]
395
600
  attr_accessor :default_kms_key_name
396
601
 
602
+ # If set, the new objects created in this bucket must comply with this
603
+ # enforcement config. Changing this has no effect on existing objects; it
604
+ # applies to new objects only. If omitted, the new objects are allowed to be
605
+ # encrypted with Google Managed Encryption type by default.
606
+ # Corresponds to the JSON property `googleManagedEncryptionEnforcementConfig`
607
+ # @return [Google::Apis::StorageV1::Bucket::Encryption::GoogleManagedEncryptionEnforcementConfig]
608
+ attr_accessor :google_managed_encryption_enforcement_config
609
+
397
610
  def initialize(**args)
398
611
  update!(**args)
399
612
  end
400
613
 
401
614
  # Update properties of this object
402
615
  def update!(**args)
616
+ @customer_managed_encryption_enforcement_config = args[:customer_managed_encryption_enforcement_config] if args.key?(:customer_managed_encryption_enforcement_config)
617
+ @customer_supplied_encryption_enforcement_config = args[:customer_supplied_encryption_enforcement_config] if args.key?(:customer_supplied_encryption_enforcement_config)
403
618
  @default_kms_key_name = args[:default_kms_key_name] if args.key?(:default_kms_key_name)
619
+ @google_managed_encryption_enforcement_config = args[:google_managed_encryption_enforcement_config] if args.key?(:google_managed_encryption_enforcement_config)
620
+ end
621
+
622
+ # If set, the new objects created in this bucket must comply with this
623
+ # enforcement config. Changing this has no effect on existing objects; it
624
+ # applies to new objects only. If omitted, the new objects are allowed to be
625
+ # encrypted with Customer Managed Encryption type by default.
626
+ class CustomerManagedEncryptionEnforcementConfig
627
+ include Google::Apis::Core::Hashable
628
+
629
+ # Server-determined value that indicates the time from which configuration was
630
+ # enforced and effective. This value is in RFC 3339 format.
631
+ # Corresponds to the JSON property `effectiveTime`
632
+ # @return [DateTime]
633
+ attr_accessor :effective_time
634
+
635
+ # Restriction mode for Customer-Managed Encryption Keys. Defaults to
636
+ # NotRestricted.
637
+ # Corresponds to the JSON property `restrictionMode`
638
+ # @return [String]
639
+ attr_accessor :restriction_mode
640
+
641
+ def initialize(**args)
642
+ update!(**args)
643
+ end
644
+
645
+ # Update properties of this object
646
+ def update!(**args)
647
+ @effective_time = args[:effective_time] if args.key?(:effective_time)
648
+ @restriction_mode = args[:restriction_mode] if args.key?(:restriction_mode)
649
+ end
650
+ end
651
+
652
+ # If set, the new objects created in this bucket must comply with this
653
+ # enforcement config. Changing this has no effect on existing objects; it
654
+ # applies to new objects only. If omitted, the new objects are allowed to be
655
+ # encrypted with Customer Supplied Encryption type by default.
656
+ class CustomerSuppliedEncryptionEnforcementConfig
657
+ include Google::Apis::Core::Hashable
658
+
659
+ # Server-determined value that indicates the time from which configuration was
660
+ # enforced and effective. This value is in RFC 3339 format.
661
+ # Corresponds to the JSON property `effectiveTime`
662
+ # @return [DateTime]
663
+ attr_accessor :effective_time
664
+
665
+ # Restriction mode for Customer-Supplied Encryption Keys. Defaults to
666
+ # NotRestricted.
667
+ # Corresponds to the JSON property `restrictionMode`
668
+ # @return [String]
669
+ attr_accessor :restriction_mode
670
+
671
+ def initialize(**args)
672
+ update!(**args)
673
+ end
674
+
675
+ # Update properties of this object
676
+ def update!(**args)
677
+ @effective_time = args[:effective_time] if args.key?(:effective_time)
678
+ @restriction_mode = args[:restriction_mode] if args.key?(:restriction_mode)
679
+ end
680
+ end
681
+
682
+ # If set, the new objects created in this bucket must comply with this
683
+ # enforcement config. Changing this has no effect on existing objects; it
684
+ # applies to new objects only. If omitted, the new objects are allowed to be
685
+ # encrypted with Google Managed Encryption type by default.
686
+ class GoogleManagedEncryptionEnforcementConfig
687
+ include Google::Apis::Core::Hashable
688
+
689
+ # Server-determined value that indicates the time from which configuration was
690
+ # enforced and effective. This value is in RFC 3339 format.
691
+ # Corresponds to the JSON property `effectiveTime`
692
+ # @return [DateTime]
693
+ attr_accessor :effective_time
694
+
695
+ # Restriction mode for Google-Managed Encryption Keys. Defaults to NotRestricted.
696
+ # Corresponds to the JSON property `restrictionMode`
697
+ # @return [String]
698
+ attr_accessor :restriction_mode
699
+
700
+ def initialize(**args)
701
+ update!(**args)
702
+ end
703
+
704
+ # Update properties of this object
705
+ def update!(**args)
706
+ @effective_time = args[:effective_time] if args.key?(:effective_time)
707
+ @restriction_mode = args[:restriction_mode] if args.key?(:restriction_mode)
708
+ end
709
+ end
710
+ end
711
+
712
+ # The bucket's hierarchical namespace configuration.
713
+ class HierarchicalNamespace
714
+ include Google::Apis::Core::Hashable
715
+
716
+ # When set to true, hierarchical namespace is enabled for this bucket.
717
+ # Corresponds to the JSON property `enabled`
718
+ # @return [Boolean]
719
+ attr_accessor :enabled
720
+ alias_method :enabled?, :enabled
721
+
722
+ def initialize(**args)
723
+ update!(**args)
724
+ end
725
+
726
+ # Update properties of this object
727
+ def update!(**args)
728
+ @enabled = args[:enabled] if args.key?(:enabled)
404
729
  end
405
730
  end
406
731
 
@@ -502,8 +827,104 @@ module Google
502
827
  end
503
828
  end
504
829
 
505
- # The bucket's lifecycle configuration. See lifecycle management for more
506
- # information.
830
+ # The bucket's IP filter configuration. Specifies the network sources that are
831
+ # allowed to access the operations on the bucket, as well as its underlying
832
+ # objects. Only enforced when the mode is set to 'Enabled'.
833
+ class IpFilter
834
+ include Google::Apis::Core::Hashable
835
+
836
+ # Whether to allow all service agents to access the bucket regardless of the IP
837
+ # filter configuration.
838
+ # Corresponds to the JSON property `allowAllServiceAgentAccess`
839
+ # @return [Boolean]
840
+ attr_accessor :allow_all_service_agent_access
841
+ alias_method :allow_all_service_agent_access?, :allow_all_service_agent_access
842
+
843
+ # Whether to allow cross-org VPCs in the bucket's IP filter configuration.
844
+ # Corresponds to the JSON property `allowCrossOrgVpcs`
845
+ # @return [Boolean]
846
+ attr_accessor :allow_cross_org_vpcs
847
+ alias_method :allow_cross_org_vpcs?, :allow_cross_org_vpcs
848
+
849
+ # The mode of the IP filter. Valid values are 'Enabled' and 'Disabled'.
850
+ # Corresponds to the JSON property `mode`
851
+ # @return [String]
852
+ attr_accessor :mode
853
+
854
+ # The public network source of the bucket's IP filter.
855
+ # Corresponds to the JSON property `publicNetworkSource`
856
+ # @return [Google::Apis::StorageV1::Bucket::IpFilter::PublicNetworkSource]
857
+ attr_accessor :public_network_source
858
+
859
+ # The list of [VPC network](https://cloud.google.com/vpc/docs/vpc) sources of
860
+ # the bucket's IP filter.
861
+ # Corresponds to the JSON property `vpcNetworkSources`
862
+ # @return [Array<Google::Apis::StorageV1::Bucket::IpFilter::VpcNetworkSource>]
863
+ attr_accessor :vpc_network_sources
864
+
865
+ def initialize(**args)
866
+ update!(**args)
867
+ end
868
+
869
+ # Update properties of this object
870
+ def update!(**args)
871
+ @allow_all_service_agent_access = args[:allow_all_service_agent_access] if args.key?(:allow_all_service_agent_access)
872
+ @allow_cross_org_vpcs = args[:allow_cross_org_vpcs] if args.key?(:allow_cross_org_vpcs)
873
+ @mode = args[:mode] if args.key?(:mode)
874
+ @public_network_source = args[:public_network_source] if args.key?(:public_network_source)
875
+ @vpc_network_sources = args[:vpc_network_sources] if args.key?(:vpc_network_sources)
876
+ end
877
+
878
+ # The public network source of the bucket's IP filter.
879
+ class PublicNetworkSource
880
+ include Google::Apis::Core::Hashable
881
+
882
+ # The list of public IPv4, IPv6 cidr ranges that are allowed to access the
883
+ # bucket.
884
+ # Corresponds to the JSON property `allowedIpCidrRanges`
885
+ # @return [Array<String>]
886
+ attr_accessor :allowed_ip_cidr_ranges
887
+
888
+ def initialize(**args)
889
+ update!(**args)
890
+ end
891
+
892
+ # Update properties of this object
893
+ def update!(**args)
894
+ @allowed_ip_cidr_ranges = args[:allowed_ip_cidr_ranges] if args.key?(:allowed_ip_cidr_ranges)
895
+ end
896
+ end
897
+
898
+ #
899
+ class VpcNetworkSource
900
+ include Google::Apis::Core::Hashable
901
+
902
+ # The list of IPv4, IPv6 cidr ranges subnetworks that are allowed to access the
903
+ # bucket.
904
+ # Corresponds to the JSON property `allowedIpCidrRanges`
905
+ # @return [Array<String>]
906
+ attr_accessor :allowed_ip_cidr_ranges
907
+
908
+ # Name of the network. Format: projects/`PROJECT_ID`/global/networks/`
909
+ # NETWORK_NAME`
910
+ # Corresponds to the JSON property `network`
911
+ # @return [String]
912
+ attr_accessor :network
913
+
914
+ def initialize(**args)
915
+ update!(**args)
916
+ end
917
+
918
+ # Update properties of this object
919
+ def update!(**args)
920
+ @allowed_ip_cidr_ranges = args[:allowed_ip_cidr_ranges] if args.key?(:allowed_ip_cidr_ranges)
921
+ @network = args[:network] if args.key?(:network)
922
+ end
923
+ end
924
+ end
925
+
926
+ # The bucket's lifecycle configuration. See [Lifecycle Management](https://cloud.
927
+ # google.com/storage/docs/lifecycle) for more information.
507
928
  class Lifecycle
508
929
  include Google::Apis::Core::Hashable
509
930
 
@@ -809,7 +1230,7 @@ module Google
809
1230
  # @return [DateTime]
810
1231
  attr_accessor :effective_time
811
1232
 
812
- # The period of time in seconds, that soft-deleted objects in the bucket will be
1233
+ # The duration in seconds that soft-deleted objects in the bucket will be
813
1234
  # retained and cannot be permanently deleted.
814
1235
  # Corresponds to the JSON property `retentionDurationSeconds`
815
1236
  # @return [Fixnum]
@@ -847,8 +1268,8 @@ module Google
847
1268
  end
848
1269
 
849
1270
  # 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.
1271
+ # accessing bucket contents as a web site. See the [Static Website Examples](
1272
+ # https://cloud.google.com/storage/docs/static-website) for more information.
852
1273
  class Website
853
1274
  include Google::Apis::Core::Hashable
854
1275
 
@@ -1022,6 +1443,95 @@ module Google
1022
1443
  end
1023
1444
  end
1024
1445
 
1446
+ # The storage layout configuration of a bucket.
1447
+ class BucketStorageLayout
1448
+ include Google::Apis::Core::Hashable
1449
+
1450
+ # The name of the bucket.
1451
+ # Corresponds to the JSON property `bucket`
1452
+ # @return [String]
1453
+ attr_accessor :bucket
1454
+
1455
+ # The bucket's custom placement configuration for Custom Dual Regions.
1456
+ # Corresponds to the JSON property `customPlacementConfig`
1457
+ # @return [Google::Apis::StorageV1::BucketStorageLayout::CustomPlacementConfig]
1458
+ attr_accessor :custom_placement_config
1459
+
1460
+ # The bucket's hierarchical namespace configuration.
1461
+ # Corresponds to the JSON property `hierarchicalNamespace`
1462
+ # @return [Google::Apis::StorageV1::BucketStorageLayout::HierarchicalNamespace]
1463
+ attr_accessor :hierarchical_namespace
1464
+
1465
+ # The kind of item this is. For storage layout, this is always storage#
1466
+ # storageLayout.
1467
+ # Corresponds to the JSON property `kind`
1468
+ # @return [String]
1469
+ attr_accessor :kind
1470
+
1471
+ # The location of the bucket.
1472
+ # Corresponds to the JSON property `location`
1473
+ # @return [String]
1474
+ attr_accessor :location
1475
+
1476
+ # The type of the bucket location.
1477
+ # Corresponds to the JSON property `locationType`
1478
+ # @return [String]
1479
+ attr_accessor :location_type
1480
+
1481
+ def initialize(**args)
1482
+ update!(**args)
1483
+ end
1484
+
1485
+ # Update properties of this object
1486
+ def update!(**args)
1487
+ @bucket = args[:bucket] if args.key?(:bucket)
1488
+ @custom_placement_config = args[:custom_placement_config] if args.key?(:custom_placement_config)
1489
+ @hierarchical_namespace = args[:hierarchical_namespace] if args.key?(:hierarchical_namespace)
1490
+ @kind = args[:kind] if args.key?(:kind)
1491
+ @location = args[:location] if args.key?(:location)
1492
+ @location_type = args[:location_type] if args.key?(:location_type)
1493
+ end
1494
+
1495
+ # The bucket's custom placement configuration for Custom Dual Regions.
1496
+ class CustomPlacementConfig
1497
+ include Google::Apis::Core::Hashable
1498
+
1499
+ # The list of regional locations in which data is placed.
1500
+ # Corresponds to the JSON property `dataLocations`
1501
+ # @return [Array<String>]
1502
+ attr_accessor :data_locations
1503
+
1504
+ def initialize(**args)
1505
+ update!(**args)
1506
+ end
1507
+
1508
+ # Update properties of this object
1509
+ def update!(**args)
1510
+ @data_locations = args[:data_locations] if args.key?(:data_locations)
1511
+ end
1512
+ end
1513
+
1514
+ # The bucket's hierarchical namespace configuration.
1515
+ class HierarchicalNamespace
1516
+ include Google::Apis::Core::Hashable
1517
+
1518
+ # When set to true, hierarchical namespace is enabled for this bucket.
1519
+ # Corresponds to the JSON property `enabled`
1520
+ # @return [Boolean]
1521
+ attr_accessor :enabled
1522
+ alias_method :enabled?, :enabled
1523
+
1524
+ def initialize(**args)
1525
+ update!(**args)
1526
+ end
1527
+
1528
+ # Update properties of this object
1529
+ def update!(**args)
1530
+ @enabled = args[:enabled] if args.key?(:enabled)
1531
+ end
1532
+ end
1533
+ end
1534
+
1025
1535
  # A list of buckets.
1026
1536
  class Buckets
1027
1537
  include Google::Apis::Core::Hashable
@@ -1076,6 +1586,16 @@ module Google
1076
1586
  attr_accessor :copy_source_acl
1077
1587
  alias_method :copy_source_acl?, :copy_source_acl
1078
1588
 
1589
+ # Restores only the objects that were created after this time.
1590
+ # Corresponds to the JSON property `createdAfterTime`
1591
+ # @return [DateTime]
1592
+ attr_accessor :created_after_time
1593
+
1594
+ # Restores only the objects that were created before this time.
1595
+ # Corresponds to the JSON property `createdBeforeTime`
1596
+ # @return [DateTime]
1597
+ attr_accessor :created_before_time
1598
+
1079
1599
  # Restores only the objects matching any of the specified glob(s). If this
1080
1600
  # parameter is not specified, all objects will be restored within the specified
1081
1601
  # time range.
@@ -1101,6 +1621,8 @@ module Google
1101
1621
  def update!(**args)
1102
1622
  @allow_overwrite = args[:allow_overwrite] if args.key?(:allow_overwrite)
1103
1623
  @copy_source_acl = args[:copy_source_acl] if args.key?(:copy_source_acl)
1624
+ @created_after_time = args[:created_after_time] if args.key?(:created_after_time)
1625
+ @created_before_time = args[:created_before_time] if args.key?(:created_before_time)
1104
1626
  @match_globs = args[:match_globs] if args.key?(:match_globs)
1105
1627
  @soft_deleted_after_time = args[:soft_deleted_after_time] if args.key?(:soft_deleted_after_time)
1106
1628
  @soft_deleted_before_time = args[:soft_deleted_before_time] if args.key?(:soft_deleted_before_time)
@@ -1312,10 +1834,137 @@ module Google
1312
1834
  end
1313
1835
  end
1314
1836
 
1837
+ # A folder. Only available in buckets with hierarchical namespace enabled.
1838
+ class Folder
1839
+ include Google::Apis::Core::Hashable
1840
+
1841
+ # The name of the bucket containing this folder.
1842
+ # Corresponds to the JSON property `bucket`
1843
+ # @return [String]
1844
+ attr_accessor :bucket
1845
+
1846
+ # The creation time of the folder in RFC 3339 format.
1847
+ # Corresponds to the JSON property `createTime`
1848
+ # @return [DateTime]
1849
+ attr_accessor :create_time
1850
+
1851
+ # The ID of the folder, including the bucket name, folder name.
1852
+ # Corresponds to the JSON property `id`
1853
+ # @return [String]
1854
+ attr_accessor :id
1855
+
1856
+ # The kind of item this is. For folders, this is always storage#folder.
1857
+ # Corresponds to the JSON property `kind`
1858
+ # @return [String]
1859
+ attr_accessor :kind
1860
+
1861
+ # The version of the metadata for this folder. Used for preconditions and for
1862
+ # detecting changes in metadata.
1863
+ # Corresponds to the JSON property `metageneration`
1864
+ # @return [Fixnum]
1865
+ attr_accessor :metageneration
1866
+
1867
+ # The name of the folder. Required if not specified by URL parameter.
1868
+ # Corresponds to the JSON property `name`
1869
+ # @return [String]
1870
+ attr_accessor :name
1871
+
1872
+ # Only present if the folder is part of an ongoing rename folder operation.
1873
+ # Contains information which can be used to query the operation status.
1874
+ # Corresponds to the JSON property `pendingRenameInfo`
1875
+ # @return [Google::Apis::StorageV1::Folder::PendingRenameInfo]
1876
+ attr_accessor :pending_rename_info
1877
+
1878
+ # The link to this folder.
1879
+ # Corresponds to the JSON property `selfLink`
1880
+ # @return [String]
1881
+ attr_accessor :self_link
1882
+
1883
+ # The modification time of the folder metadata in RFC 3339 format.
1884
+ # Corresponds to the JSON property `updateTime`
1885
+ # @return [DateTime]
1886
+ attr_accessor :update_time
1887
+
1888
+ def initialize(**args)
1889
+ update!(**args)
1890
+ end
1891
+
1892
+ # Update properties of this object
1893
+ def update!(**args)
1894
+ @bucket = args[:bucket] if args.key?(:bucket)
1895
+ @create_time = args[:create_time] if args.key?(:create_time)
1896
+ @id = args[:id] if args.key?(:id)
1897
+ @kind = args[:kind] if args.key?(:kind)
1898
+ @metageneration = args[:metageneration] if args.key?(:metageneration)
1899
+ @name = args[:name] if args.key?(:name)
1900
+ @pending_rename_info = args[:pending_rename_info] if args.key?(:pending_rename_info)
1901
+ @self_link = args[:self_link] if args.key?(:self_link)
1902
+ @update_time = args[:update_time] if args.key?(:update_time)
1903
+ end
1904
+
1905
+ # Only present if the folder is part of an ongoing rename folder operation.
1906
+ # Contains information which can be used to query the operation status.
1907
+ class PendingRenameInfo
1908
+ include Google::Apis::Core::Hashable
1909
+
1910
+ # The ID of the rename folder operation.
1911
+ # Corresponds to the JSON property `operationId`
1912
+ # @return [String]
1913
+ attr_accessor :operation_id
1914
+
1915
+ def initialize(**args)
1916
+ update!(**args)
1917
+ end
1918
+
1919
+ # Update properties of this object
1920
+ def update!(**args)
1921
+ @operation_id = args[:operation_id] if args.key?(:operation_id)
1922
+ end
1923
+ end
1924
+ end
1925
+
1926
+ # A list of folders.
1927
+ class Folders
1928
+ include Google::Apis::Core::Hashable
1929
+
1930
+ # The list of items.
1931
+ # Corresponds to the JSON property `items`
1932
+ # @return [Array<Google::Apis::StorageV1::Folder>]
1933
+ attr_accessor :items
1934
+
1935
+ # The kind of item this is. For lists of folders, this is always storage#folders.
1936
+ # Corresponds to the JSON property `kind`
1937
+ # @return [String]
1938
+ attr_accessor :kind
1939
+
1940
+ # The continuation token, used to page through large result sets. Provide this
1941
+ # value in a subsequent request to return the next page of results.
1942
+ # Corresponds to the JSON property `nextPageToken`
1943
+ # @return [String]
1944
+ attr_accessor :next_page_token
1945
+
1946
+ def initialize(**args)
1947
+ update!(**args)
1948
+ end
1949
+
1950
+ # Update properties of this object
1951
+ def update!(**args)
1952
+ @items = args[:items] if args.key?(:items)
1953
+ @kind = args[:kind] if args.key?(:kind)
1954
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
1955
+ end
1956
+ end
1957
+
1315
1958
  # The response message for storage.buckets.operations.list.
1316
1959
  class GoogleLongrunningListOperationsResponse
1317
1960
  include Google::Apis::Core::Hashable
1318
1961
 
1962
+ # The kind of item this is. For lists of operations, this is always storage#
1963
+ # operations.
1964
+ # Corresponds to the JSON property `kind`
1965
+ # @return [String]
1966
+ attr_accessor :kind
1967
+
1319
1968
  # The continuation token, used to page through large result sets. Provide this
1320
1969
  # value in a subsequent request to return the next page of results.
1321
1970
  # Corresponds to the JSON property `nextPageToken`
@@ -1333,6 +1982,7 @@ module Google
1333
1982
 
1334
1983
  # Update properties of this object
1335
1984
  def update!(**args)
1985
+ @kind = args[:kind] if args.key?(:kind)
1336
1986
  @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
1337
1987
  @operations = args[:operations] if args.key?(:operations)
1338
1988
  end
@@ -1360,6 +2010,11 @@ module Google
1360
2010
  # @return [Google::Apis::StorageV1::GoogleRpcStatus]
1361
2011
  attr_accessor :error
1362
2012
 
2013
+ # The kind of item this is. For operations, this is always storage#operation.
2014
+ # Corresponds to the JSON property `kind`
2015
+ # @return [String]
2016
+ attr_accessor :kind
2017
+
1363
2018
  # Service-specific metadata associated with the operation. It typically contains
1364
2019
  # progress information and common metadata such as create time. Some services
1365
2020
  # might not provide such metadata. Any method that returns a long-running
@@ -1386,6 +2041,11 @@ module Google
1386
2041
  # @return [Hash<String,Object>]
1387
2042
  attr_accessor :response
1388
2043
 
2044
+ # The link to this long running operation.
2045
+ # Corresponds to the JSON property `selfLink`
2046
+ # @return [String]
2047
+ attr_accessor :self_link
2048
+
1389
2049
  def initialize(**args)
1390
2050
  update!(**args)
1391
2051
  end
@@ -1394,9 +2054,11 @@ module Google
1394
2054
  def update!(**args)
1395
2055
  @done = args[:done] if args.key?(:done)
1396
2056
  @error = args[:error] if args.key?(:error)
2057
+ @kind = args[:kind] if args.key?(:kind)
1397
2058
  @metadata = args[:metadata] if args.key?(:metadata)
1398
2059
  @name = args[:name] if args.key?(:name)
1399
2060
  @response = args[:response] if args.key?(:response)
2061
+ @self_link = args[:self_link] if args.key?(:self_link)
1400
2062
  end
1401
2063
  end
1402
2064
 
@@ -1817,9 +2479,17 @@ module Google
1817
2479
  # @return [String]
1818
2480
  attr_accessor :content_type
1819
2481
 
2482
+ # User-defined or system-defined object contexts. Each object context is a key-
2483
+ # payload pair, where the key provides the identification and the payload holds
2484
+ # the associated value and additional metadata.
2485
+ # Corresponds to the JSON property `contexts`
2486
+ # @return [Google::Apis::StorageV1::Object::Contexts]
2487
+ attr_accessor :contexts
2488
+
1820
2489
  # CRC32c checksum, as described in RFC 4960, Appendix B; encoded using base64 in
1821
2490
  # big-endian byte order. For more information about using the CRC32c checksum,
1822
- # see Hashes and ETags: Best Practices.
2491
+ # see [Data Validation and Change Detection](https://cloud.google.com/storage/
2492
+ # docs/data-validation).
1823
2493
  # Corresponds to the JSON property `crc32c`
1824
2494
  # @return [String]
1825
2495
  attr_accessor :crc32c
@@ -1886,7 +2556,8 @@ module Google
1886
2556
  attr_accessor :kms_key_name
1887
2557
 
1888
2558
  # MD5 hash of the data; encoded using base64. For more information about using
1889
- # the MD5 hash, see Hashes and ETags: Best Practices.
2559
+ # the MD5 hash, see [Data Validation and Change Detection](https://cloud.google.
2560
+ # com/storage/docs/data-validation).
1890
2561
  # Corresponds to the JSON property `md5Hash`
1891
2562
  # @return [String]
1892
2563
  attr_accessor :md5_hash
@@ -1919,6 +2590,13 @@ module Google
1919
2590
  # @return [Google::Apis::StorageV1::Object::Owner]
1920
2591
  attr_accessor :owner
1921
2592
 
2593
+ # Restore token used to differentiate deleted objects with the same name and
2594
+ # generation. This field is only returned for deleted objects in hierarchical
2595
+ # namespace buckets.
2596
+ # Corresponds to the JSON property `restoreToken`
2597
+ # @return [String]
2598
+ attr_accessor :restore_token
2599
+
1922
2600
  # A collection of object level retention parameters.
1923
2601
  # Corresponds to the JSON property `retention`
1924
2602
  # @return [Google::Apis::StorageV1::Object::Retention]
@@ -1975,6 +2653,11 @@ module Google
1975
2653
  # @return [DateTime]
1976
2654
  attr_accessor :time_deleted
1977
2655
 
2656
+ # The time when the object was finalized.
2657
+ # Corresponds to the JSON property `timeFinalized`
2658
+ # @return [DateTime]
2659
+ attr_accessor :time_finalized
2660
+
1978
2661
  # The time at which the object's storage class was last changed. When the object
1979
2662
  # is initially created, it will be set to timeCreated.
1980
2663
  # Corresponds to the JSON property `timeStorageClassUpdated`
@@ -2004,6 +2687,7 @@ module Google
2004
2687
  @content_encoding = args[:content_encoding] if args.key?(:content_encoding)
2005
2688
  @content_language = args[:content_language] if args.key?(:content_language)
2006
2689
  @content_type = args[:content_type] if args.key?(:content_type)
2690
+ @contexts = args[:contexts] if args.key?(:contexts)
2007
2691
  @crc32c = args[:crc32c] if args.key?(:crc32c)
2008
2692
  @custom_time = args[:custom_time] if args.key?(:custom_time)
2009
2693
  @customer_encryption = args[:customer_encryption] if args.key?(:customer_encryption)
@@ -2020,6 +2704,7 @@ module Google
2020
2704
  @metageneration = args[:metageneration] if args.key?(:metageneration)
2021
2705
  @name = args[:name] if args.key?(:name)
2022
2706
  @owner = args[:owner] if args.key?(:owner)
2707
+ @restore_token = args[:restore_token] if args.key?(:restore_token)
2023
2708
  @retention = args[:retention] if args.key?(:retention)
2024
2709
  @retention_expiration_time = args[:retention_expiration_time] if args.key?(:retention_expiration_time)
2025
2710
  @self_link = args[:self_link] if args.key?(:self_link)
@@ -2029,10 +2714,32 @@ module Google
2029
2714
  @temporary_hold = args[:temporary_hold] if args.key?(:temporary_hold)
2030
2715
  @time_created = args[:time_created] if args.key?(:time_created)
2031
2716
  @time_deleted = args[:time_deleted] if args.key?(:time_deleted)
2717
+ @time_finalized = args[:time_finalized] if args.key?(:time_finalized)
2032
2718
  @time_storage_class_updated = args[:time_storage_class_updated] if args.key?(:time_storage_class_updated)
2033
2719
  @updated = args[:updated] if args.key?(:updated)
2034
2720
  end
2035
2721
 
2722
+ # User-defined or system-defined object contexts. Each object context is a key-
2723
+ # payload pair, where the key provides the identification and the payload holds
2724
+ # the associated value and additional metadata.
2725
+ class Contexts
2726
+ include Google::Apis::Core::Hashable
2727
+
2728
+ # User-defined object contexts.
2729
+ # Corresponds to the JSON property `custom`
2730
+ # @return [Hash<String,Google::Apis::StorageV1::ObjectCustomContextPayload>]
2731
+ attr_accessor :custom
2732
+
2733
+ def initialize(**args)
2734
+ update!(**args)
2735
+ end
2736
+
2737
+ # Update properties of this object
2738
+ def update!(**args)
2739
+ @custom = args[:custom] if args.key?(:custom)
2740
+ end
2741
+ end
2742
+
2036
2743
  # Metadata of customer-supplied encryption key, if the object is encrypted by
2037
2744
  # such a key.
2038
2745
  class CustomerEncryption
@@ -2265,6 +2972,37 @@ module Google
2265
2972
  end
2266
2973
  end
2267
2974
 
2975
+ # The payload of a single user-defined object context.
2976
+ class ObjectCustomContextPayload
2977
+ include Google::Apis::Core::Hashable
2978
+
2979
+ # The time at which the object context was created in RFC 3339 format.
2980
+ # Corresponds to the JSON property `createTime`
2981
+ # @return [DateTime]
2982
+ attr_accessor :create_time
2983
+
2984
+ # The time at which the object context was last updated in RFC 3339 format.
2985
+ # Corresponds to the JSON property `updateTime`
2986
+ # @return [DateTime]
2987
+ attr_accessor :update_time
2988
+
2989
+ # The value of the object context.
2990
+ # Corresponds to the JSON property `value`
2991
+ # @return [String]
2992
+ attr_accessor :value
2993
+
2994
+ def initialize(**args)
2995
+ update!(**args)
2996
+ end
2997
+
2998
+ # Update properties of this object
2999
+ def update!(**args)
3000
+ @create_time = args[:create_time] if args.key?(:create_time)
3001
+ @update_time = args[:update_time] if args.key?(:update_time)
3002
+ @value = args[:value] if args.key?(:value)
3003
+ end
3004
+ end
3005
+
2268
3006
  # A list of objects.
2269
3007
  class Objects
2270
3008
  include Google::Apis::Core::Hashable
@@ -2367,23 +3105,23 @@ module Google
2367
3105
 
2368
3106
  # A collection of identifiers for members who may assume the provided role.
2369
3107
  # Recognized identifiers are as follows:
2370
- # - allUsers A special identifier that represents anyone on the internet; with
3108
+ # - allUsers - A special identifier that represents anyone on the internet; with
2371
3109
  # or without a Google account.
2372
- # - allAuthenticatedUsers A special identifier that represents anyone who is
3110
+ # - allAuthenticatedUsers - A special identifier that represents anyone who is
2373
3111
  # authenticated with a Google account or a service account.
2374
- # - user:emailid An email address that represents a specific account. For
3112
+ # - user:emailid - An email address that represents a specific account. For
2375
3113
  # example, user:alice@gmail.com or user:joe@example.com.
2376
- # - serviceAccount:emailid An email address that represents a service account.
3114
+ # - serviceAccount:emailid - An email address that represents a service account.
2377
3115
  # For example, serviceAccount:my-other-app@appspot.gserviceaccount.com .
2378
- # - group:emailid An email address that represents a Google group. For example,
3116
+ # - group:emailid - An email address that represents a Google group. For example,
2379
3117
  # group:admins@example.com.
2380
- # - domain:domain A Google Apps domain name that represents all the users of
3118
+ # - domain:domain - A Google Apps domain name that represents all the users of
2381
3119
  # that domain. For example, domain:google.com or domain:example.com.
2382
- # - projectOwner:projectid Owners of the given project. For example,
3120
+ # - projectOwner:projectid - Owners of the given project. For example,
2383
3121
  # projectOwner:my-example-project
2384
- # - projectEditor:projectid Editors of the given project. For example,
3122
+ # - projectEditor:projectid - Editors of the given project. For example,
2385
3123
  # projectEditor:my-example-project
2386
- # - projectViewer:projectid Viewers of the given project. For example,
3124
+ # - projectViewer:projectid - Viewers of the given project. For example,
2387
3125
  # projectViewer:my-example-project
2388
3126
  # Corresponds to the JSON property `members`
2389
3127
  # @return [Array<String>]
@@ -2394,23 +3132,23 @@ module Google
2394
3132
  # ACLs, and legacy IAM roles, which do map directly to ACL permissions. All
2395
3133
  # roles are of the format roles/storage.specificRole.
2396
3134
  # 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
3135
+ # - roles/storage.admin - Full control of Google Cloud Storage resources.
3136
+ # - roles/storage.objectViewer - Read-Only access to Google Cloud Storage
2399
3137
  # objects.
2400
- # - roles/storage.objectCreator Access to create objects in Google Cloud
3138
+ # - roles/storage.objectCreator - Access to create objects in Google Cloud
2401
3139
  # Storage.
2402
- # - roles/storage.objectAdmin Full control of Google Cloud Storage objects.
3140
+ # - roles/storage.objectAdmin - Full control of Google Cloud Storage objects.
2403
3141
  # The legacy IAM roles are:
2404
- # - roles/storage.legacyObjectReader Read-only access to objects without
3142
+ # - roles/storage.legacyObjectReader - Read-only access to objects without
2405
3143
  # listing. Equivalent to an ACL entry on an object with the READER role.
2406
- # - roles/storage.legacyObjectOwner Read/write access to existing objects
3144
+ # - roles/storage.legacyObjectOwner - Read/write access to existing objects
2407
3145
  # without listing. Equivalent to an ACL entry on an object with the OWNER role.
2408
- # - roles/storage.legacyBucketReader Read access to buckets with object
3146
+ # - roles/storage.legacyBucketReader - Read access to buckets with object
2409
3147
  # listing. Equivalent to an ACL entry on a bucket with the READER role.
2410
- # - roles/storage.legacyBucketWriter Read access to buckets with object
3148
+ # - roles/storage.legacyBucketWriter - Read access to buckets with object
2411
3149
  # listing/creation/deletion. Equivalent to an ACL entry on a bucket with the
2412
3150
  # WRITER role.
2413
- # - roles/storage.legacyBucketOwner Read and write access to existing buckets
3151
+ # - roles/storage.legacyBucketOwner - Read and write access to existing buckets
2414
3152
  # with object listing/creation/deletion. Equivalent to an ACL entry on a bucket
2415
3153
  # with the OWNER role.
2416
3154
  # Corresponds to the JSON property `role`
@@ -2430,6 +3168,59 @@ module Google
2430
3168
  end
2431
3169
  end
2432
3170
 
3171
+ # A Relocate Bucket request.
3172
+ class RelocateBucketRequest
3173
+ include Google::Apis::Core::Hashable
3174
+
3175
+ # The bucket's new custom placement configuration if relocating to a Custom Dual
3176
+ # Region.
3177
+ # Corresponds to the JSON property `destinationCustomPlacementConfig`
3178
+ # @return [Google::Apis::StorageV1::RelocateBucketRequest::DestinationCustomPlacementConfig]
3179
+ attr_accessor :destination_custom_placement_config
3180
+
3181
+ # The new location the bucket will be relocated to.
3182
+ # Corresponds to the JSON property `destinationLocation`
3183
+ # @return [String]
3184
+ attr_accessor :destination_location
3185
+
3186
+ # If true, validate the operation, but do not actually relocate the bucket.
3187
+ # Corresponds to the JSON property `validateOnly`
3188
+ # @return [Boolean]
3189
+ attr_accessor :validate_only
3190
+ alias_method :validate_only?, :validate_only
3191
+
3192
+ def initialize(**args)
3193
+ update!(**args)
3194
+ end
3195
+
3196
+ # Update properties of this object
3197
+ def update!(**args)
3198
+ @destination_custom_placement_config = args[:destination_custom_placement_config] if args.key?(:destination_custom_placement_config)
3199
+ @destination_location = args[:destination_location] if args.key?(:destination_location)
3200
+ @validate_only = args[:validate_only] if args.key?(:validate_only)
3201
+ end
3202
+
3203
+ # The bucket's new custom placement configuration if relocating to a Custom Dual
3204
+ # Region.
3205
+ class DestinationCustomPlacementConfig
3206
+ include Google::Apis::Core::Hashable
3207
+
3208
+ # The list of regional locations in which data is placed.
3209
+ # Corresponds to the JSON property `dataLocations`
3210
+ # @return [Array<String>]
3211
+ attr_accessor :data_locations
3212
+
3213
+ def initialize(**args)
3214
+ update!(**args)
3215
+ end
3216
+
3217
+ # Update properties of this object
3218
+ def update!(**args)
3219
+ @data_locations = args[:data_locations] if args.key?(:data_locations)
3220
+ end
3221
+ end
3222
+ end
3223
+
2433
3224
  # A rewrite response.
2434
3225
  class RewriteResponse
2435
3226
  include Google::Apis::Core::Hashable
@@ -2522,26 +3313,26 @@ module Google
2522
3313
  # The permissions held by the caller. Permissions are always of the format
2523
3314
  # storage.resource.capability, where resource is one of buckets, objects, or
2524
3315
  # 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.
3316
+ # - storage.buckets.delete - Delete bucket.
3317
+ # - storage.buckets.get - Read bucket metadata.
3318
+ # - storage.buckets.getIamPolicy - Read bucket IAM policy.
3319
+ # - storage.buckets.create - Create bucket.
3320
+ # - storage.buckets.list - List buckets.
3321
+ # - storage.buckets.setIamPolicy - Update bucket IAM policy.
3322
+ # - storage.buckets.update - Update bucket metadata.
3323
+ # - storage.objects.delete - Delete object.
3324
+ # - storage.objects.get - Read object data and metadata.
3325
+ # - storage.objects.getIamPolicy - Read object IAM policy.
3326
+ # - storage.objects.create - Create object.
3327
+ # - storage.objects.list - List objects.
3328
+ # - storage.objects.setIamPolicy - Update object IAM policy.
3329
+ # - storage.objects.update - Update object metadata.
3330
+ # - storage.managedFolders.delete - Delete managed folder.
3331
+ # - storage.managedFolders.get - Read managed folder metadata.
3332
+ # - storage.managedFolders.getIamPolicy - Read managed folder IAM policy.
3333
+ # - storage.managedFolders.create - Create managed folder.
3334
+ # - storage.managedFolders.list - List managed folders.
3335
+ # - storage.managedFolders.setIamPolicy - Update managed folder IAM policy.
2545
3336
  # Corresponds to the JSON property `permissions`
2546
3337
  # @return [Array<String>]
2547
3338
  attr_accessor :permissions