README.md
1# Google Private Catalog Client for Java
2
3Java idiomatic client for [Private Catalog][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-private-catalog</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-private-catalog:released} -->
43
44```xml
45<dependency>
46 <groupId>com.google.cloud</groupId>
47 <artifactId>google-cloud-private-catalog</artifactId>
48 <version>0.19.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-private-catalog:0.19.0'
56```
57
58If you are using SBT, add this to your dependencies:
59
60```Scala
61libraryDependencies += "com.google.cloud" % "google-cloud-private-catalog" % "0.19.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 Private Catalog APIs, and the authenticated principal must have the [IAM role(s)][predefined-iam-roles] required to access GCP resources using the Private Catalog API calls.
72
73## Getting Started
74
75### Prerequisites
76
77You will need a [Google Cloud Platform Console][developer-console] project with the Private Catalog [API enabled][enable-api].
78You will need to [enable billing][enable-billing] to use Google Private Catalog.
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-private-catalog` library. See the [Quickstart](#quickstart) section
86to add `google-cloud-private-catalog` as a dependency in your code.
87
88## About Private Catalog
89
90
91[Private Catalog][product-docs] allows developers and cloud admins to make their solutions discoverable to their internal enterprise users. Cloud admins can manage their solutions and ensure their users are always launching the latest versions.
92
93See the [Private Catalog client library docs][javadocs] to learn how to
94use this Private Catalog 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
107Private Catalog 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/private-catalog/docs
191[javadocs]: https://cloud.google.com/java/docs/reference/google-cloud-private-catalog/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-private-catalog.svg
204[maven-version-link]: https://central.sonatype.com/artifact/com.google.cloud/google-cloud-private-catalog/0.16.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=privatecatalog.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