google-apis-storage_v1 0.29.0 → 0.55.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
@@ -1312,10 +1822,137 @@ module Google
1312
1822
  end
1313
1823
  end
1314
1824
 
1825
+ # A folder. Only available in buckets with hierarchical namespace enabled.
1826
+ class Folder
1827
+ include Google::Apis::Core::Hashable
1828
+
1829
+ # The name of the bucket containing this folder.
1830
+ # Corresponds to the JSON property `bucket`
1831
+ # @return [String]
1832
+ attr_accessor :bucket
1833
+
1834
+ # The creation time of the folder in RFC 3339 format.
1835
+ # Corresponds to the JSON property `createTime`
1836
+ # @return [DateTime]
1837
+ attr_accessor :create_time
1838
+
1839
+ # The ID of the folder, including the bucket name, folder name.
1840
+ # Corresponds to the JSON property `id`
1841
+ # @return [String]
1842
+ attr_accessor :id
1843
+
1844
+ # The kind of item this is. For folders, this is always storage#folder.
1845
+ # Corresponds to the JSON property `kind`
1846
+ # @return [String]
1847
+ attr_accessor :kind
1848
+
1849
+ # The version of the metadata for this folder. Used for preconditions and for
1850
+ # detecting changes in metadata.
1851
+ # Corresponds to the JSON property `metageneration`
1852
+ # @return [Fixnum]
1853
+ attr_accessor :metageneration
1854
+
1855
+ # The name of the folder. Required if not specified by URL parameter.
1856
+ # Corresponds to the JSON property `name`
1857
+ # @return [String]
1858
+ attr_accessor :name
1859
+
1860
+ # Only present if the folder is part of an ongoing rename folder operation.
1861
+ # Contains information which can be used to query the operation status.
1862
+ # Corresponds to the JSON property `pendingRenameInfo`
1863
+ # @return [Google::Apis::StorageV1::Folder::PendingRenameInfo]
1864
+ attr_accessor :pending_rename_info
1865
+
1866
+ # The link to this folder.
1867
+ # Corresponds to the JSON property `selfLink`
1868
+ # @return [String]
1869
+ attr_accessor :self_link
1870
+
1871
+ # The modification time of the folder metadata in RFC 3339 format.
1872
+ # Corresponds to the JSON property `updateTime`
1873
+ # @return [DateTime]
1874
+ attr_accessor :update_time
1875
+
1876
+ def initialize(**args)
1877
+ update!(**args)
1878
+ end
1879
+
1880
+ # Update properties of this object
1881
+ def update!(**args)
1882
+ @bucket = args[:bucket] if args.key?(:bucket)
1883
+ @create_time = args[:create_time] if args.key?(:create_time)
1884
+ @id = args[:id] if args.key?(:id)
1885
+ @kind = args[:kind] if args.key?(:kind)
1886
+ @metageneration = args[:metageneration] if args.key?(:metageneration)
1887
+ @name = args[:name] if args.key?(:name)
1888
+ @pending_rename_info = args[:pending_rename_info] if args.key?(:pending_rename_info)
1889
+ @self_link = args[:self_link] if args.key?(:self_link)
1890
+ @update_time = args[:update_time] if args.key?(:update_time)
1891
+ end
1892
+
1893
+ # Only present if the folder is part of an ongoing rename folder operation.
1894
+ # Contains information which can be used to query the operation status.
1895
+ class PendingRenameInfo
1896
+ include Google::Apis::Core::Hashable
1897
+
1898
+ # The ID of the rename folder operation.
1899
+ # Corresponds to the JSON property `operationId`
1900
+ # @return [String]
1901
+ attr_accessor :operation_id
1902
+
1903
+ def initialize(**args)
1904
+ update!(**args)
1905
+ end
1906
+
1907
+ # Update properties of this object
1908
+ def update!(**args)
1909
+ @operation_id = args[:operation_id] if args.key?(:operation_id)
1910
+ end
1911
+ end
1912
+ end
1913
+
1914
+ # A list of folders.
1915
+ class Folders
1916
+ include Google::Apis::Core::Hashable
1917
+
1918
+ # The list of items.
1919
+ # Corresponds to the JSON property `items`
1920
+ # @return [Array<Google::Apis::StorageV1::Folder>]
1921
+ attr_accessor :items
1922
+
1923
+ # The kind of item this is. For lists of folders, this is always storage#folders.
1924
+ # Corresponds to the JSON property `kind`
1925
+ # @return [String]
1926
+ attr_accessor :kind
1927
+
1928
+ # The continuation token, used to page through large result sets. Provide this
1929
+ # value in a subsequent request to return the next page of results.
1930
+ # Corresponds to the JSON property `nextPageToken`
1931
+ # @return [String]
1932
+ attr_accessor :next_page_token
1933
+
1934
+ def initialize(**args)
1935
+ update!(**args)
1936
+ end
1937
+
1938
+ # Update properties of this object
1939
+ def update!(**args)
1940
+ @items = args[:items] if args.key?(:items)
1941
+ @kind = args[:kind] if args.key?(:kind)
1942
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
1943
+ end
1944
+ end
1945
+
1315
1946
  # The response message for storage.buckets.operations.list.
