google-cloud-storage 1.35.0 → 1.54.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 46a00811174d5f74691bc49b43c14fe9a541f3c964c332eb9bccc4d2e85778cd
4
- data.tar.gz: 0425d311a50177d6321a172958a6b2afef376a2c13f3dd3d5aa5d07ce974b773
3
+ metadata.gz: 67fa1effce117003750f759eba79de92380616365652f2a19ba49b1986c75634
4
+ data.tar.gz: 9729e6dc51f15a9a5e2e0370771f980908f9d6284973503c9c4d4c1e561b8d84
5
5
  SHA512:
6
- metadata.gz: dd0fb3dd2b5d31ce65febca446c4826e72384de658bcf9bb66b349a2f8304c8494c86a6a88263dd38add67fd6083f375f436ffcad225413a7d803ee67c4a351c
7
- data.tar.gz: f62d337690f49269a0839d1dfe65f998da7fb1e6a530c151a11eb4a890fc1942321b6c34ef34c9b932b59ab33a0a74ffb6a3b082d1e6688cfd4ddf9a48b478b3
6
+ metadata.gz: ec9022c921c0714ebf7f47131c745c113bb0480a34a376ca10055ccdee024821a518d1a87f742486118d7fb3e570beaeef5746f12676d5790e6ae697439dabd9
7
+ data.tar.gz: d5e57fd75d565a8328cf79ce42374883e4da7f875c7fd9571e928f9648c05578bee5743d68465819f3e5d488469d277749aecebd44810198fd1a1ca0cac6f3c3
data/AUTHENTICATION.md CHANGED
@@ -112,15 +112,6 @@ those that produce
112
112
  post objects. For these methods, authentication using a service account JSON key file
113
113
  is required.
114
114
 
115
- [gce-how-to]: https://cloud.google.com/compute/docs/authentication#using
116
- [dev-console]: https://console.cloud.google.com/project
117
-
118
- [enable-apis]: https://raw.githubusercontent.com/GoogleCloudPlatform/gcloud-common/master/authentication/enable-apis.png
119
-
120
- [create-new-service-account]: https://raw.githubusercontent.com/GoogleCloudPlatform/gcloud-common/master/authentication/create-new-service-account.png
121
- [create-new-service-account-existing-keys]: https://raw.githubusercontent.com/GoogleCloudPlatform/gcloud-common/master/authentication/create-new-service-account-existing-keys.png
122
- [reuse-service-account]: https://raw.githubusercontent.com/GoogleCloudPlatform/gcloud-common/master/authentication/reuse-service-account.png
123
-
124
115
  ## Creating a Service Account
125
116
 
126
117
  Google Cloud requires a **Project ID** and **Service Account Credentials** to
@@ -130,31 +121,22 @@ connect to most services with google-cloud-storage.
130
121
  If you are not running this client on Google Compute Engine, you need a Google
131
122
  Developers service account.
132
123
 
