orb_billing/lib.rs
1// Copyright Materialize, Inc. All rights reserved.
2//
3// Licensed under the Apache License, Version 2.0 (the "License");
4// you may not use this file except in compliance with the License.
5// You may obtain a copy of the License in the LICENSE file at the
6// root of this repository, or online at
7//
8// http://www.apache.org/licenses/LICENSE-2.0
9//
10// Unless required by applicable law or agreed to in writing, software
11// distributed under the License is distributed on an "AS IS" BASIS,
12// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13// See the License for the specific language governing permissions and
14// limitations under the License.
15
16//! [<img src="https://user-images.githubusercontent.com/23521087/168297221-5d346edc-3a55-4055-b355-281b4bd76963.png" width=180 align=right>](https://materialize.com)
17//! An async API client for the [Orb] billing platform.
18//!
19//! # Maintainership
20//!
21//! This is not an official Orb product. This crate is developed by
22//! [Materialize], the streaming data warehouse. Contributions are encouraged:
23//!
24//! * [View source code](https://github.com/MaterializeInc/rust-orb-billing)
25//! * [Report an issue](https://github.com/MaterializeInc/rust-orb-billing/issues/new)
26//! * [Submit a pull request](https://github.com/MaterializeInc/rust-orb-billing/compare)
27//!
28//! [Materialize]: https://materialize.com
29//!
30//! # See also
31//!
32//! Additional information is available in the [official Orb API
33//! documentation][official-api-docs].
34//!
35//! [Orb]: https://withorb.com
36//! [official-api-docs]: https://docs.withorb.com/docs/orb-docs/api-reference
37
38#[warn(missing_debug_implementations, missing_docs)]
39mod client;
40mod config;
41mod error;
42mod serde;
43mod util;
44
45pub use client::customers::{
46 AddIncrementCreditLedgerEntryRequestParams, AddVoidCreditLedgerEntryRequestParams, Address,
47 AddressRequest, CostViewMode, CreateCustomerRequest, CreditLedgerInvoiceSettingsRequestParams,
48 Customer, CustomerCostBucket, CustomerCostItem, CustomerCostParams, CustomerCostPriceBlock,
49 CustomerCostPriceBlockMatrixPrice, CustomerCostPriceBlockMatrixPriceConfig,
50 CustomerCostPriceBlockMatrixPriceValue, CustomerCostPriceBlockPrice,
51 CustomerCostPriceBlockPriceGroup, CustomerCostPriceBlockUnitPrice,
52 CustomerCostPriceBlockUnitPriceConfig, CustomerCreditBlock, CustomerId,
53 CustomerPaymentProviderRequest, LedgerEntry, LedgerEntryRequest, PaymentProvider,
54 UpdateCustomerRequest, VoidReason,
55};
56pub use client::events::{
57 AmendEventRequest, Event, EventPropertyValue, EventSearchParams, IngestEventDebugResponse,
58 IngestEventRequest, IngestEventResponse, IngestionMode,
59};
60pub use client::invoices::{
61 Invoice, InvoiceCustomer, InvoiceListParams, InvoiceStatusFilter, InvoiceSubscription,
62};
63pub use client::marketplaces::ExternalMarketplace;
64pub use client::plans::{Plan, PlanId};
65pub use client::subscriptions::{
66 CreateSubscriptionRequest, Subscription, SubscriptionListParams, SubscriptionStatus,
67};
68pub use client::taxes::{TaxId, TaxIdRequest, TaxIdType};
69pub use client::Client;
70pub use config::{ClientBuilder, ClientConfig, ListParams};
71pub use error::{ApiError, Error};