[−][src]Crate osauth
Asynchronous OpenStack session and authentication.
Introduction
This crate provides low-level asynchronous access to OpenStack API. It features:
- Authentication and token caching.
- Major and microversion handling.
- Service catalog integration.
- JSON API error handling.
- Service types for supported services.
It does NOT provide:
- Protocol structures for any services.
- Automatic microversion negotiation.
- High-level object-oriented API.
See openstack crate for these features.
Requirements
This crate requires Rust 2018 edition and rustc version 1.43.0 or newer; the stream
feature
requires rustc 1.45.0.
OpenStack releases starting with Queens are officially supported, although support for releases older than 1.5 years is best-effort and may be dropped without a prior warning (it will not be considered a breaking change).
Usage
Your entry point to the API is the Session structure. To create it you need an authentication type object first. It can be obtained by:
- Using Password authentication against the Identity service.
- Using NoAuth authentication type, allowing access to standalone services without authentication.
- Using HTTP BasicAuth authentication type for services supporting it (only ironic and ironic-inspector at the moment).
- By loading both authentication parameters and a session from:
clouds.yaml
,clouds-public.yaml
andsecure.yaml
configuration files using from_config.- environment variables using from_env.
See Session documentation for the details on using a Session
for making
OpenStack calls.
If you need to work with a small number of servics, Adapter provides a
more convenient interface. An adapter can be created directly using
Adapter::new or from an existing Session
using
Session::adapter or
Session::into_adapter.
Features
native-tls
orrustls
add TLS support with two alternative implementations,native-tls
is enabled by default.stream
adds get_json_paginated and get_json_query_paginated toSession
andAdapter
; enabled by default.sync
adds a synchronous wrapper around theSession
; enabled by default.
Modules
identity | Authentication using Identity API v3. |
request | Utilities to work with OpenStack requests. |
services | OpenStack service types. |
stream | A stream of resources. |
sync | Synchronous wrapper for a session. |
Structs
Adapter | Adapter for a specific service. |
ApiVersion | API version (major, minor). |
BasicAuth | Authentication type that uses HTTP basic authentication. |
EndpointFilters | Endpoint filters for looking up endpoints. |
Error | Error from an OpenStack call. |
NoAuth | Authentication type that provides no authentication. |
Session | An OpenStack API session. |
ValidInterfaces | A list of acceptable interface types. |
Enums
ErrorKind | Kind of an error. |
InterfaceType | Interface type: public, internal or admin. |
Traits
AuthType | Trait for an authentication type. |