1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
//! # Open Payments Types
//!
//! This module contains all the type definitions for the Open Payments protocol.
//! These types represent the data structures used in API requests and responses,
//! as well as the core concepts of the Open Payments ecosystem.
//!
//! ## Core Types
//!
//! ### Authentication & Authorization
//!
//! - [`GrantRequest`] / [`GrantResponse`] - GNAP request and response
//! - [`AccessToken`] / [`AccessTokenRequest`] - Access token management
//! - [`AccessItem`] - Defines what resources a token can access
//! - [`ContinueRequest`] / [`ContinueResponse`] - Grant continuation flow
//!
//! ### Resources
//!
//! - [`WalletAddress`] - Wallet address information
//! - [`IncomingPayment`] - Incoming payment details
//! - [`OutgoingPayment`] - Outgoing payment details
//! - [`Quote`] - Payment quote details
//!
//! ### Common Types
//!
//! - [`Amount`] - Amounts of a specific currency and scale
//! - [`PageInfo`] - Pagination information
//! - [`PaginatedResponse`] - Generic paginated response wrapper
//!
//! ## Example Usage
//!
//! ```rust
//! use open_payments::types::{
//! Amount, GrantRequest, AccessTokenRequest, AccessItem, QuoteAction,
//! CreateIncomingPaymentRequest, WalletAddress
//! };
//!
//! // Create a grant request for quote access
//! let grant_request = GrantRequest {
//! access_token: AccessTokenRequest {
//! access: vec![AccessItem::Quote {
//! actions: vec![QuoteAction::Create, QuoteAction::Read],
//! }],
//! },
//! client: "https://rafiki.money/alice".to_string(),
//! interact: None,
//! };
//!
//! // Create an incoming payment request
//! let payment_request = CreateIncomingPaymentRequest {
//! wallet_address: "https://rafiki.money/alice".to_string(),
//! incoming_amount: Some(Amount {
//! value: "1000".to_string(),
//! asset_code: "EUR".to_string(),
//! asset_scale: 2,
//! }),
//! expires_at: Some(chrono::Utc::now() + chrono::Duration::hours(1)),
//! metadata: None,
//! };
//! ```
//!
//! ## Module Structure
//!
//! - [`auth`] - Authentication and authorization types
//! - [`common`] - Common types used across Open Payments
//! - [`resource`] - Resource-specific types (payments, quotes, etc.)
//! - [`wallet_address`] - Wallet address and JWK types
pub use *;
pub use ;
pub use ;
pub use ;