Skip to main content

HttpInventorySource

Struct HttpInventorySource 

Source
pub struct HttpInventorySource { /* private fields */ }
Expand description

Fetches inventory data from an HTTP endpoint.

Perfect for dynamic inventories backed by CMDBs, GraphQL, REST APIs, or static web-hosted files. The client eagerly fetches the document, interpolates environment variables, and parses it using the requested InventoryFormat. Convenience builders make it easy to add headers or authentication inline—ideal for CI pipelines or tooling that needs to refresh inventory snapshots periodically.

§Examples

use nornir_rs::{HttpInventorySource, InventoryFormat};

let source = HttpInventorySource::new("https://example.com/inventory", InventoryFormat::Json)?;
// Configure headers or TLS options here.
let _source = source.with_header("Authorization", "Bearer <token>");

Implementations§

Source§

impl HttpInventorySource

Source

pub fn new( url: impl Into<String>, format: InventoryFormat, ) -> Result<Self, InventoryError>

Creates a source that fetches data from url and parses it using format.

Source

pub fn with_header( self, key: impl Into<String>, value: impl Into<String>, ) -> Self

Adds an HTTP header to the GET request.

Source

pub fn with_basic_auth( self, username: impl Into<String>, password: impl Into<String>, ) -> Self

Configures HTTP basic authentication.

Source

pub fn with_bearer_token(self, token: impl Into<String>) -> Self

Configures bearer token authentication.

Source

pub fn with_api_key( self, header: impl Into<String>, value: impl Into<String>, ) -> Self

Adds an API key header (e.g., X-API-Key).

Trait Implementations§

Source§

impl InventorySource for HttpInventorySource

Source§

fn load(&self) -> Result<Inventory, InventoryError>

Loads inventory data.
Source§

fn name(&self) -> &str

Human-friendly identifier for logging/observability.

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> IntoEither for T

Source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts self into a Left variant of Either<Self, Self> if into_left is true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

Converts self into a Left variant of Either<Self, Self> if into_left(&self) returns true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
Source§

impl<Unshared, Shared> IntoShared<Shared> for Unshared
where Shared: FromUnshared<Unshared>,

Source§

fn into_shared(self) -> Shared

Creates a shared type from an unshared type.
Source§

impl<T> PolicyExt for T
where T: ?Sized,

Source§

fn and<P, B, E>(self, other: P) -> And<T, P>
where T: Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns Action::Follow only if self and other return Action::Follow. Read more
Source§

fn or<P, B, E>(self, other: P) -> Or<T, P>
where T: Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns Action::Follow if either self or other returns Action::Follow. Read more
Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

Source§

fn vzip(self) -> V

Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more