|
24 | 24 | import com.google.api.client.util.Data;
|
25 | 25 | import com.google.api.client.util.DateTime;
|
26 | 26 | import com.google.api.core.BetaApi;
|
27 |
| -import com.google.api.services.storage.model.*; |
28 | 27 | import com.google.api.services.storage.model.Bucket;
|
29 | 28 | import com.google.api.services.storage.model.Bucket.Encryption;
|
30 | 29 | import com.google.api.services.storage.model.Bucket.Lifecycle;
|
31 | 30 | import com.google.api.services.storage.model.Bucket.Lifecycle.Rule;
|
32 | 31 | import com.google.api.services.storage.model.Bucket.Owner;
|
33 | 32 | import com.google.api.services.storage.model.Bucket.Versioning;
|
34 | 33 | import com.google.api.services.storage.model.Bucket.Website;
|
| 34 | +import com.google.api.services.storage.model.BucketAccessControl; |
| 35 | +import com.google.api.services.storage.model.ObjectAccessControl; |
35 | 36 | import com.google.cloud.storage.Acl.Entity;
|
36 | 37 | import com.google.common.base.Function;
|
37 | 38 | import com.google.common.base.Functions;
|
@@ -978,6 +979,9 @@ public abstract static class Builder {
|
978 | 979 | */
|
979 | 980 | public abstract Builder setLifecycleRules(Iterable<? extends LifecycleRule> rules);
|
980 | 981 |
|
| 982 | + /** Deletes the lifecycle rules of this bucket. */ |
| 983 | + public abstract Builder deleteLifecycleRules(); |
| 984 | + |
981 | 985 | /**
|
982 | 986 | * Sets the bucket's storage class. This defines how blobs in the bucket are stored and
|
983 | 987 | * determines the SLA and the cost of storage. A list of supported values is available <a
|
@@ -1187,7 +1191,15 @@ public Builder setDeleteRules(Iterable<? extends DeleteRule> rules) {
|
1187 | 1191 |
|
1188 | 1192 | @Override
|
1189 | 1193 | public Builder setLifecycleRules(Iterable<? extends LifecycleRule> rules) {
|
1190 |
| - this.lifecycleRules = rules != null ? ImmutableList.copyOf(rules) : null; |
| 1194 | + this.lifecycleRules = |
| 1195 | + rules != null ? ImmutableList.copyOf(rules) : ImmutableList.<LifecycleRule>of(); |
| 1196 | + return this; |
| 1197 | + } |
| 1198 | + |
| 1199 | + @Override |
| 1200 | + public Builder deleteLifecycleRules() { |
| 1201 | + setDeleteRules(null); |
| 1202 | + setLifecycleRules(null); |
1191 | 1203 | return this;
|
1192 | 1204 | }
|
1193 | 1205 |
|
@@ -1434,7 +1446,7 @@ public List<? extends DeleteRule> getDeleteRules() {
|
1434 | 1446 | }
|
1435 | 1447 |
|
1436 | 1448 | public List<? extends LifecycleRule> getLifecycleRules() {
|
1437 |
| - return lifecycleRules; |
| 1449 | + return lifecycleRules != null ? lifecycleRules : ImmutableList.<LifecycleRule>of(); |
1438 | 1450 | }
|
1439 | 1451 |
|
1440 | 1452 | /**
|
@@ -1711,11 +1723,13 @@ public Rule apply(LifecycleRule lifecycleRule) {
|
1711 | 1723 | }
|
1712 | 1724 | }));
|
1713 | 1725 | }
|
1714 |
| - if (!rules.isEmpty()) { |
| 1726 | + |
| 1727 | + if (rules != null) { |
1715 | 1728 | Lifecycle lifecycle = new Lifecycle();
|
1716 | 1729 | lifecycle.setRule(ImmutableList.copyOf(rules));
|
1717 | 1730 | bucketPb.setLifecycle(lifecycle);
|
1718 | 1731 | }
|
| 1732 | + |
1719 | 1733 | if (labels != null) {
|
1720 | 1734 | bucketPb.setLabels(labels);
|
1721 | 1735 | }
|
@@ -1765,6 +1779,7 @@ static BucketInfo fromPb(com.google.api.services.storage.model.Bucket bucketPb)
|
1765 | 1779 | if (bucketPb.getId() != null) {
|
1766 | 1780 | builder.setGeneratedId(bucketPb.getId());
|
1767 | 1781 | }
|
| 1782 | + |
1768 | 1783 | if (bucketPb.getEtag() != null) {
|
1769 | 1784 | builder.setEtag(bucketPb.getEtag());
|
1770 | 1785 | }
|
|
0 commit comments