https://github.com/ist-dsi/scala-keystone-client
A pure functional Scala client for Openstack Keystone implemented using Http4s client.
https://github.com/ist-dsi/scala-keystone-client
functional-programming http4s openstack-clients scala
Last synced: about 2 months ago
JSON representation
A pure functional Scala client for Openstack Keystone implemented using Http4s client.
- Host: GitHub
- URL: https://github.com/ist-dsi/scala-keystone-client
- Owner: ist-dsi
- License: mit
- Created: 2019-04-15T15:16:24.000Z (almost 7 years ago)
- Default Branch: master
- Last Pushed: 2023-06-02T15:10:27.000Z (almost 3 years ago)
- Last Synced: 2024-04-17T05:19:34.261Z (almost 2 years ago)
- Topics: functional-programming, http4s, openstack-clients, scala
- Language: Scala
- Homepage:
- Size: 6.09 MB
- Stars: 1
- Watchers: 6
- Forks: 0
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# scala-keystone-client [](LICENSE)
[](https://ist-dsi.github.io/scala-keystone-client/api/latest/pt/tecnico/dsi/openstack/keystone/index.html)
[](https://index.scala-lang.org/ist-dsi/scala-keystone-client/scala-keystone-client)
[](https://travis-ci.org/ist-dsi/scala-keystone-client)
[](https://www.codacy.com/gh/ist-dsi/scala-keystone-client?utm_source=github.com&utm_medium=referral&utm_content=ist-dsi/scala-keystone-client&utm_campaign=Badge_Coverage)
[](https://www.codacy.com/gh/ist-dsi/scala-keystone-client?utm_source=github.com&utm_medium=referral&utm_content=ist-dsi/scala-keystone-client&utm_campaign=Badge_Grade)
[](https://bettercodehub.com/results/ist-dsi/scala-keystone-client)
A pure functional Scala client for Openstack Keystone implemented using Http4s client.
Supported endpoints:
- [Authentication and token management](https://docs.openstack.org/api-ref/identity/v3/#authentication-and-token-management)
- Multi factor authentication is not implemented.
- [Domains](https://docs.openstack.org/api-ref/identity/v3/#domains)
- [Groups](https://docs.openstack.org/api-ref/identity/v3/#groups)
- [Projects](https://docs.openstack.org/api-ref/identity/v3/#projects)
- [Regions](https://docs.openstack.org/api-ref/identity/v3/#regions)
- [Roles](https://docs.openstack.org/api-ref/identity/v3/#roles)
- [System Role Assignments](https://docs.openstack.org/api-ref/identity/v3/#system-role-assignments)
- [Service catalog and endpoints](https://docs.openstack.org/api-ref/identity/v3/#service-catalog-and-endpoints)
- [Users](https://docs.openstack.org/api-ref/identity/v3/#users)
Unsupported endpoints (we accept PRs :)):
- [Application Credentials](https://docs.openstack.org/api-ref/identity/v3/#application-credentials)
- [Credentials](https://docs.openstack.org/api-ref/identity/v3/#credentials)
- [Domain Configuration](https://docs.openstack.org/api-ref/identity/v3/#domain-configuration)
- [OS-INHERIT](https://docs.openstack.org/api-ref/identity/v3/#os-inherit)
- [Project Tags](https://docs.openstack.org/api-ref/identity/v3/#project-tags)
- [Unified Limits](https://docs.openstack.org/api-ref/identity/v3/#unified-limits)
[Latest scaladoc documentation](https://ist-dsi.github.io/scala-keystone-client/api/latest/pt/tecnico/dsi/openstack/keystone/index.html)
## Install
Add the following dependency to your `build.sbt`:
```sbt
libraryDependencies += "pt.tecnico.dsi" %% "scala-keystone-client" % "0.0.0"
```
We use [semantic versioning](http://semver.org).
## Usage
```scala
import scala.concurrent.ExecutionContext.Implicits.global
import cats.effect._
import org.http4s.client.blaze.BlazeClientBuilder
import pt.tecnico.dsi.openstack.keystone.KeystoneClient
object Example extends IOApp {
override def run(args: List[String]): IO[ExitCode] = {
BlazeClientBuilder[IO](global).resource.use { implicit httpClient =>
for {
client <- KeystoneClient.fromEnvironment()
projects <- client.projects.list().compile.toList
_ = println(projects.mkString("\n"))
} yield ExitCode.Success
}
}
}
```
## License
scala-keystone-client is open source and available under the [MIT license](LICENSE).