1316
1947
  class GoogleLongrunningListOperationsResponse
1317
1948
  include Google::Apis::Core::Hashable
1318
1949
 
1950
+ # The kind of item this is. For lists of operations, this is always storage#
1951
+ # operations.
1952
+ # Corresponds to the JSON property `kind`
1953
+ # @return [String]
1954
+ attr_accessor :kind
1955
+
1319
1956
  # The continuation token, used to page through large result sets. Provide this
1320
1957
  # value in a subsequent request to return the next page of results.
1321
1958
  # Corresponds to the JSON property `nextPageToken`
@@ -1333,6 +1970,7 @@ module Google
1333
1970
 
1334
1971
  # Update properties of this object
1335
1972
  def update!(**args)
1973
+ @kind = args[:kind] if args.key?(:kind)
1336
1974
  @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
1337
1975
  @operations = args[:operations] if args.key?(:operations)
1338
1976
  end
@@ -1360,6 +1998,11 @@ module Google
1360
1998
  # @return [Google::Apis::StorageV1::GoogleRpcStatus]
1361
1999
  attr_accessor :error
1362
2000
 
2001
+ # The kind of item this is. For operations, this is always storage#operation.
2002
+ # Corresponds to the JSON property `kind`
2003
+ # @return [String]
2004
+ attr_accessor :kind
2005
+
1363
2006
  # Service-specific metadata associated with the operation. It typically contains
1364
2007
  # progress information and common metadata such as create time. Some services
1365
2008
  # might not provide such metadata. Any method that returns a long-running
@@ -1386,6 +2029,11 @@ module Google
1386
2029
  # @return [Hash<String,Object>]
1387
2030
  attr_accessor :response
1388
2031
 
2032
+ # The link to this long running operation.
2033
+ # Corresponds to the JSON property `selfLink`
2034
+ # @return [String]
2035
+ attr_accessor :self_link
2036
+
1389
2037
  def initialize(**args)
1390
2038
  update!(**args)
1391
2039
  end
@@ -1394,9 +2042,11 @@ module Google
1394
2042
  def update!(**args)
1395
2043
  @done = args[:done] if args.key?(:done)
1396
2044
  @error = args[:error] if args.key?(:error)
2045
+ @kind = args[:kind] if args.key?(:kind)
1397
2046
  @metadata = args[:metadata] if args.key?(:metadata)
1398
2047
  @name = args[:name] if args.key?(:name)
1399
2048
  @response = args[:response] if args.key?(:response)
2049
+ @self_link = args[:self_link] if args.key?(:self_link)
1400
2050
  end
1401
2051
  end
1402
2052
 
@@ -1817,9 +2467,17 @@ module Google
1817
2467
  # @return [String]
