From 41120ef222bceca6a5e4a6c7d13a4c2cb66150d7 Mon Sep 17 00:00:00 2001
From: "stainless-app[bot]"
<142633134+stainless-app[bot]@users.noreply.github.com>
Date: Thu, 12 Dec 2024 20:46:38 +0000
Subject: [PATCH] feat(api): api update
---
.stats.yml | 2 +-
api.md | 4 +-
src/orb/resources/alerts.py | 50 +++++++++++++++++----
src/orb/types/__init__.py | 2 +
src/orb/types/alert_disable_params.py | 13 ++++++
src/orb/types/alert_enable_params.py | 13 ++++++
tests/api_resources/test_alerts.py | 64 ++++++++++++++++++++-------
7 files changed, 121 insertions(+), 27 deletions(-)
create mode 100644 src/orb/types/alert_disable_params.py
create mode 100644 src/orb/types/alert_enable_params.py
diff --git a/.stats.yml b/.stats.yml
index aaba5809..26721953 100644
--- a/.stats.yml
+++ b/.stats.yml
@@ -1,2 +1,2 @@
configured_endpoints: 97
-openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/orb%2Forb-16e9b5c2b884f624e9b1f3dddf584353822295512ead0b72ffb574e6b1780570.yml
+openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/orb%2Forb-908960f165205e2874dd29322cc974df5ab10c7634ab9a342ab22047013de1b4.yml
diff --git a/api.md b/api.md
index 89f33f14..c4dc1320 100644
--- a/api.md
+++ b/api.md
@@ -378,5 +378,5 @@ Methods:
- client.alerts.create_for_customer(customer_id, \*\*params) -> Alert
- client.alerts.create_for_external_customer(external_customer_id, \*\*params) -> Alert
- client.alerts.create_for_subscription(subscription_id, \*\*params) -> Alert
-- client.alerts.disable(alert_configuration_id) -> Alert
-- client.alerts.enable(alert_configuration_id) -> Alert
+- client.alerts.disable(alert_configuration_id, \*\*params) -> Alert
+- client.alerts.enable(alert_configuration_id, \*\*params) -> Alert
diff --git a/src/orb/resources/alerts.py b/src/orb/resources/alerts.py
index 36f800fa..14e32c00 100644
--- a/src/orb/resources/alerts.py
+++ b/src/orb/resources/alerts.py
@@ -11,7 +11,9 @@
from .. import _legacy_response
from ..types import (
alert_list_params,
+ alert_enable_params,
alert_update_params,
+ alert_disable_params,
alert_create_for_customer_params,
alert_create_for_subscription_params,
alert_create_for_external_customer_params,
@@ -431,6 +433,7 @@ def disable(
self,
alert_configuration_id: str,
*,
+ subscription_id: Optional[str] | NotGiven = NOT_GIVEN,
# Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
# The extra values given here take precedence over values defined on the client or passed to this method.
extra_headers: Headers | None = None,
@@ -439,10 +442,15 @@ def disable(
timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
idempotency_key: str | None = None,
) -> Alert:
- """
- This endpoint can be used to disable an alert.
+ """This endpoint allows you to disable an alert.
+
+ To disable a plan-level alert for
+ a specific subscription, you must include the `subscription_id`. The
+ `subscription_id` is not required for customer or subscription level alerts.
Args:
+ subscription_id: Used to update the status of a plan alert scoped to this subscription_id
+
extra_headers: Send extra headers
extra_query: Add additional query parameters to the request
@@ -465,6 +473,7 @@ def disable(
extra_body=extra_body,
timeout=timeout,
idempotency_key=idempotency_key,
+ query=maybe_transform({"subscription_id": subscription_id}, alert_disable_params.AlertDisableParams),
),
cast_to=Alert,
)
@@ -473,6 +482,7 @@ def enable(
self,
alert_configuration_id: str,
*,
+ subscription_id: Optional[str] | NotGiven = NOT_GIVEN,
# Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
# The extra values given here take precedence over values defined on the client or passed to this method.
extra_headers: Headers | None = None,
@@ -481,10 +491,15 @@ def enable(
timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
idempotency_key: str | None = None,
) -> Alert:
- """
- This endpoint can be used to enable an alert.
+ """This endpoint allows you to enable an alert.
+
+ To enable a plan-level alert for a
+ specific subscription, you must include the `subscription_id`. The
+ `subscription_id` is not required for customer or subscription level alerts.
Args:
+ subscription_id: Used to update the status of a plan alert scoped to this subscription_id
+
extra_headers: Send extra headers
extra_query: Add additional query parameters to the request
@@ -507,6 +522,7 @@ def enable(
extra_body=extra_body,
timeout=timeout,
idempotency_key=idempotency_key,
+ query=maybe_transform({"subscription_id": subscription_id}, alert_enable_params.AlertEnableParams),
),
cast_to=Alert,
)
@@ -912,6 +928,7 @@ async def disable(
self,
alert_configuration_id: str,
*,
+ subscription_id: Optional[str] | NotGiven = NOT_GIVEN,
# Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
# The extra values given here take precedence over values defined on the client or passed to this method.
extra_headers: Headers | None = None,
@@ -920,10 +937,15 @@ async def disable(
timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
idempotency_key: str | None = None,
) -> Alert:
- """
- This endpoint can be used to disable an alert.
+ """This endpoint allows you to disable an alert.
+
+ To disable a plan-level alert for
+ a specific subscription, you must include the `subscription_id`. The
+ `subscription_id` is not required for customer or subscription level alerts.
Args:
+ subscription_id: Used to update the status of a plan alert scoped to this subscription_id
+
extra_headers: Send extra headers
extra_query: Add additional query parameters to the request
@@ -946,6 +968,9 @@ async def disable(
extra_body=extra_body,
timeout=timeout,
idempotency_key=idempotency_key,
+ query=await async_maybe_transform(
+ {"subscription_id": subscription_id}, alert_disable_params.AlertDisableParams
+ ),
),
cast_to=Alert,
)
@@ -954,6 +979,7 @@ async def enable(
self,
alert_configuration_id: str,
*,
+ subscription_id: Optional[str] | NotGiven = NOT_GIVEN,
# Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
# The extra values given here take precedence over values defined on the client or passed to this method.
extra_headers: Headers | None = None,
@@ -962,10 +988,15 @@ async def enable(
timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
idempotency_key: str | None = None,
) -> Alert:
- """
- This endpoint can be used to enable an alert.
+ """This endpoint allows you to enable an alert.
+
+ To enable a plan-level alert for a
+ specific subscription, you must include the `subscription_id`. The
+ `subscription_id` is not required for customer or subscription level alerts.
Args:
+ subscription_id: Used to update the status of a plan alert scoped to this subscription_id
+
extra_headers: Send extra headers
extra_query: Add additional query parameters to the request
@@ -988,6 +1019,9 @@ async def enable(
extra_body=extra_body,
timeout=timeout,
idempotency_key=idempotency_key,
+ query=await async_maybe_transform(
+ {"subscription_id": subscription_id}, alert_enable_params.AlertEnableParams
+ ),
),
cast_to=Alert,
)
diff --git a/src/orb/types/__init__.py b/src/orb/types/__init__.py
index bbccb109..18c8b027 100644
--- a/src/orb/types/__init__.py
+++ b/src/orb/types/__init__.py
@@ -33,6 +33,7 @@
from .plan_create_params import PlanCreateParams as PlanCreateParams
from .plan_update_params import PlanUpdateParams as PlanUpdateParams
from .subscription_usage import SubscriptionUsage as SubscriptionUsage
+from .alert_enable_params import AlertEnableParams as AlertEnableParams
from .alert_update_params import AlertUpdateParams as AlertUpdateParams
from .event_ingest_params import EventIngestParams as EventIngestParams
from .event_search_params import EventSearchParams as EventSearchParams
@@ -40,6 +41,7 @@
from .invoice_list_params import InvoiceListParams as InvoiceListParams
from .price_create_params import PriceCreateParams as PriceCreateParams
from .price_update_params import PriceUpdateParams as PriceUpdateParams
+from .alert_disable_params import AlertDisableParams as AlertDisableParams
from .coupon_create_params import CouponCreateParams as CouponCreateParams
from .customer_list_params import CustomerListParams as CustomerListParams
from .evaluate_price_group import EvaluatePriceGroup as EvaluatePriceGroup
diff --git a/src/orb/types/alert_disable_params.py b/src/orb/types/alert_disable_params.py
new file mode 100644
index 00000000..dc4a9847
--- /dev/null
+++ b/src/orb/types/alert_disable_params.py
@@ -0,0 +1,13 @@
+# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
+
+from __future__ import annotations
+
+from typing import Optional
+from typing_extensions import TypedDict
+
+__all__ = ["AlertDisableParams"]
+
+
+class AlertDisableParams(TypedDict, total=False):
+ subscription_id: Optional[str]
+ """Used to update the status of a plan alert scoped to this subscription_id"""
diff --git a/src/orb/types/alert_enable_params.py b/src/orb/types/alert_enable_params.py
new file mode 100644
index 00000000..b607505a
--- /dev/null
+++ b/src/orb/types/alert_enable_params.py
@@ -0,0 +1,13 @@
+# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
+
+from __future__ import annotations
+
+from typing import Optional
+from typing_extensions import TypedDict
+
+__all__ = ["AlertEnableParams"]
+
+
+class AlertEnableParams(TypedDict, total=False):
+ subscription_id: Optional[str]
+ """Used to update the status of a plan alert scoped to this subscription_id"""
diff --git a/tests/api_resources/test_alerts.py b/tests/api_resources/test_alerts.py
index cb07e015..568aa4ea 100644
--- a/tests/api_resources/test_alerts.py
+++ b/tests/api_resources/test_alerts.py
@@ -318,14 +318,22 @@ def test_path_params_create_for_subscription(self, client: Orb) -> None:
@parametrize
def test_method_disable(self, client: Orb) -> None:
alert = client.alerts.disable(
- "alert_configuration_id",
+ alert_configuration_id="alert_configuration_id",
+ )
+ assert_matches_type(Alert, alert, path=["response"])
+
+ @parametrize
+ def test_method_disable_with_all_params(self, client: Orb) -> None:
+ alert = client.alerts.disable(
+ alert_configuration_id="alert_configuration_id",
+ subscription_id="subscription_id",
)
assert_matches_type(Alert, alert, path=["response"])
@parametrize
def test_raw_response_disable(self, client: Orb) -> None:
response = client.alerts.with_raw_response.disable(
- "alert_configuration_id",
+ alert_configuration_id="alert_configuration_id",
)
assert response.is_closed is True
@@ -336,7 +344,7 @@ def test_raw_response_disable(self, client: Orb) -> None:
@parametrize
def test_streaming_response_disable(self, client: Orb) -> None:
with client.alerts.with_streaming_response.disable(
- "alert_configuration_id",
+ alert_configuration_id="alert_configuration_id",
) as response:
assert not response.is_closed
assert response.http_request.headers.get("X-Stainless-Lang") == "python"
@@ -352,20 +360,28 @@ def test_path_params_disable(self, client: Orb) -> None:
ValueError, match=r"Expected a non-empty value for `alert_configuration_id` but received ''"
):
client.alerts.with_raw_response.disable(
- "",
+ alert_configuration_id="",
)
@parametrize
def test_method_enable(self, client: Orb) -> None:
alert = client.alerts.enable(
- "alert_configuration_id",
+ alert_configuration_id="alert_configuration_id",
+ )
+ assert_matches_type(Alert, alert, path=["response"])
+
+ @parametrize
+ def test_method_enable_with_all_params(self, client: Orb) -> None:
+ alert = client.alerts.enable(
+ alert_configuration_id="alert_configuration_id",
+ subscription_id="subscription_id",
)
assert_matches_type(Alert, alert, path=["response"])
@parametrize
def test_raw_response_enable(self, client: Orb) -> None:
response = client.alerts.with_raw_response.enable(
- "alert_configuration_id",
+ alert_configuration_id="alert_configuration_id",
)
assert response.is_closed is True
@@ -376,7 +392,7 @@ def test_raw_response_enable(self, client: Orb) -> None:
@parametrize
def test_streaming_response_enable(self, client: Orb) -> None:
with client.alerts.with_streaming_response.enable(
- "alert_configuration_id",
+ alert_configuration_id="alert_configuration_id",
) as response:
assert not response.is_closed
assert response.http_request.headers.get("X-Stainless-Lang") == "python"
@@ -392,7 +408,7 @@ def test_path_params_enable(self, client: Orb) -> None:
ValueError, match=r"Expected a non-empty value for `alert_configuration_id` but received ''"
):
client.alerts.with_raw_response.enable(
- "",
+ alert_configuration_id="",
)
@@ -696,14 +712,22 @@ async def test_path_params_create_for_subscription(self, async_client: AsyncOrb)
@parametrize
async def test_method_disable(self, async_client: AsyncOrb) -> None:
alert = await async_client.alerts.disable(
- "alert_configuration_id",
+ alert_configuration_id="alert_configuration_id",
+ )
+ assert_matches_type(Alert, alert, path=["response"])
+
+ @parametrize
+ async def test_method_disable_with_all_params(self, async_client: AsyncOrb) -> None:
+ alert = await async_client.alerts.disable(
+ alert_configuration_id="alert_configuration_id",
+ subscription_id="subscription_id",
)
assert_matches_type(Alert, alert, path=["response"])
@parametrize
async def test_raw_response_disable(self, async_client: AsyncOrb) -> None:
response = await async_client.alerts.with_raw_response.disable(
- "alert_configuration_id",
+ alert_configuration_id="alert_configuration_id",
)
assert response.is_closed is True
@@ -714,7 +738,7 @@ async def test_raw_response_disable(self, async_client: AsyncOrb) -> None:
@parametrize
async def test_streaming_response_disable(self, async_client: AsyncOrb) -> None:
async with async_client.alerts.with_streaming_response.disable(
- "alert_configuration_id",
+ alert_configuration_id="alert_configuration_id",
) as response:
assert not response.is_closed
assert response.http_request.headers.get("X-Stainless-Lang") == "python"
@@ -730,20 +754,28 @@ async def test_path_params_disable(self, async_client: AsyncOrb) -> None:
ValueError, match=r"Expected a non-empty value for `alert_configuration_id` but received ''"
):
await async_client.alerts.with_raw_response.disable(
- "",
+ alert_configuration_id="",
)
@parametrize
async def test_method_enable(self, async_client: AsyncOrb) -> None:
alert = await async_client.alerts.enable(
- "alert_configuration_id",
+ alert_configuration_id="alert_configuration_id",
+ )
+ assert_matches_type(Alert, alert, path=["response"])
+
+ @parametrize
+ async def test_method_enable_with_all_params(self, async_client: AsyncOrb) -> None:
+ alert = await async_client.alerts.enable(
+ alert_configuration_id="alert_configuration_id",
+ subscription_id="subscription_id",
)
assert_matches_type(Alert, alert, path=["response"])
@parametrize
async def test_raw_response_enable(self, async_client: AsyncOrb) -> None:
response = await async_client.alerts.with_raw_response.enable(
- "alert_configuration_id",
+ alert_configuration_id="alert_configuration_id",
)
assert response.is_closed is True
@@ -754,7 +786,7 @@ async def test_raw_response_enable(self, async_client: AsyncOrb) -> None:
@parametrize
async def test_streaming_response_enable(self, async_client: AsyncOrb) -> None:
async with async_client.alerts.with_streaming_response.enable(
- "alert_configuration_id",
+ alert_configuration_id="alert_configuration_id",
) as response:
assert not response.is_closed
assert response.http_request.headers.get("X-Stainless-Lang") == "python"
@@ -770,5 +802,5 @@ async def test_path_params_enable(self, async_client: AsyncOrb) -> None:
ValueError, match=r"Expected a non-empty value for `alert_configuration_id` but received ''"
):
await async_client.alerts.with_raw_response.enable(
- "",
+ alert_configuration_id="",
)