diff --git a/.speakeasy/gen.lock b/.speakeasy/gen.lock index 3c12c87a..5cc0c84b 100644 --- a/.speakeasy/gen.lock +++ b/.speakeasy/gen.lock @@ -1,12 +1,12 @@ lockVersion: 2.0.0 id: e7042734-e669-4c36-85da-bbb4a7500ac8 management: - docChecksum: 1ff034eb9a35bd58d2b2b6b3fb69eea7 + docChecksum: 95c4382a04bf8e0268173a9dd7accaf5 docVersion: 0.1.0 speakeasyVersion: 1.648.0 generationVersion: 2.737.0 - releaseVersion: 0.29.0 - configChecksum: e50e3566bc2714d1fa12ac007715f29a + releaseVersion: 0.29.1 + configChecksum: 9e3a3f54356be2a28ee34d54263962cf repoURL: https://github.com/polarsource/polar-python.git installationURL: https://github.com/polarsource/polar-python.git published: true @@ -107,6 +107,15 @@ generatedFiles: - docs/models/benefitdownloadablessubscriberproperties.md - docs/models/benefitdownloadablesupdate.md - docs/models/benefitdownloadablesupdatemetadata.md + - docs/models/benefitfeatureflag.md + - docs/models/benefitfeatureflagcreate.md + - docs/models/benefitfeatureflagcreatemetadata.md + - docs/models/benefitfeatureflagcreateproperties.md + - docs/models/benefitfeatureflagproperties.md + - docs/models/benefitfeatureflagsubscriber.md + - docs/models/benefitfeatureflagsubscriberproperties.md + - docs/models/benefitfeatureflagupdate.md + - docs/models/benefitfeatureflagupdatemetadata.md - docs/models/benefitgithubrepository.md - docs/models/benefitgithubrepositorycreate.md - docs/models/benefitgithubrepositorycreatemetadata.md @@ -126,6 +135,8 @@ generatedFiles: - docs/models/benefitgrantdownloadableswebhook.md - docs/models/benefitgrantedevent.md - docs/models/benefitgranterror.md + - docs/models/benefitgrantfeatureflagproperties.md + - docs/models/benefitgrantfeatureflagwebhook.md - docs/models/benefitgrantgithubrepositoryproperties.md - docs/models/benefitgrantgithubrepositorypropertiespermission.md - docs/models/benefitgrantgithubrepositorywebhook.md @@ -289,6 +300,8 @@ generatedFiles: - docs/models/customerbenefitgrantdiscordupdate.md - docs/models/customerbenefitgrantdownloadables.md - docs/models/customerbenefitgrantdownloadablesupdate.md + - docs/models/customerbenefitgrantfeatureflag.md + - docs/models/customerbenefitgrantfeatureflagupdate.md - docs/models/customerbenefitgrantgithubrepository.md - docs/models/customerbenefitgrantgithubrepositorypropertiesupdate.md - docs/models/customerbenefitgrantgithubrepositoryupdate.md @@ -493,8 +506,6 @@ generatedFiles: - docs/models/customerupdatetaxid.md - docs/models/customerwallet.md - docs/models/customerwalletsortproperty.md - - docs/models/customerwithmembers.md - - docs/models/customerwithmemberstaxid.md - docs/models/customfield.md - docs/models/customfieldcheckbox.md - docs/models/customfieldcheckboxproperties.md @@ -678,6 +689,7 @@ generatedFiles: - docs/models/listresourcebenefitgrant.md - docs/models/listresourcecheckout.md - docs/models/listresourcecheckoutlink.md + - docs/models/listresourcecustomer.md - docs/models/listresourcecustomerbenefitgrant.md - docs/models/listresourcecustomercustomermeter.md - docs/models/listresourcecustomermeter.md @@ -686,7 +698,6 @@ generatedFiles: - docs/models/listresourcecustomerportalmember.md - docs/models/listresourcecustomersubscription.md - docs/models/listresourcecustomerwallet.md - - docs/models/listresourcecustomerwithmembers.md - docs/models/listresourcecustomfield.md - docs/models/listresourcediscount.md - docs/models/listresourcedispute.md @@ -1272,6 +1283,13 @@ generatedFiles: - src/polar_sdk/models/benefitdownloadablessubscriber.py - src/polar_sdk/models/benefitdownloadablessubscriberproperties.py - src/polar_sdk/models/benefitdownloadablesupdate.py + - src/polar_sdk/models/benefitfeatureflag.py + - src/polar_sdk/models/benefitfeatureflagcreate.py + - src/polar_sdk/models/benefitfeatureflagcreateproperties.py + - src/polar_sdk/models/benefitfeatureflagproperties.py + - src/polar_sdk/models/benefitfeatureflagsubscriber.py + - src/polar_sdk/models/benefitfeatureflagsubscriberproperties.py + - src/polar_sdk/models/benefitfeatureflagupdate.py - src/polar_sdk/models/benefitgithubrepository.py - src/polar_sdk/models/benefitgithubrepositorycreate.py - src/polar_sdk/models/benefitgithubrepositorycreateproperties.py @@ -1288,6 +1306,8 @@ generatedFiles: - src/polar_sdk/models/benefitgrantdownloadableswebhook.py - src/polar_sdk/models/benefitgrantedevent.py - src/polar_sdk/models/benefitgranterror.py + - src/polar_sdk/models/benefitgrantfeatureflagproperties.py + - src/polar_sdk/models/benefitgrantfeatureflagwebhook.py - src/polar_sdk/models/benefitgrantgithubrepositoryproperties.py - src/polar_sdk/models/benefitgrantgithubrepositorywebhook.py - src/polar_sdk/models/benefitgrantlicensekeysproperties.py @@ -1426,6 +1446,8 @@ generatedFiles: - src/polar_sdk/models/customerbenefitgrantdiscordupdate.py - src/polar_sdk/models/customerbenefitgrantdownloadables.py - src/polar_sdk/models/customerbenefitgrantdownloadablesupdate.py + - src/polar_sdk/models/customerbenefitgrantfeatureflag.py + - src/polar_sdk/models/customerbenefitgrantfeatureflagupdate.py - src/polar_sdk/models/customerbenefitgrantgithubrepository.py - src/polar_sdk/models/customerbenefitgrantgithubrepositorypropertiesupdate.py - src/polar_sdk/models/customerbenefitgrantgithubrepositoryupdate.py @@ -1512,7 +1534,6 @@ generatedFiles: - src/polar_sdk/models/customerupdateexternalid.py - src/polar_sdk/models/customerwallet.py - src/polar_sdk/models/customerwalletsortproperty.py - - src/polar_sdk/models/customerwithmembers.py - src/polar_sdk/models/customfield.py - src/polar_sdk/models/customfieldcheckbox.py - src/polar_sdk/models/customfieldcheckboxproperties.py @@ -1632,6 +1653,7 @@ generatedFiles: - src/polar_sdk/models/listresource_benefitgrant_.py - src/polar_sdk/models/listresource_checkout_.py - src/polar_sdk/models/listresource_checkoutlink_.py + - src/polar_sdk/models/listresource_customer_.py - src/polar_sdk/models/listresource_customerbenefitgrant_.py - src/polar_sdk/models/listresource_customercustomermeter_.py - src/polar_sdk/models/listresource_customermeter_.py @@ -1640,7 +1662,6 @@ generatedFiles: - src/polar_sdk/models/listresource_customerportalmember_.py - src/polar_sdk/models/listresource_customersubscription_.py - src/polar_sdk/models/listresource_customerwallet_.py - - src/polar_sdk/models/listresource_customerwithmembers_.py - src/polar_sdk/models/listresource_customfield_.py - src/polar_sdk/models/listresource_discount_.py - src/polar_sdk/models/listresource_dispute_.py @@ -2161,7 +2182,7 @@ examples: _endpointorganization_updated_post: speakeasy-default-endpointorganization-updated-post: requestBody: - application/json: {"type": "organization.updated", "timestamp": "2025-08-19T15:02:44.139Z", "data": {"created_at": "2025-08-19T15:02:44.139Z", "modified_at": "2025-08-23T00:45:50.780Z", "id": "1dbfc517-0bbf-4301-9ba8-555ca42b9737", "name": "", "slug": "", "avatar_url": null, "proration_behavior": "prorate", "allow_customer_updates": false, "email": "Lemuel44@gmail.com", "website": "", "socials": [{"platform": "tiktok", "url": "https://grizzled-patroller.info/"}, {"platform": "tiktok", "url": "https://grizzled-patroller.info/"}], "status": "active", "details_submitted_at": null, "default_presentment_currency": "", "feature_settings": {"issue_funding_enabled": false, "seat_based_pricing_enabled": false, "revops_enabled": false, "wallets_enabled": false, "member_model_enabled": false, "tinybird_read": false, "tinybird_compare": false, "presentment_currencies_enabled": false, "checkout_localization_enabled": false}, "subscription_settings": {"allow_multiple_subscriptions": true, "allow_customer_updates": false, "proration_behavior": "invoice", "benefit_revocation_grace_period": 877397, "prevent_trial_abuse": false}, "notification_settings": {"new_order": false, "new_subscription": false}, "customer_email_settings": {"order_confirmation": false, "subscription_cancellation": false, "subscription_confirmation": false, "subscription_cycled": true, "subscription_cycled_after_trial": false, "subscription_past_due": true, "subscription_revoked": true, "subscription_uncanceled": false, "subscription_updated": true}, "customer_portal_settings": {"usage": {"show": true}, "subscription": {"update_seats": true, "update_plan": true}}}} + application/json: {"type": "organization.updated", "timestamp": "2025-08-19T15:02:44.139Z", "data": {"created_at": "2025-08-19T15:02:44.139Z", "modified_at": "2025-08-23T00:45:50.780Z", "id": "1dbfc517-0bbf-4301-9ba8-555ca42b9737", "name": "", "slug": "", "avatar_url": null, "proration_behavior": "prorate", "allow_customer_updates": false, "email": "Lemuel44@gmail.com", "website": "", "socials": [{"platform": "tiktok", "url": "https://grizzled-patroller.info/"}, {"platform": "tiktok", "url": "https://grizzled-patroller.info/"}], "status": "active", "details_submitted_at": null, "default_presentment_currency": "", "feature_settings": {"issue_funding_enabled": false, "seat_based_pricing_enabled": false, "revops_enabled": false, "wallets_enabled": false, "member_model_enabled": false, "tinybird_read": false, "tinybird_compare": false, "checkout_localization_enabled": false}, "subscription_settings": {"allow_multiple_subscriptions": true, "allow_customer_updates": false, "proration_behavior": "invoice", "benefit_revocation_grace_period": 877397, "prevent_trial_abuse": false}, "notification_settings": {"new_order": false, "new_subscription": false}, "customer_email_settings": {"order_confirmation": false, "subscription_cancellation": false, "subscription_confirmation": false, "subscription_cycled": true, "subscription_cycled_after_trial": false, "subscription_past_due": true, "subscription_revoked": true, "subscription_uncanceled": false, "subscription_updated": true}, "customer_portal_settings": {"usage": {"show": true}, "subscription": {"update_seats": true, "update_plan": true}}}} responses: "200": application/json: "" @@ -2238,7 +2259,7 @@ examples: application/json: {"name": "", "slug": ""} responses: "201": - application/json: {"created_at": "2024-12-19T02:20:41.368Z", "modified_at": "2024-07-08T16:38:56.712Z", "id": "1dbfc517-0bbf-4301-9ba8-555ca42b9737", "name": "", "slug": "", "avatar_url": "https://menacing-draft.net", "proration_behavior": "prorate", "allow_customer_updates": false, "email": "Ursula99@yahoo.com", "website": "", "socials": [{"platform": "facebook", "url": "https://likable-commodity.biz/"}], "status": "denied", "details_submitted_at": "2024-04-04T18:10:47.254Z", "default_presentment_currency": "", "feature_settings": {"issue_funding_enabled": false, "seat_based_pricing_enabled": false, "revops_enabled": false, "wallets_enabled": false, "member_model_enabled": false, "tinybird_read": false, "tinybird_compare": false, "presentment_currencies_enabled": false, "checkout_localization_enabled": false}, "subscription_settings": {"allow_multiple_subscriptions": false, "allow_customer_updates": true, "proration_behavior": "prorate", "benefit_revocation_grace_period": 655199, "prevent_trial_abuse": false}, "notification_settings": {"new_order": false, "new_subscription": false}, "customer_email_settings": {"order_confirmation": false, "subscription_cancellation": false, "subscription_confirmation": false, "subscription_cycled": false, "subscription_cycled_after_trial": false, "subscription_past_due": false, "subscription_revoked": false, "subscription_uncanceled": true, "subscription_updated": false}, "customer_portal_settings": {"usage": {"show": false}, "subscription": {"update_seats": false, "update_plan": false}}} + application/json: {"created_at": "2024-12-19T02:20:41.368Z", "modified_at": "2024-07-08T16:38:56.712Z", "id": "1dbfc517-0bbf-4301-9ba8-555ca42b9737", "name": "", "slug": "", "avatar_url": "https://menacing-draft.net", "proration_behavior": "prorate", "allow_customer_updates": false, "email": "Ursula99@yahoo.com", "website": "", "socials": [{"platform": "facebook", "url": "https://likable-commodity.biz/"}], "status": "denied", "details_submitted_at": "2024-04-04T18:10:47.254Z", "default_presentment_currency": "", "feature_settings": {"issue_funding_enabled": false, "seat_based_pricing_enabled": false, "revops_enabled": false, "wallets_enabled": false, "member_model_enabled": false, "tinybird_read": false, "tinybird_compare": false, "checkout_localization_enabled": false}, "subscription_settings": {"allow_multiple_subscriptions": false, "allow_customer_updates": true, "proration_behavior": "prorate", "benefit_revocation_grace_period": 655199, "prevent_trial_abuse": false}, "notification_settings": {"new_order": false, "new_subscription": false}, "customer_email_settings": {"order_confirmation": false, "subscription_cancellation": false, "subscription_confirmation": false, "subscription_cycled": false, "subscription_cycled_after_trial": false, "subscription_past_due": false, "subscription_revoked": false, "subscription_uncanceled": true, "subscription_updated": false}, "customer_portal_settings": {"usage": {"show": false}, "subscription": {"update_seats": false, "update_plan": false}}} "422": application/json: {} organizations:get: @@ -2248,7 +2269,7 @@ examples: id: "1dbfc517-0bbf-4301-9ba8-555ca42b9737" responses: "200": - application/json: {"created_at": "2024-06-18T23:12:24.609Z", "modified_at": "2023-11-22T07:49:02.109Z", "id": "1dbfc517-0bbf-4301-9ba8-555ca42b9737", "name": "", "slug": "", "avatar_url": "https://far-off-resource.com", "proration_behavior": "invoice", "allow_customer_updates": true, "email": "Dejon.Jakubowski-Bashirian6@gmail.com", "website": null, "socials": [{"platform": "other", "url": "https://tedious-habit.com"}, {"platform": "other", "url": "https://tedious-habit.com"}, {"platform": "other", "url": "https://tedious-habit.com"}], "status": "onboarding_started", "details_submitted_at": "2023-07-16T01:59:28.607Z", "default_presentment_currency": "", "feature_settings": {"issue_funding_enabled": false, "seat_based_pricing_enabled": false, "revops_enabled": false, "wallets_enabled": false, "member_model_enabled": false, "tinybird_read": false, "tinybird_compare": false, "presentment_currencies_enabled": false, "checkout_localization_enabled": false}, "subscription_settings": {"allow_multiple_subscriptions": true, "allow_customer_updates": false, "proration_behavior": "prorate", "benefit_revocation_grace_period": 488109, "prevent_trial_abuse": false}, "notification_settings": {"new_order": true, "new_subscription": true}, "customer_email_settings": {"order_confirmation": true, "subscription_cancellation": true, "subscription_confirmation": true, "subscription_cycled": false, "subscription_cycled_after_trial": true, "subscription_past_due": false, "subscription_revoked": true, "subscription_uncanceled": false, "subscription_updated": true}, "customer_portal_settings": {"usage": {"show": false}, "subscription": {"update_seats": true, "update_plan": false}}} + application/json: {"created_at": "2024-06-18T23:12:24.609Z", "modified_at": "2023-11-22T07:49:02.109Z", "id": "1dbfc517-0bbf-4301-9ba8-555ca42b9737", "name": "", "slug": "", "avatar_url": "https://far-off-resource.com", "proration_behavior": "invoice", "allow_customer_updates": true, "email": "Dejon.Jakubowski-Bashirian6@gmail.com", "website": null, "socials": [{"platform": "other", "url": "https://tedious-habit.com"}, {"platform": "other", "url": "https://tedious-habit.com"}, {"platform": "other", "url": "https://tedious-habit.com"}], "status": "onboarding_started", "details_submitted_at": "2023-07-16T01:59:28.607Z", "default_presentment_currency": "", "feature_settings": {"issue_funding_enabled": false, "seat_based_pricing_enabled": false, "revops_enabled": false, "wallets_enabled": false, "member_model_enabled": false, "tinybird_read": false, "tinybird_compare": false, "checkout_localization_enabled": false}, "subscription_settings": {"allow_multiple_subscriptions": true, "allow_customer_updates": false, "proration_behavior": "prorate", "benefit_revocation_grace_period": 488109, "prevent_trial_abuse": false}, "notification_settings": {"new_order": true, "new_subscription": true}, "customer_email_settings": {"order_confirmation": true, "subscription_cancellation": true, "subscription_confirmation": true, "subscription_cycled": false, "subscription_cycled_after_trial": true, "subscription_past_due": false, "subscription_revoked": true, "subscription_uncanceled": false, "subscription_updated": true}, "customer_portal_settings": {"usage": {"show": false}, "subscription": {"update_seats": true, "update_plan": false}}} "404": application/json: {"error": "ResourceNotFound", "detail": ""} "422": @@ -2262,7 +2283,7 @@ examples: application/json: {} responses: "200": - application/json: {"created_at": "2024-01-10T12:09:47.665Z", "modified_at": "2025-07-12T14:18:16.022Z", "id": "1dbfc517-0bbf-4301-9ba8-555ca42b9737", "name": "", "slug": "", "avatar_url": "https://juvenile-deed.name/", "proration_behavior": "invoice", "allow_customer_updates": false, "email": "Stanford.Streich62@gmail.com", "website": "", "socials": [{"platform": "github", "url": "https://violent-ownership.org/"}], "status": "onboarding_started", "details_submitted_at": "2024-05-08T13:53:13.516Z", "default_presentment_currency": "", "feature_settings": {"issue_funding_enabled": false, "seat_based_pricing_enabled": false, "revops_enabled": false, "wallets_enabled": false, "member_model_enabled": false, "tinybird_read": false, "tinybird_compare": false, "presentment_currencies_enabled": false, "checkout_localization_enabled": false}, "subscription_settings": {"allow_multiple_subscriptions": false, "allow_customer_updates": false, "proration_behavior": "invoice", "benefit_revocation_grace_period": 341703, "prevent_trial_abuse": false}, "notification_settings": {"new_order": true, "new_subscription": false}, "customer_email_settings": {"order_confirmation": true, "subscription_cancellation": false, "subscription_confirmation": false, "subscription_cycled": false, "subscription_cycled_after_trial": true, "subscription_past_due": true, "subscription_revoked": true, "subscription_uncanceled": true, "subscription_updated": false}, "customer_portal_settings": {"usage": {"show": false}, "subscription": {"update_seats": true, "update_plan": true}}} + application/json: {"created_at": "2024-01-10T12:09:47.665Z", "modified_at": "2025-07-12T14:18:16.022Z", "id": "1dbfc517-0bbf-4301-9ba8-555ca42b9737", "name": "", "slug": "", "avatar_url": "https://juvenile-deed.name/", "proration_behavior": "invoice", "allow_customer_updates": false, "email": "Stanford.Streich62@gmail.com", "website": "", "socials": [{"platform": "github", "url": "https://violent-ownership.org/"}], "status": "onboarding_started", "details_submitted_at": "2024-05-08T13:53:13.516Z", "default_presentment_currency": "", "feature_settings": {"issue_funding_enabled": false, "seat_based_pricing_enabled": false, "revops_enabled": false, "wallets_enabled": false, "member_model_enabled": false, "tinybird_read": false, "tinybird_compare": false, "checkout_localization_enabled": false}, "subscription_settings": {"allow_multiple_subscriptions": false, "allow_customer_updates": false, "proration_behavior": "invoice", "benefit_revocation_grace_period": 341703, "prevent_trial_abuse": false}, "notification_settings": {"new_order": true, "new_subscription": false}, "customer_email_settings": {"order_confirmation": true, "subscription_cancellation": false, "subscription_confirmation": false, "subscription_cycled": false, "subscription_cycled_after_trial": true, "subscription_past_due": true, "subscription_revoked": true, "subscription_uncanceled": true, "subscription_updated": false}, "customer_portal_settings": {"usage": {"show": false}, "subscription": {"update_seats": true, "update_plan": true}}} "403": application/json: {"error": "NotPermitted", "detail": ""} "404": @@ -3062,7 +3083,7 @@ examples: application/json: {"external_id": "usr_1337", "email": "customer@example.com", "name": "John Doe", "billing_address": {"country": "US"}, "tax_id": ["911144442", "us_ein"], "locale": "en", "type": "individual", "organization_id": "1dbfc517-0bbf-4301-9ba8-555ca42b9737", "owner": {"email": "member@example.com", "name": "Jane Doe", "external_id": "usr_1337"}} responses: "201": - application/json: {"id": "992fae2a-2a17-4b7a-8d9e-e287cf90131b", "created_at": "2025-12-18T06:01:42.001Z", "modified_at": null, "metadata": {"key": 404263}, "external_id": "usr_1337", "email": "customer@example.com", "email_verified": true, "type": "individual", "name": "John Doe", "billing_address": {"country": "US"}, "tax_id": ["911144442", "us_ein"], "organization_id": "1dbfc517-0bbf-4301-9ba8-555ca42b9737", "deleted_at": "2024-12-23T07:32:24.258Z", "members": [{"id": "", "created_at": "2025-12-18T06:01:42.001Z", "modified_at": null, "customer_id": "", "email": "member@example.com", "name": "Jane Doe", "external_id": "usr_1337", "role": "billing_manager"}], "avatar_url": "https://www.gravatar.com/avatar/xxx?d=404"} + application/json: {"id": "992fae2a-2a17-4b7a-8d9e-e287cf90131b", "created_at": "2025-12-18T06:01:42.001Z", "modified_at": null, "metadata": {"key": 404263}, "external_id": "usr_1337", "email": "customer@example.com", "email_verified": true, "type": "individual", "name": "John Doe", "billing_address": {"country": "US"}, "tax_id": ["911144442", "us_ein"], "organization_id": "1dbfc517-0bbf-4301-9ba8-555ca42b9737", "deleted_at": "2024-12-23T07:32:24.258Z", "avatar_url": "https://www.gravatar.com/avatar/xxx?d=404"} "422": application/json: {} customers:get: @@ -3074,7 +3095,7 @@ examples: include_members: false responses: "200": - application/json: {"id": "992fae2a-2a17-4b7a-8d9e-e287cf90131b", "created_at": "2023-02-07T11:56:28.687Z", "modified_at": "2024-03-20T09:58:07.343Z", "metadata": {"key": "", "key1": 645013}, "external_id": "usr_1337", "email": "customer@example.com", "email_verified": true, "type": "individual", "name": "John Doe", "billing_address": {"country": "US"}, "tax_id": ["911144442", "us_ein"], "organization_id": "1dbfc517-0bbf-4301-9ba8-555ca42b9737", "deleted_at": "2023-01-26T06:04:35.456Z", "members": [{"id": "", "created_at": "2023-02-07T11:56:28.687Z", "modified_at": "2024-03-20T09:58:07.343Z", "customer_id": "", "email": "member@example.com", "name": "Jane Doe", "external_id": "usr_1337", "role": "billing_manager"}], "avatar_url": "https://www.gravatar.com/avatar/xxx?d=404"} + application/json: {"id": "992fae2a-2a17-4b7a-8d9e-e287cf90131b", "created_at": "2023-02-07T11:56:28.687Z", "modified_at": "2024-03-20T09:58:07.343Z", "metadata": {"key": "", "key1": 645013}, "external_id": "usr_1337", "email": "customer@example.com", "email_verified": true, "type": "individual", "name": "John Doe", "billing_address": {"country": "US"}, "tax_id": ["911144442", "us_ein"], "organization_id": "1dbfc517-0bbf-4301-9ba8-555ca42b9737", "deleted_at": "2023-01-26T06:04:35.456Z", "avatar_url": "https://www.gravatar.com/avatar/xxx?d=404"} "404": application/json: {"error": "ResourceNotFound", "detail": ""} "422": @@ -3090,7 +3111,7 @@ examples: application/json: {"email": "customer@example.com", "name": "John Doe", "billing_address": {"country": "US"}, "tax_id": ["911144442", "us_ein"], "locale": "en", "external_id": "usr_1337", "type": "individual"} responses: "200": - application/json: {"id": "992fae2a-2a17-4b7a-8d9e-e287cf90131b", "created_at": "2024-03-16T17:26:39.570Z", "modified_at": null, "metadata": {}, "external_id": "usr_1337", "email": "customer@example.com", "email_verified": true, "type": "individual", "name": "John Doe", "billing_address": {"country": "US"}, "tax_id": ["911144442", "us_ein"], "organization_id": "1dbfc517-0bbf-4301-9ba8-555ca42b9737", "deleted_at": "2025-04-14T07:55:04.911Z", "members": [{"id": "", "created_at": "2025-06-11T23:12:33.726Z", "modified_at": "2023-01-16T19:45:46.501Z", "customer_id": "", "email": "member@example.com", "name": "Jane Doe", "external_id": "usr_1337", "role": "owner"}], "avatar_url": "https://www.gravatar.com/avatar/xxx?d=404"} + application/json: {"id": "992fae2a-2a17-4b7a-8d9e-e287cf90131b", "created_at": "2024-03-16T17:26:39.570Z", "modified_at": null, "metadata": {}, "external_id": "usr_1337", "email": "customer@example.com", "email_verified": true, "type": "individual", "name": "John Doe", "billing_address": {"country": "US"}, "tax_id": ["911144442", "us_ein"], "organization_id": "1dbfc517-0bbf-4301-9ba8-555ca42b9737", "deleted_at": "2025-04-14T07:55:04.911Z", "avatar_url": "https://www.gravatar.com/avatar/xxx?d=404"} "404": application/json: {"error": "ResourceNotFound", "detail": ""} "422": @@ -3116,7 +3137,7 @@ examples: include_members: false responses: "200": - application/json: {"id": "992fae2a-2a17-4b7a-8d9e-e287cf90131b", "created_at": "2023-08-16T18:20:25.397Z", "modified_at": "2024-10-25T08:30:34.593Z", "metadata": {"key": false}, "external_id": "usr_1337", "email": "customer@example.com", "email_verified": true, "type": "individual", "name": "John Doe", "billing_address": {"country": "US"}, "tax_id": ["911144442", "us_ein"], "organization_id": "1dbfc517-0bbf-4301-9ba8-555ca42b9737", "deleted_at": null, "members": [{"id": "", "created_at": "2023-08-16T18:20:25.397Z", "modified_at": "2024-10-25T08:30:34.593Z", "customer_id": "", "email": "member@example.com", "name": "Jane Doe", "external_id": "usr_1337", "role": "owner"}], "avatar_url": "https://www.gravatar.com/avatar/xxx?d=404"} + application/json: {"id": "992fae2a-2a17-4b7a-8d9e-e287cf90131b", "created_at": "2023-08-16T18:20:25.397Z", "modified_at": "2024-10-25T08:30:34.593Z", "metadata": {"key": false}, "external_id": "usr_1337", "email": "customer@example.com", "email_verified": true, "type": "individual", "name": "John Doe", "billing_address": {"country": "US"}, "tax_id": ["911144442", "us_ein"], "organization_id": "1dbfc517-0bbf-4301-9ba8-555ca42b9737", "deleted_at": null, "avatar_url": "https://www.gravatar.com/avatar/xxx?d=404"} "404": application/json: {"error": "ResourceNotFound", "detail": ""} "422": @@ -3132,7 +3153,7 @@ examples: application/json: {"email": "customer@example.com", "name": "John Doe", "billing_address": null, "tax_id": ["911144442", "us_ein"], "locale": "en"} responses: "200": - application/json: {"id": "992fae2a-2a17-4b7a-8d9e-e287cf90131b", "created_at": "2023-07-14T15:50:49.511Z", "modified_at": "2024-12-21T02:28:59.698Z", "metadata": {"key": true}, "external_id": "usr_1337", "email": "customer@example.com", "email_verified": true, "type": "individual", "name": "John Doe", "billing_address": {"country": "US"}, "tax_id": ["911144442", "us_ein"], "organization_id": "1dbfc517-0bbf-4301-9ba8-555ca42b9737", "deleted_at": "2023-03-03T18:02:55.477Z", "members": [{"id": "", "created_at": "2023-04-19T12:10:23.341Z", "modified_at": "2024-11-10T15:58:41.008Z", "customer_id": "", "email": "member@example.com", "name": "Jane Doe", "external_id": "usr_1337", "role": "billing_manager"}], "avatar_url": "https://www.gravatar.com/avatar/xxx?d=404"} + application/json: {"id": "992fae2a-2a17-4b7a-8d9e-e287cf90131b", "created_at": "2023-07-14T15:50:49.511Z", "modified_at": "2024-12-21T02:28:59.698Z", "metadata": {"key": true}, "external_id": "usr_1337", "email": "customer@example.com", "email_verified": true, "type": "individual", "name": "John Doe", "billing_address": {"country": "US"}, "tax_id": ["911144442", "us_ein"], "organization_id": "1dbfc517-0bbf-4301-9ba8-555ca42b9737", "deleted_at": "2023-03-03T18:02:55.477Z", "avatar_url": "https://www.gravatar.com/avatar/xxx?d=404"} "404": application/json: {"error": "ResourceNotFound", "detail": ""} "422": @@ -4345,7 +4366,7 @@ examples: _endpointcheckout_expired_post: speakeasy-default-endpointcheckout-expired-post: requestBody: - application/json: {"type": "checkout.expired", "timestamp": "2025-07-24T10:11:01.088Z", "data": {"id": "", "created_at": "2024-05-04T16:36:16.430Z", "modified_at": "2025-07-14T11:38:07.998Z", "payment_processor": "stripe", "status": "open", "client_secret": "", "url": "https://husky-advertisement.biz/", "expires_at": "2026-08-22T23:38:29.173Z", "success_url": "https://wasteful-premeditation.org", "return_url": "https://torn-toothpick.name", "embed_origin": "", "amount": 104765, "discount_amount": 723749, "net_amount": 208098, "tax_amount": 740520, "total_amount": 729691, "currency": "Kwanza", "allow_trial": true, "active_trial_interval": "day", "active_trial_interval_count": 884805, "trial_end": "2026-12-24T16:37:35.525Z", "organization_id": "", "product_id": "", "discount_id": "", "allow_discount_codes": false, "require_billing_address": false, "is_discount_applicable": true, "is_free_product_price": true, "is_payment_required": true, "is_payment_setup_required": false, "is_payment_form_required": true, "customer_id": "", "is_business_customer": false, "customer_name": "", "customer_email": "", "customer_ip_address": "", "customer_billing_name": "", "customer_billing_address": {"country": "US"}, "customer_tax_id": "", "payment_processor_metadata": {"key": ""}, "billing_address_fields": {"country": "disabled", "state": "disabled", "city": "required", "postal_code": "disabled", "line1": "required", "line2": "required"}, "trial_interval": "year", "trial_interval_count": 328311, "metadata": {}, "external_customer_id": "", "products": [{"id": "", "created_at": "2025-10-12T05:44:49.530Z", "modified_at": "2026-12-12T21:27:56.142Z", "trial_interval": "day", "trial_interval_count": 736956, "name": "", "description": "woot absent selfishly maestro frail unethically anguished solder", "visibility": "private", "recurring_interval": "month", "recurring_interval_count": 422566, "is_recurring": false, "is_archived": true, "organization_id": "", "prices": [], "benefits": [{"id": "", "created_at": "2024-02-20T20:34:14.140Z", "modified_at": null, "type": "meter_credit", "description": "yawn sharply inside ah lest who into", "selectable": false, "deletable": false, "organization_id": ""}], "medias": []}], "product": {"id": "", "created_at": "2025-07-25T20:35:56.555Z", "modified_at": "2025-07-29T02:50:59.712Z", "trial_interval": "week", "trial_interval_count": 272557, "name": "", "description": null, "visibility": "draft", "recurring_interval": "day", "recurring_interval_count": null, "is_recurring": false, "is_archived": true, "organization_id": "", "prices": [{"created_at": "2026-12-31T01:02:14.398Z", "modified_at": "2025-02-10T09:37:50.330Z", "id": "", "source": "ad_hoc", "amount_type": "custom", "price_currency": "", "is_archived": false, "product_id": "", "minimum_amount": 570455, "maximum_amount": 109251, "preset_amount": 453008}], "benefits": [{"id": "", "created_at": "2024-02-20T20:34:14.140Z", "modified_at": null, "type": "meter_credit", "description": "yawn sharply inside ah lest who into", "selectable": false, "deletable": false, "organization_id": ""}], "medias": [{"id": "", "organization_id": "", "name": "", "path": "/Library", "mime_type": "", "size": 404380, "storage_version": "", "checksum_etag": "", "checksum_sha256_base64": "", "checksum_sha256_hex": null, "last_modified_at": "2026-07-14T04:50:58.042Z", "version": "", "service": "product_media", "is_uploaded": false, "created_at": "2026-09-12T12:00:29.248Z", "size_readable": "", "public_url": "https://nervous-mozzarella.net/"}]}, "prices": {"key": []}, "discount": {"duration": "repeating", "type": "percentage", "basis_points": 1000, "id": "", "name": "", "code": ""}, "subscription_id": "", "attached_custom_fields": [], "customer_metadata": {}}} + application/json: {"type": "checkout.expired", "timestamp": "2025-07-24T10:11:01.088Z", "data": {"id": "", "created_at": "2024-05-04T16:36:16.430Z", "modified_at": "2025-07-14T11:38:07.998Z", "payment_processor": "stripe", "status": "open", "client_secret": "", "url": "https://husky-advertisement.biz/", "expires_at": "2026-08-22T23:38:29.173Z", "success_url": "https://wasteful-premeditation.org", "return_url": "https://torn-toothpick.name", "embed_origin": "", "amount": 104765, "discount_amount": 723749, "net_amount": 208098, "tax_amount": 740520, "total_amount": 729691, "currency": "Kwanza", "allow_trial": true, "active_trial_interval": "day", "active_trial_interval_count": 884805, "trial_end": "2026-12-24T16:37:35.525Z", "organization_id": "", "product_id": "", "discount_id": "", "allow_discount_codes": false, "require_billing_address": false, "is_discount_applicable": true, "is_free_product_price": true, "is_payment_required": true, "is_payment_setup_required": false, "is_payment_form_required": true, "customer_id": "", "is_business_customer": false, "customer_name": "", "customer_email": "", "customer_ip_address": "", "customer_billing_name": "", "customer_billing_address": {"country": "US"}, "customer_tax_id": "", "payment_processor_metadata": {"key": ""}, "billing_address_fields": {"country": "disabled", "state": "disabled", "city": "required", "postal_code": "disabled", "line1": "required", "line2": "required"}, "trial_interval": "year", "trial_interval_count": 328311, "metadata": {}, "external_customer_id": "", "products": [{"id": "", "created_at": "2025-10-12T05:44:49.530Z", "modified_at": "2026-12-12T21:27:56.142Z", "trial_interval": "day", "trial_interval_count": 736956, "name": "", "description": "woot absent selfishly maestro frail unethically anguished solder", "visibility": "private", "recurring_interval": "month", "recurring_interval_count": 422566, "is_recurring": false, "is_archived": true, "organization_id": "", "prices": [], "benefits": [{"id": "", "created_at": "2024-02-20T20:34:14.140Z", "modified_at": null, "type": "meter_credit", "description": "yawn sharply inside ah lest who into", "selectable": false, "deletable": false, "organization_id": ""}], "medias": []}], "product": {"id": "", "created_at": "2025-07-25T20:35:56.555Z", "modified_at": "2025-07-29T02:50:59.712Z", "trial_interval": "week", "trial_interval_count": 272557, "name": "", "description": null, "visibility": "draft", "recurring_interval": "day", "recurring_interval_count": null, "is_recurring": false, "is_archived": true, "organization_id": "", "prices": [{"created_at": "2026-12-31T01:02:14.398Z", "modified_at": "2025-02-10T09:37:50.330Z", "id": "", "source": "ad_hoc", "amount_type": "custom", "price_currency": "", "is_archived": false, "product_id": "", "type": "recurring", "recurring_interval": "month", "minimum_amount": 570455, "maximum_amount": 109251, "preset_amount": 453008, "legacy": true}], "benefits": [{"id": "", "created_at": "2024-02-20T20:34:14.140Z", "modified_at": null, "type": "meter_credit", "description": "yawn sharply inside ah lest who into", "selectable": false, "deletable": false, "organization_id": ""}], "medias": [{"id": "", "organization_id": "", "name": "", "path": "/Library", "mime_type": "", "size": 404380, "storage_version": "", "checksum_etag": "", "checksum_sha256_base64": "", "checksum_sha256_hex": null, "last_modified_at": "2026-07-14T04:50:58.042Z", "version": "", "service": "product_media", "is_uploaded": false, "created_at": "2026-09-12T12:00:29.248Z", "size_readable": "", "public_url": "https://nervous-mozzarella.net/"}]}, "prices": {"key": []}, "discount": {"duration": "repeating", "type": "percentage", "basis_points": 1000, "id": "", "name": "", "code": ""}, "subscription_id": "", "attached_custom_fields": [], "customer_metadata": {}}} responses: "200": application/json: "" @@ -4380,7 +4401,7 @@ examples: application/json: {} examplesVersion: 1.0.2 generatedTests: {} -releaseNotes: "## Python SDK Changes Detected:\n* `polar.webhooks.create_webhook_endpoint()`: \n * `request.secret` **Removed** **Breaking** :warning:\n * `error.detail.[]` **Changed**\n* `polar._endpointcheckout_updated_post()`: \n * `request.data` **Changed** **Breaking** :warning:\n * `error.detail.[]` **Changed**\n* `polar._endpointorder_created_post()`: \n * `request.data` **Changed** **Breaking** :warning:\n * `error.detail.[]` **Changed**\n* `polar._endpointorder_updated_post()`: \n * `request.data` **Changed** **Breaking** :warning:\n * `error.detail.[]` **Changed**\n* `polar._endpointorder_paid_post()`: \n * `request.data` **Changed** **Breaking** :warning:\n * `error.detail.[]` **Changed**\n* `polar.customer_portal.subscriptions.update()`: \n * `response.product` **Changed** **Breaking** :warning:\n * `error.detail.[]` **Changed**\n* `polar.customer_portal.subscriptions.cancel()`: \n * `response.product` **Changed** **Breaking** :warning:\n * `error.detail.[]` **Changed**\n* `polar.customer_portal.subscriptions.get()`: \n * `response.product` **Changed** **Breaking** :warning:\n * `error.detail.[]` **Changed**\n* `polar.customer_portal.subscriptions.list()`: \n * `response.items.[].product` **Changed** **Breaking** :warning:\n * `error.detail.[]` **Changed**\n* `polar.customer_portal.organizations.get()`: \n * `response` **Changed** **Breaking** :warning:\n * `error.detail.[]` **Changed**\n* `polar.customer_portal.orders.update()`: \n * `response` **Changed** **Breaking** :warning:\n * `error.detail.[]` **Changed**\n* `polar.customer_portal.orders.get()`: \n * `response` **Changed** **Breaking** :warning:\n * `error.detail.[]` **Changed**\n* `polar.customer_portal.orders.list()`: \n * `response.items.[]` **Changed** **Breaking** :warning:\n * `error.detail.[]` **Changed**\n* `polar.customer_portal.seats.list_claimed_subscriptions()`: \n * `request` **Changed**\n * `response` **Changed** **Breaking** :warning:\n * `error.status[422]` **Added**\n* `polar.discounts.update()`: \n * `request.discount_update.currency` **Changed** **Breaking** :warning:\n * `response.[discount_fixed_once_forever_duration].products.[].visibility` **Added**\n * `error.detail.[]` **Changed**\n* `polar.discounts.create()`: \n * `request` **Changed** **Breaking** :warning:\n * `response.[discount_fixed_once_forever_duration].products.[].visibility` **Added**\n * `error.detail.[]` **Changed**\n* `polar.checkout-links.update()`: \n * `request.checkout_link_update.return_url` **Added**\n * `response` **Changed** **Breaking** :warning:\n * `error.detail.[]` **Changed**\n* `polar._endpointorder_refunded_post()`: \n * `request.data` **Changed** **Breaking** :warning:\n * `error.detail.[]` **Changed**\n* `polar._endpointsubscription_created_post()`: \n * `request.data` **Changed** **Breaking** :warning:\n * `error.detail.[]` **Changed**\n* `polar._endpointsubscription_updated_post()`: \n * `request.data` **Changed** **Breaking** :warning:\n * `error.detail.[]` **Changed**\n* `polar._endpointsubscription_active_post()`: \n * `request.data` **Changed** **Breaking** :warning:\n * `error.detail.[]` **Changed**\n* `polar._endpointsubscription_canceled_post()`: \n * `request.data` **Changed** **Breaking** :warning:\n * `error.detail.[]` **Changed**\n* `polar._endpointsubscription_uncanceled_post()`: \n * `request.data` **Changed** **Breaking** :warning:\n * `error.detail.[]` **Changed**\n* `polar._endpointsubscription_revoked_post()`: \n * `request.data` **Changed** **Breaking** :warning:\n * `error.detail.[]` **Changed**\n* `polar._endpointsubscription_past_due_post()`: \n * `request.data` **Changed** **Breaking** :warning:\n * `error.detail.[]` **Changed**\n* `polar.checkout-links.get()`: \n * `response` **Changed** **Breaking** :warning:\n * `error.detail.[]` **Changed**\n* `polar.checkout-links.create()`: \n * `request` **Changed**\n * `response` **Changed** **Breaking** :warning:\n * `error.detail.[]` **Changed**\n* `polar.checkout-links.list()`: \n * `response.items.[]` **Changed** **Breaking** :warning:\n * `error.detail.[]` **Changed**\n* `polar._endpointcheckout_created_post()`: \n * `request.data` **Changed** **Breaking** :warning:\n * `error.detail.[]` **Changed**\n* `polar.checkouts.client_confirm()`: \n * `request.checkout_confirm_stripe` **Changed** **Breaking** :warning:\n * `response` **Changed** **Breaking** :warning:\n * `error.detail.[]` **Changed**\n* `polar._endpointproduct_created_post()`: \n * `request.data` **Changed** **Breaking** :warning:\n * `error.detail.[]` **Changed**\n* `polar._endpointproduct_updated_post()`: \n * `request.data` **Changed** **Breaking** :warning:\n * `error.detail.[]` **Changed**\n* `polar._endpointorganization_updated_post()`: \n * `request.data` **Changed** **Breaking** :warning:\n * `error.detail.[]` **Changed**\n* `polar._endpointbenefit_created_post()`: \n * `request.data` **Changed** **Breaking** :warning:\n * `error.detail.[]` **Changed**\n* `polar._endpointbenefit_updated_post()`: \n * `request.data` **Changed** **Breaking** :warning:\n * `error.detail.[]` **Changed**\n* `polar.checkouts.client_update()`: \n * `request.checkout_update_public` **Changed** **Breaking** :warning:\n * `response` **Changed** **Breaking** :warning:\n * `error.detail.[]` **Changed**\n* `polar.checkouts.client_get()`: \n * `response` **Changed** **Breaking** :warning:\n * `error.detail.[]` **Changed**\n* `polar.checkouts.update()`: \n * `request.checkout_update` **Changed** **Breaking** :warning:\n * `response` **Changed** **Breaking** :warning:\n * `error.detail.[]` **Changed**\n* `polar.checkouts.get()`: \n * `response` **Changed** **Breaking** :warning:\n * `error.detail.[]` **Changed**\n* `polar.checkouts.create()`: \n * `request` **Changed** **Breaking** :warning:\n * `response` **Changed** **Breaking** :warning:\n * `error.detail.[]` **Changed**\n* `polar.organizations.create()`: \n * `request` **Changed** **Breaking** :warning:\n * `response` **Changed**\n * `error.detail.[]` **Changed**\n* `polar.checkouts.list()`: \n * `response.items.[]` **Changed** **Breaking** :warning:\n * `error.detail.[]` **Changed**\n* `polar.organizations.update()`: \n * `request.organization_update` **Changed** **Breaking** :warning:\n * `response` **Changed**\n * `error.detail.[]` **Changed**\n* `polar.subscriptions.list()`: \n * `response.items.[]` **Changed** **Breaking** :warning:\n * `error.detail.[]` **Changed**\n* `polar.subscriptions.create()`: \n * `response` **Changed** **Breaking** :warning:\n * `error.detail.[]` **Changed**\n* `polar.refunds.create()`: \n * `response` **Changed** **Breaking** :warning:\n * `error.detail.[]` **Changed**\n* `polar.subscriptions.get()`: \n * `response` **Changed** **Breaking** :warning:\n * `error.detail.[]` **Changed**\n* `polar.subscriptions.revoke()`: \n * `response` **Changed** **Breaking** :warning:\n * `error.detail.[]` **Changed**\n* `polar.subscriptions.update()`: \n * `response` **Changed** **Breaking** :warning:\n * `error.detail.[]` **Changed**\n* `polar.orders.update()`: \n * `response` **Changed** **Breaking** :warning:\n * `error.detail.[]` **Changed**\n* `polar.orders.get()`: \n * `response` **Changed** **Breaking** :warning:\n * `error.detail.[]` **Changed**\n* `polar.orders.list()`: \n * `response.items.[]` **Changed** **Breaking** :warning:\n * `error.detail.[]` **Changed**\n* `polar.products.update_benefits()`: \n * `response` **Changed** **Breaking** :warning:\n * `error.detail.[]` **Changed**\n* `polar.products.update()`: \n * `request.product_update` **Changed** **Breaking** :warning:\n * `response` **Changed** **Breaking** :warning:\n * `error.detail.[]` **Changed**\n* `polar.products.get()`: \n * `response` **Changed** **Breaking** :warning:\n * `error.detail.[]` **Changed**\n* `polar.products.create()`: \n * `request` **Changed** **Breaking** :warning:\n * `response` **Changed** **Breaking** :warning:\n * `error.detail.[]` **Changed**\n* `polar.products.list()`: \n * `request.visibility` **Added**\n * `response.items.[]` **Changed** **Breaking** :warning:\n * `error.detail.[]` **Changed**\n* `polar.webhooks.update_webhook_endpoint()`: \n * `request.webhook_endpoint_update.secret` **Removed** **Breaking** :warning:\n * `error.detail.[]` **Changed**\n* `polar.license_keys.get()`: \n * `response.customer` **Changed**\n * `error.detail.[]` **Changed**\n* `polar.customers.get_state_external()`: \n * `response` **Changed**\n * `error.detail.[]` **Changed**\n* `polar.webhooks.list_webhook_endpoints()`: `error.detail.[]` **Changed**\n* `polar.benefits.grants()`: \n * `response.items.[]` **Changed**\n * `error.detail.[]` **Changed**\n* `polar.webhooks.get_webhook_endpoint()`: `error.detail.[]` **Changed**\n* `polar.webhooks.delete_webhook_endpoint()`: `error.detail.[]` **Changed**\n* `polar.benefits.update()`: \n * `response` **Changed**\n * `error.detail.[]` **Changed**\n* `polar.webhooks.reset_webhook_endpoint_secret()`: `error.detail.[]` **Changed**\n* `polar.webhooks.list_webhook_deliveries()`: \n * `request.event_type` **Changed**\n * `error.detail.[]` **Changed**\n* `polar.webhooks.redeliver_webhook_event()`: `error.detail.[]` **Changed**\n* `polar.benefits.delete()`: `error.detail.[]` **Changed**\n* `polar.benefits.get()`: \n * `response` **Changed**\n * `error.detail.[]` **Changed**\n* `polar.benefits.create()`: \n * `response` **Changed**\n * `error.detail.[]` **Changed**\n* `polar.benefits.list()`: \n * `response.items.[]` **Changed**\n * `error.detail.[]` **Changed**\n* `polar.oauth2.clients.delete()`: `error.detail.[]` **Changed**\n* `polar.oauth2.clients.update()`: `error.detail.[]` **Changed**\n* `polar.orders.export()`: \n * `response.status[200].content[text/csv` **Added**\n * `error.detail.[]` **Changed**\n* `polar.oauth2.clients.get()`: `error.detail.[]` **Changed**\n* `polar.oauth2.clients.create()`: `error.detail.[]` **Changed**\n* `polar.orders.invoice()`: `error.detail.[]` **Changed**\n* `polar.refunds.list()`: `error.detail.[]` **Changed**\n* `polar.subscriptions.export()`: \n * `response.status[200].content[text/csv` **Added**\n * `error.detail.[]` **Changed**\n* `polar.disputes.list()`: `error.detail.[]` **Changed**\n* `polar.disputes.get()`: `error.detail.[]` **Changed**\n* `polar.organizations.get()`: \n * `response` **Changed**\n * `error.detail.[]` **Changed**\n* `polar.organizations.list()`: \n * `response.items.[]` **Changed**\n * `error.detail.[]` **Changed**\n* `polar._endpointbenefit_grant_revoked_post()`: \n * `request.data` **Changed**\n * `error.detail.[]` **Changed**\n* `polar._endpointbenefit_grant_cycled_post()`: \n * `request.data.[benefit_grant_license_keys_webhook]` **Changed**\n * `error.detail.[]` **Changed**\n* `polar._endpointbenefit_grant_updated_post()`: \n * `request.data` **Changed**\n * `error.detail.[]` **Changed**\n* `polar._endpointbenefit_grant_created_post()`: \n * `request.data` **Changed**\n * `error.detail.[]` **Changed**\n* `polar._endpointrefund_updated_post()`: `error.detail.[]` **Changed**\n* `polar.files.list()`: `error.detail.[]` **Changed**\n* `polar.files.create()`: `error.detail.[]` **Changed**\n* `polar.files.uploaded()`: `error.detail.[]` **Changed**\n* `polar.files.delete()`: `error.detail.[]` **Changed**\n* `polar.files.update()`: `error.detail.[]` **Changed**\n* `polar.metrics.get()`: `error.detail.[]` **Changed**\n* `polar.license_keys.list()`: \n * `response.items.[].customer` **Changed**\n * `error.detail.[]` **Changed**\n* `polar._endpointrefund_created_post()`: `error.detail.[]` **Changed**\n* `polar.license_keys.update()`: \n * `response.customer` **Changed**\n * `error.detail.[]` **Changed**\n* `polar.license_keys.get_activation()`: \n * `response.license_key.customer` **Changed**\n * `error.detail.[]` **Changed**\n* `polar.license_keys.validate()`: \n * `response.customer` **Changed**\n * `error.detail.[]` **Changed**\n* `polar.license_keys.activate()`: \n * `response.license_key.customer` **Changed**\n * `error.detail.[]` **Changed**\n* `polar.license_keys.deactivate()`: `error.detail.[]` **Changed**\n* `polar._endpointcustomer_seat_revoked_post()`: \n * `request.data.member` **Added**\n * `error.detail.[]` **Changed**\n* `polar._endpointcustomer_seat_claimed_post()`: \n * `request.data.member` **Added**\n * `error.detail.[]` **Changed**\n* `polar._endpointcustomer_seat_assigned_post()`: \n * `request.data.member` **Added**\n * `error.detail.[]` **Changed**\n* `polar.checkout-links.delete()`: `error.detail.[]` **Changed**\n* `polar._endpointcustomer_state_changed_post()`: \n * `request.data` **Changed**\n * `error.detail.[]` **Changed**\n* `polar.custom-fields.list()`: `error.detail.[]` **Changed**\n* `polar.custom-fields.create()`: `error.detail.[]` **Changed**\n* `polar.custom-fields.get()`: `error.detail.[]` **Changed**\n* `polar.custom-fields.delete()`: `error.detail.[]` **Changed**\n* `polar.custom-fields.update()`: `error.detail.[]` **Changed**\n* `polar.discounts.list()`: \n * `response.items.[].[discount_fixed_once_forever_duration].products.[].visibility` **Added**\n * `error.detail.[]` **Changed**\n* `polar._endpointcustomer_deleted_post()`: \n * `request.data` **Changed**\n * `error.detail.[]` **Changed**\n* `polar.discounts.get()`: \n * `response.[discount_fixed_once_forever_duration].products.[].visibility` **Added**\n * `error.detail.[]` **Changed**\n* `polar.discounts.delete()`: `error.detail.[]` **Changed**\n* `polar._endpointcustomer_updated_post()`: \n * `request.data` **Changed**\n * `error.detail.[]` **Changed**\n* `polar.customers.list()`: \n * `response.items.[]` **Changed**\n * `error.detail.[]` **Changed**\n* `polar.customers.create()`: \n * `request` **Changed**\n * `response` **Changed**\n * `error.detail.[]` **Changed**\n* `polar.customers.export()`: \n * `response.status[200].content[text/csv` **Added**\n * `error.detail.[]` **Changed**\n* `polar.customers.get()`: \n * `response` **Changed**\n * `error.detail.[]` **Changed**\n* `polar.customers.delete()`: `error.detail.[]` **Changed**\n* `polar.customers.update()`: \n * `request.customer_update` **Changed**\n * `response` **Changed**\n * `error.detail.[]` **Changed**\n* `polar.customers.get_external()`: \n * `response` **Changed**\n * `error.detail.[]` **Changed**\n* `polar.customers.delete_external()`: `error.detail.[]` **Changed**\n* `polar.customers.update_external()`: \n * `request.customer_update_external_id.locale` **Added**\n * `response` **Changed**\n * `error.detail.[]` **Changed**\n* `polar.customers.get_state()`: \n * `response` **Changed**\n * `error.detail.[]` **Changed**\n* `polar.benefit-grants.list()`: \n * `response.items.[]` **Changed**\n * `error.detail.[]` **Changed**\n* `polar.members.list_members()`: `error.detail.[]` **Changed**\n* `polar.members.create_member()`: `error.detail.[]` **Changed**\n* `polar.members.get_member()`: `error.detail.[]` **Changed**\n* `polar.members.delete_member()`: `error.detail.[]` **Changed**\n* `polar.members.update_member()`: `error.detail.[]` **Changed**\n* `polar.customer_portal.benefit-grants.list()`: \n * `request.query` **Added**\n * `response.items.[]` **Changed**\n * `error.detail.[]` **Changed**\n* `polar.customer_portal.benefit-grants.get()`: \n * `response` **Changed**\n * `error.detail.[]` **Changed**\n* `polar.customer_portal.benefit-grants.update()`: \n * `response` **Changed**\n * `error.detail.[]` **Changed**\n* `polar.customer_portal.customers.get()`: `response.type` **Added**\n* `polar.customer_portal.customers.update()`: \n * `response.type` **Added**\n * `error.detail.[]` **Changed**\n* `polar.customer_portal.customers.list_payment_methods()`: `error.detail.[]` **Changed**\n* `polar.customer_portal.customers.add_payment_method()`: `error.detail.[]` **Changed**\n* `polar.customer_portal.customers.confirm_payment_method()`: `error.detail.[]` **Changed**\n* `polar.customer_portal.customers.delete_payment_method()`: `error.detail.[]` **Changed**\n* `polar.customer_portal.customer_meters.list()`: `error.detail.[]` **Changed**\n* `polar.customer_portal.customer_meters.get()`: `error.detail.[]` **Changed**\n* `polar.customer_portal.seats.list_seats()`: \n * `response.seats.[].member` **Added**\n * `error.detail.[]` **Changed**\n* `polar.customer_portal.seats.assign_seat()`: \n * `request` **Changed**\n * `response.member` **Added**\n * `error.detail.[]` **Changed**\n* `polar.customer_portal.seats.revoke_seat()`: \n * `response.member` **Added**\n * `error.detail.[]` **Changed**\n* `polar.customer_portal.seats.resend_invitation()`: \n * `response.member` **Added**\n * `error.detail.[]` **Changed**\n* `polar._endpointcustomer_created_post()`: \n * `request.data` **Changed**\n * `error.detail.[]` **Changed**\n* `polar.customer_portal.customer-session.get_authenticated_user()`: `response.member_id` **Added**\n* `polar.customer_portal.downloadables.list()`: `error.detail.[]` **Changed**\n* `polar.customer_portal.license_keys.list()`: \n * `response.items.[].customer` **Changed**\n * `error.detail.[]` **Changed**\n* `polar.customer_portal.license_keys.get()`: \n * `response.customer` **Changed**\n * `error.detail.[]` **Changed**\n* `polar.customer_portal.license_keys.validate()`: \n * `response.customer` **Changed**\n * `error.detail.[]` **Changed**\n* `polar.customer_portal.license_keys.activate()`: \n * `response.license_key.customer` **Changed**\n * `error.detail.[]` **Changed**\n* `polar.customer_portal.license_keys.deactivate()`: `error.detail.[]` **Changed**\n* `polar.customer_portal.members.remove_member()`: **Added**\n* `polar.customer_portal.members.update_member()`: **Added**\n* `polar.customer_portal.members.add_member()`: **Added**\n* `polar.customer_portal.orders.invoice()`: `error.detail.[]` **Changed**\n* `polar.customer_portal.orders.get_payment_status()`: `error.detail.[]` **Changed**\n* `polar.customer_portal.members.list_members()`: **Added**\n* `polar._endpointmember_deleted_post()`: **Added**\n* `polar._endpointmember_updated_post()`: **Added**\n* `polar._endpointmember_created_post()`: **Added**\n* `polar._endpointcheckout_expired_post()`: **Added**\n* `polar.customer_portal.wallets.list()`: `error.detail.[]` **Changed**\n* `polar.customer_portal.wallets.get()`: `error.detail.[]` **Changed**\n* `polar.customer-seats.list_seats()`: \n * `response.seats.[].member` **Added**\n * `error.detail.[]` **Changed**\n* `polar.customer-seats.assign_seat()`: \n * `request` **Changed**\n * `response.member` **Added**\n * `error.detail.[]` **Changed**\n* `polar.customer-seats.revoke_seat()`: \n * `response.member` **Added**\n * `error.detail.[]` **Changed**\n* `polar.customer-seats.resend_invitation()`: \n * `response.member` **Added**\n * `error.detail.[]` **Changed**\n* `polar.customer-seats.get_claim_info()`: `error.detail.[]` **Changed**\n* `polar.customer-seats.claim_seat()`: \n * `response.seat.member` **Added**\n * `error.detail.[]` **Changed**\n* `polar.customer-sessions.create()`: \n * `response.customer` **Changed**\n * `error.detail.[]` **Changed**\n* `polar.member-sessions.create()`: \n * `response.customer` **Changed**\n * `error.detail.[]` **Changed**\n* `polar.events.list()`: \n * `response.[list_resource_event_].items.[]` **Changed**\n * `error.detail.[]` **Changed**\n* `polar.events.list_names()`: `error.detail.[]` **Changed**\n* `polar.events.get()`: \n * `response` **Changed**\n * `error.detail.[]` **Changed**\n* `polar.events.ingest()`: \n * `request.events.[]` **Changed**\n * `error.detail.[]` **Changed**\n* `polar.event-types.list()`: `error.detail.[]` **Changed**\n* `polar.event-types.update()`: `error.detail.[]` **Changed**\n* `polar.meters.list()`: `error.detail.[]` **Changed**\n* `polar.meters.create()`: `error.detail.[]` **Changed**\n* `polar.meters.get()`: `error.detail.[]` **Changed**\n* `polar.meters.update()`: `error.detail.[]` **Changed**\n* `polar.meters.quantities()`: \n * `request.timezone` **Added**\n * `error.detail.[]` **Changed**\n* `polar.organization_access_tokens.list()`: `error.detail.[]` **Changed**\n* `polar.organization_access_tokens.create()`: `error.detail.[]` **Changed**\n* `polar.organization_access_tokens.delete()`: `error.detail.[]` **Changed**\n* `polar.organization_access_tokens.update()`: `error.detail.[]` **Changed**\n* `polar.customer_meters.list()`: \n * `response.items.[].customer` **Changed**\n * `error.detail.[]` **Changed**\n* `polar.customer_meters.get()`: \n * `response.customer` **Changed**\n * `error.detail.[]` **Changed**\n* `polar.payments.list()`: `error.detail.[]` **Changed**\n* `polar.payments.get()`: `error.detail.[]` **Changed**\n" +releaseNotes: "## Python SDK Changes Detected:\n* `polar.benefit-grants.list()`: `response.items.[]` **Changed** **Breaking** :warning:\n* `polar.customers.create()`: `response` **Changed** **Breaking** :warning:\n* `polar.customers.get_external()`: `response` **Changed** **Breaking** :warning:\n* `polar.customers.update()`: `response` **Changed** **Breaking** :warning:\n* `polar.customers.get()`: `response` **Changed** **Breaking** :warning:\n* `polar.customers.list()`: `response.items.[]` **Changed** **Breaking** :warning:\n* `polar.products.update_benefits()`: `response.benefits.[]` **Changed** **Breaking** :warning:\n* `polar.products.update()`: `response.benefits.[]` **Changed** **Breaking** :warning:\n* `polar._endpointsubscription_created_post()`: \n * `request.data` **Changed** **Breaking** :warning:\n* `polar._endpointsubscription_updated_post()`: \n * `request.data` **Changed** **Breaking** :warning:\n* `polar._endpointsubscription_active_post()`: \n * `request.data` **Changed** **Breaking** :warning:\n* `polar._endpointsubscription_canceled_post()`: \n * `request.data` **Changed** **Breaking** :warning:\n* `polar._endpointsubscription_uncanceled_post()`: \n * `request.data` **Changed** **Breaking** :warning:\n* `polar._endpointsubscription_revoked_post()`: \n * `request.data` **Changed** **Breaking** :warning:\n* `polar._endpointsubscription_past_due_post()`: \n * `request.data` **Changed** **Breaking** :warning:\n* `polar._endpointproduct_created_post()`: \n * `request.data.benefits.[]` **Changed** **Breaking** :warning:\n* `polar._endpointproduct_updated_post()`: \n * `request.data.benefits.[]` **Changed** **Breaking** :warning:\n* `polar._endpointorganization_updated_post()`: \n * `request.data.feature_settings.presentment_currencies_enabled` **Removed** **Breaking** :warning:\n* `polar._endpointbenefit_created_post()`: \n * `request.data` **Changed** **Breaking** :warning:\n* `polar._endpointbenefit_updated_post()`: \n * `request.data` **Changed** **Breaking** :warning:\n* `polar.products.get()`: `response.benefits.[]` **Changed** **Breaking** :warning:\n* `polar.products.create()`: `response.benefits.[]` **Changed** **Breaking** :warning:\n* `polar.products.list()`: `response.items.[].benefits.[]` **Changed** **Breaking** :warning:\n* `polar.customers.update_external()`: `response` **Changed** **Breaking** :warning:\n* `polar.organizations.list()`: `response.items.[].feature_settings.presentment_currencies_enabled` **Removed** **Breaking** :warning:\n* `polar.organizations.create()`: \n * `request.feature_settings.presentment_currencies_enabled` **Removed** **Breaking** :warning:\n * `response.feature_settings.presentment_currencies_enabled` **Removed** **Breaking** :warning:\n* `polar.organizations.get()`: `response.feature_settings.presentment_currencies_enabled` **Removed** **Breaking** :warning:\n* `polar.organizations.update()`: \n * `request.organization_update.feature_settings.presentment_currencies_enabled` **Removed** **Breaking** :warning:\n * `response.feature_settings.presentment_currencies_enabled` **Removed** **Breaking** :warning:\n* `polar.subscriptions.list()`: `response.items.[]` **Changed** **Breaking** :warning:\n* `polar.subscriptions.create()`: `response` **Changed** **Breaking** :warning:\n* `polar.subscriptions.get()`: `response` **Changed** **Breaking** :warning:\n* `polar.subscriptions.revoke()`: `response` **Changed** **Breaking** :warning:\n* `polar.subscriptions.update()`: `response` **Changed** **Breaking** :warning:\n* `polar.benefits.list()`: \n * `request.type_filter` **Changed**\n * `response.items.[]` **Changed** **Breaking** :warning:\n* `polar.benefits.create()`: \n * `request` **Changed** **Breaking** :warning:\n * `response` **Changed** **Breaking** :warning:\n* `polar.benefits.get()`: `response` **Changed** **Breaking** :warning:\n* `polar.benefits.update()`: \n * `request_body.[benefit_feature_flag_update]` **Added**\n * `response` **Changed** **Breaking** :warning:\n* `polar.benefits.grants()`: `response.items.[]` **Changed** **Breaking** :warning:\n* `polar._endpointorder_updated_post()`: \n * `request.data.customer.external_id` **Changed**\n* `polar.webhooks.list_webhook_endpoints()`: `response.items.[].name` **Added**\n* `polar._endpointbenefit_grant_revoked_post()`: \n * `request.data` **Changed**\n* `polar.webhooks.get_webhook_endpoint()`: `response.name` **Added**\n* `polar.webhooks.update_webhook_endpoint()`: \n * `request.webhook_endpoint_update.name` **Added**\n * `response.name` **Added**\n* `polar.webhooks.reset_webhook_endpoint_secret()`: `response.name` **Added**\n* `polar._endpointbenefit_grant_cycled_post()`: \n * `request.data` **Changed**\n* `polar._endpointbenefit_grant_updated_post()`: \n * `request.data` **Changed**\n* `polar._endpointbenefit_grant_created_post()`: \n * `request.data` **Changed**\n* `polar._endpointorder_refunded_post()`: \n * `request.data.customer.external_id` **Changed**\n* `polar._endpointorder_paid_post()`: \n * `request.data.customer.external_id` **Changed**\n* `polar.orders.list()`: `response.items.[].customer.external_id` **Changed**\n* `polar.orders.get()`: `response.customer.external_id` **Changed**\n* `polar.orders.update()`: `response.customer.external_id` **Changed**\n* `polar.license_keys.list()`: `response.items.[].customer.external_id` **Changed**\n* `polar.license_keys.get()`: `response.customer.external_id` **Changed**\n* `polar.license_keys.update()`: `response.customer.external_id` **Changed**\n* `polar.license_keys.get_activation()`: `response.license_key.customer.external_id` **Changed**\n* `polar.license_keys.validate()`: `response.customer.external_id` **Changed**\n* `polar._endpointcustomer_updated_post()`: \n * `request.data.external_id` **Changed**\n* `polar._endpointcustomer_created_post()`: \n * `request.data.external_id` **Changed**\n* `polar._endpointorder_created_post()`: \n * `request.data.customer.external_id` **Changed**\n* `polar.license_keys.activate()`: `response.license_key.customer.external_id` **Changed**\n* `polar._endpointcustomer_state_changed_post()`: \n * `request.data` **Changed**\n* `polar._endpointcustomer_deleted_post()`: \n * `request.data.external_id` **Changed**\n* `polar.webhooks.create_webhook_endpoint()`: \n * `request.name` **Added**\n * `response.name` **Added**\n* `polar.customers.get_state()`: `response` **Changed**\n* `polar.customers.get_state_external()`: `response` **Changed**\n* `polar.customer_portal.benefit-grants.list()`: \n * `request.type_filter` **Changed**\n * `response.items.[].[customer_benefit_grant_feature_flag]` **Added**\n* `polar.customer_portal.benefit-grants.get()`: `response.[customer_benefit_grant_feature_flag]` **Added**\n* `polar.customer_portal.benefit-grants.update()`: \n * `request.customer_benefit_grant_update.[feature_flag]` **Added**\n * `response.[customer_benefit_grant_feature_flag]` **Added**\n* `polar.customer_portal.license_keys.list()`: `response.items.[].customer.external_id` **Changed**\n* `polar.customer_portal.license_keys.get()`: `response.customer.external_id` **Changed**\n* `polar.customer_portal.license_keys.validate()`: `response.customer.external_id` **Changed**\n* `polar.customer_portal.license_keys.activate()`: `response.license_key.customer.external_id` **Changed**\n* `polar.customer-sessions.create()`: `response.customer.external_id` **Changed**\n* `polar.member-sessions.create()`: `response.customer.external_id` **Changed**\n* `polar.events.list()`: `response.[list_resource_event_].items.[].[system_event].[order.refunded].customer.external_id` **Changed**\n* `polar.events.get()`: `response.[system_event].[meter.reset].customer.external_id` **Changed**\n* `polar.customer_meters.list()`: `response.items.[].customer.external_id` **Changed**\n* `polar.customer_meters.get()`: `response.customer.external_id` **Changed**\n" trackedFiles: .devcontainer/README.md: last_write_checksum: sha1:e2a191a1fa8ceb27387eb32eabf36f7ad16a532c @@ -4455,9 +4476,9 @@ trackedFiles: docs/models/balancerefundreversalevent.md: last_write_checksum: sha1:ac217e04576ef35fd7f38f4346171160e2f65a43 docs/models/benefit.md: - last_write_checksum: sha1:c318df86b237ab535a67a284681739f942f02299 + last_write_checksum: sha1:b11d8c2a5c789364c030b2bce8bd57ad693a0a25 docs/models/benefitcreate.md: - last_write_checksum: sha1:96917c2c3ccd03346e944db279d0b83561fa7ebb + last_write_checksum: sha1:8cb6dd9d84a263ace9af406921abefa7ec38b7a0 docs/models/benefitcustom.md: last_write_checksum: sha1:010c62e64526f8079f82271d8729e824df006a41 docs/models/benefitcustomcreate.md: @@ -4514,6 +4535,24 @@ trackedFiles: last_write_checksum: sha1:d5c4ad52f4856e18c88fbb08112f9715367a0548 docs/models/benefitdownloadablesupdatemetadata.md: last_write_checksum: sha1:299e7c53534a66e0760f80684dec0f7c4636f517 + docs/models/benefitfeatureflag.md: + last_write_checksum: sha1:20e86e1de515ed11518c71a451dc206d07b77f97 + docs/models/benefitfeatureflagcreate.md: + last_write_checksum: sha1:635d4b3c1d1238e41a3f109354220a86cb00eb3d + docs/models/benefitfeatureflagcreatemetadata.md: + last_write_checksum: sha1:b4910d5cedf4eb4df5f8bac845360cc435421318 + docs/models/benefitfeatureflagcreateproperties.md: + last_write_checksum: sha1:998a01d5dc9219370b5b5a214cfe54bec3ea7c68 + docs/models/benefitfeatureflagproperties.md: + last_write_checksum: sha1:a863eb4ec358ffa589a9ae9aa72991e060320141 + docs/models/benefitfeatureflagsubscriber.md: + last_write_checksum: sha1:124a8a99661c33d5178135fabe07e60b5e7bae2c + docs/models/benefitfeatureflagsubscriberproperties.md: + last_write_checksum: sha1:63a0ec1730a4280a3811a470f961d0dc0eeb5224 + docs/models/benefitfeatureflagupdate.md: + last_write_checksum: sha1:d7d5f187ee573fa0e6f17855aa1ca640345eba3d + docs/models/benefitfeatureflagupdatemetadata.md: + last_write_checksum: sha1:649ddba04379318c3082ac3629dc6ac1a5669294 docs/models/benefitgithubrepository.md: last_write_checksum: sha1:334ff6739bcea99c5f91675f7c5184e455f7cc05 docs/models/benefitgithubrepositorycreate.md: @@ -4552,6 +4591,10 @@ trackedFiles: last_write_checksum: sha1:bf4c893a4a5528e65d45836e67af859744fb57f4 docs/models/benefitgranterror.md: last_write_checksum: sha1:311e29c4069c85a703d4835c06ab2699c38b7e23 + docs/models/benefitgrantfeatureflagproperties.md: + last_write_checksum: sha1:ac1a45c5a0114bcdea380f163dcbe566a09898c5 + docs/models/benefitgrantfeatureflagwebhook.md: + last_write_checksum: sha1:bee929f7e7723ac75e53201ec13aea4e20037e3f docs/models/benefitgrantgithubrepositoryproperties.md: last_write_checksum: sha1:efee0b2d81679c2d462543572d86e7a0aa553d22 docs/models/benefitgrantgithubrepositorypropertiespermission.md: @@ -4579,7 +4622,7 @@ trackedFiles: docs/models/benefitgrantsortproperty.md: last_write_checksum: sha1:a3560b36fe423b2436d7e7afb8ea645a43a4431e docs/models/benefitgrantwebhook.md: - last_write_checksum: sha1:65b5469a773d0872efc3401ebf5ff23df3cd7a32 + last_write_checksum: sha1:c279aaddbcad8f1691d3193dfb7db012c8fe05ef docs/models/benefitidfilter.md: last_write_checksum: sha1:b2fa0d4347f3bf6d942e95414c4806995bfb7039 docs/models/benefitlicensekeyactivationcreateproperties.md: @@ -4645,11 +4688,11 @@ trackedFiles: docs/models/benefitsubscriberorganization.md: last_write_checksum: sha1:2746ca75992333aeb1c4a4b58ec3c39f08bb8549 docs/models/benefitsupdatebenefitupdate.md: - last_write_checksum: sha1:e51bdd2d2d85d458927f6f061ccdc4a3b860ba1d + last_write_checksum: sha1:d6e2316ce7437e82de5bad7acc6ec439fd203e9a docs/models/benefitsupdaterequest.md: last_write_checksum: sha1:b65770a91de3647200dc57ba6ab51e95d2dad09c docs/models/benefittype.md: - last_write_checksum: sha1:f754111e73f4ea62d088479e7250889cfd8796cc + last_write_checksum: sha1:1debef7e94a6bd630d71211893bd23d4671a99d7 docs/models/benefittypefilter.md: last_write_checksum: sha1:ab2770b61c2d09b9111d2ec5bbd1f910cd91ab26 docs/models/benefitupdatedevent.md: @@ -4675,7 +4718,7 @@ trackedFiles: docs/models/canceledsubscriptionsunused.md: last_write_checksum: sha1:84ab1011043dfc65ffc9ddf9776c76c86aa0b69a docs/models/cardpayment.md: - last_write_checksum: sha1:2fe9208598d80ff668080ba460eca5dffa0f7919 + last_write_checksum: sha1:82e048959be6f817bec3560a38a71bf6fa309df5 docs/models/cardpaymentmetadata.md: last_write_checksum: sha1:0819c2f5e47298bd6f4959e8fd6cde859d0358e1 docs/models/cashflow.md: @@ -4861,9 +4904,9 @@ trackedFiles: docs/models/cursorpagination.md: last_write_checksum: sha1:fa2063f2776d648ede7081386c040aa2fece5cad docs/models/customer.md: - last_write_checksum: sha1:7ea62a12661bc8a1093d6ab0b238226b09cce1cc + last_write_checksum: sha1:9c6bca794a112e3179ab4c38065b4f2cc3e48090 docs/models/customerbenefitgrant.md: - last_write_checksum: sha1:6ec5aa2deec3b9c733be33224142d408413c4e4b + last_write_checksum: sha1:d6786372873dd0132a53ebb084de6b86b8d78170 docs/models/customerbenefitgrantcustom.md: last_write_checksum: sha1:3e11e3191dbabcea48c4b117a1e819f0a6c9743a docs/models/customerbenefitgrantcustomupdate.md: @@ -4878,6 +4921,10 @@ trackedFiles: last_write_checksum: sha1:43c254bdcadceb6a99e3a5786c32db1ce53d91dd docs/models/customerbenefitgrantdownloadablesupdate.md: last_write_checksum: sha1:3544a24205a67cfe90c5bab72007eb2b536f94e4 + docs/models/customerbenefitgrantfeatureflag.md: + last_write_checksum: sha1:7a790fe4a99d767af9dbfe82b9c0732eebd6516b + docs/models/customerbenefitgrantfeatureflagupdate.md: + last_write_checksum: sha1:71a1d689ea655ead0923ec49f8206ac35493ee7d docs/models/customerbenefitgrantgithubrepository.md: last_write_checksum: sha1:9a11551d265fbad479e825ec376b236db5eecf08 docs/models/customerbenefitgrantgithubrepositorypropertiesupdate.md: @@ -4895,7 +4942,7 @@ trackedFiles: docs/models/customerbenefitgrantsortproperty.md: last_write_checksum: sha1:3daf692621d0b7cb841f873c59ed0345ee53a18b docs/models/customerbenefitgrantupdate.md: - last_write_checksum: sha1:47e88283c3d702201ad4a57b8f71700d616641ae + last_write_checksum: sha1:fd4ad70ec4d8e05412bcb7f151394c5485ec34b4 docs/models/customercancellationreason.md: last_write_checksum: sha1:dce3caa4e9c3ba6f34cec860553f6b43153a23a0 docs/models/customercreate.md: @@ -5213,15 +5260,15 @@ trackedFiles: docs/models/customerslistrequest.md: last_write_checksum: sha1:170c64fefb80210d20d0baf03184294288f7113e docs/models/customerslistresponse.md: - last_write_checksum: sha1:1bd4a389881dabd686b57523ff05032e8f0e8dc6 + last_write_checksum: sha1:90281a239335ca50f1e83bd1fa015a9659fec192 docs/models/customersortproperty.md: last_write_checksum: sha1:2672b02c99477c6fc00f52ae9fa4065eb74e03df docs/models/customerstate.md: - last_write_checksum: sha1:4b4525ff0bc76297b1937a26b4198c128ff72b8a + last_write_checksum: sha1:931473210aac031ef32364be6102a58dc1209691 docs/models/customerstatebenefitgrant.md: last_write_checksum: sha1:5cf765aa45669dbae8ca5456efc6d03c1f8ca7ec docs/models/customerstatebenefitgrantproperties.md: - last_write_checksum: sha1:ba480f083046ac03636483a0714063dfb6773bbe + last_write_checksum: sha1:a27ec100afd9e2729b6e38f8223d30048c8de298 docs/models/customerstatemeter.md: last_write_checksum: sha1:1ba8ac262f0636091a3ce06800e51c29ceedd0d7 docs/models/customerstatesubscription.md: @@ -5286,10 +5333,6 @@ trackedFiles: last_write_checksum: sha1:07da8ef2ea7d574b5e5afed297f9340340d82fac docs/models/customerwalletsortproperty.md: last_write_checksum: sha1:2bffc9516e29a1c719e0ad7c9cc0b98cb7a2ef98 - docs/models/customerwithmembers.md: - last_write_checksum: sha1:6d7c1f03e920b7d56f1baf528c8c604dfe422572 - docs/models/customerwithmemberstaxid.md: - last_write_checksum: sha1:84ca2f92d4ffe8ea194be5e82f6b2f876899ba23 docs/models/customfield.md: last_write_checksum: sha1:3616c07edade1c5412e4583010cd1c5dc81cb70a docs/models/customfieldcheckbox.md: @@ -5581,7 +5624,7 @@ trackedFiles: docs/models/func.md: last_write_checksum: sha1:94824a8d386f72b22afdb279b5bb887975054b54 docs/models/genericpayment.md: - last_write_checksum: sha1:bdf7c30da661cc522fb3c633b5d0845c82b50c49 + last_write_checksum: sha1:88f2a6114edc10307432e99cd0899d2f8d60bb9b docs/models/granttypes.md: last_write_checksum: sha1:6ec6969f5a40b4a1ab90883b174d2afeee0d1f06 docs/models/grossmargin.md: @@ -5619,7 +5662,7 @@ trackedFiles: docs/models/licensekeyactivationreadmeta.md: last_write_checksum: sha1:04c6c266c45dba0b3d18e64b4a7202fbbfc5533e docs/models/licensekeycustomer.md: - last_write_checksum: sha1:5a6b4d7b0b8accf9a72974c3983fc52f0ef9dd30 + last_write_checksum: sha1:d76fc0e3fe01c4688450e32b30898af35b333232 docs/models/licensekeycustomertaxid.md: last_write_checksum: sha1:17f958a0d1a86b1370561ba966159f1fb2dc2f77 docs/models/licensekeydeactivate.md: @@ -5656,6 +5699,8 @@ trackedFiles: last_write_checksum: sha1:9ab9bee989b2291eddd35284f18b6c7c29653c11 docs/models/listresourcecheckoutlink.md: last_write_checksum: sha1:14cf897d29a1db0eb91298a2394e2014c0fe2f16 + docs/models/listresourcecustomer.md: + last_write_checksum: sha1:7835f74efafecdde142062b370d3f75e33dff5bd docs/models/listresourcecustomerbenefitgrant.md: last_write_checksum: sha1:17b7fe25b87df30b9605292ada0027463d6dc32d docs/models/listresourcecustomercustomermeter.md: @@ -5672,8 +5717,6 @@ trackedFiles: last_write_checksum: sha1:082f04220949fc08b37f93066e9addf71bf1c65b docs/models/listresourcecustomerwallet.md: last_write_checksum: sha1:d5079cce4cc8099ebb1c6676c325bc5b19224efb - docs/models/listresourcecustomerwithmembers.md: - last_write_checksum: sha1:ef08e8d3d3442cbb3451a09d2635160fb07dbac2 docs/models/listresourcecustomfield.md: last_write_checksum: sha1:eaa08e2402a21384c2c2092d88ce26887269876d docs/models/listresourcediscount.md: @@ -5971,7 +6014,7 @@ trackedFiles: docs/models/orderbillingreason.md: last_write_checksum: sha1:b75aab93cd92ad6ac1b7b59f4775bc01dbac93ca docs/models/ordercustomer.md: - last_write_checksum: sha1:0bab637c6d304a0913cfe8609c3c74535a1a021f + last_write_checksum: sha1:2d00b67f5029656bda3b2afe1bc2a275cc70f141 docs/models/ordercustomertaxid.md: last_write_checksum: sha1:2b00fc78c61f7408167a1d75173b7882d6adad2e docs/models/ordercustomfielddata.md: @@ -6071,7 +6114,7 @@ trackedFiles: docs/models/organizationdetails.md: last_write_checksum: sha1:4035786e9b89cd7ebdd8fa44feec92c38005738d docs/models/organizationfeaturesettings.md: - last_write_checksum: sha1:6626ceb7da510c51adaced8b6c643c605ccc431f + last_write_checksum: sha1:87388886d0728edaf974a45cc5fad56561d14380 docs/models/organizationid.md: last_write_checksum: sha1:5adf4fb1a723f361ac66da12542fedbe34fd9e5d docs/models/organizationidfilter.md: @@ -6087,7 +6130,7 @@ trackedFiles: docs/models/organizationsociallink.md: last_write_checksum: sha1:805973d5d2ef661306598fb00530fe8da8c7601f docs/models/organizationsocialplatforms.md: - last_write_checksum: sha1:d87a3d33bdc841ee86ba59369b302236c1f9a833 + last_write_checksum: sha1:be00289c7d493733f2f30f5f6662d2c4a0a2a89b docs/models/organizationsortproperty.md: last_write_checksum: sha1:aada02a924bedeb16eaaf1c3959a1d276b55bee4 docs/models/organizationstatus.md: @@ -6229,7 +6272,7 @@ trackedFiles: docs/models/productvisibility.md: last_write_checksum: sha1:617f3b8e41b9ebd487f71e9f8c7c53cdb707f963 docs/models/properties.md: - last_write_checksum: sha1:0fc6cafd89018690bb0aaca3fb0d551704d6dfbd + last_write_checksum: sha1:84839699980f9b304d2368f5d2ca229e453db898 docs/models/propertyaggregation.md: last_write_checksum: sha1:321820e7221f812441f8833a73dccc897128215f docs/models/queryparambenefitidfilter.md: @@ -6365,7 +6408,7 @@ trackedFiles: docs/models/subscriptioncreateexternalcustomermetadata.md: last_write_checksum: sha1:85e1b41fa20c903f06f408a26e86b33224ddf631 docs/models/subscriptioncustomer.md: - last_write_checksum: sha1:96ef8d81886e0c61707cb6b473a6648bff1dd70c + last_write_checksum: sha1:1a350fae93db317b02abd8938ad26ec6733e9815 docs/models/subscriptioncycledevent.md: last_write_checksum: sha1:4d909d313cd1c1c5861038d4e7d3bd8665b3c5e6 docs/models/subscriptioncycledmetadata.md: @@ -6519,11 +6562,11 @@ trackedFiles: docs/models/webhookdelivery.md: last_write_checksum: sha1:ad3347208c254800e88f97b02fdc1aa35ea56fc6 docs/models/webhookendpoint.md: - last_write_checksum: sha1:e64e1b590ddb915e7d43f5d49c797850fefa3acc + last_write_checksum: sha1:87fa89e16d1444797d115780fe43b9e9518add75 docs/models/webhookendpointcreate.md: - last_write_checksum: sha1:323d2b8a1cbba10f47cfc08fe3d62b9b3567c6a0 + last_write_checksum: sha1:186d4ac8216ab793bae20ff2e2e038d0710410a9 docs/models/webhookendpointupdate.md: - last_write_checksum: sha1:6bfb4fa8108badb12b6c5ebedf5bad174589ae4b + last_write_checksum: sha1:9613cd6deb0f5b7297ce44fac40521066b0ecb48 docs/models/webhookevent.md: last_write_checksum: sha1:78db9970ae5ed501bea9d03d58ebfff6c9394233 docs/models/webhookeventtype.md: @@ -6603,7 +6646,7 @@ trackedFiles: docs/sdks/customermeters/README.md: last_write_checksum: sha1:b90c86939a9133539681534059241026b501c783 docs/sdks/customers/README.md: - last_write_checksum: sha1:b6ea0af5b29fd8d83f2986eb601b14deb93ce8de + last_write_checksum: sha1:0f1be629268ee057c03fd4c8ae5eac87aa9a5ab1 docs/sdks/customerseats/README.md: last_write_checksum: sha1:7f63eb8dd09fcc98ffb4dc15cb4c9241bab5ae7d docs/sdks/customersessions/README.md: @@ -6679,7 +6722,7 @@ trackedFiles: pylintrc: last_write_checksum: sha1:f3105517b767e704987821cf08b26c09d5235218 pyproject.toml: - last_write_checksum: sha1:9fbcc449564ceb118247d26bf6c78550d87295d6 + last_write_checksum: sha1:ff60f005d02b23e08324ffb3e2c1b7768283133a scripts/prepare_readme.py: last_write_checksum: sha1:2311639185b318e498a99518d92fa5c847b5c70a scripts/publish.sh: @@ -6693,7 +6736,7 @@ trackedFiles: src/polar_sdk/_hooks/types.py: last_write_checksum: sha1:a218c66f3e2d1f1b9af54f270472b970b0cc1913 src/polar_sdk/_version.py: - last_write_checksum: sha1:e4a4c5bbb03a72180caf1c83dbc4eeaca8aab263 + last_write_checksum: sha1:9572d609840e07e2d8500bd0a77ecb79bb17276e src/polar_sdk/basesdk.py: last_write_checksum: sha1:3c3d1fd3866d63b09412c7ada0ed05b82b7513b2 src/polar_sdk/benefit_grants.py: @@ -6719,7 +6762,7 @@ trackedFiles: src/polar_sdk/customer_sessions.py: last_write_checksum: sha1:9dcac4b97cff20d10c5f1d3ad480f5b9d799d7c5 src/polar_sdk/customers.py: - last_write_checksum: sha1:a39ba20b322743621dfc5ba9d1e7f180d64e592b + last_write_checksum: sha1:9bbc435dbf46ac75edf6f473f38045a78f54178a src/polar_sdk/discounts.py: last_write_checksum: sha1:42a28a0b0e6dd3fcf90d1b8f0ddc4928903fbd33 src/polar_sdk/disputes.py: @@ -6745,7 +6788,7 @@ trackedFiles: src/polar_sdk/metrics_sdk.py: last_write_checksum: sha1:d35cb2e65dcc84d88d36a8f68ccf5a46868aff0f src/polar_sdk/models/__init__.py: - last_write_checksum: sha1:e54d32919015c12d0be52665a88bed9c6bcc021f + last_write_checksum: sha1:46a98a4f05d194b4f402c8cf3d7c96702d718636 src/polar_sdk/models/address.py: last_write_checksum: sha1:3373863e2888cd8a04df391b499ca249230ae91e src/polar_sdk/models/addressdict.py: @@ -6795,11 +6838,11 @@ trackedFiles: src/polar_sdk/models/balancerefundreversalevent.py: last_write_checksum: sha1:177569d99f5b94b657aa309ba53f0de9ed53287b src/polar_sdk/models/benefit.py: - last_write_checksum: sha1:1b0b11f1999fa93aca6320a98112b82b1c5d0e7b + last_write_checksum: sha1:d3c6774554fb573bd3302dc3308a98748184d945 src/polar_sdk/models/benefit_grants_listop.py: last_write_checksum: sha1:a77ea982cd7a438e9723828f8df45f71cd23f35b src/polar_sdk/models/benefitcreate.py: - last_write_checksum: sha1:030ccde94895e2510d9468ecfad94c4d8880eb01 + last_write_checksum: sha1:cda8b4f6c699ad151c56b8dada761d8a501e0ac5 src/polar_sdk/models/benefitcustom.py: last_write_checksum: sha1:c8db4cf2b58c0b1a1935bed5cc55ab80c2b54776 src/polar_sdk/models/benefitcustomcreate.py: @@ -6844,6 +6887,20 @@ trackedFiles: last_write_checksum: sha1:a6b5334b254773e57ff782573bc3171863c0d502 src/polar_sdk/models/benefitdownloadablesupdate.py: last_write_checksum: sha1:5e5821124e2af28774d2f8319b7d071ed24448be + src/polar_sdk/models/benefitfeatureflag.py: + last_write_checksum: sha1:777bf598e0e533cbc704fdf0e27dc9bf48bcf1d8 + src/polar_sdk/models/benefitfeatureflagcreate.py: + last_write_checksum: sha1:864885f98b1dfe9af8ce5999ba9544f07e642447 + src/polar_sdk/models/benefitfeatureflagcreateproperties.py: + last_write_checksum: sha1:2b66805c58b00a9567ffb3059a1aa4a1ca6f9193 + src/polar_sdk/models/benefitfeatureflagproperties.py: + last_write_checksum: sha1:ab633923fff254c304ef1e3ee9c1eb98cb6b6beb + src/polar_sdk/models/benefitfeatureflagsubscriber.py: + last_write_checksum: sha1:69ea42f8f600fc322d4b2c94715746689593b7ce + src/polar_sdk/models/benefitfeatureflagsubscriberproperties.py: + last_write_checksum: sha1:3db40f93b8f58534f70f3b629947ff7547e59054 + src/polar_sdk/models/benefitfeatureflagupdate.py: + last_write_checksum: sha1:636fa0bcbbba6156e23819495ca5d16f82fffb08 src/polar_sdk/models/benefitgithubrepository.py: last_write_checksum: sha1:2f117025da716aa3ab9d73c214ffade1075b761d src/polar_sdk/models/benefitgithubrepositorycreate.py: @@ -6859,7 +6916,7 @@ trackedFiles: src/polar_sdk/models/benefitgithubrepositoryupdate.py: last_write_checksum: sha1:20776f518c1e78d39307b5b277fa471227515f73 src/polar_sdk/models/benefitgrant.py: - last_write_checksum: sha1:62ad2a12dc092bab355a2b7832b7131741ad7edd + last_write_checksum: sha1:b6dc42f2ecaa6a73ad8f316f84d9cbfc6473c67a src/polar_sdk/models/benefitgrantcustomproperties.py: last_write_checksum: sha1:c7a00e22c356cae26b0ea82aca051234c266d708 src/polar_sdk/models/benefitgrantcustomwebhook.py: @@ -6876,6 +6933,10 @@ trackedFiles: last_write_checksum: sha1:72ffebe58779099bdec1ab43d0243ccdb3ec0b1e src/polar_sdk/models/benefitgranterror.py: last_write_checksum: sha1:2e34733f98d3fd4ac076bd4ae95caf9172adcd5a + src/polar_sdk/models/benefitgrantfeatureflagproperties.py: + last_write_checksum: sha1:0730a7d37fe3e91b06cc453b2c21b49f80e39fc0 + src/polar_sdk/models/benefitgrantfeatureflagwebhook.py: + last_write_checksum: sha1:d7c2a3e116c794a3ce6f121743fe902103f7c804 src/polar_sdk/models/benefitgrantgithubrepositoryproperties.py: last_write_checksum: sha1:311ecdc234c92f7f211a0b21f0112d89e7eacb74 src/polar_sdk/models/benefitgrantgithubrepositorywebhook.py: @@ -6893,7 +6954,7 @@ trackedFiles: src/polar_sdk/models/benefitgrantsortproperty.py: last_write_checksum: sha1:de11bf40a2ff133087533ce8b1f10565eddbe408 src/polar_sdk/models/benefitgrantwebhook.py: - last_write_checksum: sha1:976365a3408946dce3344b7617ed0cc4637b5cae + last_write_checksum: sha1:b3a3953f1f318ab705d0e06eae156266c6875e47 src/polar_sdk/models/benefitlicensekeyactivationcreateproperties.py: last_write_checksum: sha1:77528b7ba1d4daeae7973205d96106d466b94ab7 src/polar_sdk/models/benefitlicensekeyactivationproperties.py: @@ -6939,19 +7000,19 @@ trackedFiles: src/polar_sdk/models/benefits_grantsop.py: last_write_checksum: sha1:75e155e878ff14529aea56c84c9665e0ced3ab86 src/polar_sdk/models/benefits_updateop.py: - last_write_checksum: sha1:66aeb1db806a41f1248f04e008af71abd5da4857 + last_write_checksum: sha1:b00a7f6567285d211ec3d484c0b3e8e94ece36c3 src/polar_sdk/models/benefitsortproperty.py: last_write_checksum: sha1:f58ff5c986166b50d352ec9bb675e708d1aa11ac src/polar_sdk/models/benefitsubscriberorganization.py: last_write_checksum: sha1:38e3197f2e54f945915febd5e2856f65b68772f1 src/polar_sdk/models/benefittype.py: - last_write_checksum: sha1:83b6f2769eaa9ab478fd9bb96dbfa77f8d8a91b1 + last_write_checksum: sha1:81e0ac3a796b7569a95a338ee1ef3c5db96b367b src/polar_sdk/models/benefitupdatedevent.py: last_write_checksum: sha1:4c0d80222f46090e111fbfe065ff2e81947d64bb src/polar_sdk/models/billingaddressfieldmode.py: last_write_checksum: sha1:9cf3221bdf95c98300c69a39ab39393a69447613 src/polar_sdk/models/cardpayment.py: - last_write_checksum: sha1:bea70063a82e0d87c65f5b6c251d7f1e8212d67b + last_write_checksum: sha1:77158fab5eed117cb400bdbc8895c8685e3a9b59 src/polar_sdk/models/cardpaymentmetadata.py: last_write_checksum: sha1:2fe22cf53af2f2fe9b5d9dbd4097c00838cf90d7 src/polar_sdk/models/checkout.py: @@ -7045,7 +7106,7 @@ trackedFiles: src/polar_sdk/models/custom_fields_updateop.py: last_write_checksum: sha1:08d7f34bec7994241c6635ae5b865809085a8f1d src/polar_sdk/models/customer.py: - last_write_checksum: sha1:c5885638eb71ea52673f85118d4e3d4fdd87e821 + last_write_checksum: sha1:da668f04dae8d2f96018be1fad4cd36df793baa9 src/polar_sdk/models/customer_meters_getop.py: last_write_checksum: sha1:cf9ea34cba6706991da057ed07cfd3298616e06b src/polar_sdk/models/customer_meters_listop.py: @@ -7137,7 +7198,7 @@ trackedFiles: src/polar_sdk/models/customer_sessions_createop.py: last_write_checksum: sha1:cf4aad7e19663d307cf2255fb49e694cf75fe39a src/polar_sdk/models/customerbenefitgrant.py: - last_write_checksum: sha1:5deb0468120ed8fccc29a2a597062956e51dcc95 + last_write_checksum: sha1:24dc6d94091a818ae25a8ae37b430895c93779e4 src/polar_sdk/models/customerbenefitgrantcustom.py: last_write_checksum: sha1:3093af86895682c8fd0d15c316ddbfc36badd7a2 src/polar_sdk/models/customerbenefitgrantcustomupdate.py: @@ -7152,6 +7213,10 @@ trackedFiles: last_write_checksum: sha1:bdad3d2df3bc9ce21174a28e4a6d2e555ae3cee0 src/polar_sdk/models/customerbenefitgrantdownloadablesupdate.py: last_write_checksum: sha1:e88637635b8b94b02d3b834cf90425b7c2681605 + src/polar_sdk/models/customerbenefitgrantfeatureflag.py: + last_write_checksum: sha1:fb22cb1eef577f393438a1f81868ab5d958ef5b8 + src/polar_sdk/models/customerbenefitgrantfeatureflagupdate.py: + last_write_checksum: sha1:8a3e83899eaa16071751898e87c785656354d34b src/polar_sdk/models/customerbenefitgrantgithubrepository.py: last_write_checksum: sha1:5e878eb20f248a7a9f3c9758693b0c4889c506cd src/polar_sdk/models/customerbenefitgrantgithubrepositorypropertiesupdate.py: @@ -7169,7 +7234,7 @@ trackedFiles: src/polar_sdk/models/customerbenefitgrantsortproperty.py: last_write_checksum: sha1:75daa1306a18e9e008b01b8c783d18c4cb8fc74b src/polar_sdk/models/customerbenefitgrantupdate.py: - last_write_checksum: sha1:c727ffa352368628c5616c7720f4370d2d6c4985 + last_write_checksum: sha1:388845c06632c53340583df7cf96272df2210898 src/polar_sdk/models/customercancellationreason.py: last_write_checksum: sha1:78228d1bffecbbdc5f3be42766ef805d6091743f src/polar_sdk/models/customercreate.py: @@ -7281,9 +7346,9 @@ trackedFiles: src/polar_sdk/models/customersortproperty.py: last_write_checksum: sha1:91b2ba75dad715b2b559c19888967183cba8c2ae src/polar_sdk/models/customerstate.py: - last_write_checksum: sha1:789aa29f79b3fef55738fe53f5210c251abd2ab1 + last_write_checksum: sha1:d147a0f07b96b24bd442a9942f193df7f178a105 src/polar_sdk/models/customerstatebenefitgrant.py: - last_write_checksum: sha1:a73cc06a57b140e01b282422b9af5b672c44e61f + last_write_checksum: sha1:37b5edcba06fde05a02cf2b85f673fa6e875fe83 src/polar_sdk/models/customerstatemeter.py: last_write_checksum: sha1:6a44e6f2db135775156d1eb22e22eec381dcaa37 src/polar_sdk/models/customerstatesubscription.py: @@ -7324,8 +7389,6 @@ trackedFiles: last_write_checksum: sha1:0c5133491eb9476e9fb24ba70991e2716b7d79c1 src/polar_sdk/models/customerwalletsortproperty.py: last_write_checksum: sha1:a6a6baead98c169ad6db897799a7be326aaf5062 - src/polar_sdk/models/customerwithmembers.py: - last_write_checksum: sha1:7e179275a4d6677a4114bcc0fb37d055a07f47d5 src/polar_sdk/models/customfield.py: last_write_checksum: sha1:4c750256f47fa30b491962c19b9b8029c7375942 src/polar_sdk/models/customfieldcheckbox.py: @@ -7511,7 +7574,7 @@ trackedFiles: src/polar_sdk/models/filteroperator.py: last_write_checksum: sha1:0271648f54e52e3c88ad9b77fb11091ebffdea70 src/polar_sdk/models/genericpayment.py: - last_write_checksum: sha1:42b2fd2d3eb29c27eb0011d551a1e86e163e77e7 + last_write_checksum: sha1:43789cdeb22a6f88be6450182d333996f70a31d3 src/polar_sdk/models/httpvalidationerror.py: last_write_checksum: sha1:2d17eaa14a59323d61e64b3dc2af89b1bb80ecc3 src/polar_sdk/models/introspecttokenrequest.py: @@ -7541,7 +7604,7 @@ trackedFiles: src/polar_sdk/models/licensekeyactivationread.py: last_write_checksum: sha1:8b898e3c77a1929dcb4106cff835fb71460d2512 src/polar_sdk/models/licensekeycustomer.py: - last_write_checksum: sha1:e629420074d48313ec3487ea5a4c29dcf41fbdfa + last_write_checksum: sha1:92ba3f45bf6f7fb0bac1430b740aad96bf0e5bfb src/polar_sdk/models/licensekeydeactivate.py: last_write_checksum: sha1:11c04cc65dbaeff84247ac2c3eeae27ec69a200d src/polar_sdk/models/licensekeyread.py: @@ -7564,6 +7627,8 @@ trackedFiles: last_write_checksum: sha1:c9422c13b606d0a7cff8390091004f842e3aeae0 src/polar_sdk/models/listresource_checkoutlink_.py: last_write_checksum: sha1:a91afebd5326eb503d5a8a56f4d5b6411aae8160 + src/polar_sdk/models/listresource_customer_.py: + last_write_checksum: sha1:1c6f564969b8b9010eeaf4414bd6f5108f2b6468 src/polar_sdk/models/listresource_customerbenefitgrant_.py: last_write_checksum: sha1:a8a82861bc24c859b702b5e30a564179685d6482 src/polar_sdk/models/listresource_customercustomermeter_.py: @@ -7580,8 +7645,6 @@ trackedFiles: last_write_checksum: sha1:757668f1f997fd6bae7be9032bf3ac73a1234eee src/polar_sdk/models/listresource_customerwallet_.py: last_write_checksum: sha1:a929a7cf0bd6edd585e6897722d75c5eef879465 - src/polar_sdk/models/listresource_customerwithmembers_.py: - last_write_checksum: sha1:38089b2e127dbb13da527ae692e0b9b38ec07f44 src/polar_sdk/models/listresource_customfield_.py: last_write_checksum: sha1:85a858ab21ba7b9fd2f6b2c6ddfb6521bda4265d src/polar_sdk/models/listresource_discount_.py: @@ -7725,7 +7788,7 @@ trackedFiles: src/polar_sdk/models/orderbillingreason.py: last_write_checksum: sha1:3b294070e89e6d9f91bdd42c34207bc44769b5b1 src/polar_sdk/models/ordercustomer.py: - last_write_checksum: sha1:bd6f750d6e286034f8ff90f6fac3b878795faaa9 + last_write_checksum: sha1:6f6d6e5ec9f1e3e983eab019fe754a28c9403157 src/polar_sdk/models/orderinvoice.py: last_write_checksum: sha1:21020a291e1d6153cf8efa40bdff3f50f7def599 src/polar_sdk/models/orderitemschema.py: @@ -7791,7 +7854,7 @@ trackedFiles: src/polar_sdk/models/organizationdetails.py: last_write_checksum: sha1:52a57a8fd2f7a6abc4fa937d63faa85f3be06e39 src/polar_sdk/models/organizationfeaturesettings.py: - last_write_checksum: sha1:39f3f88f5fa7c7c8c0a5542de20e1f5b6eeba37c + last_write_checksum: sha1:3d4bdcc05266413bad18de044eb86c3b27c90e88 src/polar_sdk/models/organizationnotificationsettings.py: last_write_checksum: sha1:d56d2a800ac2800e155ca918ff4e6765797ee3ed src/polar_sdk/models/organizations_getop.py: @@ -7803,7 +7866,7 @@ trackedFiles: src/polar_sdk/models/organizationsociallink.py: last_write_checksum: sha1:97a6ede8a4f9f263548b4c2e6999c19550044c7c src/polar_sdk/models/organizationsocialplatforms.py: - last_write_checksum: sha1:4837853339086914867f97f321250614ca55ab55 + last_write_checksum: sha1:1066a98a015604f888af9b92869f593cd83fff04 src/polar_sdk/models/organizationsortproperty.py: last_write_checksum: sha1:66e31e5bb02cf397e53af46fee2505eb38f5bd95 src/polar_sdk/models/organizationstatus.py: @@ -7985,7 +8048,7 @@ trackedFiles: src/polar_sdk/models/subscriptioncreateexternalcustomer.py: last_write_checksum: sha1:f92f86fda92697a0aa0a6301f56d747020f9fa38 src/polar_sdk/models/subscriptioncustomer.py: - last_write_checksum: sha1:eb517008f821acd6034183d76418a105f6caec3c + last_write_checksum: sha1:dbfc6a8f4c871dbbfa5364adb2cb5305c6969e51 src/polar_sdk/models/subscriptioncycledevent.py: last_write_checksum: sha1:8030fe02d25d865c050ba41b4c38251f99cab5d4 src/polar_sdk/models/subscriptioncycledmetadata.py: @@ -8015,7 +8078,7 @@ trackedFiles: src/polar_sdk/models/subscriptions_getop.py: last_write_checksum: sha1:74872cc7de547940f4189bbabea5d8d4803837e1 src/polar_sdk/models/subscriptions_listop.py: - last_write_checksum: sha1:95475ddd52aca30442401b9f1fd7c95378f31fa8 + last_write_checksum: sha1:bd9c4f8e96e2e29483af02494d39163c29bcbd6f src/polar_sdk/models/subscriptions_revokeop.py: last_write_checksum: sha1:e1ca41a0bf57c37d748d641ca62cea7b71509537 src/polar_sdk/models/subscriptions_updateop.py: @@ -8107,11 +8170,11 @@ trackedFiles: src/polar_sdk/models/webhookdelivery.py: last_write_checksum: sha1:479e3d06106eb1ad0dd240bb6ef4e71323c68d2b src/polar_sdk/models/webhookendpoint.py: - last_write_checksum: sha1:49b4dccccfe138e9ebe87955cbe80ebdea45973c + last_write_checksum: sha1:a8766aa28d731daf3034bca9eca092dc2978d36c src/polar_sdk/models/webhookendpointcreate.py: - last_write_checksum: sha1:01c84d752229905cf032f01d311a41cb50be982f + last_write_checksum: sha1:9ed301c14c40471adfa9dae72b14633319668db5 src/polar_sdk/models/webhookendpointupdate.py: - last_write_checksum: sha1:e7442152889c621912eb8c385c527d6b609323e5 + last_write_checksum: sha1:698b1014888ae78a59f866c8bbbe6852b0b06455 src/polar_sdk/models/webhookevent.py: last_write_checksum: sha1:5155d0fc8cebc76f612a7f6d66c5fe84e3cc323c src/polar_sdk/models/webhookeventtype.py: @@ -8205,7 +8268,7 @@ trackedFiles: src/polar_sdk/refunds.py: last_write_checksum: sha1:5951c3e3c9d528448a77e28116cf60c193c3eec9 src/polar_sdk/sdk.py: - last_write_checksum: sha1:b03c06b7123a2f3cc17eaba654591aebf2d9fa51 + last_write_checksum: sha1:8dcbcc9930afb37c0a4cb5cc9d73dfbe60cb79a1 src/polar_sdk/sdkconfiguration.py: last_write_checksum: sha1:b9b14902f71407dd21a4b209f2e342c54a0a86a7 src/polar_sdk/seats.py: diff --git a/.speakeasy/gen.yaml b/.speakeasy/gen.yaml index 03357f2a..87b16c4e 100644 --- a/.speakeasy/gen.yaml +++ b/.speakeasy/gen.yaml @@ -31,7 +31,7 @@ generation: persistentEdits: {} versioningStrategy: automatic python: - version: 0.29.0 + version: 0.29.1 additionalDependencies: dev: pydantic-ai-slim: ^0.1.0 diff --git a/.speakeasy/workflow.lock b/.speakeasy/workflow.lock index c170fd81..5f85a1a5 100644 --- a/.speakeasy/workflow.lock +++ b/.speakeasy/workflow.lock @@ -2,20 +2,20 @@ speakeasyVersion: 1.648.0 sources: Polar-OAS: sourceNamespace: polar-oas - sourceRevisionDigest: sha256:bb7f2278a4e27a31ea7056294aafd3708ae19bed4497c3fb6f23bf500be837d5 - sourceBlobDigest: sha256:01aa73b15fb2726209900c2d281348a18996bcdc3a4e886e3468bd81677ab3f2 + sourceRevisionDigest: sha256:fafdf1ed9fa3b5ae0773cf353f93d602f40bf31947360e7d49391bdcda9afff3 + sourceBlobDigest: sha256:29ba41dc3ad2fbb4816fc2175f8b8546a5b3f4e472db159aa3507346c28b1e8a tags: - latest - - speakeasy-sdk-regen-1770078059 + - speakeasy-sdk-regen-1772065082 - 0.1.0 targets: polar: source: Polar-OAS sourceNamespace: polar-oas - sourceRevisionDigest: sha256:bb7f2278a4e27a31ea7056294aafd3708ae19bed4497c3fb6f23bf500be837d5 - sourceBlobDigest: sha256:01aa73b15fb2726209900c2d281348a18996bcdc3a4e886e3468bd81677ab3f2 + sourceRevisionDigest: sha256:fafdf1ed9fa3b5ae0773cf353f93d602f40bf31947360e7d49391bdcda9afff3 + sourceBlobDigest: sha256:29ba41dc3ad2fbb4816fc2175f8b8546a5b3f4e472db159aa3507346c28b1e8a codeSamplesNamespace: polar-oas-py-code-samples - codeSamplesRevisionDigest: sha256:9f2eed90f0a422800439f080b91e77b51dab7b9a4be2ccde8209fb8fa0c7a93e + codeSamplesRevisionDigest: sha256:520886b509b97a93671f721f7d5dd356fb0f1356a94aa250b4b7e4e5712a8367 workflow: workflowVersion: 1.0.0 speakeasyVersion: latest diff --git a/RELEASES.md b/RELEASES.md index 2e0058bc..855bf15f 100644 --- a/RELEASES.md +++ b/RELEASES.md @@ -1033,4 +1033,14 @@ Based on: ### Generated - [python v0.29.0] . ### Releases -- [PyPI v0.29.0] https://pypi.org/project/polar-sdk/0.29.0 - . \ No newline at end of file +- [PyPI v0.29.0] https://pypi.org/project/polar-sdk/0.29.0 - . + +## 2026-02-28 00:17:05 +### Changes +Based on: +- OpenAPI Doc +- Speakeasy CLI 1.648.0 (2.737.0) https://github.com/speakeasy-api/speakeasy +### Generated +- [python v0.29.1] . +### Releases +- [PyPI v0.29.1] https://pypi.org/project/polar-sdk/0.29.1 - . \ No newline at end of file diff --git a/codeSamples.yaml b/codeSamples.yaml index ccc0ee99..41ef7065 100644 --- a/codeSamples.yaml +++ b/codeSamples.yaml @@ -38,7 +38,7 @@ actions: "x-codeSamples": - "lang": "python" "label": "Python (SDK)" - "source": "from polar_sdk import Polar\n\n\nwith Polar(\n access_token=\"\",\n) as polar:\n\n res = polar.benefits.update(id=\"\", request_body={\n \"type\": \"meter_credit\",\n })\n\n # Handle response\n print(res)" + "source": "from polar_sdk import Polar\n\n\nwith Polar(\n access_token=\"\",\n) as polar:\n\n res = polar.benefits.update(id=\"\", request_body={\n \"type\": \"feature_flag\",\n })\n\n # Handle response\n print(res)" - target: $["paths"]["/v1/benefits/{id}/grants"]["get"] update: "x-codeSamples": @@ -176,7 +176,7 @@ actions: "x-codeSamples": - "lang": "python" "label": "Python (SDK)" - "source": "import polar_sdk\nfrom polar_sdk import Polar\n\n\nwith Polar() as polar:\n\n res = polar.customer_portal.benefit_grants.update(security=polar_sdk.CustomerPortalBenefitGrantsUpdateSecurity(\n customer_session=\"\",\n ), id=\"\", customer_benefit_grant_update={\n \"benefit_type\": \"license_keys\",\n })\n\n # Handle response\n print(res)" + "source": "import polar_sdk\nfrom polar_sdk import Polar\n\n\nwith Polar() as polar:\n\n res = polar.customer_portal.benefit_grants.update(security=polar_sdk.CustomerPortalBenefitGrantsUpdateSecurity(\n customer_session=\"\",\n ), id=\"\", customer_benefit_grant_update={\n \"benefit_type\": \"github_repository\",\n \"properties\": {\n \"account_id\": \"\",\n },\n })\n\n # Handle response\n print(res)" - target: $["paths"]["/v1/customer-portal/customer-session/introspect"]["get"] update: "x-codeSamples": @@ -1028,7 +1028,7 @@ actions: "x-codeSamples": - "lang": "python" "label": "Python (SDK)" - "source": "from polar_sdk import Polar\nfrom polar_sdk.utils import parse_datetime\n\n\nwith Polar() as polar:\n\n res = polar.endpointbenefit_created_post(request={\n \"type\": \"benefit.created\",\n \"timestamp\": parse_datetime(\"2026-10-17T23:42:52.571Z\"),\n \"data\": {\n \"id\": \"\",\n \"created_at\": parse_datetime(\"2026-05-24T21:27:59.843Z\"),\n \"modified_at\": parse_datetime(\"2025-07-01T06:29:09.775Z\"),\n \"type\": \"downloadables\",\n \"description\": \"beneath terrorise but about uh-huh\",\n \"selectable\": False,\n \"deletable\": True,\n \"organization_id\": \"\",\n \"metadata\": {\n\n },\n \"properties\": {\n \"archived\": {\n \"key\": True,\n \"key1\": True,\n },\n \"files\": [\n \"\",\n \"\",\n \"\",\n ],\n },\n },\n })\n\n # Handle response\n print(res)" + "source": "from polar_sdk import Polar\nfrom polar_sdk.utils import parse_datetime\n\n\nwith Polar() as polar:\n\n res = polar.endpointbenefit_created_post(request={\n \"type\": \"benefit.created\",\n \"timestamp\": parse_datetime(\"2026-10-17T23:42:52.571Z\"),\n \"data\": {\n \"id\": \"\",\n \"created_at\": parse_datetime(\"2026-05-24T21:27:59.843Z\"),\n \"modified_at\": parse_datetime(\"2025-07-01T06:29:09.775Z\"),\n \"type\": \"feature_flag\",\n \"description\": \"beneath terrorise but about uh-huh\",\n \"selectable\": False,\n \"deletable\": True,\n \"organization_id\": \"\",\n \"metadata\": {\n\n },\n \"properties\": {},\n },\n })\n\n # Handle response\n print(res)" - target: $["paths"]["benefit.updated"]["post"] update: "x-codeSamples": @@ -1040,7 +1040,7 @@ actions: "x-codeSamples": - "lang": "python" "label": "Python (SDK)" - "source": "import polar_sdk\nfrom polar_sdk import Polar\nfrom polar_sdk.utils import parse_datetime\n\n\nwith Polar() as polar:\n\n res = polar.endpointbenefit_grant_created_post(request=polar_sdk.WebhookBenefitGrantCreatedPayload(\n timestamp=parse_datetime(\"2026-07-29T09:12:26.895Z\"),\n data=polar_sdk.BenefitGrantCustomWebhook(\n created_at=parse_datetime(\"2026-07-26T11:51:14.320Z\"),\n modified_at=parse_datetime(\"2024-06-25T18:19:56.152Z\"),\n id=\"\",\n is_granted=False,\n is_revoked=True,\n subscription_id=\"\",\n order_id=\"\",\n customer_id=\"\",\n benefit_id=\"\",\n customer=polar_sdk.Customer(\n id=\"992fae2a-2a17-4b7a-8d9e-e287cf90131b\",\n created_at=parse_datetime(\"2026-05-12T01:27:02.379Z\"),\n modified_at=parse_datetime(\"2024-11-16T04:22:37.821Z\"),\n metadata={\n\n },\n external_id=\"usr_1337\",\n email=\"customer@example.com\",\n email_verified=True,\n type=polar_sdk.CustomerType.INDIVIDUAL,\n name=\"John Doe\",\n billing_address=polar_sdk.Address(\n country=polar_sdk.CountryAlpha2.US,\n ),\n tax_id=[\n \"911144442\",\n \"us_ein\",\n ],\n organization_id=\"1dbfc517-0bbf-4301-9ba8-555ca42b9737\",\n deleted_at=parse_datetime(\"2024-02-21T01:01:33.050Z\"),\n avatar_url=\"https://www.gravatar.com/avatar/xxx?d=404\",\n ),\n member=polar_sdk.Member(\n id=\"\",\n created_at=parse_datetime(\"2024-10-15T11:07:39.330Z\"),\n modified_at=parse_datetime(\"2025-12-21T23:42:07.643Z\"),\n customer_id=\"\",\n email=\"member@example.com\",\n name=\"Jane Doe\",\n external_id=\"usr_1337\",\n role=polar_sdk.MemberRole.BILLING_MANAGER,\n ),\n benefit=polar_sdk.BenefitCustom(\n id=\"\",\n created_at=parse_datetime(\"2024-06-11T14:51:22.188Z\"),\n modified_at=parse_datetime(\"2024-06-03T11:09:21.440Z\"),\n description=\"vibraphone however abseil yet conservative\",\n selectable=False,\n deletable=True,\n organization_id=\"\",\n metadata={\n \"key\": \"\",\n },\n properties=polar_sdk.BenefitCustomProperties(\n note=\"\",\n ),\n ),\n properties=polar_sdk.BenefitGrantCustomProperties(),\n ),\n ))\n\n # Handle response\n print(res)" + "source": "import polar_sdk\nfrom polar_sdk import Polar\nfrom polar_sdk.utils import parse_datetime\n\n\nwith Polar() as polar:\n\n res = polar.endpointbenefit_grant_created_post(request=polar_sdk.WebhookBenefitGrantCreatedPayload(\n timestamp=parse_datetime(\"2026-07-29T09:12:26.895Z\"),\n data=polar_sdk.BenefitGrantGitHubRepositoryWebhook(\n created_at=parse_datetime(\"2026-07-26T11:51:14.320Z\"),\n modified_at=parse_datetime(\"2024-06-25T18:19:56.152Z\"),\n id=\"\",\n is_granted=False,\n is_revoked=True,\n subscription_id=\"\",\n order_id=\"\",\n customer_id=\"\",\n benefit_id=\"\",\n customer=polar_sdk.Customer(\n id=\"992fae2a-2a17-4b7a-8d9e-e287cf90131b\",\n created_at=parse_datetime(\"2026-05-12T01:27:02.379Z\"),\n modified_at=parse_datetime(\"2024-11-16T04:22:37.821Z\"),\n metadata={\n\n },\n external_id=\"usr_1337\",\n email=\"customer@example.com\",\n email_verified=True,\n type=polar_sdk.CustomerType.INDIVIDUAL,\n name=\"John Doe\",\n billing_address=polar_sdk.Address(\n country=polar_sdk.CountryAlpha2.US,\n ),\n tax_id=[\n \"911144442\",\n \"us_ein\",\n ],\n organization_id=\"1dbfc517-0bbf-4301-9ba8-555ca42b9737\",\n deleted_at=parse_datetime(\"2024-02-21T01:01:33.050Z\"),\n avatar_url=\"https://www.gravatar.com/avatar/xxx?d=404\",\n ),\n member=polar_sdk.Member(\n id=\"\",\n created_at=parse_datetime(\"2024-10-15T11:07:39.330Z\"),\n modified_at=parse_datetime(\"2025-12-21T23:42:07.643Z\"),\n customer_id=\"\",\n email=\"member@example.com\",\n name=\"Jane Doe\",\n external_id=\"usr_1337\",\n role=polar_sdk.MemberRole.BILLING_MANAGER,\n ),\n benefit=polar_sdk.BenefitGitHubRepository(\n id=\"\",\n created_at=parse_datetime(\"2024-06-11T14:51:22.188Z\"),\n modified_at=parse_datetime(\"2024-06-03T11:09:21.440Z\"),\n description=\"vibraphone however abseil yet conservative\",\n selectable=False,\n deletable=True,\n organization_id=\"\",\n metadata={\n \"key\": \"\",\n },\n properties=polar_sdk.BenefitGitHubRepositoryProperties(\n repository_owner=\"polarsource\",\n repository_name=\"private_repo\",\n permission=polar_sdk.Permission.TRIAGE,\n ),\n ),\n properties=polar_sdk.BenefitGrantGitHubRepositoryProperties(),\n ),\n ))\n\n # Handle response\n print(res)" - target: $["paths"]["benefit_grant.cycled"]["post"] update: "x-codeSamples": @@ -1058,25 +1058,25 @@ actions: "x-codeSamples": - "lang": "python" "label": "Python (SDK)" - "source": "import polar_sdk\nfrom polar_sdk import Polar\nfrom polar_sdk.utils import parse_datetime\n\n\nwith Polar() as polar:\n\n res = polar.endpointbenefit_grant_updated_post(request=polar_sdk.WebhookBenefitGrantUpdatedPayload(\n timestamp=parse_datetime(\"2024-06-14T00:42:20.858Z\"),\n data=polar_sdk.BenefitGrantDownloadablesWebhook(\n created_at=parse_datetime(\"2024-09-08T02:35:13.085Z\"),\n modified_at=parse_datetime(\"2025-04-28T04:44:42.040Z\"),\n id=\"\",\n is_granted=True,\n is_revoked=False,\n subscription_id=\"\",\n order_id=\"\",\n customer_id=\"\",\n benefit_id=\"\",\n customer=polar_sdk.Customer(\n id=\"992fae2a-2a17-4b7a-8d9e-e287cf90131b\",\n created_at=parse_datetime(\"2025-06-22T06:57:35.281Z\"),\n modified_at=parse_datetime(\"2026-06-14T15:07:20.731Z\"),\n metadata={\n \"key\": 322224,\n },\n external_id=\"usr_1337\",\n email=\"customer@example.com\",\n email_verified=True,\n type=polar_sdk.CustomerType.INDIVIDUAL,\n name=\"John Doe\",\n billing_address=polar_sdk.Address(\n country=polar_sdk.CountryAlpha2.US,\n ),\n tax_id=[\n \"911144442\",\n \"us_ein\",\n ],\n organization_id=\"1dbfc517-0bbf-4301-9ba8-555ca42b9737\",\n deleted_at=parse_datetime(\"2026-09-29T05:46:04.457Z\"),\n avatar_url=\"https://www.gravatar.com/avatar/xxx?d=404\",\n ),\n member=polar_sdk.Member(\n id=\"\",\n created_at=parse_datetime(\"2025-09-28T22:38:44.093Z\"),\n modified_at=parse_datetime(\"2025-06-05T03:01:15.151Z\"),\n customer_id=\"\",\n email=\"member@example.com\",\n name=\"Jane Doe\",\n external_id=\"usr_1337\",\n role=polar_sdk.MemberRole.BILLING_MANAGER,\n ),\n benefit=polar_sdk.BenefitDownloadables(\n id=\"\",\n created_at=parse_datetime(\"2025-06-23T01:13:04.636Z\"),\n modified_at=parse_datetime(\"2025-11-30T14:06:15.982Z\"),\n description=\"hm waterlogged vastly widow lay\",\n selectable=False,\n deletable=True,\n organization_id=\"\",\n metadata={\n \"key\": \"\",\n },\n properties=polar_sdk.BenefitDownloadablesProperties(\n archived={\n \"key\": False,\n },\n files=[\n \"\",\n \"\",\n ],\n ),\n ),\n properties=polar_sdk.BenefitGrantDownloadablesProperties(),\n ),\n ))\n\n # Handle response\n print(res)" + "source": "import polar_sdk\nfrom polar_sdk import Polar\nfrom polar_sdk.utils import parse_datetime\n\n\nwith Polar() as polar:\n\n res = polar.endpointbenefit_grant_updated_post(request=polar_sdk.WebhookBenefitGrantUpdatedPayload(\n timestamp=parse_datetime(\"2024-06-14T00:42:20.858Z\"),\n data=polar_sdk.BenefitGrantLicenseKeysWebhook(\n created_at=parse_datetime(\"2024-09-08T02:35:13.085Z\"),\n modified_at=parse_datetime(\"2025-04-28T04:44:42.040Z\"),\n id=\"\",\n is_granted=True,\n is_revoked=False,\n subscription_id=\"\",\n order_id=\"\",\n customer_id=\"\",\n benefit_id=\"\",\n customer=polar_sdk.Customer(\n id=\"992fae2a-2a17-4b7a-8d9e-e287cf90131b\",\n created_at=parse_datetime(\"2025-06-22T06:57:35.281Z\"),\n modified_at=parse_datetime(\"2026-06-14T15:07:20.731Z\"),\n metadata={\n \"key\": 322224,\n },\n external_id=\"usr_1337\",\n email=\"customer@example.com\",\n email_verified=True,\n type=polar_sdk.CustomerType.INDIVIDUAL,\n name=\"John Doe\",\n billing_address=polar_sdk.Address(\n country=polar_sdk.CountryAlpha2.US,\n ),\n tax_id=[\n \"911144442\",\n \"us_ein\",\n ],\n organization_id=\"1dbfc517-0bbf-4301-9ba8-555ca42b9737\",\n deleted_at=parse_datetime(\"2026-09-29T05:46:04.457Z\"),\n avatar_url=\"https://www.gravatar.com/avatar/xxx?d=404\",\n ),\n member=polar_sdk.Member(\n id=\"\",\n created_at=parse_datetime(\"2025-09-28T22:38:44.093Z\"),\n modified_at=parse_datetime(\"2025-06-05T03:01:15.151Z\"),\n customer_id=\"\",\n email=\"member@example.com\",\n name=\"Jane Doe\",\n external_id=\"usr_1337\",\n role=polar_sdk.MemberRole.BILLING_MANAGER,\n ),\n benefit=polar_sdk.BenefitLicenseKeys(\n id=\"\",\n created_at=parse_datetime(\"2025-06-23T01:13:04.636Z\"),\n modified_at=parse_datetime(\"2025-11-30T14:06:15.982Z\"),\n description=\"hm waterlogged vastly widow lay\",\n selectable=False,\n deletable=True,\n organization_id=\"\",\n metadata={\n \"key\": \"\",\n },\n properties=polar_sdk.BenefitLicenseKeysProperties(\n prefix=\"\",\n expires=polar_sdk.BenefitLicenseKeyExpirationProperties(\n ttl=618571,\n timeframe=polar_sdk.Timeframe.MONTH,\n ),\n activations=polar_sdk.BenefitLicenseKeyActivationProperties(\n limit=50388,\n enable_customer_admin=True,\n ),\n limit_usage=550150,\n ),\n ),\n properties=polar_sdk.BenefitGrantLicenseKeysProperties(),\n ),\n ))\n\n # Handle response\n print(res)" - target: $["paths"]["checkout.created"]["post"] update: "x-codeSamples": - "lang": "python" "label": "Python (SDK)" - "source": "import polar_sdk\nfrom polar_sdk import Polar\nfrom polar_sdk.utils import parse_datetime\n\n\nwith Polar() as polar:\n\n res = polar.endpointcheckout_created_post(request=polar_sdk.WebhookCheckoutCreatedPayload(\n timestamp=parse_datetime(\"2024-02-15T15:44:21.478Z\"),\n data=polar_sdk.Checkout(\n id=\"\",\n created_at=parse_datetime(\"2026-09-12T19:48:15.814Z\"),\n modified_at=parse_datetime(\"2024-09-13T02:01:27.394Z\"),\n payment_processor=polar_sdk.PaymentProcessor.STRIPE,\n status=polar_sdk.CheckoutStatus.EXPIRED,\n client_secret=\"\",\n url=\"https://agreeable-reboot.biz\",\n expires_at=parse_datetime(\"2025-05-02T18:25:33.974Z\"),\n success_url=\"https://rural-outrun.org\",\n return_url=\"https://clean-humidity.com/\",\n embed_origin=\"\",\n amount=275553,\n discount_amount=9980,\n net_amount=266632,\n tax_amount=348968,\n total_amount=203013,\n currency=\"Australian Dollar\",\n allow_trial=True,\n active_trial_interval=polar_sdk.TrialInterval.MONTH,\n active_trial_interval_count=47757,\n trial_end=None,\n organization_id=\"\",\n product_id=\"\",\n discount_id=\"\",\n allow_discount_codes=False,\n require_billing_address=False,\n is_discount_applicable=False,\n is_free_product_price=False,\n is_payment_required=False,\n is_payment_setup_required=False,\n is_payment_form_required=False,\n customer_id=\"\",\n is_business_customer=True,\n customer_name=\"\",\n customer_email=\"\",\n customer_ip_address=\"\",\n customer_billing_name=\"\",\n customer_billing_address=polar_sdk.Address(\n country=polar_sdk.CountryAlpha2.US,\n ),\n customer_tax_id=\"\",\n payment_processor_metadata={\n \"key\": \"\",\n \"key1\": \"\",\n \"key2\": \"\",\n },\n billing_address_fields=polar_sdk.CheckoutBillingAddressFields(\n country=polar_sdk.BillingAddressFieldMode.REQUIRED,\n state=polar_sdk.BillingAddressFieldMode.OPTIONAL,\n city=polar_sdk.BillingAddressFieldMode.DISABLED,\n postal_code=polar_sdk.BillingAddressFieldMode.OPTIONAL,\n line1=polar_sdk.BillingAddressFieldMode.REQUIRED,\n line2=polar_sdk.BillingAddressFieldMode.DISABLED,\n ),\n trial_interval=None,\n trial_interval_count=675830,\n metadata={\n \"key\": True,\n },\n external_customer_id=\"\",\n products=[],\n product=polar_sdk.CheckoutProduct(\n id=\"\",\n created_at=parse_datetime(\"2024-01-06T18:09:03.676Z\"),\n modified_at=parse_datetime(\"2025-05-28T21:42:41.690Z\"),\n trial_interval=polar_sdk.TrialInterval.MONTH,\n trial_interval_count=590205,\n name=\"\",\n description=\"structure tenderly dirty colon though\",\n visibility=polar_sdk.ProductVisibility.DRAFT,\n recurring_interval=polar_sdk.SubscriptionRecurringInterval.YEAR,\n recurring_interval_count=265994,\n is_recurring=True,\n is_archived=True,\n organization_id=\"\",\n prices=[\n polar_sdk.LegacyRecurringProductPriceCustom(\n created_at=parse_datetime(\"2024-04-20T04:12:36.083Z\"),\n modified_at=None,\n id=\"\",\n source=polar_sdk.ProductPriceSource.AD_HOC,\n price_currency=\"\",\n is_archived=True,\n product_id=\"\",\n recurring_interval=polar_sdk.SubscriptionRecurringInterval.DAY,\n minimum_amount=554797,\n maximum_amount=721879,\n preset_amount=559368,\n ),\n ],\n benefits=[\n polar_sdk.BenefitPublic(\n id=\"\",\n created_at=parse_datetime(\"2025-08-28T17:10:35.995Z\"),\n modified_at=parse_datetime(\"2026-03-07T18:00:48.486Z\"),\n type=polar_sdk.BenefitType.GITHUB_REPOSITORY,\n description=\"unless cheerfully glaring home indolent frequent highly topsail memorable\",\n selectable=False,\n deletable=True,\n organization_id=\"\",\n ),\n ],\n medias=[\n polar_sdk.ProductMediaFileRead(\n id=\"\",\n organization_id=\"\",\n name=\"\",\n path=\"/proc\",\n mime_type=\"\",\n size=246349,\n storage_version=\"\",\n checksum_etag=None,\n checksum_sha256_base64=\"\",\n checksum_sha256_hex=\"\",\n last_modified_at=parse_datetime(\"2025-01-08T19:17:50.328Z\"),\n version=\"\",\n is_uploaded=False,\n created_at=parse_datetime(\"2026-08-14T14:21:21.921Z\"),\n size_readable=\"\",\n public_url=\"https://winged-zen.org/\",\n ),\n ],\n ),\n prices={\n\n },\n discount=polar_sdk.CheckoutDiscountFixedRepeatDuration(\n duration=polar_sdk.DiscountDuration.REPEATING,\n duration_in_months=670493,\n type=polar_sdk.DiscountType.PERCENTAGE,\n amount=1000,\n currency=\"usd\",\n id=\"\",\n name=\"\",\n code=\"\",\n ),\n subscription_id=\"\",\n attached_custom_fields=[\n polar_sdk.AttachedCustomField(\n custom_field_id=\"\",\n custom_field=polar_sdk.CustomFieldDate(\n created_at=parse_datetime(\"2026-07-02T13:05:31.034Z\"),\n modified_at=parse_datetime(\"2026-03-01T15:09:47.026Z\"),\n id=\"\",\n metadata={\n \"key\": 2325.29,\n },\n slug=\"\",\n name=\"\",\n organization_id=\"1dbfc517-0bbf-4301-9ba8-555ca42b9737\",\n properties=polar_sdk.CustomFieldDateProperties(),\n ),\n order=55223,\n required=False,\n ),\n ],\n customer_metadata={\n \"key\": \"\",\n },\n ),\n ))\n\n # Handle response\n print(res)" + "source": "import polar_sdk\nfrom polar_sdk import Polar\nfrom polar_sdk.utils import parse_datetime\n\n\nwith Polar() as polar:\n\n res = polar.endpointcheckout_created_post(request=polar_sdk.WebhookCheckoutCreatedPayload(\n timestamp=parse_datetime(\"2024-02-15T15:44:21.478Z\"),\n data=polar_sdk.Checkout(\n id=\"\",\n created_at=parse_datetime(\"2026-09-12T19:48:15.814Z\"),\n modified_at=parse_datetime(\"2024-09-13T02:01:27.394Z\"),\n payment_processor=polar_sdk.PaymentProcessor.STRIPE,\n status=polar_sdk.CheckoutStatus.EXPIRED,\n client_secret=\"\",\n url=\"https://agreeable-reboot.biz\",\n expires_at=parse_datetime(\"2025-05-02T18:25:33.974Z\"),\n success_url=\"https://rural-outrun.org\",\n return_url=\"https://clean-humidity.com/\",\n embed_origin=\"\",\n amount=275553,\n discount_amount=9980,\n net_amount=266632,\n tax_amount=348968,\n total_amount=203013,\n currency=\"Australian Dollar\",\n allow_trial=True,\n active_trial_interval=polar_sdk.TrialInterval.MONTH,\n active_trial_interval_count=47757,\n trial_end=None,\n organization_id=\"\",\n product_id=\"\",\n discount_id=\"\",\n allow_discount_codes=False,\n require_billing_address=False,\n is_discount_applicable=False,\n is_free_product_price=False,\n is_payment_required=False,\n is_payment_setup_required=False,\n is_payment_form_required=False,\n customer_id=\"\",\n is_business_customer=True,\n customer_name=\"\",\n customer_email=\"\",\n customer_ip_address=\"\",\n customer_billing_name=\"\",\n customer_billing_address=polar_sdk.Address(\n country=polar_sdk.CountryAlpha2.US,\n ),\n customer_tax_id=\"\",\n payment_processor_metadata={\n \"key\": \"\",\n \"key1\": \"\",\n \"key2\": \"\",\n },\n billing_address_fields=polar_sdk.CheckoutBillingAddressFields(\n country=polar_sdk.BillingAddressFieldMode.REQUIRED,\n state=polar_sdk.BillingAddressFieldMode.OPTIONAL,\n city=polar_sdk.BillingAddressFieldMode.DISABLED,\n postal_code=polar_sdk.BillingAddressFieldMode.OPTIONAL,\n line1=polar_sdk.BillingAddressFieldMode.REQUIRED,\n line2=polar_sdk.BillingAddressFieldMode.DISABLED,\n ),\n trial_interval=None,\n trial_interval_count=675830,\n metadata={\n \"key\": True,\n },\n external_customer_id=\"\",\n products=[],\n product=polar_sdk.CheckoutProduct(\n id=\"\",\n created_at=parse_datetime(\"2024-01-06T18:09:03.676Z\"),\n modified_at=parse_datetime(\"2025-05-28T21:42:41.690Z\"),\n trial_interval=polar_sdk.TrialInterval.MONTH,\n trial_interval_count=590205,\n name=\"\",\n description=\"structure tenderly dirty colon though\",\n visibility=polar_sdk.ProductVisibility.DRAFT,\n recurring_interval=polar_sdk.SubscriptionRecurringInterval.YEAR,\n recurring_interval_count=265994,\n is_recurring=True,\n is_archived=True,\n organization_id=\"\",\n prices=[\n polar_sdk.LegacyRecurringProductPriceCustom(\n created_at=parse_datetime(\"2024-04-20T04:12:36.083Z\"),\n modified_at=None,\n id=\"\",\n source=polar_sdk.ProductPriceSource.AD_HOC,\n price_currency=\"\",\n is_archived=True,\n product_id=\"\",\n recurring_interval=polar_sdk.SubscriptionRecurringInterval.DAY,\n minimum_amount=554797,\n maximum_amount=721879,\n preset_amount=559368,\n ),\n ],\n benefits=[\n polar_sdk.BenefitPublic(\n id=\"\",\n created_at=parse_datetime(\"2025-08-28T17:10:35.995Z\"),\n modified_at=parse_datetime(\"2026-03-07T18:00:48.486Z\"),\n type=polar_sdk.BenefitType.DOWNLOADABLES,\n description=\"unless cheerfully glaring home indolent frequent highly topsail memorable\",\n selectable=False,\n deletable=True,\n organization_id=\"\",\n ),\n ],\n medias=[\n polar_sdk.ProductMediaFileRead(\n id=\"\",\n organization_id=\"\",\n name=\"\",\n path=\"/proc\",\n mime_type=\"\",\n size=246349,\n storage_version=\"\",\n checksum_etag=None,\n checksum_sha256_base64=\"\",\n checksum_sha256_hex=\"\",\n last_modified_at=parse_datetime(\"2025-01-08T19:17:50.328Z\"),\n version=\"\",\n is_uploaded=False,\n created_at=parse_datetime(\"2026-08-14T14:21:21.921Z\"),\n size_readable=\"\",\n public_url=\"https://winged-zen.org/\",\n ),\n ],\n ),\n prices={\n\n },\n discount=polar_sdk.CheckoutDiscountFixedRepeatDuration(\n duration=polar_sdk.DiscountDuration.REPEATING,\n duration_in_months=670493,\n type=polar_sdk.DiscountType.PERCENTAGE,\n amount=1000,\n currency=\"usd\",\n id=\"\",\n name=\"\",\n code=\"\",\n ),\n subscription_id=\"\",\n attached_custom_fields=[\n polar_sdk.AttachedCustomField(\n custom_field_id=\"\",\n custom_field=polar_sdk.CustomFieldDate(\n created_at=parse_datetime(\"2026-07-02T13:05:31.034Z\"),\n modified_at=parse_datetime(\"2026-03-01T15:09:47.026Z\"),\n id=\"\",\n metadata={\n \"key\": 2325.29,\n },\n slug=\"\",\n name=\"\",\n organization_id=\"1dbfc517-0bbf-4301-9ba8-555ca42b9737\",\n properties=polar_sdk.CustomFieldDateProperties(),\n ),\n order=55223,\n required=False,\n ),\n ],\n customer_metadata={\n \"key\": \"\",\n },\n ),\n ))\n\n # Handle response\n print(res)" - target: $["paths"]["checkout.expired"]["post"] update: "x-codeSamples": - "lang": "python" "label": "Python (SDK)" - "source": "import polar_sdk\nfrom polar_sdk import Polar\nfrom polar_sdk.utils import parse_datetime\n\n\nwith Polar() as polar:\n\n res = polar.endpointcheckout_expired_post(request=polar_sdk.WebhookCheckoutExpiredPayload(\n timestamp=parse_datetime(\"2025-07-24T10:11:01.088Z\"),\n data=polar_sdk.Checkout(\n id=\"\",\n created_at=parse_datetime(\"2024-05-04T16:36:16.430Z\"),\n modified_at=parse_datetime(\"2025-07-14T11:38:07.998Z\"),\n payment_processor=polar_sdk.PaymentProcessor.STRIPE,\n status=polar_sdk.CheckoutStatus.OPEN,\n client_secret=\"\",\n url=\"https://husky-advertisement.biz/\",\n expires_at=parse_datetime(\"2026-08-22T23:38:29.173Z\"),\n success_url=\"https://wasteful-premeditation.org\",\n return_url=\"https://torn-toothpick.name\",\n embed_origin=\"\",\n amount=104765,\n discount_amount=723749,\n net_amount=208098,\n tax_amount=740520,\n total_amount=729691,\n currency=\"Kwanza\",\n allow_trial=True,\n active_trial_interval=polar_sdk.TrialInterval.DAY,\n active_trial_interval_count=884805,\n trial_end=parse_datetime(\"2026-12-24T16:37:35.525Z\"),\n organization_id=\"\",\n product_id=\"\",\n discount_id=\"\",\n allow_discount_codes=False,\n require_billing_address=False,\n is_discount_applicable=True,\n is_free_product_price=True,\n is_payment_required=True,\n is_payment_setup_required=False,\n is_payment_form_required=True,\n customer_id=\"\",\n is_business_customer=False,\n customer_name=\"\",\n customer_email=\"\",\n customer_ip_address=\"\",\n customer_billing_name=\"\",\n customer_billing_address=polar_sdk.Address(\n country=polar_sdk.CountryAlpha2.US,\n ),\n customer_tax_id=\"\",\n payment_processor_metadata={\n \"key\": \"\",\n },\n billing_address_fields=polar_sdk.CheckoutBillingAddressFields(\n country=polar_sdk.BillingAddressFieldMode.DISABLED,\n state=polar_sdk.BillingAddressFieldMode.DISABLED,\n city=polar_sdk.BillingAddressFieldMode.REQUIRED,\n postal_code=polar_sdk.BillingAddressFieldMode.DISABLED,\n line1=polar_sdk.BillingAddressFieldMode.REQUIRED,\n line2=polar_sdk.BillingAddressFieldMode.REQUIRED,\n ),\n trial_interval=polar_sdk.TrialInterval.YEAR,\n trial_interval_count=328311,\n metadata={\n\n },\n external_customer_id=\"\",\n products=[\n polar_sdk.CheckoutProduct(\n id=\"\",\n created_at=parse_datetime(\"2025-10-12T05:44:49.530Z\"),\n modified_at=parse_datetime(\"2026-12-12T21:27:56.142Z\"),\n trial_interval=polar_sdk.TrialInterval.DAY,\n trial_interval_count=736956,\n name=\"\",\n description=\"woot absent selfishly maestro frail unethically anguished solder\",\n visibility=polar_sdk.ProductVisibility.PRIVATE,\n recurring_interval=polar_sdk.SubscriptionRecurringInterval.MONTH,\n recurring_interval_count=422566,\n is_recurring=False,\n is_archived=True,\n organization_id=\"\",\n prices=[],\n benefits=[\n polar_sdk.BenefitPublic(\n id=\"\",\n created_at=parse_datetime(\"2024-02-20T20:34:14.140Z\"),\n modified_at=None,\n type=polar_sdk.BenefitType.METER_CREDIT,\n description=\"yawn sharply inside ah lest who into\",\n selectable=False,\n deletable=False,\n organization_id=\"\",\n ),\n ],\n medias=[],\n ),\n ],\n product=polar_sdk.CheckoutProduct(\n id=\"\",\n created_at=parse_datetime(\"2025-07-25T20:35:56.555Z\"),\n modified_at=parse_datetime(\"2025-07-29T02:50:59.712Z\"),\n trial_interval=polar_sdk.TrialInterval.WEEK,\n trial_interval_count=272557,\n name=\"\",\n description=None,\n visibility=polar_sdk.ProductVisibility.DRAFT,\n recurring_interval=polar_sdk.SubscriptionRecurringInterval.DAY,\n recurring_interval_count=None,\n is_recurring=False,\n is_archived=True,\n organization_id=\"\",\n prices=[\n polar_sdk.LegacyRecurringProductPriceCustom(\n created_at=parse_datetime(\"2026-12-31T01:02:14.398Z\"),\n modified_at=parse_datetime(\"2025-02-10T09:37:50.330Z\"),\n id=\"\",\n source=polar_sdk.ProductPriceSource.AD_HOC,\n price_currency=\"\",\n is_archived=False,\n product_id=\"\",\n recurring_interval=polar_sdk.SubscriptionRecurringInterval.MONTH,\n minimum_amount=570455,\n maximum_amount=109251,\n preset_amount=453008,\n ),\n ],\n benefits=[\n polar_sdk.BenefitPublic(\n id=\"\",\n created_at=parse_datetime(\"2024-02-20T20:34:14.140Z\"),\n modified_at=None,\n type=polar_sdk.BenefitType.METER_CREDIT,\n description=\"yawn sharply inside ah lest who into\",\n selectable=False,\n deletable=False,\n organization_id=\"\",\n ),\n ],\n medias=[\n polar_sdk.ProductMediaFileRead(\n id=\"\",\n organization_id=\"\",\n name=\"\",\n path=\"/Library\",\n mime_type=\"\",\n size=404380,\n storage_version=\"\",\n checksum_etag=\"\",\n checksum_sha256_base64=\"\",\n checksum_sha256_hex=None,\n last_modified_at=parse_datetime(\"2026-07-14T04:50:58.042Z\"),\n version=\"\",\n is_uploaded=False,\n created_at=parse_datetime(\"2026-09-12T12:00:29.248Z\"),\n size_readable=\"\",\n public_url=\"https://nervous-mozzarella.net/\",\n ),\n ],\n ),\n prices={\n \"key\": [],\n },\n discount=polar_sdk.CheckoutDiscountPercentageOnceForeverDuration(\n duration=polar_sdk.DiscountDuration.REPEATING,\n type=polar_sdk.DiscountType.PERCENTAGE,\n basis_points=1000,\n id=\"\",\n name=\"\",\n code=\"\",\n ),\n subscription_id=\"\",\n attached_custom_fields=[],\n customer_metadata={\n\n },\n ),\n ))\n\n # Handle response\n print(res)" + "source": "import polar_sdk\nfrom polar_sdk import Polar\nfrom polar_sdk.utils import parse_datetime\n\n\nwith Polar() as polar:\n\n res = polar.endpointcheckout_expired_post(request=polar_sdk.WebhookCheckoutExpiredPayload(\n timestamp=parse_datetime(\"2025-07-24T10:11:01.088Z\"),\n data=polar_sdk.Checkout(\n id=\"\",\n created_at=parse_datetime(\"2024-05-04T16:36:16.430Z\"),\n modified_at=parse_datetime(\"2025-07-14T11:38:07.998Z\"),\n payment_processor=polar_sdk.PaymentProcessor.STRIPE,\n status=polar_sdk.CheckoutStatus.OPEN,\n client_secret=\"\",\n url=\"https://husky-advertisement.biz/\",\n expires_at=parse_datetime(\"2026-08-22T23:38:29.173Z\"),\n success_url=\"https://wasteful-premeditation.org\",\n return_url=\"https://torn-toothpick.name\",\n embed_origin=\"\",\n amount=104765,\n discount_amount=723749,\n net_amount=208098,\n tax_amount=740520,\n total_amount=729691,\n currency=\"Kwanza\",\n allow_trial=True,\n active_trial_interval=polar_sdk.TrialInterval.DAY,\n active_trial_interval_count=884805,\n trial_end=parse_datetime(\"2026-12-24T16:37:35.525Z\"),\n organization_id=\"\",\n product_id=\"\",\n discount_id=\"\",\n allow_discount_codes=False,\n require_billing_address=False,\n is_discount_applicable=True,\n is_free_product_price=True,\n is_payment_required=True,\n is_payment_setup_required=False,\n is_payment_form_required=True,\n customer_id=\"\",\n is_business_customer=False,\n customer_name=\"\",\n customer_email=\"\",\n customer_ip_address=\"\",\n customer_billing_name=\"\",\n customer_billing_address=polar_sdk.Address(\n country=polar_sdk.CountryAlpha2.US,\n ),\n customer_tax_id=\"\",\n payment_processor_metadata={\n \"key\": \"\",\n },\n billing_address_fields=polar_sdk.CheckoutBillingAddressFields(\n country=polar_sdk.BillingAddressFieldMode.DISABLED,\n state=polar_sdk.BillingAddressFieldMode.DISABLED,\n city=polar_sdk.BillingAddressFieldMode.REQUIRED,\n postal_code=polar_sdk.BillingAddressFieldMode.DISABLED,\n line1=polar_sdk.BillingAddressFieldMode.REQUIRED,\n line2=polar_sdk.BillingAddressFieldMode.REQUIRED,\n ),\n trial_interval=polar_sdk.TrialInterval.YEAR,\n trial_interval_count=328311,\n metadata={\n\n },\n external_customer_id=\"\",\n products=[\n polar_sdk.CheckoutProduct(\n id=\"\",\n created_at=parse_datetime(\"2025-10-12T05:44:49.530Z\"),\n modified_at=parse_datetime(\"2026-12-12T21:27:56.142Z\"),\n trial_interval=polar_sdk.TrialInterval.DAY,\n trial_interval_count=736956,\n name=\"\",\n description=\"woot absent selfishly maestro frail unethically anguished solder\",\n visibility=polar_sdk.ProductVisibility.PRIVATE,\n recurring_interval=polar_sdk.SubscriptionRecurringInterval.MONTH,\n recurring_interval_count=422566,\n is_recurring=False,\n is_archived=True,\n organization_id=\"\",\n prices=[],\n benefits=[\n polar_sdk.BenefitPublic(\n id=\"\",\n created_at=parse_datetime(\"2024-02-20T20:34:14.140Z\"),\n modified_at=None,\n type=polar_sdk.BenefitType.FEATURE_FLAG,\n description=\"yawn sharply inside ah lest who into\",\n selectable=False,\n deletable=False,\n organization_id=\"\",\n ),\n ],\n medias=[],\n ),\n ],\n product=polar_sdk.CheckoutProduct(\n id=\"\",\n created_at=parse_datetime(\"2025-07-25T20:35:56.555Z\"),\n modified_at=parse_datetime(\"2025-07-29T02:50:59.712Z\"),\n trial_interval=polar_sdk.TrialInterval.WEEK,\n trial_interval_count=272557,\n name=\"\",\n description=None,\n visibility=polar_sdk.ProductVisibility.DRAFT,\n recurring_interval=polar_sdk.SubscriptionRecurringInterval.DAY,\n recurring_interval_count=None,\n is_recurring=False,\n is_archived=True,\n organization_id=\"\",\n prices=[\n polar_sdk.LegacyRecurringProductPriceCustom(\n created_at=parse_datetime(\"2026-12-31T01:02:14.398Z\"),\n modified_at=parse_datetime(\"2025-02-10T09:37:50.330Z\"),\n id=\"\",\n source=polar_sdk.ProductPriceSource.AD_HOC,\n price_currency=\"\",\n is_archived=False,\n product_id=\"\",\n recurring_interval=polar_sdk.SubscriptionRecurringInterval.MONTH,\n minimum_amount=570455,\n maximum_amount=109251,\n preset_amount=453008,\n ),\n ],\n benefits=[\n polar_sdk.BenefitPublic(\n id=\"\",\n created_at=parse_datetime(\"2024-02-20T20:34:14.140Z\"),\n modified_at=None,\n type=polar_sdk.BenefitType.FEATURE_FLAG,\n description=\"yawn sharply inside ah lest who into\",\n selectable=False,\n deletable=False,\n organization_id=\"\",\n ),\n ],\n medias=[\n polar_sdk.ProductMediaFileRead(\n id=\"\",\n organization_id=\"\",\n name=\"\",\n path=\"/Library\",\n mime_type=\"\",\n size=404380,\n storage_version=\"\",\n checksum_etag=\"\",\n checksum_sha256_base64=\"\",\n checksum_sha256_hex=None,\n last_modified_at=parse_datetime(\"2026-07-14T04:50:58.042Z\"),\n version=\"\",\n is_uploaded=False,\n created_at=parse_datetime(\"2026-09-12T12:00:29.248Z\"),\n size_readable=\"\",\n public_url=\"https://nervous-mozzarella.net/\",\n ),\n ],\n ),\n prices={\n \"key\": [],\n },\n discount=polar_sdk.CheckoutDiscountPercentageOnceForeverDuration(\n duration=polar_sdk.DiscountDuration.REPEATING,\n type=polar_sdk.DiscountType.PERCENTAGE,\n basis_points=1000,\n id=\"\",\n name=\"\",\n code=\"\",\n ),\n subscription_id=\"\",\n attached_custom_fields=[],\n customer_metadata={\n\n },\n ),\n ))\n\n # Handle response\n print(res)" - target: $["paths"]["checkout.updated"]["post"] update: "x-codeSamples": - "lang": "python" "label": "Python (SDK)" - "source": "import polar_sdk\nfrom polar_sdk import Polar\nfrom polar_sdk.utils import parse_datetime\n\n\nwith Polar() as polar:\n\n res = polar.endpointcheckout_updated_post(request=polar_sdk.WebhookCheckoutUpdatedPayload(\n timestamp=parse_datetime(\"2024-03-18T05:40:46.816Z\"),\n data=polar_sdk.Checkout(\n id=\"\",\n created_at=parse_datetime(\"2025-09-17T13:52:37.257Z\"),\n modified_at=parse_datetime(\"2025-11-07T08:23:01.152Z\"),\n payment_processor=polar_sdk.PaymentProcessor.STRIPE,\n status=polar_sdk.CheckoutStatus.EXPIRED,\n client_secret=\"\",\n url=\"https://male-punctuation.name\",\n expires_at=parse_datetime(\"2026-03-26T06:13:51.386Z\"),\n success_url=\"https://monumental-mathematics.info\",\n return_url=\"https://scary-valley.com/\",\n embed_origin=\"\",\n amount=867510,\n discount_amount=469340,\n net_amount=139232,\n tax_amount=373760,\n total_amount=41301,\n currency=\"Azerbaijanian Manat\",\n allow_trial=True,\n active_trial_interval=None,\n active_trial_interval_count=669303,\n trial_end=parse_datetime(\"2026-01-10T10:00:41.343Z\"),\n organization_id=\"\",\n product_id=\"\",\n discount_id=\"\",\n allow_discount_codes=False,\n require_billing_address=True,\n is_discount_applicable=False,\n is_free_product_price=False,\n is_payment_required=False,\n is_payment_setup_required=True,\n is_payment_form_required=True,\n customer_id=\"\",\n is_business_customer=False,\n customer_name=\"\",\n customer_email=\"\",\n customer_ip_address=\"\",\n customer_billing_name=\"\",\n customer_billing_address=polar_sdk.Address(\n country=polar_sdk.CountryAlpha2.US,\n ),\n customer_tax_id=\"\",\n payment_processor_metadata={\n \"key\": \"\",\n \"key1\": \"\",\n \"key2\": \"\",\n },\n billing_address_fields=polar_sdk.CheckoutBillingAddressFields(\n country=polar_sdk.BillingAddressFieldMode.DISABLED,\n state=polar_sdk.BillingAddressFieldMode.DISABLED,\n city=polar_sdk.BillingAddressFieldMode.OPTIONAL,\n postal_code=polar_sdk.BillingAddressFieldMode.OPTIONAL,\n line1=polar_sdk.BillingAddressFieldMode.REQUIRED,\n line2=polar_sdk.BillingAddressFieldMode.OPTIONAL,\n ),\n trial_interval=polar_sdk.TrialInterval.WEEK,\n trial_interval_count=879171,\n metadata={\n \"key\": 899080,\n },\n external_customer_id=\"\",\n products=[\n polar_sdk.CheckoutProduct(\n id=\"\",\n created_at=parse_datetime(\"2024-06-20T05:48:31.398Z\"),\n modified_at=parse_datetime(\"2025-09-06T09:34:57.464Z\"),\n trial_interval=polar_sdk.TrialInterval.DAY,\n trial_interval_count=868555,\n name=\"\",\n description=\"tempting by or hippodrome mountain strict militate soupy partially simple\",\n visibility=polar_sdk.ProductVisibility.PUBLIC,\n recurring_interval=polar_sdk.SubscriptionRecurringInterval.MONTH,\n recurring_interval_count=198497,\n is_recurring=True,\n is_archived=True,\n organization_id=\"\",\n prices=[\n polar_sdk.LegacyRecurringProductPriceFree(\n created_at=parse_datetime(\"2026-11-22T22:06:43.546Z\"),\n modified_at=parse_datetime(\"2024-12-18T01:07:08.468Z\"),\n id=\"\",\n source=polar_sdk.ProductPriceSource.AD_HOC,\n price_currency=\"\",\n is_archived=True,\n product_id=\"\",\n recurring_interval=polar_sdk.SubscriptionRecurringInterval.YEAR,\n ),\n ],\n benefits=[],\n medias=[],\n ),\n ],\n product=polar_sdk.CheckoutProduct(\n id=\"\",\n created_at=parse_datetime(\"2024-03-29T14:25:34.360Z\"),\n modified_at=parse_datetime(\"2024-09-16T18:07:01.178Z\"),\n trial_interval=polar_sdk.TrialInterval.YEAR,\n trial_interval_count=797061,\n name=\"\",\n description=\"cycle determined unaware scaly boohoo better blond boohoo times\",\n visibility=polar_sdk.ProductVisibility.DRAFT,\n recurring_interval=polar_sdk.SubscriptionRecurringInterval.DAY,\n recurring_interval_count=963451,\n is_recurring=True,\n is_archived=True,\n organization_id=\"\",\n prices=[],\n benefits=[\n polar_sdk.BenefitPublic(\n id=\"\",\n created_at=parse_datetime(\"2026-03-22T07:52:36.730Z\"),\n modified_at=None,\n type=polar_sdk.BenefitType.GITHUB_REPOSITORY,\n description=\"make huzzah cheerfully ignite sense noted yesterday drowse\",\n selectable=True,\n deletable=True,\n organization_id=\"\",\n ),\n ],\n medias=[],\n ),\n prices={\n \"key\": [\n polar_sdk.LegacyRecurringProductPriceFixed(\n created_at=parse_datetime(\"2025-01-16T08:25:31.112Z\"),\n modified_at=parse_datetime(\"2024-12-24T20:04:40.681Z\"),\n id=\"\",\n source=polar_sdk.ProductPriceSource.CATALOG,\n price_currency=\"\",\n is_archived=False,\n product_id=\"\",\n recurring_interval=polar_sdk.SubscriptionRecurringInterval.DAY,\n price_amount=812524,\n ),\n ],\n \"key1\": [\n polar_sdk.LegacyRecurringProductPriceFixed(\n created_at=parse_datetime(\"2024-05-18T19:58:32.434Z\"),\n modified_at=parse_datetime(\"2025-09-15T09:47:05.322Z\"),\n id=\"\",\n source=polar_sdk.ProductPriceSource.CATALOG,\n price_currency=\"\",\n is_archived=False,\n product_id=\"\",\n recurring_interval=polar_sdk.SubscriptionRecurringInterval.MONTH,\n price_amount=707239,\n ),\n ],\n },\n discount=polar_sdk.CheckoutDiscountPercentageRepeatDuration(\n duration=polar_sdk.DiscountDuration.FOREVER,\n duration_in_months=959322,\n type=polar_sdk.DiscountType.FIXED,\n basis_points=1000,\n id=\"\",\n name=\"\",\n code=\"\",\n ),\n subscription_id=None,\n attached_custom_fields=[\n polar_sdk.AttachedCustomField(\n custom_field_id=\"\",\n custom_field=polar_sdk.CustomFieldSelect(\n created_at=parse_datetime(\"2025-07-22T12:41:46.724Z\"),\n modified_at=parse_datetime(\"2024-03-16T17:52:33.748Z\"),\n id=\"\",\n metadata={\n\n },\n slug=\"\",\n name=\"\",\n organization_id=\"1dbfc517-0bbf-4301-9ba8-555ca42b9737\",\n properties=polar_sdk.CustomFieldSelectProperties(\n options=[],\n ),\n ),\n order=39093,\n required=True,\n ),\n ],\n customer_metadata={\n\n },\n ),\n ))\n\n # Handle response\n print(res)" + "source": "import polar_sdk\nfrom polar_sdk import Polar\nfrom polar_sdk.utils import parse_datetime\n\n\nwith Polar() as polar:\n\n res = polar.endpointcheckout_updated_post(request=polar_sdk.WebhookCheckoutUpdatedPayload(\n timestamp=parse_datetime(\"2024-03-18T05:40:46.816Z\"),\n data=polar_sdk.Checkout(\n id=\"\",\n created_at=parse_datetime(\"2025-09-17T13:52:37.257Z\"),\n modified_at=parse_datetime(\"2025-11-07T08:23:01.152Z\"),\n payment_processor=polar_sdk.PaymentProcessor.STRIPE,\n status=polar_sdk.CheckoutStatus.EXPIRED,\n client_secret=\"\",\n url=\"https://male-punctuation.name\",\n expires_at=parse_datetime(\"2026-03-26T06:13:51.386Z\"),\n success_url=\"https://monumental-mathematics.info\",\n return_url=\"https://scary-valley.com/\",\n embed_origin=\"\",\n amount=867510,\n discount_amount=469340,\n net_amount=139232,\n tax_amount=373760,\n total_amount=41301,\n currency=\"Azerbaijanian Manat\",\n allow_trial=True,\n active_trial_interval=None,\n active_trial_interval_count=669303,\n trial_end=parse_datetime(\"2026-01-10T10:00:41.343Z\"),\n organization_id=\"\",\n product_id=\"\",\n discount_id=\"\",\n allow_discount_codes=False,\n require_billing_address=True,\n is_discount_applicable=False,\n is_free_product_price=False,\n is_payment_required=False,\n is_payment_setup_required=True,\n is_payment_form_required=True,\n customer_id=\"\",\n is_business_customer=False,\n customer_name=\"\",\n customer_email=\"\",\n customer_ip_address=\"\",\n customer_billing_name=\"\",\n customer_billing_address=polar_sdk.Address(\n country=polar_sdk.CountryAlpha2.US,\n ),\n customer_tax_id=\"\",\n payment_processor_metadata={\n \"key\": \"\",\n \"key1\": \"\",\n \"key2\": \"\",\n },\n billing_address_fields=polar_sdk.CheckoutBillingAddressFields(\n country=polar_sdk.BillingAddressFieldMode.DISABLED,\n state=polar_sdk.BillingAddressFieldMode.DISABLED,\n city=polar_sdk.BillingAddressFieldMode.OPTIONAL,\n postal_code=polar_sdk.BillingAddressFieldMode.OPTIONAL,\n line1=polar_sdk.BillingAddressFieldMode.REQUIRED,\n line2=polar_sdk.BillingAddressFieldMode.OPTIONAL,\n ),\n trial_interval=polar_sdk.TrialInterval.WEEK,\n trial_interval_count=879171,\n metadata={\n \"key\": 899080,\n },\n external_customer_id=\"\",\n products=[\n polar_sdk.CheckoutProduct(\n id=\"\",\n created_at=parse_datetime(\"2024-06-20T05:48:31.398Z\"),\n modified_at=parse_datetime(\"2025-09-06T09:34:57.464Z\"),\n trial_interval=polar_sdk.TrialInterval.DAY,\n trial_interval_count=868555,\n name=\"\",\n description=\"tempting by or hippodrome mountain strict militate soupy partially simple\",\n visibility=polar_sdk.ProductVisibility.PUBLIC,\n recurring_interval=polar_sdk.SubscriptionRecurringInterval.MONTH,\n recurring_interval_count=198497,\n is_recurring=True,\n is_archived=True,\n organization_id=\"\",\n prices=[\n polar_sdk.LegacyRecurringProductPriceFree(\n created_at=parse_datetime(\"2026-11-22T22:06:43.546Z\"),\n modified_at=parse_datetime(\"2024-12-18T01:07:08.468Z\"),\n id=\"\",\n source=polar_sdk.ProductPriceSource.AD_HOC,\n price_currency=\"\",\n is_archived=True,\n product_id=\"\",\n recurring_interval=polar_sdk.SubscriptionRecurringInterval.YEAR,\n ),\n ],\n benefits=[],\n medias=[],\n ),\n ],\n product=polar_sdk.CheckoutProduct(\n id=\"\",\n created_at=parse_datetime(\"2024-03-29T14:25:34.360Z\"),\n modified_at=parse_datetime(\"2024-09-16T18:07:01.178Z\"),\n trial_interval=polar_sdk.TrialInterval.YEAR,\n trial_interval_count=797061,\n name=\"\",\n description=\"cycle determined unaware scaly boohoo better blond boohoo times\",\n visibility=polar_sdk.ProductVisibility.DRAFT,\n recurring_interval=polar_sdk.SubscriptionRecurringInterval.DAY,\n recurring_interval_count=963451,\n is_recurring=True,\n is_archived=True,\n organization_id=\"\",\n prices=[],\n benefits=[\n polar_sdk.BenefitPublic(\n id=\"\",\n created_at=parse_datetime(\"2026-03-22T07:52:36.730Z\"),\n modified_at=None,\n type=polar_sdk.BenefitType.DOWNLOADABLES,\n description=\"make huzzah cheerfully ignite sense noted yesterday drowse\",\n selectable=True,\n deletable=True,\n organization_id=\"\",\n ),\n ],\n medias=[],\n ),\n prices={\n \"key\": [\n polar_sdk.LegacyRecurringProductPriceFixed(\n created_at=parse_datetime(\"2025-01-16T08:25:31.112Z\"),\n modified_at=parse_datetime(\"2024-12-24T20:04:40.681Z\"),\n id=\"\",\n source=polar_sdk.ProductPriceSource.CATALOG,\n price_currency=\"\",\n is_archived=False,\n product_id=\"\",\n recurring_interval=polar_sdk.SubscriptionRecurringInterval.DAY,\n price_amount=812524,\n ),\n ],\n \"key1\": [\n polar_sdk.LegacyRecurringProductPriceFixed(\n created_at=parse_datetime(\"2024-05-18T19:58:32.434Z\"),\n modified_at=parse_datetime(\"2025-09-15T09:47:05.322Z\"),\n id=\"\",\n source=polar_sdk.ProductPriceSource.CATALOG,\n price_currency=\"\",\n is_archived=False,\n product_id=\"\",\n recurring_interval=polar_sdk.SubscriptionRecurringInterval.MONTH,\n price_amount=707239,\n ),\n ],\n },\n discount=polar_sdk.CheckoutDiscountPercentageRepeatDuration(\n duration=polar_sdk.DiscountDuration.FOREVER,\n duration_in_months=959322,\n type=polar_sdk.DiscountType.FIXED,\n basis_points=1000,\n id=\"\",\n name=\"\",\n code=\"\",\n ),\n subscription_id=None,\n attached_custom_fields=[\n polar_sdk.AttachedCustomField(\n custom_field_id=\"\",\n custom_field=polar_sdk.CustomFieldSelect(\n created_at=parse_datetime(\"2025-07-22T12:41:46.724Z\"),\n modified_at=parse_datetime(\"2024-03-16T17:52:33.748Z\"),\n id=\"\",\n metadata={\n\n },\n slug=\"\",\n name=\"\",\n organization_id=\"1dbfc517-0bbf-4301-9ba8-555ca42b9737\",\n properties=polar_sdk.CustomFieldSelectProperties(\n options=[],\n ),\n ),\n order=39093,\n required=True,\n ),\n ],\n customer_metadata={\n\n },\n ),\n ))\n\n # Handle response\n print(res)" - target: $["paths"]["customer.created"]["post"] update: "x-codeSamples": @@ -1196,7 +1196,7 @@ actions: "x-codeSamples": - "lang": "python" "label": "Python (SDK)" - "source": "import polar_sdk\nfrom polar_sdk import Polar\nfrom polar_sdk.utils import parse_datetime\n\n\nwith Polar() as polar:\n\n res = polar.endpointsubscription_active_post(request=polar_sdk.WebhookSubscriptionActivePayload(\n timestamp=parse_datetime(\"2024-08-12T01:28:21.362Z\"),\n data=polar_sdk.Subscription(\n created_at=parse_datetime(\"2024-10-11T10:17:29.274Z\"),\n modified_at=parse_datetime(\"2024-12-17T04:45:55.702Z\"),\n id=\"\",\n amount=10000,\n currency=\"usd\",\n recurring_interval=polar_sdk.SubscriptionRecurringInterval.YEAR,\n recurring_interval_count=291908,\n status=polar_sdk.SubscriptionStatus.PAST_DUE,\n current_period_start=parse_datetime(\"2024-06-08T14:14:48.363Z\"),\n current_period_end=None,\n trial_start=None,\n trial_end=None,\n cancel_at_period_end=False,\n canceled_at=parse_datetime(\"2025-09-14T15:19:58.463Z\"),\n started_at=parse_datetime(\"2025-07-30T05:01:30.550Z\"),\n ends_at=parse_datetime(\"2025-02-01T06:13:13.441Z\"),\n ended_at=parse_datetime(\"2024-10-09T03:15:20.759Z\"),\n customer_id=\"\",\n product_id=\"\",\n discount_id=\"\",\n checkout_id=\"\",\n customer_cancellation_reason=polar_sdk.CustomerCancellationReason.UNUSED,\n customer_cancellation_comment=\"\",\n metadata={\n \"key\": 667866,\n },\n customer=polar_sdk.SubscriptionCustomer(\n id=\"992fae2a-2a17-4b7a-8d9e-e287cf90131b\",\n created_at=parse_datetime(\"2026-02-14T12:59:50.680Z\"),\n modified_at=parse_datetime(\"2026-03-11T11:17:02.540Z\"),\n metadata={\n\n },\n external_id=\"usr_1337\",\n email=\"customer@example.com\",\n email_verified=True,\n type=polar_sdk.CustomerType.INDIVIDUAL,\n name=\"John Doe\",\n billing_address=polar_sdk.Address(\n country=polar_sdk.CountryAlpha2.US,\n ),\n tax_id=[\n \"911144442\",\n \"us_ein\",\n ],\n organization_id=\"1dbfc517-0bbf-4301-9ba8-555ca42b9737\",\n deleted_at=parse_datetime(\"2024-04-07T22:28:00.101Z\"),\n avatar_url=\"https://www.gravatar.com/avatar/xxx?d=404\",\n ),\n product=polar_sdk.Product(\n id=\"\",\n created_at=parse_datetime(\"2026-11-05T10:18:40.300Z\"),\n modified_at=parse_datetime(\"2025-04-23T18:24:43.408Z\"),\n trial_interval=polar_sdk.TrialInterval.YEAR,\n trial_interval_count=714669,\n name=\"\",\n description=\"amongst incidentally irritably cauliflower antique\",\n visibility=polar_sdk.ProductVisibility.PRIVATE,\n recurring_interval=polar_sdk.SubscriptionRecurringInterval.DAY,\n recurring_interval_count=None,\n is_recurring=True,\n is_archived=True,\n organization_id=\"\",\n metadata={\n \"key\": False,\n },\n prices=[\n polar_sdk.LegacyRecurringProductPriceCustom(\n created_at=parse_datetime(\"2026-03-24T10:57:36.466Z\"),\n modified_at=parse_datetime(\"2025-10-17T11:42:46.643Z\"),\n id=\"\",\n source=polar_sdk.ProductPriceSource.AD_HOC,\n price_currency=\"\",\n is_archived=True,\n product_id=\"\",\n recurring_interval=polar_sdk.SubscriptionRecurringInterval.MONTH,\n minimum_amount=154892,\n maximum_amount=778615,\n preset_amount=829362,\n ),\n ],\n benefits=[\n polar_sdk.BenefitDownloadables(\n id=\"\",\n created_at=parse_datetime(\"2025-04-05T11:10:16.533Z\"),\n modified_at=parse_datetime(\"2024-02-12T06:44:11.052Z\"),\n description=\"against effector as upbeat yuck\",\n selectable=True,\n deletable=False,\n organization_id=\"\",\n metadata={\n \"key\": \"\",\n },\n properties=polar_sdk.BenefitDownloadablesProperties(\n archived={\n \"key\": True,\n \"key1\": True,\n },\n files=[\n \"\",\n \"\",\n \"\",\n ],\n ),\n ),\n ],\n medias=[\n polar_sdk.ProductMediaFileRead(\n id=\"\",\n organization_id=\"\",\n name=\"\",\n path=\"/usr/libexec\",\n mime_type=\"\",\n size=629236,\n storage_version=\"\",\n checksum_etag=None,\n checksum_sha256_base64=\"\",\n checksum_sha256_hex=None,\n last_modified_at=parse_datetime(\"2025-10-21T08:00:16.195Z\"),\n version=\"\",\n is_uploaded=False,\n created_at=parse_datetime(\"2024-01-26T13:42:22.194Z\"),\n size_readable=\"\",\n public_url=\"https://vengeful-hoof.name/\",\n ),\n ],\n attached_custom_fields=[],\n ),\n discount=polar_sdk.DiscountFixedOnceForeverDurationBase(\n duration=polar_sdk.DiscountDuration.ONCE,\n type=polar_sdk.DiscountType.FIXED,\n amount=1000,\n currency=\"usd\",\n created_at=parse_datetime(\"2026-10-22T18:50:20.612Z\"),\n modified_at=parse_datetime(\"2024-10-21T11:54:46.292Z\"),\n id=\"\",\n metadata={\n\n },\n name=\"\",\n code=\"\",\n starts_at=None,\n ends_at=parse_datetime(\"2025-08-25T11:20:18.677Z\"),\n max_redemptions=606883,\n redemptions_count=64507,\n organization_id=\"1dbfc517-0bbf-4301-9ba8-555ca42b9737\",\n ),\n prices=[\n polar_sdk.LegacyRecurringProductPriceCustom(\n created_at=parse_datetime(\"2025-03-30T14:50:52.711Z\"),\n modified_at=parse_datetime(\"2025-06-25T05:59:30.258Z\"),\n id=\"\",\n source=polar_sdk.ProductPriceSource.CATALOG,\n price_currency=\"\",\n is_archived=False,\n product_id=\"\",\n recurring_interval=polar_sdk.SubscriptionRecurringInterval.WEEK,\n minimum_amount=120061,\n maximum_amount=None,\n preset_amount=31018,\n ),\n ],\n meters=[],\n ),\n ))\n\n # Handle response\n print(res)" + "source": "import polar_sdk\nfrom polar_sdk import Polar\nfrom polar_sdk.utils import parse_datetime\n\n\nwith Polar() as polar:\n\n res = polar.endpointsubscription_active_post(request=polar_sdk.WebhookSubscriptionActivePayload(\n timestamp=parse_datetime(\"2024-08-12T01:28:21.362Z\"),\n data=polar_sdk.Subscription(\n created_at=parse_datetime(\"2024-10-11T10:17:29.274Z\"),\n modified_at=parse_datetime(\"2024-12-17T04:45:55.702Z\"),\n id=\"\",\n amount=10000,\n currency=\"usd\",\n recurring_interval=polar_sdk.SubscriptionRecurringInterval.YEAR,\n recurring_interval_count=291908,\n status=polar_sdk.SubscriptionStatus.PAST_DUE,\n current_period_start=parse_datetime(\"2024-06-08T14:14:48.363Z\"),\n current_period_end=None,\n trial_start=None,\n trial_end=None,\n cancel_at_period_end=False,\n canceled_at=parse_datetime(\"2025-09-14T15:19:58.463Z\"),\n started_at=parse_datetime(\"2025-07-30T05:01:30.550Z\"),\n ends_at=parse_datetime(\"2025-02-01T06:13:13.441Z\"),\n ended_at=parse_datetime(\"2024-10-09T03:15:20.759Z\"),\n customer_id=\"\",\n product_id=\"\",\n discount_id=\"\",\n checkout_id=\"\",\n customer_cancellation_reason=polar_sdk.CustomerCancellationReason.UNUSED,\n customer_cancellation_comment=\"\",\n metadata={\n \"key\": 667866,\n },\n customer=polar_sdk.SubscriptionCustomer(\n id=\"992fae2a-2a17-4b7a-8d9e-e287cf90131b\",\n created_at=parse_datetime(\"2026-02-14T12:59:50.680Z\"),\n modified_at=parse_datetime(\"2026-03-11T11:17:02.540Z\"),\n metadata={\n\n },\n external_id=\"usr_1337\",\n email=\"customer@example.com\",\n email_verified=True,\n type=polar_sdk.CustomerType.INDIVIDUAL,\n name=\"John Doe\",\n billing_address=polar_sdk.Address(\n country=polar_sdk.CountryAlpha2.US,\n ),\n tax_id=[\n \"911144442\",\n \"us_ein\",\n ],\n organization_id=\"1dbfc517-0bbf-4301-9ba8-555ca42b9737\",\n deleted_at=parse_datetime(\"2024-04-07T22:28:00.101Z\"),\n avatar_url=\"https://www.gravatar.com/avatar/xxx?d=404\",\n ),\n product=polar_sdk.Product(\n id=\"\",\n created_at=parse_datetime(\"2026-11-05T10:18:40.300Z\"),\n modified_at=parse_datetime(\"2025-04-23T18:24:43.408Z\"),\n trial_interval=polar_sdk.TrialInterval.YEAR,\n trial_interval_count=714669,\n name=\"\",\n description=\"amongst incidentally irritably cauliflower antique\",\n visibility=polar_sdk.ProductVisibility.PRIVATE,\n recurring_interval=polar_sdk.SubscriptionRecurringInterval.DAY,\n recurring_interval_count=None,\n is_recurring=True,\n is_archived=True,\n organization_id=\"\",\n metadata={\n \"key\": False,\n },\n prices=[\n polar_sdk.LegacyRecurringProductPriceCustom(\n created_at=parse_datetime(\"2026-03-24T10:57:36.466Z\"),\n modified_at=parse_datetime(\"2025-10-17T11:42:46.643Z\"),\n id=\"\",\n source=polar_sdk.ProductPriceSource.AD_HOC,\n price_currency=\"\",\n is_archived=True,\n product_id=\"\",\n recurring_interval=polar_sdk.SubscriptionRecurringInterval.MONTH,\n minimum_amount=154892,\n maximum_amount=778615,\n preset_amount=829362,\n ),\n ],\n benefits=[\n polar_sdk.BenefitFeatureFlag(\n id=\"\",\n created_at=parse_datetime(\"2025-04-05T11:10:16.533Z\"),\n modified_at=parse_datetime(\"2024-02-12T06:44:11.052Z\"),\n description=\"against effector as upbeat yuck\",\n selectable=True,\n deletable=False,\n organization_id=\"\",\n metadata={\n \"key\": \"\",\n },\n properties=polar_sdk.BenefitFeatureFlagProperties(),\n ),\n ],\n medias=[\n polar_sdk.ProductMediaFileRead(\n id=\"\",\n organization_id=\"\",\n name=\"\",\n path=\"/media\",\n mime_type=\"\",\n size=18256,\n storage_version=\"\",\n checksum_etag=\"\",\n checksum_sha256_base64=\"\",\n checksum_sha256_hex=\"\",\n last_modified_at=parse_datetime(\"2024-04-08T15:13:09.162Z\"),\n version=\"\",\n is_uploaded=True,\n created_at=parse_datetime(\"2025-05-01T10:38:41.675Z\"),\n size_readable=\"\",\n public_url=\"https://favorable-lava.com\",\n ),\n ],\n attached_custom_fields=[],\n ),\n discount=polar_sdk.DiscountFixedRepeatDurationBase(\n duration=polar_sdk.DiscountDuration.FOREVER,\n duration_in_months=204827,\n type=polar_sdk.DiscountType.FIXED,\n amount=1000,\n currency=\"usd\",\n created_at=parse_datetime(\"2024-06-22T00:23:01.418Z\"),\n modified_at=parse_datetime(\"2024-08-21T07:22:13.326Z\"),\n id=\"\",\n metadata={\n \"key\": 268701,\n },\n name=\"\",\n code=\"\",\n starts_at=parse_datetime(\"2024-04-03T00:27:09.188Z\"),\n ends_at=parse_datetime(\"2025-08-25T11:20:18.677Z\"),\n max_redemptions=606883,\n redemptions_count=64507,\n organization_id=\"1dbfc517-0bbf-4301-9ba8-555ca42b9737\",\n ),\n prices=[\n polar_sdk.LegacyRecurringProductPriceCustom(\n created_at=parse_datetime(\"2025-03-30T14:50:52.711Z\"),\n modified_at=parse_datetime(\"2025-06-25T05:59:30.258Z\"),\n id=\"\",\n source=polar_sdk.ProductPriceSource.CATALOG,\n price_currency=\"\",\n is_archived=False,\n product_id=\"\",\n recurring_interval=polar_sdk.SubscriptionRecurringInterval.WEEK,\n minimum_amount=120061,\n maximum_amount=None,\n preset_amount=31018,\n ),\n ],\n meters=[],\n ),\n ))\n\n # Handle response\n print(res)" - target: $["paths"]["subscription.canceled"]["post"] update: "x-codeSamples": diff --git a/docs/models/benefit.md b/docs/models/benefit.md index 8f141659..5ebf9f0f 100644 --- a/docs/models/benefit.md +++ b/docs/models/benefit.md @@ -21,6 +21,12 @@ value: models.BenefitDiscord = /* values here */ value: models.BenefitDownloadables = /* values here */ ``` +### `models.BenefitFeatureFlag` + +```python +value: models.BenefitFeatureFlag = /* values here */ +``` + ### `models.BenefitGitHubRepository` ```python diff --git a/docs/models/benefitcreate.md b/docs/models/benefitcreate.md index 11ca0375..ae981b52 100644 --- a/docs/models/benefitcreate.md +++ b/docs/models/benefitcreate.md @@ -21,6 +21,12 @@ value: models.BenefitDiscordCreate = /* values here */ value: models.BenefitDownloadablesCreate = /* values here */ ``` +### `models.BenefitFeatureFlagCreate` + +```python +value: models.BenefitFeatureFlagCreate = /* values here */ +``` + ### `models.BenefitGitHubRepositoryCreate` ```python diff --git a/docs/models/benefitfeatureflag.md b/docs/models/benefitfeatureflag.md new file mode 100644 index 00000000..171f0f86 --- /dev/null +++ b/docs/models/benefitfeatureflag.md @@ -0,0 +1,22 @@ +# BenefitFeatureFlag + +A benefit of type `feature_flag`. + +Use it to grant feature flags with key-value metadata +that can be queried via the API and webhooks. + + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------------------------------------- | -------------------------------------------------------------------------------- | -------------------------------------------------------------------------------- | -------------------------------------------------------------------------------- | +| `id` | *str* | :heavy_check_mark: | The ID of the benefit. | +| `created_at` | [date](https://docs.python.org/3/library/datetime.html#date-objects) | :heavy_check_mark: | Creation timestamp of the object. | +| `modified_at` | [date](https://docs.python.org/3/library/datetime.html#date-objects) | :heavy_check_mark: | Last modification timestamp of the object. | +| `type` | *Literal["feature_flag"]* | :heavy_check_mark: | N/A | +| `description` | *str* | :heavy_check_mark: | The description of the benefit. | +| `selectable` | *bool* | :heavy_check_mark: | Whether the benefit is selectable when creating a product. | +| `deletable` | *bool* | :heavy_check_mark: | Whether the benefit is deletable. | +| `organization_id` | *str* | :heavy_check_mark: | The ID of the organization owning the benefit. | +| `metadata` | Dict[str, [models.MetadataOutputType](../models/metadataoutputtype.md)] | :heavy_check_mark: | N/A | +| `properties` | [models.BenefitFeatureFlagProperties](../models/benefitfeatureflagproperties.md) | :heavy_check_mark: | Properties for a benefit of type `feature_flag`. | \ No newline at end of file diff --git a/docs/models/customerwithmembers.md b/docs/models/benefitfeatureflagcreate.md similarity index 52% rename from docs/models/customerwithmembers.md rename to docs/models/benefitfeatureflagcreate.md index ba69cdb2..447ad35e 100644 --- a/docs/models/customerwithmembers.md +++ b/docs/models/benefitfeatureflagcreate.md @@ -1,25 +1,14 @@ -# CustomerWithMembers +# BenefitFeatureFlagCreate -A customer in an organization with their members loaded. +Schema to create a benefit of type `feature_flag`. ## Fields -| Field | Type | Required | Description | Example | -| ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| `id` | *str* | :heavy_check_mark: | The ID of the customer. | 992fae2a-2a17-4b7a-8d9e-e287cf90131b | -| `created_at` | [date](https://docs.python.org/3/library/datetime.html#date-objects) | :heavy_check_mark: | Creation timestamp of the object. | | -| `modified_at` | [date](https://docs.python.org/3/library/datetime.html#date-objects) | :heavy_check_mark: | Last modification timestamp of the object. | | -| `metadata` | Dict[str, [models.MetadataOutputType](../models/metadataoutputtype.md)] | :heavy_check_mark: | N/A | | -| `external_id` | *Nullable[str]* | :heavy_check_mark: | The ID of the customer in your system. This must be unique within the organization. Once set, it can't be updated. | usr_1337 | -| `email` | *str* | :heavy_check_mark: | The email address of the customer. This must be unique within the organization. | customer@example.com | -| `email_verified` | *bool* | :heavy_check_mark: | Whether the customer email address is verified. The address is automatically verified when the customer accesses the customer portal using their email address. | true | -| `type` | [OptionalNullable[models.CustomerType]](../models/customertype.md) | :heavy_minus_sign: | The type of customer: 'individual' for single users, 'team' for customers with multiple members. Legacy customers may have NULL type which is treated as 'individual'. | individual | -| `name` | *Nullable[str]* | :heavy_check_mark: | The name of the customer. | John Doe | -| `billing_address` | [Nullable[models.Address]](../models/address.md) | :heavy_check_mark: | N/A | | -| `tax_id` | List[[Nullable[models.CustomerWithMembersTaxID]](../models/customerwithmemberstaxid.md)] | :heavy_check_mark: | N/A | [
"911144442",
"us_ein"
] | -| `locale` | *OptionalNullable[str]* | :heavy_minus_sign: | N/A | | -| `organization_id` | *str* | :heavy_check_mark: | The ID of the organization owning the customer. | 1dbfc517-0bbf-4301-9ba8-555ca42b9737 | -| `deleted_at` | [date](https://docs.python.org/3/library/datetime.html#date-objects) | :heavy_check_mark: | Timestamp for when the customer was soft deleted. | | -| `members` | List[[models.Member](../models/member.md)] | :heavy_minus_sign: | List of members belonging to this customer. | | -| `avatar_url` | *str* | :heavy_check_mark: | N/A | https://www.gravatar.com/avatar/xxx?d=404 | \ No newline at end of file +| Field | Type | Required | Description | Example | +| ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `metadata` | Dict[str, [models.BenefitFeatureFlagCreateMetadata](../models/benefitfeatureflagcreatemetadata.md)] | :heavy_minus_sign: | Key-value object allowing you to store additional information.

The key must be a string with a maximum length of **40 characters**.
The value must be either:

* A string with a maximum length of **500 characters**
* An integer
* A floating-point number
* A boolean

You can store up to **50 key-value pairs**. | | +| `type` | *Literal["feature_flag"]* | :heavy_check_mark: | N/A | | +| `description` | *str* | :heavy_check_mark: | The description of the benefit. Will be displayed on products having this benefit. | | +| `organization_id` | *OptionalNullable[str]* | :heavy_minus_sign: | The ID of the organization owning the benefit. **Required unless you use an organization token.** | 1dbfc517-0bbf-4301-9ba8-555ca42b9737 | +| `properties` | [models.BenefitFeatureFlagCreateProperties](../models/benefitfeatureflagcreateproperties.md) | :heavy_check_mark: | Properties for creating a benefit of type `feature_flag`. | | \ No newline at end of file diff --git a/docs/models/benefitfeatureflagcreatemetadata.md b/docs/models/benefitfeatureflagcreatemetadata.md new file mode 100644 index 00000000..ac61a308 --- /dev/null +++ b/docs/models/benefitfeatureflagcreatemetadata.md @@ -0,0 +1,29 @@ +# BenefitFeatureFlagCreateMetadata + + +## Supported Types + +### `str` + +```python +value: str = /* values here */ +``` + +### `int` + +```python +value: int = /* values here */ +``` + +### `float` + +```python +value: float = /* values here */ +``` + +### `bool` + +```python +value: bool = /* values here */ +``` + diff --git a/docs/models/benefitfeatureflagcreateproperties.md b/docs/models/benefitfeatureflagcreateproperties.md new file mode 100644 index 00000000..54dd74f5 --- /dev/null +++ b/docs/models/benefitfeatureflagcreateproperties.md @@ -0,0 +1,9 @@ +# BenefitFeatureFlagCreateProperties + +Properties for creating a benefit of type `feature_flag`. + + +## Fields + +| Field | Type | Required | Description | +| ----------- | ----------- | ----------- | ----------- | \ No newline at end of file diff --git a/docs/models/benefitfeatureflagproperties.md b/docs/models/benefitfeatureflagproperties.md new file mode 100644 index 00000000..beb97c92 --- /dev/null +++ b/docs/models/benefitfeatureflagproperties.md @@ -0,0 +1,9 @@ +# BenefitFeatureFlagProperties + +Properties for a benefit of type `feature_flag`. + + +## Fields + +| Field | Type | Required | Description | +| ----------- | ----------- | ----------- | ----------- | \ No newline at end of file diff --git a/docs/models/benefitfeatureflagsubscriber.md b/docs/models/benefitfeatureflagsubscriber.md new file mode 100644 index 00000000..2d782412 --- /dev/null +++ b/docs/models/benefitfeatureflagsubscriber.md @@ -0,0 +1,18 @@ +# BenefitFeatureFlagSubscriber + + +## Fields + +| Field | Type | Required | Description | +| ---------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------- | +| `id` | *str* | :heavy_check_mark: | The ID of the benefit. | +| `created_at` | [date](https://docs.python.org/3/library/datetime.html#date-objects) | :heavy_check_mark: | Creation timestamp of the object. | +| `modified_at` | [date](https://docs.python.org/3/library/datetime.html#date-objects) | :heavy_check_mark: | Last modification timestamp of the object. | +| `type` | *Literal["feature_flag"]* | :heavy_check_mark: | N/A | +| `description` | *str* | :heavy_check_mark: | The description of the benefit. | +| `selectable` | *bool* | :heavy_check_mark: | Whether the benefit is selectable when creating a product. | +| `deletable` | *bool* | :heavy_check_mark: | Whether the benefit is deletable. | +| `organization_id` | *str* | :heavy_check_mark: | The ID of the organization owning the benefit. | +| `metadata` | Dict[str, [models.MetadataOutputType](../models/metadataoutputtype.md)] | :heavy_check_mark: | N/A | +| `organization` | [models.BenefitSubscriberOrganization](../models/benefitsubscriberorganization.md) | :heavy_check_mark: | N/A | +| `properties` | [models.BenefitFeatureFlagSubscriberProperties](../models/benefitfeatureflagsubscriberproperties.md) | :heavy_check_mark: | Properties available to subscribers for a benefit of type `feature_flag`. | \ No newline at end of file diff --git a/docs/models/benefitfeatureflagsubscriberproperties.md b/docs/models/benefitfeatureflagsubscriberproperties.md new file mode 100644 index 00000000..c69bf597 --- /dev/null +++ b/docs/models/benefitfeatureflagsubscriberproperties.md @@ -0,0 +1,9 @@ +# BenefitFeatureFlagSubscriberProperties + +Properties available to subscribers for a benefit of type `feature_flag`. + + +## Fields + +| Field | Type | Required | Description | +| ----------- | ----------- | ----------- | ----------- | \ No newline at end of file diff --git a/docs/models/benefitfeatureflagupdate.md b/docs/models/benefitfeatureflagupdate.md new file mode 100644 index 00000000..065c8273 --- /dev/null +++ b/docs/models/benefitfeatureflagupdate.md @@ -0,0 +1,11 @@ +# BenefitFeatureFlagUpdate + + +## Fields + +| Field | Type | Required | Description | +| ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `metadata` | Dict[str, [models.BenefitFeatureFlagUpdateMetadata](../models/benefitfeatureflagupdatemetadata.md)] | :heavy_minus_sign: | Key-value object allowing you to store additional information.

The key must be a string with a maximum length of **40 characters**.
The value must be either:

* A string with a maximum length of **500 characters**
* An integer
* A floating-point number
* A boolean

You can store up to **50 key-value pairs**. | +| `description` | *OptionalNullable[str]* | :heavy_minus_sign: | The description of the benefit. Will be displayed on products having this benefit. | +| `type` | *Literal["feature_flag"]* | :heavy_check_mark: | N/A | +| `properties` | [OptionalNullable[models.BenefitFeatureFlagProperties]](../models/benefitfeatureflagproperties.md) | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/docs/models/benefitfeatureflagupdatemetadata.md b/docs/models/benefitfeatureflagupdatemetadata.md new file mode 100644 index 00000000..a706c95a --- /dev/null +++ b/docs/models/benefitfeatureflagupdatemetadata.md @@ -0,0 +1,29 @@ +# BenefitFeatureFlagUpdateMetadata + + +## Supported Types + +### `str` + +```python +value: str = /* values here */ +``` + +### `int` + +```python +value: int = /* values here */ +``` + +### `float` + +```python +value: float = /* values here */ +``` + +### `bool` + +```python +value: bool = /* values here */ +``` + diff --git a/docs/models/benefitgrantfeatureflagproperties.md b/docs/models/benefitgrantfeatureflagproperties.md new file mode 100644 index 00000000..52679003 --- /dev/null +++ b/docs/models/benefitgrantfeatureflagproperties.md @@ -0,0 +1,7 @@ +# BenefitGrantFeatureFlagProperties + + +## Fields + +| Field | Type | Required | Description | +| ----------- | ----------- | ----------- | ----------- | \ No newline at end of file diff --git a/docs/models/benefitgrantfeatureflagwebhook.md b/docs/models/benefitgrantfeatureflagwebhook.md new file mode 100644 index 00000000..2c27874d --- /dev/null +++ b/docs/models/benefitgrantfeatureflagwebhook.md @@ -0,0 +1,25 @@ +# BenefitGrantFeatureFlagWebhook + + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------- | +| `created_at` | [date](https://docs.python.org/3/library/datetime.html#date-objects) | :heavy_check_mark: | Creation timestamp of the object. | +| `modified_at` | [date](https://docs.python.org/3/library/datetime.html#date-objects) | :heavy_check_mark: | Last modification timestamp of the object. | +| `id` | *str* | :heavy_check_mark: | The ID of the grant. | +| `granted_at` | [date](https://docs.python.org/3/library/datetime.html#date-objects) | :heavy_minus_sign: | The timestamp when the benefit was granted. If `None`, the benefit is not granted. | +| `is_granted` | *bool* | :heavy_check_mark: | Whether the benefit is granted. | +| `revoked_at` | [date](https://docs.python.org/3/library/datetime.html#date-objects) | :heavy_minus_sign: | The timestamp when the benefit was revoked. If `None`, the benefit is not revoked. | +| `is_revoked` | *bool* | :heavy_check_mark: | Whether the benefit is revoked. | +| `subscription_id` | *Nullable[str]* | :heavy_check_mark: | The ID of the subscription that granted this benefit. | +| `order_id` | *Nullable[str]* | :heavy_check_mark: | The ID of the order that granted this benefit. | +| `customer_id` | *str* | :heavy_check_mark: | The ID of the customer concerned by this grant. | +| `member_id` | *OptionalNullable[str]* | :heavy_minus_sign: | The ID of the member concerned by this grant. | +| `benefit_id` | *str* | :heavy_check_mark: | The ID of the benefit concerned by this grant. | +| `error` | [OptionalNullable[models.BenefitGrantError]](../models/benefitgranterror.md) | :heavy_minus_sign: | The error information if the benefit grant failed with an unrecoverable error. | +| `customer` | [models.Customer](../models/customer.md) | :heavy_check_mark: | A customer in an organization. | +| `member` | [OptionalNullable[models.Member]](../models/member.md) | :heavy_minus_sign: | N/A | +| `benefit` | [models.BenefitFeatureFlag](../models/benefitfeatureflag.md) | :heavy_check_mark: | A benefit of type `feature_flag`.

Use it to grant feature flags with key-value metadata
that can be queried via the API and webhooks. | +| `properties` | [models.BenefitGrantFeatureFlagProperties](../models/benefitgrantfeatureflagproperties.md) | :heavy_check_mark: | N/A | +| `previous_properties` | [OptionalNullable[models.BenefitGrantFeatureFlagProperties]](../models/benefitgrantfeatureflagproperties.md) | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/docs/models/benefitgrantwebhook.md b/docs/models/benefitgrantwebhook.md index a5f84df1..ea7c1b6a 100644 --- a/docs/models/benefitgrantwebhook.md +++ b/docs/models/benefitgrantwebhook.md @@ -39,3 +39,9 @@ value: models.BenefitGrantLicenseKeysWebhook = /* values here */ value: models.BenefitGrantMeterCreditWebhook = /* values here */ ``` +### `models.BenefitGrantFeatureFlagWebhook` + +```python +value: models.BenefitGrantFeatureFlagWebhook = /* values here */ +``` + diff --git a/docs/models/benefitsupdatebenefitupdate.md b/docs/models/benefitsupdatebenefitupdate.md index d20a0bdb..52b8b522 100644 --- a/docs/models/benefitsupdatebenefitupdate.md +++ b/docs/models/benefitsupdatebenefitupdate.md @@ -39,3 +39,9 @@ value: models.BenefitLicenseKeysUpdate = /* values here */ value: models.BenefitMeterCreditUpdate = /* values here */ ``` +### `models.BenefitFeatureFlagUpdate` + +```python +value: models.BenefitFeatureFlagUpdate = /* values here */ +``` + diff --git a/docs/models/benefittype.md b/docs/models/benefittype.md index 34a8b727..6db79568 100644 --- a/docs/models/benefittype.md +++ b/docs/models/benefittype.md @@ -10,4 +10,5 @@ | `GITHUB_REPOSITORY` | github_repository | | `DOWNLOADABLES` | downloadables | | `LICENSE_KEYS` | license_keys | -| `METER_CREDIT` | meter_credit | \ No newline at end of file +| `METER_CREDIT` | meter_credit | +| `FEATURE_FLAG` | feature_flag | \ No newline at end of file diff --git a/docs/models/cardpayment.md b/docs/models/cardpayment.md index 1311f0e9..e0ffe0e5 100644 --- a/docs/models/cardpayment.md +++ b/docs/models/cardpayment.md @@ -16,7 +16,7 @@ Schema of a payment with a card payment method. | `currency` | *str* | :heavy_check_mark: | The payment currency. Currently, only `usd` is supported. | usd | | `method` | *Literal["card"]* | :heavy_check_mark: | The payment method used. | card | | `decline_reason` | *Nullable[str]* | :heavy_check_mark: | Error code, if the payment was declined. | insufficient_funds | -| `decline_message` | *Nullable[str]* | :heavy_check_mark: | Human-reasable error message, if the payment was declined. | Your card has insufficient funds. | +| `decline_message` | *Nullable[str]* | :heavy_check_mark: | Human-readable error message, if the payment was declined. | Your card has insufficient funds. | | `organization_id` | *str* | :heavy_check_mark: | The ID of the organization that owns the payment. | 1dbfc517-0bbf-4301-9ba8-555ca42b9737 | | `checkout_id` | *Nullable[str]* | :heavy_check_mark: | The ID of the checkout session associated with this payment. | e4b478fa-cd25-4253-9f1f-8a41e6370ede | | `order_id` | *Nullable[str]* | :heavy_check_mark: | The ID of the order associated with this payment. | e4b478fa-cd25-4253-9f1f-8a41e6370ede | diff --git a/docs/models/customer.md b/docs/models/customer.md index 1b0885a2..9d5eb7be 100644 --- a/docs/models/customer.md +++ b/docs/models/customer.md @@ -11,7 +11,7 @@ A customer in an organization. | `created_at` | [date](https://docs.python.org/3/library/datetime.html#date-objects) | :heavy_check_mark: | Creation timestamp of the object. | | | `modified_at` | [date](https://docs.python.org/3/library/datetime.html#date-objects) | :heavy_check_mark: | Last modification timestamp of the object. | | | `metadata` | Dict[str, [models.MetadataOutputType](../models/metadataoutputtype.md)] | :heavy_check_mark: | N/A | | -| `external_id` | *Nullable[str]* | :heavy_check_mark: | The ID of the customer in your system. This must be unique within the organization. Once set, it can't be updated. | usr_1337 | +| `external_id` | *OptionalNullable[str]* | :heavy_minus_sign: | The ID of the customer in your system. This must be unique within the organization. Once set, it can't be updated. | usr_1337 | | `email` | *str* | :heavy_check_mark: | The email address of the customer. This must be unique within the organization. | customer@example.com | | `email_verified` | *bool* | :heavy_check_mark: | Whether the customer email address is verified. The address is automatically verified when the customer accesses the customer portal using their email address. | true | | `type` | [OptionalNullable[models.CustomerType]](../models/customertype.md) | :heavy_minus_sign: | The type of customer: 'individual' for single users, 'team' for customers with multiple members. Legacy customers may have NULL type which is treated as 'individual'. | individual | diff --git a/docs/models/customerbenefitgrant.md b/docs/models/customerbenefitgrant.md index 68d259e2..9c45df2f 100644 --- a/docs/models/customerbenefitgrant.md +++ b/docs/models/customerbenefitgrant.md @@ -39,3 +39,9 @@ value: models.CustomerBenefitGrantCustom = /* values here */ value: models.CustomerBenefitGrantMeterCredit = /* values here */ ``` +### `models.CustomerBenefitGrantFeatureFlag` + +```python +value: models.CustomerBenefitGrantFeatureFlag = /* values here */ +``` + diff --git a/docs/models/customerbenefitgrantfeatureflag.md b/docs/models/customerbenefitgrantfeatureflag.md new file mode 100644 index 00000000..d9172f57 --- /dev/null +++ b/docs/models/customerbenefitgrantfeatureflag.md @@ -0,0 +1,23 @@ +# CustomerBenefitGrantFeatureFlag + + +## Fields + +| Field | Type | Required | Description | +| ------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------ | +| `created_at` | [date](https://docs.python.org/3/library/datetime.html#date-objects) | :heavy_check_mark: | Creation timestamp of the object. | +| `modified_at` | [date](https://docs.python.org/3/library/datetime.html#date-objects) | :heavy_check_mark: | Last modification timestamp of the object. | +| `id` | *str* | :heavy_check_mark: | The ID of the object. | +| `granted_at` | [date](https://docs.python.org/3/library/datetime.html#date-objects) | :heavy_check_mark: | N/A | +| `revoked_at` | [date](https://docs.python.org/3/library/datetime.html#date-objects) | :heavy_check_mark: | N/A | +| `customer_id` | *str* | :heavy_check_mark: | N/A | +| `member_id` | *OptionalNullable[str]* | :heavy_minus_sign: | N/A | +| `benefit_id` | *str* | :heavy_check_mark: | N/A | +| `subscription_id` | *Nullable[str]* | :heavy_check_mark: | N/A | +| `order_id` | *Nullable[str]* | :heavy_check_mark: | N/A | +| `is_granted` | *bool* | :heavy_check_mark: | N/A | +| `is_revoked` | *bool* | :heavy_check_mark: | N/A | +| `error` | [OptionalNullable[models.BenefitGrantError]](../models/benefitgranterror.md) | :heavy_minus_sign: | N/A | +| `customer` | [models.CustomerPortalCustomer](../models/customerportalcustomer.md) | :heavy_check_mark: | N/A | +| `benefit` | [models.BenefitFeatureFlagSubscriber](../models/benefitfeatureflagsubscriber.md) | :heavy_check_mark: | N/A | +| `properties` | [models.BenefitGrantFeatureFlagProperties](../models/benefitgrantfeatureflagproperties.md) | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/docs/models/customerbenefitgrantfeatureflagupdate.md b/docs/models/customerbenefitgrantfeatureflagupdate.md new file mode 100644 index 00000000..b0f34e84 --- /dev/null +++ b/docs/models/customerbenefitgrantfeatureflagupdate.md @@ -0,0 +1,8 @@ +# CustomerBenefitGrantFeatureFlagUpdate + + +## Fields + +| Field | Type | Required | Description | +| ------------------------- | ------------------------- | ------------------------- | ------------------------- | +| `benefit_type` | *Literal["feature_flag"]* | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/docs/models/customerbenefitgrantupdate.md b/docs/models/customerbenefitgrantupdate.md index 106c4ab7..1da400a7 100644 --- a/docs/models/customerbenefitgrantupdate.md +++ b/docs/models/customerbenefitgrantupdate.md @@ -21,6 +21,12 @@ value: models.CustomerBenefitGrantDiscordUpdate = /* values here */ value: models.CustomerBenefitGrantDownloadablesUpdate = /* values here */ ``` +### `models.CustomerBenefitGrantFeatureFlagUpdate` + +```python +value: models.CustomerBenefitGrantFeatureFlagUpdate = /* values here */ +``` + ### `models.CustomerBenefitGrantGitHubRepositoryUpdate` ```python diff --git a/docs/models/customerslistresponse.md b/docs/models/customerslistresponse.md index 5cba5ba2..d6eadb29 100644 --- a/docs/models/customerslistresponse.md +++ b/docs/models/customerslistresponse.md @@ -3,6 +3,6 @@ ## Fields -| Field | Type | Required | Description | -| -------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------- | -| `result` | [models.ListResourceCustomerWithMembers](../models/listresourcecustomerwithmembers.md) | :heavy_check_mark: | N/A | \ No newline at end of file +| Field | Type | Required | Description | +| ---------------------------------------------------------------- | ---------------------------------------------------------------- | ---------------------------------------------------------------- | ---------------------------------------------------------------- | +| `result` | [models.ListResourceCustomer](../models/listresourcecustomer.md) | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/docs/models/customerstate.md b/docs/models/customerstate.md index a1f21f80..9d54326a 100644 --- a/docs/models/customerstate.md +++ b/docs/models/customerstate.md @@ -15,7 +15,7 @@ A customer along with additional state information: | `created_at` | [date](https://docs.python.org/3/library/datetime.html#date-objects) | :heavy_check_mark: | Creation timestamp of the object. | | | `modified_at` | [date](https://docs.python.org/3/library/datetime.html#date-objects) | :heavy_check_mark: | Last modification timestamp of the object. | | | `metadata` | Dict[str, [models.MetadataOutputType](../models/metadataoutputtype.md)] | :heavy_check_mark: | N/A | | -| `external_id` | *Nullable[str]* | :heavy_check_mark: | The ID of the customer in your system. This must be unique within the organization. Once set, it can't be updated. | usr_1337 | +| `external_id` | *OptionalNullable[str]* | :heavy_minus_sign: | The ID of the customer in your system. This must be unique within the organization. Once set, it can't be updated. | usr_1337 | | `email` | *str* | :heavy_check_mark: | The email address of the customer. This must be unique within the organization. | customer@example.com | | `email_verified` | *bool* | :heavy_check_mark: | Whether the customer email address is verified. The address is automatically verified when the customer accesses the customer portal using their email address. | true | | `type` | [OptionalNullable[models.CustomerType]](../models/customertype.md) | :heavy_minus_sign: | The type of customer: 'individual' for single users, 'team' for customers with multiple members. Legacy customers may have NULL type which is treated as 'individual'. | individual | diff --git a/docs/models/customerstatebenefitgrantproperties.md b/docs/models/customerstatebenefitgrantproperties.md index 073155eb..edd1980e 100644 --- a/docs/models/customerstatebenefitgrantproperties.md +++ b/docs/models/customerstatebenefitgrantproperties.md @@ -33,3 +33,9 @@ value: models.BenefitGrantLicenseKeysProperties = /* values here */ value: models.BenefitGrantCustomProperties = /* values here */ ``` +### `models.BenefitGrantFeatureFlagProperties` + +```python +value: models.BenefitGrantFeatureFlagProperties = /* values here */ +``` + diff --git a/docs/models/customerwithmemberstaxid.md b/docs/models/customerwithmemberstaxid.md deleted file mode 100644 index 27b667f3..00000000 --- a/docs/models/customerwithmemberstaxid.md +++ /dev/null @@ -1,17 +0,0 @@ -# CustomerWithMembersTaxID - - -## Supported Types - -### `str` - -```python -value: str = /* values here */ -``` - -### `models.TaxIDFormat` - -```python -value: models.TaxIDFormat = /* values here */ -``` - diff --git a/docs/models/genericpayment.md b/docs/models/genericpayment.md index 7ade2277..7bf62579 100644 --- a/docs/models/genericpayment.md +++ b/docs/models/genericpayment.md @@ -16,7 +16,7 @@ Schema of a payment with a generic payment method. | `currency` | *str* | :heavy_check_mark: | The payment currency. Currently, only `usd` is supported. | usd | | `method` | *str* | :heavy_check_mark: | The payment method used. | card | | `decline_reason` | *Nullable[str]* | :heavy_check_mark: | Error code, if the payment was declined. | insufficient_funds | -| `decline_message` | *Nullable[str]* | :heavy_check_mark: | Human-reasable error message, if the payment was declined. | Your card has insufficient funds. | +| `decline_message` | *Nullable[str]* | :heavy_check_mark: | Human-readable error message, if the payment was declined. | Your card has insufficient funds. | | `organization_id` | *str* | :heavy_check_mark: | The ID of the organization that owns the payment. | 1dbfc517-0bbf-4301-9ba8-555ca42b9737 | | `checkout_id` | *Nullable[str]* | :heavy_check_mark: | The ID of the checkout session associated with this payment. | e4b478fa-cd25-4253-9f1f-8a41e6370ede | | `order_id` | *Nullable[str]* | :heavy_check_mark: | The ID of the order associated with this payment. | e4b478fa-cd25-4253-9f1f-8a41e6370ede | diff --git a/docs/models/licensekeycustomer.md b/docs/models/licensekeycustomer.md index 092c4eeb..4792fef1 100644 --- a/docs/models/licensekeycustomer.md +++ b/docs/models/licensekeycustomer.md @@ -9,7 +9,7 @@ | `created_at` | [date](https://docs.python.org/3/library/datetime.html#date-objects) | :heavy_check_mark: | Creation timestamp of the object. | | | `modified_at` | [date](https://docs.python.org/3/library/datetime.html#date-objects) | :heavy_check_mark: | Last modification timestamp of the object. | | | `metadata` | Dict[str, [models.MetadataOutputType](../models/metadataoutputtype.md)] | :heavy_check_mark: | N/A | | -| `external_id` | *Nullable[str]* | :heavy_check_mark: | The ID of the customer in your system. This must be unique within the organization. Once set, it can't be updated. | usr_1337 | +| `external_id` | *OptionalNullable[str]* | :heavy_minus_sign: | The ID of the customer in your system. This must be unique within the organization. Once set, it can't be updated. | usr_1337 | | `email` | *str* | :heavy_check_mark: | The email address of the customer. This must be unique within the organization. | customer@example.com | | `email_verified` | *bool* | :heavy_check_mark: | Whether the customer email address is verified. The address is automatically verified when the customer accesses the customer portal using their email address. | true | | `type` | [OptionalNullable[models.CustomerType]](../models/customertype.md) | :heavy_minus_sign: | The type of customer: 'individual' for single users, 'team' for customers with multiple members. Legacy customers may have NULL type which is treated as 'individual'. | individual | diff --git a/docs/models/listresourcecustomer.md b/docs/models/listresourcecustomer.md new file mode 100644 index 00000000..63758332 --- /dev/null +++ b/docs/models/listresourcecustomer.md @@ -0,0 +1,9 @@ +# ListResourceCustomer + + +## Fields + +| Field | Type | Required | Description | +| ---------------------------------------------- | ---------------------------------------------- | ---------------------------------------------- | ---------------------------------------------- | +| `items` | List[[models.Customer](../models/customer.md)] | :heavy_check_mark: | N/A | +| `pagination` | [models.Pagination](../models/pagination.md) | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/docs/models/listresourcecustomerwithmembers.md b/docs/models/listresourcecustomerwithmembers.md deleted file mode 100644 index dcb97966..00000000 --- a/docs/models/listresourcecustomerwithmembers.md +++ /dev/null @@ -1,9 +0,0 @@ -# ListResourceCustomerWithMembers - - -## Fields - -| Field | Type | Required | Description | -| -------------------------------------------------------------------- | -------------------------------------------------------------------- | -------------------------------------------------------------------- | -------------------------------------------------------------------- | -| `items` | List[[models.CustomerWithMembers](../models/customerwithmembers.md)] | :heavy_check_mark: | N/A | -| `pagination` | [models.Pagination](../models/pagination.md) | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/docs/models/ordercustomer.md b/docs/models/ordercustomer.md index a485e316..72e98fec 100644 --- a/docs/models/ordercustomer.md +++ b/docs/models/ordercustomer.md @@ -9,7 +9,7 @@ | `created_at` | [date](https://docs.python.org/3/library/datetime.html#date-objects) | :heavy_check_mark: | Creation timestamp of the object. | | | `modified_at` | [date](https://docs.python.org/3/library/datetime.html#date-objects) | :heavy_check_mark: | Last modification timestamp of the object. | | | `metadata` | Dict[str, [models.MetadataOutputType](../models/metadataoutputtype.md)] | :heavy_check_mark: | N/A | | -| `external_id` | *Nullable[str]* | :heavy_check_mark: | The ID of the customer in your system. This must be unique within the organization. Once set, it can't be updated. | usr_1337 | +| `external_id` | *OptionalNullable[str]* | :heavy_minus_sign: | The ID of the customer in your system. This must be unique within the organization. Once set, it can't be updated. | usr_1337 | | `email` | *str* | :heavy_check_mark: | The email address of the customer. This must be unique within the organization. | customer@example.com | | `email_verified` | *bool* | :heavy_check_mark: | Whether the customer email address is verified. The address is automatically verified when the customer accesses the customer portal using their email address. | true | | `type` | [OptionalNullable[models.CustomerType]](../models/customertype.md) | :heavy_minus_sign: | The type of customer: 'individual' for single users, 'team' for customers with multiple members. Legacy customers may have NULL type which is treated as 'individual'. | individual | diff --git a/docs/models/organizationfeaturesettings.md b/docs/models/organizationfeaturesettings.md index c890e36d..9e6e7f9c 100644 --- a/docs/models/organizationfeaturesettings.md +++ b/docs/models/organizationfeaturesettings.md @@ -3,14 +3,13 @@ ## Fields -| Field | Type | Required | Description | -| ---------------------------------------------------------------- | ---------------------------------------------------------------- | ---------------------------------------------------------------- | ---------------------------------------------------------------- | -| `issue_funding_enabled` | *Optional[bool]* | :heavy_minus_sign: | If this organization has issue funding enabled | -| `seat_based_pricing_enabled` | *Optional[bool]* | :heavy_minus_sign: | If this organization has seat-based pricing enabled | -| `revops_enabled` | *Optional[bool]* | :heavy_minus_sign: | If this organization has RevOps enabled | -| `wallets_enabled` | *Optional[bool]* | :heavy_minus_sign: | If this organization has Wallets enabled | -| `member_model_enabled` | *Optional[bool]* | :heavy_minus_sign: | If this organization has the Member model enabled | -| `tinybird_read` | *Optional[bool]* | :heavy_minus_sign: | If this organization reads from Tinybird | -| `tinybird_compare` | *Optional[bool]* | :heavy_minus_sign: | If this organization compares Tinybird results with database | -| `presentment_currencies_enabled` | *Optional[bool]* | :heavy_minus_sign: | If this organization has multiple presentment currencies enabled | -| `checkout_localization_enabled` | *Optional[bool]* | :heavy_minus_sign: | If this organization has checkout localization enabled | \ No newline at end of file +| Field | Type | Required | Description | +| ------------------------------------------------------------ | ------------------------------------------------------------ | ------------------------------------------------------------ | ------------------------------------------------------------ | +| `issue_funding_enabled` | *Optional[bool]* | :heavy_minus_sign: | If this organization has issue funding enabled | +| `seat_based_pricing_enabled` | *Optional[bool]* | :heavy_minus_sign: | If this organization has seat-based pricing enabled | +| `revops_enabled` | *Optional[bool]* | :heavy_minus_sign: | If this organization has RevOps enabled | +| `wallets_enabled` | *Optional[bool]* | :heavy_minus_sign: | If this organization has Wallets enabled | +| `member_model_enabled` | *Optional[bool]* | :heavy_minus_sign: | If this organization has the Member model enabled | +| `tinybird_read` | *Optional[bool]* | :heavy_minus_sign: | If this organization reads from Tinybird | +| `tinybird_compare` | *Optional[bool]* | :heavy_minus_sign: | If this organization compares Tinybird results with database | +| `checkout_localization_enabled` | *Optional[bool]* | :heavy_minus_sign: | If this organization has checkout localization enabled | \ No newline at end of file diff --git a/docs/models/organizationsocialplatforms.md b/docs/models/organizationsocialplatforms.md index 3156a218..7e2a06a9 100644 --- a/docs/models/organizationsocialplatforms.md +++ b/docs/models/organizationsocialplatforms.md @@ -12,4 +12,6 @@ | `YOUTUBE` | youtube | | `TIKTOK` | tiktok | | `LINKEDIN` | linkedin | +| `THREADS` | threads | +| `DISCORD` | discord | | `OTHER` | other | \ No newline at end of file diff --git a/docs/models/properties.md b/docs/models/properties.md index f4908a41..75c0e12d 100644 --- a/docs/models/properties.md +++ b/docs/models/properties.md @@ -33,3 +33,9 @@ value: models.BenefitGrantLicenseKeysProperties = /* values here */ value: models.BenefitGrantCustomProperties = /* values here */ ``` +### `models.BenefitGrantFeatureFlagProperties` + +```python +value: models.BenefitGrantFeatureFlagProperties = /* values here */ +``` + diff --git a/docs/models/subscriptioncustomer.md b/docs/models/subscriptioncustomer.md index 69744ef9..892fb1b7 100644 --- a/docs/models/subscriptioncustomer.md +++ b/docs/models/subscriptioncustomer.md @@ -9,7 +9,7 @@ | `created_at` | [date](https://docs.python.org/3/library/datetime.html#date-objects) | :heavy_check_mark: | Creation timestamp of the object. | | | `modified_at` | [date](https://docs.python.org/3/library/datetime.html#date-objects) | :heavy_check_mark: | Last modification timestamp of the object. | | | `metadata` | Dict[str, [models.MetadataOutputType](../models/metadataoutputtype.md)] | :heavy_check_mark: | N/A | | -| `external_id` | *Nullable[str]* | :heavy_check_mark: | The ID of the customer in your system. This must be unique within the organization. Once set, it can't be updated. | usr_1337 | +| `external_id` | *OptionalNullable[str]* | :heavy_minus_sign: | The ID of the customer in your system. This must be unique within the organization. Once set, it can't be updated. | usr_1337 | | `email` | *str* | :heavy_check_mark: | The email address of the customer. This must be unique within the organization. | customer@example.com | | `email_verified` | *bool* | :heavy_check_mark: | Whether the customer email address is verified. The address is automatically verified when the customer accesses the customer portal using their email address. | true | | `type` | [OptionalNullable[models.CustomerType]](../models/customertype.md) | :heavy_minus_sign: | The type of customer: 'individual' for single users, 'team' for customers with multiple members. Legacy customers may have NULL type which is treated as 'individual'. | individual | diff --git a/docs/models/webhookendpoint.md b/docs/models/webhookendpoint.md index 76d63c9b..67ed88ed 100644 --- a/docs/models/webhookendpoint.md +++ b/docs/models/webhookendpoint.md @@ -5,14 +5,15 @@ A webhook endpoint. ## Fields -| Field | Type | Required | Description | Example | -| -------------------------------------------------------------------- | -------------------------------------------------------------------- | -------------------------------------------------------------------- | -------------------------------------------------------------------- | -------------------------------------------------------------------- | -| `created_at` | [date](https://docs.python.org/3/library/datetime.html#date-objects) | :heavy_check_mark: | Creation timestamp of the object. | | -| `modified_at` | [date](https://docs.python.org/3/library/datetime.html#date-objects) | :heavy_check_mark: | Last modification timestamp of the object. | | -| `id` | *str* | :heavy_check_mark: | The ID of the object. | | -| `url` | *str* | :heavy_check_mark: | The URL where the webhook events will be sent. | https://webhook.site/cb791d80-f26e-4f8c-be88-6e56054192b0 | -| `format_` | [models.WebhookFormat](../models/webhookformat.md) | :heavy_check_mark: | N/A | | -| `secret` | *str* | :heavy_check_mark: | The secret used to sign the webhook events. | polar_whs_ovyN6cPrTv56AApvzCaJno08SSmGJmgbWilb33N2JuK | -| `organization_id` | *str* | :heavy_check_mark: | The organization ID associated with the webhook endpoint. | | -| `events` | List[[models.WebhookEventType](../models/webhookeventtype.md)] | :heavy_check_mark: | The events that will trigger the webhook. | | -| `enabled` | *bool* | :heavy_check_mark: | Whether the webhook endpoint is enabled and will receive events. | | \ No newline at end of file +| Field | Type | Required | Description | Example | +| --------------------------------------------------------------------------- | --------------------------------------------------------------------------- | --------------------------------------------------------------------------- | --------------------------------------------------------------------------- | --------------------------------------------------------------------------- | +| `created_at` | [date](https://docs.python.org/3/library/datetime.html#date-objects) | :heavy_check_mark: | Creation timestamp of the object. | | +| `modified_at` | [date](https://docs.python.org/3/library/datetime.html#date-objects) | :heavy_check_mark: | Last modification timestamp of the object. | | +| `id` | *str* | :heavy_check_mark: | The ID of the object. | | +| `url` | *str* | :heavy_check_mark: | The URL where the webhook events will be sent. | https://webhook.site/cb791d80-f26e-4f8c-be88-6e56054192b0 | +| `name` | *OptionalNullable[str]* | :heavy_minus_sign: | An optional name for the webhook endpoint to help organize and identify it. | | +| `format_` | [models.WebhookFormat](../models/webhookformat.md) | :heavy_check_mark: | N/A | | +| `secret` | *str* | :heavy_check_mark: | The secret used to sign the webhook events. | polar_whs_ovyN6cPrTv56AApvzCaJno08SSmGJmgbWilb33N2JuK | +| `organization_id` | *str* | :heavy_check_mark: | The organization ID associated with the webhook endpoint. | | +| `events` | List[[models.WebhookEventType](../models/webhookeventtype.md)] | :heavy_check_mark: | The events that will trigger the webhook. | | +| `enabled` | *bool* | :heavy_check_mark: | Whether the webhook endpoint is enabled and will receive events. | | \ No newline at end of file diff --git a/docs/models/webhookendpointcreate.md b/docs/models/webhookendpointcreate.md index 99c1cf18..760f18ab 100644 --- a/docs/models/webhookendpointcreate.md +++ b/docs/models/webhookendpointcreate.md @@ -8,6 +8,7 @@ Schema to create a webhook endpoint. | Field | Type | Required | Description | Example | | ------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------ | | `url` | *str* | :heavy_check_mark: | The URL where the webhook events will be sent. | https://webhook.site/cb791d80-f26e-4f8c-be88-6e56054192b0 | +| `name` | *OptionalNullable[str]* | :heavy_minus_sign: | An optional name for the webhook endpoint to help organize and identify it. | | | `format_` | [models.WebhookFormat](../models/webhookformat.md) | :heavy_check_mark: | N/A | | | `events` | List[[models.WebhookEventType](../models/webhookeventtype.md)] | :heavy_check_mark: | The events that will trigger the webhook. | | | `organization_id` | *OptionalNullable[str]* | :heavy_minus_sign: | The organization ID associated with the webhook endpoint. **Required unless you use an organization token.** | 1dbfc517-0bbf-4301-9ba8-555ca42b9737 | \ No newline at end of file diff --git a/docs/models/webhookendpointupdate.md b/docs/models/webhookendpointupdate.md index bfff33ce..6a143251 100644 --- a/docs/models/webhookendpointupdate.md +++ b/docs/models/webhookendpointupdate.md @@ -5,9 +5,10 @@ Schema to update a webhook endpoint. ## Fields -| Field | Type | Required | Description | Example | -| -------------------------------------------------------------------- | -------------------------------------------------------------------- | -------------------------------------------------------------------- | -------------------------------------------------------------------- | -------------------------------------------------------------------- | -| `url` | *OptionalNullable[str]* | :heavy_minus_sign: | N/A | https://webhook.site/cb791d80-f26e-4f8c-be88-6e56054192b0 | -| `format_` | [OptionalNullable[models.WebhookFormat]](../models/webhookformat.md) | :heavy_minus_sign: | N/A | | -| `events` | List[[models.WebhookEventType](../models/webhookeventtype.md)] | :heavy_minus_sign: | N/A | | -| `enabled` | *OptionalNullable[bool]* | :heavy_minus_sign: | Whether the webhook endpoint is enabled. | | \ No newline at end of file +| Field | Type | Required | Description | Example | +| --------------------------------------------------------------------------- | --------------------------------------------------------------------------- | --------------------------------------------------------------------------- | --------------------------------------------------------------------------- | --------------------------------------------------------------------------- | +| `url` | *OptionalNullable[str]* | :heavy_minus_sign: | N/A | https://webhook.site/cb791d80-f26e-4f8c-be88-6e56054192b0 | +| `name` | *OptionalNullable[str]* | :heavy_minus_sign: | An optional name for the webhook endpoint to help organize and identify it. | | +| `format_` | [OptionalNullable[models.WebhookFormat]](../models/webhookformat.md) | :heavy_minus_sign: | N/A | | +| `events` | List[[models.WebhookEventType](../models/webhookeventtype.md)] | :heavy_minus_sign: | N/A | | +| `enabled` | *OptionalNullable[bool]* | :heavy_minus_sign: | Whether the webhook endpoint is enabled. | | \ No newline at end of file diff --git a/docs/sdks/customers/README.md b/docs/sdks/customers/README.md index 7ade602b..11b2c772 100644 --- a/docs/sdks/customers/README.md +++ b/docs/sdks/customers/README.md @@ -120,7 +120,7 @@ with Polar( ### Response -**[models.CustomerWithMembers](../../models/customerwithmembers.md)** +**[models.Customer](../../models/customer.md)** ### Errors @@ -204,7 +204,7 @@ with Polar( ### Response -**[models.CustomerWithMembers](../../models/customerwithmembers.md)** +**[models.Customer](../../models/customer.md)** ### Errors @@ -262,7 +262,7 @@ with Polar( ### Response -**[models.CustomerWithMembers](../../models/customerwithmembers.md)** +**[models.Customer](../../models/customer.md)** ### Errors @@ -358,7 +358,7 @@ with Polar( ### Response -**[models.CustomerWithMembers](../../models/customerwithmembers.md)** +**[models.Customer](../../models/customer.md)** ### Errors @@ -411,7 +411,7 @@ with Polar( ### Response -**[models.CustomerWithMembers](../../models/customerwithmembers.md)** +**[models.Customer](../../models/customer.md)** ### Errors diff --git a/pyproject.toml b/pyproject.toml index 758681b1..7564d5bc 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,7 +1,7 @@ [project] name = "polar-sdk" -version = "0.29.0" +version = "0.29.1" description = "Polar SDK for Python" authors = [{ name = "Polar" },] readme = "README-PYPI.md" diff --git a/src/polar_sdk/_version.py b/src/polar_sdk/_version.py index 127298d8..cd0a0594 100644 --- a/src/polar_sdk/_version.py +++ b/src/polar_sdk/_version.py @@ -3,10 +3,10 @@ import importlib.metadata __title__: str = "polar-sdk" -__version__: str = "0.29.0" +__version__: str = "0.29.1" __openapi_doc_version__: str = "0.1.0" __gen_version__: str = "2.737.0" -__user_agent__: str = "speakeasy-sdk/python 0.29.0 2.737.0 0.1.0 polar-sdk" +__user_agent__: str = "speakeasy-sdk/python 0.29.1 2.737.0 0.1.0 polar-sdk" try: if __package__ is not None: diff --git a/src/polar_sdk/customers.py b/src/polar_sdk/customers.py index 605fa268..71fc9a9f 100644 --- a/src/polar_sdk/customers.py +++ b/src/polar_sdk/customers.py @@ -148,9 +148,7 @@ def next_func() -> Optional[models.CustomersListResponse]: response_data: Any = None if utils.match_response(http_res, "200", "application/json"): return models.CustomersListResponse( - result=unmarshal_json_response( - models.ListResourceCustomerWithMembers, http_res - ), + result=unmarshal_json_response(models.ListResourceCustomer, http_res), next=next_func, ) if utils.match_response(http_res, "422", "application/json"): @@ -299,9 +297,7 @@ def next_func() -> Optional[models.CustomersListResponse]: response_data: Any = None if utils.match_response(http_res, "200", "application/json"): return models.CustomersListResponse( - result=unmarshal_json_response( - models.ListResourceCustomerWithMembers, http_res - ), + result=unmarshal_json_response(models.ListResourceCustomer, http_res), next=next_func, ) if utils.match_response(http_res, "422", "application/json"): @@ -326,7 +322,7 @@ def create( server_url: Optional[str] = None, timeout_ms: Optional[int] = None, http_headers: Optional[Mapping[str, str]] = None, - ) -> models.CustomerWithMembers: + ) -> models.Customer: r"""Create Customer Create a customer. @@ -395,7 +391,7 @@ def create( response_data: Any = None if utils.match_response(http_res, "201", "application/json"): - return unmarshal_json_response(models.CustomerWithMembers, http_res) + return unmarshal_json_response(models.Customer, http_res) if utils.match_response(http_res, "422", "application/json"): response_data = unmarshal_json_response( models.HTTPValidationErrorData, http_res @@ -418,7 +414,7 @@ async def create_async( server_url: Optional[str] = None, timeout_ms: Optional[int] = None, http_headers: Optional[Mapping[str, str]] = None, - ) -> models.CustomerWithMembers: + ) -> models.Customer: r"""Create Customer Create a customer. @@ -487,7 +483,7 @@ async def create_async( response_data: Any = None if utils.match_response(http_res, "201", "application/json"): - return unmarshal_json_response(models.CustomerWithMembers, http_res) + return unmarshal_json_response(models.Customer, http_res) if utils.match_response(http_res, "422", "application/json"): response_data = unmarshal_json_response( models.HTTPValidationErrorData, http_res @@ -710,7 +706,7 @@ def get( server_url: Optional[str] = None, timeout_ms: Optional[int] = None, http_headers: Optional[Mapping[str, str]] = None, - ) -> models.CustomerWithMembers: + ) -> models.Customer: r"""Get Customer Get a customer by ID. @@ -776,7 +772,7 @@ def get( response_data: Any = None if utils.match_response(http_res, "200", "application/json"): - return unmarshal_json_response(models.CustomerWithMembers, http_res) + return unmarshal_json_response(models.Customer, http_res) if utils.match_response(http_res, "404", "application/json"): response_data = unmarshal_json_response( models.ResourceNotFoundData, http_res @@ -804,7 +800,7 @@ async def get_async( server_url: Optional[str] = None, timeout_ms: Optional[int] = None, http_headers: Optional[Mapping[str, str]] = None, - ) -> models.CustomerWithMembers: + ) -> models.Customer: r"""Get Customer Get a customer by ID. @@ -870,7 +866,7 @@ async def get_async( response_data: Any = None if utils.match_response(http_res, "200", "application/json"): - return unmarshal_json_response(models.CustomerWithMembers, http_res) + return unmarshal_json_response(models.Customer, http_res) if utils.match_response(http_res, "404", "application/json"): response_data = unmarshal_json_response( models.ResourceNotFoundData, http_res @@ -899,7 +895,7 @@ def update( server_url: Optional[str] = None, timeout_ms: Optional[int] = None, http_headers: Optional[Mapping[str, str]] = None, - ) -> models.CustomerWithMembers: + ) -> models.Customer: r"""Update Customer Update a customer. @@ -972,7 +968,7 @@ def update( response_data: Any = None if utils.match_response(http_res, "200", "application/json"): - return unmarshal_json_response(models.CustomerWithMembers, http_res) + return unmarshal_json_response(models.Customer, http_res) if utils.match_response(http_res, "404", "application/json"): response_data = unmarshal_json_response( models.ResourceNotFoundData, http_res @@ -1001,7 +997,7 @@ async def update_async( server_url: Optional[str] = None, timeout_ms: Optional[int] = None, http_headers: Optional[Mapping[str, str]] = None, - ) -> models.CustomerWithMembers: + ) -> models.Customer: r"""Update Customer Update a customer. @@ -1074,7 +1070,7 @@ async def update_async( response_data: Any = None if utils.match_response(http_res, "200", "application/json"): - return unmarshal_json_response(models.CustomerWithMembers, http_res) + return unmarshal_json_response(models.Customer, http_res) if utils.match_response(http_res, "404", "application/json"): response_data = unmarshal_json_response( models.ResourceNotFoundData, http_res @@ -1324,7 +1320,7 @@ def get_external( server_url: Optional[str] = None, timeout_ms: Optional[int] = None, http_headers: Optional[Mapping[str, str]] = None, - ) -> models.CustomerWithMembers: + ) -> models.Customer: r"""Get Customer by External ID Get a customer by external ID. @@ -1390,7 +1386,7 @@ def get_external( response_data: Any = None if utils.match_response(http_res, "200", "application/json"): - return unmarshal_json_response(models.CustomerWithMembers, http_res) + return unmarshal_json_response(models.Customer, http_res) if utils.match_response(http_res, "404", "application/json"): response_data = unmarshal_json_response( models.ResourceNotFoundData, http_res @@ -1418,7 +1414,7 @@ async def get_external_async( server_url: Optional[str] = None, timeout_ms: Optional[int] = None, http_headers: Optional[Mapping[str, str]] = None, - ) -> models.CustomerWithMembers: + ) -> models.Customer: r"""Get Customer by External ID Get a customer by external ID. @@ -1484,7 +1480,7 @@ async def get_external_async( response_data: Any = None if utils.match_response(http_res, "200", "application/json"): - return unmarshal_json_response(models.CustomerWithMembers, http_res) + return unmarshal_json_response(models.Customer, http_res) if utils.match_response(http_res, "404", "application/json"): response_data = unmarshal_json_response( models.ResourceNotFoundData, http_res @@ -1515,7 +1511,7 @@ def update_external( server_url: Optional[str] = None, timeout_ms: Optional[int] = None, http_headers: Optional[Mapping[str, str]] = None, - ) -> models.CustomerWithMembers: + ) -> models.Customer: r"""Update Customer by External ID Update a customer by external ID. @@ -1592,7 +1588,7 @@ def update_external( response_data: Any = None if utils.match_response(http_res, "200", "application/json"): - return unmarshal_json_response(models.CustomerWithMembers, http_res) + return unmarshal_json_response(models.Customer, http_res) if utils.match_response(http_res, "404", "application/json"): response_data = unmarshal_json_response( models.ResourceNotFoundData, http_res @@ -1623,7 +1619,7 @@ async def update_external_async( server_url: Optional[str] = None, timeout_ms: Optional[int] = None, http_headers: Optional[Mapping[str, str]] = None, - ) -> models.CustomerWithMembers: + ) -> models.Customer: r"""Update Customer by External ID Update a customer by external ID. @@ -1700,7 +1696,7 @@ async def update_external_async( response_data: Any = None if utils.match_response(http_res, "200", "application/json"): - return unmarshal_json_response(models.CustomerWithMembers, http_res) + return unmarshal_json_response(models.Customer, http_res) if utils.match_response(http_res, "404", "application/json"): response_data = unmarshal_json_response( models.ResourceNotFoundData, http_res diff --git a/src/polar_sdk/models/__init__.py b/src/polar_sdk/models/__init__.py index ea2ecea8..5f7c7484 100644 --- a/src/polar_sdk/models/__init__.py +++ b/src/polar_sdk/models/__init__.py @@ -179,6 +179,35 @@ BenefitDownloadablesUpdateMetadataTypedDict, BenefitDownloadablesUpdateTypedDict, ) + from .benefitfeatureflag import BenefitFeatureFlag, BenefitFeatureFlagTypedDict + from .benefitfeatureflagcreate import ( + BenefitFeatureFlagCreate, + BenefitFeatureFlagCreateMetadata, + BenefitFeatureFlagCreateMetadataTypedDict, + BenefitFeatureFlagCreateTypedDict, + ) + from .benefitfeatureflagcreateproperties import ( + BenefitFeatureFlagCreateProperties, + BenefitFeatureFlagCreatePropertiesTypedDict, + ) + from .benefitfeatureflagproperties import ( + BenefitFeatureFlagProperties, + BenefitFeatureFlagPropertiesTypedDict, + ) + from .benefitfeatureflagsubscriber import ( + BenefitFeatureFlagSubscriber, + BenefitFeatureFlagSubscriberTypedDict, + ) + from .benefitfeatureflagsubscriberproperties import ( + BenefitFeatureFlagSubscriberProperties, + BenefitFeatureFlagSubscriberPropertiesTypedDict, + ) + from .benefitfeatureflagupdate import ( + BenefitFeatureFlagUpdate, + BenefitFeatureFlagUpdateMetadata, + BenefitFeatureFlagUpdateMetadataTypedDict, + BenefitFeatureFlagUpdateTypedDict, + ) from .benefitgithubrepository import ( BenefitGitHubRepository, BenefitGitHubRepositoryTypedDict, @@ -245,6 +274,14 @@ ) from .benefitgrantedevent import BenefitGrantedEvent, BenefitGrantedEventTypedDict from .benefitgranterror import BenefitGrantError, BenefitGrantErrorTypedDict + from .benefitgrantfeatureflagproperties import ( + BenefitGrantFeatureFlagProperties, + BenefitGrantFeatureFlagPropertiesTypedDict, + ) + from .benefitgrantfeatureflagwebhook import ( + BenefitGrantFeatureFlagWebhook, + BenefitGrantFeatureFlagWebhookTypedDict, + ) from .benefitgrantgithubrepositoryproperties import ( BenefitGrantGitHubRepositoryProperties, BenefitGrantGitHubRepositoryPropertiesPermission, @@ -939,6 +976,14 @@ CustomerBenefitGrantDownloadablesUpdate, CustomerBenefitGrantDownloadablesUpdateTypedDict, ) + from .customerbenefitgrantfeatureflag import ( + CustomerBenefitGrantFeatureFlag, + CustomerBenefitGrantFeatureFlagTypedDict, + ) + from .customerbenefitgrantfeatureflagupdate import ( + CustomerBenefitGrantFeatureFlagUpdate, + CustomerBenefitGrantFeatureFlagUpdateTypedDict, + ) from .customerbenefitgrantgithubrepository import ( CustomerBenefitGrantGitHubRepository, CustomerBenefitGrantGitHubRepositoryTypedDict, @@ -1264,12 +1309,6 @@ ) from .customerwallet import CustomerWallet, CustomerWalletTypedDict from .customerwalletsortproperty import CustomerWalletSortProperty - from .customerwithmembers import ( - CustomerWithMembers, - CustomerWithMembersTaxID, - CustomerWithMembersTaxIDTypedDict, - CustomerWithMembersTypedDict, - ) from .customfield import CustomField, CustomFieldTypedDict from .customfieldcheckbox import CustomFieldCheckbox, CustomFieldCheckboxTypedDict from .customfieldcheckboxproperties import ( @@ -1675,6 +1714,10 @@ ListResourceCheckoutLink, ListResourceCheckoutLinkTypedDict, ) + from .listresource_customer_ import ( + ListResourceCustomer, + ListResourceCustomerTypedDict, + ) from .listresource_customerbenefitgrant_ import ( ListResourceCustomerBenefitGrant, ListResourceCustomerBenefitGrantTypedDict, @@ -1707,10 +1750,6 @@ ListResourceCustomerWallet, ListResourceCustomerWalletTypedDict, ) - from .listresource_customerwithmembers_ import ( - ListResourceCustomerWithMembers, - ListResourceCustomerWithMembersTypedDict, - ) from .listresource_customfield_ import ( ListResourceCustomField, ListResourceCustomFieldTypedDict, @@ -3015,6 +3054,24 @@ "BenefitDownloadablesUpdateMetadata", "BenefitDownloadablesUpdateMetadataTypedDict", "BenefitDownloadablesUpdateTypedDict", + "BenefitFeatureFlag", + "BenefitFeatureFlagCreate", + "BenefitFeatureFlagCreateMetadata", + "BenefitFeatureFlagCreateMetadataTypedDict", + "BenefitFeatureFlagCreateProperties", + "BenefitFeatureFlagCreatePropertiesTypedDict", + "BenefitFeatureFlagCreateTypedDict", + "BenefitFeatureFlagProperties", + "BenefitFeatureFlagPropertiesTypedDict", + "BenefitFeatureFlagSubscriber", + "BenefitFeatureFlagSubscriberProperties", + "BenefitFeatureFlagSubscriberPropertiesTypedDict", + "BenefitFeatureFlagSubscriberTypedDict", + "BenefitFeatureFlagTypedDict", + "BenefitFeatureFlagUpdate", + "BenefitFeatureFlagUpdateMetadata", + "BenefitFeatureFlagUpdateMetadataTypedDict", + "BenefitFeatureFlagUpdateTypedDict", "BenefitGitHubRepository", "BenefitGitHubRepositoryCreate", "BenefitGitHubRepositoryCreateMetadata", @@ -3049,6 +3106,10 @@ "BenefitGrantDownloadablesWebhookTypedDict", "BenefitGrantError", "BenefitGrantErrorTypedDict", + "BenefitGrantFeatureFlagProperties", + "BenefitGrantFeatureFlagPropertiesTypedDict", + "BenefitGrantFeatureFlagWebhook", + "BenefitGrantFeatureFlagWebhookTypedDict", "BenefitGrantGitHubRepositoryProperties", "BenefitGrantGitHubRepositoryPropertiesPermission", "BenefitGrantGitHubRepositoryPropertiesTypedDict", @@ -3453,6 +3514,10 @@ "CustomerBenefitGrantDownloadablesTypedDict", "CustomerBenefitGrantDownloadablesUpdate", "CustomerBenefitGrantDownloadablesUpdateTypedDict", + "CustomerBenefitGrantFeatureFlag", + "CustomerBenefitGrantFeatureFlagTypedDict", + "CustomerBenefitGrantFeatureFlagUpdate", + "CustomerBenefitGrantFeatureFlagUpdateTypedDict", "CustomerBenefitGrantGitHubRepository", "CustomerBenefitGrantGitHubRepositoryPropertiesUpdate", "CustomerBenefitGrantGitHubRepositoryPropertiesUpdateTypedDict", @@ -3826,10 +3891,6 @@ "CustomerWallet", "CustomerWalletSortProperty", "CustomerWalletTypedDict", - "CustomerWithMembers", - "CustomerWithMembersTaxID", - "CustomerWithMembersTaxIDTypedDict", - "CustomerWithMembersTypedDict", "CustomersDeleteExternalRequest", "CustomersDeleteExternalRequestTypedDict", "CustomersDeleteRequest", @@ -4122,6 +4183,7 @@ "ListResourceCheckoutTypedDict", "ListResourceCustomField", "ListResourceCustomFieldTypedDict", + "ListResourceCustomer", "ListResourceCustomerBenefitGrant", "ListResourceCustomerBenefitGrantTypedDict", "ListResourceCustomerCustomerMeter", @@ -4136,10 +4198,9 @@ "ListResourceCustomerPortalMemberTypedDict", "ListResourceCustomerSubscription", "ListResourceCustomerSubscriptionTypedDict", + "ListResourceCustomerTypedDict", "ListResourceCustomerWallet", "ListResourceCustomerWalletTypedDict", - "ListResourceCustomerWithMembers", - "ListResourceCustomerWithMembersTypedDict", "ListResourceDiscount", "ListResourceDiscountTypedDict", "ListResourceDispute", @@ -5132,6 +5193,24 @@ "BenefitDownloadablesUpdateMetadata": ".benefitdownloadablesupdate", "BenefitDownloadablesUpdateMetadataTypedDict": ".benefitdownloadablesupdate", "BenefitDownloadablesUpdateTypedDict": ".benefitdownloadablesupdate", + "BenefitFeatureFlag": ".benefitfeatureflag", + "BenefitFeatureFlagTypedDict": ".benefitfeatureflag", + "BenefitFeatureFlagCreate": ".benefitfeatureflagcreate", + "BenefitFeatureFlagCreateMetadata": ".benefitfeatureflagcreate", + "BenefitFeatureFlagCreateMetadataTypedDict": ".benefitfeatureflagcreate", + "BenefitFeatureFlagCreateTypedDict": ".benefitfeatureflagcreate", + "BenefitFeatureFlagCreateProperties": ".benefitfeatureflagcreateproperties", + "BenefitFeatureFlagCreatePropertiesTypedDict": ".benefitfeatureflagcreateproperties", + "BenefitFeatureFlagProperties": ".benefitfeatureflagproperties", + "BenefitFeatureFlagPropertiesTypedDict": ".benefitfeatureflagproperties", + "BenefitFeatureFlagSubscriber": ".benefitfeatureflagsubscriber", + "BenefitFeatureFlagSubscriberTypedDict": ".benefitfeatureflagsubscriber", + "BenefitFeatureFlagSubscriberProperties": ".benefitfeatureflagsubscriberproperties", + "BenefitFeatureFlagSubscriberPropertiesTypedDict": ".benefitfeatureflagsubscriberproperties", + "BenefitFeatureFlagUpdate": ".benefitfeatureflagupdate", + "BenefitFeatureFlagUpdateMetadata": ".benefitfeatureflagupdate", + "BenefitFeatureFlagUpdateMetadataTypedDict": ".benefitfeatureflagupdate", + "BenefitFeatureFlagUpdateTypedDict": ".benefitfeatureflagupdate", "BenefitGitHubRepository": ".benefitgithubrepository", "BenefitGitHubRepositoryTypedDict": ".benefitgithubrepository", "BenefitGitHubRepositoryCreate": ".benefitgithubrepositorycreate", @@ -5172,6 +5251,10 @@ "BenefitGrantedEventTypedDict": ".benefitgrantedevent", "BenefitGrantError": ".benefitgranterror", "BenefitGrantErrorTypedDict": ".benefitgranterror", + "BenefitGrantFeatureFlagProperties": ".benefitgrantfeatureflagproperties", + "BenefitGrantFeatureFlagPropertiesTypedDict": ".benefitgrantfeatureflagproperties", + "BenefitGrantFeatureFlagWebhook": ".benefitgrantfeatureflagwebhook", + "BenefitGrantFeatureFlagWebhookTypedDict": ".benefitgrantfeatureflagwebhook", "BenefitGrantGitHubRepositoryProperties": ".benefitgrantgithubrepositoryproperties", "BenefitGrantGitHubRepositoryPropertiesPermission": ".benefitgrantgithubrepositoryproperties", "BenefitGrantGitHubRepositoryPropertiesTypedDict": ".benefitgrantgithubrepositoryproperties", @@ -5649,6 +5732,10 @@ "CustomerBenefitGrantDownloadablesTypedDict": ".customerbenefitgrantdownloadables", "CustomerBenefitGrantDownloadablesUpdate": ".customerbenefitgrantdownloadablesupdate", "CustomerBenefitGrantDownloadablesUpdateTypedDict": ".customerbenefitgrantdownloadablesupdate", + "CustomerBenefitGrantFeatureFlag": ".customerbenefitgrantfeatureflag", + "CustomerBenefitGrantFeatureFlagTypedDict": ".customerbenefitgrantfeatureflag", + "CustomerBenefitGrantFeatureFlagUpdate": ".customerbenefitgrantfeatureflagupdate", + "CustomerBenefitGrantFeatureFlagUpdateTypedDict": ".customerbenefitgrantfeatureflagupdate", "CustomerBenefitGrantGitHubRepository": ".customerbenefitgrantgithubrepository", "CustomerBenefitGrantGitHubRepositoryTypedDict": ".customerbenefitgrantgithubrepository", "CustomerBenefitGrantGitHubRepositoryPropertiesUpdate": ".customerbenefitgrantgithubrepositorypropertiesupdate", @@ -5847,10 +5934,6 @@ "CustomerWallet": ".customerwallet", "CustomerWalletTypedDict": ".customerwallet", "CustomerWalletSortProperty": ".customerwalletsortproperty", - "CustomerWithMembers": ".customerwithmembers", - "CustomerWithMembersTaxID": ".customerwithmembers", - "CustomerWithMembersTaxIDTypedDict": ".customerwithmembers", - "CustomerWithMembersTypedDict": ".customerwithmembers", "CustomField": ".customfield", "CustomFieldTypedDict": ".customfield", "CustomFieldCheckbox": ".customfieldcheckbox", @@ -6166,6 +6249,8 @@ "ListResourceCheckoutTypedDict": ".listresource_checkout_", "ListResourceCheckoutLink": ".listresource_checkoutlink_", "ListResourceCheckoutLinkTypedDict": ".listresource_checkoutlink_", + "ListResourceCustomer": ".listresource_customer_", + "ListResourceCustomerTypedDict": ".listresource_customer_", "ListResourceCustomerBenefitGrant": ".listresource_customerbenefitgrant_", "ListResourceCustomerBenefitGrantTypedDict": ".listresource_customerbenefitgrant_", "ListResourceCustomerCustomerMeter": ".listresource_customercustomermeter_", @@ -6182,8 +6267,6 @@ "ListResourceCustomerSubscriptionTypedDict": ".listresource_customersubscription_", "ListResourceCustomerWallet": ".listresource_customerwallet_", "ListResourceCustomerWalletTypedDict": ".listresource_customerwallet_", - "ListResourceCustomerWithMembers": ".listresource_customerwithmembers_", - "ListResourceCustomerWithMembersTypedDict": ".listresource_customerwithmembers_", "ListResourceCustomField": ".listresource_customfield_", "ListResourceCustomFieldTypedDict": ".listresource_customfield_", "ListResourceDiscount": ".listresource_discount_", diff --git a/src/polar_sdk/models/benefit.py b/src/polar_sdk/models/benefit.py index 6d15c681..c009b7e8 100644 --- a/src/polar_sdk/models/benefit.py +++ b/src/polar_sdk/models/benefit.py @@ -4,6 +4,7 @@ from .benefitcustom import BenefitCustom, BenefitCustomTypedDict from .benefitdiscord import BenefitDiscord, BenefitDiscordTypedDict from .benefitdownloadables import BenefitDownloadables, BenefitDownloadablesTypedDict +from .benefitfeatureflag import BenefitFeatureFlag, BenefitFeatureFlagTypedDict from .benefitgithubrepository import ( BenefitGitHubRepository, BenefitGitHubRepositoryTypedDict, @@ -25,6 +26,7 @@ BenefitDownloadablesTypedDict, BenefitLicenseKeysTypedDict, BenefitMeterCreditTypedDict, + BenefitFeatureFlagTypedDict, ], ) @@ -34,6 +36,7 @@ Annotated[BenefitCustom, Tag("custom")], Annotated[BenefitDiscord, Tag("discord")], Annotated[BenefitDownloadables, Tag("downloadables")], + Annotated[BenefitFeatureFlag, Tag("feature_flag")], Annotated[BenefitGitHubRepository, Tag("github_repository")], Annotated[BenefitLicenseKeys, Tag("license_keys")], Annotated[BenefitMeterCredit, Tag("meter_credit")], diff --git a/src/polar_sdk/models/benefitcreate.py b/src/polar_sdk/models/benefitcreate.py index 4bea68af..64840d69 100644 --- a/src/polar_sdk/models/benefitcreate.py +++ b/src/polar_sdk/models/benefitcreate.py @@ -7,6 +7,10 @@ BenefitDownloadablesCreate, BenefitDownloadablesCreateTypedDict, ) +from .benefitfeatureflagcreate import ( + BenefitFeatureFlagCreate, + BenefitFeatureFlagCreateTypedDict, +) from .benefitgithubrepositorycreate import ( BenefitGitHubRepositoryCreate, BenefitGitHubRepositoryCreateTypedDict, @@ -34,6 +38,7 @@ BenefitDownloadablesCreateTypedDict, BenefitLicenseKeysCreateTypedDict, BenefitMeterCreditCreateTypedDict, + BenefitFeatureFlagCreateTypedDict, ], ) @@ -43,6 +48,7 @@ Annotated[BenefitCustomCreate, Tag("custom")], Annotated[BenefitDiscordCreate, Tag("discord")], Annotated[BenefitDownloadablesCreate, Tag("downloadables")], + Annotated[BenefitFeatureFlagCreate, Tag("feature_flag")], Annotated[BenefitGitHubRepositoryCreate, Tag("github_repository")], Annotated[BenefitLicenseKeysCreate, Tag("license_keys")], Annotated[BenefitMeterCreditCreate, Tag("meter_credit")], diff --git a/src/polar_sdk/models/benefitfeatureflag.py b/src/polar_sdk/models/benefitfeatureflag.py new file mode 100644 index 00000000..fe83d81b --- /dev/null +++ b/src/polar_sdk/models/benefitfeatureflag.py @@ -0,0 +1,114 @@ +"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" + +from __future__ import annotations +from .benefitfeatureflagproperties import ( + BenefitFeatureFlagProperties, + BenefitFeatureFlagPropertiesTypedDict, +) +from .metadataoutputtype import MetadataOutputType, MetadataOutputTypeTypedDict +from datetime import datetime +from polar_sdk.types import BaseModel, Nullable, UNSET_SENTINEL +from polar_sdk.utils import validate_const +import pydantic +from pydantic import model_serializer +from pydantic.functional_validators import AfterValidator +from typing import Dict, Literal +from typing_extensions import Annotated, TypedDict + + +class BenefitFeatureFlagTypedDict(TypedDict): + r"""A benefit of type `feature_flag`. + + Use it to grant feature flags with key-value metadata + that can be queried via the API and webhooks. + """ + + id: str + r"""The ID of the benefit.""" + created_at: datetime + r"""Creation timestamp of the object.""" + modified_at: Nullable[datetime] + r"""Last modification timestamp of the object.""" + description: str + r"""The description of the benefit.""" + selectable: bool + r"""Whether the benefit is selectable when creating a product.""" + deletable: bool + r"""Whether the benefit is deletable.""" + organization_id: str + r"""The ID of the organization owning the benefit.""" + metadata: Dict[str, MetadataOutputTypeTypedDict] + properties: BenefitFeatureFlagPropertiesTypedDict + r"""Properties for a benefit of type `feature_flag`.""" + type: Literal["feature_flag"] + + +class BenefitFeatureFlag(BaseModel): + r"""A benefit of type `feature_flag`. + + Use it to grant feature flags with key-value metadata + that can be queried via the API and webhooks. + """ + + id: str + r"""The ID of the benefit.""" + + created_at: datetime + r"""Creation timestamp of the object.""" + + modified_at: Nullable[datetime] + r"""Last modification timestamp of the object.""" + + description: str + r"""The description of the benefit.""" + + selectable: bool + r"""Whether the benefit is selectable when creating a product.""" + + deletable: bool + r"""Whether the benefit is deletable.""" + + organization_id: str + r"""The ID of the organization owning the benefit.""" + + metadata: Dict[str, MetadataOutputType] + + properties: BenefitFeatureFlagProperties + r"""Properties for a benefit of type `feature_flag`.""" + + TYPE: Annotated[ + Annotated[ + Literal["feature_flag"], AfterValidator(validate_const("feature_flag")) + ], + pydantic.Field(alias="type"), + ] = "feature_flag" + + @model_serializer(mode="wrap") + def serialize_model(self, handler): + optional_fields = [] + nullable_fields = ["modified_at"] + null_default_fields = [] + + serialized = handler(self) + + m = {} + + for n, f in type(self).model_fields.items(): + k = f.alias or n + val = serialized.get(k) + serialized.pop(k, None) + + optional_nullable = k in optional_fields and k in nullable_fields + is_set = ( + self.__pydantic_fields_set__.intersection({n}) + or k in null_default_fields + ) # pylint: disable=no-member + + if val is not None and val != UNSET_SENTINEL: + m[k] = val + elif val != UNSET_SENTINEL and ( + not k in optional_fields or (optional_nullable and is_set) + ): + m[k] = val + + return m diff --git a/src/polar_sdk/models/benefitfeatureflagcreate.py b/src/polar_sdk/models/benefitfeatureflagcreate.py new file mode 100644 index 00000000..e8a1fee9 --- /dev/null +++ b/src/polar_sdk/models/benefitfeatureflagcreate.py @@ -0,0 +1,113 @@ +"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" + +from __future__ import annotations +from .benefitfeatureflagcreateproperties import ( + BenefitFeatureFlagCreateProperties, + BenefitFeatureFlagCreatePropertiesTypedDict, +) +from polar_sdk.types import BaseModel, Nullable, OptionalNullable, UNSET, UNSET_SENTINEL +from polar_sdk.utils import validate_const +import pydantic +from pydantic import model_serializer +from pydantic.functional_validators import AfterValidator +from typing import Dict, Literal, Optional, Union +from typing_extensions import Annotated, NotRequired, TypeAliasType, TypedDict + + +BenefitFeatureFlagCreateMetadataTypedDict = TypeAliasType( + "BenefitFeatureFlagCreateMetadataTypedDict", Union[str, int, float, bool] +) + + +BenefitFeatureFlagCreateMetadata = TypeAliasType( + "BenefitFeatureFlagCreateMetadata", Union[str, int, float, bool] +) + + +class BenefitFeatureFlagCreateTypedDict(TypedDict): + r"""Schema to create a benefit of type `feature_flag`.""" + + description: str + r"""The description of the benefit. Will be displayed on products having this benefit.""" + properties: BenefitFeatureFlagCreatePropertiesTypedDict + r"""Properties for creating a benefit of type `feature_flag`.""" + metadata: NotRequired[Dict[str, BenefitFeatureFlagCreateMetadataTypedDict]] + r"""Key-value object allowing you to store additional information. + + The key must be a string with a maximum length of **40 characters**. + The value must be either: + + * A string with a maximum length of **500 characters** + * An integer + * A floating-point number + * A boolean + + You can store up to **50 key-value pairs**. + """ + type: Literal["feature_flag"] + organization_id: NotRequired[Nullable[str]] + r"""The ID of the organization owning the benefit. **Required unless you use an organization token.**""" + + +class BenefitFeatureFlagCreate(BaseModel): + r"""Schema to create a benefit of type `feature_flag`.""" + + description: str + r"""The description of the benefit. Will be displayed on products having this benefit.""" + + properties: BenefitFeatureFlagCreateProperties + r"""Properties for creating a benefit of type `feature_flag`.""" + + metadata: Optional[Dict[str, BenefitFeatureFlagCreateMetadata]] = None + r"""Key-value object allowing you to store additional information. + + The key must be a string with a maximum length of **40 characters**. + The value must be either: + + * A string with a maximum length of **500 characters** + * An integer + * A floating-point number + * A boolean + + You can store up to **50 key-value pairs**. + """ + + TYPE: Annotated[ + Annotated[ + Literal["feature_flag"], AfterValidator(validate_const("feature_flag")) + ], + pydantic.Field(alias="type"), + ] = "feature_flag" + + organization_id: OptionalNullable[str] = UNSET + r"""The ID of the organization owning the benefit. **Required unless you use an organization token.**""" + + @model_serializer(mode="wrap") + def serialize_model(self, handler): + optional_fields = ["metadata", "organization_id"] + nullable_fields = ["organization_id"] + null_default_fields = [] + + serialized = handler(self) + + m = {} + + for n, f in type(self).model_fields.items(): + k = f.alias or n + val = serialized.get(k) + serialized.pop(k, None) + + optional_nullable = k in optional_fields and k in nullable_fields + is_set = ( + self.__pydantic_fields_set__.intersection({n}) + or k in null_default_fields + ) # pylint: disable=no-member + + if val is not None and val != UNSET_SENTINEL: + m[k] = val + elif val != UNSET_SENTINEL and ( + not k in optional_fields or (optional_nullable and is_set) + ): + m[k] = val + + return m diff --git a/src/polar_sdk/models/benefitfeatureflagcreateproperties.py b/src/polar_sdk/models/benefitfeatureflagcreateproperties.py new file mode 100644 index 00000000..1f5ba526 --- /dev/null +++ b/src/polar_sdk/models/benefitfeatureflagcreateproperties.py @@ -0,0 +1,13 @@ +"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" + +from __future__ import annotations +from polar_sdk.types import BaseModel +from typing_extensions import TypedDict + + +class BenefitFeatureFlagCreatePropertiesTypedDict(TypedDict): + r"""Properties for creating a benefit of type `feature_flag`.""" + + +class BenefitFeatureFlagCreateProperties(BaseModel): + r"""Properties for creating a benefit of type `feature_flag`.""" diff --git a/src/polar_sdk/models/benefitfeatureflagproperties.py b/src/polar_sdk/models/benefitfeatureflagproperties.py new file mode 100644 index 00000000..de977dd5 --- /dev/null +++ b/src/polar_sdk/models/benefitfeatureflagproperties.py @@ -0,0 +1,13 @@ +"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" + +from __future__ import annotations +from polar_sdk.types import BaseModel +from typing_extensions import TypedDict + + +class BenefitFeatureFlagPropertiesTypedDict(TypedDict): + r"""Properties for a benefit of type `feature_flag`.""" + + +class BenefitFeatureFlagProperties(BaseModel): + r"""Properties for a benefit of type `feature_flag`.""" diff --git a/src/polar_sdk/models/benefitfeatureflagsubscriber.py b/src/polar_sdk/models/benefitfeatureflagsubscriber.py new file mode 100644 index 00000000..708266dc --- /dev/null +++ b/src/polar_sdk/models/benefitfeatureflagsubscriber.py @@ -0,0 +1,109 @@ +"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" + +from __future__ import annotations +from .benefitfeatureflagsubscriberproperties import ( + BenefitFeatureFlagSubscriberProperties, + BenefitFeatureFlagSubscriberPropertiesTypedDict, +) +from .benefitsubscriberorganization import ( + BenefitSubscriberOrganization, + BenefitSubscriberOrganizationTypedDict, +) +from .metadataoutputtype import MetadataOutputType, MetadataOutputTypeTypedDict +from datetime import datetime +from polar_sdk.types import BaseModel, Nullable, UNSET_SENTINEL +from polar_sdk.utils import validate_const +import pydantic +from pydantic import model_serializer +from pydantic.functional_validators import AfterValidator +from typing import Dict, Literal +from typing_extensions import Annotated, TypedDict + + +class BenefitFeatureFlagSubscriberTypedDict(TypedDict): + id: str + r"""The ID of the benefit.""" + created_at: datetime + r"""Creation timestamp of the object.""" + modified_at: Nullable[datetime] + r"""Last modification timestamp of the object.""" + description: str + r"""The description of the benefit.""" + selectable: bool + r"""Whether the benefit is selectable when creating a product.""" + deletable: bool + r"""Whether the benefit is deletable.""" + organization_id: str + r"""The ID of the organization owning the benefit.""" + metadata: Dict[str, MetadataOutputTypeTypedDict] + organization: BenefitSubscriberOrganizationTypedDict + properties: BenefitFeatureFlagSubscriberPropertiesTypedDict + r"""Properties available to subscribers for a benefit of type `feature_flag`.""" + type: Literal["feature_flag"] + + +class BenefitFeatureFlagSubscriber(BaseModel): + id: str + r"""The ID of the benefit.""" + + created_at: datetime + r"""Creation timestamp of the object.""" + + modified_at: Nullable[datetime] + r"""Last modification timestamp of the object.""" + + description: str + r"""The description of the benefit.""" + + selectable: bool + r"""Whether the benefit is selectable when creating a product.""" + + deletable: bool + r"""Whether the benefit is deletable.""" + + organization_id: str + r"""The ID of the organization owning the benefit.""" + + metadata: Dict[str, MetadataOutputType] + + organization: BenefitSubscriberOrganization + + properties: BenefitFeatureFlagSubscriberProperties + r"""Properties available to subscribers for a benefit of type `feature_flag`.""" + + TYPE: Annotated[ + Annotated[ + Literal["feature_flag"], AfterValidator(validate_const("feature_flag")) + ], + pydantic.Field(alias="type"), + ] = "feature_flag" + + @model_serializer(mode="wrap") + def serialize_model(self, handler): + optional_fields = [] + nullable_fields = ["modified_at"] + null_default_fields = [] + + serialized = handler(self) + + m = {} + + for n, f in type(self).model_fields.items(): + k = f.alias or n + val = serialized.get(k) + serialized.pop(k, None) + + optional_nullable = k in optional_fields and k in nullable_fields + is_set = ( + self.__pydantic_fields_set__.intersection({n}) + or k in null_default_fields + ) # pylint: disable=no-member + + if val is not None and val != UNSET_SENTINEL: + m[k] = val + elif val != UNSET_SENTINEL and ( + not k in optional_fields or (optional_nullable and is_set) + ): + m[k] = val + + return m diff --git a/src/polar_sdk/models/benefitfeatureflagsubscriberproperties.py b/src/polar_sdk/models/benefitfeatureflagsubscriberproperties.py new file mode 100644 index 00000000..2e9b4859 --- /dev/null +++ b/src/polar_sdk/models/benefitfeatureflagsubscriberproperties.py @@ -0,0 +1,13 @@ +"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" + +from __future__ import annotations +from polar_sdk.types import BaseModel +from typing_extensions import TypedDict + + +class BenefitFeatureFlagSubscriberPropertiesTypedDict(TypedDict): + r"""Properties available to subscribers for a benefit of type `feature_flag`.""" + + +class BenefitFeatureFlagSubscriberProperties(BaseModel): + r"""Properties available to subscribers for a benefit of type `feature_flag`.""" diff --git a/src/polar_sdk/models/benefitfeatureflagupdate.py b/src/polar_sdk/models/benefitfeatureflagupdate.py new file mode 100644 index 00000000..7d37678f --- /dev/null +++ b/src/polar_sdk/models/benefitfeatureflagupdate.py @@ -0,0 +1,102 @@ +"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" + +from __future__ import annotations +from .benefitfeatureflagproperties import ( + BenefitFeatureFlagProperties, + BenefitFeatureFlagPropertiesTypedDict, +) +from polar_sdk.types import BaseModel, Nullable, OptionalNullable, UNSET, UNSET_SENTINEL +from polar_sdk.utils import validate_const +import pydantic +from pydantic import model_serializer +from pydantic.functional_validators import AfterValidator +from typing import Dict, Literal, Optional, Union +from typing_extensions import Annotated, NotRequired, TypeAliasType, TypedDict + + +BenefitFeatureFlagUpdateMetadataTypedDict = TypeAliasType( + "BenefitFeatureFlagUpdateMetadataTypedDict", Union[str, int, float, bool] +) + + +BenefitFeatureFlagUpdateMetadata = TypeAliasType( + "BenefitFeatureFlagUpdateMetadata", Union[str, int, float, bool] +) + + +class BenefitFeatureFlagUpdateTypedDict(TypedDict): + metadata: NotRequired[Dict[str, BenefitFeatureFlagUpdateMetadataTypedDict]] + r"""Key-value object allowing you to store additional information. + + The key must be a string with a maximum length of **40 characters**. + The value must be either: + + * A string with a maximum length of **500 characters** + * An integer + * A floating-point number + * A boolean + + You can store up to **50 key-value pairs**. + """ + description: NotRequired[Nullable[str]] + r"""The description of the benefit. Will be displayed on products having this benefit.""" + type: Literal["feature_flag"] + properties: NotRequired[Nullable[BenefitFeatureFlagPropertiesTypedDict]] + + +class BenefitFeatureFlagUpdate(BaseModel): + metadata: Optional[Dict[str, BenefitFeatureFlagUpdateMetadata]] = None + r"""Key-value object allowing you to store additional information. + + The key must be a string with a maximum length of **40 characters**. + The value must be either: + + * A string with a maximum length of **500 characters** + * An integer + * A floating-point number + * A boolean + + You can store up to **50 key-value pairs**. + """ + + description: OptionalNullable[str] = UNSET + r"""The description of the benefit. Will be displayed on products having this benefit.""" + + TYPE: Annotated[ + Annotated[ + Literal["feature_flag"], AfterValidator(validate_const("feature_flag")) + ], + pydantic.Field(alias="type"), + ] = "feature_flag" + + properties: OptionalNullable[BenefitFeatureFlagProperties] = UNSET + + @model_serializer(mode="wrap") + def serialize_model(self, handler): + optional_fields = ["metadata", "description", "properties"] + nullable_fields = ["description", "properties"] + null_default_fields = [] + + serialized = handler(self) + + m = {} + + for n, f in type(self).model_fields.items(): + k = f.alias or n + val = serialized.get(k) + serialized.pop(k, None) + + optional_nullable = k in optional_fields and k in nullable_fields + is_set = ( + self.__pydantic_fields_set__.intersection({n}) + or k in null_default_fields + ) # pylint: disable=no-member + + if val is not None and val != UNSET_SENTINEL: + m[k] = val + elif val != UNSET_SENTINEL and ( + not k in optional_fields or (optional_nullable and is_set) + ): + m[k] = val + + return m diff --git a/src/polar_sdk/models/benefitgrant.py b/src/polar_sdk/models/benefitgrant.py index b3fedd32..24b2c314 100644 --- a/src/polar_sdk/models/benefitgrant.py +++ b/src/polar_sdk/models/benefitgrant.py @@ -15,6 +15,10 @@ BenefitGrantDownloadablesPropertiesTypedDict, ) from .benefitgranterror import BenefitGrantError, BenefitGrantErrorTypedDict +from .benefitgrantfeatureflagproperties import ( + BenefitGrantFeatureFlagProperties, + BenefitGrantFeatureFlagPropertiesTypedDict, +) from .benefitgrantgithubrepositoryproperties import ( BenefitGrantGitHubRepositoryProperties, BenefitGrantGitHubRepositoryPropertiesTypedDict, @@ -36,6 +40,7 @@ "PropertiesTypedDict", Union[ BenefitGrantCustomPropertiesTypedDict, + BenefitGrantFeatureFlagPropertiesTypedDict, BenefitGrantDownloadablesPropertiesTypedDict, BenefitGrantLicenseKeysPropertiesTypedDict, BenefitGrantDiscordPropertiesTypedDict, @@ -48,6 +53,7 @@ "Properties", Union[ BenefitGrantCustomProperties, + BenefitGrantFeatureFlagProperties, BenefitGrantDownloadablesProperties, BenefitGrantLicenseKeysProperties, BenefitGrantDiscordProperties, diff --git a/src/polar_sdk/models/benefitgrantfeatureflagproperties.py b/src/polar_sdk/models/benefitgrantfeatureflagproperties.py new file mode 100644 index 00000000..de5906f6 --- /dev/null +++ b/src/polar_sdk/models/benefitgrantfeatureflagproperties.py @@ -0,0 +1,13 @@ +"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" + +from __future__ import annotations +from polar_sdk.types import BaseModel +from typing_extensions import TypedDict + + +class BenefitGrantFeatureFlagPropertiesTypedDict(TypedDict): + pass + + +class BenefitGrantFeatureFlagProperties(BaseModel): + pass diff --git a/src/polar_sdk/models/benefitgrantfeatureflagwebhook.py b/src/polar_sdk/models/benefitgrantfeatureflagwebhook.py new file mode 100644 index 00000000..a46e1038 --- /dev/null +++ b/src/polar_sdk/models/benefitgrantfeatureflagwebhook.py @@ -0,0 +1,161 @@ +"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" + +from __future__ import annotations +from .benefitfeatureflag import BenefitFeatureFlag, BenefitFeatureFlagTypedDict +from .benefitgranterror import BenefitGrantError, BenefitGrantErrorTypedDict +from .benefitgrantfeatureflagproperties import ( + BenefitGrantFeatureFlagProperties, + BenefitGrantFeatureFlagPropertiesTypedDict, +) +from .customer import Customer, CustomerTypedDict +from .member import Member, MemberTypedDict +from datetime import datetime +from polar_sdk.types import BaseModel, Nullable, OptionalNullable, UNSET, UNSET_SENTINEL +from pydantic import model_serializer +from typing_extensions import NotRequired, TypedDict + + +class BenefitGrantFeatureFlagWebhookTypedDict(TypedDict): + created_at: datetime + r"""Creation timestamp of the object.""" + modified_at: Nullable[datetime] + r"""Last modification timestamp of the object.""" + id: str + r"""The ID of the grant.""" + is_granted: bool + r"""Whether the benefit is granted.""" + is_revoked: bool + r"""Whether the benefit is revoked.""" + subscription_id: Nullable[str] + r"""The ID of the subscription that granted this benefit.""" + order_id: Nullable[str] + r"""The ID of the order that granted this benefit.""" + customer_id: str + r"""The ID of the customer concerned by this grant.""" + benefit_id: str + r"""The ID of the benefit concerned by this grant.""" + customer: CustomerTypedDict + r"""A customer in an organization.""" + benefit: BenefitFeatureFlagTypedDict + r"""A benefit of type `feature_flag`. + + Use it to grant feature flags with key-value metadata + that can be queried via the API and webhooks. + """ + properties: BenefitGrantFeatureFlagPropertiesTypedDict + granted_at: NotRequired[Nullable[datetime]] + r"""The timestamp when the benefit was granted. If `None`, the benefit is not granted.""" + revoked_at: NotRequired[Nullable[datetime]] + r"""The timestamp when the benefit was revoked. If `None`, the benefit is not revoked.""" + member_id: NotRequired[Nullable[str]] + r"""The ID of the member concerned by this grant.""" + error: NotRequired[Nullable[BenefitGrantErrorTypedDict]] + r"""The error information if the benefit grant failed with an unrecoverable error.""" + member: NotRequired[Nullable[MemberTypedDict]] + previous_properties: NotRequired[ + Nullable[BenefitGrantFeatureFlagPropertiesTypedDict] + ] + + +class BenefitGrantFeatureFlagWebhook(BaseModel): + created_at: datetime + r"""Creation timestamp of the object.""" + + modified_at: Nullable[datetime] + r"""Last modification timestamp of the object.""" + + id: str + r"""The ID of the grant.""" + + is_granted: bool + r"""Whether the benefit is granted.""" + + is_revoked: bool + r"""Whether the benefit is revoked.""" + + subscription_id: Nullable[str] + r"""The ID of the subscription that granted this benefit.""" + + order_id: Nullable[str] + r"""The ID of the order that granted this benefit.""" + + customer_id: str + r"""The ID of the customer concerned by this grant.""" + + benefit_id: str + r"""The ID of the benefit concerned by this grant.""" + + customer: Customer + r"""A customer in an organization.""" + + benefit: BenefitFeatureFlag + r"""A benefit of type `feature_flag`. + + Use it to grant feature flags with key-value metadata + that can be queried via the API and webhooks. + """ + + properties: BenefitGrantFeatureFlagProperties + + granted_at: OptionalNullable[datetime] = UNSET + r"""The timestamp when the benefit was granted. If `None`, the benefit is not granted.""" + + revoked_at: OptionalNullable[datetime] = UNSET + r"""The timestamp when the benefit was revoked. If `None`, the benefit is not revoked.""" + + member_id: OptionalNullable[str] = UNSET + r"""The ID of the member concerned by this grant.""" + + error: OptionalNullable[BenefitGrantError] = UNSET + r"""The error information if the benefit grant failed with an unrecoverable error.""" + + member: OptionalNullable[Member] = UNSET + + previous_properties: OptionalNullable[BenefitGrantFeatureFlagProperties] = UNSET + + @model_serializer(mode="wrap") + def serialize_model(self, handler): + optional_fields = [ + "granted_at", + "revoked_at", + "member_id", + "error", + "member", + "previous_properties", + ] + nullable_fields = [ + "modified_at", + "granted_at", + "revoked_at", + "subscription_id", + "order_id", + "member_id", + "error", + "member", + "previous_properties", + ] + null_default_fields = [] + + serialized = handler(self) + + m = {} + + for n, f in type(self).model_fields.items(): + k = f.alias or n + val = serialized.get(k) + serialized.pop(k, None) + + optional_nullable = k in optional_fields and k in nullable_fields + is_set = ( + self.__pydantic_fields_set__.intersection({n}) + or k in null_default_fields + ) # pylint: disable=no-member + + if val is not None and val != UNSET_SENTINEL: + m[k] = val + elif val != UNSET_SENTINEL and ( + not k in optional_fields or (optional_nullable and is_set) + ): + m[k] = val + + return m diff --git a/src/polar_sdk/models/benefitgrantwebhook.py b/src/polar_sdk/models/benefitgrantwebhook.py index f54c6625..b8edebe6 100644 --- a/src/polar_sdk/models/benefitgrantwebhook.py +++ b/src/polar_sdk/models/benefitgrantwebhook.py @@ -13,6 +13,10 @@ BenefitGrantDownloadablesWebhook, BenefitGrantDownloadablesWebhookTypedDict, ) +from .benefitgrantfeatureflagwebhook import ( + BenefitGrantFeatureFlagWebhook, + BenefitGrantFeatureFlagWebhookTypedDict, +) from .benefitgrantgithubrepositorywebhook import ( BenefitGrantGitHubRepositoryWebhook, BenefitGrantGitHubRepositoryWebhookTypedDict, @@ -38,6 +42,7 @@ BenefitGrantDownloadablesWebhookTypedDict, BenefitGrantLicenseKeysWebhookTypedDict, BenefitGrantMeterCreditWebhookTypedDict, + BenefitGrantFeatureFlagWebhookTypedDict, ], ) @@ -51,5 +56,6 @@ BenefitGrantDownloadablesWebhook, BenefitGrantLicenseKeysWebhook, BenefitGrantMeterCreditWebhook, + BenefitGrantFeatureFlagWebhook, ], ) diff --git a/src/polar_sdk/models/benefits_updateop.py b/src/polar_sdk/models/benefits_updateop.py index b48bb961..27fbb1aa 100644 --- a/src/polar_sdk/models/benefits_updateop.py +++ b/src/polar_sdk/models/benefits_updateop.py @@ -7,6 +7,10 @@ BenefitDownloadablesUpdate, BenefitDownloadablesUpdateTypedDict, ) +from .benefitfeatureflagupdate import ( + BenefitFeatureFlagUpdate, + BenefitFeatureFlagUpdateTypedDict, +) from .benefitgithubrepositoryupdate import ( BenefitGitHubRepositoryUpdate, BenefitGitHubRepositoryUpdateTypedDict, @@ -34,6 +38,7 @@ BenefitDownloadablesUpdateTypedDict, BenefitLicenseKeysUpdateTypedDict, BenefitMeterCreditUpdateTypedDict, + BenefitFeatureFlagUpdateTypedDict, ], ) @@ -47,6 +52,7 @@ BenefitDownloadablesUpdate, BenefitLicenseKeysUpdate, BenefitMeterCreditUpdate, + BenefitFeatureFlagUpdate, ], ) diff --git a/src/polar_sdk/models/benefittype.py b/src/polar_sdk/models/benefittype.py index 2c536cc3..f0bcdca0 100644 --- a/src/polar_sdk/models/benefittype.py +++ b/src/polar_sdk/models/benefittype.py @@ -11,3 +11,4 @@ class BenefitType(str, Enum): DOWNLOADABLES = "downloadables" LICENSE_KEYS = "license_keys" METER_CREDIT = "meter_credit" + FEATURE_FLAG = "feature_flag" diff --git a/src/polar_sdk/models/cardpayment.py b/src/polar_sdk/models/cardpayment.py index b8280168..b700958d 100644 --- a/src/polar_sdk/models/cardpayment.py +++ b/src/polar_sdk/models/cardpayment.py @@ -32,7 +32,7 @@ class CardPaymentTypedDict(TypedDict): decline_reason: Nullable[str] r"""Error code, if the payment was declined.""" decline_message: Nullable[str] - r"""Human-reasable error message, if the payment was declined.""" + r"""Human-readable error message, if the payment was declined.""" organization_id: str r"""The ID of the organization that owns the payment.""" checkout_id: Nullable[str] @@ -73,7 +73,7 @@ class CardPayment(BaseModel): r"""Error code, if the payment was declined.""" decline_message: Nullable[str] - r"""Human-reasable error message, if the payment was declined.""" + r"""Human-readable error message, if the payment was declined.""" organization_id: str r"""The ID of the organization that owns the payment.""" diff --git a/src/polar_sdk/models/customer.py b/src/polar_sdk/models/customer.py index be020a1e..e4d8d6fb 100644 --- a/src/polar_sdk/models/customer.py +++ b/src/polar_sdk/models/customer.py @@ -30,8 +30,6 @@ class CustomerTypedDict(TypedDict): modified_at: Nullable[datetime] r"""Last modification timestamp of the object.""" metadata: Dict[str, MetadataOutputTypeTypedDict] - external_id: Nullable[str] - r"""The ID of the customer in your system. This must be unique within the organization. Once set, it can't be updated.""" email: str r"""The email address of the customer. This must be unique within the organization.""" email_verified: bool @@ -45,6 +43,8 @@ class CustomerTypedDict(TypedDict): deleted_at: Nullable[datetime] r"""Timestamp for when the customer was soft deleted.""" avatar_url: str + external_id: NotRequired[Nullable[str]] + r"""The ID of the customer in your system. This must be unique within the organization. Once set, it can't be updated.""" type: NotRequired[Nullable[CustomerType]] r"""The type of customer: 'individual' for single users, 'team' for customers with multiple members. Legacy customers may have NULL type which is treated as 'individual'.""" locale: NotRequired[Nullable[str]] @@ -64,9 +64,6 @@ class Customer(BaseModel): metadata: Dict[str, MetadataOutputType] - external_id: Nullable[str] - r"""The ID of the customer in your system. This must be unique within the organization. Once set, it can't be updated.""" - email: str r"""The email address of the customer. This must be unique within the organization.""" @@ -88,6 +85,9 @@ class Customer(BaseModel): avatar_url: str + external_id: OptionalNullable[str] = UNSET + r"""The ID of the customer in your system. This must be unique within the organization. Once set, it can't be updated.""" + type: OptionalNullable[CustomerType] = UNSET r"""The type of customer: 'individual' for single users, 'team' for customers with multiple members. Legacy customers may have NULL type which is treated as 'individual'.""" @@ -95,7 +95,7 @@ class Customer(BaseModel): @model_serializer(mode="wrap") def serialize_model(self, handler): - optional_fields = ["type", "locale"] + optional_fields = ["external_id", "type", "locale"] nullable_fields = [ "modified_at", "external_id", diff --git a/src/polar_sdk/models/customerbenefitgrant.py b/src/polar_sdk/models/customerbenefitgrant.py index 1be0c183..38f7f32c 100644 --- a/src/polar_sdk/models/customerbenefitgrant.py +++ b/src/polar_sdk/models/customerbenefitgrant.py @@ -13,6 +13,10 @@ CustomerBenefitGrantDownloadables, CustomerBenefitGrantDownloadablesTypedDict, ) +from .customerbenefitgrantfeatureflag import ( + CustomerBenefitGrantFeatureFlag, + CustomerBenefitGrantFeatureFlagTypedDict, +) from .customerbenefitgrantgithubrepository import ( CustomerBenefitGrantGitHubRepository, CustomerBenefitGrantGitHubRepositoryTypedDict, @@ -38,6 +42,7 @@ CustomerBenefitGrantLicenseKeysTypedDict, CustomerBenefitGrantCustomTypedDict, CustomerBenefitGrantMeterCreditTypedDict, + CustomerBenefitGrantFeatureFlagTypedDict, ], ) @@ -51,5 +56,6 @@ CustomerBenefitGrantLicenseKeys, CustomerBenefitGrantCustom, CustomerBenefitGrantMeterCredit, + CustomerBenefitGrantFeatureFlag, ], ) diff --git a/src/polar_sdk/models/customerbenefitgrantfeatureflag.py b/src/polar_sdk/models/customerbenefitgrantfeatureflag.py new file mode 100644 index 00000000..8df47a01 --- /dev/null +++ b/src/polar_sdk/models/customerbenefitgrantfeatureflag.py @@ -0,0 +1,117 @@ +"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" + +from __future__ import annotations +from .benefitfeatureflagsubscriber import ( + BenefitFeatureFlagSubscriber, + BenefitFeatureFlagSubscriberTypedDict, +) +from .benefitgranterror import BenefitGrantError, BenefitGrantErrorTypedDict +from .benefitgrantfeatureflagproperties import ( + BenefitGrantFeatureFlagProperties, + BenefitGrantFeatureFlagPropertiesTypedDict, +) +from .customerportalcustomer import ( + CustomerPortalCustomer, + CustomerPortalCustomerTypedDict, +) +from datetime import datetime +from polar_sdk.types import BaseModel, Nullable, OptionalNullable, UNSET, UNSET_SENTINEL +from pydantic import model_serializer +from typing_extensions import NotRequired, TypedDict + + +class CustomerBenefitGrantFeatureFlagTypedDict(TypedDict): + created_at: datetime + r"""Creation timestamp of the object.""" + modified_at: Nullable[datetime] + r"""Last modification timestamp of the object.""" + id: str + r"""The ID of the object.""" + granted_at: Nullable[datetime] + revoked_at: Nullable[datetime] + customer_id: str + benefit_id: str + subscription_id: Nullable[str] + order_id: Nullable[str] + is_granted: bool + is_revoked: bool + customer: CustomerPortalCustomerTypedDict + benefit: BenefitFeatureFlagSubscriberTypedDict + properties: BenefitGrantFeatureFlagPropertiesTypedDict + member_id: NotRequired[Nullable[str]] + error: NotRequired[Nullable[BenefitGrantErrorTypedDict]] + + +class CustomerBenefitGrantFeatureFlag(BaseModel): + created_at: datetime + r"""Creation timestamp of the object.""" + + modified_at: Nullable[datetime] + r"""Last modification timestamp of the object.""" + + id: str + r"""The ID of the object.""" + + granted_at: Nullable[datetime] + + revoked_at: Nullable[datetime] + + customer_id: str + + benefit_id: str + + subscription_id: Nullable[str] + + order_id: Nullable[str] + + is_granted: bool + + is_revoked: bool + + customer: CustomerPortalCustomer + + benefit: BenefitFeatureFlagSubscriber + + properties: BenefitGrantFeatureFlagProperties + + member_id: OptionalNullable[str] = UNSET + + error: OptionalNullable[BenefitGrantError] = UNSET + + @model_serializer(mode="wrap") + def serialize_model(self, handler): + optional_fields = ["member_id", "error"] + nullable_fields = [ + "modified_at", + "granted_at", + "revoked_at", + "member_id", + "subscription_id", + "order_id", + "error", + ] + null_default_fields = [] + + serialized = handler(self) + + m = {} + + for n, f in type(self).model_fields.items(): + k = f.alias or n + val = serialized.get(k) + serialized.pop(k, None) + + optional_nullable = k in optional_fields and k in nullable_fields + is_set = ( + self.__pydantic_fields_set__.intersection({n}) + or k in null_default_fields + ) # pylint: disable=no-member + + if val is not None and val != UNSET_SENTINEL: + m[k] = val + elif val != UNSET_SENTINEL and ( + not k in optional_fields or (optional_nullable and is_set) + ): + m[k] = val + + return m diff --git a/src/polar_sdk/models/customerbenefitgrantfeatureflagupdate.py b/src/polar_sdk/models/customerbenefitgrantfeatureflagupdate.py new file mode 100644 index 00000000..8e9f76d5 --- /dev/null +++ b/src/polar_sdk/models/customerbenefitgrantfeatureflagupdate.py @@ -0,0 +1,22 @@ +"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" + +from __future__ import annotations +from polar_sdk.types import BaseModel +from polar_sdk.utils import validate_const +import pydantic +from pydantic.functional_validators import AfterValidator +from typing import Literal +from typing_extensions import Annotated, TypedDict + + +class CustomerBenefitGrantFeatureFlagUpdateTypedDict(TypedDict): + benefit_type: Literal["feature_flag"] + + +class CustomerBenefitGrantFeatureFlagUpdate(BaseModel): + BENEFIT_TYPE: Annotated[ + Annotated[ + Literal["feature_flag"], AfterValidator(validate_const("feature_flag")) + ], + pydantic.Field(alias="benefit_type"), + ] = "feature_flag" diff --git a/src/polar_sdk/models/customerbenefitgrantupdate.py b/src/polar_sdk/models/customerbenefitgrantupdate.py index c7c3144e..3be5bd0e 100644 --- a/src/polar_sdk/models/customerbenefitgrantupdate.py +++ b/src/polar_sdk/models/customerbenefitgrantupdate.py @@ -13,6 +13,10 @@ CustomerBenefitGrantDownloadablesUpdate, CustomerBenefitGrantDownloadablesUpdateTypedDict, ) +from .customerbenefitgrantfeatureflagupdate import ( + CustomerBenefitGrantFeatureFlagUpdate, + CustomerBenefitGrantFeatureFlagUpdateTypedDict, +) from .customerbenefitgrantgithubrepositoryupdate import ( CustomerBenefitGrantGitHubRepositoryUpdate, CustomerBenefitGrantGitHubRepositoryUpdateTypedDict, @@ -38,6 +42,7 @@ CustomerBenefitGrantLicenseKeysUpdateTypedDict, CustomerBenefitGrantCustomUpdateTypedDict, CustomerBenefitGrantMeterCreditUpdateTypedDict, + CustomerBenefitGrantFeatureFlagUpdateTypedDict, CustomerBenefitGrantDiscordUpdateTypedDict, CustomerBenefitGrantGitHubRepositoryUpdateTypedDict, ], @@ -49,6 +54,7 @@ Annotated[CustomerBenefitGrantCustomUpdate, Tag("custom")], Annotated[CustomerBenefitGrantDiscordUpdate, Tag("discord")], Annotated[CustomerBenefitGrantDownloadablesUpdate, Tag("downloadables")], + Annotated[CustomerBenefitGrantFeatureFlagUpdate, Tag("feature_flag")], Annotated[CustomerBenefitGrantGitHubRepositoryUpdate, Tag("github_repository")], Annotated[CustomerBenefitGrantLicenseKeysUpdate, Tag("license_keys")], Annotated[CustomerBenefitGrantMeterCreditUpdate, Tag("meter_credit")], diff --git a/src/polar_sdk/models/customerstate.py b/src/polar_sdk/models/customerstate.py index fa96cd9c..8646c4cb 100644 --- a/src/polar_sdk/models/customerstate.py +++ b/src/polar_sdk/models/customerstate.py @@ -44,8 +44,6 @@ class CustomerStateTypedDict(TypedDict): modified_at: Nullable[datetime] r"""Last modification timestamp of the object.""" metadata: Dict[str, MetadataOutputTypeTypedDict] - external_id: Nullable[str] - r"""The ID of the customer in your system. This must be unique within the organization. Once set, it can't be updated.""" email: str r"""The email address of the customer. This must be unique within the organization.""" email_verified: bool @@ -65,6 +63,8 @@ class CustomerStateTypedDict(TypedDict): active_meters: List[CustomerStateMeterTypedDict] r"""The customer's active meters.""" avatar_url: str + external_id: NotRequired[Nullable[str]] + r"""The ID of the customer in your system. This must be unique within the organization. Once set, it can't be updated.""" type: NotRequired[Nullable[CustomerType]] r"""The type of customer: 'individual' for single users, 'team' for customers with multiple members. Legacy customers may have NULL type which is treated as 'individual'.""" locale: NotRequired[Nullable[str]] @@ -89,9 +89,6 @@ class CustomerState(BaseModel): metadata: Dict[str, MetadataOutputType] - external_id: Nullable[str] - r"""The ID of the customer in your system. This must be unique within the organization. Once set, it can't be updated.""" - email: str r"""The email address of the customer. This must be unique within the organization.""" @@ -122,6 +119,9 @@ class CustomerState(BaseModel): avatar_url: str + external_id: OptionalNullable[str] = UNSET + r"""The ID of the customer in your system. This must be unique within the organization. Once set, it can't be updated.""" + type: OptionalNullable[CustomerType] = UNSET r"""The type of customer: 'individual' for single users, 'team' for customers with multiple members. Legacy customers may have NULL type which is treated as 'individual'.""" @@ -129,7 +129,7 @@ class CustomerState(BaseModel): @model_serializer(mode="wrap") def serialize_model(self, handler): - optional_fields = ["type", "locale"] + optional_fields = ["external_id", "type", "locale"] nullable_fields = [ "modified_at", "external_id", diff --git a/src/polar_sdk/models/customerstatebenefitgrant.py b/src/polar_sdk/models/customerstatebenefitgrant.py index da5e4dab..b1743937 100644 --- a/src/polar_sdk/models/customerstatebenefitgrant.py +++ b/src/polar_sdk/models/customerstatebenefitgrant.py @@ -13,6 +13,10 @@ BenefitGrantDownloadablesProperties, BenefitGrantDownloadablesPropertiesTypedDict, ) +from .benefitgrantfeatureflagproperties import ( + BenefitGrantFeatureFlagProperties, + BenefitGrantFeatureFlagPropertiesTypedDict, +) from .benefitgrantgithubrepositoryproperties import ( BenefitGrantGitHubRepositoryProperties, BenefitGrantGitHubRepositoryPropertiesTypedDict, @@ -34,6 +38,7 @@ "CustomerStateBenefitGrantPropertiesTypedDict", Union[ BenefitGrantCustomPropertiesTypedDict, + BenefitGrantFeatureFlagPropertiesTypedDict, BenefitGrantDownloadablesPropertiesTypedDict, BenefitGrantLicenseKeysPropertiesTypedDict, BenefitGrantDiscordPropertiesTypedDict, @@ -46,6 +51,7 @@ "CustomerStateBenefitGrantProperties", Union[ BenefitGrantCustomProperties, + BenefitGrantFeatureFlagProperties, BenefitGrantDownloadablesProperties, BenefitGrantLicenseKeysProperties, BenefitGrantDiscordProperties, diff --git a/src/polar_sdk/models/customerwithmembers.py b/src/polar_sdk/models/customerwithmembers.py deleted file mode 100644 index 71ca7075..00000000 --- a/src/polar_sdk/models/customerwithmembers.py +++ /dev/null @@ -1,141 +0,0 @@ -"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" - -from __future__ import annotations -from .address import Address, AddressTypedDict -from .customertype import CustomerType -from .member import Member, MemberTypedDict -from .metadataoutputtype import MetadataOutputType, MetadataOutputTypeTypedDict -from .taxidformat import TaxIDFormat -from datetime import datetime -from polar_sdk.types import BaseModel, Nullable, OptionalNullable, UNSET, UNSET_SENTINEL -from pydantic import model_serializer -from typing import Dict, List, Optional, Union -from typing_extensions import NotRequired, TypeAliasType, TypedDict - - -CustomerWithMembersTaxIDTypedDict = TypeAliasType( - "CustomerWithMembersTaxIDTypedDict", Union[str, TaxIDFormat] -) - - -CustomerWithMembersTaxID = TypeAliasType( - "CustomerWithMembersTaxID", Union[str, TaxIDFormat] -) - - -class CustomerWithMembersTypedDict(TypedDict): - r"""A customer in an organization with their members loaded.""" - - id: str - r"""The ID of the customer.""" - created_at: datetime - r"""Creation timestamp of the object.""" - modified_at: Nullable[datetime] - r"""Last modification timestamp of the object.""" - metadata: Dict[str, MetadataOutputTypeTypedDict] - external_id: Nullable[str] - r"""The ID of the customer in your system. This must be unique within the organization. Once set, it can't be updated.""" - email: str - r"""The email address of the customer. This must be unique within the organization.""" - email_verified: bool - r"""Whether the customer email address is verified. The address is automatically verified when the customer accesses the customer portal using their email address.""" - name: Nullable[str] - r"""The name of the customer.""" - billing_address: Nullable[AddressTypedDict] - tax_id: Nullable[List[Nullable[CustomerWithMembersTaxIDTypedDict]]] - organization_id: str - r"""The ID of the organization owning the customer.""" - deleted_at: Nullable[datetime] - r"""Timestamp for when the customer was soft deleted.""" - avatar_url: str - type: NotRequired[Nullable[CustomerType]] - r"""The type of customer: 'individual' for single users, 'team' for customers with multiple members. Legacy customers may have NULL type which is treated as 'individual'.""" - locale: NotRequired[Nullable[str]] - members: NotRequired[List[MemberTypedDict]] - r"""List of members belonging to this customer.""" - - -class CustomerWithMembers(BaseModel): - r"""A customer in an organization with their members loaded.""" - - id: str - r"""The ID of the customer.""" - - created_at: datetime - r"""Creation timestamp of the object.""" - - modified_at: Nullable[datetime] - r"""Last modification timestamp of the object.""" - - metadata: Dict[str, MetadataOutputType] - - external_id: Nullable[str] - r"""The ID of the customer in your system. This must be unique within the organization. Once set, it can't be updated.""" - - email: str - r"""The email address of the customer. This must be unique within the organization.""" - - email_verified: bool - r"""Whether the customer email address is verified. The address is automatically verified when the customer accesses the customer portal using their email address.""" - - name: Nullable[str] - r"""The name of the customer.""" - - billing_address: Nullable[Address] - - tax_id: Nullable[List[Nullable[CustomerWithMembersTaxID]]] - - organization_id: str - r"""The ID of the organization owning the customer.""" - - deleted_at: Nullable[datetime] - r"""Timestamp for when the customer was soft deleted.""" - - avatar_url: str - - type: OptionalNullable[CustomerType] = UNSET - r"""The type of customer: 'individual' for single users, 'team' for customers with multiple members. Legacy customers may have NULL type which is treated as 'individual'.""" - - locale: OptionalNullable[str] = UNSET - - members: Optional[List[Member]] = None - r"""List of members belonging to this customer.""" - - @model_serializer(mode="wrap") - def serialize_model(self, handler): - optional_fields = ["type", "locale", "members"] - nullable_fields = [ - "modified_at", - "external_id", - "type", - "name", - "billing_address", - "tax_id", - "locale", - "deleted_at", - ] - null_default_fields = [] - - serialized = handler(self) - - m = {} - - for n, f in type(self).model_fields.items(): - k = f.alias or n - val = serialized.get(k) - serialized.pop(k, None) - - optional_nullable = k in optional_fields and k in nullable_fields - is_set = ( - self.__pydantic_fields_set__.intersection({n}) - or k in null_default_fields - ) # pylint: disable=no-member - - if val is not None and val != UNSET_SENTINEL: - m[k] = val - elif val != UNSET_SENTINEL and ( - not k in optional_fields or (optional_nullable and is_set) - ): - m[k] = val - - return m diff --git a/src/polar_sdk/models/genericpayment.py b/src/polar_sdk/models/genericpayment.py index 1d6c945e..1f6c2fcb 100644 --- a/src/polar_sdk/models/genericpayment.py +++ b/src/polar_sdk/models/genericpayment.py @@ -30,7 +30,7 @@ class GenericPaymentTypedDict(TypedDict): decline_reason: Nullable[str] r"""Error code, if the payment was declined.""" decline_message: Nullable[str] - r"""Human-reasable error message, if the payment was declined.""" + r"""Human-readable error message, if the payment was declined.""" organization_id: str r"""The ID of the organization that owns the payment.""" checkout_id: Nullable[str] @@ -70,7 +70,7 @@ class GenericPayment(BaseModel): r"""Error code, if the payment was declined.""" decline_message: Nullable[str] - r"""Human-reasable error message, if the payment was declined.""" + r"""Human-readable error message, if the payment was declined.""" organization_id: str r"""The ID of the organization that owns the payment.""" diff --git a/src/polar_sdk/models/licensekeycustomer.py b/src/polar_sdk/models/licensekeycustomer.py index 58612f34..2877710e 100644 --- a/src/polar_sdk/models/licensekeycustomer.py +++ b/src/polar_sdk/models/licensekeycustomer.py @@ -30,8 +30,6 @@ class LicenseKeyCustomerTypedDict(TypedDict): modified_at: Nullable[datetime] r"""Last modification timestamp of the object.""" metadata: Dict[str, MetadataOutputTypeTypedDict] - external_id: Nullable[str] - r"""The ID of the customer in your system. This must be unique within the organization. Once set, it can't be updated.""" email: str r"""The email address of the customer. This must be unique within the organization.""" email_verified: bool @@ -45,6 +43,8 @@ class LicenseKeyCustomerTypedDict(TypedDict): deleted_at: Nullable[datetime] r"""Timestamp for when the customer was soft deleted.""" avatar_url: str + external_id: NotRequired[Nullable[str]] + r"""The ID of the customer in your system. This must be unique within the organization. Once set, it can't be updated.""" type: NotRequired[Nullable[CustomerType]] r"""The type of customer: 'individual' for single users, 'team' for customers with multiple members. Legacy customers may have NULL type which is treated as 'individual'.""" locale: NotRequired[Nullable[str]] @@ -62,9 +62,6 @@ class LicenseKeyCustomer(BaseModel): metadata: Dict[str, MetadataOutputType] - external_id: Nullable[str] - r"""The ID of the customer in your system. This must be unique within the organization. Once set, it can't be updated.""" - email: str r"""The email address of the customer. This must be unique within the organization.""" @@ -86,6 +83,9 @@ class LicenseKeyCustomer(BaseModel): avatar_url: str + external_id: OptionalNullable[str] = UNSET + r"""The ID of the customer in your system. This must be unique within the organization. Once set, it can't be updated.""" + type: OptionalNullable[CustomerType] = UNSET r"""The type of customer: 'individual' for single users, 'team' for customers with multiple members. Legacy customers may have NULL type which is treated as 'individual'.""" @@ -93,7 +93,7 @@ class LicenseKeyCustomer(BaseModel): @model_serializer(mode="wrap") def serialize_model(self, handler): - optional_fields = ["type", "locale"] + optional_fields = ["external_id", "type", "locale"] nullable_fields = [ "modified_at", "external_id", diff --git a/src/polar_sdk/models/listresource_customerwithmembers_.py b/src/polar_sdk/models/listresource_customer_.py similarity index 54% rename from src/polar_sdk/models/listresource_customerwithmembers_.py rename to src/polar_sdk/models/listresource_customer_.py index d1697273..9c9f4638 100644 --- a/src/polar_sdk/models/listresource_customerwithmembers_.py +++ b/src/polar_sdk/models/listresource_customer_.py @@ -1,19 +1,19 @@ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" from __future__ import annotations -from .customerwithmembers import CustomerWithMembers, CustomerWithMembersTypedDict +from .customer import Customer, CustomerTypedDict from .pagination import Pagination, PaginationTypedDict from polar_sdk.types import BaseModel from typing import List from typing_extensions import TypedDict -class ListResourceCustomerWithMembersTypedDict(TypedDict): - items: List[CustomerWithMembersTypedDict] +class ListResourceCustomerTypedDict(TypedDict): + items: List[CustomerTypedDict] pagination: PaginationTypedDict -class ListResourceCustomerWithMembers(BaseModel): - items: List[CustomerWithMembers] +class ListResourceCustomer(BaseModel): + items: List[Customer] pagination: Pagination diff --git a/src/polar_sdk/models/ordercustomer.py b/src/polar_sdk/models/ordercustomer.py index 93c44481..f347db17 100644 --- a/src/polar_sdk/models/ordercustomer.py +++ b/src/polar_sdk/models/ordercustomer.py @@ -28,8 +28,6 @@ class OrderCustomerTypedDict(TypedDict): modified_at: Nullable[datetime] r"""Last modification timestamp of the object.""" metadata: Dict[str, MetadataOutputTypeTypedDict] - external_id: Nullable[str] - r"""The ID of the customer in your system. This must be unique within the organization. Once set, it can't be updated.""" email: str r"""The email address of the customer. This must be unique within the organization.""" email_verified: bool @@ -43,6 +41,8 @@ class OrderCustomerTypedDict(TypedDict): deleted_at: Nullable[datetime] r"""Timestamp for when the customer was soft deleted.""" avatar_url: str + external_id: NotRequired[Nullable[str]] + r"""The ID of the customer in your system. This must be unique within the organization. Once set, it can't be updated.""" type: NotRequired[Nullable[CustomerType]] r"""The type of customer: 'individual' for single users, 'team' for customers with multiple members. Legacy customers may have NULL type which is treated as 'individual'.""" locale: NotRequired[Nullable[str]] @@ -60,9 +60,6 @@ class OrderCustomer(BaseModel): metadata: Dict[str, MetadataOutputType] - external_id: Nullable[str] - r"""The ID of the customer in your system. This must be unique within the organization. Once set, it can't be updated.""" - email: str r"""The email address of the customer. This must be unique within the organization.""" @@ -84,6 +81,9 @@ class OrderCustomer(BaseModel): avatar_url: str + external_id: OptionalNullable[str] = UNSET + r"""The ID of the customer in your system. This must be unique within the organization. Once set, it can't be updated.""" + type: OptionalNullable[CustomerType] = UNSET r"""The type of customer: 'individual' for single users, 'team' for customers with multiple members. Legacy customers may have NULL type which is treated as 'individual'.""" @@ -91,7 +91,7 @@ class OrderCustomer(BaseModel): @model_serializer(mode="wrap") def serialize_model(self, handler): - optional_fields = ["type", "locale"] + optional_fields = ["external_id", "type", "locale"] nullable_fields = [ "modified_at", "external_id", diff --git a/src/polar_sdk/models/organizationfeaturesettings.py b/src/polar_sdk/models/organizationfeaturesettings.py index 7a9c3a66..45fb84d5 100644 --- a/src/polar_sdk/models/organizationfeaturesettings.py +++ b/src/polar_sdk/models/organizationfeaturesettings.py @@ -21,8 +21,6 @@ class OrganizationFeatureSettingsTypedDict(TypedDict): r"""If this organization reads from Tinybird""" tinybird_compare: NotRequired[bool] r"""If this organization compares Tinybird results with database""" - presentment_currencies_enabled: NotRequired[bool] - r"""If this organization has multiple presentment currencies enabled""" checkout_localization_enabled: NotRequired[bool] r"""If this organization has checkout localization enabled""" @@ -49,8 +47,5 @@ class OrganizationFeatureSettings(BaseModel): tinybird_compare: Optional[bool] = False r"""If this organization compares Tinybird results with database""" - presentment_currencies_enabled: Optional[bool] = False - r"""If this organization has multiple presentment currencies enabled""" - checkout_localization_enabled: Optional[bool] = False r"""If this organization has checkout localization enabled""" diff --git a/src/polar_sdk/models/organizationsocialplatforms.py b/src/polar_sdk/models/organizationsocialplatforms.py index 0aba5a21..b2146f49 100644 --- a/src/polar_sdk/models/organizationsocialplatforms.py +++ b/src/polar_sdk/models/organizationsocialplatforms.py @@ -12,4 +12,6 @@ class OrganizationSocialPlatforms(str, Enum): YOUTUBE = "youtube" TIKTOK = "tiktok" LINKEDIN = "linkedin" + THREADS = "threads" + DISCORD = "discord" OTHER = "other" diff --git a/src/polar_sdk/models/subscriptioncustomer.py b/src/polar_sdk/models/subscriptioncustomer.py index 46ad4270..33de0228 100644 --- a/src/polar_sdk/models/subscriptioncustomer.py +++ b/src/polar_sdk/models/subscriptioncustomer.py @@ -26,8 +26,6 @@ class SubscriptionCustomerTypedDict(TypedDict): modified_at: Nullable[datetime] r"""Last modification timestamp of the object.""" metadata: Dict[str, MetadataOutputTypeTypedDict] - external_id: Nullable[str] - r"""The ID of the customer in your system. This must be unique within the organization. Once set, it can't be updated.""" email: str r"""The email address of the customer. This must be unique within the organization.""" email_verified: bool @@ -41,6 +39,8 @@ class SubscriptionCustomerTypedDict(TypedDict): deleted_at: Nullable[datetime] r"""Timestamp for when the customer was soft deleted.""" avatar_url: str + external_id: NotRequired[Nullable[str]] + r"""The ID of the customer in your system. This must be unique within the organization. Once set, it can't be updated.""" type: NotRequired[Nullable[CustomerType]] r"""The type of customer: 'individual' for single users, 'team' for customers with multiple members. Legacy customers may have NULL type which is treated as 'individual'.""" locale: NotRequired[Nullable[str]] @@ -58,9 +58,6 @@ class SubscriptionCustomer(BaseModel): metadata: Dict[str, MetadataOutputType] - external_id: Nullable[str] - r"""The ID of the customer in your system. This must be unique within the organization. Once set, it can't be updated.""" - email: str r"""The email address of the customer. This must be unique within the organization.""" @@ -82,6 +79,9 @@ class SubscriptionCustomer(BaseModel): avatar_url: str + external_id: OptionalNullable[str] = UNSET + r"""The ID of the customer in your system. This must be unique within the organization. Once set, it can't be updated.""" + type: OptionalNullable[CustomerType] = UNSET r"""The type of customer: 'individual' for single users, 'team' for customers with multiple members. Legacy customers may have NULL type which is treated as 'individual'.""" @@ -89,7 +89,7 @@ class SubscriptionCustomer(BaseModel): @model_serializer(mode="wrap") def serialize_model(self, handler): - optional_fields = ["type", "locale"] + optional_fields = ["external_id", "type", "locale"] nullable_fields = [ "modified_at", "external_id", diff --git a/src/polar_sdk/models/subscriptions_listop.py b/src/polar_sdk/models/subscriptions_listop.py index 21c854e4..1233467a 100644 --- a/src/polar_sdk/models/subscriptions_listop.py +++ b/src/polar_sdk/models/subscriptions_listop.py @@ -8,10 +8,7 @@ from .eventsortproperty import EventSortProperty from .eventsource import EventSource from .listresource_benefit_ import ListResourceBenefit, ListResourceBenefitTypedDict -from .listresource_customerwithmembers_ import ( - ListResourceCustomerWithMembers, - ListResourceCustomerWithMembersTypedDict, -) +from .listresource_customer_ import ListResourceCustomer, ListResourceCustomerTypedDict from .listresource_event_ import ListResourceEvent, ListResourceEventTypedDict from .listresource_meter_ import ListResourceMeter, ListResourceMeterTypedDict from .listresource_order_ import ListResourceOrder, ListResourceOrderTypedDict @@ -980,13 +977,13 @@ def serialize_model(self, handler): class CustomersListResponseTypedDict(TypedDict): - result: ListResourceCustomerWithMembersTypedDict + result: ListResourceCustomerTypedDict class CustomersListResponse(BaseModel): next: Callable[[], Optional[CustomersListResponse]] - result: ListResourceCustomerWithMembers + result: ListResourceCustomer EventsListQueryParamOrganizationIDFilterTypedDict = TypeAliasType( diff --git a/src/polar_sdk/models/webhookendpoint.py b/src/polar_sdk/models/webhookendpoint.py index 83aa9a30..997b2567 100644 --- a/src/polar_sdk/models/webhookendpoint.py +++ b/src/polar_sdk/models/webhookendpoint.py @@ -4,11 +4,11 @@ from .webhookeventtype import WebhookEventType from .webhookformat import WebhookFormat from datetime import datetime -from polar_sdk.types import BaseModel, Nullable, UNSET_SENTINEL +from polar_sdk.types import BaseModel, Nullable, OptionalNullable, UNSET, UNSET_SENTINEL import pydantic from pydantic import model_serializer from typing import List -from typing_extensions import Annotated, TypedDict +from typing_extensions import Annotated, NotRequired, TypedDict class WebhookEndpointTypedDict(TypedDict): @@ -31,6 +31,8 @@ class WebhookEndpointTypedDict(TypedDict): r"""The events that will trigger the webhook.""" enabled: bool r"""Whether the webhook endpoint is enabled and will receive events.""" + name: NotRequired[Nullable[str]] + r"""An optional name for the webhook endpoint to help organize and identify it.""" class WebhookEndpoint(BaseModel): @@ -62,10 +64,13 @@ class WebhookEndpoint(BaseModel): enabled: bool r"""Whether the webhook endpoint is enabled and will receive events.""" + name: OptionalNullable[str] = UNSET + r"""An optional name for the webhook endpoint to help organize and identify it.""" + @model_serializer(mode="wrap") def serialize_model(self, handler): - optional_fields = [] - nullable_fields = ["modified_at"] + optional_fields = ["name"] + nullable_fields = ["modified_at", "name"] null_default_fields = [] serialized = handler(self) diff --git a/src/polar_sdk/models/webhookendpointcreate.py b/src/polar_sdk/models/webhookendpointcreate.py index cd6a9a3b..1f288033 100644 --- a/src/polar_sdk/models/webhookendpointcreate.py +++ b/src/polar_sdk/models/webhookendpointcreate.py @@ -18,6 +18,8 @@ class WebhookEndpointCreateTypedDict(TypedDict): format_: WebhookFormat events: List[WebhookEventType] r"""The events that will trigger the webhook.""" + name: NotRequired[Nullable[str]] + r"""An optional name for the webhook endpoint to help organize and identify it.""" organization_id: NotRequired[Nullable[str]] r"""The organization ID associated with the webhook endpoint. **Required unless you use an organization token.**""" @@ -33,13 +35,16 @@ class WebhookEndpointCreate(BaseModel): events: List[WebhookEventType] r"""The events that will trigger the webhook.""" + name: OptionalNullable[str] = UNSET + r"""An optional name for the webhook endpoint to help organize and identify it.""" + organization_id: OptionalNullable[str] = UNSET r"""The organization ID associated with the webhook endpoint. **Required unless you use an organization token.**""" @model_serializer(mode="wrap") def serialize_model(self, handler): - optional_fields = ["organization_id"] - nullable_fields = ["organization_id"] + optional_fields = ["name", "organization_id"] + nullable_fields = ["name", "organization_id"] null_default_fields = [] serialized = handler(self) diff --git a/src/polar_sdk/models/webhookendpointupdate.py b/src/polar_sdk/models/webhookendpointupdate.py index 769e781f..86a568c8 100644 --- a/src/polar_sdk/models/webhookendpointupdate.py +++ b/src/polar_sdk/models/webhookendpointupdate.py @@ -14,6 +14,8 @@ class WebhookEndpointUpdateTypedDict(TypedDict): r"""Schema to update a webhook endpoint.""" url: NotRequired[Nullable[str]] + name: NotRequired[Nullable[str]] + r"""An optional name for the webhook endpoint to help organize and identify it.""" format_: NotRequired[Nullable[WebhookFormat]] events: NotRequired[Nullable[List[WebhookEventType]]] enabled: NotRequired[Nullable[bool]] @@ -25,6 +27,9 @@ class WebhookEndpointUpdate(BaseModel): url: OptionalNullable[str] = UNSET + name: OptionalNullable[str] = UNSET + r"""An optional name for the webhook endpoint to help organize and identify it.""" + format_: Annotated[ OptionalNullable[WebhookFormat], pydantic.Field(alias="format") ] = UNSET @@ -36,8 +41,8 @@ class WebhookEndpointUpdate(BaseModel): @model_serializer(mode="wrap") def serialize_model(self, handler): - optional_fields = ["url", "format", "events", "enabled"] - nullable_fields = ["url", "format", "events", "enabled"] + optional_fields = ["url", "name", "format", "events", "enabled"] + nullable_fields = ["url", "name", "format", "events", "enabled"] null_default_fields = [] serialized = handler(self)