1818
2468
  attr_accessor :content_type
1819
2469
 
2470
+ # User-defined or system-defined object contexts. Each object context is a key-
2471
+ # payload pair, where the key provides the identification and the payload holds
2472
+ # the associated value and additional metadata.
2473
+ # Corresponds to the JSON property `contexts`
2474
+ # @return [Google::Apis::StorageV1::Object::Contexts]
2475
+ attr_accessor :contexts
2476
+
1820
2477
  # CRC32c checksum, as described in RFC 4960, Appendix B; encoded using base64 in
1821
2478
  # big-endian byte order. For more information about using the CRC32c checksum,
1822
- # see Hashes and ETags: Best Practices.
2479
+ # see [Data Validation and Change Detection](https://cloud.google.com/storage/
2480
+ # docs/data-validation).
1823
2481
  # Corresponds to the JSON property `crc32c`
1824
2482
  # @return [String]
1825
2483
  attr_accessor :crc32c
@@ -1886,7 +2544,8 @@ module Google
1886
2544
  attr_accessor :kms_key_name
1887
2545
 
1888
2546
  # MD5 hash of the data; encoded using base64. For more information about using
1889
- # the MD5 hash, see Hashes and ETags: Best Practices.
2547
+ # the MD5 hash, see [Data Validation and Change Detection](https://cloud.google.
2548
+ # com/storage/docs/data-validation).
1890
2549
  # Corresponds to the JSON property `md5Hash`
1891
2550
  # @return [String]
1892
2551
  attr_accessor :md5_hash
@@ -1919,6 +2578,13 @@ module Google
1919
2578
  # @return [Google::Apis::StorageV1::Object::Owner]
1920
2579
  attr_accessor :owner
1921
2580
 
2581
+ # Restore token used to differentiate deleted objects with the same name and
2582
+ # generation. This field is only returned for deleted objects in hierarchical
2583
+ # namespace buckets.
2584
+ # Corresponds to the JSON property `restoreToken`
2585
+ # @return [String]
2586
+ attr_accessor :restore_token
2587
+
1922
2588
  # A collection of object level retention parameters.
1923
2589
  # Corresponds to the JSON property `retention`
1924
2590
  # @return [Google::Apis::StorageV1::Object::Retention]
@@ -1975,6 +2641,11 @@ module Google
1975
2641
  # @return [DateTime]
1976
2642
  attr_accessor :time_deleted
1977
2643
 
2644
+ # The time when the object was finalized.
2645
+ # Corresponds to the JSON property `timeFinalized`
2646
+ # @return [DateTime]
2647
+ attr_accessor :time_finalized
2648
+
1978
2649
  # The time at which the object's storage class was last changed. When the object
1979
2650
  # is initially created, it will be set to timeCreated.
1980
2651
  # Corresponds to the JSON property `timeStorageClassUpdated`
@@ -2004,6 +2675,7 @@ module Google
2004
2675
  @content_encoding = args[:content_encoding] if args.key?(:content_encoding)
2005
2676
  @content_language = args[:content_language] if args.key?(:content_language)
2006
2677
  @content_type = args[:content_type] if args.key?(:content_type)
2678
+ @contexts = args[:contexts] if args.key?(:contexts)
2007
2679
  @crc32c = args[:crc32c] if args.key?(:crc32c)
2008
2680
  @custom_time = args[:custom_time] if args.key?(:custom_time)
2009
2681
  @customer_encryption = args[:customer_encryption] if args.key?(:customer_encryption)
@@ -2020,6 +2692,7 @@ module Google
2020
2692
  @metageneration = args[:metageneration] if args.key?(:metageneration)
2021
2693
  @name = args[:name] if args.key?(:name)
2022
2694
  @owner = args[:owner] if args.key?(:owner)
2695
+ @restore_token = args[:restore_token] if args.key?(:restore_token)
2023
2696
  @retention = args[:retention] if args.key?(:retention)
