diff --git a/.fern/metadata.json b/.fern/metadata.json index d336f8a..f64bd97 100644 --- a/.fern/metadata.json +++ b/.fern/metadata.json @@ -23,6 +23,6 @@ } ] }, - "originGitCommit": "b3ecd0dc127f986fbcb1084dc6be23c66b78ff3f", - "sdkVersion": "1.2.7" + "originGitCommit": "73dfd3abce414c6aab288b3bc0e265f30c14f821", + "sdkVersion": "1.2.8" } \ No newline at end of file diff --git a/.fern/replay.lock b/.fern/replay.lock index a91fd63..7435f5a 100644 --- a/.fern/replay.lock +++ b/.fern/replay.lock @@ -6,5 +6,11 @@ generations: timestamp: 2026-06-16T14:54:21.146Z cli_version: unknown generator_versions: {} -current_generation: 08aaebfda20179ccf2831d30f65f8182f2f74c08 + - commit_sha: 35cd99d8ce4b3a7e348b322eccec390797b1d9d2 + tree_hash: 595ce9c0c589b4a2e55581fa72a619ba6b0551d2 + timestamp: 2026-07-13T17:53:47.698Z + cli_version: unknown + generator_versions: + fernapi/fern-python-sdk: 4.64.1 +current_generation: 35cd99d8ce4b3a7e348b322eccec390797b1d9d2 patches: [] diff --git a/pyproject.toml b/pyproject.toml index af74797..f26ef18 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -4,7 +4,7 @@ dynamic = ["version"] [tool.poetry] name = "schematichq" -version = "1.2.7" +version = "1.2.8" description = "" readme = "README.md" authors = [] diff --git a/reference.md b/reference.md index d129252..615235c 100644 --- a/reference.md +++ b/reference.md @@ -12805,6 +12805,14 @@ client.entitlements.create_plan_entitlement(
+**warning_tiers:** `typing.Optional[typing.List[WarningTierRequestBody]]` + +
+
+ +
+
+ **yearly_metered_price_id:** `typing.Optional[str]`
@@ -13164,6 +13172,14 @@ client.entitlements.update_plan_entitlement(
+**warning_tiers:** `typing.Optional[typing.List[WarningTierRequestBody]]` + +
+
+ +
+
+ **yearly_metered_price_id:** `typing.Optional[str]`
@@ -13558,6 +13574,14 @@ client.entitlements.upsert_plan_entitlement_for_billing_product(
+**warning_tiers:** `typing.Optional[typing.List[WarningTierRequestBody]]` + +
+
+ +
+
+ **yearly_metered_price_id:** `typing.Optional[str]`
@@ -16248,14 +16272,6 @@ client.planbundle.create_plan_bundle(
-**traits:** `typing.Optional[typing.List[UpdatePlanTraitTraitRequestBody]]` - -
-
- -
-
- **request_options:** `typing.Optional[RequestOptions]` — Request-specific configuration.
@@ -16360,14 +16376,6 @@ client.planbundle.update_plan_bundle(
-**traits:** `typing.Optional[typing.List[UpdatePlanTraitTraitRequestBody]]` - -
-
- -
-
- **request_options:** `typing.Optional[RequestOptions]` — Request-specific configuration.
diff --git a/src/schematic/__init__.py b/src/schematic/__init__.py index b8adb42..2eea406 100644 --- a/src/schematic/__init__.py +++ b/src/schematic/__init__.py @@ -199,6 +199,7 @@ EventBodyFlagCheck, EventBodyIdentify, EventBodyIdentifyCompany, + EventBodyInference, EventBodyTrack, EventDetailResponseData, EventResponseData, @@ -384,6 +385,8 @@ UsageTimeSeriesPointResponseData, UserDetailResponseData, UserResponseData, + WarningTierRequestBody, + WarningTierResponseData, WebFeatureUsageWebhookOutput, WebScheduledDowngradeWebhookOutput, WebhookEventDetailResponseData, @@ -1089,6 +1092,7 @@ "EventBodyFlagCheck": ".types", "EventBodyIdentify": ".types", "EventBodyIdentifyCompany": ".types", + "EventBodyInference": ".types", "EventBodyTrack": ".types", "EventDetailResponseData": ".types", "EventResponseData": ".types", @@ -1493,6 +1497,8 @@ "UsageTimeSeriesPointResponseData": ".types", "UserDetailResponseData": ".types", "UserResponseData": ".types", + "WarningTierRequestBody": ".types", + "WarningTierResponseData": ".types", "WebFeatureUsageWebhookOutput": ".types", "WebScheduledDowngradeWebhookOutput": ".types", "WebhookEventDetailResponseData": ".types", @@ -1863,6 +1869,7 @@ def __dir__(): "EventBodyFlagCheck", "EventBodyIdentify", "EventBodyIdentifyCompany", + "EventBodyInference", "EventBodyTrack", "EventDetailResponseData", "EventResponseData", @@ -2267,6 +2274,8 @@ def __dir__(): "UsageTimeSeriesPointResponseData", "UserDetailResponseData", "UserResponseData", + "WarningTierRequestBody", + "WarningTierResponseData", "WebFeatureUsageWebhookOutput", "WebScheduledDowngradeWebhookOutput", "WebhookEventDetailResponseData", diff --git a/src/schematic/core/client_wrapper.py b/src/schematic/core/client_wrapper.py index 6b64373..beba213 100644 --- a/src/schematic/core/client_wrapper.py +++ b/src/schematic/core/client_wrapper.py @@ -27,12 +27,12 @@ def get_headers(self) -> typing.Dict[str, str]: import platform headers: typing.Dict[str, str] = { - "User-Agent": "schematichq/1.2.7", + "User-Agent": "schematichq/1.2.8", "X-Fern-Language": "Python", "X-Fern-Runtime": f"python/{platform.python_version()}", "X-Fern-Platform": f"{platform.system().lower()}/{platform.release()}", "X-Fern-SDK-Name": "schematichq", - "X-Fern-SDK-Version": "1.2.7", + "X-Fern-SDK-Version": "1.2.8", **(self.get_custom_headers() or {}), } headers["X-Schematic-Api-Key"] = self.api_key diff --git a/src/schematic/entitlements/client.py b/src/schematic/entitlements/client.py index 6ebaac7..7a118de 100644 --- a/src/schematic/entitlements/client.py +++ b/src/schematic/entitlements/client.py @@ -14,6 +14,7 @@ from ..types.metric_period import MetricPeriod from ..types.metric_period_month_reset import MetricPeriodMonthReset from ..types.time_series_granularity import TimeSeriesGranularity +from ..types.warning_tier_request_body import WarningTierRequestBody from .raw_client import AsyncRawEntitlementsClient, RawEntitlementsClient from .types.count_company_overrides_response import CountCompanyOverridesResponse from .types.count_feature_companies_response import CountFeatureCompaniesResponse @@ -994,6 +995,7 @@ def create_plan_entitlement( value_credit_id: typing.Optional[str] = OMIT, value_numeric: typing.Optional[int] = OMIT, value_trait_id: typing.Optional[str] = OMIT, + warning_tiers: typing.Optional[typing.Sequence[WarningTierRequestBody]] = OMIT, yearly_metered_price_id: typing.Optional[str] = OMIT, yearly_price_tiers: typing.Optional[typing.Sequence[CreatePriceTierRequestBody]] = OMIT, yearly_unit_price: typing.Optional[int] = OMIT, @@ -1063,6 +1065,8 @@ def create_plan_entitlement( value_trait_id : typing.Optional[str] + warning_tiers : typing.Optional[typing.Sequence[WarningTierRequestBody]] + yearly_metered_price_id : typing.Optional[str] yearly_price_tiers : typing.Optional[typing.Sequence[CreatePriceTierRequestBody]] @@ -1122,6 +1126,7 @@ def create_plan_entitlement( value_credit_id=value_credit_id, value_numeric=value_numeric, value_trait_id=value_trait_id, + warning_tiers=warning_tiers, yearly_metered_price_id=yearly_metered_price_id, yearly_price_tiers=yearly_price_tiers, yearly_unit_price=yearly_unit_price, @@ -1191,6 +1196,7 @@ def update_plan_entitlement( value_credit_id: typing.Optional[str] = OMIT, value_numeric: typing.Optional[int] = OMIT, value_trait_id: typing.Optional[str] = OMIT, + warning_tiers: typing.Optional[typing.Sequence[WarningTierRequestBody]] = OMIT, yearly_metered_price_id: typing.Optional[str] = OMIT, yearly_price_tiers: typing.Optional[typing.Sequence[CreatePriceTierRequestBody]] = OMIT, yearly_unit_price: typing.Optional[int] = OMIT, @@ -1257,6 +1263,8 @@ def update_plan_entitlement( value_trait_id : typing.Optional[str] + warning_tiers : typing.Optional[typing.Sequence[WarningTierRequestBody]] + yearly_metered_price_id : typing.Optional[str] yearly_price_tiers : typing.Optional[typing.Sequence[CreatePriceTierRequestBody]] @@ -1313,6 +1321,7 @@ def update_plan_entitlement( value_credit_id=value_credit_id, value_numeric=value_numeric, value_trait_id=value_trait_id, + warning_tiers=warning_tiers, yearly_metered_price_id=yearly_metered_price_id, yearly_price_tiers=yearly_price_tiers, yearly_unit_price=yearly_unit_price, @@ -1386,6 +1395,7 @@ def upsert_plan_entitlement_for_billing_product( value_credit_id: typing.Optional[str] = OMIT, value_numeric: typing.Optional[int] = OMIT, value_trait_id: typing.Optional[str] = OMIT, + warning_tiers: typing.Optional[typing.Sequence[WarningTierRequestBody]] = OMIT, yearly_metered_price_id: typing.Optional[str] = OMIT, yearly_price_tiers: typing.Optional[typing.Sequence[CreatePriceTierRequestBody]] = OMIT, yearly_unit_price: typing.Optional[int] = OMIT, @@ -1459,6 +1469,8 @@ def upsert_plan_entitlement_for_billing_product( value_trait_id : typing.Optional[str] + warning_tiers : typing.Optional[typing.Sequence[WarningTierRequestBody]] + yearly_metered_price_id : typing.Optional[str] yearly_price_tiers : typing.Optional[typing.Sequence[CreatePriceTierRequestBody]] @@ -1522,6 +1534,7 @@ def upsert_plan_entitlement_for_billing_product( value_credit_id=value_credit_id, value_numeric=value_numeric, value_trait_id=value_trait_id, + warning_tiers=warning_tiers, yearly_metered_price_id=yearly_metered_price_id, yearly_price_tiers=yearly_price_tiers, yearly_unit_price=yearly_unit_price, @@ -2757,6 +2770,7 @@ async def create_plan_entitlement( value_credit_id: typing.Optional[str] = OMIT, value_numeric: typing.Optional[int] = OMIT, value_trait_id: typing.Optional[str] = OMIT, + warning_tiers: typing.Optional[typing.Sequence[WarningTierRequestBody]] = OMIT, yearly_metered_price_id: typing.Optional[str] = OMIT, yearly_price_tiers: typing.Optional[typing.Sequence[CreatePriceTierRequestBody]] = OMIT, yearly_unit_price: typing.Optional[int] = OMIT, @@ -2826,6 +2840,8 @@ async def create_plan_entitlement( value_trait_id : typing.Optional[str] + warning_tiers : typing.Optional[typing.Sequence[WarningTierRequestBody]] + yearly_metered_price_id : typing.Optional[str] yearly_price_tiers : typing.Optional[typing.Sequence[CreatePriceTierRequestBody]] @@ -2893,6 +2909,7 @@ async def main() -> None: value_credit_id=value_credit_id, value_numeric=value_numeric, value_trait_id=value_trait_id, + warning_tiers=warning_tiers, yearly_metered_price_id=yearly_metered_price_id, yearly_price_tiers=yearly_price_tiers, yearly_unit_price=yearly_unit_price, @@ -2970,6 +2987,7 @@ async def update_plan_entitlement( value_credit_id: typing.Optional[str] = OMIT, value_numeric: typing.Optional[int] = OMIT, value_trait_id: typing.Optional[str] = OMIT, + warning_tiers: typing.Optional[typing.Sequence[WarningTierRequestBody]] = OMIT, yearly_metered_price_id: typing.Optional[str] = OMIT, yearly_price_tiers: typing.Optional[typing.Sequence[CreatePriceTierRequestBody]] = OMIT, yearly_unit_price: typing.Optional[int] = OMIT, @@ -3036,6 +3054,8 @@ async def update_plan_entitlement( value_trait_id : typing.Optional[str] + warning_tiers : typing.Optional[typing.Sequence[WarningTierRequestBody]] + yearly_metered_price_id : typing.Optional[str] yearly_price_tiers : typing.Optional[typing.Sequence[CreatePriceTierRequestBody]] @@ -3100,6 +3120,7 @@ async def main() -> None: value_credit_id=value_credit_id, value_numeric=value_numeric, value_trait_id=value_trait_id, + warning_tiers=warning_tiers, yearly_metered_price_id=yearly_metered_price_id, yearly_price_tiers=yearly_price_tiers, yearly_unit_price=yearly_unit_price, @@ -3181,6 +3202,7 @@ async def upsert_plan_entitlement_for_billing_product( value_credit_id: typing.Optional[str] = OMIT, value_numeric: typing.Optional[int] = OMIT, value_trait_id: typing.Optional[str] = OMIT, + warning_tiers: typing.Optional[typing.Sequence[WarningTierRequestBody]] = OMIT, yearly_metered_price_id: typing.Optional[str] = OMIT, yearly_price_tiers: typing.Optional[typing.Sequence[CreatePriceTierRequestBody]] = OMIT, yearly_unit_price: typing.Optional[int] = OMIT, @@ -3254,6 +3276,8 @@ async def upsert_plan_entitlement_for_billing_product( value_trait_id : typing.Optional[str] + warning_tiers : typing.Optional[typing.Sequence[WarningTierRequestBody]] + yearly_metered_price_id : typing.Optional[str] yearly_price_tiers : typing.Optional[typing.Sequence[CreatePriceTierRequestBody]] @@ -3325,6 +3349,7 @@ async def main() -> None: value_credit_id=value_credit_id, value_numeric=value_numeric, value_trait_id=value_trait_id, + warning_tiers=warning_tiers, yearly_metered_price_id=yearly_metered_price_id, yearly_price_tiers=yearly_price_tiers, yearly_unit_price=yearly_unit_price, diff --git a/src/schematic/entitlements/raw_client.py b/src/schematic/entitlements/raw_client.py index 4c3fe11..67fade7 100644 --- a/src/schematic/entitlements/raw_client.py +++ b/src/schematic/entitlements/raw_client.py @@ -28,6 +28,7 @@ from ..types.metric_period import MetricPeriod from ..types.metric_period_month_reset import MetricPeriodMonthReset from ..types.time_series_granularity import TimeSeriesGranularity +from ..types.warning_tier_request_body import WarningTierRequestBody from .types.count_company_overrides_response import CountCompanyOverridesResponse from .types.count_feature_companies_response import CountFeatureCompaniesResponse from .types.count_feature_usage_response import CountFeatureUsageResponse @@ -1899,6 +1900,7 @@ def create_plan_entitlement( value_credit_id: typing.Optional[str] = OMIT, value_numeric: typing.Optional[int] = OMIT, value_trait_id: typing.Optional[str] = OMIT, + warning_tiers: typing.Optional[typing.Sequence[WarningTierRequestBody]] = OMIT, yearly_metered_price_id: typing.Optional[str] = OMIT, yearly_price_tiers: typing.Optional[typing.Sequence[CreatePriceTierRequestBody]] = OMIT, yearly_unit_price: typing.Optional[int] = OMIT, @@ -1968,6 +1970,8 @@ def create_plan_entitlement( value_trait_id : typing.Optional[str] + warning_tiers : typing.Optional[typing.Sequence[WarningTierRequestBody]] + yearly_metered_price_id : typing.Optional[str] yearly_price_tiers : typing.Optional[typing.Sequence[CreatePriceTierRequestBody]] @@ -2029,6 +2033,9 @@ def create_plan_entitlement( "value_numeric": value_numeric, "value_trait_id": value_trait_id, "value_type": value_type, + "warning_tiers": convert_and_respect_annotation_metadata( + object_=warning_tiers, annotation=typing.Sequence[WarningTierRequestBody], direction="write" + ), "yearly_metered_price_id": yearly_metered_price_id, "yearly_price_tiers": convert_and_respect_annotation_metadata( object_=yearly_price_tiers, @@ -2241,6 +2248,7 @@ def update_plan_entitlement( value_credit_id: typing.Optional[str] = OMIT, value_numeric: typing.Optional[int] = OMIT, value_trait_id: typing.Optional[str] = OMIT, + warning_tiers: typing.Optional[typing.Sequence[WarningTierRequestBody]] = OMIT, yearly_metered_price_id: typing.Optional[str] = OMIT, yearly_price_tiers: typing.Optional[typing.Sequence[CreatePriceTierRequestBody]] = OMIT, yearly_unit_price: typing.Optional[int] = OMIT, @@ -2307,6 +2315,8 @@ def update_plan_entitlement( value_trait_id : typing.Optional[str] + warning_tiers : typing.Optional[typing.Sequence[WarningTierRequestBody]] + yearly_metered_price_id : typing.Optional[str] yearly_price_tiers : typing.Optional[typing.Sequence[CreatePriceTierRequestBody]] @@ -2365,6 +2375,9 @@ def update_plan_entitlement( "value_numeric": value_numeric, "value_trait_id": value_trait_id, "value_type": value_type, + "warning_tiers": convert_and_respect_annotation_metadata( + object_=warning_tiers, annotation=typing.Sequence[WarningTierRequestBody], direction="write" + ), "yearly_metered_price_id": yearly_metered_price_id, "yearly_price_tiers": convert_and_respect_annotation_metadata( object_=yearly_price_tiers, @@ -2592,6 +2605,7 @@ def upsert_plan_entitlement_for_billing_product( value_credit_id: typing.Optional[str] = OMIT, value_numeric: typing.Optional[int] = OMIT, value_trait_id: typing.Optional[str] = OMIT, + warning_tiers: typing.Optional[typing.Sequence[WarningTierRequestBody]] = OMIT, yearly_metered_price_id: typing.Optional[str] = OMIT, yearly_price_tiers: typing.Optional[typing.Sequence[CreatePriceTierRequestBody]] = OMIT, yearly_unit_price: typing.Optional[int] = OMIT, @@ -2665,6 +2679,8 @@ def upsert_plan_entitlement_for_billing_product( value_trait_id : typing.Optional[str] + warning_tiers : typing.Optional[typing.Sequence[WarningTierRequestBody]] + yearly_metered_price_id : typing.Optional[str] yearly_price_tiers : typing.Optional[typing.Sequence[CreatePriceTierRequestBody]] @@ -2728,6 +2744,9 @@ def upsert_plan_entitlement_for_billing_product( "value_numeric": value_numeric, "value_trait_id": value_trait_id, "value_type": value_type, + "warning_tiers": convert_and_respect_annotation_metadata( + object_=warning_tiers, annotation=typing.Sequence[WarningTierRequestBody], direction="write" + ), "yearly_metered_price_id": yearly_metered_price_id, "yearly_price_tiers": convert_and_respect_annotation_metadata( object_=yearly_price_tiers, @@ -5022,6 +5041,7 @@ async def create_plan_entitlement( value_credit_id: typing.Optional[str] = OMIT, value_numeric: typing.Optional[int] = OMIT, value_trait_id: typing.Optional[str] = OMIT, + warning_tiers: typing.Optional[typing.Sequence[WarningTierRequestBody]] = OMIT, yearly_metered_price_id: typing.Optional[str] = OMIT, yearly_price_tiers: typing.Optional[typing.Sequence[CreatePriceTierRequestBody]] = OMIT, yearly_unit_price: typing.Optional[int] = OMIT, @@ -5091,6 +5111,8 @@ async def create_plan_entitlement( value_trait_id : typing.Optional[str] + warning_tiers : typing.Optional[typing.Sequence[WarningTierRequestBody]] + yearly_metered_price_id : typing.Optional[str] yearly_price_tiers : typing.Optional[typing.Sequence[CreatePriceTierRequestBody]] @@ -5152,6 +5174,9 @@ async def create_plan_entitlement( "value_numeric": value_numeric, "value_trait_id": value_trait_id, "value_type": value_type, + "warning_tiers": convert_and_respect_annotation_metadata( + object_=warning_tiers, annotation=typing.Sequence[WarningTierRequestBody], direction="write" + ), "yearly_metered_price_id": yearly_metered_price_id, "yearly_price_tiers": convert_and_respect_annotation_metadata( object_=yearly_price_tiers, @@ -5364,6 +5389,7 @@ async def update_plan_entitlement( value_credit_id: typing.Optional[str] = OMIT, value_numeric: typing.Optional[int] = OMIT, value_trait_id: typing.Optional[str] = OMIT, + warning_tiers: typing.Optional[typing.Sequence[WarningTierRequestBody]] = OMIT, yearly_metered_price_id: typing.Optional[str] = OMIT, yearly_price_tiers: typing.Optional[typing.Sequence[CreatePriceTierRequestBody]] = OMIT, yearly_unit_price: typing.Optional[int] = OMIT, @@ -5430,6 +5456,8 @@ async def update_plan_entitlement( value_trait_id : typing.Optional[str] + warning_tiers : typing.Optional[typing.Sequence[WarningTierRequestBody]] + yearly_metered_price_id : typing.Optional[str] yearly_price_tiers : typing.Optional[typing.Sequence[CreatePriceTierRequestBody]] @@ -5488,6 +5516,9 @@ async def update_plan_entitlement( "value_numeric": value_numeric, "value_trait_id": value_trait_id, "value_type": value_type, + "warning_tiers": convert_and_respect_annotation_metadata( + object_=warning_tiers, annotation=typing.Sequence[WarningTierRequestBody], direction="write" + ), "yearly_metered_price_id": yearly_metered_price_id, "yearly_price_tiers": convert_and_respect_annotation_metadata( object_=yearly_price_tiers, @@ -5715,6 +5746,7 @@ async def upsert_plan_entitlement_for_billing_product( value_credit_id: typing.Optional[str] = OMIT, value_numeric: typing.Optional[int] = OMIT, value_trait_id: typing.Optional[str] = OMIT, + warning_tiers: typing.Optional[typing.Sequence[WarningTierRequestBody]] = OMIT, yearly_metered_price_id: typing.Optional[str] = OMIT, yearly_price_tiers: typing.Optional[typing.Sequence[CreatePriceTierRequestBody]] = OMIT, yearly_unit_price: typing.Optional[int] = OMIT, @@ -5788,6 +5820,8 @@ async def upsert_plan_entitlement_for_billing_product( value_trait_id : typing.Optional[str] + warning_tiers : typing.Optional[typing.Sequence[WarningTierRequestBody]] + yearly_metered_price_id : typing.Optional[str] yearly_price_tiers : typing.Optional[typing.Sequence[CreatePriceTierRequestBody]] @@ -5851,6 +5885,9 @@ async def upsert_plan_entitlement_for_billing_product( "value_numeric": value_numeric, "value_trait_id": value_trait_id, "value_type": value_type, + "warning_tiers": convert_and_respect_annotation_metadata( + object_=warning_tiers, annotation=typing.Sequence[WarningTierRequestBody], direction="write" + ), "yearly_metered_price_id": yearly_metered_price_id, "yearly_price_tiers": convert_and_respect_annotation_metadata( object_=yearly_price_tiers, diff --git a/src/schematic/planbundle/client.py b/src/schematic/planbundle/client.py index d525cb7..aa84b40 100644 --- a/src/schematic/planbundle/client.py +++ b/src/schematic/planbundle/client.py @@ -9,7 +9,6 @@ from ..types.plan_bundle_credit_grant_request_body import PlanBundleCreditGrantRequestBody from ..types.plan_bundle_entitlement_request_body import PlanBundleEntitlementRequestBody from ..types.update_plan_request_body import UpdatePlanRequestBody -from ..types.update_plan_trait_trait_request_body import UpdatePlanTraitTraitRequestBody from ..types.upsert_billing_product_request_body import UpsertBillingProductRequestBody from .raw_client import AsyncRawPlanbundleClient, RawPlanbundleClient from .types.create_custom_plan_bundle_response import CreateCustomPlanBundleResponse @@ -87,7 +86,6 @@ def create_plan_bundle( billing_product: typing.Optional[UpsertBillingProductRequestBody] = OMIT, credit_grants: typing.Optional[typing.Sequence[PlanBundleCreditGrantRequestBody]] = OMIT, plan: typing.Optional[CreatePlanRequestBody] = OMIT, - traits: typing.Optional[typing.Sequence[UpdatePlanTraitTraitRequestBody]] = OMIT, request_options: typing.Optional[RequestOptions] = None, ) -> CreatePlanBundleResponse: """ @@ -101,8 +99,6 @@ def create_plan_bundle( plan : typing.Optional[CreatePlanRequestBody] - traits : typing.Optional[typing.Sequence[UpdatePlanTraitTraitRequestBody]] - request_options : typing.Optional[RequestOptions] Request-specific configuration. @@ -131,7 +127,6 @@ def create_plan_bundle( billing_product=billing_product, credit_grants=credit_grants, plan=plan, - traits=traits, request_options=request_options, ) return _response.data @@ -145,7 +140,6 @@ def update_plan_bundle( credit_grants: typing.Optional[typing.Sequence[PlanBundleCreditGrantRequestBody]] = OMIT, plan: typing.Optional[UpdatePlanRequestBody] = OMIT, plan_version_id: typing.Optional[str] = OMIT, - traits: typing.Optional[typing.Sequence[UpdatePlanTraitTraitRequestBody]] = OMIT, request_options: typing.Optional[RequestOptions] = None, ) -> UpdatePlanBundleResponse: """ @@ -164,8 +158,6 @@ def update_plan_bundle( plan_version_id : typing.Optional[str] - traits : typing.Optional[typing.Sequence[UpdatePlanTraitTraitRequestBody]] - request_options : typing.Optional[RequestOptions] Request-specific configuration. @@ -197,7 +189,6 @@ def update_plan_bundle( credit_grants=credit_grants, plan=plan, plan_version_id=plan_version_id, - traits=traits, request_options=request_options, ) return _response.data @@ -278,7 +269,6 @@ async def create_plan_bundle( billing_product: typing.Optional[UpsertBillingProductRequestBody] = OMIT, credit_grants: typing.Optional[typing.Sequence[PlanBundleCreditGrantRequestBody]] = OMIT, plan: typing.Optional[CreatePlanRequestBody] = OMIT, - traits: typing.Optional[typing.Sequence[UpdatePlanTraitTraitRequestBody]] = OMIT, request_options: typing.Optional[RequestOptions] = None, ) -> CreatePlanBundleResponse: """ @@ -292,8 +282,6 @@ async def create_plan_bundle( plan : typing.Optional[CreatePlanRequestBody] - traits : typing.Optional[typing.Sequence[UpdatePlanTraitTraitRequestBody]] - request_options : typing.Optional[RequestOptions] Request-specific configuration. @@ -330,7 +318,6 @@ async def main() -> None: billing_product=billing_product, credit_grants=credit_grants, plan=plan, - traits=traits, request_options=request_options, ) return _response.data @@ -344,7 +331,6 @@ async def update_plan_bundle( credit_grants: typing.Optional[typing.Sequence[PlanBundleCreditGrantRequestBody]] = OMIT, plan: typing.Optional[UpdatePlanRequestBody] = OMIT, plan_version_id: typing.Optional[str] = OMIT, - traits: typing.Optional[typing.Sequence[UpdatePlanTraitTraitRequestBody]] = OMIT, request_options: typing.Optional[RequestOptions] = None, ) -> UpdatePlanBundleResponse: """ @@ -363,8 +349,6 @@ async def update_plan_bundle( plan_version_id : typing.Optional[str] - traits : typing.Optional[typing.Sequence[UpdatePlanTraitTraitRequestBody]] - request_options : typing.Optional[RequestOptions] Request-specific configuration. @@ -404,7 +388,6 @@ async def main() -> None: credit_grants=credit_grants, plan=plan, plan_version_id=plan_version_id, - traits=traits, request_options=request_options, ) return _response.data diff --git a/src/schematic/planbundle/raw_client.py b/src/schematic/planbundle/raw_client.py index df71df9..356ab1c 100644 --- a/src/schematic/planbundle/raw_client.py +++ b/src/schematic/planbundle/raw_client.py @@ -22,7 +22,6 @@ from ..types.plan_bundle_credit_grant_request_body import PlanBundleCreditGrantRequestBody from ..types.plan_bundle_entitlement_request_body import PlanBundleEntitlementRequestBody from ..types.update_plan_request_body import UpdatePlanRequestBody -from ..types.update_plan_trait_trait_request_body import UpdatePlanTraitTraitRequestBody from ..types.upsert_billing_product_request_body import UpsertBillingProductRequestBody from .types.create_custom_plan_bundle_response import CreateCustomPlanBundleResponse from .types.create_plan_bundle_response import CreatePlanBundleResponse @@ -169,7 +168,6 @@ def create_plan_bundle( billing_product: typing.Optional[UpsertBillingProductRequestBody] = OMIT, credit_grants: typing.Optional[typing.Sequence[PlanBundleCreditGrantRequestBody]] = OMIT, plan: typing.Optional[CreatePlanRequestBody] = OMIT, - traits: typing.Optional[typing.Sequence[UpdatePlanTraitTraitRequestBody]] = OMIT, request_options: typing.Optional[RequestOptions] = None, ) -> HttpResponse[CreatePlanBundleResponse]: """ @@ -183,8 +181,6 @@ def create_plan_bundle( plan : typing.Optional[CreatePlanRequestBody] - traits : typing.Optional[typing.Sequence[UpdatePlanTraitTraitRequestBody]] - request_options : typing.Optional[RequestOptions] Request-specific configuration. @@ -213,9 +209,6 @@ def create_plan_bundle( "plan": convert_and_respect_annotation_metadata( object_=plan, annotation=CreatePlanRequestBody, direction="write" ), - "traits": convert_and_respect_annotation_metadata( - object_=traits, annotation=typing.Sequence[UpdatePlanTraitTraitRequestBody], direction="write" - ), }, headers={ "content-type": "application/json", @@ -310,7 +303,6 @@ def update_plan_bundle( credit_grants: typing.Optional[typing.Sequence[PlanBundleCreditGrantRequestBody]] = OMIT, plan: typing.Optional[UpdatePlanRequestBody] = OMIT, plan_version_id: typing.Optional[str] = OMIT, - traits: typing.Optional[typing.Sequence[UpdatePlanTraitTraitRequestBody]] = OMIT, request_options: typing.Optional[RequestOptions] = None, ) -> HttpResponse[UpdatePlanBundleResponse]: """ @@ -329,8 +321,6 @@ def update_plan_bundle( plan_version_id : typing.Optional[str] - traits : typing.Optional[typing.Sequence[UpdatePlanTraitTraitRequestBody]] - request_options : typing.Optional[RequestOptions] Request-specific configuration. @@ -360,9 +350,6 @@ def update_plan_bundle( object_=plan, annotation=UpdatePlanRequestBody, direction="write" ), "plan_version_id": plan_version_id, - "traits": convert_and_respect_annotation_metadata( - object_=traits, annotation=typing.Sequence[UpdatePlanTraitTraitRequestBody], direction="write" - ), }, headers={ "content-type": "application/json", @@ -585,7 +572,6 @@ async def create_plan_bundle( billing_product: typing.Optional[UpsertBillingProductRequestBody] = OMIT, credit_grants: typing.Optional[typing.Sequence[PlanBundleCreditGrantRequestBody]] = OMIT, plan: typing.Optional[CreatePlanRequestBody] = OMIT, - traits: typing.Optional[typing.Sequence[UpdatePlanTraitTraitRequestBody]] = OMIT, request_options: typing.Optional[RequestOptions] = None, ) -> AsyncHttpResponse[CreatePlanBundleResponse]: """ @@ -599,8 +585,6 @@ async def create_plan_bundle( plan : typing.Optional[CreatePlanRequestBody] - traits : typing.Optional[typing.Sequence[UpdatePlanTraitTraitRequestBody]] - request_options : typing.Optional[RequestOptions] Request-specific configuration. @@ -629,9 +613,6 @@ async def create_plan_bundle( "plan": convert_and_respect_annotation_metadata( object_=plan, annotation=CreatePlanRequestBody, direction="write" ), - "traits": convert_and_respect_annotation_metadata( - object_=traits, annotation=typing.Sequence[UpdatePlanTraitTraitRequestBody], direction="write" - ), }, headers={ "content-type": "application/json", @@ -726,7 +707,6 @@ async def update_plan_bundle( credit_grants: typing.Optional[typing.Sequence[PlanBundleCreditGrantRequestBody]] = OMIT, plan: typing.Optional[UpdatePlanRequestBody] = OMIT, plan_version_id: typing.Optional[str] = OMIT, - traits: typing.Optional[typing.Sequence[UpdatePlanTraitTraitRequestBody]] = OMIT, request_options: typing.Optional[RequestOptions] = None, ) -> AsyncHttpResponse[UpdatePlanBundleResponse]: """ @@ -745,8 +725,6 @@ async def update_plan_bundle( plan_version_id : typing.Optional[str] - traits : typing.Optional[typing.Sequence[UpdatePlanTraitTraitRequestBody]] - request_options : typing.Optional[RequestOptions] Request-specific configuration. @@ -776,9 +754,6 @@ async def update_plan_bundle( object_=plan, annotation=UpdatePlanRequestBody, direction="write" ), "plan_version_id": plan_version_id, - "traits": convert_and_respect_annotation_metadata( - object_=traits, annotation=typing.Sequence[UpdatePlanTraitTraitRequestBody], direction="write" - ), }, headers={ "content-type": "application/json", diff --git a/src/schematic/types/__init__.py b/src/schematic/types/__init__.py index 21b3f0f..50b508c 100644 --- a/src/schematic/types/__init__.py +++ b/src/schematic/types/__init__.py @@ -198,6 +198,7 @@ from .event_body_flag_check import EventBodyFlagCheck from .event_body_identify import EventBodyIdentify from .event_body_identify_company import EventBodyIdentifyCompany + from .event_body_inference import EventBodyInference from .event_body_track import EventBodyTrack from .event_detail_response_data import EventDetailResponseData from .event_response_data import EventResponseData @@ -385,6 +386,8 @@ from .usage_time_series_point_response_data import UsageTimeSeriesPointResponseData from .user_detail_response_data import UserDetailResponseData from .user_response_data import UserResponseData + from .warning_tier_request_body import WarningTierRequestBody + from .warning_tier_response_data import WarningTierResponseData from .web_feature_usage_webhook_output import WebFeatureUsageWebhookOutput from .web_scheduled_downgrade_webhook_output import WebScheduledDowngradeWebhookOutput from .webhook_event_detail_response_data import WebhookEventDetailResponseData @@ -589,6 +592,7 @@ "EventBodyFlagCheck": ".event_body_flag_check", "EventBodyIdentify": ".event_body_identify", "EventBodyIdentifyCompany": ".event_body_identify_company", + "EventBodyInference": ".event_body_inference", "EventBodyTrack": ".event_body_track", "EventDetailResponseData": ".event_detail_response_data", "EventResponseData": ".event_response_data", @@ -774,6 +778,8 @@ "UsageTimeSeriesPointResponseData": ".usage_time_series_point_response_data", "UserDetailResponseData": ".user_detail_response_data", "UserResponseData": ".user_response_data", + "WarningTierRequestBody": ".warning_tier_request_body", + "WarningTierResponseData": ".warning_tier_response_data", "WebFeatureUsageWebhookOutput": ".web_feature_usage_webhook_output", "WebScheduledDowngradeWebhookOutput": ".web_scheduled_downgrade_webhook_output", "WebhookEventDetailResponseData": ".webhook_event_detail_response_data", @@ -1002,6 +1008,7 @@ def __dir__(): "EventBodyFlagCheck", "EventBodyIdentify", "EventBodyIdentifyCompany", + "EventBodyInference", "EventBodyTrack", "EventDetailResponseData", "EventResponseData", @@ -1187,6 +1194,8 @@ def __dir__(): "UsageTimeSeriesPointResponseData", "UserDetailResponseData", "UserResponseData", + "WarningTierRequestBody", + "WarningTierResponseData", "WebFeatureUsageWebhookOutput", "WebScheduledDowngradeWebhookOutput", "WebhookEventDetailResponseData", diff --git a/src/schematic/types/account_member_permission.py b/src/schematic/types/account_member_permission.py index 693e716..7661c72 100644 --- a/src/schematic/types/account_member_permission.py +++ b/src/schematic/types/account_member_permission.py @@ -7,6 +7,7 @@ "companies_edit", "company_users_edit", "components_edit", + "custom_plans_edit", "data_exports_edit", "features_edit", "flag_rules_edit", diff --git a/src/schematic/types/billing_credit_grant_zeroed_out_reason.py b/src/schematic/types/billing_credit_grant_zeroed_out_reason.py index 6f5860d..9f3e384 100644 --- a/src/schematic/types/billing_credit_grant_zeroed_out_reason.py +++ b/src/schematic/types/billing_credit_grant_zeroed_out_reason.py @@ -3,6 +3,14 @@ import typing BillingCreditGrantZeroedOutReason = typing.Union[ - typing.Literal["expired", "integration_uninstalled", "manual", "plan_change", "plan_period_reset", "reconciled"], + typing.Literal[ + "customer_archived", + "expired", + "integration_uninstalled", + "manual", + "plan_change", + "plan_period_reset", + "reconciled", + ], typing.Any, ] diff --git a/src/schematic/types/billing_plan_credit_grant_reset_cadence.py b/src/schematic/types/billing_plan_credit_grant_reset_cadence.py index 6a72401..f60956a 100644 --- a/src/schematic/types/billing_plan_credit_grant_reset_cadence.py +++ b/src/schematic/types/billing_plan_credit_grant_reset_cadence.py @@ -2,4 +2,6 @@ import typing -BillingPlanCreditGrantResetCadence = typing.Union[typing.Literal["daily", "monthly", "weekly", "yearly"], typing.Any] +BillingPlanCreditGrantResetCadence = typing.Union[ + typing.Literal["daily", "every_6_months", "monthly", "quarterly", "weekly", "yearly"], typing.Any +] diff --git a/src/schematic/types/event_body.py b/src/schematic/types/event_body.py index f202a9e..b80612d 100644 --- a/src/schematic/types/event_body.py +++ b/src/schematic/types/event_body.py @@ -4,6 +4,7 @@ from .event_body_flag_check import EventBodyFlagCheck from .event_body_identify import EventBodyIdentify +from .event_body_inference import EventBodyInference from .event_body_track import EventBodyTrack -EventBody = typing.Union[EventBodyTrack, EventBodyFlagCheck, EventBodyIdentify] +EventBody = typing.Union[EventBodyTrack, EventBodyFlagCheck, EventBodyIdentify, EventBodyInference] diff --git a/src/schematic/types/event_body_inference.py b/src/schematic/types/event_body_inference.py new file mode 100644 index 0000000..124518c --- /dev/null +++ b/src/schematic/types/event_body_inference.py @@ -0,0 +1,87 @@ +# This file was auto-generated by Fern from our API Definition. + +import typing + +import pydantic +from ..core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel + + +class EventBodyInference(UniversalBaseModel): + cached_input_tokens: typing.Optional[int] = pydantic.Field(default=None) + """ + Number of input tokens served from cache + """ + + company: typing.Dict[str, str] = pydantic.Field() + """ + Key-value pairs to identify the company associated with the inference event + """ + + cost: typing.Optional[str] = pydantic.Field(default=None) + """ + Provided cost of the inference request as a decimal string; derived from model pricing when omitted + """ + + currency: typing.Optional[str] = pydantic.Field(default=None) + """ + ISO 4217 currency code for the provided cost; defaults to 'usd' + """ + + event: typing.Optional[str] = pydantic.Field(default=None) + """ + Optional track event name to fan out for usage-based billing + """ + + input_tokens: int = pydantic.Field() + """ + Number of input tokens for the inference request + """ + + operation: typing.Optional[str] = pydantic.Field(default=None) + """ + The inference operation; defaults to 'chat' + """ + + output_tokens: int = pydantic.Field() + """ + Number of output tokens for the inference request + """ + + provider: str = pydantic.Field() + """ + The inference provider (e.g. 'anthropic', 'openai') + """ + + reasoning_tokens: typing.Optional[int] = pydantic.Field(default=None) + """ + Number of reasoning tokens for the inference request + """ + + request_model: typing.Optional[str] = pydantic.Field(default=None) + """ + The model requested for the inference request + """ + + requests: typing.Optional[int] = pydantic.Field(default=None) + """ + Number of requests represented by this event; defaults to 1 + """ + + response_model: str = pydantic.Field() + """ + The model that served the inference response + """ + + user: typing.Optional[typing.Dict[str, str]] = pydantic.Field(default=None) + """ + Key-value pairs to identify the user associated with the inference event + """ + + if IS_PYDANTIC_V2: + model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 + else: + + class Config: + frozen = True + smart_union = True + extra = pydantic.Extra.allow diff --git a/src/schematic/types/event_type.py b/src/schematic/types/event_type.py index f82e7b1..c398826 100644 --- a/src/schematic/types/event_type.py +++ b/src/schematic/types/event_type.py @@ -2,4 +2,4 @@ import typing -EventType = typing.Union[typing.Literal["flag_check", "identify", "track"], typing.Any] +EventType = typing.Union[typing.Literal["flag_check", "identify", "inference", "track"], typing.Any] diff --git a/src/schematic/types/plan_bundle_response_data.py b/src/schematic/types/plan_bundle_response_data.py index 1b06e35..550453e 100644 --- a/src/schematic/types/plan_bundle_response_data.py +++ b/src/schematic/types/plan_bundle_response_data.py @@ -8,7 +8,6 @@ from .billing_product_plan_response_data import BillingProductPlanResponseData from .plan_entitlement_response_data import PlanEntitlementResponseData from .plan_response_data import PlanResponseData -from .plan_trait_response_data import PlanTraitResponseData class PlanBundleResponseData(UniversalBaseModel): @@ -16,7 +15,6 @@ class PlanBundleResponseData(UniversalBaseModel): credit_grants: typing.Optional[typing.List[BillingPlanCreditGrantResponseData]] = None entitlements: typing.Optional[typing.List[PlanEntitlementResponseData]] = None plan: typing.Optional[PlanResponseData] = None - traits: typing.Optional[typing.List[PlanTraitResponseData]] = None if IS_PYDANTIC_V2: model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 diff --git a/src/schematic/types/plan_entitlement_response_data.py b/src/schematic/types/plan_entitlement_response_data.py index dc24b51..c9245b0 100644 --- a/src/schematic/types/plan_entitlement_response_data.py +++ b/src/schematic/types/plan_entitlement_response_data.py @@ -17,6 +17,7 @@ from .metric_period import MetricPeriod from .metric_period_month_reset import MetricPeriodMonthReset from .plan_response_data import PlanResponseData +from .warning_tier_response_data import WarningTierResponseData class PlanEntitlementResponseData(UniversalBaseModel): @@ -53,6 +54,7 @@ class PlanEntitlementResponseData(UniversalBaseModel): value_trait: typing.Optional[EntityTraitDefinitionResponseData] = None value_trait_id: typing.Optional[str] = None value_type: EntitlementValueType + warning_tiers: typing.List[WarningTierResponseData] if IS_PYDANTIC_V2: model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 diff --git a/src/schematic/types/warning_tier_request_body.py b/src/schematic/types/warning_tier_request_body.py new file mode 100644 index 0000000..3a38d63 --- /dev/null +++ b/src/schematic/types/warning_tier_request_body.py @@ -0,0 +1,20 @@ +# This file was auto-generated by Fern from our API Definition. + +import typing + +import pydantic +from ..core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel + + +class WarningTierRequestBody(UniversalBaseModel): + key: str + value: int + + if IS_PYDANTIC_V2: + model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 + else: + + class Config: + frozen = True + smart_union = True + extra = pydantic.Extra.allow diff --git a/src/schematic/types/warning_tier_response_data.py b/src/schematic/types/warning_tier_response_data.py new file mode 100644 index 0000000..6ea36e5 --- /dev/null +++ b/src/schematic/types/warning_tier_response_data.py @@ -0,0 +1,21 @@ +# This file was auto-generated by Fern from our API Definition. + +import typing + +import pydantic +from ..core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel + + +class WarningTierResponseData(UniversalBaseModel): + id: str + key: str + value: int + + if IS_PYDANTIC_V2: + model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 + else: + + class Config: + frozen = True + smart_union = True + extra = pydantic.Extra.allow