Struct AuthenticatedOpenPaymentsClient

Source
pub struct AuthenticatedOpenPaymentsClient {
    pub http_client: Client,
    pub config: ClientConfig,
    pub signing_key: SigningKey,
}
Expand description

An authenticated Open Payments client that can make signed HTTP requests.

This client automatically handles HTTP message signature creation for all requests using the configured private key. It’s used for operations that require authentication such as creating payments, quotes and managing access tokens.

§Example

use open_payments::client::{AuthenticatedClient, ClientConfig, AuthenticatedResources, UnauthenticatedResources};

#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
    // In a real application, you would use actual file paths
    let config = ClientConfig {
        private_key_path: "path/to/private-key.pem".into(),
        key_id: "my-key-id".to_string(),
        jwks_path: Some("path/to/jwks.json".into()),
    };

    // This would fail in a real scenario if the files don't exist
    // but demonstrates the API usage
    let _client = AuthenticatedClient::new(config)?;
    Ok(())
}

Fields§

§http_client: Client

The underlying HTTP client for making requests.

§config: ClientConfig

Client configuration including key paths and identifiers.

§signing_key: SigningKey

The signing key used for HTTP message signatures.

Implementations§

Source§

impl AuthenticatedOpenPaymentsClient

Source

pub fn new(config: ClientConfig) -> Result<Self>

Creates a new authenticated client with the given configuration.

This method will:

  1. Load or generate the signing key from the specified path
  2. Generate and save JWKS if a JWKS path is provided
  3. Create an HTTP client for making requests
§Arguments
  • config - The client configuration containing key paths and identifiers
§Returns

Returns a configured authenticated client or an error if key loading fails.

§Errors
  • OpClientError::Signature if the signing key cannot be loaded or generated
  • OpClientError::Signature if JWKS cannot be saved to the specified path

Trait Implementations§

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> 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<C> UnauthenticatedResources for C
where C: BaseClient,

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
Source§

impl<T> ErasedDestructor for T
where T: 'static,