2024
2697
  @retention_expiration_time = args[:retention_expiration_time] if args.key?(:retention_expiration_time)
2025
2698
  @self_link = args[:self_link] if args.key?(:self_link)
@@ -2029,10 +2702,32 @@ module Google
2029
2702
  @temporary_hold = args[:temporary_hold] if args.key?(:temporary_hold)
2030
2703
  @time_created = args[:time_created] if args.key?(:time_created)
2031
2704
  @time_deleted = args[:time_deleted] if args.key?(:time_deleted)
2705
+ @time_finalized = args[:time_finalized] if args.key?(:time_finalized)
2032
2706
  @time_storage_class_updated = args[:time_storage_class_updated] if args.key?(:time_storage_class_updated)
2033
2707
  @updated = args[:updated] if args.key?(:updated)
2034
2708
  end
2035
2709
 
2710
+ # User-defined or system-defined object contexts. Each object context is a key-
2711
+ # payload pair, where the key provides the identification and the payload holds
2712
+ # the associated value and additional metadata.
2713
+ class Contexts
2714
+ include Google::Apis::Core::Hashable
2715
+
2716
+ # User-defined object contexts.
2717
+ # Corresponds to the JSON property `custom`
2718
+ # @return [Hash<String,Google::Apis::StorageV1::ObjectCustomContextPayload>]
2719
+ attr_accessor :custom
2720
+
2721
+ def initialize(**args)
2722
+ update!(**args)
2723
+ end
2724
+
2725
+ # Update properties of this object
2726
+ def update!(**args)
2727
+ @custom = args[:custom] if args.key?(:custom)
2728
+ end
2729
+ end
2730
+
2036
2731
  # Metadata of customer-supplied encryption key, if the object is encrypted by
2037
2732
  # such a key.
2038
2733
  class CustomerEncryption
@@ -2265,6 +2960,37 @@ module Google
2265
2960
  end
2266
2961
  end
2267
2962
 
2963
+ # The payload of a single user-defined object context.
2964
+ class ObjectCustomContextPayload
2965
+ include Google::Apis::Core::Hashable
2966
+
2967
+ # The time at which the object context was created in RFC 3339 format.
2968
+ # Corresponds to the JSON property `createTime`
2969
+ # @return [DateTime]
2970
+ attr_accessor :create_time
2971
+
2972
+ # The time at which the object context was last updated in RFC 3339 format.
2973
+ # Corresponds to the JSON property `updateTime`
2974
+ # @return [DateTime]
2975
+ attr_accessor :update_time
2976
+
2977
+ # The value of the object context.
2978
+ # Corresponds to the JSON property `value`
2979
+ # @return [String]
2980
+ attr_accessor :value
2981
+
2982
+ def initialize(**args)
2983
+ update!(**args)
2984
+ end
2985
+
2986
+ # Update properties of this object
2987
+ def update!(**args)
2988
+ @create_time = args[:create_time] if args.key?(:create_time)
2989
+ @update_time = args[:update_time] if args.key?(:update_time)
2990
+ @value = args[:value] if args.key?(:value)
2991
+ end
2992
+ end
2993
+
2268
2994
  # A list of objects.
2269
2995
  class Objects
2270
2996
  include Google::Apis::Core::Hashable
@@ -2367,23 +3093,23 @@ module Google
2367
3093
 
2368
3094
  # A collection of identifiers for members who may assume the provided role.
2369
3095
  # Recognized identifiers are as follows:
2370
- # - allUsers A special identifier that represents anyone on the internet; with
3096
+ # - allUsers - A special identifier that represents anyone on the internet; with
2371
3097
  # or without a Google account.
2372
- # - allAuthenticatedUsers A special identifier that represents anyone who is
3098
+ # - allAuthenticatedUsers - A special identifier that represents anyone who is
2373
3099
  # authenticated with a Google account or a service account.
2374
- # - user:emailid An email address that represents a specific account. For
3100
+ # - user:emailid - An email address that represents a specific account. For
2375
3101
  # example, user:alice@gmail.com or user:joe@example.com.
