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