133
- 1. Visit the [Google Developers Console][dev-console].
124
+ 1. Visit the [Google Cloud Console](https://console.cloud.google.com/project).
134
125
  1. Create a new project or click on an existing project.
135
- 1. Activate the slide-out navigation tray and select **API Manager**. From
126
+ 1. Activate the menu in the upper left and select **APIs & Services**. From
136
127
  here, you will enable the APIs that your application requires.
137
128
 
138
- ![Enable the APIs that your application requires][enable-apis]
139
-
140
129
  *Note: You may need to enable billing in order to use these services.*
141
130
 
142
131
  1. Select **Credentials** from the side navigation.
143
132
 
144
- You should see a screen like one of the following.
145
-
146
- ![Create a new service account][create-new-service-account]
147
-
148
- ![Create a new service account With Existing Keys][create-new-service-account-existing-keys]
149
-
150
- Find the "Add credentials" drop down and select "Service account" to be
151
- guided through downloading a new JSON key file.
152
-
153
- If you want to re-use an existing service account, you can easily generate a
154
- new key file. Just select the account you wish to re-use, and click "Generate
155
- new JSON key":
133
+ Find the "Create credentials" drop down near the top of the page, and select
134
+ "Service account" to be guided through downloading a new JSON key file.
156
135
 
157
- ![Re-use an existing service account][reuse-service-account]
136
+ If you want to re-use an existing service account, you can easily generate
137
+ a new key file. Just select the account you wish to re-use click the pencil
138
+ tool on the right side to edit the service account, select the **Keys** tab,
139
+ and then select **Add Key**.
158
140
 
159
141
  The key file you download will be used by this library to authenticate API
160
142
  requests and should be stored in a secure location.
data/CHANGELOG.md CHANGED
@@ -1,5 +1,149 @@
1
1
  # Release History
2
2
 
3
+ ### 1.54.0 (2024-12-11)
4
+
5
+ #### Features
6
+
7
+ * Updated required Ruby version to 3.0 or later ([#27599](https://github.com/googleapis/google-cloud-ruby/issues/27599))
8
+
9
+ ### 1.53.0 (2024-12-04)
10
+
11
+ #### Features
12
+
13
+ * add integration test for universe domain ([#27384](https://github.com/googleapis/google-cloud-ruby/issues/27384))
14
+ * fetch file and bucket details from url ([#27322](https://github.com/googleapis/google-cloud-ruby/issues/27322))
15
+
16
+ ### 1.52.0 (2024-05-31)
17
+
18
+ #### Features
19
+
20
+ * support for hierarchical namespace (folders) ([#25967](https://github.com/googleapis/google-cloud-ruby/issues/25967))
21
+
22
+ ### 1.51.0 (2024-04-25)
23
+
24
+ #### Features
25
+
26
+ * Respect custom endpoint for signed_url ([#25469](https://github.com/googleapis/google-cloud-ruby/issues/25469))
27
+
28
+ ### 1.50.0 (2024-04-19)
29
+
30
+ #### Features
31
+
32
+ * Add support for soft deletion ([#25340](https://github.com/googleapis/google-cloud-ruby/issues/25340))
33
+ #### Bug Fixes
34
+
35
+ * Set configured univer_domain and endpoint when initializing through Service ([#25665](https://github.com/googleapis/google-cloud-ruby/issues/25665))
36
+
37
+ ### 1.49.0 (2024-02-21)
38
+
39
+ #### Features
40
+
41
+ * Support of Managed Folders ([#24809](https://github.com/googleapis/google-cloud-ruby/issues/24809))
42
+
43
+ ### 1.48.1 (2024-01-26)
44
+
45
+ #### Bug Fixes
46
+
47
+ * Raise an error on mismatching universe domain ([#24486](https://github.com/googleapis/google-cloud-ruby/issues/24486))
48
+
49
+ ### 1.48.0 (2024-01-25)
50
+
51
+ #### Features
52
+
53
+ * Support for universe_domain ([#24449](https://github.com/googleapis/google-cloud-ruby/issues/24449))
54
+
55
+ ### 1.47.0 (2024-01-09)
56
+
57
+ #### Features
58
+
59
+ * support for object lock / retention ([#23732](https://github.com/googleapis/google-cloud-ruby/issues/23732))
60
+
61
+ ### 1.46.0 (2024-01-08)
62
+
63
+ #### Features
64
+
65
+ * support match_glob for Object.list
66
+
67
+ ### 1.45.0 (2023-11-06)
68
+
69
+ #### Features
70
+
71
+ * added autoclass v2.1 features ([#23483](https://github.com/googleapis/google-cloud-ruby/issues/23483))
72
+
73
+ ### 1.44.0 (2022-11-02)
74
+
75
+ #### Features
76
+
77
+ * support autoclass
78
+
79
+ ### 1.43.0 (2022-09-30)
80
+
81
+ #### Features
82
+
83
+ * Add retry conformance test ([#18230](https://github.com/googleapis/google-cloud-ruby/issues/18230))
84
+
85
+ ### 1.42.0 (2022-09-21)
86
+
87
+ #### Features
88
+
89
+ * send invocation_id header in all requests ([#19161](https://github.com/googleapis/google-cloud-ruby/issues/19161))
90
+
91
+ ### 1.41.0 (2022-09-16)
92
+
93
+ #### Features
94
+
95
+ * add retry support for non-idempotent operations ([#19134](https://github.com/googleapis/google-cloud-ruby/issues/19134))
96
+ #### Bug Fixes
97
+
98
+ * Correct options checks in retry operations ([#19135](https://github.com/googleapis/google-cloud-ruby/issues/19135))
99
+ * Update api for bucket update ([#19110](https://github.com/googleapis/google-cloud-ruby/issues/19110))
100
+
101
+ ### 1.40.0 (2022-09-13)
102
+
103
+ #### Features
104
+
105
+ * Update all patch bucket helper methods to accept preconditions ([#19117](https://github.com/googleapis/google-cloud-ruby/issues/19117))
106
+
107
+ ### 1.39.0 (2022-08-24)
108
+
109
+ #### Features
110
+
111
+ * add support for conditional idempotent operations ([#18834](https://github.com/googleapis/google-cloud-ruby/issues/18834))
112
+
113
+ ### 1.38.0 (2022-07-31)
114
+
115
+ #### Features
116
+
117
+ * Add support for dual region gcs buckets ([#18862](https://github.com/googleapis/google-cloud-ruby/issues/18862))
118
+
119
+ ### 1.37.0 (2022-06-30)
120
+
121
+ #### Features
122
+
123
+ * support OLM Prefix/Suffix ([#18190](https://github.com/googleapis/google-cloud-ruby/issues/18190))
124
+ * allow retry options to be configurable on client initialization ([#18332](https://github.com/googleapis/google-cloud-ruby/issues/18332))
125
+ #### Bug Fixes
126
+
127
+ * update object path parsing to handle hashes in them
128
+
129
+ ### 1.36.2 (2022-04-20)
130
+
131
+ #### Documentation
132
+
133
+ * Document support for dual region buckets
134
+
135
+ ### 1.36.1 / 2022-02-08
136
+
137
+ #### Documentation
138
+
139
+ * Update the RPO sample output. ([#17277](https://www.github.com/googleapis/google-cloud-ruby/issues/17277))
140
+
141
+ ### 1.36.0 / 2022-01-12
142
+
143
+ #### Features
144
+
145
+ * add support for RPO (turbo replication). ([#14407](https://www.github.com/googleapis/google-cloud-ruby/issues/14407))
146
+
3
147
  ### 1.35.0 / 2021-12-08
4
148
 
5
149
  #### Features
data/OVERVIEW.md CHANGED
@@ -563,6 +563,38 @@ require "google/cloud/storage"
563
563
  storage = Google::Cloud::Storage.new retries: 10, timeout: 120
564
564
  ```
565
565
 
566
+ The library by default retries all API requests which are always idempotent on a
567
+ "transient" error.
568
+
569
+ For API requests which are idempotent only if the some conditions are satisfied
570
+ (For ex. a file has the same "generation"), the library retries only if the
571
+ condition is specified.
572
+
573
+ Rather than using this default behaviour, you may choose to disable the retries
574
+ on your own.
575
+
576
+ You can pass `retries` as `0` to disable retries for all operations regardless
577
+ of their idempotencies.
578
+
579
+ ```ruby
580
+ require "google/cloud/storage"
581
+
582
+ storage = Google::Cloud::Storage.new retries: 0
583
+ ```
584
+
585
+ You can also disable retries for a particular operation by passing `retries` as
586
+ `0` in the `options` field.
587
+
588
+ ```ruby
589
+ require "google/cloud/storage"
590
+
591
+ storage = Google::Cloud::Storage.new
592
+ service = storage.service
593
+ service.get_bucket bucket_name, options: {retries: 0}
594
+ ```
595
+
596
+ For those API requests which are never idempotent, the library passes retries=0 by default, suppressing any retries.
597
+
566
598
  See the [Storage status and error
567
599
  codes](https://cloud.google.com/storage/docs/json_api/v1/status-codes)
568
600
  for a list of error conditions.
@@ -349,8 +349,8 @@ module Google
349
349
  #
350
350
  # bucket.acl.auth!
351
351
  #
352
- def auth!
353
- update_predefined_acl! "authenticatedRead"
352
+ def auth! if_metageneration_match: nil
353
+ update_predefined_acl! "authenticatedRead", if_metageneration_match: if_metageneration_match
354
354
  end
355
355
  alias authenticatedRead! auth!
356
356
  alias auth_read! auth!
@@ -370,8 +370,8 @@ module Google
370
370
  #
371
371
  # bucket.acl.private!
372
372
  #
373
- def private!
374
- update_predefined_acl! "private"
373
+ def private! if_metageneration_match: nil
374
+ update_predefined_acl! "private", if_metageneration_match: if_metageneration_match
375
375
  end
376
376
 
377
377
  ##
@@ -387,8 +387,8 @@ module Google
387
387
  #
388
388
  # bucket.acl.project_private!
389
389
  #
390
- def project_private!
391
- update_predefined_acl! "projectPrivate"
390
+ def project_private! if_metageneration_match: nil
391
+ update_predefined_acl! "projectPrivate", if_metageneration_match: if_metageneration_match
392
392
  end
393
393
  alias projectPrivate! project_private!
394
394
 
@@ -405,8 +405,8 @@ module Google
405
405
  #
406
406
  # bucket.acl.public!
407
407
  #
408
- def public!
409
- update_predefined_acl! "publicRead"
408
+ def public! if_metageneration_match: nil
409
+ update_predefined_acl! "publicRead", if_metageneration_match: if_metageneration_match
410
410
  end
411
411
  alias publicRead! public!
412
412
  alias public_read! public!
@@ -423,8 +423,8 @@ module Google
423
423
  #
424
424
  # bucket.acl.public_write!
425
425
  #
426
- def public_write!
427
- update_predefined_acl! "publicReadWrite"
426
+ def public_write! if_metageneration_match: nil
427
+ update_predefined_acl! "publicReadWrite", if_metageneration_match: if_metageneration_match
428
428
  end
429
429
  alias publicReadWrite! public_write!
430
430
 
@@ -437,9 +437,10 @@ module Google
437
437
  self
438
438
  end
439
439
 
440
- def update_predefined_acl! acl_role
440
+ def update_predefined_acl! acl_role, if_metageneration_match: nil
441
441
  @service.patch_bucket @bucket, predefined_acl: acl_role,
442
- user_project: user_project
442
+ user_project: user_project,
443
+ if_metageneration_match: if_metageneration_match
443
444
  clear!
444
445
  end
445
446
 
@@ -714,8 +715,8 @@ module Google
714
715
  #
715
716
  # bucket.default_acl.auth!
716
717
  #
717
- def auth!
718
- update_predefined_default_acl! "authenticatedRead"
718
+ def auth! if_metageneration_match: nil
719
+ update_predefined_default_acl! "authenticatedRead", if_metageneration_match: if_metageneration_match
719
720
  end
720
721
  alias authenticatedRead! auth!
721
722
  alias auth_read! auth!
@@ -735,8 +736,8 @@ module Google
735
736
  #
736
737
  # bucket.default_acl.owner_full!
737
738
  #
738
- def owner_full!
739
- update_predefined_default_acl! "bucketOwnerFullControl"
739
+ def owner_full! if_metageneration_match: nil
740
+ update_predefined_default_acl! "bucketOwnerFullControl", if_metageneration_match: if_metageneration_match
740
741
  end
741
742
  alias bucketOwnerFullControl! owner_full!
742
743
 
@@ -753,8 +754,8 @@ module Google
753
754
  #
754
755
  # bucket.default_acl.owner_read!
755
756
  #
756
- def owner_read!
757
- update_predefined_default_acl! "bucketOwnerRead"
757
+ def owner_read! if_metageneration_match: nil
758
+ update_predefined_default_acl! "bucketOwnerRead", if_metageneration_match: if_metageneration_match
758
759
  end
759
760
  alias bucketOwnerRead! owner_read!
760
761
 
@@ -771,8 +772,8 @@ module Google
771
772
  #
772
773
  # bucket.default_acl.private!
773
774
  #
774
- def private!
775
- update_predefined_default_acl! "private"
775
+ def private! if_metageneration_match: nil
776
+ update_predefined_default_acl! "private", if_metageneration_match: if_metageneration_match
776
777
  end
777
778
 
778
779
  ##
@@ -788,8 +789,8 @@ module Google
788
789
  #
789
790
  # bucket.default_acl.project_private!
790
791
  #
791
- def project_private!
792
- update_predefined_default_acl! "projectPrivate"
792
+ def project_private! if_metageneration_match: nil
793
+ update_predefined_default_acl! "projectPrivate", if_metageneration_match: if_metageneration_match
793
794
  end
794
795
  alias projectPrivate! project_private!
795
796
 
@@ -806,8 +807,8 @@ module Google
806
807
  #
807
808
  # bucket.default_acl.public!
808
809
  #
809
- def public!
810
- update_predefined_default_acl! "publicRead"
810
+ def public! if_metageneration_match: nil
811
+ update_predefined_default_acl! "publicRead", if_metageneration_match: if_metageneration_match
811
812
  end
812
813
  alias publicRead! public!
813
814
  alias public_read! public!
@@ -820,9 +821,10 @@ module Google
820
821
  self
821
822
  end
822
823
 
823
- def update_predefined_default_acl! acl_role
824
+ def update_predefined_default_acl! acl_role, if_metageneration_match: nil
824
825
  @service.patch_bucket @bucket, predefined_default_acl: acl_role,
825
- user_project: user_project
826
+ user_project: user_project,
827
+ if_metageneration_match: if_metageneration_match
826
828
  clear!
827
829
  end
828
830
 
@@ -182,7 +182,7 @@ module Google
182
182
  @origin = Array(origin)
183
183
  @methods = Array(methods)
184
184
  @headers = Array(headers)
185
- @max_age = (max_age || 1800)
185
+ @max_age = max_age || 1800
186
186
  end
187
187
 
188
188
  # @private
@@ -195,7 +195,7 @@ module Google
195
195
 
196
196
  # @private
197
197
  def self.from_gapi gapi
198
- new gapi.origin.dup, gapi.http_method.dup, \
198
+ new gapi.origin.dup, gapi.http_method.dup,
199
199
  headers: gapi.response_header.dup,
200
200
  max_age: gapi.max_age_seconds
201
201
  end
@@ -53,6 +53,8 @@ module Google
53
53
  # rule.storage_class #=> "COLDLINE"
54
54
  # rule.age #=> 10
55
55
  # rule.matches_storage_class #=> ["STANDARD", "NEARLINE"]
56
+ # rule.matches_prefix #=> ["myprefix/foo"]
57
+ # rule.matches_suffix #=> [".jpg", ".png"]
56
58
  #
57
59
  # @example Updating the bucket's lifecycle management rules in a block.
58
60
  # require "google/cloud/storage"
@@ -138,6 +140,12 @@ module Google
138
140
  # files. If the value is N, this condition is satisfied when there
139
141
  # are at least N versions (including the live version) newer than
140
142
  # this version of the file.
143
+ # @param [Array<String,Symbol>] matches_prefix
144
+ # Files having their name with the specified list of prefixs will be matched.
145
+ # Arguments will be converted from symbols to strings.
146
+ # @param [Array<String,Symbol>] matches_suffix
147
+ # Files having their name with the specified list of suffixes will be matched.
148
+ # Arguments will be converted from symbols to strings.
141
149
  #
142
150
  # @example
143
151
  # require "google/cloud/storage"
@@ -157,7 +165,9 @@ module Google
157
165
  is_live: nil,
158
166
  matches_storage_class: nil,
159
167
  noncurrent_time_before: nil,
160
- num_newer_versions: nil
168
+ num_newer_versions: nil,
169
+ matches_prefix: nil,
170
+ matches_suffix: nil
161
171
  push Rule.new(
162
172
  "SetStorageClass",
163
173
  storage_class: storage_class_for(storage_class),
@@ -169,12 +179,14 @@ module Google
169
179
  is_live: is_live,
170
180
  matches_storage_class: storage_class_for(matches_storage_class),
171
181
  noncurrent_time_before: noncurrent_time_before,
172
- num_newer_versions: num_newer_versions
182
+ num_newer_versions: num_newer_versions,
183
+ matches_prefix: Array(matches_prefix),
184
+ matches_suffix: Array(matches_suffix)
173
185
  )
174
186
  end
175
187
 
176
188
  ##
177
- # Adds a SetStorageClass lifecycle rule to the Object Lifecycle
189
+ # Adds a Delete lifecycle rule to the Object Lifecycle
178
190
  # Management rules for a bucket.
179
191
  #
180
192
  # @see https://cloud.google.com/storage/docs/lifecycle Object
@@ -221,6 +233,12 @@ module Google
221
233
  # files. If the value is N, this condition is satisfied when there
222
234
  # are at least N versions (including the live version) newer than
223
235
  # this version of the file.
236
+ # @param [Array<String,Symbol>] matches_prefix
237
+ # Files having their name with the specified list of prefixs will be matched.
238
+ # Arguments will be converted from symbols to strings.
239
+ # @param [Array<String,Symbol>] matches_suffix
240
+ # Files having their name with the specified list of suffixes will be matched.
241
+ # Arguments will be converted from symbols to strings.
224
242
  #
225
243
  # @example
226
244
  # require "google/cloud/storage"
@@ -239,7 +257,9 @@ module Google
239
257
  is_live: nil,
240
258
  matches_storage_class: nil,
241
259
  noncurrent_time_before: nil,
242
- num_newer_versions: nil
260
+ num_newer_versions: nil,
261
+ matches_prefix: nil,
262
+ matches_suffix: nil
243
263
  push Rule.new(
244
264
  "Delete",
245
265
  age: age,
@@ -250,7 +270,49 @@ module Google
250
270
  is_live: is_live,
251
271
  matches_storage_class: storage_class_for(matches_storage_class),
252
272
  noncurrent_time_before: noncurrent_time_before,
253
- num_newer_versions: num_newer_versions
273
+ num_newer_versions: num_newer_versions,
274
+ matches_prefix: Array(matches_prefix),
275
+ matches_suffix: Array(matches_suffix)
276
+ )
277
+ end
278
+
279
+ ##
280
+ # Adds a AbortIncompleteMultipartUpload lifecycle rule to the Object Lifecycle
281
+ # Management rules for a bucket.
282
+ #
283
+ # @see https://cloud.google.com/storage/docs/lifecycle Object
284
+ # Lifecycle Management
285
+ # @see https://cloud.google.com/storage/docs/managing-lifecycles
286
+ # Managing Object Lifecycles
287
+ #
288
+ # @param [Integer] age The age of a file (in days). This condition is
289
+ # satisfied when a file reaches the specified age.
290
+ # @param [Array<String,Symbol>] matches_prefix
291
+ # Files having their name with the specified list of prefixs will be matched.
292
+ # Arguments will be converted from symbols to strings.
293
+ # @param [Array<String,Symbol>] matches_suffix
294
+ # Files having their name with the specified list of suffixes will be matched.
295
+ # Arguments will be converted from symbols to strings.
296
+ #
297
+ # @example
298
+ # require "google/cloud/storage"
299
+ #
300
+ # storage = Google::Cloud::Storage.new
301
+ #
302
+ # bucket = storage.create_bucket "my-bucket" do |b|
303
+ # b.lifecycle.add_abort_incomplete_multipart_upload_rule age: 10,
304
+ # matches_prefix: ["images/"],
305
+ # matches_suffix: [".pdf"]
306
+ # end
307
+ #
308
+ def add_abort_incomplete_multipart_upload_rule age: nil,
309
+ matches_prefix: nil,
310
+ matches_suffix: nil
311
+ push Rule.new(
312
+ "AbortIncompleteMultipartUpload",
313
+ age: age,
314
+ matches_prefix: Array(matches_prefix),
315
+ matches_suffix: Array(matches_suffix)
254
316
  )
255
317
  end
256
318
 
@@ -346,6 +408,8 @@ module Google
346
408
  # rule.storage_class #=> "COLDLINE"
347
409
  # rule.age #=> 10
348
410
  # rule.matches_storage_class #=> ["STANDARD", "NEARLINE"]
411
+ # rule.matches_prefix #=> ["myprefix/foo"]
412
+ # rule.matches_suffix #=> [".jpg", ".png"]
349
413
  #
350
414
  # @example Updating the bucket's lifecycle rules in a block.
351
415
  # require "google/cloud/storage"
@@ -382,6 +446,8 @@ module Google
382
446
  attr_accessor :matches_storage_class
383
447
  attr_accessor :noncurrent_time_before
384
448
  attr_accessor :num_newer_versions
449
+ attr_accessor :matches_prefix
450
+ attr_accessor :matches_suffix
385
451
 
386
452
  # @private
387
453
  def initialize action,
@@ -394,7 +460,9 @@ module Google
394
460
  is_live: nil,
395
461
  matches_storage_class: nil,
396
462
  noncurrent_time_before: nil,
397
- num_newer_versions: nil
463
+ num_newer_versions: nil,
464
+ matches_prefix: nil,
465
+ matches_suffix: nil
398
466
  @action = action
399
467
  @storage_class = storage_class
400
468
  @age = age
@@ -406,6 +474,8 @@ module Google
406
474
  @matches_storage_class = Array(matches_storage_class)
407
475
  @noncurrent_time_before = noncurrent_time_before
408
476
  @num_newer_versions = num_newer_versions
477
+ @matches_prefix = Array(matches_prefix)
478
+ @matches_suffix = Array(matches_suffix)
409
479
  end
410
480
 
411
481
  # @private
@@ -420,7 +490,9 @@ module Google
420
490
  is_live,
421
491
  matches_storage_class,
422
492
  noncurrent_time_before,
423
- num_newer_versions
493
+ num_newer_versions,
494
+ matches_prefix,
495
+ matches_suffix
424
496
  )
425
497
  Google::Apis::StorageV1::Bucket::Lifecycle::Rule.new(
426
498
  action: action_gapi(action, storage_class),
@@ -445,7 +517,9 @@ module Google
445
517
  is_live,
446
518
  matches_storage_class,
447
519
  noncurrent_time_before,
448
- num_newer_versions
520
+ num_newer_versions,
521
+ matches_prefix,
522
+ matches_suffix
449
523
  Google::Apis::StorageV1::Bucket::Lifecycle::Rule::Condition.new(
450
524
  age: age,
451
525
  created_before: created_before,
@@ -455,7 +529,9 @@ module Google
455
529
  is_live: is_live,
456
530
  matches_storage_class: Array(matches_storage_class),
457
531
  noncurrent_time_before: noncurrent_time_before,
458
- num_newer_versions: num_newer_versions
532
+ num_newer_versions: num_newer_versions,
533
+ matches_prefix: Array(matches_prefix),
534
+ matches_suffix: Array(matches_suffix)
459
535
  )
460
536
  end
461
537
 
@@ -475,7 +551,9 @@ module Google
475
551
  is_live: c.is_live,
476
552
  matches_storage_class: c.matches_storage_class,
477
553
  noncurrent_time_before: c.noncurrent_time_before,
478
- num_newer_versions: c.num_newer_versions
554
+ num_newer_versions: c.num_newer_versions,
555
+ matches_prefix: c.matches_prefix,
556
+ matches_suffix: c.matches_suffix
479
557
  )
480
558
  end
481
559