diff --git a/.kokoro/nightly/integration.cfg b/.kokoro/nightly/integration.cfg
index 0048c8ece7..7fbde2eef7 100644
--- a/.kokoro/nightly/integration.cfg
+++ b/.kokoro/nightly/integration.cfg
@@ -31,6 +31,11 @@ env_vars: {
value: "secret_manager/java-it-service-account"
}
+env_vars: {
+ key: "IT_SERVICE_ACCOUNT_EMAIL"
+ value: "it-service-account@gcloud-devel.iam.gserviceaccount.com"
+}
+
env_vars: {
key: "SECRET_MANAGER_KEYS"
value: "java-it-service-account"
diff --git a/.kokoro/release/stage.cfg b/.kokoro/release/stage.cfg
index f82c3ffb99..8dc93be45b 100644
--- a/.kokoro/release/stage.cfg
+++ b/.kokoro/release/stage.cfg
@@ -13,32 +13,7 @@ action {
}
}
-# Fetch the token needed for reporting release status to GitHub
-before_action {
- fetch_keystore {
- keystore_resource {
- keystore_config_id: 73713
- keyname: "yoshi-automation-github-key"
- }
- }
-}
-
-# Fetch magictoken to use with Magic Github Proxy
-before_action {
- fetch_keystore {
- keystore_resource {
- keystore_config_id: 73713
- keyname: "releasetool-magictoken"
- }
- }
-}
-
-# Fetch api key to use with Magic Github Proxy
-before_action {
- fetch_keystore {
- keystore_resource {
- keystore_config_id: 73713
- keyname: "magic-github-proxy-api-key"
- }
- }
+env_vars: {
+ key: "SECRET_MANAGER_KEYS"
+ value: "releasetool-publish-reporter-app,releasetool-publish-reporter-googleapis-installation,releasetool-publish-reporter-pem"
}
diff --git a/.kokoro/release/stage.sh b/.kokoro/release/stage.sh
index d19191fc89..3c482cbc55 100755
--- a/.kokoro/release/stage.sh
+++ b/.kokoro/release/stage.sh
@@ -16,9 +16,8 @@
set -eo pipefail
# Start the releasetool reporter
-# Disable reporting due to issue observed with Kokoro blocking releases
-# python3 -m pip install gcp-releasetool
-# python3 -m releasetool publish-reporter-script > /tmp/publisher-script; source /tmp/publisher-script
+python3 -m pip install gcp-releasetool
+python3 -m releasetool publish-reporter-script > /tmp/publisher-script; source /tmp/publisher-script
source $(dirname "$0")/common.sh
MAVEN_SETTINGS_FILE=$(realpath $(dirname "$0")/../../)/settings.xml
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 996cdcd05c..04a25799c0 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,5 +1,31 @@
# Changelog
+## [1.113.0](https://www.github.com/googleapis/java-storage/compare/v1.112.0...v1.113.0) (2020-09-03)
+
+
+### Features
+
+* expose timeStorageClassUpdated property of blob's ([#456](https://www.github.com/googleapis/java-storage/issues/456)) ([57853ec](https://www.github.com/googleapis/java-storage/commit/57853ec7fbc2f3188d8da991001660a4f6008632))
+
+
+### Bug Fixes
+
+* add missing FieldSelector inside BucketField and BlobField ([#484](https://www.github.com/googleapis/java-storage/issues/484)) ([c2aa9cf](https://www.github.com/googleapis/java-storage/commit/c2aa9cf6fb4c7f407cbfce85b338b735ceafe1dc))
+* prevent NPE in RemoteStorageHelper.cleanBuckets ([#492](https://www.github.com/googleapis/java-storage/issues/492)) ([db358c8](https://www.github.com/googleapis/java-storage/commit/db358c8b53f7ba3084c5566c9abf4033bf29783f))
+* set IT_SERVICE_ACCOUNT_EMAIL for nightly integration test ([#479](https://www.github.com/googleapis/java-storage/issues/479)) ([23c379e](https://www.github.com/googleapis/java-storage/commit/23c379e4d28e4fb319db047c7d46654d9a8b9a61))
+
+
+### Documentation
+
+* update libraries-bom ([#494](https://www.github.com/googleapis/java-storage/issues/494)) ([6b015da](https://www.github.com/googleapis/java-storage/commit/6b015da57d42f468c9b3d1f86476407a61cd14ea))
+* update link ([#490](https://www.github.com/googleapis/java-storage/issues/490)) ([6cd5dfa](https://www.github.com/googleapis/java-storage/commit/6cd5dface9cc14f2ec6729e5b842bcee91c1ad34))
+
+
+### Dependencies
+
+* update dependency com.google.cloud:google-cloud-shared-dependencies to v0.9.0 ([#493](https://www.github.com/googleapis/java-storage/issues/493)) ([0e4f70f](https://www.github.com/googleapis/java-storage/commit/0e4f70f7f70784fee91be499def9734d8af61be9))
+* update kms.version to v0.87.0 ([#489](https://www.github.com/googleapis/java-storage/issues/489)) ([a045d54](https://www.github.com/googleapis/java-storage/commit/a045d5400234595f102a8b8d594539dbfd5f295e))
+
## [1.112.0](https://www.github.com/googleapis/java-storage/compare/v1.111.2...v1.112.0) (2020-08-27)
diff --git a/README.md b/README.md
index 288383da54..427222ec9c 100644
--- a/README.md
+++ b/README.md
@@ -17,7 +17,7 @@ If you are using Maven with [BOM][libraries-bom], add this to your pom.xml file
com.google.cloud
libraries-bom
- 9.1.0
+ 10.0.0
pom
import
@@ -47,11 +47,11 @@ If you are using Maven without BOM, add this to your dependencies:
If you are using Gradle, add this to your dependencies
```Groovy
-compile 'com.google.cloud:google-cloud-storage:1.112.0'
+compile 'com.google.cloud:google-cloud-storage:1.113.0'
```
If you are using SBT, add this to your dependencies
```Scala
-libraryDependencies += "com.google.cloud" % "google-cloud-storage" % "1.112.0"
+libraryDependencies += "com.google.cloud" % "google-cloud-storage" % "1.113.0"
```
[//]: # ({x-version-update-end})
diff --git a/google-cloud-storage/clirr-ignored-differences.xml b/google-cloud-storage/clirr-ignored-differences.xml
index 114310c67e..ba97a975ce 100644
--- a/google-cloud-storage/clirr-ignored-differences.xml
+++ b/google-cloud-storage/clirr-ignored-differences.xml
@@ -1,5 +1,5 @@
-
+
7012
diff --git a/google-cloud-storage/pom.xml b/google-cloud-storage/pom.xml
index 780862d6b3..f383ebb30d 100644
--- a/google-cloud-storage/pom.xml
+++ b/google-cloud-storage/pom.xml
@@ -2,7 +2,7 @@
4.0.0
google-cloud-storage
- 1.112.0
+ 1.113.0
jar
Google Cloud Storage
https://github.com/googleapis/java-storage
@@ -12,10 +12,11 @@
com.google.cloud
google-cloud-storage-parent
- 1.112.0
+ 1.113.0
google-cloud-storage
+ 0.87.0
@@ -117,13 +118,13 @@
com.google.api.grpc
grpc-google-cloud-kms-v1
- 0.86.1
+ ${kms.version}
test
com.google.api.grpc
proto-google-cloud-kms-v1
- 0.86.1
+ ${kms.version}
test
diff --git a/google-cloud-storage/src/main/java/com/google/cloud/storage/Blob.java b/google-cloud-storage/src/main/java/com/google/cloud/storage/Blob.java
index 398eb31660..6faef6c0f7 100644
--- a/google-cloud-storage/src/main/java/com/google/cloud/storage/Blob.java
+++ b/google-cloud-storage/src/main/java/com/google/cloud/storage/Blob.java
@@ -410,6 +410,12 @@ public Builder setStorageClass(StorageClass storageClass) {
return this;
}
+ @Override
+ public Builder setTimeStorageClassUpdated(Long timeStorageClassUpdated) {
+ infoBuilder.setTimeStorageClassUpdated(timeStorageClassUpdated);
+ return this;
+ }
+
@Override
Builder setMetageneration(Long metageneration) {
infoBuilder.setMetageneration(metageneration);
diff --git a/google-cloud-storage/src/main/java/com/google/cloud/storage/BlobInfo.java b/google-cloud-storage/src/main/java/com/google/cloud/storage/BlobInfo.java
index 67256d1c72..835e0d4536 100644
--- a/google-cloud-storage/src/main/java/com/google/cloud/storage/BlobInfo.java
+++ b/google-cloud-storage/src/main/java/com/google/cloud/storage/BlobInfo.java
@@ -96,6 +96,7 @@ public StorageObject apply(BlobInfo blobInfo) {
private final String contentDisposition;
private final String contentLanguage;
private final StorageClass storageClass;
+ private final Long timeStorageClassUpdated;
private final Integer componentCount;
private final boolean isDirectory;
private final CustomerEncryption customerEncryption;
@@ -297,6 +298,16 @@ public Builder setCustomTime(Long customTime) {
/** Sets the blob's storage class. */
public abstract Builder setStorageClass(StorageClass storageClass);
+ /**
+ * Sets the modification time of an object's storage class. Once set it can't be unset directly,
+ * the only way is to rewrite the object with the desired storage class.
+ */
+ public Builder setTimeStorageClassUpdated(Long timeStorageClassUpdated) {
+ throw new UnsupportedOperationException(
+ "Override setTimeStorageClassUpdated with your own implementation,"
+ + " or use com.google.cloud.storage.Blob.");
+ }
+
/** Sets the blob's user provided metadata. */
public abstract Builder setMetadata(Map metadata);
@@ -356,6 +367,7 @@ static final class BuilderImpl extends Builder {
private Boolean isDirectory;
private CustomerEncryption customerEncryption;
private StorageClass storageClass;
+ private Long timeStorageClassUpdated;
private String kmsKeyName;
private Boolean eventBasedHold;
private Boolean temporaryHold;
@@ -391,6 +403,7 @@ static final class BuilderImpl extends Builder {
createTime = blobInfo.createTime;
isDirectory = blobInfo.isDirectory;
storageClass = blobInfo.storageClass;
+ timeStorageClassUpdated = blobInfo.timeStorageClassUpdated;
kmsKeyName = blobInfo.kmsKeyName;
eventBasedHold = blobInfo.eventBasedHold;
temporaryHold = blobInfo.temporaryHold;
@@ -564,6 +577,12 @@ public Builder setStorageClass(StorageClass storageClass) {
return this;
}
+ @Override
+ public Builder setTimeStorageClassUpdated(Long timeStorageClassUpdated) {
+ this.timeStorageClassUpdated = timeStorageClassUpdated;
+ return this;
+ }
+
@Override
Builder setMetageneration(Long metageneration) {
this.metageneration = metageneration;
@@ -657,6 +676,7 @@ public BlobInfo build() {
createTime = builder.createTime;
isDirectory = firstNonNull(builder.isDirectory, Boolean.FALSE);
storageClass = builder.storageClass;
+ timeStorageClassUpdated = builder.timeStorageClassUpdated;
kmsKeyName = builder.kmsKeyName;
eventBasedHold = builder.eventBasedHold;
temporaryHold = builder.temporaryHold;
@@ -917,6 +937,14 @@ public StorageClass getStorageClass() {
return storageClass;
}
+ /**
+ * Returns the time that the object's storage class was last changed or the time of the object
+ * creation.
+ */
+ public Long getTimeStorageClassUpdated() {
+ return timeStorageClassUpdated;
+ }
+
/** Returns the Cloud KMS key used to encrypt the blob, if any. */
public String getKmsKeyName() {
return kmsKeyName;
@@ -1049,6 +1077,9 @@ public ObjectAccessControl apply(Acl acl) {
if (storageClass != null) {
storageObject.setStorageClass(storageClass.toString());
}
+ if (timeStorageClassUpdated != null) {
+ storageObject.setTimeStorageClassUpdated(new DateTime(timeStorageClassUpdated));
+ }
Map pbMetadata = metadata;
if (metadata != null && !Data.isNull(metadata)) {
@@ -1193,6 +1224,9 @@ public Acl apply(ObjectAccessControl objectAccessControl) {
if (storageObject.getStorageClass() != null) {
builder.setStorageClass(StorageClass.valueOf(storageObject.getStorageClass()));
}
+ if (storageObject.getTimeStorageClassUpdated() != null) {
+ builder.setTimeStorageClassUpdated(storageObject.getTimeStorageClassUpdated().getValue());
+ }
if (storageObject.getKmsKeyName() != null) {
builder.setKmsKeyName(storageObject.getKmsKeyName());
}
diff --git a/google-cloud-storage/src/main/java/com/google/cloud/storage/Storage.java b/google-cloud-storage/src/main/java/com/google/cloud/storage/Storage.java
index 6b8fc49905..08eec26a0e 100644
--- a/google-cloud-storage/src/main/java/com/google/cloud/storage/Storage.java
+++ b/google-cloud-storage/src/main/java/com/google/cloud/storage/Storage.java
@@ -106,7 +106,9 @@ enum BucketField implements FieldSelector {
BILLING("billing"),
DEFAULT_EVENT_BASED_HOLD("defaultEventBasedHold"),
RETENTION_POLICY("retentionPolicy"),
- IAMCONFIGURATION("iamConfiguration");
+ IAMCONFIGURATION("iamConfiguration"),
+ LOGGING("logging"),
+ UPDATED("updated");
static final List extends FieldSelector> REQUIRED_FIELDS = ImmutableList.of(NAME);
@@ -151,7 +153,9 @@ enum BlobField implements FieldSelector {
EVENT_BASED_HOLD("eventBasedHold"),
TEMPORARY_HOLD("temporaryHold"),
RETENTION_EXPIRATION_TIME("retentionExpirationTime"),
- UPDATED("updated");
+ UPDATED("updated"),
+ CUSTOM_TIME("customTime"),
+ TIME_STORAGE_CLASS_UPDATED("timeStorageClassUpdated");
static final List extends FieldSelector> REQUIRED_FIELDS = ImmutableList.of(BUCKET, NAME);
diff --git a/google-cloud-storage/src/main/java/com/google/cloud/storage/testing/RemoteStorageHelper.java b/google-cloud-storage/src/main/java/com/google/cloud/storage/testing/RemoteStorageHelper.java
index eb18e4a7c3..695fb4371f 100644
--- a/google-cloud-storage/src/main/java/com/google/cloud/storage/testing/RemoteStorageHelper.java
+++ b/google-cloud-storage/src/main/java/com/google/cloud/storage/testing/RemoteStorageHelper.java
@@ -88,7 +88,8 @@ public void run() {
Storage.BlobField.EVENT_BASED_HOLD,
Storage.BlobField.TEMPORARY_HOLD))
.iterateAll()) {
- if (blob.getEventBasedHold() == true || blob.getTemporaryHold() == true) {
+ if (Boolean.TRUE.equals(blob.getEventBasedHold())
+ || Boolean.TRUE.equals(blob.getTemporaryHold())) {
storage.update(
blob.toBuilder().setTemporaryHold(false).setEventBasedHold(false).build(),
Storage.BlobTargetOption.userProject(
diff --git a/google-cloud-storage/src/test/java/com/google/cloud/storage/BlobInfoTest.java b/google-cloud-storage/src/test/java/com/google/cloud/storage/BlobInfoTest.java
index d4119971fc..d23e0dc7ac 100644
--- a/google-cloud-storage/src/test/java/com/google/cloud/storage/BlobInfoTest.java
+++ b/google-cloud-storage/src/test/java/com/google/cloud/storage/BlobInfoTest.java
@@ -75,6 +75,7 @@ public class BlobInfoTest {
private static final String KMS_KEY_NAME =
"projects/p/locations/kr-loc/keyRings/kr/cryptoKeys/key";
private static final StorageClass STORAGE_CLASS = StorageClass.COLDLINE;
+ private static final Long TIME_STORAGE_CLASS_UPDATED = CREATE_TIME;
private static final Boolean EVENT_BASED_HOLD = true;
private static final Boolean TEMPORARY_HOLD = true;
private static final Long RETENTION_EXPIRATION_TIME = 10L;
@@ -104,6 +105,7 @@ public class BlobInfoTest {
.setCreateTime(CREATE_TIME)
.setCustomTime(CUSTOM_TIME)
.setStorageClass(STORAGE_CLASS)
+ .setTimeStorageClassUpdated(TIME_STORAGE_CLASS_UPDATED)
.setKmsKeyName(KMS_KEY_NAME)
.setEventBasedHold(EVENT_BASED_HOLD)
.setTemporaryHold(TEMPORARY_HOLD)
@@ -199,6 +201,7 @@ public void testBuilder() {
assertEquals(CREATE_TIME, BLOB_INFO.getCreateTime());
assertEquals(CUSTOM_TIME, BLOB_INFO.getCustomTime());
assertEquals(STORAGE_CLASS, BLOB_INFO.getStorageClass());
+ assertEquals(TIME_STORAGE_CLASS_UPDATED, BLOB_INFO.getTimeStorageClassUpdated());
assertEquals(KMS_KEY_NAME, BLOB_INFO.getKmsKeyName());
assertEquals(EVENT_BASED_HOLD, BLOB_INFO.getEventBasedHold());
assertEquals(TEMPORARY_HOLD, BLOB_INFO.getTemporaryHold());
@@ -264,6 +267,7 @@ private void compareBlobs(BlobInfo expected, BlobInfo value) {
assertEquals(expected.getCustomTime(), value.getCustomTime());
assertEquals(expected.getUpdateTime(), value.getUpdateTime());
assertEquals(expected.getStorageClass(), value.getStorageClass());
+ assertEquals(expected.getTimeStorageClassUpdated(), value.getTimeStorageClassUpdated());
assertEquals(expected.getKmsKeyName(), value.getKmsKeyName());
assertEquals(expected.getEventBasedHold(), value.getEventBasedHold());
assertEquals(expected.getTemporaryHold(), value.getTemporaryHold());
@@ -319,6 +323,7 @@ public void testToPbAndFromPb() {
assertEquals(0L, (long) blobInfo.getSize());
assertNull(blobInfo.getUpdateTime());
assertNull(blobInfo.getStorageClass());
+ assertNull(blobInfo.getTimeStorageClassUpdated());
assertNull(blobInfo.getKmsKeyName());
assertNull(blobInfo.getEventBasedHold());
assertNull(blobInfo.getTemporaryHold());
diff --git a/google-cloud-storage/src/test/java/com/google/cloud/storage/BlobTest.java b/google-cloud-storage/src/test/java/com/google/cloud/storage/BlobTest.java
index 2ff21b7129..36752a4dc5 100644
--- a/google-cloud-storage/src/test/java/com/google/cloud/storage/BlobTest.java
+++ b/google-cloud-storage/src/test/java/com/google/cloud/storage/BlobTest.java
@@ -92,6 +92,8 @@ public class BlobTest {
private static final Long UPDATE_TIME = DELETE_TIME - 1L;
private static final Long CREATE_TIME = UPDATE_TIME - 1L;
private static final Long CUSTOM_TIME = CREATE_TIME - 1L;
+ private static final StorageClass STORAGE_CLASS = StorageClass.COLDLINE;
+ private static final Long TIME_STORAGE_CLASS_UPDATED = CREATE_TIME;
private static final String ENCRYPTION_ALGORITHM = "AES256";
private static final String KEY_SHA256 = "keySha";
private static final BlobInfo.CustomerEncryption CUSTOMER_ENCRYPTION =
@@ -124,6 +126,8 @@ public class BlobTest {
.setUpdateTime(UPDATE_TIME)
.setCreateTime(CREATE_TIME)
.setCustomTime(CUSTOM_TIME)
+ .setStorageClass(STORAGE_CLASS)
+ .setTimeStorageClassUpdated(TIME_STORAGE_CLASS_UPDATED)
.setCustomerEncryption(CUSTOMER_ENCRYPTION)
.setKmsKeyName(KMS_KEY_NAME)
.setEventBasedHold(EVENT_BASED_HOLD)
@@ -513,6 +517,8 @@ public void testBuilder() {
.setCrc32c(CRC32)
.setCreateTime(CREATE_TIME)
.setCustomTime(CUSTOM_TIME)
+ .setStorageClass(STORAGE_CLASS)
+ .setTimeStorageClassUpdated(TIME_STORAGE_CLASS_UPDATED)
.setCustomerEncryption(CUSTOMER_ENCRYPTION)
.setKmsKeyName(KMS_KEY_NAME)
.setEventBasedHold(EVENT_BASED_HOLD)
@@ -543,6 +549,8 @@ public void testBuilder() {
assertEquals(CRC32_HEX_STRING, blob.getCrc32cToHexString());
assertEquals(CREATE_TIME, blob.getCreateTime());
assertEquals(CUSTOM_TIME, blob.getCustomTime());
+ assertEquals(STORAGE_CLASS, blob.getStorageClass());
+ assertEquals(TIME_STORAGE_CLASS_UPDATED, blob.getTimeStorageClassUpdated());
assertEquals(CUSTOMER_ENCRYPTION, blob.getCustomerEncryption());
assertEquals(KMS_KEY_NAME, blob.getKmsKeyName());
assertEquals(EVENT_BASED_HOLD, blob.getEventBasedHold());
@@ -576,6 +584,8 @@ public void testBuilder() {
assertNull(blob.getCrc32c());
assertNull(blob.getCrc32cToHexString());
assertNull(blob.getCreateTime());
+ assertNull(blob.getStorageClass());
+ assertNull(blob.getTimeStorageClassUpdated());
assertNull(blob.getCustomerEncryption());
assertNull(blob.getKmsKeyName());
assertNull(blob.getEventBasedHold());
diff --git a/google-cloud-storage/src/test/java/com/google/cloud/storage/it/ITStorageTest.java b/google-cloud-storage/src/test/java/com/google/cloud/storage/it/ITStorageTest.java
index 925e3d6d1b..84936e0d4a 100644
--- a/google-cloud-storage/src/test/java/com/google/cloud/storage/it/ITStorageTest.java
+++ b/google-cloud-storage/src/test/java/com/google/cloud/storage/it/ITStorageTest.java
@@ -3567,4 +3567,42 @@ public void testBucketUpdateTime() throws ExecutionException, InterruptedExcepti
RemoteStorageHelper.forceDelete(storage, bucketName, 5, TimeUnit.SECONDS);
}
}
+
+ @Test
+ public void testBlobTimeStorageClassUpdated() {
+ String blobName = "test-blob-with-storage-class";
+ StorageClass storageClass = StorageClass.COLDLINE;
+ BlobInfo blob = BlobInfo.newBuilder(BUCKET, blobName).setStorageClass(storageClass).build();
+ Blob remoteBlob = storage.create(blob);
+ assertThat(remoteBlob).isNotNull();
+ assertThat(remoteBlob.getBucket()).isEqualTo(blob.getBucket());
+ assertThat(remoteBlob.getName()).isEqualTo(blob.getName());
+ assertThat(remoteBlob.getCreateTime()).isNotNull();
+ assertThat(remoteBlob.getUpdateTime()).isEqualTo(remoteBlob.getCreateTime());
+ assertThat(remoteBlob.getTimeStorageClassUpdated()).isEqualTo(remoteBlob.getCreateTime());
+
+ // We can't change an object's storage class directly, the only way is to rewrite the object
+ // with the desired storage class.
+ BlobId blobId = BlobId.of(BUCKET, blobName);
+ Storage.CopyRequest request =
+ Storage.CopyRequest.newBuilder()
+ .setSource(blobId)
+ .setTarget(BlobInfo.newBuilder(blobId).setStorageClass(StorageClass.STANDARD).build())
+ .build();
+ Blob updatedBlob1 = storage.copy(request).getResult();
+ assertThat(updatedBlob1.getTimeStorageClassUpdated()).isNotNull();
+ assertThat(updatedBlob1.getCreateTime()).isGreaterThan(remoteBlob.getCreateTime());
+ assertThat(updatedBlob1.getUpdateTime()).isGreaterThan(remoteBlob.getCreateTime());
+ assertThat(updatedBlob1.getTimeStorageClassUpdated())
+ .isGreaterThan(remoteBlob.getTimeStorageClassUpdated());
+
+ // Updates the other properties of the blob's to check the difference between blob updateTime
+ // and timeStorageClassUpdated.
+ Blob updatedBlob2 = updatedBlob1.toBuilder().setContentType(CONTENT_TYPE).build().update();
+ assertThat(updatedBlob2.getUpdateTime())
+ .isGreaterThan(updatedBlob2.getTimeStorageClassUpdated());
+ assertThat(updatedBlob2.getTimeStorageClassUpdated())
+ .isEqualTo(updatedBlob1.getTimeStorageClassUpdated());
+ assertThat(updatedBlob2.delete()).isTrue();
+ }
}
diff --git a/pom.xml b/pom.xml
index 80c13fb10a..332a2c3d32 100644
--- a/pom.xml
+++ b/pom.xml
@@ -4,7 +4,7 @@
com.google.cloud
google-cloud-storage-parent
pom
- 1.112.0
+ 1.113.0
Storage Parent
https://github.com/googleapis/java-storage
@@ -70,7 +70,7 @@
com.google.cloud
google-cloud-shared-dependencies
- 0.8.6
+ 0.9.0
pom
import
diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml
index 4dad481d10..6accfe9afe 100644
--- a/samples/install-without-bom/pom.xml
+++ b/samples/install-without-bom/pom.xml
@@ -29,7 +29,7 @@
com.google.cloud
google-cloud-storage
- 1.111.2
+ 1.112.0
diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml
index f662ee168c..211256dccd 100644
--- a/samples/snapshot/pom.xml
+++ b/samples/snapshot/pom.xml
@@ -28,7 +28,7 @@
com.google.cloud
google-cloud-storage
- 1.111.2
+ 1.112.0
diff --git a/samples/snippets/pom.xml b/samples/snippets/pom.xml
index a2e44bb9c3..7c6cf5632a 100644
--- a/samples/snippets/pom.xml
+++ b/samples/snippets/pom.xml
@@ -30,7 +30,7 @@
com.google.cloud
libraries-bom
- 9.1.0
+ 10.0.0
pom
import
diff --git a/synth.metadata b/synth.metadata
index c283453cd3..bf030a09c5 100644
--- a/synth.metadata
+++ b/synth.metadata
@@ -4,14 +4,14 @@
"git": {
"name": ".",
"remote": "https://github.com/googleapis/java-storage.git",
- "sha": "8602b81eae95868e184fd4ab290396707bd21a8e"
+ "sha": "9835c29eb645dc988f899733fba2aabca736e319"
}
},
{
"git": {
"name": "synthtool",
"remote": "https://github.com/googleapis/synthtool.git",
- "sha": "968465a1cad496e1292ef4584a054a35f756ff94"
+ "sha": "019c7168faa0e56619f792693a8acdb30d6de19b"
}
}
],
diff --git a/versions.txt b/versions.txt
index 4e7fd1db90..b7420fc778 100644
--- a/versions.txt
+++ b/versions.txt
@@ -1,4 +1,4 @@
# Format:
# module:released-version:current-version
-google-cloud-storage:1.112.0:1.112.0
\ No newline at end of file
+google-cloud-storage:1.113.0:1.113.0
\ No newline at end of file