Repository: googleapis/google-http-java-client
Pull request #1985 (2024-08-16 18:31:45)

chore(deps): update dependency com.google.cloud:libraries-bom to v26.44.0
[![Mend Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| [com.google.cloud:libraries-bom](https://cloud.google.com/java/docs/bom) ([source](https://togithub.com/googleapis/java-cloud-bom)) | `26.10.0` -> `26.44.0` | [![age](https://developer.mend.io/api/mc/badges/age/maven/com.google.cloud:libraries-bom/26.44.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/maven/com.google.cloud:libraries-bom/26.44.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/maven/com.google.cloud:libraries-bom/26.10.0/26.44.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/maven/com.google.cloud:libraries-bom/26.10.0/26.44.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) |

---

### Release Notes

<details>
<summary>googleapis/java-cloud-bom (com.google.cloud:libraries-bom)</summary>

### [`v26.44.0`](https://togithub.com/googleapis/java-cloud-bom/blob/HEAD/CHANGELOG.md#26440-2024-08-08)

##### Dependencies

-   update dependency com.google.cloud:first-party-dependencies to v3.33.0 ([#&#8203;6687](https://togithub.com/googleapis/java-cloud-bom/issues/6687)) ([d93c7c1](https://togithub.com/googleapis/java-cloud-bom/commit/d93c7c1e5c8cfea5f0bb3b570282af1d17ac9992))
-   update dependency com.google.cloud:gapic-libraries-bom to v1.41.0 ([#&#8203;6689](https://togithub.com/googleapis/java-cloud-bom/issues/6689)) ([e5afcc8](https://togithub.com/googleapis/java-cloud-bom/commit/e5afcc8a5afd362f7cdb6d19f446c99db7832fb9))
-   update dependency com.google.cloud:google-cloud-bigquery to v2.42.0 ([#&#8203;6688](https://togithub.com/googleapis/java-cloud-bom/issues/6688)) ([58ed9ce](https://togithub.com/googleapis/java-cloud-bom/commit/58ed9cef18361489756bafdf9b6159077f498608))
-   update dependency com.google.cloud:google-cloud-bigquerystorage-bom to v3.8.0 ([#&#8203;6685](https://togithub.com/googleapis/java-cloud-bom/issues/6685)) ([c6968cb](https://togithub.com/googleapis/java-cloud-bom/commit/c6968cb3315c37d21539daa5001c6b297f600ba4))
-   update dependency com.google.cloud:google-cloud-bigtable-bom to v2.41.0 ([#&#8203;6686](https://togithub.com/googleapis/java-cloud-bom/issues/6686)) ([256f1b0](https://togithub.com/googleapis/java-cloud-bom/commit/256f1b0e97dc1c28453fd0c302e5ecc6958a5a55))
-   update dependency com.google.cloud:google-cloud-bigtable-bom to v2.42.0 ([9e666cf](https://togithub.com/googleapis/java-cloud-bom/commit/9e666cf1efb8ba694a945814060df0ccdb26f363))
-   update dependency com.google.cloud:google-cloud-datastore-bom to v2.21.0 ([#&#8203;6697](https://togithub.com/googleapis/java-cloud-bom/issues/6697)) ([046ad04](https://togithub.com/googleapis/java-cloud-bom/commit/046ad04177bca0cfd2aecce6bc1170617939bfbb))
-   update dependency com.google.cloud:google-cloud-datastore-bom to v2.21.1 ([9e666cf](https://togithub.com/googleapis/java-cloud-bom/commit/9e666cf1efb8ba694a945814060df0ccdb26f363))
-   update dependency com.google.cloud:google-cloud-firestore-bom to v3.24.2 ([#&#8203;6681](https://togithub.com/googleapis/java-cloud-bom/issues/6681)) ([91673de](https://togithub.com/googleapis/java-cloud-bom/commit/91673debfaec89f2c6b49249966f9ed772acc3bd))
-   update dependency com.google.cloud:google-cloud-firestore-bom to v3.24.3 ([9e666cf](https://togithub.com/googleapis/java-cloud-bom/commit/9e666cf1efb8ba694a945814060df0ccdb26f363))
-   update dependency com.google.cloud:google-cloud-logging-bom to v3.20.0 ([#&#8203;6694](https://togithub.com/googleapis/java-cloud-bom/issues/6694)) ([780736c](https://togithub.com/googleapis/java-cloud-bom/commit/780736c2b35f8f657b686bd1f4e61946835736ec))
-   update dependency com.google.cloud:google-cloud-logging-logback to v0.131.10-alpha ([#&#8203;6695](https://togithub.com/googleapis/java-cloud-bom/issues/6695)) ([6ecff38](https://togithub.com/googleapis/java-cloud-bom/commit/6ecff38a39d0bbc2516ffcba64507afc9b4ac027))
-   update dependency com.google.cloud:google-cloud-nio to v0.127.21 ([4534296](https://togithub.com/googleapis/java-cloud-bom/commit/4534296641ba101fae87219bbabc7efdd86f3fbc))
-   update dependency com.google.cloud:google-cloud-pubsub-bom to v1.132.0 ([#&#8203;6693](https://togithub.com/googleapis/java-cloud-bom/issues/6693)) ([b0483b9](https://togithub.com/googleapis/java-cloud-bom/commit/b0483b95065ae38522547c736a753c751279f014))
-   update dependency com.google.cloud:google-cloud-pubsublite-bom to v1.14.0 ([#&#8203;6696](https://togithub.com/googleapis/java-cloud-bom/issues/6696)) ([ad905cc](https://togithub.com/googleapis/java-cloud-bom/commit/ad905ccb7d41bd64cc519bd855dabb0523bd7fa8))
-   update dependency com.google.cloud:google-cloud-spanner-bom to v6.72.0 ([9e666cf](https://togithub.com/googleapis/java-cloud-bom/commit/9e666cf1efb8ba694a945814060df0ccdb26f363))
-   update dependency com.google.cloud:google-cloud-spanner-jdbc to v2.20.2 ([4534296](https://togithub.com/googleapis/java-cloud-bom/commit/4534296641ba101fae87219bbabc7efdd86f3fbc))
-   update dependency com.google.cloud:google-cloud-storage-bom to v2.41.0 ([#&#8203;6690](https://togithub.com/googleapis/java-cloud-bom/issues/6690)) ([43aef8e](https://togithub.com/googleapis/java-cloud-bom/commit/43aef8e9bf082ce98afd0c34163b016b8f315ee0))
-   update dependency com.google.googlejavaformat:google-java-format to v1.23.0 ([#&#8203;6692](https://togithub.com/googleapis/java-cloud-bom/issues/6692)) ([b403c50](https://togithub.com/googleapis/java-cloud-bom/commit/b403c5040d47ba87dd32162e3be71ded6fdd127c))

### [`v26.43.0`](https://togithub.com/googleapis/java-cloud-bom/blob/HEAD/CHANGELOG.md#26430-2024-07-08)

[Compare Source](https://togithub.com/googleapis/java-cloud-bom/compare/v26.42.0...v26.43.0)

##### Dependencies

-   update dependency com.google.cloud:first-party-dependencies to v3.32.0 ([#&#8203;6654](https://togithub.com/googleapis/java-cloud-bom/issues/6654)) ([031b97b](https://togithub.com/googleapis/java-cloud-bom/commit/031b97b29464145b553e2e8bdd87788f3fd5df10))
-   update dependency com.google.cloud:gapic-libraries-bom to v1.40.0 ([#&#8203;6663](https://togithub.com/googleapis/java-cloud-bom/issues/6663)) ([04e1eee](https://togithub.com/googleapis/java-cloud-bom/commit/04e1eee49411360a9de60f2050d02b86f7b5a8dc))
-   update dependency com.google.cloud:google-cloud-bigquery to v2.41.0 ([#&#8203;6664](https://togithub.com/googleapis/java-cloud-bom/issues/6664)) ([1dcc2e5](https://togithub.com/googleapis/java-cloud-bom/commit/1dcc2e530b63798274cd4e4d90b8365bd74747b5))
-   update dependency com.google.cloud:google-cloud-bigquerystorage-bom to v3.6.1 ([#&#8203;6655](https://togithub.com/googleapis/java-cloud-bom/issues/6655)) ([40fcf6a](https://togithub.com/googleapis/java-cloud-bom/commit/40fcf6a3ffbdac2a3299b4460a6f17cb6243672c))
-   update dependency com.google.cloud:google-cloud-bigtable-bom to v2.40.0 ([#&#8203;6672](https://togithub.com/googleapis/java-cloud-bom/issues/6672)) ([a6ea250](https://togithub.com/googleapis/java-cloud-bom/commit/a6ea25015eb48f2732474cbd180d40ec2766e4c3))
-   update dependency com.google.cloud:google-cloud-datastore-bom to v2.20.2 ([#&#8203;6667](https://togithub.com/googleapis/java-cloud-bom/issues/6667)) ([ca673e6](https://togithub.com/googleapis/java-cloud-bom/commit/ca673e6a744f56672361ad6842ad3928c54c2eb3))
-   update dependency com.google.cloud:google-cloud-firestore-bom to v3.22.0 ([#&#8203;6656](https://togithub.com/googleapis/java-cloud-bom/issues/6656)) ([932b658](https://togithub.com/googleapis/java-cloud-bom/commit/932b658c7b50f74cbbd8886cf045f368273460a7))
-   update dependency com.google.cloud:google-cloud-logging-bom to v3.19.0 ([#&#8203;6665](https://togithub.com/googleapis/java-cloud-bom/issues/6665)) ([c9b7d11](https://togithub.com/googleapis/java-cloud-bom/commit/c9b7d11f15b00d093eda04b20c67fa3d9374d949))
-   update dependency com.google.cloud:google-cloud-logging-logback to v0.131.9-alpha ([#&#8203;6659](https://togithub.com/googleapis/java-cloud-bom/issues/6659)) ([cca0860](https://togithub.com/googleapis/java-cloud-bom/commit/cca086072a789a1479bbfe588064019daee72a18))
-   update dependency com.google.cloud:google-cloud-nio to v0.127.20 ([#&#8203;6660](https://togithub.com/googleapis/java-cloud-bom/issues/6660)) ([d79ca29](https://togithub.com/googleapis/java-cloud-bom/commit/d79ca2999267aad06b72239dcf59b8afc165c94b))
-   update dependency com.google.cloud:google-cloud-pubsub-bom to v1.131.0 ([#&#8203;6646](https://togithub.com/googleapis/java-cloud-bom/issues/6646)) ([5ef6705](https://togithub.com/googleapis/java-cloud-bom/commit/5ef6705a503930a3bc8f3db05a55af80388ebeed))
-   update dependency com.google.cloud:google-cloud-pubsublite-bom to v1.13.8 ([#&#8203;6657](https://togithub.com/googleapis/java-cloud-bom/issues/6657)) ([ecc6df5](https://togithub.com/googleapis/java-cloud-bom/commit/ecc6df5ae75f6e3c59ebc188576a02b2b52d6ccf))
-   update dependency com.google.cloud:google-cloud-spanner-bom to v6.70.0 ([#&#8203;6666](https://togithub.com/googleapis/java-cloud-bom/issues/6666)) ([79cbeaa](https://togithub.com/googleapis/java-cloud-bom/commit/79cbeaa8944ed6971f5f9645c219bd6f8224c406))
-   update dependency com.google.cloud:google-cloud-spanner-bom to v6.71.0 ([#&#8203;6668](https://togithub.com/googleapis/java-cloud-bom/issues/6668)) ([3c9ca8d](https://togithub.com/googleapis/java-cloud-bom/commit/3c9ca8d719e2c5bc53d7bdc05e20e62b54980438))
-   update dependency com.google.cloud:google-cloud-spanner-jdbc to v2.20.0 ([#&#8203;6653](https://togithub.com/googleapis/java-cloud-bom/issues/6653)) ([9ef0ae9](https://togithub.com/googleapis/java-cloud-bom/commit/9ef0ae9c2d61d7a238498027952875bd4c80b2bc))
-   update dependency com.google.cloud:google-cloud-spanner-jdbc to v2.20.1 ([#&#8203;6669](https://togithub.com/googleapis/java-cloud-bom/issues/6669)) ([301282c](https://togithub.com/googleapis/java-cloud-bom/commit/301282cb39996b9dcb439d70dde83e0a04a68e5c))
-   update dependency com.google.cloud:google-cloud-storage-bom to v2.40.1 ([#&#8203;6661](https://togithub.com/googleapis/java-cloud-bom/issues/6661)) ([e7afa0c](https://togithub.com/googleapis/java-cloud-bom/commit/e7afa0c9073f072f031d81911bea7f81de2570af))

### [`v26.42.0`](https://togithub.com/googleapis/java-cloud-bom/blob/HEAD/CHANGELOG.md#26420-2024-06-17)

[Compare Source](https://togithub.com/googleapis/java-cloud-bom/compare/v26.41.0...v26.42.0)

##### Dependencies

-   update dependency com.google.cloud:google-cloud-spanner-jdbc to v2.19.3 ([#&#8203;6645](https://togithub.com/googleapis/java-cloud-bom/issues/6645)) ([baf9c12](https://togithub.com/googleapis/java-cloud-bom/commit/baf9c12ff6c94bd1e300ae1b636cdc63e7281695))

### [`v26.41.0`](https://togithub.com/googleapis/java-cloud-bom/blob/HEAD/CHANGELOG.md#26410-2024-06-12)

[Compare Source](https://togithub.com/googleapis/java-cloud-bom/compare/v26.40.0...v26.41.0)

##### Dependencies

-   update dependency com.google.cloud:first-party-dependencies to v3.31.0 ([#&#8203;6624](https://togithub.com/googleapis/java-cloud-bom/issues/6624)) ([6b74d3e](https://togithub.com/googleapis/java-cloud-bom/commit/6b74d3e9081eb895b991cf09e4a9a06b7498df4e))
-   update dependency com.google.cloud:gapic-libraries-bom to v1.39.0 ([#&#8203;6638](https://togithub.com/googleapis/java-cloud-bom/issues/6638)) ([67320ae](https://togithub.com/googleapis/java-cloud-bom/commit/67320aed8cf903d6fb851d08c0e7222e37527258))
-   update dependency com.google.cloud:google-cloud-bigquery to v2.40.3 ([#&#8203;6633](https://togithub.com/googleapis/java-cloud-bom/issues/6633)) ([e9574c2](https://togithub.com/googleapis/java-cloud-bom/commit/e9574c2493abcd53a68dc657147112961db664b4))
-   update dependency com.google.cloud:google-cloud-bigquerystorage-bom to v3.6.0 ([#&#8203;6639](https://togithub.com/googleapis/java-cloud-bom/issues/6639)) ([8dca9b0](https://togithub.com/googleapis/java-cloud-bom/commit/8dca9b071cde8108e87d9db4b6d61bcd8e544eb7))
-   update dependency com.google.cloud:google-cloud-bigtable-bom to v2.39.5 ([#&#8203;6631](https://togithub.com/googleapis/java-cloud-bom/issues/6631)) ([23f5ad6](https://togithub.com/googleapis/java-cloud-bom/commit/23f5ad6f054524d511da963311402b243943375f))
-   update dependency com.google.cloud:google-cloud-datastore-bom to v2.20.1 ([#&#8203;6628](https://togithub.com/googleapis/java-cloud-bom/issues/6628)) ([4206ac8](https://togithub.com/googleapis/java-cloud-bom/commit/4206ac831c6269569a7d98906287398b18cb9869))
-   update dependency com.google.cloud:google-cloud-firestore-bom to v3.21.4 ([#&#8203;6634](https://togithub.com/googleapis/java-cloud-bom/issues/6634)) ([6b0e366](https://togithub.com/googleapis/java-cloud-bom/commit/6b0e3660a4fca4cd0685efb00e9f6a5102366522))
-   update dependency com.google.cloud:google-cloud-logging-bom to v3.18.0 ([#&#8203;6627](https://togithub.com/googleapis/java-cloud-bom/issues/6627)) ([678a51c](https://togithub.com/googleapis/java-cloud-bom/commit/678a51c5c112c1206c319d4f6f4cc4b19f901eca))
-   update dependency com.google.cloud:google-cloud-logging-logback to v0.131.8-alpha ([#&#8203;6635](https://togithub.com/googleapis/java-cloud-bom/issues/6635)) ([922b901](https://togithub.com/googleapis/java-cloud-bom/commit/922b901c40236b2c79d8f8ecd0618296b54fdf70))
-   update dependency com.google.cloud:google-cloud-nio to v0.127.19 ([#&#8203;6636](https://togithub.com/googleapis/java-cloud-bom/issues/6636)) ([7533d4c](https://togithub.com/googleapis/java-cloud-bom/commit/7533d4c92b265b89ecb2cc39d0acdc0fcd51782f))
-   update dependency com.google.cloud:google-cloud-pubsub-bom to v1.130.0 ([#&#8203;6621](https://togithub.com/googleapis/java-cloud-bom/issues/6621)) ([e1242c3](https://togithub.com/googleapis/java-cloud-bom/commit/e1242c396bf2356c6a12cadfe273cfb7997f8b58))
-   update dependency com.google.cloud:google-cloud-pubsublite-bom to v1.13.7 ([#&#8203;6637](https://togithub.com/googleapis/java-cloud-bom/issues/6637)) ([2914fb9](https://togithub.com/googleapis/java-cloud-bom/commit/2914fb9e8b615ae4aa7854cf14643208c9d7cfac))
-   update dependency com.google.cloud:google-cloud-spanner-bom to v6.68.1 ([#&#8203;6622](https://togithub.com/googleapis/java-cloud-bom/issues/6622)) ([c62eac0](https://togithub.com/googleapis/java-cloud-bom/commit/c62eac081cd85d570d01e2ef29ea8bc188390f9d))
-   update dependency com.google.cloud:google-cloud-spanner-bom to v6.69.0 ([#&#8203;6641](https://togithub.com/googleapis/java-cloud-bom/issues/6641)) ([78651d7](https://togithub.com/googleapis/java-cloud-bom/commit/78651d7f52f95ab602a9d69b47c5f3d969239638))
-   update dependency com.google.cloud:google-cloud-spanner-jdbc to v2.19.2 ([#&#8203;6625](https://togithub.com/googleapis/java-cloud-bom/issues/6625)) ([45533f7](https://togithub.com/googleapis/java-cloud-bom/commit/45533f7ce7df401f0b9e60955d5a5d7d9880673c))
-   update dependency com.google.cloud:google-cloud-storage-bom to v2.40.0 ([#&#8203;6629](https://togithub.com/googleapis/java-cloud-bom/issues/6629)) ([e90e761](https://togithub.com/googleapis/java-cloud-bom/commit/e90e7618b5f1a9b18f723d53f8afb3889fdeaefb))
-   update dependency org.freemarker:freemarker to v2.3.33 ([#&#8203;6626](https://togithub.com/googleapis/java-cloud-bom/issues/6626)) ([d5c3bdf](https://togithub.com/googleapis/java-cloud-bom/commit/d5c3bdf469891aac62a2c20fbe5adf1d685f66f3))

### [`v26.40.0`](https://togithub.com/googleapis/java-cloud-bom/blob/HEAD/CHANGELOG.md#26400-2024-05-29)

[Compare Source](https://togithub.com/googleapis/java-cloud-bom/compare/v26.39.0...v26.40.0)

##### Features

-   \[java] allow passing libraries_bom_version from env ([#&#8203;1967](https://togithub.com/googleapis/java-cloud-bom/issues/1967)) ([#&#8203;6596](https://togithub.com/googleapis/java-cloud-bom/issues/6596)) ([42dc9c7](https://togithub.com/googleapis/java-cloud-bom/commit/42dc9c7e9d5ff2185e4ecc62aae61cc1632466b2))

##### Dependencies

-   update actions/checkout action to v4 ([#&#8203;6585](https://togithub.com/googleapis/java-cloud-bom/issues/6585)) ([0820cf4](https://togithub.com/googleapis/java-cloud-bom/commit/0820cf4e8d2a44899cb2878a83ba56b3ca9fbcfa))
-   update actions/checkout action to v4 ([#&#8203;6607](https://togithub.com/googleapis/java-cloud-bom/issues/6607)) ([9e6bc83](https://togithub.com/googleapis/java-cloud-bom/commit/9e6bc83f2e1954984f34ece12f5ed55ddb775fa9))
-   update actions/github-script action to v7 ([#&#8203;6586](https://togithub.com/googleapis/java-cloud-bom/issues/6586)) ([1b0d93b](https://togithub.com/googleapis/java-cloud-bom/commit/1b0d93be6176576cd7de295f94d360635c63be2a))
-   update actions/github-script action to v7 ([#&#8203;6608](https://togithub.com/googleapis/java-cloud-bom/issues/6608)) ([ca4eab4](https://togithub.com/googleapis/java-cloud-bom/commit/ca4eab47453e9bce9fff4960adac203bed4afbeb))
-   update actions/setup-java action to v4 ([#&#8203;6588](https://togithub.com/googleapis/java-cloud-bom/issues/6588)) ([bc1631b](https://togithub.com/googleapis/java-cloud-bom/commit/bc1631b66ffbea46f2c6b9c74dada219d342a8d2))
-   update actions/setup-java action to v4 ([#&#8203;6609](https://togithub.com/googleapis/java-cloud-bom/issues/6609)) ([6d5d132](https://togithub.com/googleapis/java-cloud-bom/commit/6d5d132dbafb30c072d4266f990a0982765b4172))
-   update actions/setup-node action to v4 ([#&#8203;6589](https://togithub.com/googleapis/java-cloud-bom/issues/6589)) ([28c11fc](https://togithub.com/googleapis/java-cloud-bom/commit/28c11fcc55ad9cd856cd812ff84844df98b5e346))
-   update actions/setup-node action to v4 ([#&#8203;6610](https://togithub.com/googleapis/java-cloud-bom/issues/6610)) ([9212351](https://togithub.com/googleapis/java-cloud-bom/commit/9212351192a830cbe496eabb49b2c8c2129b4ce7))
-   update dependency com.google.cloud:first-party-dependencies to v3.30.1 ([#&#8203;6592](https://togithub.com/googleapis/java-cloud-bom/issues/6592)) ([08e4163](https://togithub.com/googleapis/java-cloud-bom/commit/08e4163e9cf0193271cbe9c1af38e159871088bc))
-   update dependency com.google.cloud:gapic-libraries-bom to v1.38.0 ([#&#8203;6603](https://togithub.com/googleapis/java-cloud-bom/issues/6603)) ([8e7bce4](https://togithub.com/googleapis/java-cloud-bom/commit/8e7bce4d3ec6b78fe425c77011521bbc70ed8e45))
-   update dependency com.google.cloud:google-cloud-bigquery to v2.40.2 ([#&#8203;6614](https://togithub.com/googleapis/java-cloud-bom/issues/6614)) ([c44894a](https://togithub.com/googleapis/java-cloud-bom/commit/c44894a4eeb8812c7cd407f3d13fb9149a934506))
-   update dependency com.google.cloud:google-cloud-bigquerystorage-bom to v3.5.2 ([#&#8203;6611](https://togithub.com/googleapis/java-cloud-bom/issues/6611)) ([f3651c6](https://togithub.com/googleapis/java-cloud-bom/commit/f3651c689f89795090d331282752b34ad79b8cd6))
-   update dependency com.google.cloud:google-cloud-bigtable-bom to v2.39.3 ([#&#8203;6598](https://togithub.com/googleapis/java-cloud-bom/issues/6598)) ([d6518be](https://togithub.com/googleapis/java-cloud-bom/commit/d6518be6abdc16b5867b40cf0ef790c5cb0c76d3))
-   update dependency com.google.cloud:google-cloud-bigtable-bom to v2.39.4 ([#&#8203;6618](https://togithub.com/googleapis/java-cloud-bom/issues/6618)) ([1a7c94e](https://togithub.com/googleapis/java-cloud-bom/commit/1a7c94e9bee2258d9b66674ae66bb1c48f0ab3c8))
-   update dependency com.google.cloud:google-cloud-datastore-bom to v2.19.3 ([#&#8203;6593](https://togithub.com/googleapis/java-cloud-bom/issues/6593)) ([6af567b](https://togithub.com/googleapis/java-cloud-bom/commit/6af567b889d07f144876405975ec48ef07c5584a))
-   update dependency com.google.cloud:google-cloud-datastore-bom to v2.20.0 ([#&#8203;6617](https://togithub.com/googleapis/java-cloud-bom/issues/6617)) ([6abbddf](https://togithub.com/googleapis/java-cloud-bom/commit/6abbddfce32177104bee93d28315b051c57c1be3))
-   update dependency com.google.cloud:google-cloud-firestore-bom to v3.21.3 ([#&#8203;6594](https://togithub.com/googleapis/java-cloud-bom/issues/6594)) ([3ee6bf0](https://togithub.com/googleapis/java-cloud-bom/commit/3ee6bf060d413bb1dd52566c9b7c2886c3fc0bfe))
-   update dependency com.google.cloud:google-cloud-logging-bom to v3.17.2 ([#&#8203;6595](https://togithub.com/googleapis/java-cloud-bom/issues/6595)) ([5e57c2d](https://togithub.com/googleapis/java-cloud-bom/commit/5e57c2d76f441f312d02982edd4f91d5e2553321))
-   update dependency com.google.cloud:google-cloud-logging-logback to v0.131.7-alpha ([#&#8203;6599](https://togithub.com/googleapis/java-cloud-bom/issues/6599)) ([ab4572e](https://togithub.com/googleapis/java-cloud-bom/commit/ab4572e10940c443c0e9bf6b12d3b7d663257c11))
-   update dependency com.google.cloud:google-cloud-nio to v0.127.18 ([#&#8203;6600](https://togithub.com/googleapis/java-cloud-bom/issues/6600)) ([e4c7415](https://togithub.com/googleapis/java-cloud-bom/commit/e4c7415b26d0ac1fe6fda95acc137f16de63afe6))
-   update dependency com.google.cloud:google-cloud-pubsub-bom to v1.129.6 ([#&#8203;6590](https://togithub.com/googleapis/java-cloud-bom/issues/6590)) ([cddf911](https://togithub.com/googleapis/java-cloud-bom/commit/cddf91189ce26293c633ada8c2406e829b84162e))
-   update dependency com.google.cloud:google-cloud-pubsublite-bom to v1.13.6 ([#&#8203;6601](https://togithub.com/googleapis/java-cloud-bom/issues/6601)) ([e2907a0](https://togithub.com/googleapis/java-cloud-bom/commit/e2907a0fed5c426ae32b4d0cd1d229d8bafa417c))
-   update dependency com.google.cloud:google-cloud-spanner-bom to v6.67.0 ([#&#8203;6604](https://togithub.com/googleapis/java-cloud-bom/issues/6604)) ([3596bdc](https://togithub.com/googleapis/java-cloud-bom/commit/3596bdca42ef81b25291cd7150f8e6d40a93a584))
-   update dependency com.google.cloud:google-cloud-spanner-bom to v6.68.0 ([#&#8203;6615](https://togithub.com/googleapis/java-cloud-bom/issues/6615)) ([b931bc5](https://togithub.com/googleapis/java-cloud-bom/commit/b931bc5db05b805d76a7f767a9799ee65bbae7da))
-   update dependency com.google.cloud:google-cloud-spanner-jdbc to v2.18.1 ([#&#8203;6602](https://togithub.com/googleapis/java-cloud-bom/issues/6602)) ([0352c3c](https://togithub.com/googleapis/java-cloud-bom/commit/0352c3c62d1440c6ffe141bde1f9b9fa75716bfd))
-   update dependency com.google.cloud:google-cloud-storage-bom to v2.39.0 ([#&#8203;6605](https://togithub.com/googleapis/java-cloud-bom/issues/6605)) ([fac0a62](https://togithub.com/googleapis/java-cloud-bom/commit/fac0a62bf76c0d18985c17c3009438118623a065))
-   update dependency commons-cli:commons-cli to v1.8.0 ([#&#8203;6606](https://togithub.com/googleapis/java-cloud-bom/issues/6606)) ([12c8d45](https://togithub.com/googleapis/java-cloud-bom/commit/12c8d45126c6f1f97b6ba1986159e858f1a4cbde))

### [`v26.39.0`](https://togithub.com/googleapis/java-cloud-bom/blob/HEAD/CHANGELOG.md#26390-2024-05-09)

[Compare Source](https://togithub.com/googleapis/java-cloud-bom/compare/v26.38.0...v26.39.0)

##### Dependencies

-   update actions/checkout action to v4 ([#&#8203;6557](https://togithub.com/googleapis/java-cloud-bom/issues/6557)) ([ccf746b](https://togithub.com/googleapis/java-cloud-bom/commit/ccf746b48d9fcaa80dd427594215d0a360c133b0))
-   update actions/github-script action to v7 ([#&#8203;6558](https://togithub.com/googleapis/java-cloud-bom/issues/6558)) ([9f3d444](https://togithub.com/googleapis/java-cloud-bom/commit/9f3d4444c6d7e05c95ef544b10b3fc2a9c9c9f29))
-   update actions/setup-java action to v4 ([#&#8203;6561](https://togithub.com/googleapis/java-cloud-bom/issues/6561)) ([461a963](https://togithub.com/googleapis/java-cloud-bom/commit/461a96367d19552014d07f036f6c65b3b975fd53))
-   update actions/setup-node action to v4 ([#&#8203;6562](https://togithub.com/googleapis/java-cloud-bom/issues/6562)) ([15014fa](https://togithub.com/googleapis/java-cloud-bom/commit/15014fa870dd50119eed40e53b81f39e1176209e))
-   update dependency com.google.cloud:first-party-dependencies to v3.30.0 ([#&#8203;6567](https://togithub.com/googleapis/java-cloud-bom/issues/6567)) ([1f8fbe0](https://togithub.com/googleapis/java-cloud-bom/commit/1f8fbe09eb8fb26b7548c4dff12b1d46e570e84e))
-   update dependency com.google.cloud:gapic-libraries-bom to v1.37.0 ([#&#8203;6578](https://togithub.com/googleapis/java-cloud-bom/issues/6578)) ([a8a51bf](https://togithub.com/googleapis/java-cloud-bom/commit/a8a51bf6798fe5b0375f50c025d488bbd57e0101))
-   update dependency com.google.cloud:google-cloud-bigquery to v2.40.1 ([#&#8203;6579](https://togithub.com/googleapis/java-cloud-bom/issues/6579)) ([d118387](https://togithub.com/googleapis/java-cloud-bom/commit/d1183874887d0a09b26d9b7fd7c8ffaac700ac06))
-   update dependency com.google.cloud:google-cloud-bigquerystorage-bom to v3.5.1 ([#&#8203;6570](https://togithub.com/googleapis/java-cloud-bom/issues/6570)) ([2fbb407](https://togithub.com/googleapis/java-cloud-bom/commit/2fbb407ceb0c9720151e7dc5e31977ae5afea3f8))
-   update dependency com.google.cloud:google-cloud-bigtable-bom to v2.39.1 ([#&#8203;6574](https://togithub.com/googleapis/java-cloud-bom/issues/6574)) ([23c12df](https://togithub.com/googleapis/java-cloud-bom/commit/23c12dfa5e01e54219d60c078189292b0e51bb8e))
-   update dependency com.google.cloud:google-cloud-bigtable-bom to v2.39.2 ([#&#8203;6582](https://togithub.com/googleapis/java-cloud-bom/issues/6582)) ([54c33f0](https://togithub.com/googleapis/java-cloud-bom/commit/54c33f02fc6dac0fad17925f8a480f990cd94bc1))
-   update dependency com.google.cloud:google-cloud-datastore-bom to v2.19.2 ([#&#8203;6571](https://togithub.com/googleapis/java-cloud-bom/issues/6571)) ([3fadbe1](https://togithub.com/googleapis/java-cloud-bom/commit/3fadbe17043a896e23137d3b16222bd231065705))
-   update dependency com.google.cloud:google-cloud-firestore-bom to v3.21.1 ([#&#8203;6569](https://togithub.com/googleapis/java-cloud-bom/issues/6569)) ([802739c](https://togithub.com/googleapis/java-cloud-bom/commit/802739ca070707428200920eabf9831e70480ece))
-   update dependency com.google.cloud:google-cloud-logging-bom to v3.17.1 ([#&#8203;6575](https://togithub.com/googleapis/java-cloud-bom/issues/6575)) ([1557cf9](https://togithub.com/googleapis/java-cloud-bom/commit/1557cf9b15bfe589286fd3839b442659294db30a))
-   update dependency com.google.cloud:google-cloud-logging-logback to v0.131.6-alpha ([#&#8203;6576](https://togithub.com/googleapis/java-cloud-bom/issues/6576)) ([db2e1d7](https://togithub.com/googleapis/java-cloud-bom/commit/db2e1d705cfe65ec0180be70613fdc49fc64dccb))
-   update dependency com.google.cloud:google-cloud-nio to v0.127.17 ([#&#8203;6583](https://togithub.com/googleapis/java-cloud-bom/issues/6583)) ([ca0fe00](https://togithub.com/googleapis/java-cloud-bom/commit/ca0fe00e4d2a85dca2971f549bb1e6c00b4a4ac7))
-   update dependency com.google.cloud:google-cloud-pubsub-bom to v1.129.3 ([#&#8203;6565](https://togithub.com/googleapis/java-cloud-bom/issues/6565)) ([dd7920f](https://togithub.com/googleapis/java-cloud-bom/commit/dd7920f479c26b999fff5b31aa685e24a5458844))
-   update dependency com.google.cloud:google-cloud-pubsublite-bom to v1.13.5 ([#&#8203;6577](https://togithub.com/googleapis/java-cloud-bom/issues/6577)) ([637b303](https://togithub.com/googleapis/java-cloud-bom/commit/637b3031a25caea28ba1b7feb2ada67eb735fa9e))
-   update dependency com.google.cloud:google-cloud-spanner-bom to v6.66.0 ([#&#8203;6568](https://togithub.com/googleapis/java-cloud-bom/issues/6568)) ([1fe64e6](https://togithub.com/googleapis/java-cloud-bom/commit/1fe64e6a1be49ac15db2ac94f98a2dcedca2e733))
-   update dependency com.google.cloud:google-cloud-spanner-jdbc to v2.18.0 ([#&#8203;6566](https://togithub.com/googleapis/java-cloud-bom/issues/6566)) ([5c459c4](https://togithub.com/googleapis/java-cloud-bom/commit/5c459c446b1df1ff295cb0c0a0d5731506fc20d7))
-   update dependency com.google.cloud:google-cloud-storage-bom to v2.38.0 ([#&#8203;6581](https://togithub.com/googleapis/java-cloud-bom/issues/6581)) ([eb1590f](https://togithub.com/googleapis/java-cloud-bom/commit/eb1590f05eb21cec095bef7929095ba88993b3d7))

### [`v26.38.0`](https://togithub.com/googleapis/java-cloud-bom/blob/HEAD/CHANGELOG.md#26380-2024-04-30)

[Compare Source](https://togithub.com/googleapis/java-cloud-bom/compare/v26.37.0...v26.38.0)

##### Dependencies

-   update actions/checkout action to v4 ([#&#8203;6507](https://togithub.com/googleapis/java-cloud-bom/issues/6507)) ([5a9e817](https://togithub.com/googleapis/java-cloud-bom/commit/5a9e817b73209e40d2b55abce451d668143839c8))
-   update actions/github-script action to v7 ([#&#8203;6508](https://togithub.com/googleapis/java-cloud-bom/issues/6508)) ([e2f9c9f](https://togithub.com/googleapis/java-cloud-bom/commit/e2f9c9ff3bf95206945b6aac26dd00ce0d1cf9fc))
-   update actions/setup-java action to v4 ([#&#8203;6509](https://togithub.com/googleapis/java-cloud-bom/issues/6509)) ([8aae14e](https://togithub.com/googleapis/java-cloud-bom/commit/8aae14ea4fa7a113541307a2e417a1e0ed6c5001))
-   update actions/setup-node action to v4 ([#&#8203;6510](https://togithub.com/googleapis/java-cloud-bom/issues/6510)) ([a20788d](https://togithub.com/googleapis/java-cloud-bom/commit/a20788dfe145e5f477d60d1ed8ea39bded1d1bfc))
-   update dependency com.google.cloud:first-party-dependencies to v3.29.0 ([#&#8203;6540](https://togithub.com/googleapis/java-cloud-bom/issues/6540)) ([938cd30](https://togithub.com/googleapis/java-cloud-bom/commit/938cd303d70557abdc100cd72f33c6037a2cd62a))
-   update dependency com.google.cloud:gapic-libraries-bom to v1.36.0 ([#&#8203;6549](https://togithub.com/googleapis/java-cloud-bom/issues/6549)) ([64ec4b5](https://togithub.com/googleapis/java-cloud-bom/commit/64ec4b5f8534ecf82dfca76ad0ed0e5ec88fa675))
-   update dependency com.google.cloud:google-cloud-bigquery to v2.39.0 ([#&#8203;6541](https://togithub.com/googleapis/java-cloud-bom/issues/6541)) ([a5798fc](https://togithub.com/googleapis/java-cloud-bom/commit/a5798fc611f95d3a80d45b6e8fd4c1bf47197e4e))
-   update dependency com.google.cloud:google-cloud-bigquery to v2.39.1 ([#&#8203;6554](https://togithub.com/googleapis/java-cloud-bom/issues/6554)) ([075716c](https://togithub.com/googleapis/java-cloud-bom/commit/075716c35b9471f00cca38bf74dfc275a54ef0dc))
-   update dependency com.google.cloud:google-cloud-bigquerystorage-bom to v3.5.0 ([#&#8203;6551](https://togithub.com/googleapis/java-cloud-bom/issues/6551)) ([d4a55af](https://togithub.com/googleapis/java-cloud-bom/commit/d4a55afbce06fdd3a02d606ec6704886a7b551cf))
-   update dependency com.google.cloud:google-cloud-bigtable-bom to v2.39.0 ([#&#8203;6543](https://togithub.com/googleapis/java-cloud-bom/issues/6543)) ([107b178](https://togithub.com/googleapis/java-cloud-bom/commit/107b1780898577c56f416b38f45b93fc43c2008f))
-   update dependency com.google.cloud:google-cloud-datastore-bom to v2.19.1 ([#&#8203;6536](https://togithub.com/googleapis/java-cloud-bom/issues/6536)) ([4bd9f22](https://togithub.com/googleapis/java-cloud-bom/commit/4bd9f22483b648c1d9f8246a8a61f0589172d562))
-   update dependency com.google.cloud:google-cloud-firestore-bom to v3.20.2 ([#&#8203;6537](https://togithub.com/googleapis/java-cloud-bom/issues/6537)) ([5d4e4bf](https://togithub.com/googleapis/java-cloud-bom/commit/5d4e4bf0a45dfc613959767fb6f2786cb4daf0aa))
-   update dependency com.google.cloud:google-cloud-firestore-bom to v3.21.0 ([#&#8203;6550](https://togithub.com/googleapis/java-cloud-bom/issues/6550)) ([a497e07](https://togithub.com/googleapis/java-cloud-bom/commit/a497e07f39b6d5babc038cedb4db146c3653f3d5))
-   update dependency com.google.cloud:google-cloud-logging-bom to v3.17.0 ([#&#8203;6544](https://togithub.com/googleapis/java-cloud-bom/issues/6544)) ([9b4fd06](https://togithub.com/googleapis/java-cloud-bom/commit/9b4fd06c039334a4c4657e08b52f6108dfcd3586))
-   update dependency com.google.cloud:google-cloud-logging-logback to v0.131.5-alpha ([#&#8203;6542](https://togithub.com/googleapis/java-cloud-bom/issues/6542)) ([8f5603b](https://togithub.com/googleapis/java-cloud-bom/commit/8f5603b9d4799a335923a871897302232f91cff9))
-   update dependency com.google.cloud:google-cloud-nio to v0.127.16 ([#&#8203;6538](https://togithub.com/googleapis/java-cloud-bom/issues/6538)) ([cd70cb1](https://togithub.com/googleapis/java-cloud-bom/commit/cd70cb17201994cddada81ed4087563df5135114))
-   update dependency com.google.cloud:google-cloud-pubsub-bom to v1.129.0 ([#&#8203;6524](https://togithub.com/googleapis/java-cloud-bom/issues/6524)) ([c3fcf29](https://togithub.com/googleapis/java-cloud-bom/commit/c3fcf29562c4c9559adc60e3e985bb828187a447))
-   update dependency com.google.cloud:google-cloud-pubsub-bom to v1.129.1 ([#&#8203;6539](https://togithub.com/googleapis/java-cloud-bom/issues/6539)) ([952991e](https://togithub.com/googleapis/java-cloud-bom/commit/952991e5855cb5360f5080df7c4a78153a44b38b))
-   update dependency com.google.cloud:google-cloud-pubsublite-bom to v1.13.3 ([#&#8203;6548](https://togithub.com/googleapis/java-cloud-bom/issues/6548)) ([20d3ebd](https://togithub.com/googleapis/java-cloud-bom/commit/20d3ebd081b431b08e1ce038cd01416ed73a8efc))
-   update dependency com.google.cloud:google-cloud-spanner-bom to v6.65.0 ([#&#8203;6517](https://togithub.com/googleapis/java-cloud-bom/issues/6517)) ([c18e4a1](https://togithub.com/googleapis/java-cloud-bom/commit/c18e4a15f10046440f2b00ccf7dcfc477a4c825c))
-   update dependency com.google.cloud:google-cloud-spanner-bom to v6.65.1 ([#&#8203;6555](https://togithub.com/googleapis/java-cloud-bom/issues/6555)) ([f48df36](https://togithub.com/googleapis/java-cloud-bom/commit/f48df3617749a7306b6478136c34340875c1ec47))
-   update dependency com.google.cloud:google-cloud-spanner-jdbc to v2.17.0 ([#&#8203;6545](https://togithub.com/googleapis/java-cloud-bom/issues/6545)) ([4daf874](https://togithub.com/googleapis/java-cloud-bom/commit/4daf874c8cf7d94af80e08fbcfcbf8a84f236e9e))
-   update dependency com.google.cloud:google-cloud-storage-bom to v2.37.0 ([#&#8203;6546](https://togithub.com/googleapis/java-cloud-bom/issues/6546)) ([fa3d6b7](https://togithub.com/googleapis/java-cloud-bom/commit/fa3d6b7afd4986c02b1b554d6aa9ee92273e6b5d))
-   update dependency com.google.googlejavaformat:google-java-format to v1.22.0 ([#&#8203;6518](https://togithub.com/googleapis/java-cloud-bom/issues/6518)) ([dcdaf2a](https://togithub.com/googleapis/java-cloud-bom/commit/dcdaf2a88075e1c7d8660d1fbb5180b7a23d723f))
-   update dependency commons-cli:commons-cli to v1.7.0 ([#&#8203;6547](https://togithub.com/googleapis/java-cloud-bom/issues/6547)) ([7e20379](https://togithub.com/googleapis/java-cloud-bom/commit/7e203796880b9f241effdc38aae1231935c48445))
-   update dependency commons-io:commons-io to v2.16.1 ([#&#8203;6513](https://togithub.com/googleapis/java-cloud-bom/issues/6513)) ([a9d7444](https://togithub.com/googleapis/java-cloud-bom/commit/a9d7444eb810d98cff1e1d5da62c7996143f5ad2))

### [`v26.37.0`](https://togithub.com/googleapis/java-cloud-bom/blob/HEAD/CHANGELOG.md#26370-2024-04-05)

[Compare Source](https://togithub.com/googleapis/java-cloud-bom/compare/v26.36.0...v26.37.0)

##### Dependencies

-   update dependency com.google.cloud:gapic-libraries-bom to v1.35.0 ([#&#8203;6526](https://togithub.com/googleapis/java-cloud-bom/issues/6526)) ([7afba77](https://togithub.com/googleapis/java-cloud-bom/commit/7afba770f7b16c174d4656d3aafd542f39832e9f))

### [`v26.36.0`](https://togithub.com/googleapis/java-cloud-bom/blob/HEAD/CHANGELOG.md#26360-2024-04-03)

[Compare Source](https://togithub.com/googleapis/java-cloud-bom/compare/v26.35.0...v26.36.0)

##### Dependencies

-   update dependency com.google.cloud:gapic-libraries-bom to v1.34.0 ([#&#8203;6519](https://togithub.com/googleapis/java-cloud-bom/issues/6519)) ([602ba0c](https://togithub.com/googleapis/java-cloud-bom/commit/602ba0c894123089b0c8eb297d32c638265ccf03))

### [`v26.35.0`](https://togithub.com/googleapis/java-cloud-bom/blob/HEAD/CHANGELOG.md#26350-2024-03-29)

[Compare Source](https://togithub.com/googleapis/java-cloud-bom/compare/v26.34.0...v26.35.0)

##### Dependencies

-   update actions/checkout action to v4 ([#&#8203;6462](https://togithub.com/googleapis/java-cloud-bom/issues/6462)) ([ca856be](https://togithub.com/googleapis/java-cloud-bom/commit/ca856be3581aa49b7905a8627c7d1fd924468dfa))
-   update actions/github-script action to v7 ([#&#8203;6463](https://togithub.com/googleapis/java-cloud-bom/issues/6463)) ([085cb14](https://togithub.com/googleapis/java-cloud-bom/commit/085cb149ccdec1417b9bae9008aee1b61fa62aaa))
-   update actions/setup-java action to v4 ([#&#8203;6464](https://togithub.com/googleapis/java-cloud-bom/issues/6464)) ([3ce88e6](https://togithub.com/googleapis/java-cloud-bom/commit/3ce88e6d1aa9b8210580d522948e6eb946910682))
-   update actions/setup-node action to v4 ([#&#8203;6465](https://togithub.com/googleapis/java-cloud-bom/issues/6465)) ([2b7d736](https://togithub.com/googleapis/java-cloud-bom/commit/2b7d736d1da33b0465b4d2108ec7b7573302400d))
-   update dependency com.google.cloud:first-party-dependencies to v3.28.1 ([#&#8203;6492](https://togithub.com/googleapis/java-cloud-bom/issues/6492)) ([cc17bbd](https://togithub.com/googleapis/java-cloud-bom/commit/cc17bbdbf9ebfe5e172aa8729704fd91a1c096ce))
-   update dependency com.google.cloud:gapic-libraries-bom to v1.32.0 ([#&#8203;6505](https://togithub.com/googleapis/java-cloud-bom/issues/6505)) ([0e2f3dd](https://togithub.com/googleapis/java-cloud-bom/commit/0e2f3dd760cbb8802d71b58301b7fc7abf5592bc))
-   update dependency com.google.cloud:gapic-libraries-bom to v1.33.0 ([#&#8203;6514](https://togithub.com/googleapis/java-cloud-bom/issues/6514)) ([b4a20fe](https://togithub.com/googleapis/java-cloud-bom/commit/b4a20fe2e33ec286c8e7617804edd60c06215644))
-   update dependency com.google.cloud:google-cloud-bigquery to v2.38.2 ([#&#8203;6501](https://togithub.com/googleapis/java-cloud-bom/issues/6501)) ([d45affb](https://togithub.com/googleapis/java-cloud-bom/commit/d45affbd3661baa9da7a58c179874c505c19cf86))
-   update dependency com.google.cloud:google-cloud-bigquerystorage-bom to v3.4.0 ([#&#8203;6506](https://togithub.com/googleapis/java-cloud-bom/issues/6506)) ([9963690](https://togithub.com/googleapis/java-cloud-bom/commit/9963690734e2dcfa44e7327aad4a25bdc728769b))
-   update dependency com.google.cloud:google-cloud-bigtable-bom to v2.36.0 ([#&#8203;6493](https://togithub.com/googleapis/java-cloud-bom/issues/6493)) ([ef8f3e3](https://togithub.com/googleapis/java-cloud-bom/commit/ef8f3e355e6e32a5bcb415796221f1ddba35ad1d))
-   update dependency com.google.cloud:google-cloud-bigtable-bom to v2.37.0 ([#&#8203;6511](https://togithub.com/googleapis/java-cloud-bom/issues/6511)) ([9c69011](https://togithub.com/googleapis/java-cloud-bom/commit/9c69011132100261611bc6be46d8b90c47071f57))
-   update dependency com.google.cloud:google-cloud-datastore-bom to v2.19.0 ([#&#8203;6496](https://togithub.com/googleapis/java-cloud-bom/issues/6496)) ([ee529e9](https://togithub.com/googleapis/java-cloud-bom/commit/ee529e95b89520b87fe16fd370923e2d46f8e3c4))
-   update dependency com.google.cloud:google-cloud-firestore-bom to v3.20.0 ([#&#8203;6494](https://togithub.com/googleapis/java-cloud-bom/issues/6494)) ([bab7db9](https://togithub.com/googleapis/java-cloud-bom/commit/bab7db92d26b52f92297cf13c07ee1bf603016af))
-   update dependency com.google.cloud:google-cloud-logging-bom to v3.16.2 ([#&#8203;6498](https://togithub.com/googleapis/java-cloud-bom/issues/6498)) ([7304a6c](https://togithub.com/googleapis/java-cloud-bom/commit/7304a6c4d92512173eafe036f047f21d9302943d))
-   update dependency com.google.cloud:google-cloud-logging-logback to v0.131.4-alpha ([#&#8203;6502](https://togithub.com/googleapis/java-cloud-bom/issues/6502)) ([5d8b26c](https://togithub.com/googleapis/java-cloud-bom/commit/5d8b26cc10881352c2c19d9ed3234ac474f13e76))
-   update dependency com.google.cloud:google-cloud-nio to v0.127.15 ([#&#8203;6512](https://togithub.com/googleapis/java-cloud-bom/issues/6512)) ([2ee543b](https://togithub.com/googleapis/java-cloud-bom/commit/2ee543bdb26274a5e6f6bfe0baba8777089d76db))
-   update dependency com.google.cloud:google-cloud-pubsub-bom to v1.127.3 ([#&#8203;6488](https://togithub.com/googleapis/java-cloud-bom/issues/6488)) ([207fcd7](https://togithub.com/googleapis/java-cloud-bom/commit/207fcd76887a659f788eb18bd2eaa83a863f4de1))
-   update dependency com.google.cloud:google-cloud-pubsublite-bom to v1.13.2 ([#&#8203;6503](https://togithub.com/googleapis/java-cloud-bom/issues/6503)) ([b4d8964](https://togithub.com/googleapis/java-cloud-bom/commit/b4d89644975826b4c4d83808a1fc819505e5642a))
-   update dependency com.google.cloud:google-cloud-spanner-bom to v6.62.0 ([#&#8203;6497](https://togithub.com/googleapis/java-cloud-bom/issues/6497)) ([05783f8](https://togithub.com/googleapis/java-cloud-bom/commit/05783f88aa8908b88c17d097f01a6ba325c3e34e))
-   update dependency com.google.cloud:google-cloud-spanner-jdbc to v2.16.1 ([#&#8203;6504](https://togithub.com/googleapis/java-cloud-bom/issues/6504)) ([723ebbc](https://togithub.com/googleapis/java-cloud-bom/commit/723ebbc377ed51a04e0eb6d10e0f59d1f283351c))
-   update dependency com.google.cloud:google-cloud-storage-bom to v2.36.1 ([#&#8203;6495](https://togithub.com/googleapis/java-cloud-bom/issues/6495)) ([4f29fde](https://togithub.com/googleapis/java-cloud-bom/commit/4f29fded36c7104e6d9f7288cb7685cfbee5ee33))
-   update dependency com.google.googlejavaformat:google-java-format to v1.21.0 ([#&#8203;6484](https://togithub.com/googleapis/java-cloud-bom/issues/6484)) ([549076c](https://togithub.com/googleapis/java-cloud-bom/commit/549076c83e5b127165d5ffc12d8cf55dba56e8b7))

##### Documentation

-   update repo-metadata.json with cgc link ([#&#8203;6458](https://togithub.com/googleapis/java-cloud-bom/issues/6458)) ([a3e8904](https://togithub.com/googleapis/java-cloud-bom/commit/a3e8904d5e8fa8b3cfed0eee08b3271e388a979d))

### [`v26.34.0`](https://togithub.com/googleapis/java-cloud-bom/blob/HEAD/CHANGELOG.md#26340-2024-03-07)

[Compare Source](https://togithub.com/googleapis/java-cloud-bom/compare/v26.33.0...v26.34.0)

##### Bug Fixes

-   **libraries-release-data:** add spring autogen to tracked libraries. ([#&#8203;6467](https://togithub.com/googleapis/java-cloud-bom/issues/6467)) ([ada9449](https://togithub.com/googleapis/java-cloud-bom/commit/ada94499a4699adb985abab918a48c5abc186886))

##### Dependencies

-   update dependency com.google.cloud:first-party-dependencies to v3.27.0 ([#&#8203;6476](https://togithub.com/googleapis/java-cloud-bom/issues/6476)) ([4075b22](https://togithub.com/googleapis/java-cloud-bom/commit/4075b22b1fbc6512b1e5ac9485de131366bc6cf8))
-   update dependency com.google.cloud:gapic-libraries-bom to v1.31.0 ([#&#8203;6478](https://togithub.com/googleapis/java-cloud-bom/issues/6478)) ([ebc1e26](https://togithub.com/googleapis/java-cloud-bom/commit/ebc1e26495b85653f68dfd17206d82c4348afbd1))
-   update dependency com.google.cloud:google-cloud-bigquery to v2.38.1 ([#&#8203;6466](https://togithub.com/googleapis/java-cloud-bom/issues/6466)) ([31e6b43](https://togithub.com/googleapis/java-cloud-bom/commit/31e6b436c876b13080c8debb744b8c09f02672d7))
-   update dependency com.google.cloud:google-cloud-bigquerystorage-bom to v3.3.1 ([#&#8203;6479](https://togithub.com/googleapis/java-cloud-bom/issues/6479)) ([0ba1b2a](https://togithub.com/googleapis/java-cloud-bom/commit/0ba1b2aa6584acd021212936873f51156f24eb29))
-   update dependency com.google.cloud:google-cloud-bigtable-bom to v2.35.1 ([#&#8203;6480](https://togithub.com/googleapis/java-cloud-bom/issues/6480)) ([6f63cea](https://togithub.com/googleapis/java-cloud-bom/commit/6f63cea78d392af2b4343baf75045c24c5dfb0da))
-   update dependency com.google.cloud:google-cloud-datastore-bom to v2.18.5 ([#&#8203;6473](https://togithub.com/googleapis/java-cloud-bom/issues/6473)) ([dddbfe4](https://togithub.com/googleapis/java-cloud-bom/commit/dddbfe44a35c00feac075486b4c3a60d29750050))
-   update dependency com.google.cloud:google-cloud-firestore-bom to v3.18.0 ([#&#8203;6469](https://togithub.com/googleapis/java-cloud-bom/issues/6469)) ([22387bb](https://togithub.com/googleapis/java-cloud-bom/commit/22387bbf8efa6bbd06ab04c0c2acb30ac9ba9163))
-   update dependency com.google.cloud:google-cloud-logging-bom to v3.16.1 ([#&#8203;6477](https://togithub.com/googleapis/java-cloud-bom/issues/6477)) ([f51cb30](https://togithub.com/googleapis/java-cloud-bom/commit/f51cb30a358d8c05e23b486c0f3e62a924644a26))
-   update dependency com.google.cloud:google-cloud-logging-logback to v0.131.3-alpha ([#&#8203;6482](https://togithub.com/googleapis/java-cloud-bom/issues/6482)) ([973df8a](https://togithub.com/googleapis/java-cloud-bom/commit/973df8a71720f17772f7c8cd58dc8b58f587d8f2))
-   update dependency com.google.cloud:google-cloud-nio to v0.127.14 ([#&#8203;6474](https://togithub.com/googleapis/java-cloud-bom/issues/6474)) ([69c1016](https://togithub.com/googleapis/java-cloud-bom/commit/69c10164bc32aeb65ceb15706f1664dc3a755db2))
-   update dependency com.google.cloud:google-cloud-pubsub-bom to v1.127.1 ([#&#8203;6470](https://togithub.com/googleapis/java-cloud-bom/issues/6470)) ([f133ec0](https://togithub.com/googleapis/java-cloud-bom/commit/f133ec043136a04b63bd07f27b5c838742880daa))
-   update dependency com.google.cloud:google-cloud-pubsublite-bom to v1.13.1 ([#&#8203;6475](https://togithub.com/googleapis/java-cloud-bom/issues/6475)) ([44e5c75](https://togithub.com/googleapis/java-cloud-bom/commit/44e5c75503692a776652e5449260948c004411da))
-   update dependency com.google.cloud:google-cloud-spanner-bom to v6.61.0 ([#&#8203;6468](https://togithub.com/googleapis/java-cloud-bom/issues/6468)) ([55ad879](https://togithub.com/googleapis/java-cloud-bom/commit/55ad879076a9e79fab47874c3969fe73824dddfa))
-   update dependency com.google.cloud:google-cloud-spanner-jdbc to v2.16.0 ([#&#8203;6483](https://togithub.com/googleapis/java-cloud-bom/issues/6483)) ([813ad9e](https://togithub.com/googleapis/java-cloud-bom/commit/813ad9e1368a7aa2ee7ec67340343facbfe07357))
-   update dependency com.google.cloud:google-cloud-storage-bom to v2.35.0 ([#&#8203;6481](https://togithub.com/googleapis/java-cloud-bom/issues/6481)) ([263a8f2](https://togithub.com/googleapis/java-cloud-bom/commit/263a8f2826cdf15fbf606ee7d6821a46a6bb6a79))

### [`v26.33.0`](https://togithub.com/googleapis/java-cloud-bom/blob/HEAD/CHANGELOG.md#26330-2024-02-21)

[Compare Source](https://togithub.com/googleapis/java-cloud-bom/compare/v26.32.0...v26.33.0)

##### Bug Fixes

-   **libraries-release-data:** add service name lookup from artifact id for gapic libraries, add apiary libraries and spring cloud gcp to release data table. ([#&#8203;6437](https://togithub.com/googleapis/java-cloud-bom/issues/6437)) ([9491edf](https://togithub.com/googleapis/java-cloud-bom/commit/9491edfea6e348bcd66396ba2640f37cb0cd667c))

##### Dependencies

-   update actions/checkout action to v4 ([#&#8203;6431](https://togithub.com/googleapis/java-cloud-bom/issues/6431)) ([20590f6](https://togithub.com/googleapis/java-cloud-bom/commit/20590f69dab4ea9852099add3c8812c11f547eac))
-   update actions/github-script action to v7 ([#&#8203;6432](https://togithub.com/googleapis/java-cloud-bom/issues/6432)) ([d346c79](https://togithub.com/googleapis/java-cloud-bom/commit/d346c7951f11fac70bcb5b97b4799e543b7e28bd))
-   update actions/setup-java action to v4 ([#&#8203;6405](https://togithub.com/googleapis/java-cloud-bom/issues/6405)) ([e1a6840](https://togithub.com/googleapis/java-cloud-bom/commit/e1a684024b12f227ed13265ee36fafbddbda70e9))
-   update actions/setup-java action to v4 ([#&#8203;6455](https://togithub.com/googleapis/java-cloud-bom/issues/6455)) ([b9581e0](https://togithub.com/googleapis/java-cloud-bom/commit/b9581e0309a7fbefae89d487147a3dc7f885f217))
-   update actions/setup-node action to v4 ([#&#8203;6406](https://togithub.com/googleapis/java-cloud-bom/issues/6406)) ([8b42fc4](https://togithub.com/googleapis/java-cloud-bom/commit/8b42fc4794678e904ddccaf3673b0d5408661219))
-   update actions/setup-node action to v4 ([#&#8203;6456](https://togithub.com/googleapis/java-cloud-bom/issues/6456)) ([a453127](https://togithub.com/googleapis/java-cloud-bom/commit/a45312788052a6737eebc34112215f4e05aaca71))
-   update dependency com.google.cloud:first-party-dependencies to v3.25.0 ([#&#8203;6434](https://togithub.com/googleapis/java-cloud-bom/issues/6434)) ([2e5f090](https://togithub.com/googleapis/java-cloud-bom/commit/2e5f09062e80a01e1e3d2188c7472fa6cf3a2f29))
-   update dependency com.google.cloud:gapic-libraries-bom to v1.30.0 ([#&#8203;6447](https://togithub.com/googleapis/java-cloud-bom/issues/6447)) ([8412bea](https://togithub.com/googleapis/java-cloud-bom/commit/8412bea5e7d96bd7dc3af8163a314ff8dd290045))
-   update dependency com.google.cloud:google-cloud-bigquery to v2.37.2 ([#&#8203;6439](https://togithub.com/googleapis/java-cloud-bom/issues/6439)) ([322a9a3](https://togithub.com/googleapis/java-cloud-bom/commit/322a9a33ea7802c0776417351b1177a1731f8142))
-   update dependency com.google.cloud:google-cloud-bigquerystorage-bom to v3.2.0 ([#&#8203;6448](https://togithub.com/googleapis/java-cloud-bom/issues/6448)) ([31cdb19](https://togithub.com/googleapis/java-cloud-bom/commit/31cdb19ca40a44815d311dfb09eace9f4cbeee6b))
-   update dependency com.google.cloud:google-cloud-bigtable-bom to v2.34.0 ([#&#8203;6449](https://togithub.com/googleapis/java-cloud-bom/issues/6449)) ([d40b4f9](https://togithub.com/googleapis/java-cloud-bom/commit/d40b4f9b28ef29de348a94d90f73f2abe72dc0e1))
-   update dependency com.google.cloud:google-cloud-datastore-bom to v2.18.4 ([#&#8203;6436](https://togithub.com/googleapis/java-cloud-bom/issues/6436)) ([1150cd8](https://togithub.com/googleapis/java-cloud-bom/commit/1150cd804311567f3881ec48a09850f2d93d849f))
-   update dependency com.google.cloud:google-cloud-firestore-bom to v3.17.0 ([#&#8203;6450](https://togithub.com/googleapis/java-cloud-bom/issues/6450)) ([90fda7d](https://togithub.com/googleapis/java-cloud-bom/commit/90fda7d084db343cf612465768121ce8d9d02627))
-   update dependency com.google.cloud:google-cloud-logging-bom to v3.16.0 ([#&#8203;6451](https://togithub.com/googleapis/java-cloud-bom/issues/6451)) ([6fe6069](https://togithub.com/googleapis/java-cloud-bom/commit/6fe606934862d299afca2ae14e4e3a3b8525221a))
-   update dependency com.google.cloud:google-cloud-logging-logback to v0.131.2-alpha ([#&#8203;6443](https://togithub.com/googleapis/java-cloud-bom/issues/6443)) ([9f22028](https://togithub.com/googleapis/java-cloud-bom/commit/9f2202899ba161cd36ded6b999d55dc59d62fc7c))
-   update dependency com.google.cloud:google-cloud-nio to v0.127.13 ([#&#8203;6440](https://togithub.com/googleapis/java-cloud-bom/issues/6440)) ([f6e2a93](https://togithub.com/googleapis/java-cloud-bom/commit/f6e2a93a291e9197d5155dbe2e8c73271273c885))
-   update dependency com.google.cloud:google-cloud-pubsub-bom to v1.126.6 ([#&#8203;6435](https://togithub.com/googleapis/java-cloud-bom/issues/6435)) ([b6fa98c](https://togithub.com/googleapis/java-cloud-bom/commit/b6fa98cd9ca6763fe42f7734b25407f1279a1695))
-   update dependency com.google.cloud:google-cloud-pubsublite-bom to v1.13.0 ([#&#8203;6452](https://togithub.com/googleapis/java-cloud-bom/issues/6452)) ([a5a4258](https://togithub.com/googleapis/java-cloud-bom/commit/a5a4258cb3d7df70a4215a64f24245ebcc6c7187))
-   update dependency com.google.cloud:google-cloud-spanner-bom to v6.60.0 ([#&#8203;6453](https://togithub.com/googleapis/java-cloud-bom/issues/6453)) ([6c8eaf2](https://togithub.com/googleapis/java-cloud-bom/commit/6c8eaf2ec3e68268310ed92a9b76908df27ae0be))
-   update dependency com.google.cloud:google-cloud-spanner-jdbc to v2.15.4 ([#&#8203;6444](https://togithub.com/googleapis/java-cloud-bom/issues/6444)) ([4c6e2bc](https://togithub.com/googleapis/java-cloud-bom/commit/4c6e2bcaddd6c7149b23ef64ab76e19b2350e768))
-   update dependency com.google.cloud:google-cloud-spanner-jdbc to v2.15.5 ([#&#8203;6459](https://togithub.com/googleapis/java-cloud-bom/issues/6459)) ([9ab47cf](https://togithub.com/googleapis/java-cloud-bom/commit/9ab47cfbcd7395d28ebabb446a6b8981066ab2ae))
-   update dependency com.google.cloud:google-cloud-storage-bom to v2.34.0 ([#&#8203;6438](https://togithub.com/googleapis/java-cloud-bom/issues/6438)) ([ccef02e](https://togithub.com/googleapis/java-cloud-bom/commit/ccef02ef9b1efa4f9ac7c4cc9f1cf4026f98e7be))
-   update dependency com.google.googlejavaformat:google-java-format to v1.20.0 ([#&#8203;6454](https://togithub.com/googleapis/java-cloud-bom/issues/6454)) ([33b7b5a](https://togithub.com/googleapis/java-cloud-bom/commit/33b7b5ab5ea1b000f6843b9ff258f73fdbddf412))

### [`v26.32.0`](https://togithub.com/googleapis/java-cloud-bom/blob/HEAD/CHANGELOG.md#26320-2024-02-12)

[Compare Source](https://togithub.com/googleapis/java-cloud-bom/compare/v26.31.0...v26.32.0)

##### Dependencies

-   update actions/checkout action to v4 ([#&#8203;6401](https://togithub.com/googleapis/java-cloud-bom/issues/6401)) ([c4d5b2b](https://togithub.com/googleapis/java-cloud-bom/commit/c4d5b2b899d104444c2cb82c5c73f06010cf0ca0))
-   update actions/github-script action to v7 ([#&#8203;6402](https://togithub.com/googleapis/java-cloud-bom/issues/6402)) ([7441cf3](https://togithub.com/googleapis/java-cloud-bom/commit/7441cf3a5db3716378ba8c8917a3cde3c2af7157))
-   update dependency com.google.cloud:first-party-dependencies to v3.24.0 ([#&#8203;6408](https://togithub.com/googleapis/java-cloud-bom/issues/6408)) ([42a35bd](https://togithub.com/googleapis/java-cloud-bom/commit/42a35bdbd73a365626abcc852ea245bf54949f2f))
-   update dependency com.google.cloud:gapic-libraries-bom to v1.29.0 ([#&#8203;6425](https://togithub.com/googleapis/java-cloud-bom/issues/6425)) ([a0d6401](https://togithub.com/googleapis/java-cloud-bom/commit/a0d64014d5b646841aed6f50ae36c760ebe1797b))
-   update dependency com.google.cloud:google-cloud-bigquery to v2.37.1 ([#&#8203;6417](https://togithub.com/googleapis/java-cloud-bom/issues/6417)) ([5c3f811](https://togithub.com/googleapis/java-cloud-bom/commit/5c3f811dd6067a6ce40f392b00334eee941eb337))
-   update dependency com.google.cloud:google-cloud-bigquerystorage-bom to v3.1.0 ([#&#8203;6414](https://togithub.com/googleapis/java-cloud-bom/issues/6414)) ([1e1c0d4](https://togithub.com/googleapis/java-cloud-bom/commit/1e1c0d431487b650b6ec4aa5568b072be4217821))
-   update dependency com.google.cloud:google-cloud-bigtable-bom to v2.33.0 ([#&#8203;6428](https://togithub.com/googleapis/java-cloud-bom/issues/6428)) ([f6e377b](https://togithub.com/googleapis/java-cloud-bom/commit/f6e377b65cd1959954161af06600034b5249a6c8))
-   update dependency com.google.cloud:google-cloud-datastore-bom to v2.18.3 ([#&#8203;6411](https://togithub.com/googleapis/java-cloud-bom/issues/6411)) ([6e7f9f9](https://togithub.com/googleapis/java-cloud-bom/commit/6e7f9f918697f00484d7311c7374acc50664510d))
-   update dependency com.google.cloud:google-cloud-firestore-bom to v3.16.3 ([#&#8203;6412](https://togithub.com/googleapis/java-cloud-bom/issues/6412)) ([b4a5db8](https://togithub.com/googleapis/java-cloud-bom/commit/b4a5db8826af199e135a14bce7922aaae5a5912a))
-   update dependency com.google.cloud:google-cloud-logging-bom to v3.15.17 ([#&#8203;6419](https://togithub.com/googleapis/java-cloud-bom/issues/6419)) ([589fea3](https://togithub.com/googleapis/java-cloud-bom/commit/589fea33cbb8621d4a82feb3699558ec66d50849))
-   update dependency com.google.cloud:google-cloud-logging-logback to v0.131.1-alpha ([#&#8203;6420](https://togithub.com/googleapis/java-cloud-bom/issues/6420)) ([f7c7fea](https://togithub.com/googleapis/java-cloud-bom/commit/f7c7fea78c26bdffd780e3ac5957de28b4edd7e8))
-   update dependency com.google.cloud:google-cloud-nio to v0.127.12 ([#&#8203;6422](https://togithub.com/googleapis/java-cloud-bom/issues/6422)) ([1659b1a](https://togithub.com/googleapis/java-cloud-bom/commit/1659b1a062d1d74374462da6a0d2a1ca7c0d0913))
-   update dependency com.google.cloud:google-cloud-pubsub-bom to v1.126.3 ([#&#8203;6421](https://togithub.com/googleapis/java-cloud-bom/issues/6421)) ([25fb563](https://togithub.com/googleapis/java-cloud-bom/commit/25fb5635e6d3ec629d8bf19cda23dcc0fd8f7662))
-   update dependency com.google.cloud:google-cloud-pubsub-bom to v1.126.4 ([#&#8203;6427](https://togithub.com/googleapis/java-cloud-bom/issues/6427)) ([b1c0c15](https://togithub.com/googleapis/java-cloud-bom/commit/b1c0c15d39491cb742ec2b25a3ca67d936a863fb))
-   update dependency com.google.cloud:google-cloud-pubsub-bom to v1.126.5 ([#&#8203;6429](https://togithub.com/googleapis/java-cloud-bom/issues/6429)) ([cd6553c](https://togithub.com/googleapis/java-cloud-bom/commit/cd6553cf80e85a7ffed9662b94cbdcdd50afda6e))
-   update dependency com.google.cloud:google-cloud-pubsublite-bom to v1.12.22 ([#&#8203;6426](https://togithub.com/googleapis/java-cloud-bom/issues/6426)) ([5b4bb70](https://togithub.com/googleapis/java-cloud-bom/commit/5b4bb70272659ad09180719a3e133e50de52eef0))
-   update dependency com.google.cloud:google-cloud-spanner-bom to v6.58.0 ([#&#8203;6423](https://togithub.com/googleapis/java-cloud-bom/issues/6423)) ([2e86546](https://togithub.com/googleapis/java-cloud-bom/commit/2e8654649d893f2462df5e2238fe4c390bca5183))
-   update dependency com.google.cloud:google-cloud-spanner-jdbc to v2.15.3 ([#&#8203;6424](https://togithub.com/googleapis/java-cloud-bom/issues/6424)) ([5da843e](https://togithub.com/googleapis/java-cloud-bom/commit/5da843e33b394fbba4c8a2afacf2ce1d8553ddae))
-   update dependency com.google.cloud:google-cloud-storage-bom to v2.33.0 ([#&#8203;6418](https://togithub.com/googleapis/java-cloud-bom/issues/6418)) ([5e15c52](https://togithub.com/googleapis/java-cloud-bom/commit/5e15c525dcaf8af5e0814bbfb6feefad420014dd))

### [`v26.31.0`](https://togithub.com/googleapis/java-cloud-bom/blob/HEAD/CHANGELOG.md#26310-2024-01-29)

[Compare Source](https://togithub.com/googleapis/java-cloud-bom/compare/v26.30.0...v26.31.0)

##### Dependencies

-   update actions/checkout action to v4 ([#&#8203;6386](https://togithub.com/googleapis/java-cloud-bom/issues/6386)) ([9bc892c](https://togithub.com/googleapis/java-cloud-bom/commit/9bc892c56015679d722243595e2954cd46dbbdc3))
-   update actions/github-script action to v7 ([#&#8203;6387](https://togithub.com/googleapis/java-cloud-bom/issues/6387)) ([e23605f](https://togithub.com/googleapis/java-cloud-bom/commit/e23605f6f5b5c952de86a94e8d61eeb3ebf9b936))
-   update actions/setup-java action to v4 ([#&#8203;6388](https://togithub.com/googleapis/java-cloud-bom/issues/6388)) ([8d69512](https://togithub.com/googleapis/java-cloud-bom/commit/8d695124ebe2ec7e28f24036ec2a1bab9a2795d7))
-   update actions/setup-node action to v4 ([#&#8203;6373](https://togithub.com/googleapis/java-cloud-bom/issues/6373)) ([668d7f2](https://togithub.com/googleapis/java-cloud-bom/commit/668d7f20e2ea00caf19979a38c5bdd9690656f43))
-   update dependency com.google.c

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).

🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update again.

---

 - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box

---

This PR was generated by [Mend Renovate](https://www.mend.io/free-developer-tools/renovate/). View the [repository job log](https://developer.mend.io/github/googleapis/google-http-java-client).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOC4yNi4xIiwidXBkYXRlZEluVmVyIjoiMzguMjYuMSIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOltdfQ==-->


dpebot: /gcbrun

Patch:
diff --git a/.github/workflows/auto-release.yaml b/.github/workflows/auto-release.yaml
index 7a106d00..18d92e5a 100644
--- a/.github/workflows/auto-release.yaml
+++ b/.github/workflows/auto-release.yaml
@@ -21,7 +21,7 @@ jobs:
     runs-on: ubuntu-latest
     if: contains(github.head_ref, 'release-please')
     steps:
-    - uses: actions/github-script@v6
+    - uses: actions/github-script@v7
       with:
         github-token: ${{secrets.YOSHI_APPROVER_TOKEN}}
         debug: true
diff --git a/.github/workflows/ci-java7.yaml b/.github/workflows/ci-java7.yaml
index 2c8257d4..4dec872e 100644
--- a/.github/workflows/ci-java7.yaml
+++ b/.github/workflows/ci-java7.yaml
@@ -24,7 +24,7 @@ jobs:
     name: "units (7)"
     runs-on: ubuntu-latest
     steps:
-    - uses: actions/checkout@v3
+    - uses: actions/checkout@v4
     - uses: actions/setup-java@v1
       # setup-java v2 or higher does not have version 1.7
       with:
@@ -55,7 +55,7 @@ jobs:
         # dailymotion-simple-cmdline-sample and google-http-client-assembly depend on
         # google-http-client-jackson2 
         mvn --batch-mode --show-version -ntp test \
-            --projects '!google-http-client-jackson2,!google-http-client-appengine,!samples/dailymotion-simple-cmdline-sample,!google-http-client-assembly' \
+            --projects '!google-http-client-jackson2,!google-http-client-appengine,!samples/dailymotion-simple-cmdline-sample,!google-http-client-assembly,!google-http-client-apache-v5' \
             -Dclirr.skip=true -Denforcer.skip=true -Dmaven.javadoc.skip=true \
             -Dgcloud.download.skip=true -T 1C \
             -Dproject.surefire.version=2.22.2 \
diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml
index 32feef7d..0e87e017 100644
--- a/.github/workflows/ci.yaml
+++ b/.github/workflows/ci.yaml
@@ -27,7 +27,7 @@ jobs:
       matrix:
         java: [8, 11, 17]
     steps:
-    - uses: actions/checkout@v3
+    - uses: actions/checkout@v4
     - uses: actions/setup-java@v3
       with:
         distribution: temurin
@@ -41,7 +41,7 @@ jobs:
     steps:
     - name: Support longpaths
       run: git config --system core.longpaths true
-    - uses: actions/checkout@v3
+    - uses: actions/checkout@v4
     - uses: actions/setup-java@v3
       with:
         distribution: temurin
@@ -56,7 +56,7 @@ jobs:
       matrix:
         java: [8, 11, 17]
     steps:
-    - uses: actions/checkout@v3
+    - uses: actions/checkout@v4
     - uses: actions/setup-java@v3
       with:
         distribution: temurin
@@ -66,7 +66,7 @@ jobs:
   lint:
     runs-on: ubuntu-latest
     steps:
-    - uses: actions/checkout@v3
+    - uses: actions/checkout@v4
     - uses: actions/setup-java@v3
       with:
         distribution: temurin
@@ -78,7 +78,7 @@ jobs:
   clirr:
     runs-on: ubuntu-latest
     steps:
-    - uses: actions/checkout@v3
+    - uses: actions/checkout@v4
     - uses: actions/setup-java@v3
       with:
         distribution: temurin
@@ -94,7 +94,7 @@ jobs:
     name: "units (21)"
     runs-on: ubuntu-latest
     steps:
-    - uses: actions/checkout@v3
+    - uses: actions/checkout@v4
     - uses: actions/setup-java@v3
       with:
         java-version: 21
diff --git a/.github/workflows/downstream.yaml b/.github/workflows/downstream.yaml
index c4be85ea..8681fe5f 100644
--- a/.github/workflows/downstream.yaml
+++ b/.github/workflows/downstream.yaml
@@ -133,7 +133,7 @@ jobs:
         - workflow-executions
         - workflows
     steps:
-    - uses: actions/checkout@v3
+    - uses: actions/checkout@v4
     - uses: actions/setup-java@v3
       with:
         distribution: zulu
diff --git a/.github/workflows/scorecard.yml b/.github/workflows/scorecard.yml
index 7dd91434..f153dddd 100644
--- a/.github/workflows/scorecard.yml
+++ b/.github/workflows/scorecard.yml
@@ -32,12 +32,12 @@ jobs:
 
     steps:
       - name: "Checkout code"
-        uses: actions/checkout@93ea575cb5d8a053eaa0ac8fa3b40d7e05a33cc8 # v3.1.0
+        uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7
         with:
           persist-credentials: false
 
       - name: "Run analysis"
-        uses: ossf/scorecard-action@e38b1902ae4f44df626f11ba0734b14fb91f8f86 # v2.1.2
+        uses: ossf/scorecard-action@62b2cac7ed8198b15735ed49ab1e5cf35480ba46 # v2.4.0
         with:
           results_file: results.sarif
           results_format: sarif
@@ -59,7 +59,7 @@ jobs:
       # Upload the results as artifacts (optional). Commenting out will disable uploads of run results in SARIF
       # format to the repository Actions tab.
       - name: "Upload artifact"
-        uses: actions/upload-artifact@a8a3f3ad30e3422c9c7b888a15615d19a852ae32 # v3.1.3
+        uses: actions/upload-artifact@834a144ee995460fba8ed112a2fc961b36a5ec5a # v4.3.6
         with:
           name: SARIF file
           path: results.sarif
@@ -67,6 +67,6 @@ jobs:
 
       # Upload the results to GitHub's code scanning dashboard.
       - name: "Upload to code-scanning"
-        uses: github/codeql-action/upload-sarif@17573ee1cc1b9d061760f3a006fc4aac4f944fd5 # v2.2.4
+        uses: github/codeql-action/upload-sarif@883d8588e56d1753a8a58c1c86e88976f0c23449 # v3.26.3
         with:
           sarif_file: results.sarif
diff --git a/.kokoro/presubmit/graalvm-native-a.cfg b/.kokoro/presubmit/graalvm-native-a.cfg
index ad109968..54dca4f2 100644
--- a/.kokoro/presubmit/graalvm-native-a.cfg
+++ b/.kokoro/presubmit/graalvm-native-a.cfg
@@ -3,7 +3,7 @@
 # Configure the docker image for kokoro-trampoline.
 env_vars: {
   key: "TRAMPOLINE_IMAGE"
-  value: "gcr.io/cloud-devrel-public-resources/graalvm_a:1.9.0"
+  value: "gcr.io/cloud-devrel-public-resources/graalvm_a:1.11.0"
 }
 
 env_vars: {
diff --git a/.kokoro/presubmit/graalvm-native-b.cfg b/.kokoro/presubmit/graalvm-native-b.cfg
index e5229b14..8b05c77f 100644
--- a/.kokoro/presubmit/graalvm-native-b.cfg
+++ b/.kokoro/presubmit/graalvm-native-b.cfg
@@ -3,7 +3,7 @@
 # Configure the docker image for kokoro-trampoline.
 env_vars: {
   key: "TRAMPOLINE_IMAGE"
-  value: "gcr.io/cloud-devrel-public-resources/graalvm_b:1.9.0"
+  value: "gcr.io/cloud-devrel-public-resources/graalvm_b:1.11.0"
 }
 
 env_vars: {
diff --git a/docs/http-transport.md b/docs/http-transport.md
index 0167db4a..b6d94cce 100644
--- a/docs/http-transport.md
+++ b/docs/http-transport.md
@@ -19,8 +19,12 @@ There are three built-in low-level HTTP transports:
 
 1. [`NetHttpTransport`][net-http-transport]: based on [`HttpURLConnection`][http-url-connection]
 that is found in all Java SDKs, and thus usually the simplest choice.
+1. [`Apache5HttpTransport`][apache-http-transport]: based on the popular
+   [Apache 5.x HttpClient][apache5-http-client] that allows for more customization.
 1. [`ApacheHttpTransport`][apache-http-transport]: based on the popular
-[Apache HttpClient][apache-http-client] that allows for more customization.
+[Apache 4.x HttpClient][apache-http-client] that allows for more customization. Note that this transport implementation
+relies on [Apache 4.x HttpCore][apache-http-core] which has reached end of life. It is recommended to use
+[`Apache5HttpTransport`][apache-http-transport] instead.
 1. [`UrlFetchTransport`][url-fetch-transport]: based on the [URL Fetch Java API][url-fetch] in the
 Google App Engine SDK.
 
@@ -124,7 +128,10 @@ HttpRequestFactory requestFactory = transport.createRequestFactory(new MyInitial
 [net-http-transport]: https://googleapis.dev/java/google-http-client/latest/index.html?com/google/api/client/http/javanet/NetHttpTransport.html
 [http-url-connection]: http://docs.oracle.com/javase/7/docs/api/java/net/HttpURLConnection.html
 [apache-http-transport]: https://googleapis.dev/java/google-http-client/latest/index.html?com/google/api/client/http/apache/v2/ApacheHttpTransport.html
-[apache-http-client]: http://hc.apache.org/httpcomponents-client-ga/index.html
+[apache5-http-transport]: https://github.com/googleapis/google-http-java-client/blob/de8743587d1415e8a6046096ac1fc0a5e81490c3/google-http-client-apache-v5/src/main/java/com/google/api/client/http/apache/v5/Apache5HttpTransport.java
+[apache-http-client]: https://hc.apache.org/httpcomponents-client-4.5.x/index.html
+[apache-http-core]: https://hc.apache.org/httpcomponents-core-4.4.x/index.html
+[apache5-http-client]: https://hc.apache.org/httpcomponents-client-5.3.x/index.html
 [url-fetch-transport]: https://googleapis.dev/java/google-http-client/latest/index.html?com/google/api/client/extensions/appengine/http/UrlFetchTransport.html
 [url-fetch]: https://cloud.google.com/appengine/docs/java/javadoc/com/google/appengine/api/urlfetch/package-summary
 [logger]: https://docs.oracle.com/javase/7/docs/api/java/util/logging/Logger.html
diff --git a/google-http-client-apache-v5/pom.xml b/google-http-client-apache-v5/pom.xml
new file mode 100644
index 00000000..a6789797
--- /dev/null
+++ b/google-http-client-apache-v5/pom.xml
@@ -0,0 +1,116 @@
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+  <modelVersion>4.0.0</modelVersion>
+  <parent>
+    <groupId>com.google.http-client</groupId>
+    <artifactId>google-http-client-parent</artifactId>
+    <version>1.44.3-SNAPSHOT</version><!-- {x-version-update:google-http-client-parent:current} -->
+    <relativePath>../pom.xml</relativePath>
+  </parent>
+  <artifactId>google-http-client-apache-v5</artifactId>
+  <version>1.44.3-SNAPSHOT</version><!-- {x-version-update:google-http-client-apache-v5:current} -->
+  <name>Apache HTTP transport v5 for the Google HTTP Client Library for Java.</name>
+
+  <build>
+    <plugins>
+      <plugin>
+        <artifactId>maven-javadoc-plugin</artifactId>
+        <configuration>
+          <links>
+            <link>https://download.oracle.com/javase/7/docs/api/</link>
+          </links>
+          <doctitle>${project.name} ${project.version}</doctitle>
+          <windowtitle>${project.artifactId} ${project.version}</windowtitle>
+        </configuration>
+      </plugin>
+      <plugin>
+        <artifactId>maven-source-plugin</artifactId>
+      </plugin>
+      <plugin>
+        <groupId>org.codehaus.mojo</groupId>
+        <artifactId>build-helper-maven-plugin</artifactId>
+        <version>3.3.0</version>
+        <executions>
+          <execution>
+            <id>add-test-source</id>
+            <phase>generate-test-sources</phase>
+            <goals>
+              <goal>add-test-source</goal>
+            </goals>
+            <configuration>
+              <sources>
+                <source>target/generated-test-sources</source>
+              </sources>
+            </configuration>
+          </execution>
+        </executions>
+      </plugin>
+      <plugin>
+        <artifactId>maven-jar-plugin</artifactId>
+        <configuration>
+          <archive>
+            <manifestFile>${project.build.outputDirectory}/META-INF/MANIFEST.MF</manifestFile>
+            <manifestEntries>
+              <Automatic-Module-Name>com.google.api.client.http.apache.v5</Automatic-Module-Name>
+            </manifestEntries>
+          </archive>
+        </configuration>
+      </plugin>
+      <plugin>
+        <groupId>org.apache.felix</groupId>
+        <artifactId>maven-bundle-plugin</artifactId>
+        <version>5.1.9</version>
+        <executions>
+          <execution>
+            <id>bundle-manifest</id>
+            <phase>process-classes</phase>
+            <goals>
+              <goal>manifest</goal>
+            </goals>
+          </execution>
+        </executions>
+      </plugin>
+      <plugin>
+        <artifactId>maven-compiler-plugin</artifactId>
+        <version>3.13.0</version>
+        <configuration>
+          <source>1.8</source>
+          <target>1.8</target>
+        </configuration>
+      </plugin>
+    </plugins>
+  </build>
+  <dependencies>
+    <dependency>
+      <groupId>com.google.http-client</groupId>
+      <artifactId>google-http-client</artifactId>
+      <exclusions>
+        <exclusion>
+          <groupId>org.apache.httpcomponents</groupId>
+          <artifactId>httpcore</artifactId>
+        </exclusion>
+        <exclusion>
+          <groupId>org.apache.httpcomponents</groupId>
+          <artifactId>httpclient</artifactId>
+        </exclusion>
+      </exclusions>
+    </dependency>
+    <dependency>
+      <groupId>com.google.guava</groupId>
+      <artifactId>guava</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.apache.httpcomponents.client5</groupId>
+      <artifactId>httpclient5</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.apache.httpcomponents.core5</groupId>
+      <artifactId>httpcore5</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>junit</groupId>
+      <artifactId>junit</artifactId>
+      <scope>test</scope>
+    </dependency>
+  </dependencies>
+</project>
diff --git a/google-http-client-apache-v5/src/main/java/com/google/api/client/http/apache/v5/Apache5ContentEntity.java b/google-http-client-apache-v5/src/main/java/com/google/api/client/http/apache/v5/Apache5ContentEntity.java
new file mode 100644
index 00000000..4a5ab84e
--- /dev/null
+++ b/google-http-client-apache-v5/src/main/java/com/google/api/client/http/apache/v5/Apache5ContentEntity.java
@@ -0,0 +1,79 @@
+/*
+ * Copyright 2024 Google LLC
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
+ */
+
+package com.google.api.client.http.apache.v5;
+
+import com.google.api.client.util.Preconditions;
+import com.google.api.client.util.StreamingContent;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.OutputStream;
+import org.apache.hc.core5.http.io.entity.AbstractHttpEntity;
+
+/**
+ * Translation class to make google-http-client entity conform with Apache 5.x {@link
+ * AbstractHttpEntity}
+ */
+final class Apache5ContentEntity extends AbstractHttpEntity {
+
+  /** Content length or less than zero if not known. */
+  private final long contentLength;
+
+  /** Streaming content. */
+  private final StreamingContent streamingContent;
+
+  /**
+   * @param contentLength content length or less than zero if not known
+   * @param streamingContent streaming content
+   */
+  Apache5ContentEntity(
+      long contentLength,
+      StreamingContent streamingContent,
+      String contentType,
+      String contentEncoding) {
+    super(contentType, contentEncoding, contentLength == -1);
+    this.contentLength = contentLength;
+    this.streamingContent = Preconditions.checkNotNull(streamingContent);
+  }
+
+  @Override
+  public InputStream getContent() {
+    throw new UnsupportedOperationException();
+  }
+
+  @Override
+  public long getContentLength() {
+    return contentLength;
+  }
+
+  @Override
+  public boolean isRepeatable() {
+    return false;
+  }
+
+  @Override
+  public boolean isStreaming() {
+    return true;
+  }
+
+  @Override
+  public void writeTo(OutputStream out) throws IOException {
+    if (contentLength != 0) {
+      streamingContent.writeTo(out);
+    }
+  }
+
+  @Override
+  public void close() throws IOException {}
+}
diff --git a/google-http-client-apache-v5/src/main/java/com/google/api/client/http/apache/v5/Apache5HttpRequest.java b/google-http-client-apache-v5/src/main/java/com/google/api/client/http/apache/v5/Apache5HttpRequest.java
new file mode 100644
index 00000000..99d6eca8
--- /dev/null
+++ b/google-http-client-apache-v5/src/main/java/com/google/api/client/http/apache/v5/Apache5HttpRequest.java
@@ -0,0 +1,78 @@
+/*
+ * Copyright 2024 Google LLC
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
+ */
+
+package com.google.api.client.http.apache.v5;
+
+import com.google.api.client.http.LowLevelHttpRequest;
+import com.google.api.client.http.LowLevelHttpResponse;
+import java.io.IOException;
+import java.util.concurrent.TimeUnit;
+import org.apache.hc.client5.http.ClientProtocolException;
+import org.apache.hc.client5.http.classic.HttpClient;
+import org.apache.hc.client5.http.classic.methods.HttpUriRequestBase;
+import org.apache.hc.client5.http.config.RequestConfig;
+import org.apache.hc.client5.http.routing.RoutingSupport;
+import org.apache.hc.core5.http.ClassicHttpResponse;
+import org.apache.hc.core5.http.HttpException;
+import org.apache.hc.core5.http.HttpHost;
+import org.apache.hc.core5.util.Timeout;
+
+public final class Apache5HttpRequest extends LowLevelHttpRequest {
+
+  private final HttpUriRequestBase request;
+
+  private final RequestConfig.Builder requestConfig;
+
+  private final HttpClient httpClient;
+
+  Apache5HttpRequest(HttpClient httpClient, HttpUriRequestBase request) {
+    this.httpClient = httpClient;
+    this.request = request;
+    // disable redirects as google-http-client handles redirects
+    this.requestConfig = RequestConfig.custom().setRedirectsEnabled(false);
+  }
+
+  @Override
+  public void addHeader(String name, String value) {
+    request.addHeader(name, value);
+  }
+
+  @Override
+  public void setTimeout(int connectTimeout, int readTimeout) throws IOException {
+    requestConfig
+        .setConnectTimeout(Timeout.of(connectTimeout, TimeUnit.MILLISECONDS))
+        // ResponseTimeout behaves the same as 4.x's SocketTimeout
+        .setResponseTimeout(Timeout.of(readTimeout, TimeUnit.MILLISECONDS));
+  }
+
+  @Override
+  public LowLevelHttpResponse execute() throws IOException {
+    if (getStreamingContent() != null) {
+      Apache5ContentEntity entity =
+          new Apache5ContentEntity(
+              getContentLength(), getStreamingContent(), getContentType(), getContentEncoding());
+      request.setEntity(entity);
+    }
+    request.setConfig(requestConfig.build());
+    HttpHost target;
+    try {
+      target = RoutingSupport.determineHost(request);
+    } catch (HttpException e) {
+      throw new ClientProtocolException("The request's host is invalid.", e);
+    }
+    // we use a null context so the client creates the default one internally
+    ClassicHttpResponse httpResponse = httpClient.executeOpen(target, request, null);
+    return new Apache5HttpResponse(request, httpResponse);
+  }
+}
diff --git a/google-http-client-apache-v5/src/main/java/com/google/api/client/http/apache/v5/Apache5HttpResponse.java b/google-http-client-apache-v5/src/main/java/com/google/api/client/http/apache/v5/Apache5HttpResponse.java
new file mode 100644
index 00000000..1574c8c8
--- /dev/null
+++ b/google-http-client-apache-v5/src/main/java/com/google/api/client/http/apache/v5/Apache5HttpResponse.java
@@ -0,0 +1,102 @@
+/*
+ * Copyright 2024 Google LLC
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
+ */
+
+package com.google.api.client.http.apache.v5;
+
+import com.google.api.client.http.LowLevelHttpResponse;
+import java.io.IOException;
+import java.io.InputStream;
+import java.util.logging.Logger;
+import org.apache.hc.client5.http.classic.methods.HttpUriRequestBase;
+import org.apache.hc.core5.http.ClassicHttpResponse;
+import org.apache.hc.core5.http.Header;
+import org.apache.hc.core5.http.HttpEntity;
+import org.apache.hc.core5.http.message.StatusLine;
+
+final class Apache5HttpResponse extends LowLevelHttpResponse {
+
+  private static final Logger LOGGER = Logger.getLogger(Apache5HttpResponse.class.getName());
+  private final HttpUriRequestBase request;
+  private final ClassicHttpResponse response;
+  private final Header[] allHeaders;
+  private final HttpEntity entity;
+
+  Apache5HttpResponse(HttpUriRequestBase request, ClassicHttpResponse response) {
+    this.request = request;
+    this.response = response;
+    this.allHeaders = response.getHeaders();
+    this.entity = response.getEntity();
+  }
+
+  @Override
+  public int getStatusCode() {
+    return response.getCode();
+  }
+
+  @Override
+  public InputStream getContent() throws IOException {
+    return new Apache5ResponseContent(entity.getContent(), response);
+  }
+
+  @Override
+  public String getContentEncoding() {
+    return entity != null ? entity.getContentEncoding() : null;
+  }
+
+  @Override
+  public long getContentLength() {
+    return entity == null ? -1 : entity.getContentLength();
+  }
+
+  @Override
+  public String getContentType() {
+    return entity == null ? null : entity.getContentType();
+  }
+
+  @Override
+  public String getReasonPhrase() {
+    return response.getReasonPhrase();
+  }
+
+  @Override
+  public String getStatusLine() {
+    return new StatusLine(response).toString();
+  }
+
+  public String getHeaderValue(String name) {
+    return response.getLastHeader(name).getValue();
+  }
+
+  @Override
+  public int getHeaderCount() {
+    return allHeaders.length;
+  }
+
+  @Override
+  public String getHeaderName(int index) {
+    return allHeaders[index].getName();
+  }
+
+  @Override
+  public String getHeaderValue(int index) {
+    return allHeaders[index].getValue();
+  }
+
+  /** Aborts execution of the request. */
+  @Override
+  public void disconnect() throws IOException {
+    request.abort();
+    response.close();
+  }
+}
diff --git a/google-http-client-apache-v5/src/main/java/com/google/api/client/http/apache/v5/Apache5HttpTransport.java b/google-http-client-apache-v5/src/main/java/com/google/api/client/http/apache/v5/Apache5HttpTransport.java
new file mode 100644
index 00000000..868a2cf9
--- /dev/null
+++ b/google-http-client-apache-v5/src/main/java/com/google/api/client/http/apache/v5/Apache5HttpTransport.java
@@ -0,0 +1,221 @@
+/*
+ * Copyright 2024 Google LLC
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
+ */
+
+package com.google.api.client.http.apache.v5;
+
+import com.google.api.client.http.HttpMethods;
+import com.google.api.client.http.HttpTransport;
+import com.google.common.annotations.Beta;
+import com.google.common.base.Preconditions;
+import java.io.IOException;
+import java.net.ProxySelector;
+import java.net.URI;
+import java.util.concurrent.TimeUnit;
+import org.apache.hc.client5.http.classic.HttpClient;
+import org.apache.hc.client5.http.classic.methods.HttpDelete;
+import org.apache.hc.client5.http.classic.methods.HttpGet;
+import org.apache.hc.client5.http.classic.methods.HttpHead;
+import org.apache.hc.client5.http.classic.methods.HttpOptions;
+import org.apache.hc.client5.http.classic.methods.HttpPatch;
+import org.apache.hc.client5.http.classic.methods.HttpPost;
+import org.apache.hc.client5.http.classic.methods.HttpPut;
+import org.apache.hc.client5.http.classic.methods.HttpTrace;
+import org.apache.hc.client5.http.classic.methods.HttpUriRequestBase;
+import org.apache.hc.client5.http.config.ConnectionConfig;
+import org.apache.hc.client5.http.impl.classic.HttpClientBuilder;
+import org.apache.hc.client5.http.impl.classic.HttpClients;
+import org.apache.hc.client5.http.impl.io.PoolingHttpClientConnectionManager;
+import org.apache.hc.client5.http.impl.io.PoolingHttpClientConnectionManagerBuilder;
+import org.apache.hc.client5.http.impl.routing.SystemDefaultRoutePlanner;
+import org.apache.hc.client5.http.ssl.SSLConnectionSocketFactory;
+import org.apache.hc.core5.io.CloseMode;
+import org.apache.hc.core5.io.ModalCloseable;
+
+/**
+ * Thread-safe HTTP transport based on the Apache HTTP Client library.
+ *
+ * <p>Implementation is thread-safe, as long as any parameter modification to the {@link
+ * #getHttpClient() Apache HTTP Client} is only done at initialization time. For maximum efficiency,
+ * applications should use a single globally-shared instance of the HTTP transport.
+ *
+ * <p>Default settings are specified in {@link #newDefaultHttpClient()}. Use the {@link
+ * #Apache5HttpTransport(HttpClient)} constructor to override the Apache HTTP Client used. Please
+ * read the <a
+ * href="https://github.com/apache/httpcomponents-client/blob/f898f1aca38f77f62a007856a674629cae5a02e6/httpclient5/src/test/java/org/apache/hc/client5/http/examples/ClientConfiguration.java">
+ * Apache HTTP Client 5.x configuration example</a> for more complex configuration options.
+ */
+public final class Apache5HttpTransport extends HttpTransport {
+
+  /** Apache HTTP client. */
+  private final HttpClient httpClient;
+
+  /** If the HTTP client uses mTLS channel. */
+  private final boolean isMtls;
+
+  /** Constructor that uses {@link #newDefaultHttpClient()} for the Apache HTTP client. */
+  public Apache5HttpTransport() {
+    this(newDefaultHttpClient(), false);
+  }
+
+  /**
+   * Constructor that allows an alternative Apache HTTP client to be used.
+   *
+   * <p>If you choose to provide your own Apache HttpClient implementation, be sure that
+   *
+   * <ul>
+   *   <li>HTTP version is set to 1.1.
+   *   <li>Retries are disabled (google-http-client handles retries).
+   * </ul>
+   *
+   * @param httpClient Apache HTTP client to use
+   */
+  public Apache5HttpTransport(HttpClient httpClient) {
+    this.httpClient = httpClient;
+    this.isMtls = false;
+  }
+
+  /**
+   * {@link Beta} <br>
+   * Constructor that allows an alternative CLoseable Apache HTTP client to be used.
+   *
+   * <p>If you choose to provide your own Apache HttpClient implementation, be sure that
+   *
+   * <ul>
+   *   <li>HTTP version is set to 1.1.
+   *   <li>Retries are disabled (google-http-client handles retries).
+   *   <li>Redirects are disabled (google-http-client handles retries).
+   * </ul>
+   *
+   * @param httpClient Apache HTTP client to use
+   * @param isMtls If the HTTP client is mutual TLS
+   */
+  @Beta
+  public Apache5HttpTransport(HttpClient httpClient, boolean isMtls) {
+    this.httpClient = httpClient;
+    this.isMtls = isMtls;
+  }
+
+  /**
+   * Creates a new instance of the Apache HTTP client that is used by the {@link
+   * #Apache5HttpTransport()} constructor.
+   *
+   * <p>Settings:
+   *
+   * <ul>
+   *   <li>The client connection manager is set to {@link PoolingHttpClientConnectionManager}.
+   *   <li>The retry mechanism is turned off using {@link
+   *       HttpClientBuilder#disableAutomaticRetries()}.
+   *   <li>Redirects are turned off using {@link HttpClientBuilder#disableRedirectHandling}.
+   *   <li>The route planner uses {@link SystemDefaultRoutePlanner} with {@link
+   *       ProxySelector#getDefault()}, which uses the proxy settings from <a
+   *       href="https://docs.oracle.com/javase/8/docs/api/java/net/doc-files/net-properties.html">system
+   *       properties</a>.
+   * </ul>
+   *
+   * @return new instance of the Apache HTTP client
+   */
+  public static HttpClient newDefaultHttpClient() {
+    return newDefaultHttpClientBuilder().build();
+  }
+
+  /**
+   * Creates a new Apache HTTP client builder that is used by the {@link #Apache5HttpTransport()}
+   * constructor.
+   *
+   * <p>Settings:
+   *
+   * <ul>
+   *   <li>The client connection manager is set to {@link PoolingHttpClientConnectionManager}.
+   *   <li>The retry mechanism is turned off using {@link
+   *       HttpClientBuilder#disableAutomaticRetries()}.
+   *   <li>Redirects are turned off using {@link HttpClientBuilder#disableRedirectHandling}.
+   *   <li>The route planner uses {@link SystemDefaultRoutePlanner} with {@link
+   *       ProxySelector#getDefault()}, which uses the proxy settings from <a
+   *       href="http://docs.oracle.com/javase/8/docs/api/java/net/doc-files/net-properties.html">system
+   *       properties</a>.
+   * </ul>
+   *
+   * @return new instance of the Apache HTTP client builder
+   */
+  public static HttpClientBuilder newDefaultHttpClientBuilder() {
+    PoolingHttpClientConnectionManager connectionManager =
+        PoolingHttpClientConnectionManagerBuilder.create()
+            .setSSLSocketFactory(SSLConnectionSocketFactory.getSocketFactory())
+            .setMaxConnTotal(200)
+            .setMaxConnPerRoute(20)
+            .setDefaultConnectionConfig(
+                ConnectionConfig.custom().setTimeToLive(-1, TimeUnit.MILLISECONDS).build())
+            .build();
+
+    return HttpClients.custom()
+        .useSystemProperties()
+        .setConnectionManager(connectionManager)
+        .setRoutePlanner(new SystemDefaultRoutePlanner(ProxySelector.getDefault()))
+        .disableRedirectHandling()
+        .disableAutomaticRetries();
+  }
+
+  @Override
+  public boolean supportsMethod(String method) {
+    return true;
+  }
+
+  @Override
+  protected Apache5HttpRequest buildRequest(String method, String url) {
+    HttpUriRequestBase requestBase;
+    if (method.equals(HttpMethods.DELETE)) {
+      requestBase = new HttpDelete(url);
+    } else if (method.equals(HttpMethods.GET)) {
+      requestBase = new HttpGet(url);
+    } else if (method.equals(HttpMethods.HEAD)) {
+      requestBase = new HttpHead(url);
+    } else if (method.equals(HttpMethods.PATCH)) {
+      requestBase = new HttpPatch(url);
+    } else if (method.equals(HttpMethods.POST)) {
+      requestBase = new HttpPost(url);
+    } else if (method.equals(HttpMethods.PUT)) {
+      requestBase = new HttpPut(url);
+    } else if (method.equals(HttpMethods.TRACE)) {
+      requestBase = new HttpTrace(url);
+    } else if (method.equals(HttpMethods.OPTIONS)) {
+      requestBase = new HttpOptions(url);
+    } else {
+      requestBase = new HttpUriRequestBase(Preconditions.checkNotNull(method), URI.create(url));
+    }
+    return new Apache5HttpRequest(httpClient, requestBase);
+  }
+
+  /**
+   * Gracefully shuts down the connection manager and releases allocated resources. This closes all
+   * connections, whether they are currently used or not.
+   */
+  @Override
+  public void shutdown() throws IOException {
+    if (httpClient instanceof ModalCloseable) {
+      ((ModalCloseable) httpClient).close(CloseMode.GRACEFUL);
+    }
+    // otherwise no-op
+  }
+
+  /** Returns the Apache HTTP client. */
+  public HttpClient getHttpClient() {
+    return httpClient;
+  }
+
+  /** Returns if the underlying HTTP client is mTLS. */
+  @Override
+  public boolean isMtls() {
+    return isMtls;
+  }
+}
diff --git a/google-http-client-apache-v5/src/main/java/com/google/api/client/http/apache/v5/Apache5ResponseContent.java b/google-http-client-apache-v5/src/main/java/com/google/api/client/http/apache/v5/Apache5ResponseContent.java
new file mode 100644
index 00000000..c2d3091d
--- /dev/null
+++ b/google-http-client-apache-v5/src/main/java/com/google/api/client/http/apache/v5/Apache5ResponseContent.java
@@ -0,0 +1,75 @@
+package com.google.api.client.http.apache.v5;
+
+import com.google.common.annotations.VisibleForTesting;
+import java.io.IOException;
+import java.io.InputStream;
+import org.apache.hc.core5.http.ClassicHttpResponse;
+import org.apache.hc.core5.http.HttpResponse;
+
+/**
+ * Class that wraps an {@link org.apache.hc.core5.http.HttpEntity}'s content {@link InputStream}
+ * along with the {@link ClassicHttpResponse} that contains this entity. The main purpose is to be
+ * able to close the response as well as the content input stream when {@link #close()} is called,
+ * in order to not break the existing contract with clients using apache v4 that only required them
+ * to close the input stream to clean up all resources.
+ */
+public class Apache5ResponseContent extends InputStream {
+  private final ClassicHttpResponse response;
+  private final InputStream wrappedStream;
+
+  public Apache5ResponseContent(InputStream wrappedStream, ClassicHttpResponse response) {
+    this.response = response;
+    this.wrappedStream = wrappedStream;
+  }
+
+  @Override
+  public int read() throws IOException {
+    return wrappedStream.read();
+  }
+
+  @Override
+  public int read(byte b[]) throws IOException {
+    return wrappedStream.read(b);
+  }
+
+  @Override
+  public int read(byte b[], int off, int len) throws IOException {
+    return wrappedStream.read(b, off, len);
+  }
+
+  @Override
+  public long skip(long n) throws IOException {
+    return wrappedStream.skip(n);
+  }
+
+  @Override
+  public int available() throws IOException {
+    return wrappedStream.available();
+  }
+
+  @Override
+  public synchronized void mark(int readlimit) {
+    wrappedStream.mark(readlimit);
+  }
+
+  @Override
+  public synchronized void reset() throws IOException {
+    wrappedStream.reset();
+  }
+
+  @Override
+  public void close() throws IOException {
+    wrappedStream.close();
+    response.close();
+  }
+
+  @Override
+  public boolean markSupported() {
+    return wrappedStream.markSupported();
+  }
+
+  @VisibleForTesting
+  HttpResponse getResponse() {
+    return response;
+  }
+}
diff --git a/google-http-client-apache-v5/src/main/java/com/google/api/client/http/apache/v5/package-info.java b/google-http-client-apache-v5/src/main/java/com/google/api/client/http/apache/v5/package-info.java
new file mode 100644
index 00000000..223edc82
--- /dev/null
+++ b/google-http-client-apache-v5/src/main/java/com/google/api/client/http/apache/v5/package-info.java
@@ -0,0 +1,16 @@
+/*
+ * Copyright 2024 Google LLC
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
+ */
+
+/** HTTP Transport library for Google API's based on Apache HTTP Client/Core version 5.x */
+package com.google.api.client.http.apache.v5;
diff --git a/google-http-client-assembly/classpath-include b/google-http-client-assembly/classpath-include
index c1bd8032..c7bbd573 100644
--- a/google-http-client-assembly/classpath-include
+++ b/google-http-client-assembly/classpath-include
@@ -7,8 +7,8 @@
 	<classpathentry kind="lib" path="libs/google-http-client-xml-${project.version}.jar" sourcepath="libs-sources/google-http-client-xml-${project.version}-sources.jar"/>
 	<classpathentry kind="lib" path="libs/commons-logging-${project.commons-logging.version}.jar" sourcepath="libs-sources/commons-logging-${project.commons-logging.version}-sources.jar"/>
 	<classpathentry kind="lib" path="libs/gson-${project.gson.version}.jar" sourcepath="libs-sources/gson-${project.gson.version}-sources.jar"/>
-	<classpathentry kind="lib" path="libs/httpclient-${project.httpclient.version}.jar" sourcepath="libs-sources/httpclient-${project.httpclient.version}-sources.jar"/>
-	<classpathentry kind="lib" path="libs/httpcore-${project.httpcore.version}.jar" sourcepath="libs-sources/httpcore-${project.httpcore.version}-sources.jar"/>
+	<classpathentry kind="lib" path="libs/httpclient-${project.apache-httpclient-4.version}.jar" sourcepath="libs-sources/httpclient-${project.apache-httpclient-4.version}-sources.jar"/>
+	<classpathentry kind="lib" path="libs/httpcore-${project.apache-httpcore-4.version}.jar" sourcepath="libs-sources/httpcore-${project.apache-httpcore-4.version}-sources.jar"/>
 	<classpathentry kind="lib" path="libs/jackson-core-asl-${project.jackson-core-asl.version}.jar" sourcepath="libs-sources/jackson-core-asl-${project.jackson-core-asl.version}-sources.jar"/>
 	<classpathentry kind="lib" path="libs/jackson-core-${project.jackson-core2.version}.jar" sourcepath="libs-sources/jackson-core-${project.jackson-core2.version}-sources.jar"/>
 	<classpathentry kind="lib" path="libs/jsr305-${project.jsr305.version}.jar"/>
diff --git a/google-http-client-assembly/readme.html b/google-http-client-assembly/readme.html
index 5e7af564..8a146df1 100644
--- a/google-http-client-assembly/readme.html
+++ b/google-http-client-assembly/readme.html
@@ -135,8 +135,8 @@
   required for general purpose Java applications :
   <ul>
     <li>commons-logging-${project.commons-logging.version}.jar</li>
-    <li>httpclient-${project.httpclient.version}.jar</li>
-    <li>httpcore-${project.httpcore.version}.jar</li>
+    <li>httpclient-${project.apache-httpclient-4.version}.jar</li>
+    <li>httpcore-${project.apache-httpcore-4.version}.jar</li>
   </ul>
 
 </body>
diff --git a/google-http-client-bom/pom.xml b/google-http-client-bom/pom.xml
index 4f00e6f0..3e5a6aee 100644
--- a/google-http-client-bom/pom.xml
+++ b/google-http-client-bom/pom.xml
@@ -128,7 +128,7 @@
       <plugin>
         <groupId>org.apache.maven.plugins</groupId>
         <artifactId>maven-javadoc-plugin</artifactId>
-        <version>3.7.0</version>
+        <version>3.8.0</version>
         <configuration>
           <skip>true</skip>
         </configuration>
@@ -166,7 +166,7 @@
           <plugin>
             <groupId>org.apache.maven.plugins</groupId>
             <artifactId>maven-gpg-plugin</artifactId>
-            <version>3.2.4</version>
+            <version>3.2.5</version>
             <executions>
               <execution>
                 <id>sign-artifacts</id>
diff --git a/pom.xml b/pom.xml
index 5760c3e6..1d2f7e25 100644
--- a/pom.xml
+++ b/pom.xml
@@ -62,6 +62,7 @@
     <module>google-http-client-appengine</module>
     <module>google-http-client-android</module>
     <module>google-http-client-apache-v2</module>
+    <module>google-http-client-apache-v5</module>
     <module>google-http-client-protobuf</module>
     <module>google-http-client-gson</module>
     <module>google-http-client-jackson2</module>
@@ -92,7 +93,7 @@
   <parent>
     <groupId>com.google.cloud</groupId>
     <artifactId>native-image-shared-config</artifactId>
-    <version>1.9.0</version>
+    <version>1.11.0</version>
   </parent>
 
   <!--
@@ -131,7 +132,7 @@
       <dependency>
         <groupId>com.google.errorprone</groupId>
         <artifactId>error_prone_annotations</artifactId>
-        <version>2.23.0</version>
+        <version>2.30.0</version>
       </dependency>
       <dependency>
         <groupId>com.google.appengine</groupId>
@@ -156,12 +157,22 @@
       <dependency>
         <groupId>org.apache.httpcomponents</groupId>
         <artifactId>httpclient</artifactId>
-        <version>${project.httpclient.version}</version>
+        <version>${project.apache-httpclient-4.version}</version>
       </dependency>
       <dependency>
         <groupId>org.apache.httpcomponents</groupId>
         <artifactId>httpcore</artifactId>
-        <version>${project.httpcore.version}</version>
+        <version>${project.apache-httpcore-4.version}</version>
+      </dependency>
+      <dependency>
+        <groupId>org.apache.httpcomponents.client5</groupId>
+        <artifactId>httpclient5</artifactId>
+        <version>${project.apache-httpclient-5.version}</version>
+      </dependency>
+      <dependency>
+        <groupId>org.apache.httpcomponents.core5</groupId>
+        <artifactId>httpcore5</artifactId>
+        <version>${project.apache-httpcore-5.version}</version>
       </dependency>
       <dependency>
         <groupId>com.google.guava</groupId>
@@ -236,12 +247,12 @@
       <dependency>
         <groupId>com.google.j2objc</groupId>
         <artifactId>j2objc-annotations</artifactId>
-        <version>2.8</version>
+        <version>3.0.0</version>
       </dependency>
       <dependency>
         <groupId>io.grpc</groupId>
         <artifactId>grpc-context</artifactId>
-        <version>1.60.1</version>
+        <version>1.66.0</version>
       </dependency>
       <dependency>
         <groupId>io.opencensus</groupId>
@@ -313,7 +324,7 @@
         <plugin>
           <groupId>org.apache.maven.plugins</groupId>
           <artifactId>maven-javadoc-plugin</artifactId>
-          <version>3.7.0</version>
+          <version>3.8.0</version>
           <executions>
             <execution>
               <id>attach-javadocs</id>
@@ -346,7 +357,7 @@
         <plugin>
           <groupId>org.apache.maven.plugins</groupId>
           <artifactId>maven-checkstyle-plugin</artifactId>
-          <version>3.3.1</version>
+          <version>3.4.0</version>
         </plugin>
         <plugin>
           <groupId>org.codehaus.mojo</groupId>
@@ -361,12 +372,12 @@
         <plugin>
           <groupId>org.codehaus.mojo</groupId>
           <artifactId>animal-sniffer-maven-plugin</artifactId>
-          <version>1.23</version>
+          <version>1.24</version>
         </plugin>
         <plugin>
           <groupId>org.apache.maven.plugins</groupId>
           <artifactId>maven-project-info-reports-plugin</artifactId>
-          <version>3.5.0</version>
+          <version>3.6.2</version>
         </plugin>
         <plugin>
           <groupId>org.apache.maven.plugins</groupId>
@@ -376,7 +387,7 @@
         <plugin>
           <groupId>org.apache.maven.plugins</groupId>
           <artifactId>maven-dependency-plugin</artifactId>
-          <version>3.6.1</version>
+          <version>3.7.1</version>
         </plugin>
         <plugin>
           <groupId>org.apache.maven.plugins</groupId>
@@ -549,7 +560,7 @@
       <!-- Build the dependencies report at package time (needed for the assembly artifact). -->
       <plugin>
         <artifactId>maven-project-info-reports-plugin</artifactId>
-        <version>3.5.0</version>
+        <version>3.6.2</version>
         <executions>
           <execution>
             <goals>
@@ -593,19 +604,21 @@
       - Internally, update the default features.json file
     -->
     <project.http-client.version>1.44.3-SNAPSHOT</project.http-client.version><!-- {x-version-update:google-http-client-parent:current} -->
-    <project.appengine.version>2.0.27</project.appengine.version>
+    <project.appengine.version>2.0.29</project.appengine.version>
     <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
     <project.jsr305.version>3.0.2</project.jsr305.version>
     <project.gson.version>2.10.1</project.gson.version>
-    <project.jackson-core2.version>2.14.2</project.jackson-core2.version>
+    <project.jackson-core2.version>2.17.2</project.jackson-core2.version>
     <project.protobuf-java.version>3.21.12</project.protobuf-java.version>
     <project.guava.version>30.1.1-android</project.guava.version>
     <project.xpp3.version>1.1.4c</project.xpp3.version>
-    <project.httpclient.version>4.5.14</project.httpclient.version>
-    <project.httpcore.version>4.4.16</project.httpcore.version>
+    <project.apache-httpclient-4.version>4.5.14</project.apache-httpclient-4.version>
+    <project.apache-httpcore-4.version>4.4.16</project.apache-httpcore-4.version>
+    <project.apache-httpclient-5.version>5.3.1</project.apache-httpclient-5.version>
+    <project.apache-httpcore-5.version>5.2.4</project.apache-httpcore-5.version>
     <project.opencensus.version>0.31.1</project.opencensus.version>
     <project.root-directory>..</project.root-directory>
-    <project.surefire.version>3.2.5</project.surefire.version>
+    <project.surefire.version>3.4.0</project.surefire.version>
     <deploy.autorelease>false</deploy.autorelease>
   </properties>
 
@@ -698,7 +711,7 @@
           <plugin>
             <groupId>org.apache.maven.plugins</groupId>
             <artifactId>maven-gpg-plugin</artifactId>
-            <version>3.2.4</version>
+            <version>3.2.5</version>
             <executions>
               <execution>
                 <id>sign-artifacts</id>
@@ -787,7 +800,7 @@
           <plugin>
             <groupId>org.apache.maven.plugins</groupId>
             <artifactId>maven-javadoc-plugin</artifactId>
-            <version>3.7.0</version>
+            <version>3.8.0</version>
             <configuration>
               <doclet>com.microsoft.doclet.DocFxDoclet</doclet>
               <useStandardDocletOptions>false</useStandardDocletOptions>
diff --git a/samples/snippets/pom.xml b/samples/snippets/pom.xml
index c269830a..54ade461 100644
--- a/samples/snippets/pom.xml
+++ b/samples/snippets/pom.xml
@@ -31,7 +31,7 @@
       <dependency>
         <groupId>com.google.cloud</groupId>
         <artifactId>libraries-bom</artifactId>
-        <version>26.10.0</version>
+        <version>26.44.0</version>
         <type>pom</type>
         <scope>import</scope>
       </dependency>
diff --git a/versions.txt b/versions.txt
index 963efeb8..87dbbb66 100644
--- a/versions.txt
+++ b/versions.txt
@@ -7,6 +7,7 @@ google-http-client-parent:1.44.2:1.44.3-SNAPSHOT
 google-http-client-android:1.44.2:1.44.3-SNAPSHOT
 google-http-client-android-test:1.44.2:1.44.3-SNAPSHOT
 google-http-client-apache-v2:1.44.2:1.44.3-SNAPSHOT
+google-http-client-apache-v5:1.44.2:1.44.3-SNAPSHOT
 google-http-client-appengine:1.44.2:1.44.3-SNAPSHOT
 google-http-client-assembly:1.44.2:1.44.3-SNAPSHOT
 google-http-client-findbugs:1.44.2:1.44.3-SNAPSHOT


Test patch:
diff --git a/google-http-client-apache-v5/src/test/java/com/google/api/client/http/apache/v5/Apache5HttpRequestTest.java b/google-http-client-apache-v5/src/test/java/com/google/api/client/http/apache/v5/Apache5HttpRequestTest.java
new file mode 100644
index 00000000..3b7ca4a2
--- /dev/null
+++ b/google-http-client-apache-v5/src/test/java/com/google/api/client/http/apache/v5/Apache5HttpRequestTest.java
@@ -0,0 +1,131 @@
+/*
+ * Copyright 2019 Google LLC
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
+ */
+
+package com.google.api.client.http.apache.v5;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertTrue;
+
+import com.google.api.client.http.ByteArrayContent;
+import com.google.api.client.http.HttpContent;
+import com.google.api.client.http.InputStreamContent;
+import com.google.api.client.http.LowLevelHttpResponse;
+import java.io.ByteArrayInputStream;
+import java.io.InputStream;
+import java.nio.charset.StandardCharsets;
+import java.util.Arrays;
+import java.util.concurrent.atomic.AtomicInteger;
+import org.apache.hc.client5.http.classic.methods.HttpPost;
+import org.apache.hc.client5.http.classic.methods.HttpUriRequestBase;
+import org.apache.hc.core5.http.ClassicHttpRequest;
+import org.apache.hc.core5.http.ClassicHttpResponse;
+import org.apache.hc.core5.http.ContentType;
+import org.apache.hc.core5.http.HttpEntity;
+import org.apache.hc.core5.http.HttpHost;
+import org.apache.hc.core5.http.io.entity.BasicHttpEntity;
+import org.apache.hc.core5.http.protocol.HttpContext;
+import org.junit.Test;
+
+public class Apache5HttpRequestTest {
+  @Test
+  public void testContentLengthSet() throws Exception {
+    HttpUriRequestBase base = new HttpPost("http://www.google.com");
+    Apache5HttpRequest request =
+        new Apache5HttpRequest(
+            new MockHttpClient() {
+              @Override
+              public ClassicHttpResponse executeOpen(
+                  HttpHost target, ClassicHttpRequest request, HttpContext context) {
+                return new MockClassicHttpResponse();
+              }
+            },
+            base);
+    HttpContent content =
+        new ByteArrayContent("text/plain", "sample".getBytes(StandardCharsets.UTF_8));
+    request.setStreamingContent(content);
+    request.setContentLength(content.getLength());
+    request.execute();
+
+    assertFalse(base.getEntity().isChunked());
+    assertEquals(6, base.getEntity().getContentLength());
+  }
+
+  @Test
+  public void testChunked() throws Exception {
+    byte[] buf = new byte[300];
+    Arrays.fill(buf, (byte) ' ');
+    HttpUriRequestBase base = new HttpPost("http://www.google.com");
+    Apache5HttpRequest request =
+        new Apache5HttpRequest(
+            new MockHttpClient() {
+              @Override
+              public ClassicHttpResponse executeOpen(
+                  HttpHost target, ClassicHttpRequest request, HttpContext context) {
+                return new MockClassicHttpResponse();
+              }
+            },
+            base);
+    HttpContent content = new InputStreamContent("text/plain", new ByteArrayInputStream(buf));
+    request.setStreamingContent(content);
+    request.execute();
+
+    assertTrue(base.getEntity().isChunked());
+    assertEquals(-1, base.getEntity().getContentLength());
+  }
+
+  @Test
+  public void testExecute_closeContent_closesResponse() throws Exception {
+    HttpUriRequestBase base = new HttpPost("http://www.google.com");
+    final InputStream responseContentStream = new ByteArrayInputStream(new byte[] {1, 2, 3});
+    BasicHttpEntity testEntity =
+        new BasicHttpEntity(responseContentStream, ContentType.DEFAULT_BINARY);
+    AtomicInteger closedResponseCounter = new AtomicInteger(0);
+    ClassicHttpResponse classicResponse =
+        new MockClassicHttpResponse() {
+          @Override
+          public HttpEntity getEntity() {
+            return testEntity;
+          }
+
+          @Override
+          public void close() {
+            closedResponseCounter.incrementAndGet();
+          }
+        };
+
+    Apache5HttpRequest request =
+        new Apache5HttpRequest(
+            new MockHttpClient() {
+              @Override
+              public ClassicHttpResponse executeOpen(
+                  HttpHost target, ClassicHttpRequest request, HttpContext context) {
+                return classicResponse;
+              }
+            },
+            base);
+    LowLevelHttpResponse response = request.execute();
+    assertTrue(response instanceof Apache5HttpResponse);
+
+    // we confirm that the classic response we prepared in this test is the same as the content's
+    // response
+    assertTrue(response.getContent() instanceof Apache5ResponseContent);
+    assertEquals(classicResponse, ((Apache5ResponseContent) response.getContent()).getResponse());
+
+    // we close the response's content stream and confirm the response is also closed
+    assertEquals(0, closedResponseCounter.get());
+    response.getContent().close();
+    assertEquals(1, closedResponseCounter.get());
+  }
+}
diff --git a/google-http-client-apache-v5/src/test/java/com/google/api/client/http/apache/v5/Apache5HttpTransportTest.java b/google-http-client-apache-v5/src/test/java/com/google/api/client/http/apache/v5/Apache5HttpTransportTest.java
new file mode 100644
index 00000000..99045d99
--- /dev/null
+++ b/google-http-client-apache-v5/src/test/java/com/google/api/client/http/apache/v5/Apache5HttpTransportTest.java
@@ -0,0 +1,353 @@
+/*
+ * Copyright 2019 Google LLC
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
+ */
+
+package com.google.api.client.http.apache.v5;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertTrue;
+import static org.junit.Assert.fail;
+import static org.junit.Assume.assumeTrue;
+
+import com.google.api.client.http.GenericUrl;
+import com.google.api.client.http.HttpResponseException;
+import com.google.api.client.http.HttpTransport;
+import com.google.api.client.http.LowLevelHttpResponse;
+import com.google.api.client.util.ByteArrayStreamingContent;
+import java.io.IOException;
+import java.nio.charset.StandardCharsets;
+import java.util.concurrent.atomic.AtomicBoolean;
+import java.util.concurrent.atomic.AtomicInteger;
+import org.apache.hc.client5.http.ConnectTimeoutException;
+import org.apache.hc.client5.http.HttpHostConnectException;
+import org.apache.hc.client5.http.classic.HttpClient;
+import org.apache.hc.client5.http.impl.classic.HttpClients;
+import org.apache.hc.core5.http.ClassicHttpRequest;
+import org.apache.hc.core5.http.ClassicHttpResponse;
+import org.apache.hc.core5.http.ContentType;
+import org.apache.hc.core5.http.EntityDetails;
+import org.apache.hc.core5.http.Header;
+import org.apache.hc.core5.http.HttpException;
+import org.apache.hc.core5.http.HttpHeaders;
+import org.apache.hc.core5.http.HttpHost;
+import org.apache.hc.core5.http.HttpRequest;
+import org.apache.hc.core5.http.HttpRequestInterceptor;
+import org.apache.hc.core5.http.HttpRequestMapper;
+import org.apache.hc.core5.http.HttpResponse;
+import org.apache.hc.core5.http.HttpStatus;
+import org.apache.hc.core5.http.impl.bootstrap.HttpServer;
+import org.apache.hc.core5.http.impl.io.HttpRequestExecutor;
+import org.apache.hc.core5.http.impl.io.HttpService;
+import org.apache.hc.core5.http.io.HttpClientConnection;
+import org.apache.hc.core5.http.io.HttpRequestHandler;
+import org.apache.hc.core5.http.io.entity.ByteArrayEntity;
+import org.apache.hc.core5.http.io.support.BasicHttpServerRequestHandler;
+import org.apache.hc.core5.http.protocol.HttpContext;
+import org.apache.hc.core5.http.protocol.HttpProcessor;
+import org.junit.Assert;
+import org.junit.Test;
+
+/** Tests {@link Apache5HttpTransport}. */
+public class Apache5HttpTransportTest {
+
+  @Test
+  public void testApacheHttpTransport() {
+    Apache5HttpTransport transport = new Apache5HttpTransport();
+    checkHttpTransport(transport);
+    assertFalse(transport.isMtls());
+  }
+
+  @Test
+  public void testApacheHttpTransportWithParam() {
+    Apache5HttpTransport transport = new Apache5HttpTransport(HttpClients.custom().build(), true);
+    checkHttpTransport(transport);
+    assertTrue(transport.isMtls());
+  }
+
+  @Test
+  public void testNewDefaultHttpClient() {
+    HttpClient client = Apache5HttpTransport.newDefaultHttpClient();
+    checkHttpClient(client);
+  }
+
+  private void checkHttpTransport(Apache5HttpTransport transport) {
+    assertNotNull(transport);
+    HttpClient client = transport.getHttpClient();
+    checkHttpClient(client);
+  }
+
+  private void checkHttpClient(HttpClient client) {
+    assertNotNull(client);
+    // TODO(chingor): Is it possible to test this effectively? The newer HttpClient implementations
+    // are read-only and we're testing that we built the client with the right configuration
+  }
+
+  @Test
+  public void testRequestsWithContent() throws IOException {
+    // This test confirms that we can set the content on any type of request
+    HttpClient mockClient =
+        new MockHttpClient() {
+          @Override
+          public ClassicHttpResponse executeOpen(
+              HttpHost target, ClassicHttpRequest request, HttpContext context) {
+            return new MockClassicHttpResponse();
+          }
+        };
+    Apache5HttpTransport transport = new Apache5HttpTransport(mockClient);
+
+    // Test GET.
+    execute(transport.buildRequest("GET", "http://www.test.url"));
+    // Test DELETE.
+    execute(transport.buildRequest("DELETE", "http://www.test.url"));
+    // Test HEAD.
+    execute(transport.buildRequest("HEAD", "http://www.test.url"));
+
+    // Test PATCH.
+    execute(transport.buildRequest("PATCH", "http://www.test.url"));
+    // Test PUT.
+    execute(transport.buildRequest("PUT", "http://www.test.url"));
+    // Test POST.
+    execute(transport.buildRequest("POST", "http://www.test.url"));
+    // Test PATCH.
+    execute(transport.buildRequest("PATCH", "http://www.test.url"));
+  }
+
+  private void execute(Apache5HttpRequest request) throws IOException {
+    byte[] bytes = "abc".getBytes(StandardCharsets.UTF_8);
+    request.setStreamingContent(new ByteArrayStreamingContent(bytes));
+    request.setContentType("text/html");
+    request.setContentLength(bytes.length);
+    request.execute();
+  }
+
+  @Test
+  public void testRequestShouldNotFollowRedirects() throws IOException {
+    final AtomicInteger requestsAttempted = new AtomicInteger(0);
+    HttpRequestExecutor requestExecutor =
+        new HttpRequestExecutor() {
+          @Override
+          public ClassicHttpResponse execute(
+              ClassicHttpRequest request, HttpClientConnection connection, HttpContext context)
+              throws IOException, HttpException {
+            ClassicHttpResponse response = new MockClassicHttpResponse();
+            response.setCode(302);
+            response.setReasonPhrase(null);
+            response.addHeader("location", "https://google.com/path");
+            response.addHeader(HttpHeaders.SET_COOKIE, "");
+            requestsAttempted.incrementAndGet();
+            return response;
+          }
+        };
+    HttpClient client = HttpClients.custom().setRequestExecutor(requestExecutor).build();
+    Apache5HttpTransport transport = new Apache5HttpTransport(client);
+    Apache5HttpRequest request = transport.buildRequest("GET", "https://google.com");
+    LowLevelHttpResponse response = request.execute();
+    assertEquals(1, requestsAttempted.get());
+    assertEquals(302, response.getStatusCode());
+  }
+
+  @Test
+  public void testRequestCanSetHeaders() {
+    final AtomicBoolean interceptorCalled = new AtomicBoolean(false);
+    HttpClient client =
+        HttpClients.custom()
+            .addRequestInterceptorFirst(
+                new HttpRequestInterceptor() {
+                  @Override
+                  public void process(
+                      HttpRequest request, EntityDetails details, HttpContext context)
+                      throws HttpException, IOException {
+                    Header header = request.getFirstHeader("foo");
+                    assertNotNull("Should have found header", header);
+                    assertEquals("bar", header.getValue());
+                    interceptorCalled.set(true);
+                    throw new IOException("cancelling request");
+                  }
+                })
+            .build();
+
+    Apache5HttpTransport transport = new Apache5HttpTransport(client);
+    Apache5HttpRequest request = transport.buildRequest("GET", "https://google.com");
+    request.addHeader("foo", "bar");
+    try {
+      LowLevelHttpResponse response = request.execute();
+      fail("should not actually make the request");
+    } catch (IOException exception) {
+      assertEquals("cancelling request", exception.getMessage());
+    }
+    assertTrue("Expected to have called our test interceptor", interceptorCalled.get());
+  }
+
+  @Test(timeout = 10_000L)
+  public void testConnectTimeout() {
+    // TODO(chanseok): Java 17 returns an IOException (SocketException: Network is unreachable).
+    // Figure out a way to verify connection timeout works on Java 17+.
+    assumeTrue(System.getProperty("java.version").compareTo("17") < 0);
+
+    HttpTransport httpTransport = new Apache5HttpTransport();
+    GenericUrl url = new GenericUrl("http://google.com:81");
+    try {
+      httpTransport.createRequestFactory().buildGetRequest(url).setConnectTimeout(100).execute();
+      fail("should have thrown an exception");
+    } catch (HttpHostConnectException | ConnectTimeoutException expected) {
+      // expected
+    } catch (IOException e) {
+      fail("unexpected IOException: " + e.getClass().getName() + ": " + e.getMessage());
+    }
+  }
+
+  private static class FakeServer implements AutoCloseable {
+    private final HttpServer server;
+
+    FakeServer(final HttpRequestHandler httpHandler) throws IOException {
+      HttpRequestMapper<HttpRequestHandler> mapper =
+          new HttpRequestMapper<HttpRequestHandler>() {
+            @Override
+            public HttpRequestHandler resolve(HttpRequest request, HttpContext context)
+                throws HttpException {
+              return httpHandler;
+            };
+          };
+      server =
+          new HttpServer(
+              0,
+              HttpService.builder()
+                  .withHttpProcessor(
+                      new HttpProcessor() {
+                        @Override
+                        public void process(
+                            HttpRequest request, EntityDetails entity, HttpContext context)
+                            throws HttpException, IOException {}
+
+                        @Override
+                        public void process(
+                            HttpResponse response, EntityDetails entity, HttpContext context)
+                            throws HttpException, IOException {}
+                      })
+                  .withHttpServerRequestHandler(new BasicHttpServerRequestHandler(mapper))
+                  .build(),
+              null,
+              null,
+              null,
+              null,
+              null,
+              null);
+      //       server.createContext("/", httpHandler);
+      server.start();
+    }
+
+    public int getPort() {
+      return server.getLocalPort();
+    }
+
+    @Override
+    public void close() {
+      server.initiateShutdown();
+    }
+  }
+
+  @Test
+  public void testNormalizedUrl() throws IOException {
+    final HttpRequestHandler handler =
+        new HttpRequestHandler() {
+          @Override
+          public void handle(
+              ClassicHttpRequest request, ClassicHttpResponse response, HttpContext context)
+              throws HttpException, IOException {
+            // Extract the request URI and convert to bytes
+            byte[] responseData = request.getRequestUri().getBytes(StandardCharsets.UTF_8);
+
+            // Set the response headers (status code and content length)
+            response.setCode(HttpStatus.SC_OK);
+            response.setHeader(HttpHeaders.CONTENT_LENGTH, String.valueOf(responseData.length));
+
+            // Set the response entity (body)
+            ByteArrayEntity entity = new ByteArrayEntity(responseData, ContentType.TEXT_PLAIN);
+            response.setEntity(entity);
+          }
+        };
+    try (FakeServer server = new FakeServer(handler)) {
+      HttpTransport transport = new Apache5HttpTransport();
+      GenericUrl testUrl = new GenericUrl("http://localhost/foo//bar");
+      testUrl.setPort(server.getPort());
+      com.google.api.client.http.HttpResponse response =
+          transport.createRequestFactory().buildGetRequest(testUrl).execute();
+      assertEquals(200, response.getStatusCode());
+      assertEquals("/foo//bar", response.parseAsString());
+    }
+  }
+
+  @Test
+  public void testReadErrorStream() throws IOException {
+    final HttpRequestHandler handler =
+        new HttpRequestHandler() {
+          @Override
+          public void handle(
+              ClassicHttpRequest request, ClassicHttpResponse response, HttpContext context)
+              throws HttpException, IOException {
+            byte[] responseData = "Forbidden".getBytes(StandardCharsets.UTF_8);
+            response.setCode(HttpStatus.SC_FORBIDDEN); // 403 Forbidden
+            response.setHeader(HttpHeaders.CONTENT_LENGTH, String.valueOf(responseData.length));
+            ByteArrayEntity entity = new ByteArrayEntity(responseData, ContentType.TEXT_PLAIN);
+            response.setEntity(entity);
+          }
+        };
+    try (FakeServer server = new FakeServer(handler)) {
+      HttpTransport transport = new Apache5HttpTransport();
+      GenericUrl testUrl = new GenericUrl("http://localhost/foo//bar");
+      testUrl.setPort(server.getPort());
+      com.google.api.client.http.HttpRequest getRequest =
+          transport.createRequestFactory().buildGetRequest(testUrl);
+      getRequest.setThrowExceptionOnExecuteError(false);
+      com.google.api.client.http.HttpResponse response = getRequest.execute();
+      assertEquals(403, response.getStatusCode());
+      assertEquals("Forbidden", response.parseAsString());
+    }
+  }
+
+  @Test
+  public void testReadErrorStream_withException() throws IOException {
+    final HttpRequestHandler handler =
+        new HttpRequestHandler() {
+          @Override
+          public void handle(
+              ClassicHttpRequest request, ClassicHttpResponse response, HttpContext context)
+              throws HttpException, IOException {
+            byte[] responseData = "Forbidden".getBytes(StandardCharsets.UTF_8);
+            response.setCode(HttpStatus.SC_FORBIDDEN); // 403 Forbidden
+            response.setHeader(HttpHeaders.CONTENT_LENGTH, String.valueOf(responseData.length));
+            ByteArrayEntity entity = new ByteArrayEntity(responseData, ContentType.TEXT_PLAIN);
+            response.setEntity(entity);
+          }
+        };
+    try (FakeServer server = new FakeServer(handler)) {
+      HttpTransport transport = new Apache5HttpTransport();
+      GenericUrl testUrl = new GenericUrl("http://localhost/foo//bar");
+      testUrl.setPort(server.getPort());
+      com.google.api.client.http.HttpRequest getRequest =
+          transport.createRequestFactory().buildGetRequest(testUrl);
+      try {
+        getRequest.execute();
+        Assert.fail();
+      } catch (HttpResponseException ex) {
+        assertEquals("Forbidden", ex.getContent());
+      }
+    }
+  }
+
+  private boolean isWindows() {
+    return System.getProperty("os.name").startsWith("Windows");
+  }
+}
diff --git a/google-http-client-apache-v5/src/test/java/com/google/api/client/http/apache/v5/MockClassicHttpResponse.java b/google-http-client-apache-v5/src/test/java/com/google/api/client/http/apache/v5/MockClassicHttpResponse.java
new file mode 100644
index 00000000..09172174
--- /dev/null
+++ b/google-http-client-apache-v5/src/test/java/com/google/api/client/http/apache/v5/MockClassicHttpResponse.java
@@ -0,0 +1,182 @@
+package com.google.api.client.http.apache.v5;
+
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Locale;
+import java.util.stream.Collectors;
+import org.apache.hc.core5.http.ClassicHttpResponse;
+import org.apache.hc.core5.http.Header;
+import org.apache.hc.core5.http.HttpEntity;
+import org.apache.hc.core5.http.HttpVersion;
+import org.apache.hc.core5.http.ProtocolException;
+import org.apache.hc.core5.http.ProtocolVersion;
+
+public class MockClassicHttpResponse implements ClassicHttpResponse {
+  List<Header> headers = new ArrayList<>();
+  int code = 200;
+
+  @Override
+  public int getCode() {
+    return code;
+  }
+
+  @Override
+  public void setCode(int code) {
+    this.code = code;
+  }
+
+  @Override
+  public String getReasonPhrase() {
+    return null;
+  }
+
+  @Override
+  public void setReasonPhrase(String reason) {}
+
+  @Override
+  public Locale getLocale() {
+    return null;
+  }
+
+  @Override
+  public void setLocale(Locale loc) {}
+
+  @Override
+  public void setVersion(ProtocolVersion version) {}
+
+  @Override
+  public ProtocolVersion getVersion() {
+    return HttpVersion.HTTP_1_1;
+  }
+
+  @Override
+  public void addHeader(Header header) {
+    headers.add(header);
+  }
+
+  @Override
+  public void addHeader(String name, Object value) {
+    addHeader(newHeader(name, value));
+  }
+
+  private Header newHeader(String key, Object value) {
+    return new Header() {
+      @Override
+      public boolean isSensitive() {
+        return false;
+      }
+
+      @Override
+      public String getName() {
+        return key;
+      }
+
+      @Override
+      public String getValue() {
+        return value.toString();
+      }
+    };
+  }
+
+  @Override
+  public void setHeader(Header header) {
+    if (headers.contains(header)) {
+      int index = headers.indexOf(header);
+      headers.set(index, header);
+    } else {
+      addHeader(header);
+    }
+  }
+
+  @Override
+  public void setHeader(String name, Object value) {
+    setHeader(newHeader(name, value));
+  }
+
+  @Override
+  public void setHeaders(Header... headers) {
+    for (Header header : headers) {
+      setHeader(header);
+    }
+  }
+
+  @Override
+  public boolean removeHeader(Header header) {
+    if (headers.contains(header)) {
+      headers.remove(headers.indexOf(header));
+      return true;
+    }
+    return false;
+  }
+
+  @Override
+  public boolean removeHeaders(String name) {
+    int initialSize = headers.size();
+    for (Header header :
+        headers.stream().filter(h -> h.getName() == name).collect(Collectors.toList())) {
+      removeHeader(header);
+    }
+    return headers.size() < initialSize;
+  }
+
+  @Override
+  public boolean containsHeader(String name) {
+    return headers.stream().anyMatch(h -> h.getName() == name);
+  }
+
+  @Override
+  public int countHeaders(String name) {
+    return headers.size();
+  }
+
+  @Override
+  public Header getFirstHeader(String name) {
+    return headers.stream().findFirst().orElse(null);
+  }
+
+  @Override
+  public Header getHeader(String name) throws ProtocolException {
+    return headers.stream().filter(h -> h.getName() == name).findFirst().orElse(null);
+  }
+
+  @Override
+  public Header[] getHeaders() {
+    return headers.toArray(new Header[0]);
+  }
+
+  @Override
+  public Header[] getHeaders(String name) {
+    return headers.stream()
+        .filter(h -> h.getName() == name)
+        .collect(Collectors.toList())
+        .toArray(new Header[0]);
+  }
+
+  @Override
+  public Header getLastHeader(String name) {
+    return headers.isEmpty() ? null : headers.get(headers.size() - 1);
+  }
+
+  @Override
+  public Iterator<Header> headerIterator() {
+    return headers.iterator();
+  }
+
+  @Override
+  public Iterator<Header> headerIterator(String name) {
+    return headers.stream().filter(h -> h.getName() == name).iterator();
+  }
+
+  @Override
+  public void close() throws IOException {}
+
+  @Override
+  public HttpEntity getEntity() {
+    return null;
+  }
+
+  @Override
+  public void setEntity(HttpEntity entity) {}
+}
diff --git a/google-http-client-apache-v5/src/test/java/com/google/api/client/http/apache/v5/MockHttpClient.java b/google-http-client-apache-v5/src/test/java/com/google/api/client/http/apache/v5/MockHttpClient.java
new file mode 100644
index 00000000..8d26096c
--- /dev/null
+++ b/google-http-client-apache-v5/src/test/java/com/google/api/client/http/apache/v5/MockHttpClient.java
@@ -0,0 +1,86 @@
+package com.google.api.client.http.apache.v5;
+
+import com.google.api.client.util.Preconditions;
+import java.io.IOException;
+import org.apache.hc.client5.http.classic.HttpClient;
+import org.apache.hc.core5.http.ClassicHttpRequest;
+import org.apache.hc.core5.http.ClassicHttpResponse;
+import org.apache.hc.core5.http.HttpHost;
+import org.apache.hc.core5.http.HttpResponse;
+import org.apache.hc.core5.http.io.HttpClientResponseHandler;
+import org.apache.hc.core5.http.protocol.HttpContext;
+
+public class MockHttpClient implements HttpClient {
+
+  /** HTTP response code to use. */
+  int responseCode;
+
+  /** Returns the HTTP response code to use. */
+  public final int getResponseCode() {
+    return responseCode;
+  }
+
+  /** Sets the HTTP response code to use. */
+  public MockHttpClient setResponseCode(int responseCode) {
+    Preconditions.checkArgument(responseCode >= 0);
+    this.responseCode = responseCode;
+    return this;
+  }
+
+  @Override
+  public HttpResponse execute(ClassicHttpRequest request) throws IOException {
+    return null;
+  }
+
+  @Override
+  public HttpResponse execute(ClassicHttpRequest request, HttpContext context) throws IOException {
+    return null;
+  }
+
+  @Override
+  public ClassicHttpResponse execute(HttpHost target, ClassicHttpRequest request)
+      throws IOException {
+    return null;
+  }
+
+  @Override
+  public HttpResponse execute(HttpHost target, ClassicHttpRequest request, HttpContext context)
+      throws IOException {
+    return null;
+  }
+
+  @Override
+  public <T> T execute(
+      ClassicHttpRequest request, HttpClientResponseHandler<? extends T> responseHandler)
+      throws IOException {
+    return null;
+  }
+
+  @Override
+  public <T> T execute(
+      ClassicHttpRequest request,
+      HttpContext context,
+      HttpClientResponseHandler<? extends T> responseHandler)
+      throws IOException {
+    return null;
+  }
+
+  @Override
+  public <T> T execute(
+      HttpHost target,
+      ClassicHttpRequest request,
+      HttpClientResponseHandler<? extends T> responseHandler)
+      throws IOException {
+    return null;
+  }
+
+  @Override
+  public <T> T execute(
+      HttpHost target,
+      ClassicHttpRequest request,
+      HttpContext context,
+      HttpClientResponseHandler<? extends T> responseHandler)
+      throws IOException {
+    return null;
+  }
+}