1*55e87721SMatt Gilbride# Google Security Command Center Settings API Client for Java 2*55e87721SMatt Gilbride 3*55e87721SMatt GilbrideJava idiomatic client for [Security Command Center Settings API][product-docs]. 4*55e87721SMatt Gilbride 5*55e87721SMatt Gilbride[![Maven][maven-version-image]][maven-version-link] 6*55e87721SMatt Gilbride![Stability][stability-image] 7*55e87721SMatt Gilbride 8*55e87721SMatt Gilbride- [Product Documentation][product-docs] 9*55e87721SMatt Gilbride- [Client Library Documentation][javadocs] 10*55e87721SMatt Gilbride 11*55e87721SMatt Gilbride> Note: This client is a work-in-progress, and may occasionally 12*55e87721SMatt Gilbride> make backwards-incompatible changes. 13*55e87721SMatt Gilbride 14*55e87721SMatt Gilbride 15*55e87721SMatt Gilbride## Quickstart 16*55e87721SMatt Gilbride 17*55e87721SMatt Gilbride 18*55e87721SMatt GilbrideIf you are using Maven with [BOM][libraries-bom], add this to your pom.xml file: 19*55e87721SMatt Gilbride 20*55e87721SMatt Gilbride```xml 21*55e87721SMatt Gilbride<dependencyManagement> 22*55e87721SMatt Gilbride <dependencies> 23*55e87721SMatt Gilbride <dependency> 24*55e87721SMatt Gilbride <groupId>com.google.cloud</groupId> 25*55e87721SMatt Gilbride <artifactId>libraries-bom</artifactId> 26*55e87721SMatt Gilbride <version>26.11.0</version> 27*55e87721SMatt Gilbride <type>pom</type> 28*55e87721SMatt Gilbride <scope>import</scope> 29*55e87721SMatt Gilbride </dependency> 30*55e87721SMatt Gilbride </dependencies> 31*55e87721SMatt Gilbride</dependencyManagement> 32*55e87721SMatt Gilbride 33*55e87721SMatt Gilbride<dependencies> 34*55e87721SMatt Gilbride <dependency> 35*55e87721SMatt Gilbride <groupId>com.google.cloud</groupId> 36*55e87721SMatt Gilbride <artifactId>google-cloud-securitycenter-settings</artifactId> 37*55e87721SMatt Gilbride </dependency> 38*55e87721SMatt Gilbride``` 39*55e87721SMatt Gilbride 40*55e87721SMatt GilbrideIf you are using Maven without the BOM, add this to your dependencies: 41*55e87721SMatt Gilbride 42*55e87721SMatt Gilbride<!-- {x-version-update-start:google-cloud-securitycenter-settings:released} --> 43*55e87721SMatt Gilbride 44*55e87721SMatt Gilbride```xml 45*55e87721SMatt Gilbride<dependency> 46*55e87721SMatt Gilbride <groupId>com.google.cloud</groupId> 47*55e87721SMatt Gilbride <artifactId>google-cloud-securitycenter-settings</artifactId> 48*55e87721SMatt Gilbride <version>0.20.0</version> 49*55e87721SMatt Gilbride</dependency> 50*55e87721SMatt Gilbride``` 51*55e87721SMatt Gilbride 52*55e87721SMatt GilbrideIf you are using Gradle without BOM, add this to your dependencies: 53*55e87721SMatt Gilbride 54*55e87721SMatt Gilbride```Groovy 55*55e87721SMatt Gilbrideimplementation 'com.google.cloud:google-cloud-securitycenter-settings:0.20.0' 56*55e87721SMatt Gilbride``` 57*55e87721SMatt Gilbride 58*55e87721SMatt GilbrideIf you are using SBT, add this to your dependencies: 59*55e87721SMatt Gilbride 60*55e87721SMatt Gilbride```Scala 61*55e87721SMatt GilbridelibraryDependencies += "com.google.cloud" % "google-cloud-securitycenter-settings" % "0.20.0" 62*55e87721SMatt Gilbride``` 63*55e87721SMatt Gilbride<!-- {x-version-update-end} --> 64*55e87721SMatt Gilbride 65*55e87721SMatt Gilbride## Authentication 66*55e87721SMatt Gilbride 67*55e87721SMatt GilbrideSee the [Authentication][authentication] section in the base directory's README. 68*55e87721SMatt Gilbride 69*55e87721SMatt Gilbride## Authorization 70*55e87721SMatt Gilbride 71*55e87721SMatt GilbrideThe client application making API calls must be granted [authorization scopes][auth-scopes] required for the desired Security Command Center Settings API APIs, and the authenticated principal must have the [IAM role(s)][predefined-iam-roles] required to access GCP resources using the Security Command Center Settings API API calls. 72*55e87721SMatt Gilbride 73*55e87721SMatt Gilbride## Getting Started 74*55e87721SMatt Gilbride 75*55e87721SMatt Gilbride### Prerequisites 76*55e87721SMatt Gilbride 77*55e87721SMatt GilbrideYou will need a [Google Cloud Platform Console][developer-console] project with the Security Command Center Settings API [API enabled][enable-api]. 78*55e87721SMatt Gilbride 79*55e87721SMatt Gilbride[Follow these instructions][create-project] to get your project set up. You will also need to set up the local development environment by 80*55e87721SMatt Gilbride[installing the Google Cloud Command Line Interface][cloud-cli] and running the following commands in command line: 81*55e87721SMatt Gilbride`gcloud auth login` and `gcloud config set project [YOUR PROJECT ID]`. 82*55e87721SMatt Gilbride 83*55e87721SMatt Gilbride### Installation and setup 84*55e87721SMatt Gilbride 85*55e87721SMatt GilbrideYou'll need to obtain the `google-cloud-securitycenter-settings` library. See the [Quickstart](#quickstart) section 86*55e87721SMatt Gilbrideto add `google-cloud-securitycenter-settings` as a dependency in your code. 87*55e87721SMatt Gilbride 88*55e87721SMatt Gilbride## About Security Command Center Settings API 89*55e87721SMatt Gilbride 90*55e87721SMatt Gilbride 91*55e87721SMatt Gilbride[Security Command Center Settings API][product-docs] is the canonical security and data risk database for Google Cloud. Security Command Center enables you to understand your security and data attack surface by providing asset inventory, discovery, search, and management. 92*55e87721SMatt Gilbride 93*55e87721SMatt GilbrideSee the [Security Command Center Settings API client library docs][javadocs] to learn how to 94*55e87721SMatt Gilbrideuse this Security Command Center Settings API Client Library. 95*55e87721SMatt Gilbride 96*55e87721SMatt Gilbride 97*55e87721SMatt Gilbride 98*55e87721SMatt Gilbride 99*55e87721SMatt Gilbride 100*55e87721SMatt Gilbride 101*55e87721SMatt Gilbride## Troubleshooting 102*55e87721SMatt Gilbride 103*55e87721SMatt GilbrideTo get help, follow the instructions in the [shared Troubleshooting document][troubleshooting]. 104*55e87721SMatt Gilbride 105*55e87721SMatt Gilbride## Transport 106*55e87721SMatt Gilbride 107*55e87721SMatt GilbrideSecurity Command Center Settings API uses gRPC for the transport layer. 108*55e87721SMatt Gilbride 109*55e87721SMatt Gilbride## Supported Java Versions 110*55e87721SMatt Gilbride 111*55e87721SMatt GilbrideJava 8 or above is required for using this client. 112*55e87721SMatt Gilbride 113*55e87721SMatt GilbrideGoogle's Java client libraries, 114*55e87721SMatt Gilbride[Google Cloud Client Libraries][cloudlibs] 115*55e87721SMatt Gilbrideand 116*55e87721SMatt Gilbride[Google Cloud API Libraries][apilibs], 117*55e87721SMatt Gilbridefollow the 118*55e87721SMatt Gilbride[Oracle Java SE support roadmap][oracle] 119*55e87721SMatt Gilbride(see the Oracle Java SE Product Releases section). 120*55e87721SMatt Gilbride 121*55e87721SMatt Gilbride### For new development 122*55e87721SMatt Gilbride 123*55e87721SMatt GilbrideIn general, new feature development occurs with support for the lowest Java 124*55e87721SMatt GilbrideLTS version covered by Oracle's Premier Support (which typically lasts 5 years 125*55e87721SMatt Gilbridefrom initial General Availability). If the minimum required JVM for a given 126*55e87721SMatt Gilbridelibrary is changed, it is accompanied by a [semver][semver] major release. 127*55e87721SMatt Gilbride 128*55e87721SMatt GilbrideJava 11 and (in September 2021) Java 17 are the best choices for new 129*55e87721SMatt Gilbridedevelopment. 130*55e87721SMatt Gilbride 131*55e87721SMatt Gilbride### Keeping production systems current 132*55e87721SMatt Gilbride 133*55e87721SMatt GilbrideGoogle tests its client libraries with all current LTS versions covered by 134*55e87721SMatt GilbrideOracle's Extended Support (which typically lasts 8 years from initial 135*55e87721SMatt GilbrideGeneral Availability). 136*55e87721SMatt Gilbride 137*55e87721SMatt Gilbride#### Legacy support 138*55e87721SMatt Gilbride 139*55e87721SMatt GilbrideGoogle's client libraries support legacy versions of Java runtimes with long 140*55e87721SMatt Gilbrideterm stable libraries that don't receive feature updates on a best efforts basis 141*55e87721SMatt Gilbrideas it may not be possible to backport all patches. 142*55e87721SMatt Gilbride 143*55e87721SMatt GilbrideGoogle provides updates on a best efforts basis to apps that continue to use 144*55e87721SMatt GilbrideJava 7, though apps might need to upgrade to current versions of the library 145*55e87721SMatt Gilbridethat supports their JVM. 146*55e87721SMatt Gilbride 147*55e87721SMatt Gilbride#### Where to find specific information 148*55e87721SMatt Gilbride 149*55e87721SMatt GilbrideThe latest versions and the supported Java versions are identified on 150*55e87721SMatt Gilbridethe individual GitHub repository `github.com/GoogleAPIs/java-SERVICENAME` 151*55e87721SMatt Gilbrideand on [google-cloud-java][g-c-j]. 152*55e87721SMatt Gilbride 153*55e87721SMatt Gilbride## Versioning 154*55e87721SMatt Gilbride 155*55e87721SMatt Gilbride 156*55e87721SMatt GilbrideThis library follows [Semantic Versioning](http://semver.org/). 157*55e87721SMatt Gilbride 158*55e87721SMatt Gilbride 159*55e87721SMatt GilbrideIt is currently in major version zero (``0.y.z``), which means that anything may change at any time 160*55e87721SMatt Gilbrideand the public API should not be considered stable. 161*55e87721SMatt Gilbride 162*55e87721SMatt Gilbride 163*55e87721SMatt Gilbride## Contributing 164*55e87721SMatt Gilbride 165*55e87721SMatt Gilbride 166*55e87721SMatt GilbrideContributions to this library are always welcome and highly encouraged. 167*55e87721SMatt Gilbride 168*55e87721SMatt GilbrideSee [CONTRIBUTING][contributing] for more information how to get started. 169*55e87721SMatt Gilbride 170*55e87721SMatt GilbridePlease note that this project is released with a Contributor Code of Conduct. By participating in 171*55e87721SMatt Gilbridethis project you agree to abide by its terms. See [Code of Conduct][code-of-conduct] for more 172*55e87721SMatt Gilbrideinformation. 173*55e87721SMatt Gilbride 174*55e87721SMatt Gilbride 175*55e87721SMatt Gilbride## License 176*55e87721SMatt Gilbride 177*55e87721SMatt GilbrideApache 2.0 - See [LICENSE][license] for more information. 178*55e87721SMatt Gilbride 179*55e87721SMatt Gilbride## CI Status 180*55e87721SMatt Gilbride 181*55e87721SMatt GilbrideJava Version | Status 182*55e87721SMatt Gilbride------------ | ------ 183*55e87721SMatt GilbrideJava 8 | [![Kokoro CI][kokoro-badge-image-2]][kokoro-badge-link-2] 184*55e87721SMatt GilbrideJava 8 OSX | [![Kokoro CI][kokoro-badge-image-3]][kokoro-badge-link-3] 185*55e87721SMatt GilbrideJava 8 Windows | [![Kokoro CI][kokoro-badge-image-4]][kokoro-badge-link-4] 186*55e87721SMatt GilbrideJava 11 | [![Kokoro CI][kokoro-badge-image-5]][kokoro-badge-link-5] 187*55e87721SMatt Gilbride 188*55e87721SMatt GilbrideJava is a registered trademark of Oracle and/or its affiliates. 189*55e87721SMatt Gilbride 190*55e87721SMatt Gilbride[product-docs]: https://cloud.google.com/security-command-center/ 191*55e87721SMatt Gilbride[javadocs]: https://cloud.google.com/java/docs/reference/google-cloud-securitycenter-settings/latest/overview 192*55e87721SMatt Gilbride[kokoro-badge-image-1]: http://storage.googleapis.com/cloud-devrel-public/java/badges/google-cloud-java/java7.svg 193*55e87721SMatt Gilbride[kokoro-badge-link-1]: http://storage.googleapis.com/cloud-devrel-public/java/badges/google-cloud-java/java7.html 194*55e87721SMatt Gilbride[kokoro-badge-image-2]: http://storage.googleapis.com/cloud-devrel-public/java/badges/google-cloud-java/java8.svg 195*55e87721SMatt Gilbride[kokoro-badge-link-2]: http://storage.googleapis.com/cloud-devrel-public/java/badges/google-cloud-java/java8.html 196*55e87721SMatt Gilbride[kokoro-badge-image-3]: http://storage.googleapis.com/cloud-devrel-public/java/badges/google-cloud-java/java8-osx.svg 197*55e87721SMatt Gilbride[kokoro-badge-link-3]: http://storage.googleapis.com/cloud-devrel-public/java/badges/google-cloud-java/java8-osx.html 198*55e87721SMatt Gilbride[kokoro-badge-image-4]: http://storage.googleapis.com/cloud-devrel-public/java/badges/google-cloud-java/java8-win.svg 199*55e87721SMatt Gilbride[kokoro-badge-link-4]: http://storage.googleapis.com/cloud-devrel-public/java/badges/google-cloud-java/java8-win.html 200*55e87721SMatt Gilbride[kokoro-badge-image-5]: http://storage.googleapis.com/cloud-devrel-public/java/badges/google-cloud-java/java11.svg 201*55e87721SMatt Gilbride[kokoro-badge-link-5]: http://storage.googleapis.com/cloud-devrel-public/java/badges/google-cloud-java/java11.html 202*55e87721SMatt Gilbride[stability-image]: https://img.shields.io/badge/stability-preview-yellow 203*55e87721SMatt Gilbride[maven-version-image]: https://img.shields.io/maven-central/v/com.google.cloud/google-cloud-securitycenter-settings.svg 204*55e87721SMatt Gilbride[maven-version-link]: https://central.sonatype.com/artifact/com.google.cloud/google-cloud-securitycenter-settings/0.17.0 205*55e87721SMatt Gilbride[authentication]: https://github.com/googleapis/google-cloud-java#authentication 206*55e87721SMatt Gilbride[auth-scopes]: https://developers.google.com/identity/protocols/oauth2/scopes 207*55e87721SMatt Gilbride[predefined-iam-roles]: https://cloud.google.com/iam/docs/understanding-roles#predefined_roles 208*55e87721SMatt Gilbride[iam-policy]: https://cloud.google.com/iam/docs/overview#cloud-iam-policy 209*55e87721SMatt Gilbride[developer-console]: https://console.developers.google.com/ 210*55e87721SMatt Gilbride[create-project]: https://cloud.google.com/resource-manager/docs/creating-managing-projects 211*55e87721SMatt Gilbride[cloud-cli]: https://cloud.google.com/cli 212*55e87721SMatt Gilbride[troubleshooting]: https://github.com/googleapis/google-cloud-java/blob/main/TROUBLESHOOTING.md 213*55e87721SMatt Gilbride[contributing]: https://github.com/googleapis/google-cloud-java/blob/main/CONTRIBUTING.md 214*55e87721SMatt Gilbride[code-of-conduct]: https://github.com/googleapis/google-cloud-java/blob/main/CODE_OF_CONDUCT.md#contributor-code-of-conduct 215*55e87721SMatt Gilbride[license]: https://github.com/googleapis/google-cloud-java/blob/main/LICENSE 216*55e87721SMatt Gilbride 217*55e87721SMatt Gilbride[enable-api]: https://console.cloud.google.com/flows/enableapi?apiid=securitycenter-settings.googleapis.com 218*55e87721SMatt Gilbride[libraries-bom]: https://github.com/GoogleCloudPlatform/cloud-opensource-java/wiki/The-Google-Cloud-Platform-Libraries-BOM 219*55e87721SMatt Gilbride[shell_img]: https://gstatic.com/cloudssh/images/open-btn.png 220*55e87721SMatt Gilbride 221*55e87721SMatt Gilbride[semver]: https://semver.org/ 222*55e87721SMatt Gilbride[cloudlibs]: https://cloud.google.com/apis/docs/client-libraries-explained 223*55e87721SMatt Gilbride[apilibs]: https://cloud.google.com/apis/docs/client-libraries-explained#google_api_client_libraries 224*55e87721SMatt Gilbride[oracle]: https://www.oracle.com/java/technologies/java-se-support-roadmap.html 225*55e87721SMatt Gilbride[g-c-j]: http://github.com/googleapis/google-cloud-java 226