# chirpstack-api
ChirpStack gRPC API message and service wrappers for Java.
## Install
An artifact is not yet public on Maven Central. You can build your own jar with
```sh
make jar
```
or install the artifact in your local Maven repository `$HOME/.m2` with
```sh
make install
```
## Usage
All messages, services, constants, etc. are auto-generated from the ChirpStack protobuf definitions. The result is that
this package structure matches that of the protobuf definitions.
The protobuf definitions can be found here: https://github.com/chirpstack/chirpstack/tree/master/api/proto
### Example
#### Maven
```xml
io.chirpstack
chirpstack-api
1.0-SNAPSHOT
```
#### Gradle
```gradle
dependencies {
implementation("io.chirpstack:chirpstack-api:1.0-SNAPSHOT")
}
```
#### Example #1: List tenants
```java
import io.chirpstack.api.*;
import io.grpc.ManagedChannel;
import io.grpc.ManagedChannelBuilder;
import io.grpc.Metadata;
import io.grpc.stub.MetadataUtils;
public class ChirpStack {
public static void main(String[] args) {
ManagedChannel channel = ManagedChannelBuilder
.forAddress("localhost", 8080)
.usePlaintext()
.build();
Metadata metadata = new Metadata();
Metadata.Key key = Metadata.Key.of("authorization", Metadata.ASCII_STRING_MARSHALLER);
String token = "Bearer ";
metadata.put(key, token);
TenantServiceGrpc.TenantServiceBlockingStub stub = TenantServiceGrpc
.newBlockingStub(channel)
.withInterceptors(MetadataUtils.newAttachHeadersInterceptor(metadata));
ListTenantsRequest request = ListTenantsRequest.newBuilder()
.setLimit(10)
.build();
ListTenantsResponse response = stub.list(request);
System.out.println("Number of tenants: " + response.getResultCount());
}
}
```