Skip to content

Commit 579e4fc

Browse files
feat(api): api update (#533)
1 parent e8c0abe commit 579e4fc

10 files changed

+728
-39
lines changed

.stats.yml

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,2 @@
11
configured_endpoints: 103
2-
openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/orb%2Forb-ed7676e9e6ad97f50ea386e7aa6fdbbf5b6286a5a96ead62be4077f212fe3605.yml
2+
openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/orb%2Forb-25409f3b13e6d1d003e351fc18d248ecf3c5821cfde5f409a1d356e4fc917d8c.yml

src/orb/resources/prices/prices.py

+192-2
Original file line numberDiff line numberDiff line change
@@ -2486,6 +2486,97 @@ def create(
24862486
"""
24872487
...
24882488

2489+
@overload
2490+
def create(
2491+
self,
2492+
*,
2493+
cadence: Literal["annual", "semi_annual", "monthly", "quarterly", "one_time", "custom"],
2494+
cumulative_grouped_bulk_config: Dict[str, object],
2495+
currency: str,
2496+
item_id: str,
2497+
model_type: Literal["cumulative_grouped_bulk"],
2498+
name: str,
2499+
billable_metric_id: Optional[str] | NotGiven = NOT_GIVEN,
2500+
billed_in_advance: Optional[bool] | NotGiven = NOT_GIVEN,
2501+
billing_cycle_configuration: Optional[
2502+
price_create_params.NewFloatingCumulativeGroupedBulkPriceBillingCycleConfiguration
2503+
]
2504+
| NotGiven = NOT_GIVEN,
2505+
conversion_rate: Optional[float] | NotGiven = NOT_GIVEN,
2506+
external_price_id: Optional[str] | NotGiven = NOT_GIVEN,
2507+
fixed_price_quantity: Optional[float] | NotGiven = NOT_GIVEN,
2508+
invoice_grouping_key: Optional[str] | NotGiven = NOT_GIVEN,
2509+
invoicing_cycle_configuration: Optional[
2510+
price_create_params.NewFloatingCumulativeGroupedBulkPriceInvoicingCycleConfiguration
2511+
]
2512+
| NotGiven = NOT_GIVEN,
2513+
metadata: Optional[Dict[str, Optional[str]]] | NotGiven = NOT_GIVEN,
2514+
# Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
2515+
# The extra values given here take precedence over values defined on the client or passed to this method.
2516+
extra_headers: Headers | None = None,
2517+
extra_query: Query | None = None,
2518+
extra_body: Body | None = None,
2519+
timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
2520+
idempotency_key: str | None = None,
2521+
) -> Price:
2522+
"""
2523+
This endpoint is used to create a [price](/product-catalog/price-configuration).
2524+
A price created using this endpoint is always an add-on, meaning that it’s not
2525+
associated with a specific plan and can instead be individually added to
2526+
subscriptions, including subscriptions on different plans.
2527+
2528+
An `external_price_id` can be optionally specified as an alias to allow
2529+
ergonomic interaction with prices in the Orb API.
2530+
2531+
See the [Price resource](/product-catalog/price-configuration) for the
2532+
specification of different price model configurations possible in this endpoint.
2533+
2534+
Args:
2535+
cadence: The cadence to bill for this price on.
2536+
2537+
currency: An ISO 4217 currency string for which this price is billed in.
2538+
2539+
item_id: The id of the item the plan will be associated with.
2540+
2541+
name: The name of the price.
2542+
2543+
billable_metric_id: The id of the billable metric for the price. Only needed if the price is
2544+
usage-based.
2545+
2546+
billed_in_advance: If the Price represents a fixed cost, the price will be billed in-advance if
2547+
this is true, and in-arrears if this is false.
2548+
2549+
billing_cycle_configuration: For custom cadence: specifies the duration of the billing period in days or
2550+
months.
2551+
2552+
conversion_rate: The per unit conversion rate of the price currency to the invoicing currency.
2553+
2554+
external_price_id: An alias for the price.
2555+
2556+
fixed_price_quantity: If the Price represents a fixed cost, this represents the quantity of units
2557+
applied.
2558+
2559+
invoice_grouping_key: The property used to group this price on an invoice
2560+
2561+
invoicing_cycle_configuration: Within each billing cycle, specifies the cadence at which invoices are produced.
2562+
If unspecified, a single invoice is produced per billing cycle.
2563+
2564+
metadata: User-specified key/value pairs for the resource. Individual keys can be removed
2565+
by setting the value to `null`, and the entire metadata mapping can be cleared
2566+
by setting `metadata` to `null`.
2567+
2568+
extra_headers: Send extra headers
2569+
2570+
extra_query: Add additional query parameters to the request
2571+
2572+
extra_body: Add additional JSON properties to the request
2573+
2574+
timeout: Override the client-level default timeout for this request, in seconds
2575+
2576+
idempotency_key: Specify a custom idempotency key for this request
2577+
"""
2578+
...
2579+
24892580
@required_args(
24902581
["cadence", "currency", "item_id", "model_type", "name", "unit_config"],
24912582
["cadence", "currency", "item_id", "model_type", "name", "package_config"],
@@ -2514,6 +2605,7 @@ def create(
25142605
["cadence", "currency", "grouped_tiered_package_config", "item_id", "model_type", "name"],
25152606
["cadence", "currency", "item_id", "model_type", "name", "scalable_matrix_with_unit_pricing_config"],
25162607
["cadence", "currency", "item_id", "model_type", "name", "scalable_matrix_with_tiered_pricing_config"],
2608+
["cadence", "cumulative_grouped_bulk_config", "currency", "item_id", "model_type", "name"],
25172609
)
25182610
def create(
25192611
self,
@@ -2547,7 +2639,8 @@ def create(
25472639
| Literal["bulk_with_proration"]
25482640
| Literal["grouped_tiered_package"]
25492641
| Literal["scalable_matrix_with_unit_pricing"]
2550-
| Literal["scalable_matrix_with_tiered_pricing"],
2642+
| Literal["scalable_matrix_with_tiered_pricing"]
2643+
| Literal["cumulative_grouped_bulk"],
25512644
name: str,
25522645
unit_config: price_create_params.NewFloatingUnitPriceUnitConfig | NotGiven = NOT_GIVEN,
25532646
billable_metric_id: Optional[str] | NotGiven = NOT_GIVEN,
@@ -2588,6 +2681,7 @@ def create(
25882681
grouped_tiered_package_config: Dict[str, object] | NotGiven = NOT_GIVEN,
25892682
scalable_matrix_with_unit_pricing_config: Dict[str, object] | NotGiven = NOT_GIVEN,
25902683
scalable_matrix_with_tiered_pricing_config: Dict[str, object] | NotGiven = NOT_GIVEN,
2684+
cumulative_grouped_bulk_config: Dict[str, object] | NotGiven = NOT_GIVEN,
25912685
# Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
25922686
# The extra values given here take precedence over values defined on the client or passed to this method.
25932687
extra_headers: Headers | None = None,
@@ -2643,6 +2737,7 @@ def create(
26432737
"grouped_tiered_package_config": grouped_tiered_package_config,
26442738
"scalable_matrix_with_unit_pricing_config": scalable_matrix_with_unit_pricing_config,
26452739
"scalable_matrix_with_tiered_pricing_config": scalable_matrix_with_tiered_pricing_config,
2740+
"cumulative_grouped_bulk_config": cumulative_grouped_bulk_config,
26462741
},
26472742
price_create_params.PriceCreateParams,
26482743
),
@@ -5339,6 +5434,97 @@ async def create(
53395434
"""
53405435
...
53415436

5437+
@overload
5438+
async def create(
5439+
self,
5440+
*,
5441+
cadence: Literal["annual", "semi_annual", "monthly", "quarterly", "one_time", "custom"],
5442+
cumulative_grouped_bulk_config: Dict[str, object],
5443+
currency: str,
5444+
item_id: str,
5445+
model_type: Literal["cumulative_grouped_bulk"],
5446+
name: str,
5447+
billable_metric_id: Optional[str] | NotGiven = NOT_GIVEN,
5448+
billed_in_advance: Optional[bool] | NotGiven = NOT_GIVEN,
5449+
billing_cycle_configuration: Optional[
5450+
price_create_params.NewFloatingCumulativeGroupedBulkPriceBillingCycleConfiguration
5451+
]
5452+
| NotGiven = NOT_GIVEN,
5453+
conversion_rate: Optional[float] | NotGiven = NOT_GIVEN,
5454+
external_price_id: Optional[str] | NotGiven = NOT_GIVEN,
5455+
fixed_price_quantity: Optional[float] | NotGiven = NOT_GIVEN,
5456+
invoice_grouping_key: Optional[str] | NotGiven = NOT_GIVEN,
5457+
invoicing_cycle_configuration: Optional[
5458+
price_create_params.NewFloatingCumulativeGroupedBulkPriceInvoicingCycleConfiguration
5459+
]
5460+
| NotGiven = NOT_GIVEN,
5461+
metadata: Optional[Dict[str, Optional[str]]] | NotGiven = NOT_GIVEN,
5462+
# Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
5463+
# The extra values given here take precedence over values defined on the client or passed to this method.
5464+
extra_headers: Headers | None = None,
5465+
extra_query: Query | None = None,
5466+
extra_body: Body | None = None,
5467+
timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
5468+
idempotency_key: str | None = None,
5469+
) -> Price:
5470+
"""
5471+
This endpoint is used to create a [price](/product-catalog/price-configuration).
5472+
A price created using this endpoint is always an add-on, meaning that it’s not
5473+
associated with a specific plan and can instead be individually added to
5474+
subscriptions, including subscriptions on different plans.
5475+
5476+
An `external_price_id` can be optionally specified as an alias to allow
5477+
ergonomic interaction with prices in the Orb API.
5478+
5479+
See the [Price resource](/product-catalog/price-configuration) for the
5480+
specification of different price model configurations possible in this endpoint.
5481+
5482+
Args:
5483+
cadence: The cadence to bill for this price on.
5484+
5485+
currency: An ISO 4217 currency string for which this price is billed in.
5486+
5487+
item_id: The id of the item the plan will be associated with.
5488+
5489+
name: The name of the price.
5490+
5491+
billable_metric_id: The id of the billable metric for the price. Only needed if the price is
5492+
usage-based.
5493+
5494+
billed_in_advance: If the Price represents a fixed cost, the price will be billed in-advance if
5495+
this is true, and in-arrears if this is false.
5496+
5497+
billing_cycle_configuration: For custom cadence: specifies the duration of the billing period in days or
5498+
months.
5499+
5500+
conversion_rate: The per unit conversion rate of the price currency to the invoicing currency.
5501+
5502+
external_price_id: An alias for the price.
5503+
5504+
fixed_price_quantity: If the Price represents a fixed cost, this represents the quantity of units
5505+
applied.
5506+
5507+
invoice_grouping_key: The property used to group this price on an invoice
5508+
5509+
invoicing_cycle_configuration: Within each billing cycle, specifies the cadence at which invoices are produced.
5510+
If unspecified, a single invoice is produced per billing cycle.
5511+
5512+
metadata: User-specified key/value pairs for the resource. Individual keys can be removed
5513+
by setting the value to `null`, and the entire metadata mapping can be cleared
5514+
by setting `metadata` to `null`.
5515+
5516+
extra_headers: Send extra headers
5517+
5518+
extra_query: Add additional query parameters to the request
5519+
5520+
extra_body: Add additional JSON properties to the request
5521+
5522+
timeout: Override the client-level default timeout for this request, in seconds
5523+
5524+
idempotency_key: Specify a custom idempotency key for this request
5525+
"""
5526+
...
5527+
53425528
@required_args(
53435529
["cadence", "currency", "item_id", "model_type", "name", "unit_config"],
53445530
["cadence", "currency", "item_id", "model_type", "name", "package_config"],
@@ -5367,6 +5553,7 @@ async def create(
53675553
["cadence", "currency", "grouped_tiered_package_config", "item_id", "model_type", "name"],
53685554
["cadence", "currency", "item_id", "model_type", "name", "scalable_matrix_with_unit_pricing_config"],
53695555
["cadence", "currency", "item_id", "model_type", "name", "scalable_matrix_with_tiered_pricing_config"],
5556+
["cadence", "cumulative_grouped_bulk_config", "currency", "item_id", "model_type", "name"],
53705557
)
53715558
async def create(
53725559
self,
@@ -5400,7 +5587,8 @@ async def create(
54005587
| Literal["bulk_with_proration"]
54015588
| Literal["grouped_tiered_package"]
54025589
| Literal["scalable_matrix_with_unit_pricing"]
5403-
| Literal["scalable_matrix_with_tiered_pricing"],
5590+
| Literal["scalable_matrix_with_tiered_pricing"]
5591+
| Literal["cumulative_grouped_bulk"],
54045592
name: str,
54055593
unit_config: price_create_params.NewFloatingUnitPriceUnitConfig | NotGiven = NOT_GIVEN,
54065594
billable_metric_id: Optional[str] | NotGiven = NOT_GIVEN,
@@ -5441,6 +5629,7 @@ async def create(
54415629
grouped_tiered_package_config: Dict[str, object] | NotGiven = NOT_GIVEN,
54425630
scalable_matrix_with_unit_pricing_config: Dict[str, object] | NotGiven = NOT_GIVEN,
54435631
scalable_matrix_with_tiered_pricing_config: Dict[str, object] | NotGiven = NOT_GIVEN,
5632+
cumulative_grouped_bulk_config: Dict[str, object] | NotGiven = NOT_GIVEN,
54445633
# Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
54455634
# The extra values given here take precedence over values defined on the client or passed to this method.
54465635
extra_headers: Headers | None = None,
@@ -5496,6 +5685,7 @@ async def create(
54965685
"grouped_tiered_package_config": grouped_tiered_package_config,
54975686
"scalable_matrix_with_unit_pricing_config": scalable_matrix_with_unit_pricing_config,
54985687
"scalable_matrix_with_tiered_pricing_config": scalable_matrix_with_tiered_pricing_config,
5688+
"cumulative_grouped_bulk_config": cumulative_grouped_bulk_config,
54995689
},
55005690
price_create_params.PriceCreateParams,
55015691
),

src/orb/types/customers/cost_list_by_external_id_response.py

+4-12
Original file line numberDiff line numberDiff line change
@@ -11,18 +11,10 @@
1111

1212
class DataPerPriceCost(BaseModel):
1313
price: Price
14-
"""
15-
The Price resource represents a price that can be billed on a subscription,
16-
resulting in a charge on an invoice in the form of an invoice line item. Prices
17-
take a quantity and determine an amount to bill.
18-
19-
Orb supports a few different pricing models out of the box. Each of these models
20-
is serialized differently in a given Price object. The model_type field
21-
determines the key for the configuration object that is present.
22-
23-
For more on the types of prices, see
24-
[the core concepts documentation](/core-concepts#plan-and-price)
25-
"""
14+
"""The price object"""
15+
16+
price_id: str
17+
"""The price the cost is associated with"""
2618

2719
subtotal: str
2820
"""Price's contributions for the timeframe, excluding any minimums and discounts."""

src/orb/types/customers/cost_list_response.py

+4-12
Original file line numberDiff line numberDiff line change
@@ -11,18 +11,10 @@
1111

1212
class DataPerPriceCost(BaseModel):
1313
price: Price
14-
"""
15-
The Price resource represents a price that can be billed on a subscription,
16-
resulting in a charge on an invoice in the form of an invoice line item. Prices
17-
take a quantity and determine an amount to bill.
18-
19-
Orb supports a few different pricing models out of the box. Each of these models
20-
is serialized differently in a given Price object. The model_type field
21-
determines the key for the configuration object that is present.
22-
23-
For more on the types of prices, see
24-
[the core concepts documentation](/core-concepts#plan-and-price)
25-
"""
14+
"""The price object"""
15+
16+
price_id: str
17+
"""The price the cost is associated with"""
2618

2719
subtotal: str
2820
"""Price's contributions for the timeframe, excluding any minimums and discounts."""

0 commit comments

Comments
 (0)