# Changelog

## [1.3.0](https://github.com/googleapis/google-cloud-java/compare/google-cloud-optimization-v1.2.1-SNAPSHOT...google-cloud-optimization-v1.3.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))
* create release please configuration ([41b97e6](https://github.com/googleapis/google-cloud-java/commit/41b97e6d0d38a54fbabf51a3069bf1473c48f730))


### Bug Fixes

* **deps:** update dependency com.google.api.grpc:grpc-google-cloud-optimization-v1 to v1.1.8 ([#8313](https://github.com/googleapis/google-cloud-java/issues/8313)) ([b9553e9](https://github.com/googleapis/google-cloud-java/commit/b9553e9791973262cfeece00da1a828f07d22433))
* **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))
* **deps:** update dependency com.google.cloud:libraries-bom to v26.1.1 ([#8254](https://github.com/googleapis/google-cloud-java/issues/8254)) ([e4760da](https://github.com/googleapis/google-cloud-java/commit/e4760da4ac8fa6fa91bc82b90b83d0518eca2692))
* 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.2.0](https://github.com/googleapis/google-cloud-java/compare/google-cloud-optimization-v1.1.14...google-cloud-optimization-v1.2.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))
* create release please configuration ([41b97e6](https://github.com/googleapis/google-cloud-java/commit/41b97e6d0d38a54fbabf51a3069bf1473c48f730))


### Bug Fixes

* **deps:** update dependency com.google.api.grpc:grpc-google-cloud-optimization-v1 to v1.1.8 ([#8313](https://github.com/googleapis/google-cloud-java/issues/8313)) ([b9553e9](https://github.com/googleapis/google-cloud-java/commit/b9553e9791973262cfeece00da1a828f07d22433))
* **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))
* **deps:** update dependency com.google.cloud:libraries-bom to v26.1.1 ([#8254](https://github.com/googleapis/google-cloud-java/issues/8254)) ([e4760da](https://github.com/googleapis/google-cloud-java/commit/e4760da4ac8fa6fa91bc82b90b83d0518eca2692))
* 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.1.14](https://github.com/googleapis/java-optimization/compare/v1.1.13...v1.1.14) (2022-10-07)


### Dependencies

* Update dependency com.google.cloud:google-cloud-storage to v2.13.0 ([#128](https://github.com/googleapis/java-optimization/issues/128)) ([cbe306a](https://github.com/googleapis/java-optimization/commit/cbe306aafa93d1ae274a04a1b83f601e82256a7b))

## [1.1.13](https://github.com/googleapis/java-optimization/compare/v1.1.12...v1.1.13) (2022-10-05)


### Bug Fixes

* update protobuf to v3.21.7 ([5a869dc](https://github.com/googleapis/java-optimization/commit/5a869dcf51284aa94d6202ef05db5f0c4059e20e))

## [1.1.12](https://github.com/googleapis/java-optimization/compare/v1.1.11...v1.1.12) (2022-10-03)


### Dependencies

* Update dependency com.google.cloud:google-cloud-shared-dependencies to v3.0.4 ([#124](https://github.com/googleapis/java-optimization/issues/124)) ([6c0ea52](https://github.com/googleapis/java-optimization/commit/6c0ea526309e984e91c639ed319f66aadd0fa3c3))

## [1.1.11](https://github.com/googleapis/java-optimization/compare/v1.1.10...v1.1.11) (2022-09-20)


### Dependencies

* Update dependency com.google.cloud:google-cloud-storage to v2.12.0 ([#116](https://github.com/googleapis/java-optimization/issues/116)) ([8d5a9c8](https://github.com/googleapis/java-optimization/commit/8d5a9c827c5e6c3365daff6c3b129668ce016e1e))

## [1.1.10](https://github.com/googleapis/java-optimization/compare/v1.1.9...v1.1.10) (2022-09-15)


### Dependencies

* Update dependency com.google.cloud:google-cloud-shared-dependencies to v3.0.3 ([#112](https://github.com/googleapis/java-optimization/issues/112)) ([a1aa7b1](https://github.com/googleapis/java-optimization/commit/a1aa7b129b99eb540590952898a6840dead0219e))

## [1.1.9](https://github.com/googleapis/java-optimization/compare/v1.1.8...v1.1.9) (2022-09-09)


### Dependencies

* Update dependency com.google.cloud:google-cloud-shared-dependencies to v3.0.2 ([#107](https://github.com/googleapis/java-optimization/issues/107)) ([343d34d](https://github.com/googleapis/java-optimization/commit/343d34d54baa6e142b4e1baade10ead1d67b4922))

## [1.1.8](https://github.com/googleapis/java-optimization/compare/v1.1.7...v1.1.8) (2022-09-06)


### Dependencies

* Update dependency com.google.cloud ([4282317](https://github.com/googleapis/java-optimization/commit/4282317cd31b35a0ebc725b79d3b9266ae3baa9f))

## [1.1.7](https://github.com/googleapis/java-optimization/compare/v1.1.6...v1.1.7) (2022-08-06)


### Documentation

* **owlbot-java:** explaining why not using formatter in pom.xml ([#1511](https://github.com/googleapis/java-optimization/issues/1511)) ([#77](https://github.com/googleapis/java-optimization/issues/77)) ([886de05](https://github.com/googleapis/java-optimization/commit/886de05075db9a308b1b09e29de5c694cce56934)), closes [#1502](https://github.com/googleapis/java-optimization/issues/1502)

## [1.1.6](https://github.com/googleapis/java-optimization/compare/v1.1.5...v1.1.6) (2022-08-05)


### Dependencies

* update dependency com.google.cloud:google-cloud-storage to v2.11.2 ([#90](https://github.com/googleapis/java-optimization/issues/90)) ([15659be](https://github.com/googleapis/java-optimization/commit/15659be01c4d97a5080e0a67d2cf59e358c35224))

## [1.1.5](https://github.com/googleapis/java-optimization/compare/v1.1.4...v1.1.5) (2022-08-04)


### Dependencies

* update dependency com.google.cloud:google-cloud-storage to v2.11.1 ([#86](https://github.com/googleapis/java-optimization/issues/86)) ([2474353](https://github.com/googleapis/java-optimization/commit/24743539405212de7c77ff3e0b825c4403554445))

## [1.1.4](https://github.com/googleapis/java-optimization/compare/v1.1.3...v1.1.4) (2022-08-04)


### Dependencies

* update dependency com.google.cloud:google-cloud-storage to v2.11.0 ([#82](https://github.com/googleapis/java-optimization/issues/82)) ([5b6af42](https://github.com/googleapis/java-optimization/commit/5b6af42f0d57e332059e8d2a60d1e6912b38d7d0))

## [1.1.3](https://github.com/googleapis/java-optimization/compare/v1.1.2...v1.1.3) (2022-08-02)


### Dependencies

* update dependency com.google.cloud:google-cloud-shared-dependencies to v3.0.1 ([#78](https://github.com/googleapis/java-optimization/issues/78)) ([60f7383](https://github.com/googleapis/java-optimization/commit/60f738324175aa24a483803edee4d10b74d617e4))
* update dependency com.google.cloud:google-cloud-storage to v2.10.0 ([#76](https://github.com/googleapis/java-optimization/issues/76)) ([4eec22e](https://github.com/googleapis/java-optimization/commit/4eec22ebd5122057bee1a03a89593c32b6bf9225))

## [1.1.2](https://github.com/googleapis/java-optimization/compare/v1.1.1...v1.1.2) (2022-07-30)


### Dependencies

* update dependency com.google.cloud:google-cloud-shared-dependencies to v3 ([#71](https://github.com/googleapis/java-optimization/issues/71)) ([4193a5d](https://github.com/googleapis/java-optimization/commit/4193a5d7cfd0213b3568bcfa2e3e885904c13dcf))

## [1.1.1](https://github.com/googleapis/java-optimization/compare/v1.1.0...v1.1.1) (2022-07-13)


### Bug Fixes

* enable longpaths support for windows test ([#1485](https://github.com/googleapis/java-optimization/issues/1485)) ([#65](https://github.com/googleapis/java-optimization/issues/65)) ([ddc12cc](https://github.com/googleapis/java-optimization/commit/ddc12cc45b398828160528e1833201bb3af05649))

## [1.1.0](https://github.com/googleapis/java-optimization/compare/v1.0.0...v1.1.0) (2022-07-01)


### Features

* Enable REST transport for most of Java and Go clients ([#54](https://github.com/googleapis/java-optimization/issues/54)) ([e9284c1](https://github.com/googleapis/java-optimization/commit/e9284c1bd63cce756bda321edb3b2e0f9551efae))


### Bug Fixes

* update gapic-generator-java with mock service generation fixes ([#56](https://github.com/googleapis/java-optimization/issues/56)) ([fa19046](https://github.com/googleapis/java-optimization/commit/fa1904610fe7a42131e6802e126eab131b674846))


### Dependencies

* update dependency com.google.cloud:google-cloud-shared-dependencies to v2.13.0 ([#53](https://github.com/googleapis/java-optimization/issues/53)) ([9d960a3](https://github.com/googleapis/java-optimization/commit/9d960a304dd3bdcf0c11bce0dbf8d8f9efd30f4d))
* update dependency com.google.cloud:google-cloud-storage to v2.7.0 ([#49](https://github.com/googleapis/java-optimization/issues/49)) ([a6f9b2c](https://github.com/googleapis/java-optimization/commit/a6f9b2c34d9d2aca9ecc5f17857be55d2b74f11d))

## [1.0.0](https://github.com/googleapis/java-optimization/compare/v0.1.2...v1.0.0) (2022-05-19)


### Features

* add build scripts for native image testing in Java 17 ([#1440](https://github.com/googleapis/java-optimization/issues/1440)) ([#45](https://github.com/googleapis/java-optimization/issues/45)) ([5c08825](https://github.com/googleapis/java-optimization/commit/5c088252f9c096ac3ef82134a5d323d9abc252cb))
* promote to GA ([#38](https://github.com/googleapis/java-optimization/issues/38)) ([1b140c5](https://github.com/googleapis/java-optimization/commit/1b140c53cb296a817eba2421112379191b4539f8))


### Dependencies

* update dependency com.google.cloud:google-cloud-shared-dependencies to v2.12.0 ([#44](https://github.com/googleapis/java-optimization/issues/44)) ([04c9c02](https://github.com/googleapis/java-optimization/commit/04c9c0274eee2533a398e526665479f4f0313b3f))

### [0.1.2](https://github.com/googleapis/java-optimization/compare/v0.1.1...v0.1.2) (2022-04-18)


### Documentation

* add a code snippet for the sync api ([#24](https://github.com/googleapis/java-optimization/issues/24)) ([4dc1dd8](https://github.com/googleapis/java-optimization/commit/4dc1dd8072e41823751a01904c56cf8a0dc41978))
* add async api code snippet ([#25](https://github.com/googleapis/java-optimization/issues/25)) ([fb23c17](https://github.com/googleapis/java-optimization/commit/fb23c17de88919609cff8e1e20d2a57ddd120d05))
* add get operation code snippet ([#28](https://github.com/googleapis/java-optimization/issues/28)) ([9f23fe2](https://github.com/googleapis/java-optimization/commit/9f23fe2b38291764c95909a8fa6e65ef4f7d8711))


### Dependencies

* update dependency com.google.cloud:google-cloud-shared-dependencies to v2.10.0 ([#29](https://github.com/googleapis/java-optimization/issues/29)) ([4db5464](https://github.com/googleapis/java-optimization/commit/4db5464b2d11f45d568fd598b318f24240d2e61d))
* update dependency com.google.cloud:google-cloud-storage to v2.6.1 ([#30](https://github.com/googleapis/java-optimization/issues/30)) ([faf4a15](https://github.com/googleapis/java-optimization/commit/faf4a156ee95fce53c29c860d120079089329236))

### [0.1.1](https://github.com/googleapis/java-optimization/compare/v0.1.0...v0.1.1) (2022-03-29)


### Dependencies

* update dependency com.google.cloud:google-cloud-shared-dependencies to v2.9.0 ([#17](https://github.com/googleapis/java-optimization/issues/17)) ([04aeb98](https://github.com/googleapis/java-optimization/commit/04aeb98e0cb65caa4639632787edd8cc4d7ec78b))

## 0.1.0 (2022-03-25)


### Features

* initial generation ([12f2061](https://github.com/googleapis/java-optimization/commit/12f2061cfa697259544372e2fffe042477c31bab))
