# Changelog

## [1.5.0](https://github.com/googleapis/google-cloud-java/compare/google-cloud-debugger-client-v1.4.1-SNAPSHOT...google-cloud-debugger-client-v1.5.0) (2022-10-24)


### Features

* [analyticsdata] add `subject_to_thresholding` field to `ResponseMetadata` type ([#8545](https://github.com/googleapis/google-cloud-java/issues/8545)) ([8fdc6c1](https://github.com/googleapis/google-cloud-java/commit/8fdc6c1f10f88f30f4d1407579d645f75366b4cf))
* add `tokens_per_project_per_hour` field to `PropertyQuota` type ([8fdc6c1](https://github.com/googleapis/google-cloud-java/commit/8fdc6c1f10f88f30f4d1407579d645f75366b4cf))


### Bug Fixes

* **deps:** update dependency com.google.cloud:google-cloud-shared-dependencies to v3.0.2 ([#8325](https://github.com/googleapis/google-cloud-java/issues/8325)) ([01f492b](https://github.com/googleapis/google-cloud-java/commit/01f492be424acdb90edb23ba66656aeff7cf39eb))
* **deps:** update dependency com.google.cloud:google-cloud-shared-dependencies to v3.0.4 ([#8528](https://github.com/googleapis/google-cloud-java/issues/8528)) ([bd36199](https://github.com/googleapis/google-cloud-java/commit/bd361998ac4eb7c78eef3b3eac39aef31a0cf44e))
* owl-bot-staging should not be commited ([#8337](https://github.com/googleapis/google-cloud-java/issues/8337)) ([c9bb4a9](https://github.com/googleapis/google-cloud-java/commit/c9bb4a97aa19032b78c86c951fe9920f24ac4eec))


### Dependencies

* reverting renovate bot pull requests ([#8417](https://github.com/googleapis/google-cloud-java/issues/8417)) ([8f0c60b](https://github.com/googleapis/google-cloud-java/commit/8f0c60bde446acccc665eb7894723632eefc3503))

## [1.4.0](https://github.com/googleapis/google-cloud-java/compare/google-cloud-debugger-client-v1.3.7...google-cloud-debugger-client-v1.4.0) (2022-10-17)


### Features

* [analyticsdata] add `subject_to_thresholding` field to `ResponseMetadata` type ([#8545](https://github.com/googleapis/google-cloud-java/issues/8545)) ([8fdc6c1](https://github.com/googleapis/google-cloud-java/commit/8fdc6c1f10f88f30f4d1407579d645f75366b4cf))
* add `tokens_per_project_per_hour` field to `PropertyQuota` type ([8fdc6c1](https://github.com/googleapis/google-cloud-java/commit/8fdc6c1f10f88f30f4d1407579d645f75366b4cf))


### Bug Fixes

* **deps:** update dependency com.google.cloud:google-cloud-shared-dependencies to v3.0.2 ([#8325](https://github.com/googleapis/google-cloud-java/issues/8325)) ([01f492b](https://github.com/googleapis/google-cloud-java/commit/01f492be424acdb90edb23ba66656aeff7cf39eb))
* **deps:** update dependency com.google.cloud:google-cloud-shared-dependencies to v3.0.4 ([#8528](https://github.com/googleapis/google-cloud-java/issues/8528)) ([bd36199](https://github.com/googleapis/google-cloud-java/commit/bd361998ac4eb7c78eef3b3eac39aef31a0cf44e))
* owl-bot-staging should not be commited ([#8337](https://github.com/googleapis/google-cloud-java/issues/8337)) ([c9bb4a9](https://github.com/googleapis/google-cloud-java/commit/c9bb4a97aa19032b78c86c951fe9920f24ac4eec))


### Dependencies

* reverting renovate bot pull requests ([#8417](https://github.com/googleapis/google-cloud-java/issues/8417)) ([8f0c60b](https://github.com/googleapis/google-cloud-java/commit/8f0c60bde446acccc665eb7894723632eefc3503))

## [1.3.7](https://github.com/googleapis/java-debugger-client/compare/v1.3.6...v1.3.7) (2022-10-05)


### Bug Fixes

* update protobuf to v3.21.7 ([f0338ef](https://github.com/googleapis/java-debugger-client/commit/f0338ef58457a0f97250fefcfe3fd39b50419422))

## [1.3.6](https://github.com/googleapis/java-debugger-client/compare/v1.3.5...v1.3.6) (2022-10-03)


### Dependencies

* Update dependency com.google.cloud:google-cloud-shared-dependencies to v3.0.4 ([#261](https://github.com/googleapis/java-debugger-client/issues/261)) ([ab96862](https://github.com/googleapis/java-debugger-client/commit/ab96862d08551a8e4efd6b97f305aaa860549b87))

## [1.3.5](https://github.com/googleapis/java-debugger-client/compare/v1.3.4...v1.3.5) (2022-09-28)


### Dependencies

* Update dependency cachetools to v5 ([#254](https://github.com/googleapis/java-debugger-client/issues/254)) ([13b17a8](https://github.com/googleapis/java-debugger-client/commit/13b17a88360028e3ac7a192d5f262397ad69a5f8))
* Update dependency certifi to v2022.9.24 ([#234](https://github.com/googleapis/java-debugger-client/issues/234)) ([c79923a](https://github.com/googleapis/java-debugger-client/commit/c79923ac23872fc4a63212cd64ffd3ac72b90468))
* Update dependency charset-normalizer to v2.1.1 ([#238](https://github.com/googleapis/java-debugger-client/issues/238)) ([e5076ca](https://github.com/googleapis/java-debugger-client/commit/e5076cac52c995fe9171c052237871c4e0e4d657))
* Update dependency click to v8.1.3 ([#239](https://github.com/googleapis/java-debugger-client/issues/239)) ([9829cf9](https://github.com/googleapis/java-debugger-client/commit/9829cf974859ea4decad1ffac33af16688a622ce))
* Update dependency gcp-releasetool to v1.8.8 ([#235](https://github.com/googleapis/java-debugger-client/issues/235)) ([511021e](https://github.com/googleapis/java-debugger-client/commit/511021efb279ffa3238dd6ffa201c82826c802f3))
* Update dependency google-api-core to v2.10.1 ([#240](https://github.com/googleapis/java-debugger-client/issues/240)) ([e67bc85](https://github.com/googleapis/java-debugger-client/commit/e67bc854f7b7cf478eac00cdddf0ad8b5ab591cd))
* Update dependency google-auth to v2.12.0 ([#241](https://github.com/googleapis/java-debugger-client/issues/241)) ([19b172e](https://github.com/googleapis/java-debugger-client/commit/19b172e08b67b09228e45311577bca1ac9235dd5))
* Update dependency google-cloud-core to v2.3.2 ([#236](https://github.com/googleapis/java-debugger-client/issues/236)) ([5856ede](https://github.com/googleapis/java-debugger-client/commit/5856ededbbdf282c4a5447a811ebfc82590e087c))
* Update dependency google-cloud-storage to v2.5.0 ([#242](https://github.com/googleapis/java-debugger-client/issues/242)) ([5b8feb5](https://github.com/googleapis/java-debugger-client/commit/5b8feb547e7333fb3954352e35c7618d8f6a4707))
* Update dependency google-crc32c to v1.5.0 ([#243](https://github.com/googleapis/java-debugger-client/issues/243)) ([d7c8d76](https://github.com/googleapis/java-debugger-client/commit/d7c8d76a41904fbbc953f14ca3124227ba7d0c6f))
* Update dependency googleapis-common-protos to v1.56.4 ([#237](https://github.com/googleapis/java-debugger-client/issues/237)) ([b85431c](https://github.com/googleapis/java-debugger-client/commit/b85431cceac7ffa36facfe863f6e31fd5746dde4))
* Update dependency importlib-metadata to v4.12.0 ([#245](https://github.com/googleapis/java-debugger-client/issues/245)) ([b71c4a5](https://github.com/googleapis/java-debugger-client/commit/b71c4a5a4db8d2d3357d53ac4d78095073739b77))
* Update dependency jeepney to v0.8.0 ([#246](https://github.com/googleapis/java-debugger-client/issues/246)) ([5919265](https://github.com/googleapis/java-debugger-client/commit/5919265db60c26569308784d6ae7068008932edb))
* Update dependency jinja2 to v3.1.2 ([#247](https://github.com/googleapis/java-debugger-client/issues/247)) ([b4c7948](https://github.com/googleapis/java-debugger-client/commit/b4c7948f8f5009e151d15e43aa900d6dbe6c22de))
* Update dependency keyring to v23.9.3 ([#248](https://github.com/googleapis/java-debugger-client/issues/248)) ([0bad1db](https://github.com/googleapis/java-debugger-client/commit/0bad1db18b8ee91f38bf9c54a257b01791b11296))
* Update dependency markupsafe to v2.1.1 ([#244](https://github.com/googleapis/java-debugger-client/issues/244)) ([9f8820c](https://github.com/googleapis/java-debugger-client/commit/9f8820c54b6af2e5185da74af24404e3fcad590e))
* Update dependency protobuf to v3.20.2 ([#249](https://github.com/googleapis/java-debugger-client/issues/249)) ([1e351ee](https://github.com/googleapis/java-debugger-client/commit/1e351eea73ce89df8f5d6ba75a5ba7a18ea8bd1d))
* Update dependency protobuf to v4 ([#255](https://github.com/googleapis/java-debugger-client/issues/255)) ([62b79d2](https://github.com/googleapis/java-debugger-client/commit/62b79d2edcb07a4fa8c15e0d655ab02c4f33cfde))
* Update dependency pyjwt to v2.5.0 ([#250](https://github.com/googleapis/java-debugger-client/issues/250)) ([ab2643f](https://github.com/googleapis/java-debugger-client/commit/ab2643f1236f93a29c170ee6144dcae82cc79a9b))
* Update dependency requests to v2.28.1 ([#251](https://github.com/googleapis/java-debugger-client/issues/251)) ([dc14397](https://github.com/googleapis/java-debugger-client/commit/dc14397386b8648967bc294a7293798ec013cec8))
* Update dependency typing-extensions to v4.3.0 ([#252](https://github.com/googleapis/java-debugger-client/issues/252)) ([3251c32](https://github.com/googleapis/java-debugger-client/commit/3251c32a5396a476bd277d3c24f7e898a0cad75a))
* Update dependency zipp to v3.8.1 ([#253](https://github.com/googleapis/java-debugger-client/issues/253)) ([a85ab1e](https://github.com/googleapis/java-debugger-client/commit/a85ab1e84cd690c58c8660a36abd80005d256529))

## [1.3.4](https://github.com/googleapis/java-debugger-client/compare/v1.3.3...v1.3.4) (2022-09-15)


### Dependencies

* Update dependency com.google.cloud:google-cloud-shared-dependencies to v3.0.3 ([#228](https://github.com/googleapis/java-debugger-client/issues/228)) ([2b610c2](https://github.com/googleapis/java-debugger-client/commit/2b610c2e016b23de6294cec797e571e802af0965))

## [1.3.3](https://github.com/googleapis/java-debugger-client/compare/v1.3.2...v1.3.3) (2022-09-09)


### Dependencies

* Update dependency com.google.cloud:google-cloud-shared-dependencies to v3.0.2 ([#223](https://github.com/googleapis/java-debugger-client/issues/223)) ([528eebf](https://github.com/googleapis/java-debugger-client/commit/528eebf4e8eeccb83a2f1421ee2548bdf72edcb6))

## [1.3.2](https://github.com/googleapis/java-debugger-client/compare/v1.3.1...v1.3.2) (2022-08-09)


### Dependencies

* update dependency com.google.cloud:google-cloud-shared-dependencies to v3 ([#213](https://github.com/googleapis/java-debugger-client/issues/213)) ([5d51a5f](https://github.com/googleapis/java-debugger-client/commit/5d51a5f3aa75c2b5c9fd7de4dcae51481e221057))

## [1.3.1](https://github.com/googleapis/java-debugger-client/compare/v1.3.0...v1.3.1) (2022-07-13)


### Bug Fixes

* enable longpaths support for windows test ([#1485](https://github.com/googleapis/java-debugger-client/issues/1485)) ([#207](https://github.com/googleapis/java-debugger-client/issues/207)) ([fba5b55](https://github.com/googleapis/java-debugger-client/commit/fba5b55360670bddc871060e9d3e79dd8552787d))

## [1.3.0](https://github.com/googleapis/java-debugger-client/compare/v1.2.1...v1.3.0) (2022-07-01)


### Features

* Enable REST transport for most of Java and Go clients ([#190](https://github.com/googleapis/java-debugger-client/issues/190)) ([1fa3c0f](https://github.com/googleapis/java-debugger-client/commit/1fa3c0f403b7ead8ec547855947d368b2491f62e))

## [1.2.1](https://github.com/googleapis/java-debugger-client/compare/v1.2.0...v1.2.1) (2022-06-23)


### Dependencies

* update dependency com.google.cloud:google-cloud-shared-dependencies to v2.13.0 ([#195](https://github.com/googleapis/java-debugger-client/issues/195)) ([2e5957b](https://github.com/googleapis/java-debugger-client/commit/2e5957b49395900103191392b068e5574aa22034))

## [1.2.0](https://github.com/googleapis/java-debugger-client/compare/v1.1.11...v1.2.0) (2022-05-24)


### Features

* add build scripts for native image testing in Java 17 ([#1440](https://github.com/googleapis/java-debugger-client/issues/1440)) ([#189](https://github.com/googleapis/java-debugger-client/issues/189)) ([cf76cab](https://github.com/googleapis/java-debugger-client/commit/cf76cab04b4bcf4b2706a3f15a3c171abe310015))


### Dependencies

* update dependency com.google.cloud:google-cloud-shared-dependencies to v2.12.0 ([#188](https://github.com/googleapis/java-debugger-client/issues/188)) ([6b27f29](https://github.com/googleapis/java-debugger-client/commit/6b27f29cde5594c3a7b4d6ee11aa7f12a1e8e041))

### [1.1.11](https://github.com/googleapis/java-debugger-client/compare/v1.1.10...v1.1.11) (2022-04-15)


### Dependencies

* update dependency com.google.cloud:google-cloud-shared-dependencies to v2.10.0 ([#175](https://github.com/googleapis/java-debugger-client/issues/175)) ([a8638d8](https://github.com/googleapis/java-debugger-client/commit/a8638d8509aa3b5c876d3776afca46ed8e150947))

### [1.1.10](https://github.com/googleapis/java-debugger-client/compare/v1.1.9...v1.1.10) (2022-03-29)


### Dependencies

* update dependency com.google.cloud:google-cloud-shared-dependencies to v2.9.0 ([#167](https://github.com/googleapis/java-debugger-client/issues/167)) ([b11fcca](https://github.com/googleapis/java-debugger-client/commit/b11fcca0070a8dc7822a3f799f892b78e11fbc15))

### [1.1.9](https://github.com/googleapis/java-debugger-client/compare/v1.1.8...v1.1.9) (2022-03-22)


### Dependencies

* update actions/checkout action to v3 ([#154](https://github.com/googleapis/java-debugger-client/issues/154)) ([329dd01](https://github.com/googleapis/java-debugger-client/commit/329dd01874f16ecf3512e81f9c2c178faea4f28f))

### [1.1.8](https://github.com/googleapis/java-debugger-client/compare/v1.1.7...v1.1.8) (2022-03-02)


### Dependencies

* update dependency com.google.cloud:google-cloud-shared-dependencies to v2.8.0 ([#156](https://github.com/googleapis/java-debugger-client/issues/156)) ([fc1e1c7](https://github.com/googleapis/java-debugger-client/commit/fc1e1c719a2dcb7b26b28369cea51804aec5f8d2))

### [1.1.7](https://github.com/googleapis/java-debugger-client/compare/v1.1.6...v1.1.7) (2022-02-11)


### Dependencies

* update actions/github-script action to v6 ([#143](https://github.com/googleapis/java-debugger-client/issues/143)) ([066cbef](https://github.com/googleapis/java-debugger-client/commit/066cbef5cba474ced9c214b02d83ca77ab96b046))

### [1.1.6](https://github.com/googleapis/java-debugger-client/compare/v1.1.5...v1.1.6) (2022-02-03)


### Dependencies

* **java:** update actions/github-script action to v5 ([#1339](https://github.com/googleapis/java-debugger-client/issues/1339)) ([#130](https://github.com/googleapis/java-debugger-client/issues/130)) ([b14dcf9](https://github.com/googleapis/java-debugger-client/commit/b14dcf9fc44df07bd4a8c7127926cb326fd7c887))
* update dependency com.google.cloud:google-cloud-shared-dependencies to v2.7.0 ([#133](https://github.com/googleapis/java-debugger-client/issues/133)) ([c0d3c77](https://github.com/googleapis/java-debugger-client/commit/c0d3c772144fd5566408480c4dd652f254b879f1))

### [1.1.5](https://www.github.com/googleapis/java-debugger-client/compare/v1.1.4...v1.1.5) (2022-01-07)


### Bug Fixes

* **java:** add -ntp flag to native image testing command ([#1299](https://www.github.com/googleapis/java-debugger-client/issues/1299)) ([#111](https://www.github.com/googleapis/java-debugger-client/issues/111)) ([4b6b952](https://www.github.com/googleapis/java-debugger-client/commit/4b6b952bbc0f7f2fd8ee6ec4b6f4b89ef7b2ab7f))


### Dependencies

* update dependency com.google.cloud:google-cloud-shared-dependencies to v2.6.0 ([#117](https://www.github.com/googleapis/java-debugger-client/issues/117)) ([a555aaa](https://www.github.com/googleapis/java-debugger-client/commit/a555aaaf4192cadd311ba3c3b0a8a1147d284f82))

### [1.1.4](https://www.github.com/googleapis/java-debugger-client/compare/v1.1.3...v1.1.4) (2021-12-03)


### Bug Fixes

* **java:** java 17 dependency arguments ([#1266](https://www.github.com/googleapis/java-debugger-client/issues/1266)) ([#92](https://www.github.com/googleapis/java-debugger-client/issues/92)) ([94d7604](https://www.github.com/googleapis/java-debugger-client/commit/94d76042c50290d7079175734c61d0a5f731bd3e))


### Dependencies

* update dependency com.google.cloud:google-cloud-shared-dependencies to v2.5.0 ([#103](https://www.github.com/googleapis/java-debugger-client/issues/103)) ([4379f2e](https://www.github.com/googleapis/java-debugger-client/commit/4379f2e059944132b06b61d8491a5e7395a12fad))
* update dependency com.google.cloud:google-cloud-shared-dependencies to v2.5.1 ([#108](https://www.github.com/googleapis/java-debugger-client/issues/108)) ([67c0678](https://www.github.com/googleapis/java-debugger-client/commit/67c06789204ebfe0987273ef9671401e89d7e69d))

### [1.1.3](https://www.github.com/googleapis/java-debugger-client/compare/v1.1.2...v1.1.3) (2021-10-19)


### Dependencies

* update dependency com.google.cloud:google-cloud-shared-dependencies to v2.4.0 ([#87](https://www.github.com/googleapis/java-debugger-client/issues/87)) ([d9b92e8](https://www.github.com/googleapis/java-debugger-client/commit/d9b92e865a0d5f255b787775f5d5f33074221d0d))

### [1.1.2](https://www.github.com/googleapis/java-debugger-client/compare/v1.1.1...v1.1.2) (2021-09-22)


### Dependencies

* update dependency com.google.cloud:google-cloud-shared-dependencies to v2.3.0 ([#73](https://www.github.com/googleapis/java-debugger-client/issues/73)) ([b2ea9bd](https://www.github.com/googleapis/java-debugger-client/commit/b2ea9bde02bcdd9add20efd089640eea4055f296))

### [1.1.1](https://www.github.com/googleapis/java-debugger-client/compare/v1.1.0...v1.1.1) (2021-09-14)


### Dependencies

* update dependency com.google.cloud:google-cloud-shared-dependencies to v2.2.1 ([#66](https://www.github.com/googleapis/java-debugger-client/issues/66)) ([407b434](https://www.github.com/googleapis/java-debugger-client/commit/407b43416ec505aa8675ff9d092c6394f08982c5))

## [1.1.0](https://www.github.com/googleapis/java-debugger-client/compare/v1.0.2...v1.1.0) (2021-09-02)


### Features

* Remove use of deprecated gradle command in java README ([#1196](https://www.github.com/googleapis/java-debugger-client/issues/1196)) ([#53](https://www.github.com/googleapis/java-debugger-client/issues/53)) ([a2f7bf8](https://www.github.com/googleapis/java-debugger-client/commit/a2f7bf8d39d9280b495793c37df4db6eee081355))


### Dependencies

* update dependency com.google.cloud:google-cloud-shared-dependencies to v2.2.0 ([#56](https://www.github.com/googleapis/java-debugger-client/issues/56)) ([b439309](https://www.github.com/googleapis/java-debugger-client/commit/b4393096b900d86d662bf09007c1f4a1ebbacbe0))

### [1.0.2](https://www.github.com/googleapis/java-debugger-client/compare/v1.0.1...v1.0.2) (2021-08-23)


### Dependencies

* update dependency com.google.cloud:google-cloud-shared-dependencies to v2.1.0 ([#47](https://www.github.com/googleapis/java-debugger-client/issues/47)) ([95fef84](https://www.github.com/googleapis/java-debugger-client/commit/95fef84e0fe9e4c4dd89bb2773a31bd49cc8d257))

### [1.0.1](https://www.github.com/googleapis/java-debugger-client/compare/v1.0.0...v1.0.1) (2021-08-12)


### Dependencies

* update dependency com.google.cloud:google-cloud-shared-dependencies to v2.0.1 ([#41](https://www.github.com/googleapis/java-debugger-client/issues/41)) ([6bae34e](https://www.github.com/googleapis/java-debugger-client/commit/6bae34e00b8f1386dd19117eaec0e35e71ad58bd))

## [1.0.0](https://www.github.com/googleapis/java-debugger-client/compare/v0.1.1...v1.0.0) (2021-08-09)


### ⚠ BREAKING CHANGES

* release gapic-generator-java v2.0.0 (#34)

### Features

* promote to 1.0.0 ([#38](https://www.github.com/googleapis/java-debugger-client/issues/38)) ([bad8c52](https://www.github.com/googleapis/java-debugger-client/commit/bad8c525e386ed835114ed1a8ab51307c4f18568))
* release gapic-generator-java v2.0.0 ([#34](https://www.github.com/googleapis/java-debugger-client/issues/34)) ([d1404b2](https://www.github.com/googleapis/java-debugger-client/commit/d1404b2cba66ea852e2f6366ec360c444491276b))


### Bug Fixes

* owlbot post-processor should generate README ([#1154](https://www.github.com/googleapis/java-debugger-client/issues/1154)) ([#20](https://www.github.com/googleapis/java-debugger-client/issues/20)) ([2fccf6f](https://www.github.com/googleapis/java-debugger-client/commit/2fccf6fbc8feb5ed893d3937bd3d4267b1c8d4ae)), closes [#1146](https://www.github.com/googleapis/java-debugger-client/issues/1146) [#1147](https://www.github.com/googleapis/java-debugger-client/issues/1147)


### Dependencies

* update dependency com.google.cloud:google-cloud-shared-dependencies to v2 ([#35](https://www.github.com/googleapis/java-debugger-client/issues/35)) ([865c4a8](https://www.github.com/googleapis/java-debugger-client/commit/865c4a8b3548238537ca37f42be7e82443bac02f))

### [0.1.1](https://www.github.com/googleapis/java-debugger-client/compare/v0.1.0...v0.1.1) (2021-07-01)


### Dependencies

* update dependency com.google.cloud:google-cloud-shared-dependencies to v1.4.0 ([#15](https://www.github.com/googleapis/java-debugger-client/issues/15)) ([329d1d1](https://www.github.com/googleapis/java-debugger-client/commit/329d1d1cdc8421da8bc576a3fe77e9c8a09a3e1b))

## 0.1.0 (2021-06-24)


### Features

* initial generation ([4ff9303](https://www.github.com/googleapis/java-debugger-client/commit/4ff9303f2b7957dbf5e583389370ff51c8154ab9))