2376
- # - serviceAccount:emailid An email address that represents a service account.
3102
+ # - serviceAccount:emailid - An email address that represents a service account.
2377
3103
  # For example, serviceAccount:my-other-app@appspot.gserviceaccount.com .
2378
- # - group:emailid An email address that represents a Google group. For example,
3104
+ # - group:emailid - An email address that represents a Google group. For example,
2379
3105
  # group:admins@example.com.
2380
- # - domain:domain A Google Apps domain name that represents all the users of
3106
+ # - domain:domain - A Google Apps domain name that represents all the users of
2381
3107
  # that domain. For example, domain:google.com or domain:example.com.
2382
- # - projectOwner:projectid Owners of the given project. For example,
3108
+ # - projectOwner:projectid - Owners of the given project. For example,
2383
3109
  # projectOwner:my-example-project
2384
- # - projectEditor:projectid Editors of the given project. For example,
3110
+ # - projectEditor:projectid - Editors of the given project. For example,
2385
3111
  # projectEditor:my-example-project
2386
- # - projectViewer:projectid Viewers of the given project. For example,
3112
+ # - projectViewer:projectid - Viewers of the given project. For example,
2387
3113
  # projectViewer:my-example-project
2388
3114
  # Corresponds to the JSON property `members`
2389
3115
  # @return [Array<String>]
@@ -2394,23 +3120,23 @@ module Google
2394
3120
  # ACLs, and legacy IAM roles, which do map directly to ACL permissions. All
2395
3121
  # roles are of the format roles/storage.specificRole.
2396
3122
  # 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
3123
+ # - roles/storage.admin - Full control of Google Cloud Storage resources.
3124
+ # - roles/storage.objectViewer - Read-Only access to Google Cloud Storage
2399
3125
  # objects.
2400
- # - roles/storage.objectCreator Access to create objects in Google Cloud
3126
+ # - roles/storage.objectCreator - Access to create objects in Google Cloud
2401
3127
  # Storage.
2402
- # - roles/storage.objectAdmin Full control of Google Cloud Storage objects.
3128
+ # - roles/storage.objectAdmin - Full control of Google Cloud Storage objects.
2403
3129
  # The legacy IAM roles are:
2404
- # - roles/storage.legacyObjectReader Read-only access to objects without
3130
+ # - roles/storage.legacyObjectReader - Read-only access to objects without
2405
3131
  # listing. Equivalent to an ACL entry on an object with the READER role.
2406
- # - roles/storage.legacyObjectOwner Read/write access to existing objects
3132
+ # - roles/storage.legacyObjectOwner - Read/write access to existing objects
2407
3133
  # without listing. Equivalent to an ACL entry on an object with the OWNER role.
2408
- # - roles/storage.legacyBucketReader Read access to buckets with object
3134
+ # - roles/storage.legacyBucketReader - Read access to buckets with object
2409
3135
  # listing. Equivalent to an ACL entry on a bucket with the READER role.
2410
- # - roles/storage.legacyBucketWriter Read access to buckets with object
3136
+ # - roles/storage.legacyBucketWriter - Read access to buckets with object
2411
3137
  # listing/creation/deletion. Equivalent to an ACL entry on a bucket with the
2412
3138
  # WRITER role.
2413
- # - roles/storage.legacyBucketOwner Read and write access to existing buckets
3139
+ # - roles/storage.legacyBucketOwner - Read and write access to existing buckets
2414
3140
  # with object listing/creation/deletion. Equivalent to an ACL entry on a bucket
2415
3141
  # with the OWNER role.
2416
3142
  # Corresponds to the JSON property `role`
@@ -2430,6 +3156,59 @@ module Google
2430
3156
  end
2431
3157
  end
2432
3158
 
