stripe/resources/
line_item_ext.rs1use serde::{Deserialize, Serialize};
2
3use crate::client::{Client, Response};
4use crate::ids::{CustomerId, InvoiceId};
5use crate::resources::{Currency, InvoiceLineItem};
6
7impl InvoiceLineItem {
8 pub fn create(client: &Client, params: CreateInvoiceLineItem<'_>) -> Response<InvoiceLineItem> {
12 client.post_form("/invoiceitems", ¶ms)
13 }
14}
15
16#[derive(Clone, Debug, Default, Deserialize, Serialize)]
17pub struct CreateInvoiceLineItem<'a> {
18 #[serde(skip_serializing_if = "Option::is_none")]
19 pub amount: Option<i64>,
20 #[serde(skip_serializing_if = "Option::is_none")]
21 pub currency: Option<Currency>,
22 #[serde(skip_serializing_if = "Option::is_none")]
23 pub customer: Option<CustomerId>,
24 #[serde(skip_serializing_if = "Option::is_none")]
25 pub description: Option<&'a str>,
26 #[serde(skip_serializing_if = "Option::is_none")]
27 pub discountable: Option<bool>,
28 #[serde(skip_serializing_if = "Option::is_none")]
29 pub invoice: Option<InvoiceId>,
30 #[serde(skip_serializing_if = "Option::is_none")]
31 pub subscription: Option<bool>,
32}
33
34impl CreateInvoiceLineItem<'_> {
35 pub fn new() -> Self {
36 CreateInvoiceLineItem {
37 amount: None,
38 currency: None,
39 customer: None,
40 description: None,
41 discountable: None,
42 invoice: None,
43 subscription: None,
44 }
45 }
46}