# chirpstack-api ChirpStack gRPC API message and service wrappers for Kotlin. ## 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-kotlin 1.0-SNAPSHOT ``` #### Gradle ```gradle dependencies { implementation("io.chirpstack:chirpstack-api-kotlin:1.0-SNAPSHOT") } ``` #### Example #1: List tenants Note: To make this example work you will also need to add kotlin coroutines as a dependency ```gradle dependencies { implementation("org.jetbrains.kotlinx:kotlinx-coroutines-core:1.6.4") } ``` ```kotlin import io.chirpstack.api.TenantServiceGrpcKt import io.chirpstack.api.listTenantsRequest import io.grpc.ManagedChannelBuilder import io.grpc.Metadata import kotlinx.coroutines.runBlocking fun main() { val channel = ManagedChannelBuilder .forAddress("localhost", 8080) .usePlaintext() .build() val token = "Bearer " val metadata = Metadata() val key = Metadata.Key.of("authorization", Metadata.ASCII_STRING_MARSHALLER) metadata.put(key, token) val stub = TenantServiceGrpcKt.TenantServiceCoroutineStub(channel) val request = listTenantsRequest { limit=10 } val response = runBlocking { stub.list(request, metadata) } println("Number of tenants: ${response.totalCount}") } ```