3159
+ # A Relocate Bucket request.
3160
+ class RelocateBucketRequest
3161
+ include Google::Apis::Core::Hashable
3162
+
3163
+ # The bucket's new custom placement configuration if relocating to a Custom Dual
3164
+ # Region.
3165
+ # Corresponds to the JSON property `destinationCustomPlacementConfig`
3166
+ # @return [Google::Apis::StorageV1::RelocateBucketRequest::DestinationCustomPlacementConfig]
3167
+ attr_accessor :destination_custom_placement_config
3168
+
3169
+ # The new location the bucket will be relocated to.
3170
+ # Corresponds to the JSON property `destinationLocation`
3171
+ # @return [String]
3172
+ attr_accessor :destination_location
3173
+
3174
+ # If true, validate the operation, but do not actually relocate the bucket.
3175
+ # Corresponds to the JSON property `validateOnly`
3176
+ # @return [Boolean]
3177
+ attr_accessor :validate_only
3178
+ alias_method :validate_only?, :validate_only
3179
+
3180
+ def initialize(**args)
3181
+ update!(**args)
3182
+ end
3183
+
3184
+ # Update properties of this object
3185
+ def update!(**args)
3186
+ @destination_custom_placement_config = args[:destination_custom_placement_config] if args.key?(:destination_custom_placement_config)
3187
+ @destination_location = args[:destination_location] if args.key?(:destination_location)
3188
+ @validate_only = args[:validate_only] if args.key?(:validate_only)
3189
+ end
3190
+
3191
+ # The bucket's new custom placement configuration if relocating to a Custom Dual
3192
+ # Region.
3193
+ class DestinationCustomPlacementConfig
3194
+ include Google::Apis::Core::Hashable
3195
+
3196
+ # The list of regional locations in which data is placed.
3197
+ # Corresponds to the JSON property `dataLocations`
3198
+ # @return [Array<String>]
3199
+ attr_accessor :data_locations
3200
+
3201
+ def initialize(**args)
3202
+ update!(**args)
3203
+ end
3204
+
3205
+ # Update properties of this object
3206
+ def update!(**args)
3207
+ @data_locations = args[:data_locations] if args.key?(:data_locations)
3208
+ end
3209
+ end
3210
+ end
3211
+
2433
3212
  # A rewrite response.
2434
3213
  class RewriteResponse
2435
3214
  include Google::Apis::Core::Hashable
@@ -2522,26 +3301,26 @@ module Google
2522
3301
  # The permissions held by the caller. Permissions are always of the format
2523
3302
  # storage.resource.capability, where resource is one of buckets, objects, or
2524
3303
  # 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.
3304
+ # - storage.buckets.delete - Delete bucket.
3305
+ # - storage.buckets.get - Read bucket metadata.
3306
+ # - storage.buckets.getIamPolicy - Read bucket IAM policy.
3307
+ # - storage.buckets.create - Create bucket.
3308
+ # - storage.buckets.list - List buckets.
3309
+ # - storage.buckets.setIamPolicy - Update bucket IAM policy.
3310
+ # - storage.buckets.update - Update bucket metadata.
3311
+ # - storage.objects.delete - Delete object.
3312
+ # - storage.objects.get - Read object data and metadata.
3313
+ # - storage.objects.getIamPolicy - Read object IAM policy.
3314
+ # - storage.objects.create - Create object.
3315
+ # - storage.objects.list - List objects.
3316
+ # - storage.objects.setIamPolicy - Update object IAM policy.
3317
+ # - storage.objects.update - Update object metadata.
3318
+ # - storage.managedFolders.delete - Delete managed folder.
3319
+ # - storage.managedFolders.get - Read managed folder metadata.
3320
+ # - storage.managedFolders.getIamPolicy - Read managed folder IAM policy.
3321
+ # - storage.managedFolders.create - Create managed folder.
3322
+ # - storage.managedFolders.list - List managed folders.
3323
+ # - storage.managedFolders.setIamPolicy - Update managed folder IAM policy.
2545
3324
  # Corresponds to the JSON property `permissions`
2546
3325
  # @return [Array<String>]
2547
3326
  attr_accessor :permissions