tirdad-sdk 2.1.12__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- tirdad_sdk-2.1.12/MANIFEST.in +3 -0
- tirdad_sdk-2.1.12/PKG-INFO +209 -0
- tirdad_sdk-2.1.12/README.md +197 -0
- tirdad_sdk-2.1.12/examples/.env.sample +3 -0
- tirdad_sdk-2.1.12/examples/.gitignore +2 -0
- tirdad_sdk-2.1.12/examples/README.md +14 -0
- tirdad_sdk-2.1.12/examples/async_event_example.py +51 -0
- tirdad_sdk-2.1.12/examples/complete.py +472 -0
- tirdad_sdk-2.1.12/examples/example.py +60 -0
- tirdad_sdk-2.1.12/examples/requirements.txt +2 -0
- tirdad_sdk-2.1.12/pyproject.toml +53 -0
- tirdad_sdk-2.1.12/setup.cfg +4 -0
- tirdad_sdk-2.1.12/src/acme_sdk/_hooks/registration.py +13 -0
- tirdad_sdk-2.1.12/src/flexprice/_hooks/registration.py +13 -0
- tirdad_sdk-2.1.12/src/omkar_sdk/_hooks/registration.py +13 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/__init__.py +17 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/_hooks/__init__.py +5 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/_hooks/registration.py +13 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/_hooks/sdkhooks.py +76 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/_hooks/types.py +112 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/_version.py +15 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/addons.py +1305 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/alerts.py +301 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/basesdk.py +396 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/costs.py +1793 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/coupons.py +1164 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/credit_grants.py +1141 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/credit_notes.py +878 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/customers.py +2093 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/entitlements.py +1803 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/environments.py +238 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/events.py +1935 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/features.py +1291 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/groups.py +895 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/httpclient.py +125 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/integrations.py +612 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/invoices.py +3240 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/__init__.py +3273 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/activatedraftsubscriptionrequest.py +16 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/activatesubscriptionop.py +30 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/addaddonrequest.py +66 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/addaddontosubscriptionrequest.py +63 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/addon.py +81 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/addonassociationentitytype.py +15 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/addonassociationresponse.py +113 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/addoncadence.py +10 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/addonfilter.py +87 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/addonresponse.py +95 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/addonstatus.py +15 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/address.py +55 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/aggregatedentitlement.py +54 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/aggregatedfeature.py +40 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/aggregationtype.py +20 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/alertcondition.py +14 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/alertentitytype.py +14 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/alertinfo.py +38 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/alertlogfilter.py +102 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/alertlogresponse.py +117 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/alertsettings.py +41 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/alertstate.py +16 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/alertthreshold.py +35 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/alerttype.py +15 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/applicationstatus.py +17 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/attemptinvoicepaymentop.py +18 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/autotopup.py +40 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/billingcadence.py +7 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/billingcycle.py +14 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/billingcycleinfo.py +66 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/billingmodel.py +15 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/billingperiod.py +19 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/billingperiodinfo.py +40 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/billingtier.py +14 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/bulkingesteventrequest.py +15 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/cancelimmediatelyinvoicepolicy.py +10 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/cancellationtype.py +15 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/cancelschedulerequest.py +46 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/cancelscheduleresponse.py +41 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/cancelsubscriptionop.py +30 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/cancelsubscriptionrequest.py +56 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/cancelsubscriptionresponse.py +80 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/cancelsubscriptionscheduleop.py +48 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/changedinvoice.py +56 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/changedinvoiceaction.py +15 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/changedinvoicestatus.py +15 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/changedlineitem.py +52 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/changedlineitemaction.py +16 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/changedresources.py +40 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/changedsubscription.py +50 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/changedsubscriptionaction.py +15 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/cloneenvironmentop.py +30 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/cloneenvironmentrequest.py +46 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/clonefeatureop.py +27 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/clonefeaturerequest.py +46 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/cloneplanop.py +27 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/cloneplanrequest.py +53 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/collectionmethod.py +10 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/commitmentinfo.py +77 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/commitmenttype.py +14 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/costanalyticitem.py +100 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/costpoint.py +40 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/costsheet_filter.py +105 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/costsheetresponse.py +88 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/coupon.py +119 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/couponapplicationresponse.py +122 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/couponassociationresponse.py +106 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/couponcadence.py +15 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/couponfilter.py +72 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/couponresponse.py +119 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/coupontype.py +14 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/createaddonrequest.py +40 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/createaddonresponse.py +93 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/createapikeyrequest.py +42 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/createapikeyresponse.py +35 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/createbulkentitlementrequest.py +18 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/createbulkentitlementresponse.py +32 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/createbulkpricerequest.py +15 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/createbulkpriceresponse.py +32 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/createcostsheetrequest.py +40 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/createcostsheetresponse.py +32 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/createcouponrequest.py +78 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/createcreditgrantrequest.py +121 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/createcreditnotelineitemrequest.py +46 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/createcreditnoterequest.py +78 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/createcustomerrequest.py +127 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/createentitlementrequest.py +85 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/createentityintegrationmappingrequest.py +44 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/createfeaturerequest.py +83 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/creategrouprequest.py +19 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/createinvoicelineitemrequest.py +173 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/createinvoicerequest.py +207 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/createmeterrequest.py +46 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/createpaymentrequest.py +81 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/createplanrequest.py +45 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/createpricerequest.py +141 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/createpricetier.py +55 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/createpriceunitrequest.py +72 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/createpriceunitresponse.py +89 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/createscheduledtaskrequest.py +46 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/createsubscriptionlineitemop.py +30 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/createsubscriptionlineitemrequest.py +107 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/createsubscriptionrequest.py +281 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/createtaskrequest.py +49 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/createtaxassociationrequest.py +63 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/createtaxraterequest.py +75 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/createuserrequest.py +42 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/createuserresponse.py +55 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/createwalletrequest.py +143 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/creditbreakdown.py +34 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/creditgrantapplicationreason.py +15 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/creditgrantapplicationresponse.py +124 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/creditgrantcadence.py +14 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/creditgrantexpirydurationunit.py +16 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/creditgrantexpirytype.py +15 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/creditgrantperiod.py +18 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/creditgrantresponse.py +162 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/creditgrantscope.py +14 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/creditnote_creditnotelineitem.py +89 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/creditnotereason.py +19 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/creditnoteresponse.py +178 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/creditnotestatus.py +15 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/creditnotetype.py +14 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/customanalyticitem.py +49 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/customer.py +129 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/customerentitlementsresponse.py +35 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/customerfilter.py +97 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/customerinvoicesummary.py +91 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/customerlookupresult.py +40 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/customermulticurrencyinvoicesummary.py +47 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/customerresponse.py +141 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/customerusagesummaryresponse.py +43 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/datatype.py +12 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/debugtracker.py +61 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/debugtrackerstatus.py +16 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/deleteaddonop.py +18 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/deleteapikeyop.py +18 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/deletecostsheetop.py +18 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/deletecostsheetresponse.py +34 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/deletecouponop.py +18 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/deletecreditgrantop.py +48 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/deletecreditgrantrequest.py +34 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/deletecustomerop.py +18 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/deleteentitlementop.py +18 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/deletefeatureop.py +18 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/deletegroupop.py +18 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/deletepaymentop.py +18 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/deleteplanop.py +18 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/deletepriceop.py +27 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/deletepricerequest.py +32 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/deletepriceunitop.py +18 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/deletescheduledtaskop.py +18 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/deletesubscriptionlineitemop.py +30 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/deletesubscriptionlineitemrequest.py +35 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/deletetaxassociationop.py +18 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/deletetaxrateop.py +18 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/downloadtaskexportop.py +18 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/entitlemententitytype.py +15 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/entitlementfilter.py +105 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/entitlementresponse.py +143 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/entitlementsource.py +73 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/entitlementsourceentitytype.py +15 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/entitlementusageresetperiod.py +19 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/entityintegrationmappingresponse.py +86 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/entitysyncconfig.py +38 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/entitytype.py +16 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/environmenttype.py +10 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/errorcode.py +24 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/errorresponse.py +38 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/errors/__init__.py +39 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/errors/errorresponse.py +31 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/errors/no_response_error.py +17 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/errors/responsevalidationerror.py +27 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/errors/tirdaddefaulterror.py +40 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/errors/tirdaderror.py +30 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/event.py +63 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/eventcostinfo.py +41 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/eventprocessingstatustype.py +15 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/executesubscriptionchangeop.py +30 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/executesubscriptionmodifyop.py +30 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/executesubscriptionmodifyrequest.py +67 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/exportmetadataentitytype.py +14 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/exportmetadatafield.py +42 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/failurepoint.py +36 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/failurepointtype.py +16 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/feature.py +117 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/featurefilter.py +101 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/featureresponse.py +122 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/featuretype.py +15 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/featureusageinfo.py +64 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/featureusagesummary.py +70 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/filetype.py +14 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/filtercondition.py +43 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/filteroperatortype.py +17 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/finalizeinvoiceop.py +18 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/getaddonbylookupkeyop.py +18 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/getaddonentitlementsop.py +18 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/getaddonop.py +18 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/getcostanalyticsrequest.py +70 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/getcostsheetop.py +44 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/getcostsheetresponse.py +32 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/getcouponop.py +18 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/getcreditgrantop.py +18 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/getcreditnoteop.py +18 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/getcustomerbyexternalidop.py +18 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/getcustomerentitlementsop.py +18 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/getcustomerinvoicesummaryop.py +18 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/getcustomerop.py +18 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/getcustomerupcominggrantsop.py +18 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/getcustomerusagesummaryop.py +67 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/getcustomerwalletsop.py +78 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/getdetailedcostanalyticsresponse.py +85 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/getentitlementop.py +18 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/getentityintegrationmappingsop.py +25 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/geteventbyidresponse.py +44 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/geteventop.py +18 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/geteventsrequest.py +118 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/geteventsresponse.py +56 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/getgroupop.py +18 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/gethuggingfacebillingdataresponse.py +32 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/getinvoiceop.py +52 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/getinvoicepdfop.py +52 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/getpaymentop.py +18 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/getpendingschedulesresponse.py +46 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/getplancreditgrantsop.py +18 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/getplanentitlementsop.py +18 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/getplanop.py +18 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/getpreviewinvoicerequest.py +51 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/getpricebylookupkeyop.py +18 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/getpriceop.py +18 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/getpriceunitbycodeop.py +18 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/getpriceunitop.py +18 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/getrbacroleop.py +18 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/getscheduledtaskop.py +18 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/getsubscriptionaddonassociationsop.py +18 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/getsubscriptionentitlementsop.py +44 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/getsubscriptionop.py +18 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/getsubscriptionscheduleop.py +18 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/getsubscriptionupcominggrantsop.py +18 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/getsubscriptionv2op.py +44 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/gettaskop.py +18 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/gettaskresultop.py +18 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/gettaxassociationop.py +18 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/gettaxrateop.py +18 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/gettaxratesop.py +122 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/gettenantbyidop.py +18 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/getusageanalyticsrequest.py +91 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/getusageanalyticsresponse.py +42 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/getusagebymeterrequest.py +102 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/getusagebysubscriptionrequest.py +41 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/getusagebysubscriptionresponse.py +86 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/getusagerequest.py +126 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/getusageresponse.py +42 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/getwalletbalanceop.py +44 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/getwalletop.py +18 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/getwalletsbycustomeridop.py +18 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/getwallettransactionsop.py +210 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/group_group.py +82 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/groupedinvoicingaction.py +10 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/groupentitytype.py +14 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/groupfilter.py +97 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/groupresponse.py +68 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/ingesteventrequest.py +55 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/integrationconfigentry.py +39 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/integrationconfigresponse.py +35 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/integrationentitytype.py +22 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/invoicebillingreason.py +17 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/invoicecadence.py +14 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/invoicecoupon.py +34 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/invoicefilter.py +215 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/invoicelineitemcoupon.py +39 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/invoicelineitempreview.py +74 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/invoicelineitemresponse.py +198 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/invoicepreview.py +65 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/invoiceresponse.py +340 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/invoicestatus.py +16 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/invoicesyncsettings.py +32 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/invoicetype.py +15 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/lineitemcommitmentconfig.py +71 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/lineitemquantitychange.py +44 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/linkintegrationmappingrequest.py +44 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/linkintegrationmappingresponse.py +35 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/listaddonsresponse.py +36 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/listalertlogsresponse.py +36 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/listallsubscriptionschedulesop.py +61 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/listapikeysop.py +53 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/listcostsheetresponse.py +36 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/listcouponsresponse.py +36 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/listcreditgrantapplicationsresponse.py +39 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/listcreditgrantsresponse.py +36 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/listcustomersresponse.py +40 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/listentitlementsresponse.py +36 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/listentityintegrationmappingsresponse.py +39 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/listfeaturesresponse.py +36 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/listgroupsresponse.py +36 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/listinvoicesresponse.py +36 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/listpaymentsop.py +166 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/listpaymentsresponse.py +36 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/listplansresponse.py +36 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/listpricesresponse.py +36 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/listpriceunitsop.py +76 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/listpriceunitsresponse.py +36 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/listresponse_dto_walletresponse.py +36 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/listscheduledtasksop.py +79 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/listscheduledtasksresponse.py +36 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/listsecretsresponse.py +36 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/listsubscriptionlineitemsresponse.py +39 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/listsubscriptionschedulesop.py +18 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/listsubscriptionsresponse.py +36 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/listtasksop.py +158 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/listtasksresponse.py +36 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/listtaxassociationsop.py +63 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/listtaxassociationsresponse.py +39 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/listusersresponse.py +36 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/listwallettransactionsresponse.py +39 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/listworkflowsresponse.py +36 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/matchedmeter.py +38 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/matchedprice.py +41 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/matchedsubscriptionlineitem.py +68 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/meter_aggregation.py +82 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/meter_filter.py +46 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/meter_meter.py +108 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/metermatchingresult.py +40 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/meterresponse.py +75 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/models_temporalworkflowresult.py +37 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/overrideentitlementrequest.py +52 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/overridelineitemrequest.py +85 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/paginationresponse.py +37 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/pausemode.py +15 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/pausestatus.py +17 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/paymentattemptresponse.py +72 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/paymentbehavior.py +12 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/paymentdestinationtype.py +7 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/paymentgatewaytype.py +14 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/paymentmethodtype.py +17 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/paymentresponse.py +151 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/paymentstatus.py +20 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/paymentterms.py +18 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/plan.py +85 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/planfilter.py +91 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/planresponse.py +104 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/plansummary.py +48 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/previewsubscriptionchangeop.py +30 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/previewsubscriptionmodifyop.py +30 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/price_jsonbtransformquantity.py +37 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/price_price.py +293 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/price_pricetier.py +55 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/price_transformquantity.py +37 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/priceentitytype.py +17 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/pricefilter.py +117 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/pricelookupresult.py +40 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/priceresponse.py +320 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/pricetype.py +14 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/priceunitconfig.py +38 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/priceunitfilter.py +83 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/priceunitresponse.py +89 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/priceunittype.py +14 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/processcreditnoteop.py +18 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/processpaymentop.py +18 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/prorationbehavior.py +14 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/prorationdetail.py +63 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/prorationdetails.py +98 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/queryfilter.py +53 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/recalculateinvoiceop.py +18 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/recalculateinvoicev2op.py +44 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/removeaddonrequest.py +52 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/reportingunit.py +43 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/resetusage.py +14 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/resumemode.py +15 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/roundtype.py +14 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/s3compressiontype.py +14 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/s3encryptiontype.py +15 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/s3exportconfig.py +65 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/s3jobconfig.py +78 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/scheduledraftfinalizationop.py +13 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/scheduledtaskentitytype.py +17 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/scheduledtaskinterval.py +17 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/scheduledtaskresponse.py +79 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/schedulestatus.py +17 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/scheduletype.py +10 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/scheduleupdatebillingperiodop.py +21 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/secretprovider.py +24 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/secretresponse.py +86 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/secrettype.py +15 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/security.py +24 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/sortcondition.py +35 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/sortdirection.py +10 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/sourceusageitem.py +53 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/status.py +15 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/submodifygroupedinvoicingparams.py +40 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/submodifyinheritancerequest.py +31 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/submodifyquantitychangerequest.py +18 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/submodifytrialendrequest.py +38 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/subscription_subscriptionlineitem.py +195 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/subscription_subscriptionpause.py +130 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/subscriptionchangeexecuteresponse.py +97 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/subscriptionchangepreviewresponse.py +89 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/subscriptionchangerequest.py +67 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/subscriptionchangetype.py +15 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/subscriptionentitlementsresponse.py +38 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/subscriptionfilter.py +179 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/subscriptioninheritanceconfig.py +71 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/subscriptionlineitementitytype.py +15 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/subscriptionlineitemfilter.py +124 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/subscriptionlineitemlookupresult.py +43 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/subscriptionlineitemresponse.py +195 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/subscriptionmodifyresponse.py +36 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/subscriptionmodifytype.py +12 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/subscriptionphasecreaterequest.py +83 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/subscriptionphaseresponse.py +91 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/subscriptionpricecreaterequest.py +123 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/subscriptionresponse.py +377 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/subscriptionresponsev2.py +390 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/subscriptionschedulechangetype.py +14 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/subscriptionscheduleresponse.py +140 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/subscriptionstatus.py +18 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/subscriptionsummary.py +79 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/subscriptiontype.py +17 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/subscriptionusagebymetersresponse.py +82 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/successresponse.py +31 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/syncconfig.py +70 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/syncplanpricesop.py +18 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/taskresponse.py +137 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/taskstatus.py +16 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/tasktype.py +14 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/taxappliedresponse.py +111 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/taxassociationresponse.py +115 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/taxassociationupdaterequest.py +37 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/taxrateentitytype.py +16 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/taxrateoverride.py +43 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/taxrateresponse.py +104 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/taxratescope.py +15 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/taxratestatus.py +14 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/taxratetype.py +14 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/tenantbillingdetails.py +41 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/tenantbillingusage.py +39 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/tenantresponse.py +61 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/terminatewalletop.py +18 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/timerangefilter.py +35 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/topupwalletop.py +27 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/topupwalletrequest.py +97 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/topupwalletresponse.py +44 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/transactionreason.py +23 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/transactionstatus.py +15 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/transactiontype.py +14 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/trialendaction.py +10 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/triggerforcerunrequest.py +35 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/triggerforcerunresponse.py +48 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/triggerinvoicecommswebhookop.py +18 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/triggerscheduledtaskrunop.py +48 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/updateaddonop.py +27 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/updateaddonrequest.py +37 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/updatecostsheetop.py +30 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/updatecostsheetrequest.py +40 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/updatecostsheetresponse.py +32 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/updatecouponop.py +27 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/updatecouponrequest.py +34 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/updatecreditgrantop.py +30 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/updatecreditgrantrequest.py +34 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/updatecustomerop.py +54 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/updatecustomerrequest.py +109 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/updateentitlementop.py +30 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/updateentitlementrequest.py +52 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/updatefeatureop.py +27 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/updatefeaturerequest.py +72 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/updateinvoiceop.py +27 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/updateinvoicepaymentstatusop.py +30 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/updateinvoicerequest.py +40 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/updatepaymentop.py +27 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/updatepaymentrequest.py +64 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/updatepaymentstatusrequest.py +37 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/updateplanop.py +27 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/updateplanrequest.py +45 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/updatepriceop.py +27 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/updatepricerequest.py +114 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/updatepriceunitop.py +30 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/updatepriceunitrequest.py +34 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/updatescheduledtaskop.py +30 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/updatescheduledtaskrequest.py +13 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/updatesubscriptionlineitemop.py +30 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/updatesubscriptionlineitemrequest.py +106 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/updatesubscriptionop.py +30 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/updatesubscriptionrequest.py +46 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/updatetaskstatusop.py +30 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/updatetaskstatusrequest.py +14 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/updatetaxassociationop.py +30 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/updatetaxrateop.py +27 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/updatetaxraterequest.py +54 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/updatetenantrequest.py +38 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/updateuserrequest.py +31 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/updateuserresponse.py +50 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/updatewalletop.py +27 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/updatewalletrequest.py +58 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/usageanalyticitem.py +186 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/usageanalyticpoint.py +63 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/usagebreakdownitem.py +55 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/usageresult.py +34 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/userfilter.py +94 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/userresponse.py +50 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/usertype.py +14 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/value.py +50 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/voidcreditnoteop.py +18 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/voidinvoiceop.py +18 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/walletbalanceresponse.py +176 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/walletconfig.py +38 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/walletconfigpricetype.py +15 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/walletfilter.py +70 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/walletresponse.py +156 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/walletstatus.py +15 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/wallettransactionfilter.py +126 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/wallettransactionresponse.py +170 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/wallettxreferencetype.py +16 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/wallettype.py +14 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/webhookdto_alertwebhookpayload.py +61 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/webhookdto_communicationwebhookpayload.py +36 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/webhookdto_creditnotewebhookpayload.py +36 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/webhookdto_customerwebhookpayload.py +38 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/webhookdto_entitlementwebhookpayload.py +36 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/webhookdto_featurewebhookpayload.py +36 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/webhookdto_invoicewebhookpayload.py +36 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/webhookdto_paymentwebhookpayload.py +36 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/webhookdto_subscriptionphasewebhookpayload.py +39 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/webhookdto_subscriptionwebhookpayload.py +36 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/webhookdto_transactionwebhookpayload.py +43 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/webhookdto_walletalertinfo.py +52 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/webhookdto_walletwebhookpayload.py +49 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/webhookeventname.py +54 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/windowsize.py +22 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/workflowexecutiondto.py +84 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/models/workflowexecutionfilter.py +111 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/payments.py +1407 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/plans.py +1567 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/price_units.py +1513 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/prices.py +1805 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/py.typed +1 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/rbac.py +340 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/scheduled_tasks.py +1679 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/sdk.py +265 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/sdkconfiguration.py +51 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/secrets.py +629 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/subscriptions.py +6359 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/tasks.py +1302 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/tax_associations.py +1074 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/tax_rates.py +1122 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/tenants.py +604 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/types/__init__.py +24 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/types/base64fileinput.py +39 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/types/basemodel.py +77 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/users.py +881 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/utils/__init__.py +175 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/utils/annotations.py +79 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/utils/datetimes.py +23 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/utils/dynamic_imports.py +54 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/utils/enums.py +134 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/utils/eventstreaming.py +309 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/utils/forms.py +234 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/utils/headers.py +136 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/utils/logger.py +22 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/utils/metadata.py +119 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/utils/queryparams.py +217 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/utils/requestbodies.py +67 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/utils/retries.py +271 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/utils/security.py +198 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/utils/serializers.py +225 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/utils/unmarshal_json_response.py +38 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/utils/url.py +155 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/utils/values.py +137 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/wallets.py +2745 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/webhook_events.py +6814 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk/workflows.py +307 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk.egg-info/PKG-INFO +209 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk.egg-info/SOURCES.txt +611 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk.egg-info/dependency_links.txt +1 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk.egg-info/requires.txt +3 -0
- tirdad_sdk-2.1.12/src/tirdad_sdk.egg-info/top_level.txt +4 -0
|
@@ -0,0 +1,209 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: tirdad-sdk
|
|
3
|
+
Version: 2.1.12
|
|
4
|
+
Summary: Python Client SDK for the Tirdad API.
|
|
5
|
+
Author: Tirdad
|
|
6
|
+
License: Apache-2.0
|
|
7
|
+
Requires-Python: >=3.10
|
|
8
|
+
Description-Content-Type: text/markdown
|
|
9
|
+
Requires-Dist: httpcore>=1.0.9
|
|
10
|
+
Requires-Dist: httpx>=0.28.1
|
|
11
|
+
Requires-Dist: pydantic>=2.11.2
|
|
12
|
+
|
|
13
|
+
# Tirdad Python SDK
|
|
14
|
+
|
|
15
|
+
Type-safe Python client for the Tirdad API: billing, metering, and subscription management for SaaS and usage-based products.
|
|
16
|
+
|
|
17
|
+
## Requirements
|
|
18
|
+
|
|
19
|
+
- **Python 3.10+**
|
|
20
|
+
|
|
21
|
+
## Installation
|
|
22
|
+
|
|
23
|
+
```bash
|
|
24
|
+
pip install flexprice
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
With uv or poetry:
|
|
28
|
+
|
|
29
|
+
```bash
|
|
30
|
+
uv add flexprice
|
|
31
|
+
# or
|
|
32
|
+
poetry add flexprice
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
Runnable samples are in the `examples/` directory.
|
|
36
|
+
|
|
37
|
+
## Environment
|
|
38
|
+
|
|
39
|
+
| Variable | Required | Description |
|
|
40
|
+
| -------- | -------- | ----------- |
|
|
41
|
+
| `TIRDAD_API_KEY` | Yes | API key |
|
|
42
|
+
| `TIRDAD_API_HOST` | Optional | Full base URL including `https://` and `/v1` (default: `https://api.tirdad.ai/v1`). No trailing slash. |
|
|
43
|
+
|
|
44
|
+
**Integration tests** in [api/tests/python/test_sdk.py](../tests/python/test_sdk.py) use a different env shape; see [api/tests/README.md](../tests/README.md).
|
|
45
|
+
|
|
46
|
+
## Quick start
|
|
47
|
+
|
|
48
|
+
Initialize the client, create a customer, ingest an event:
|
|
49
|
+
|
|
50
|
+
```python
|
|
51
|
+
import os
|
|
52
|
+
from flexprice import Tirdad
|
|
53
|
+
|
|
54
|
+
api_key = os.getenv("TIRDAD_API_KEY", "YOUR_API_KEY")
|
|
55
|
+
server_url = os.getenv(
|
|
56
|
+
"TIRDAD_API_HOST", "https://api.tirdad.ai/v1"
|
|
57
|
+
)
|
|
58
|
+
|
|
59
|
+
with Tirdad(server_url=server_url, api_key_auth=api_key) as client:
|
|
60
|
+
external_id = "customer-123"
|
|
61
|
+
client.customers.create_customer(
|
|
62
|
+
external_id=external_id,
|
|
63
|
+
email="user@example.com",
|
|
64
|
+
name="Example Customer",
|
|
65
|
+
)
|
|
66
|
+
result = client.events.ingest_event(
|
|
67
|
+
request={
|
|
68
|
+
"event_name": "Sample Event",
|
|
69
|
+
"external_customer_id": external_id,
|
|
70
|
+
"properties": {"source": "python_app", "environment": "test"},
|
|
71
|
+
"source": "python_app",
|
|
72
|
+
}
|
|
73
|
+
)
|
|
74
|
+
print(result)
|
|
75
|
+
```
|
|
76
|
+
|
|
77
|
+
## Async usage
|
|
78
|
+
|
|
79
|
+
The same client supports async when used as an async context manager:
|
|
80
|
+
|
|
81
|
+
```python
|
|
82
|
+
import asyncio
|
|
83
|
+
import os
|
|
84
|
+
from flexprice import Tirdad
|
|
85
|
+
|
|
86
|
+
async def main():
|
|
87
|
+
server_url = os.getenv(
|
|
88
|
+
"TIRDAD_API_HOST", "https://api.tirdad.ai/v1"
|
|
89
|
+
)
|
|
90
|
+
async with Tirdad(
|
|
91
|
+
server_url=server_url,
|
|
92
|
+
api_key_auth=os.getenv("TIRDAD_API_KEY", "YOUR_API_KEY"),
|
|
93
|
+
) as client:
|
|
94
|
+
result = await client.events.ingest_event_async(
|
|
95
|
+
request={
|
|
96
|
+
"event_name": "Sample Event",
|
|
97
|
+
"external_customer_id": "customer-123",
|
|
98
|
+
"properties": {"source": "python_async", "environment": "test"},
|
|
99
|
+
"source": "python_async",
|
|
100
|
+
}
|
|
101
|
+
)
|
|
102
|
+
print(result)
|
|
103
|
+
|
|
104
|
+
asyncio.run(main())
|
|
105
|
+
```
|
|
106
|
+
|
|
107
|
+
## Authentication
|
|
108
|
+
|
|
109
|
+
- Pass your API key as `api_key_auth` when creating the client. The SDK sends it in the `x-api-key` header.
|
|
110
|
+
- Set `TIRDAD_API_HOST` to a full URL (see [Environment](#environment)) or use the default `https://api.tirdad.ai/v1`.
|
|
111
|
+
- Prefer environment variables; get keys from your [Tirdad dashboard](https://app.flexprice.io) or docs.
|
|
112
|
+
|
|
113
|
+
## Error handling
|
|
114
|
+
|
|
115
|
+
API errors are raised as exceptions. Catch them and inspect the response as needed:
|
|
116
|
+
|
|
117
|
+
```python
|
|
118
|
+
try:
|
|
119
|
+
with Tirdad(server_url="...", api_key_auth="...") as flexprice:
|
|
120
|
+
result = flexprice.events.ingest_event(request={...})
|
|
121
|
+
except Exception as e:
|
|
122
|
+
print(f"Error: {e}")
|
|
123
|
+
# Inspect status code and body if available on the exception
|
|
124
|
+
```
|
|
125
|
+
|
|
126
|
+
See the [API docs](https://docs.flexprice.io) for error formats and status codes.
|
|
127
|
+
|
|
128
|
+
## Features
|
|
129
|
+
|
|
130
|
+
- Full API coverage (customers, plans, events, invoices, payments, entitlements, etc.)
|
|
131
|
+
- Sync and async support
|
|
132
|
+
- Type-safe request/response models (Pydantic)
|
|
133
|
+
- Built-in retries and error handling
|
|
134
|
+
|
|
135
|
+
For a full list of operations, see the [API reference](https://docs.flexprice.io) and the [examples](examples/) in this repo.
|
|
136
|
+
|
|
137
|
+
## Troubleshooting
|
|
138
|
+
|
|
139
|
+
- **Missing or invalid API key:** Ensure `api_key_auth` is set (or set `TIRDAD_API_KEY` and pass it in). Keys are for server-side use only.
|
|
140
|
+
- **Wrong server URL:** Use a full URL such as `https://api.tirdad.ai/v1` (include `/v1`; no trailing slash).
|
|
141
|
+
- **4xx/5xx on ingest:** Event ingest returns 202 Accepted; for errors, check request fields (`event_name`, `external_customer_id`, `properties`, `source`) against the [API docs](https://docs.flexprice.io).
|
|
142
|
+
|
|
143
|
+
## Handling Webhooks
|
|
144
|
+
|
|
145
|
+
Tirdad sends webhook events to your server for async updates on payments, invoices, subscriptions, wallets, and more.
|
|
146
|
+
|
|
147
|
+
**Flow:**
|
|
148
|
+
1. Register your endpoint URL in the Tirdad dashboard
|
|
149
|
+
2. Receive `POST` with raw JSON body
|
|
150
|
+
3. Read `event_type` to route
|
|
151
|
+
4. Parse payload into typed model
|
|
152
|
+
5. Handle business logic idempotently
|
|
153
|
+
6. Return `200` quickly
|
|
154
|
+
|
|
155
|
+
```python
|
|
156
|
+
import json
|
|
157
|
+
from flexprice.models import (
|
|
158
|
+
WebhookDtoPaymentWebhookPayload,
|
|
159
|
+
WebhookDtoSubscriptionWebhookPayload,
|
|
160
|
+
WebhookDtoInvoiceWebhookPayload,
|
|
161
|
+
)
|
|
162
|
+
|
|
163
|
+
def handle_webhook(raw_body: str) -> None:
|
|
164
|
+
event = json.loads(raw_body)
|
|
165
|
+
|
|
166
|
+
match event.get("event_type"):
|
|
167
|
+
case "payment.success" | "payment.failed" | "payment.updated":
|
|
168
|
+
payload = WebhookDtoPaymentWebhookPayload.model_validate(event)
|
|
169
|
+
if payload.payment:
|
|
170
|
+
print(f"payment {payload.payment.id}")
|
|
171
|
+
# TODO: update payment record
|
|
172
|
+
|
|
173
|
+
case "subscription.activated" | "subscription.cancelled" | "subscription.updated":
|
|
174
|
+
payload = WebhookDtoSubscriptionWebhookPayload.model_validate(event)
|
|
175
|
+
if payload.subscription:
|
|
176
|
+
print(f"subscription {payload.subscription.id}")
|
|
177
|
+
|
|
178
|
+
case "invoice.update.finalized" | "invoice.payment.overdue":
|
|
179
|
+
payload = WebhookDtoInvoiceWebhookPayload.model_validate(event)
|
|
180
|
+
if payload.invoice:
|
|
181
|
+
print(f"invoice {payload.invoice.id}")
|
|
182
|
+
|
|
183
|
+
case _:
|
|
184
|
+
print(f"unhandled event: {event.get('event_type')}")
|
|
185
|
+
```
|
|
186
|
+
|
|
187
|
+
### Event types
|
|
188
|
+
|
|
189
|
+
| Category | Events |
|
|
190
|
+
|---|---|
|
|
191
|
+
| **Payment** | `payment.created` · `payment.updated` · `payment.success` · `payment.failed` · `payment.pending` |
|
|
192
|
+
| **Invoice** | `invoice.create.drafted` · `invoice.update` · `invoice.update.finalized` · `invoice.update.payment` · `invoice.update.voided` · `invoice.payment.overdue` · `invoice.communication.triggered` |
|
|
193
|
+
| **Subscription** | `subscription.created` · `subscription.draft.created` · `subscription.activated` · `subscription.updated` · `subscription.paused` · `subscription.resumed` · `subscription.cancelled` · `subscription.renewal.due` |
|
|
194
|
+
| **Subscription Phase** | `subscription.phase.created` · `subscription.phase.updated` · `subscription.phase.deleted` |
|
|
195
|
+
| **Customer** | `customer.created` · `customer.updated` · `customer.deleted` |
|
|
196
|
+
| **Wallet** | `wallet.created` · `wallet.updated` · `wallet.terminated` · `wallet.transaction.created` · `wallet.credit_balance.dropped` · `wallet.credit_balance.recovered` · `wallet.ongoing_balance.dropped` · `wallet.ongoing_balance.recovered` |
|
|
197
|
+
| **Feature / Entitlement** | `feature.created` · `feature.updated` · `feature.deleted` · `feature.wallet_balance.alert` · `entitlement.created` · `entitlement.updated` · `entitlement.deleted` |
|
|
198
|
+
| **Credit Note** | `credit_note.created` · `credit_note.updated` |
|
|
199
|
+
|
|
200
|
+
**Production rules:**
|
|
201
|
+
- Keep handlers idempotent — Tirdad retries on non-`2xx`
|
|
202
|
+
- Return `200` for unknown event types — prevents unnecessary retries
|
|
203
|
+
- Do heavy processing async — respond fast, queue the work
|
|
204
|
+
|
|
205
|
+
## Documentation
|
|
206
|
+
|
|
207
|
+
- [Tirdad API documentation](https://docs.flexprice.io)
|
|
208
|
+
- [Python SDK examples](examples/) in this repo
|
|
209
|
+
- [SDK integration tests](../tests/README.md) — different `TIRDAD_API_HOST` shape for automated tests
|
|
@@ -0,0 +1,197 @@
|
|
|
1
|
+
# Tirdad Python SDK
|
|
2
|
+
|
|
3
|
+
Type-safe Python client for the Tirdad API: billing, metering, and subscription management for SaaS and usage-based products.
|
|
4
|
+
|
|
5
|
+
## Requirements
|
|
6
|
+
|
|
7
|
+
- **Python 3.10+**
|
|
8
|
+
|
|
9
|
+
## Installation
|
|
10
|
+
|
|
11
|
+
```bash
|
|
12
|
+
pip install flexprice
|
|
13
|
+
```
|
|
14
|
+
|
|
15
|
+
With uv or poetry:
|
|
16
|
+
|
|
17
|
+
```bash
|
|
18
|
+
uv add flexprice
|
|
19
|
+
# or
|
|
20
|
+
poetry add flexprice
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
Runnable samples are in the `examples/` directory.
|
|
24
|
+
|
|
25
|
+
## Environment
|
|
26
|
+
|
|
27
|
+
| Variable | Required | Description |
|
|
28
|
+
| -------- | -------- | ----------- |
|
|
29
|
+
| `TIRDAD_API_KEY` | Yes | API key |
|
|
30
|
+
| `TIRDAD_API_HOST` | Optional | Full base URL including `https://` and `/v1` (default: `https://api.tirdad.ai/v1`). No trailing slash. |
|
|
31
|
+
|
|
32
|
+
**Integration tests** in [api/tests/python/test_sdk.py](../tests/python/test_sdk.py) use a different env shape; see [api/tests/README.md](../tests/README.md).
|
|
33
|
+
|
|
34
|
+
## Quick start
|
|
35
|
+
|
|
36
|
+
Initialize the client, create a customer, ingest an event:
|
|
37
|
+
|
|
38
|
+
```python
|
|
39
|
+
import os
|
|
40
|
+
from flexprice import Tirdad
|
|
41
|
+
|
|
42
|
+
api_key = os.getenv("TIRDAD_API_KEY", "YOUR_API_KEY")
|
|
43
|
+
server_url = os.getenv(
|
|
44
|
+
"TIRDAD_API_HOST", "https://api.tirdad.ai/v1"
|
|
45
|
+
)
|
|
46
|
+
|
|
47
|
+
with Tirdad(server_url=server_url, api_key_auth=api_key) as client:
|
|
48
|
+
external_id = "customer-123"
|
|
49
|
+
client.customers.create_customer(
|
|
50
|
+
external_id=external_id,
|
|
51
|
+
email="user@example.com",
|
|
52
|
+
name="Example Customer",
|
|
53
|
+
)
|
|
54
|
+
result = client.events.ingest_event(
|
|
55
|
+
request={
|
|
56
|
+
"event_name": "Sample Event",
|
|
57
|
+
"external_customer_id": external_id,
|
|
58
|
+
"properties": {"source": "python_app", "environment": "test"},
|
|
59
|
+
"source": "python_app",
|
|
60
|
+
}
|
|
61
|
+
)
|
|
62
|
+
print(result)
|
|
63
|
+
```
|
|
64
|
+
|
|
65
|
+
## Async usage
|
|
66
|
+
|
|
67
|
+
The same client supports async when used as an async context manager:
|
|
68
|
+
|
|
69
|
+
```python
|
|
70
|
+
import asyncio
|
|
71
|
+
import os
|
|
72
|
+
from flexprice import Tirdad
|
|
73
|
+
|
|
74
|
+
async def main():
|
|
75
|
+
server_url = os.getenv(
|
|
76
|
+
"TIRDAD_API_HOST", "https://api.tirdad.ai/v1"
|
|
77
|
+
)
|
|
78
|
+
async with Tirdad(
|
|
79
|
+
server_url=server_url,
|
|
80
|
+
api_key_auth=os.getenv("TIRDAD_API_KEY", "YOUR_API_KEY"),
|
|
81
|
+
) as client:
|
|
82
|
+
result = await client.events.ingest_event_async(
|
|
83
|
+
request={
|
|
84
|
+
"event_name": "Sample Event",
|
|
85
|
+
"external_customer_id": "customer-123",
|
|
86
|
+
"properties": {"source": "python_async", "environment": "test"},
|
|
87
|
+
"source": "python_async",
|
|
88
|
+
}
|
|
89
|
+
)
|
|
90
|
+
print(result)
|
|
91
|
+
|
|
92
|
+
asyncio.run(main())
|
|
93
|
+
```
|
|
94
|
+
|
|
95
|
+
## Authentication
|
|
96
|
+
|
|
97
|
+
- Pass your API key as `api_key_auth` when creating the client. The SDK sends it in the `x-api-key` header.
|
|
98
|
+
- Set `TIRDAD_API_HOST` to a full URL (see [Environment](#environment)) or use the default `https://api.tirdad.ai/v1`.
|
|
99
|
+
- Prefer environment variables; get keys from your [Tirdad dashboard](https://app.flexprice.io) or docs.
|
|
100
|
+
|
|
101
|
+
## Error handling
|
|
102
|
+
|
|
103
|
+
API errors are raised as exceptions. Catch them and inspect the response as needed:
|
|
104
|
+
|
|
105
|
+
```python
|
|
106
|
+
try:
|
|
107
|
+
with Tirdad(server_url="...", api_key_auth="...") as flexprice:
|
|
108
|
+
result = flexprice.events.ingest_event(request={...})
|
|
109
|
+
except Exception as e:
|
|
110
|
+
print(f"Error: {e}")
|
|
111
|
+
# Inspect status code and body if available on the exception
|
|
112
|
+
```
|
|
113
|
+
|
|
114
|
+
See the [API docs](https://docs.flexprice.io) for error formats and status codes.
|
|
115
|
+
|
|
116
|
+
## Features
|
|
117
|
+
|
|
118
|
+
- Full API coverage (customers, plans, events, invoices, payments, entitlements, etc.)
|
|
119
|
+
- Sync and async support
|
|
120
|
+
- Type-safe request/response models (Pydantic)
|
|
121
|
+
- Built-in retries and error handling
|
|
122
|
+
|
|
123
|
+
For a full list of operations, see the [API reference](https://docs.flexprice.io) and the [examples](examples/) in this repo.
|
|
124
|
+
|
|
125
|
+
## Troubleshooting
|
|
126
|
+
|
|
127
|
+
- **Missing or invalid API key:** Ensure `api_key_auth` is set (or set `TIRDAD_API_KEY` and pass it in). Keys are for server-side use only.
|
|
128
|
+
- **Wrong server URL:** Use a full URL such as `https://api.tirdad.ai/v1` (include `/v1`; no trailing slash).
|
|
129
|
+
- **4xx/5xx on ingest:** Event ingest returns 202 Accepted; for errors, check request fields (`event_name`, `external_customer_id`, `properties`, `source`) against the [API docs](https://docs.flexprice.io).
|
|
130
|
+
|
|
131
|
+
## Handling Webhooks
|
|
132
|
+
|
|
133
|
+
Tirdad sends webhook events to your server for async updates on payments, invoices, subscriptions, wallets, and more.
|
|
134
|
+
|
|
135
|
+
**Flow:**
|
|
136
|
+
1. Register your endpoint URL in the Tirdad dashboard
|
|
137
|
+
2. Receive `POST` with raw JSON body
|
|
138
|
+
3. Read `event_type` to route
|
|
139
|
+
4. Parse payload into typed model
|
|
140
|
+
5. Handle business logic idempotently
|
|
141
|
+
6. Return `200` quickly
|
|
142
|
+
|
|
143
|
+
```python
|
|
144
|
+
import json
|
|
145
|
+
from flexprice.models import (
|
|
146
|
+
WebhookDtoPaymentWebhookPayload,
|
|
147
|
+
WebhookDtoSubscriptionWebhookPayload,
|
|
148
|
+
WebhookDtoInvoiceWebhookPayload,
|
|
149
|
+
)
|
|
150
|
+
|
|
151
|
+
def handle_webhook(raw_body: str) -> None:
|
|
152
|
+
event = json.loads(raw_body)
|
|
153
|
+
|
|
154
|
+
match event.get("event_type"):
|
|
155
|
+
case "payment.success" | "payment.failed" | "payment.updated":
|
|
156
|
+
payload = WebhookDtoPaymentWebhookPayload.model_validate(event)
|
|
157
|
+
if payload.payment:
|
|
158
|
+
print(f"payment {payload.payment.id}")
|
|
159
|
+
# TODO: update payment record
|
|
160
|
+
|
|
161
|
+
case "subscription.activated" | "subscription.cancelled" | "subscription.updated":
|
|
162
|
+
payload = WebhookDtoSubscriptionWebhookPayload.model_validate(event)
|
|
163
|
+
if payload.subscription:
|
|
164
|
+
print(f"subscription {payload.subscription.id}")
|
|
165
|
+
|
|
166
|
+
case "invoice.update.finalized" | "invoice.payment.overdue":
|
|
167
|
+
payload = WebhookDtoInvoiceWebhookPayload.model_validate(event)
|
|
168
|
+
if payload.invoice:
|
|
169
|
+
print(f"invoice {payload.invoice.id}")
|
|
170
|
+
|
|
171
|
+
case _:
|
|
172
|
+
print(f"unhandled event: {event.get('event_type')}")
|
|
173
|
+
```
|
|
174
|
+
|
|
175
|
+
### Event types
|
|
176
|
+
|
|
177
|
+
| Category | Events |
|
|
178
|
+
|---|---|
|
|
179
|
+
| **Payment** | `payment.created` · `payment.updated` · `payment.success` · `payment.failed` · `payment.pending` |
|
|
180
|
+
| **Invoice** | `invoice.create.drafted` · `invoice.update` · `invoice.update.finalized` · `invoice.update.payment` · `invoice.update.voided` · `invoice.payment.overdue` · `invoice.communication.triggered` |
|
|
181
|
+
| **Subscription** | `subscription.created` · `subscription.draft.created` · `subscription.activated` · `subscription.updated` · `subscription.paused` · `subscription.resumed` · `subscription.cancelled` · `subscription.renewal.due` |
|
|
182
|
+
| **Subscription Phase** | `subscription.phase.created` · `subscription.phase.updated` · `subscription.phase.deleted` |
|
|
183
|
+
| **Customer** | `customer.created` · `customer.updated` · `customer.deleted` |
|
|
184
|
+
| **Wallet** | `wallet.created` · `wallet.updated` · `wallet.terminated` · `wallet.transaction.created` · `wallet.credit_balance.dropped` · `wallet.credit_balance.recovered` · `wallet.ongoing_balance.dropped` · `wallet.ongoing_balance.recovered` |
|
|
185
|
+
| **Feature / Entitlement** | `feature.created` · `feature.updated` · `feature.deleted` · `feature.wallet_balance.alert` · `entitlement.created` · `entitlement.updated` · `entitlement.deleted` |
|
|
186
|
+
| **Credit Note** | `credit_note.created` · `credit_note.updated` |
|
|
187
|
+
|
|
188
|
+
**Production rules:**
|
|
189
|
+
- Keep handlers idempotent — Tirdad retries on non-`2xx`
|
|
190
|
+
- Return `200` for unknown event types — prevents unnecessary retries
|
|
191
|
+
- Do heavy processing async — respond fast, queue the work
|
|
192
|
+
|
|
193
|
+
## Documentation
|
|
194
|
+
|
|
195
|
+
- [Tirdad API documentation](https://docs.flexprice.io)
|
|
196
|
+
- [Python SDK examples](examples/) in this repo
|
|
197
|
+
- [SDK integration tests](../tests/README.md) — different `TIRDAD_API_HOST` shape for automated tests
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
# Python SDK examples
|
|
2
|
+
|
|
3
|
+
1. Create a virtual environment and install dependencies:
|
|
4
|
+
```bash
|
|
5
|
+
python -m venv venv
|
|
6
|
+
source venv/bin/activate # Windows: venv\Scripts\activate
|
|
7
|
+
pip install -r requirements.txt
|
|
8
|
+
```
|
|
9
|
+
2. Copy `.env.sample` to `.env` and set **`TIRDAD_API_KEY`**. Optionally set **`TIRDAD_API_HOST`** to a full URL (default: `https://api.tirdad.ai/v1`).
|
|
10
|
+
3. Run the sync example: `python example.py`
|
|
11
|
+
Run the async example: `python async_event_example.py`
|
|
12
|
+
(From the package root: `python examples/example.py` or `python examples/async_event_example.py`.)
|
|
13
|
+
|
|
14
|
+
**Integration tests:** Full API flows are in [api/tests/python/test_sdk.py](../../tests/python/test_sdk.py). Install with `pip install -r requirements.txt` in `api/tests/python`; see [api/tests/README.md](../../tests/README.md).
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
#!/usr/bin/env python3
|
|
2
|
+
"""
|
|
3
|
+
FlexPrice Python SDK example – async client, ingest events.
|
|
4
|
+
|
|
5
|
+
Default base URL: https://us.api.flexprice.io/v1
|
|
6
|
+
Override with FLEXPRICE_API_HOST (full URL). Set FLEXPRICE_API_KEY in .env or environment.
|
|
7
|
+
"""
|
|
8
|
+
|
|
9
|
+
import asyncio
|
|
10
|
+
import logging
|
|
11
|
+
import os
|
|
12
|
+
from dotenv import load_dotenv
|
|
13
|
+
|
|
14
|
+
load_dotenv()
|
|
15
|
+
|
|
16
|
+
from flexprice import Flexprice
|
|
17
|
+
|
|
18
|
+
logging.basicConfig(level=logging.INFO, format="%(asctime)s - %(levelname)s - %(message)s")
|
|
19
|
+
logger = logging.getLogger(__name__)
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
async def main():
|
|
23
|
+
api_key = os.getenv("FLEXPRICE_API_KEY")
|
|
24
|
+
server_url = os.getenv(
|
|
25
|
+
"FLEXPRICE_API_HOST", "https://us.api.flexprice.io/v1"
|
|
26
|
+
)
|
|
27
|
+
|
|
28
|
+
if not api_key:
|
|
29
|
+
raise SystemExit("Set FLEXPRICE_API_KEY in .env or environment")
|
|
30
|
+
|
|
31
|
+
logger.info("Using async FlexPrice client")
|
|
32
|
+
|
|
33
|
+
async with Flexprice(
|
|
34
|
+
server_url=server_url,
|
|
35
|
+
api_key_auth=api_key,
|
|
36
|
+
) as flexprice:
|
|
37
|
+
result = await flexprice.events.ingest_event_async(
|
|
38
|
+
request={
|
|
39
|
+
"event_name": "Sample Event",
|
|
40
|
+
"external_customer_id": "customer-async-123",
|
|
41
|
+
"properties": {"source": "python_async", "environment": "test"},
|
|
42
|
+
"source": "python_async",
|
|
43
|
+
}
|
|
44
|
+
)
|
|
45
|
+
logger.info("Event ingested: %s", result)
|
|
46
|
+
|
|
47
|
+
logger.info("Async example complete!")
|
|
48
|
+
|
|
49
|
+
|
|
50
|
+
if __name__ == "__main__":
|
|
51
|
+
asyncio.run(main())
|