tremendous-python 5.12.0__tar.gz → 5.14.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {tremendous_python-5.12.0/tremendous_python.egg-info → tremendous_python-5.14.0}/PKG-INFO +1 -1
- {tremendous_python-5.12.0 → tremendous_python-5.14.0}/pyproject.toml +1 -1
- {tremendous_python-5.12.0 → tremendous_python-5.14.0}/tremendous/models/balance_transaction.py +5 -3
- {tremendous_python-5.12.0 → tremendous_python-5.14.0}/tremendous/models/balance_transaction_order_payment.py +10 -6
- {tremendous_python-5.12.0 → tremendous_python-5.14.0}/tremendous/models/campaign.py +18 -1
- {tremendous_python-5.12.0 → tremendous_python-5.14.0}/tremendous/models/campaign_base.py +18 -1
- {tremendous_python-5.12.0 → tremendous_python-5.14.0}/tremendous/models/connected_organization_organization.py +3 -1
- {tremendous_python-5.12.0 → tremendous_python-5.14.0}/tremendous/models/create_campaign_request.py +18 -1
- {tremendous_python-5.12.0 → tremendous_python-5.14.0}/tremendous/models/create_order200_response_order.py +1 -1
- {tremendous_python-5.12.0 → tremendous_python-5.14.0}/tremendous/models/create_organization.py +3 -1
- {tremendous_python-5.12.0 → tremendous_python-5.14.0}/tremendous/models/create_organization200_response_organization.py +3 -1
- {tremendous_python-5.12.0 → tremendous_python-5.14.0}/tremendous/models/create_organization_for_response.py +3 -1
- {tremendous_python-5.12.0 → tremendous_python-5.14.0}/tremendous/models/create_organization_properties.py +3 -1
- {tremendous_python-5.12.0 → tremendous_python-5.14.0}/tremendous/models/create_organization_request.py +4 -2
- {tremendous_python-5.12.0 → tremendous_python-5.14.0}/tremendous/models/create_topup_request.py +1 -1
- {tremendous_python-5.12.0 → tremendous_python-5.14.0}/tremendous/models/fraud_config_redeemed_rewards_amount.py +1 -1
- {tremendous_python-5.12.0 → tremendous_python-5.14.0}/tremendous/models/fraud_review.py +3 -3
- {tremendous_python-5.12.0 → tremendous_python-5.14.0}/tremendous/models/fraud_review_related_rewards.py +8 -4
- {tremendous_python-5.12.0 → tremendous_python-5.14.0}/tremendous/models/fraud_rule_type.py +1 -1
- {tremendous_python-5.12.0 → tremendous_python-5.14.0}/tremendous/models/fraud_rules_list_item.py +1 -1
- {tremendous_python-5.12.0 → tremendous_python-5.14.0}/tremendous/models/get_fraud_review200_response_fraud_review_related_rewards.py +5 -3
- {tremendous_python-5.12.0 → tremendous_python-5.14.0}/tremendous/models/invoice.py +15 -3
- {tremendous_python-5.12.0 → tremendous_python-5.14.0}/tremendous/models/list_balance_transactions200_response_transactions_inner.py +5 -3
- {tremendous_python-5.12.0 → tremendous_python-5.14.0}/tremendous/models/list_balance_transactions200_response_transactions_inner_order_payment.py +8 -6
- {tremendous_python-5.12.0 → tremendous_python-5.14.0}/tremendous/models/list_campaigns200_response_campaigns_inner.py +18 -1
- {tremendous_python-5.12.0 → tremendous_python-5.14.0}/tremendous/models/list_connected_organizations200_response_connected_organizations_inner_organization.py +3 -1
- {tremendous_python-5.12.0 → tremendous_python-5.14.0}/tremendous/models/list_fraud_rules200_response_fraud_rules_inner.py +1 -1
- {tremendous_python-5.12.0 → tremendous_python-5.14.0}/tremendous/models/list_funding_sources200_response_funding_sources_inner_meta.py +14 -6
- {tremendous_python-5.12.0 → tremendous_python-5.14.0}/tremendous/models/list_invoices200_response_invoices_inner.py +15 -3
- {tremendous_python-5.12.0 → tremendous_python-5.14.0}/tremendous/models/list_orders200_response_orders_inner.py +1 -1
- {tremendous_python-5.12.0 → tremendous_python-5.14.0}/tremendous/models/list_orders200_response_orders_inner_payment.py +9 -7
- {tremendous_python-5.12.0 → tremendous_python-5.14.0}/tremendous/models/list_orders200_response_orders_inner_payment_refund.py +7 -5
- {tremendous_python-5.12.0 → tremendous_python-5.14.0}/tremendous/models/list_organizations200_response_organizations_inner.py +3 -1
- {tremendous_python-5.12.0 → tremendous_python-5.14.0}/tremendous/models/list_rewards200_response_rewards_inner_recipient.py +5 -0
- {tremendous_python-5.12.0 → tremendous_python-5.14.0}/tremendous/models/list_topups200_response_topups_inner.py +18 -5
- {tremendous_python-5.12.0 → tremendous_python-5.14.0}/tremendous/models/order.py +1 -1
- {tremendous_python-5.12.0 → tremendous_python-5.14.0}/tremendous/models/order_base.py +1 -1
- {tremendous_python-5.12.0 → tremendous_python-5.14.0}/tremendous/models/order_base_payment.py +11 -7
- {tremendous_python-5.12.0 → tremendous_python-5.14.0}/tremendous/models/order_with_link.py +1 -1
- {tremendous_python-5.12.0 → tremendous_python-5.14.0}/tremendous/models/order_without_link.py +1 -1
- {tremendous_python-5.12.0 → tremendous_python-5.14.0}/tremendous/models/organization.py +3 -1
- {tremendous_python-5.12.0 → tremendous_python-5.14.0}/tremendous/models/payment_details.py +10 -6
- {tremendous_python-5.12.0 → tremendous_python-5.14.0}/tremendous/models/payment_details_refund.py +9 -5
- {tremendous_python-5.12.0 → tremendous_python-5.14.0}/tremendous/models/recipient.py +5 -0
- {tremendous_python-5.12.0 → tremendous_python-5.14.0}/tremendous/models/refund_details.py +8 -4
- {tremendous_python-5.12.0 → tremendous_python-5.14.0}/tremendous/models/review_redeemed_rewards_amount.py +1 -1
- {tremendous_python-5.12.0 → tremendous_python-5.14.0}/tremendous/models/single_reward_order_with_link_order.py +1 -1
- {tremendous_python-5.12.0 → tremendous_python-5.14.0}/tremendous/models/single_reward_order_without_link_order.py +1 -1
- {tremendous_python-5.12.0 → tremendous_python-5.14.0}/tremendous/models/topup.py +18 -5
- {tremendous_python-5.12.0 → tremendous_python-5.14.0}/tremendous/models/topup_create_request.py +1 -1
- {tremendous_python-5.12.0 → tremendous_python-5.14.0}/tremendous/models/update_campaign.py +18 -1
- {tremendous_python-5.12.0 → tremendous_python-5.14.0}/tremendous/models/update_campaign_request.py +18 -1
- tremendous_python-5.14.0/tremendous/version.py +1 -0
- {tremendous_python-5.12.0 → tremendous_python-5.14.0/tremendous_python.egg-info}/PKG-INFO +1 -1
- tremendous_python-5.12.0/tremendous/version.py +0 -1
- {tremendous_python-5.12.0 → tremendous_python-5.14.0}/LICENSE +0 -0
- {tremendous_python-5.12.0 → tremendous_python-5.14.0}/README.md +0 -0
- {tremendous_python-5.12.0 → tremendous_python-5.14.0}/setup.cfg +0 -0
- {tremendous_python-5.12.0 → tremendous_python-5.14.0}/setup.py +0 -0
- {tremendous_python-5.12.0 → tremendous_python-5.14.0}/test/test_campaigns.py +0 -0
- {tremendous_python-5.12.0 → tremendous_python-5.14.0}/test/test_funding_sources.py +0 -0
- {tremendous_python-5.12.0 → tremendous_python-5.14.0}/test/test_invoices.py +0 -0
- {tremendous_python-5.12.0 → tremendous_python-5.14.0}/test/test_members.py +0 -0
- {tremendous_python-5.12.0 → tremendous_python-5.14.0}/test/test_orders.py +0 -0
- {tremendous_python-5.12.0 → tremendous_python-5.14.0}/test/test_products.py +0 -0
- {tremendous_python-5.12.0 → tremendous_python-5.14.0}/tremendous/__init__.py +0 -0
- {tremendous_python-5.12.0 → tremendous_python-5.14.0}/tremendous/api/__init__.py +0 -0
- {tremendous_python-5.12.0 → tremendous_python-5.14.0}/tremendous/api/tremendous_api.py +0 -0
- {tremendous_python-5.12.0 → tremendous_python-5.14.0}/tremendous/api_client.py +0 -0
- {tremendous_python-5.12.0 → tremendous_python-5.14.0}/tremendous/api_response.py +0 -0
- {tremendous_python-5.12.0 → tremendous_python-5.14.0}/tremendous/configuration.py +0 -0
- {tremendous_python-5.12.0 → tremendous_python-5.14.0}/tremendous/exceptions.py +0 -0
- {tremendous_python-5.12.0 → tremendous_python-5.14.0}/tremendous/models/__init__.py +0 -0
- {tremendous_python-5.12.0 → tremendous_python-5.14.0}/tremendous/models/allow_email.py +0 -0
- {tremendous_python-5.12.0 → tremendous_python-5.14.0}/tremendous/models/allow_email1.py +0 -0
- {tremendous_python-5.12.0 → tremendous_python-5.14.0}/tremendous/models/allow_ip.py +0 -0
- {tremendous_python-5.12.0 → tremendous_python-5.14.0}/tremendous/models/allow_ip1.py +0 -0
- {tremendous_python-5.12.0 → tremendous_python-5.14.0}/tremendous/models/balance_transaction_order.py +0 -0
- {tremendous_python-5.12.0 → tremendous_python-5.14.0}/tremendous/models/base_order_for_create.py +0 -0
- {tremendous_python-5.12.0 → tremendous_python-5.14.0}/tremendous/models/channel.py +0 -0
- {tremendous_python-5.12.0 → tremendous_python-5.14.0}/tremendous/models/connected_organization.py +0 -0
- {tremendous_python-5.12.0 → tremendous_python-5.14.0}/tremendous/models/connected_organization_member.py +0 -0
- {tremendous_python-5.12.0 → tremendous_python-5.14.0}/tremendous/models/connected_organization_member_member.py +0 -0
- {tremendous_python-5.12.0 → tremendous_python-5.14.0}/tremendous/models/connected_organization_member_session.py +0 -0
- {tremendous_python-5.12.0 → tremendous_python-5.14.0}/tremendous/models/create_api_key200_response.py +0 -0
- {tremendous_python-5.12.0 → tremendous_python-5.14.0}/tremendous/models/create_campaign200_response.py +0 -0
- {tremendous_python-5.12.0 → tremendous_python-5.14.0}/tremendous/models/create_campaign201_response.py +0 -0
- {tremendous_python-5.12.0 → tremendous_python-5.14.0}/tremendous/models/create_connected_organization200_response.py +0 -0
- {tremendous_python-5.12.0 → tremendous_python-5.14.0}/tremendous/models/create_connected_organization_member200_response.py +0 -0
- {tremendous_python-5.12.0 → tremendous_python-5.14.0}/tremendous/models/create_connected_organization_member_request.py +0 -0
- {tremendous_python-5.12.0 → tremendous_python-5.14.0}/tremendous/models/create_connected_organization_member_session200_response.py +0 -0
- {tremendous_python-5.12.0 → tremendous_python-5.14.0}/tremendous/models/create_connected_organization_member_session200_response_connected_organization_member_session.py +0 -0
- {tremendous_python-5.12.0 → tremendous_python-5.14.0}/tremendous/models/create_connected_organization_member_session_request.py +0 -0
- {tremendous_python-5.12.0 → tremendous_python-5.14.0}/tremendous/models/create_connected_organization_request.py +0 -0
- {tremendous_python-5.12.0 → tremendous_python-5.14.0}/tremendous/models/create_field.py +0 -0
- {tremendous_python-5.12.0 → tremendous_python-5.14.0}/tremendous/models/create_field200_response.py +0 -0
- {tremendous_python-5.12.0 → tremendous_python-5.14.0}/tremendous/models/create_field_request.py +0 -0
- {tremendous_python-5.12.0 → tremendous_python-5.14.0}/tremendous/models/create_field_request_data.py +0 -0
- {tremendous_python-5.12.0 → tremendous_python-5.14.0}/tremendous/models/create_invoice200_response.py +0 -0
- {tremendous_python-5.12.0 → tremendous_python-5.14.0}/tremendous/models/create_invoice_request.py +0 -0
- {tremendous_python-5.12.0 → tremendous_python-5.14.0}/tremendous/models/create_member.py +0 -0
- {tremendous_python-5.12.0 → tremendous_python-5.14.0}/tremendous/models/create_member200_response.py +0 -0
- {tremendous_python-5.12.0 → tremendous_python-5.14.0}/tremendous/models/create_member_request.py +0 -0
- {tremendous_python-5.12.0 → tremendous_python-5.14.0}/tremendous/models/create_order200_response.py +0 -0
- {tremendous_python-5.12.0 → tremendous_python-5.14.0}/tremendous/models/create_order200_response_order_rewards_inner.py +0 -0
- {tremendous_python-5.12.0 → tremendous_python-5.14.0}/tremendous/models/create_order200_response_order_rewards_inner_delivery.py +0 -0
- {tremendous_python-5.12.0 → tremendous_python-5.14.0}/tremendous/models/create_order201_response.py +0 -0
- {tremendous_python-5.12.0 → tremendous_python-5.14.0}/tremendous/models/create_order_request.py +0 -0
- {tremendous_python-5.12.0 → tremendous_python-5.14.0}/tremendous/models/create_organization200_response.py +0 -0
- {tremendous_python-5.12.0 → tremendous_python-5.14.0}/tremendous/models/create_organization_request_copy_settings.py +0 -0
- {tremendous_python-5.12.0 → tremendous_python-5.14.0}/tremendous/models/create_report200_response.py +0 -0
- {tremendous_python-5.12.0 → tremendous_python-5.14.0}/tremendous/models/create_report200_response_report.py +0 -0
- {tremendous_python-5.12.0 → tremendous_python-5.14.0}/tremendous/models/create_report201_response.py +0 -0
- {tremendous_python-5.12.0 → tremendous_python-5.14.0}/tremendous/models/create_report201_response_report.py +0 -0
- {tremendous_python-5.12.0 → tremendous_python-5.14.0}/tremendous/models/create_report_request.py +0 -0
- {tremendous_python-5.12.0 → tremendous_python-5.14.0}/tremendous/models/create_report_request_filters.py +0 -0
- {tremendous_python-5.12.0 → tremendous_python-5.14.0}/tremendous/models/create_report_request_filters_digital_rewards.py +0 -0
- {tremendous_python-5.12.0 → tremendous_python-5.14.0}/tremendous/models/create_report_request_filters_digital_rewards_amount.py +0 -0
- {tremendous_python-5.12.0 → tremendous_python-5.14.0}/tremendous/models/create_report_request_filters_digital_rewards_created_at.py +0 -0
- {tremendous_python-5.12.0 → tremendous_python-5.14.0}/tremendous/models/create_topup200_response.py +0 -0
- {tremendous_python-5.12.0 → tremendous_python-5.14.0}/tremendous/models/create_webhook200_response.py +0 -0
- {tremendous_python-5.12.0 → tremendous_python-5.14.0}/tremendous/models/create_webhook_request.py +0 -0
- {tremendous_python-5.12.0 → tremendous_python-5.14.0}/tremendous/models/currency_codes.py +0 -0
- {tremendous_python-5.12.0 → tremendous_python-5.14.0}/tremendous/models/custom_field.py +0 -0
- {tremendous_python-5.12.0 → tremendous_python-5.14.0}/tremendous/models/delete_fraud_rule200_response.py +0 -0
- {tremendous_python-5.12.0 → tremendous_python-5.14.0}/tremendous/models/delivery_details.py +0 -0
- {tremendous_python-5.12.0 → tremendous_python-5.14.0}/tremendous/models/delivery_details_with_link.py +0 -0
- {tremendous_python-5.12.0 → tremendous_python-5.14.0}/tremendous/models/delivery_metadata.py +0 -0
- {tremendous_python-5.12.0 → tremendous_python-5.14.0}/tremendous/models/delivery_method.py +0 -0
- {tremendous_python-5.12.0 → tremendous_python-5.14.0}/tremendous/models/delivery_status.py +0 -0
- {tremendous_python-5.12.0 → tremendous_python-5.14.0}/tremendous/models/error_model.py +0 -0
- {tremendous_python-5.12.0 → tremendous_python-5.14.0}/tremendous/models/fraud_config_allow_email.py +0 -0
- {tremendous_python-5.12.0 → tremendous_python-5.14.0}/tremendous/models/fraud_config_country.py +0 -0
- {tremendous_python-5.12.0 → tremendous_python-5.14.0}/tremendous/models/fraud_config_country_update_list.py +0 -0
- {tremendous_python-5.12.0 → tremendous_python-5.14.0}/tremendous/models/fraud_config_ip.py +0 -0
- {tremendous_python-5.12.0 → tremendous_python-5.14.0}/tremendous/models/fraud_config_redeemed_rewards_count.py +0 -0
- {tremendous_python-5.12.0 → tremendous_python-5.14.0}/tremendous/models/fraud_config_review_email.py +0 -0
- {tremendous_python-5.12.0 → tremendous_python-5.14.0}/tremendous/models/fraud_generic_response.py +0 -0
- {tremendous_python-5.12.0 → tremendous_python-5.14.0}/tremendous/models/fraud_review_base.py +0 -0
- {tremendous_python-5.12.0 → tremendous_python-5.14.0}/tremendous/models/fraud_review_geo.py +0 -0
- {tremendous_python-5.12.0 → tremendous_python-5.14.0}/tremendous/models/fraud_review_list_item.py +0 -0
- {tremendous_python-5.12.0 → tremendous_python-5.14.0}/tremendous/models/fraud_review_reason.py +0 -0
- {tremendous_python-5.12.0 → tremendous_python-5.14.0}/tremendous/models/fraud_review_redemption_method.py +0 -0
- {tremendous_python-5.12.0 → tremendous_python-5.14.0}/tremendous/models/fraud_review_risk.py +0 -0
- {tremendous_python-5.12.0 → tremendous_python-5.14.0}/tremendous/models/fraud_review_status.py +0 -0
- {tremendous_python-5.12.0 → tremendous_python-5.14.0}/tremendous/models/fraud_rule200_response.py +0 -0
- {tremendous_python-5.12.0 → tremendous_python-5.14.0}/tremendous/models/fraud_rule400_response.py +0 -0
- {tremendous_python-5.12.0 → tremendous_python-5.14.0}/tremendous/models/fraud_rule422_response.py +0 -0
- {tremendous_python-5.12.0 → tremendous_python-5.14.0}/tremendous/models/fraud_rule_request.py +0 -0
- {tremendous_python-5.12.0 → tremendous_python-5.14.0}/tremendous/models/fraud_rule_request_config.py +0 -0
- {tremendous_python-5.12.0 → tremendous_python-5.14.0}/tremendous/models/funding_source.py +0 -0
- {tremendous_python-5.12.0 → tremendous_python-5.14.0}/tremendous/models/generate_reward_link200_response.py +0 -0
- {tremendous_python-5.12.0 → tremendous_python-5.14.0}/tremendous/models/generate_reward_link200_response_reward.py +0 -0
- {tremendous_python-5.12.0 → tremendous_python-5.14.0}/tremendous/models/generate_reward_link403_response.py +0 -0
- {tremendous_python-5.12.0 → tremendous_python-5.14.0}/tremendous/models/generate_reward_token200_response.py +0 -0
- {tremendous_python-5.12.0 → tremendous_python-5.14.0}/tremendous/models/generate_reward_token200_response_reward.py +0 -0
- {tremendous_python-5.12.0 → tremendous_python-5.14.0}/tremendous/models/get_fraud_review200_response.py +0 -0
- {tremendous_python-5.12.0 → tremendous_python-5.14.0}/tremendous/models/get_fraud_review200_response_fraud_review.py +0 -0
- {tremendous_python-5.12.0 → tremendous_python-5.14.0}/tremendous/models/get_fraud_review200_response_fraud_review_geo.py +0 -0
- {tremendous_python-5.12.0 → tremendous_python-5.14.0}/tremendous/models/get_funding_source200_response.py +0 -0
- {tremendous_python-5.12.0 → tremendous_python-5.14.0}/tremendous/models/get_member200_response.py +0 -0
- {tremendous_python-5.12.0 → tremendous_python-5.14.0}/tremendous/models/get_member200_response_member.py +0 -0
- {tremendous_python-5.12.0 → tremendous_python-5.14.0}/tremendous/models/get_member200_response_member_events_inner.py +0 -0
- {tremendous_python-5.12.0 → tremendous_python-5.14.0}/tremendous/models/get_order200_response.py +0 -0
- {tremendous_python-5.12.0 → tremendous_python-5.14.0}/tremendous/models/get_organization200_response.py +0 -0
- {tremendous_python-5.12.0 → tremendous_python-5.14.0}/tremendous/models/get_product_response.py +0 -0
- {tremendous_python-5.12.0 → tremendous_python-5.14.0}/tremendous/models/get_reward200_response.py +0 -0
- {tremendous_python-5.12.0 → tremendous_python-5.14.0}/tremendous/models/inline_object.py +0 -0
- {tremendous_python-5.12.0 → tremendous_python-5.14.0}/tremendous/models/inline_object1.py +0 -0
- {tremendous_python-5.12.0 → tremendous_python-5.14.0}/tremendous/models/inline_object1_reward.py +0 -0
- {tremendous_python-5.12.0 → tremendous_python-5.14.0}/tremendous/models/list_balance_transactions200_response.py +0 -0
- {tremendous_python-5.12.0 → tremendous_python-5.14.0}/tremendous/models/list_balance_transactions200_response_transactions_inner_order.py +0 -0
- {tremendous_python-5.12.0 → tremendous_python-5.14.0}/tremendous/models/list_campaigns200_response.py +0 -0
- {tremendous_python-5.12.0 → tremendous_python-5.14.0}/tremendous/models/list_campaigns200_response_campaigns_inner_email_style.py +0 -0
- {tremendous_python-5.12.0 → tremendous_python-5.14.0}/tremendous/models/list_campaigns200_response_campaigns_inner_webpage_style.py +0 -0
- {tremendous_python-5.12.0 → tremendous_python-5.14.0}/tremendous/models/list_connected_organization_members200_response.py +0 -0
- {tremendous_python-5.12.0 → tremendous_python-5.14.0}/tremendous/models/list_connected_organization_members200_response_connected_organization_members_inner.py +0 -0
- {tremendous_python-5.12.0 → tremendous_python-5.14.0}/tremendous/models/list_connected_organization_members200_response_connected_organization_members_inner_member.py +0 -0
- {tremendous_python-5.12.0 → tremendous_python-5.14.0}/tremendous/models/list_connected_organizations200_response.py +0 -0
- {tremendous_python-5.12.0 → tremendous_python-5.14.0}/tremendous/models/list_connected_organizations200_response_connected_organizations_inner.py +0 -0
- {tremendous_python-5.12.0 → tremendous_python-5.14.0}/tremendous/models/list_fields200_response.py +0 -0
- {tremendous_python-5.12.0 → tremendous_python-5.14.0}/tremendous/models/list_fields200_response_fields_inner.py +0 -0
- {tremendous_python-5.12.0 → tremendous_python-5.14.0}/tremendous/models/list_fields200_response_fields_inner_data.py +0 -0
- {tremendous_python-5.12.0 → tremendous_python-5.14.0}/tremendous/models/list_forex_response.py +0 -0
- {tremendous_python-5.12.0 → tremendous_python-5.14.0}/tremendous/models/list_fraud_reviews200_response.py +0 -0
- {tremendous_python-5.12.0 → tremendous_python-5.14.0}/tremendous/models/list_fraud_reviews200_response_fraud_reviews_inner.py +0 -0
- {tremendous_python-5.12.0 → tremendous_python-5.14.0}/tremendous/models/list_fraud_reviews200_response_fraud_reviews_inner_geo.py +0 -0
- {tremendous_python-5.12.0 → tremendous_python-5.14.0}/tremendous/models/list_fraud_rules200_response.py +0 -0
- {tremendous_python-5.12.0 → tremendous_python-5.14.0}/tremendous/models/list_funding_sources200_response.py +0 -0
- {tremendous_python-5.12.0 → tremendous_python-5.14.0}/tremendous/models/list_funding_sources200_response_funding_sources_inner.py +0 -0
- {tremendous_python-5.12.0 → tremendous_python-5.14.0}/tremendous/models/list_funding_sources200_response_funding_sources_inner_meta_failure_details.py +0 -0
- {tremendous_python-5.12.0 → tremendous_python-5.14.0}/tremendous/models/list_invoices200_response.py +0 -0
- {tremendous_python-5.12.0 → tremendous_python-5.14.0}/tremendous/models/list_members200_response.py +0 -0
- {tremendous_python-5.12.0 → tremendous_python-5.14.0}/tremendous/models/list_members200_response_members_inner.py +0 -0
- {tremendous_python-5.12.0 → tremendous_python-5.14.0}/tremendous/models/list_orders200_response.py +0 -0
- {tremendous_python-5.12.0 → tremendous_python-5.14.0}/tremendous/models/list_organizations200_response.py +0 -0
- {tremendous_python-5.12.0 → tremendous_python-5.14.0}/tremendous/models/list_products_response.py +0 -0
- {tremendous_python-5.12.0 → tremendous_python-5.14.0}/tremendous/models/list_products_response_products_inner.py +0 -0
- {tremendous_python-5.12.0 → tremendous_python-5.14.0}/tremendous/models/list_products_response_products_inner_countries_inner.py +0 -0
- {tremendous_python-5.12.0 → tremendous_python-5.14.0}/tremendous/models/list_products_response_products_inner_documents.py +0 -0
- {tremendous_python-5.12.0 → tremendous_python-5.14.0}/tremendous/models/list_products_response_products_inner_images_inner.py +0 -0
- {tremendous_python-5.12.0 → tremendous_python-5.14.0}/tremendous/models/list_products_response_products_inner_skus_inner.py +0 -0
- {tremendous_python-5.12.0 → tremendous_python-5.14.0}/tremendous/models/list_rewards200_response.py +0 -0
- {tremendous_python-5.12.0 → tremendous_python-5.14.0}/tremendous/models/list_rewards200_response_rewards_inner.py +0 -0
- {tremendous_python-5.12.0 → tremendous_python-5.14.0}/tremendous/models/list_rewards200_response_rewards_inner_custom_fields_inner.py +0 -0
- {tremendous_python-5.12.0 → tremendous_python-5.14.0}/tremendous/models/list_rewards200_response_rewards_inner_delivery.py +0 -0
- {tremendous_python-5.12.0 → tremendous_python-5.14.0}/tremendous/models/list_rewards200_response_rewards_inner_value.py +0 -0
- {tremendous_python-5.12.0 → tremendous_python-5.14.0}/tremendous/models/list_rewards401_response.py +0 -0
- {tremendous_python-5.12.0 → tremendous_python-5.14.0}/tremendous/models/list_rewards401_response_errors.py +0 -0
- {tremendous_python-5.12.0 → tremendous_python-5.14.0}/tremendous/models/list_rewards429_response.py +0 -0
- {tremendous_python-5.12.0 → tremendous_python-5.14.0}/tremendous/models/list_roles200_response.py +0 -0
- {tremendous_python-5.12.0 → tremendous_python-5.14.0}/tremendous/models/list_roles200_response_roles_inner.py +0 -0
- {tremendous_python-5.12.0 → tremendous_python-5.14.0}/tremendous/models/list_topups200_response.py +0 -0
- {tremendous_python-5.12.0 → tremendous_python-5.14.0}/tremendous/models/list_webhook_events200_response.py +0 -0
- {tremendous_python-5.12.0 → tremendous_python-5.14.0}/tremendous/models/list_webhooks200_response.py +0 -0
- {tremendous_python-5.12.0 → tremendous_python-5.14.0}/tremendous/models/list_webhooks200_response_webhooks_inner.py +0 -0
- {tremendous_python-5.12.0 → tremendous_python-5.14.0}/tremendous/models/member.py +0 -0
- {tremendous_python-5.12.0 → tremendous_python-5.14.0}/tremendous/models/member_base.py +0 -0
- {tremendous_python-5.12.0 → tremendous_python-5.14.0}/tremendous/models/member_with_events.py +0 -0
- {tremendous_python-5.12.0 → tremendous_python-5.14.0}/tremendous/models/member_without_events.py +0 -0
- {tremendous_python-5.12.0 → tremendous_python-5.14.0}/tremendous/models/model_field.py +0 -0
- {tremendous_python-5.12.0 → tremendous_python-5.14.0}/tremendous/models/order_status.py +0 -0
- {tremendous_python-5.12.0 → tremendous_python-5.14.0}/tremendous/models/order_with_link_rewards_inner.py +0 -0
- {tremendous_python-5.12.0 → tremendous_python-5.14.0}/tremendous/models/order_without_link_rewards_inner.py +0 -0
- {tremendous_python-5.12.0 → tremendous_python-5.14.0}/tremendous/models/payout.py +0 -0
- {tremendous_python-5.12.0 → tremendous_python-5.14.0}/tremendous/models/product.py +0 -0
- {tremendous_python-5.12.0 → tremendous_python-5.14.0}/tremendous/models/product_documents.py +0 -0
- {tremendous_python-5.12.0 → tremendous_python-5.14.0}/tremendous/models/report.py +0 -0
- {tremendous_python-5.12.0 → tremendous_python-5.14.0}/tremendous/models/resend_reward422_response.py +0 -0
- {tremendous_python-5.12.0 → tremendous_python-5.14.0}/tremendous/models/resend_reward_request.py +0 -0
- {tremendous_python-5.12.0 → tremendous_python-5.14.0}/tremendous/models/review_country.py +0 -0
- {tremendous_python-5.12.0 → tremendous_python-5.14.0}/tremendous/models/review_country1.py +0 -0
- {tremendous_python-5.12.0 → tremendous_python-5.14.0}/tremendous/models/review_email.py +0 -0
- {tremendous_python-5.12.0 → tremendous_python-5.14.0}/tremendous/models/review_email1.py +0 -0
- {tremendous_python-5.12.0 → tremendous_python-5.14.0}/tremendous/models/review_ip.py +0 -0
- {tremendous_python-5.12.0 → tremendous_python-5.14.0}/tremendous/models/review_ip1.py +0 -0
- {tremendous_python-5.12.0 → tremendous_python-5.14.0}/tremendous/models/review_redeemed_rewards_count.py +0 -0
- {tremendous_python-5.12.0 → tremendous_python-5.14.0}/tremendous/models/reward.py +0 -0
- {tremendous_python-5.12.0 → tremendous_python-5.14.0}/tremendous/models/reward_base.py +0 -0
- {tremendous_python-5.12.0 → tremendous_python-5.14.0}/tremendous/models/reward_base_custom_fields_inner.py +0 -0
- {tremendous_python-5.12.0 → tremendous_python-5.14.0}/tremendous/models/reward_for_order_create.py +0 -0
- {tremendous_python-5.12.0 → tremendous_python-5.14.0}/tremendous/models/reward_link.py +0 -0
- {tremendous_python-5.12.0 → tremendous_python-5.14.0}/tremendous/models/reward_token.py +0 -0
- {tremendous_python-5.12.0 → tremendous_python-5.14.0}/tremendous/models/reward_value.py +0 -0
- {tremendous_python-5.12.0 → tremendous_python-5.14.0}/tremendous/models/reward_with_link.py +0 -0
- {tremendous_python-5.12.0 → tremendous_python-5.14.0}/tremendous/models/reward_with_link_delivery.py +0 -0
- {tremendous_python-5.12.0 → tremendous_python-5.14.0}/tremendous/models/reward_without_link.py +0 -0
- {tremendous_python-5.12.0 → tremendous_python-5.14.0}/tremendous/models/reward_without_link_delivery.py +0 -0
- {tremendous_python-5.12.0 → tremendous_python-5.14.0}/tremendous/models/role.py +0 -0
- {tremendous_python-5.12.0 → tremendous_python-5.14.0}/tremendous/models/simulate_webhook_request.py +0 -0
- {tremendous_python-5.12.0 → tremendous_python-5.14.0}/tremendous/models/single_reward_order.py +0 -0
- {tremendous_python-5.12.0 → tremendous_python-5.14.0}/tremendous/models/single_reward_order_payment.py +0 -0
- {tremendous_python-5.12.0 → tremendous_python-5.14.0}/tremendous/models/single_reward_order_reward.py +0 -0
- {tremendous_python-5.12.0 → tremendous_python-5.14.0}/tremendous/models/single_reward_order_reward_custom_fields_inner.py +0 -0
- {tremendous_python-5.12.0 → tremendous_python-5.14.0}/tremendous/models/single_reward_order_reward_delivery.py +0 -0
- {tremendous_python-5.12.0 → tremendous_python-5.14.0}/tremendous/models/single_reward_order_reward_delivery_meta.py +0 -0
- {tremendous_python-5.12.0 → tremendous_python-5.14.0}/tremendous/models/single_reward_order_with_link.py +0 -0
- {tremendous_python-5.12.0 → tremendous_python-5.14.0}/tremendous/models/single_reward_order_without_link.py +0 -0
- {tremendous_python-5.12.0 → tremendous_python-5.14.0}/tremendous/models/update_fraud_rule_list200_response.py +0 -0
- {tremendous_python-5.12.0 → tremendous_python-5.14.0}/tremendous/models/update_fraud_rule_list_request.py +0 -0
- {tremendous_python-5.12.0 → tremendous_python-5.14.0}/tremendous/models/update_fraud_rule_list_request_config.py +0 -0
- {tremendous_python-5.12.0 → tremendous_python-5.14.0}/tremendous/models/webhook.py +0 -0
- {tremendous_python-5.12.0 → tremendous_python-5.14.0}/tremendous/models/webhook_post.py +0 -0
- {tremendous_python-5.12.0 → tremendous_python-5.14.0}/tremendous/py.typed +0 -0
- {tremendous_python-5.12.0 → tremendous_python-5.14.0}/tremendous/rest.py +0 -0
- {tremendous_python-5.12.0 → tremendous_python-5.14.0}/tremendous_python.egg-info/SOURCES.txt +0 -0
- {tremendous_python-5.12.0 → tremendous_python-5.14.0}/tremendous_python.egg-info/dependency_links.txt +0 -0
- {tremendous_python-5.12.0 → tremendous_python-5.14.0}/tremendous_python.egg-info/requires.txt +0 -0
- {tremendous_python-5.12.0 → tremendous_python-5.14.0}/tremendous_python.egg-info/top_level.txt +0 -0
{tremendous_python-5.12.0 → tremendous_python-5.14.0}/tremendous/models/balance_transaction.py
RENAMED
|
@@ -30,12 +30,13 @@ class BalanceTransaction(BaseModel):
|
|
|
30
30
|
A balance transaction represents a specific movement or change in an account's balance.
|
|
31
31
|
""" # noqa: E501
|
|
32
32
|
created_at: datetime = Field(description="Date that the transaction was created")
|
|
33
|
-
amount: Union[StrictFloat, StrictInt] = Field(description="Amount of the transaction in
|
|
34
|
-
|
|
33
|
+
amount: Union[StrictFloat, StrictInt] = Field(description="Amount of the transaction, denominated in `currency_code`.")
|
|
34
|
+
currency_code: StrictStr = Field(description="Currency of the transaction amount and running balance. Always matches the organization's currency.")
|
|
35
|
+
balance: Union[StrictFloat, StrictInt] = Field(description="The updated total after the transaction, denominated in `currency_code`. Note that this running balance may be delayed and contain `null`.")
|
|
35
36
|
action: StrictStr = Field(description="The action that was performed")
|
|
36
37
|
description: StrictStr = Field(description="A brief description of the transaction")
|
|
37
38
|
order: Optional[BalanceTransactionOrder] = None
|
|
38
|
-
__properties: ClassVar[List[str]] = ["created_at", "amount", "balance", "action", "description", "order"]
|
|
39
|
+
__properties: ClassVar[List[str]] = ["created_at", "amount", "currency_code", "balance", "action", "description", "order"]
|
|
39
40
|
|
|
40
41
|
model_config = ConfigDict(
|
|
41
42
|
populate_by_name=True,
|
|
@@ -93,6 +94,7 @@ class BalanceTransaction(BaseModel):
|
|
|
93
94
|
_obj = cls.model_validate({
|
|
94
95
|
"created_at": obj.get("created_at"),
|
|
95
96
|
"amount": obj.get("amount"),
|
|
97
|
+
"currency_code": obj.get("currency_code"),
|
|
96
98
|
"balance": obj.get("balance"),
|
|
97
99
|
"action": obj.get("action"),
|
|
98
100
|
"description": obj.get("description"),
|
|
@@ -18,7 +18,7 @@ import pprint
|
|
|
18
18
|
import re # noqa: F401
|
|
19
19
|
import json
|
|
20
20
|
|
|
21
|
-
from pydantic import BaseModel, ConfigDict, Field
|
|
21
|
+
from pydantic import BaseModel, ConfigDict, Field, StrictStr
|
|
22
22
|
from typing import Any, ClassVar, Dict, List, Optional, Union
|
|
23
23
|
from typing_extensions import Annotated
|
|
24
24
|
from tremendous.models.payment_details_refund import PaymentDetailsRefund
|
|
@@ -29,12 +29,13 @@ class BalanceTransactionOrderPayment(BaseModel):
|
|
|
29
29
|
"""
|
|
30
30
|
BalanceTransactionOrderPayment
|
|
31
31
|
""" # noqa: E501
|
|
32
|
-
subtotal: Union[Annotated[float, Field(strict=True, ge=0)], Annotated[int, Field(strict=True, ge=0)]] = Field(description="Total price of the order before fees
|
|
33
|
-
total: Union[Annotated[float, Field(strict=True, ge=0)], Annotated[int, Field(strict=True, ge=0)]] = Field(description="Total price of the order including fees
|
|
34
|
-
fees: Union[Annotated[float, Field(strict=True, ge=0)], Annotated[int, Field(strict=True, ge=0)]] = Field(description="Fees for the order
|
|
35
|
-
discount: Union[Annotated[float, Field(strict=True, ge=0)], Annotated[int, Field(strict=True, ge=0)]] = Field(description="Discount for the order
|
|
32
|
+
subtotal: Union[Annotated[float, Field(strict=True, ge=0)], Annotated[int, Field(strict=True, ge=0)]] = Field(description="Total price of the order before fees, denominated in `currency_code`.")
|
|
33
|
+
total: Union[Annotated[float, Field(strict=True, ge=0)], Annotated[int, Field(strict=True, ge=0)]] = Field(description="Total price of the order including fees, denominated in `currency_code`.")
|
|
34
|
+
fees: Union[Annotated[float, Field(strict=True, ge=0)], Annotated[int, Field(strict=True, ge=0)]] = Field(description="Fees for the order, denominated in `currency_code`.")
|
|
35
|
+
discount: Union[Annotated[float, Field(strict=True, ge=0)], Annotated[int, Field(strict=True, ge=0)]] = Field(description="Discount for the order, denominated in `currency_code`.")
|
|
36
|
+
currency_code: StrictStr = Field(description="Currency in which the payment amounts (subtotal, total, fees, discount, refund) are denominated. This always matches the organization's currency. ")
|
|
36
37
|
refund: Optional[PaymentDetailsRefund] = None
|
|
37
|
-
__properties: ClassVar[List[str]] = ["subtotal", "total", "fees", "discount", "refund"]
|
|
38
|
+
__properties: ClassVar[List[str]] = ["subtotal", "total", "fees", "discount", "currency_code", "refund"]
|
|
38
39
|
|
|
39
40
|
model_config = ConfigDict(
|
|
40
41
|
populate_by_name=True,
|
|
@@ -70,12 +71,14 @@ class BalanceTransactionOrderPayment(BaseModel):
|
|
|
70
71
|
* OpenAPI `readOnly` fields are excluded.
|
|
71
72
|
* OpenAPI `readOnly` fields are excluded.
|
|
72
73
|
* OpenAPI `readOnly` fields are excluded.
|
|
74
|
+
* OpenAPI `readOnly` fields are excluded.
|
|
73
75
|
"""
|
|
74
76
|
excluded_fields: Set[str] = set([
|
|
75
77
|
"subtotal",
|
|
76
78
|
"total",
|
|
77
79
|
"fees",
|
|
78
80
|
"discount",
|
|
81
|
+
"currency_code",
|
|
79
82
|
])
|
|
80
83
|
|
|
81
84
|
_dict = self.model_dump(
|
|
@@ -102,6 +105,7 @@ class BalanceTransactionOrderPayment(BaseModel):
|
|
|
102
105
|
"total": obj.get("total"),
|
|
103
106
|
"fees": obj.get("fees"),
|
|
104
107
|
"discount": obj.get("discount"),
|
|
108
|
+
"currency_code": obj.get("currency_code"),
|
|
105
109
|
"refund": PaymentDetailsRefund.from_dict(obj["refund"]) if obj.get("refund") is not None else None
|
|
106
110
|
})
|
|
107
111
|
return _obj
|
|
@@ -34,9 +34,10 @@ class Campaign(BaseModel):
|
|
|
34
34
|
name: StrictStr = Field(description="Name of the campaign")
|
|
35
35
|
description: Optional[StrictStr] = Field(description="Description of the campaign")
|
|
36
36
|
products: List[Annotated[str, Field(strict=True)]] = Field(description="List of IDs of products (different gift cards, charity, etc.) that are available in this campaign. ")
|
|
37
|
+
fee_charged_to: Optional[StrictStr] = Field(default=None, description="Determines whether fees for premium products are added to the order total (`SENDER`) or deducted from the recipient's reward amount (`RECIPIENT`). Campaigns with `RECIPIENT` must include at least one fee-free product. ")
|
|
37
38
|
webpage_style: Optional[ListCampaigns200ResponseCampaignsInnerWebpageStyle] = None
|
|
38
39
|
email_style: Optional[ListCampaigns200ResponseCampaignsInnerEmailStyle] = None
|
|
39
|
-
__properties: ClassVar[List[str]] = ["id", "name", "description", "products", "webpage_style", "email_style"]
|
|
40
|
+
__properties: ClassVar[List[str]] = ["id", "name", "description", "products", "fee_charged_to", "webpage_style", "email_style"]
|
|
40
41
|
|
|
41
42
|
@field_validator('id')
|
|
42
43
|
def id_validate_regular_expression(cls, value):
|
|
@@ -48,6 +49,16 @@ class Campaign(BaseModel):
|
|
|
48
49
|
raise ValueError(r"must validate the regular expression /[A-Z0-9]{4,20}/")
|
|
49
50
|
return value
|
|
50
51
|
|
|
52
|
+
@field_validator('fee_charged_to')
|
|
53
|
+
def fee_charged_to_validate_enum(cls, value):
|
|
54
|
+
"""Validates the enum"""
|
|
55
|
+
if value is None:
|
|
56
|
+
return value
|
|
57
|
+
|
|
58
|
+
if value not in set(['SENDER', 'RECIPIENT']):
|
|
59
|
+
raise ValueError("must be one of enum values ('SENDER', 'RECIPIENT')")
|
|
60
|
+
return value
|
|
61
|
+
|
|
51
62
|
model_config = ConfigDict(
|
|
52
63
|
populate_by_name=True,
|
|
53
64
|
validate_assignment=True,
|
|
@@ -100,6 +111,11 @@ class Campaign(BaseModel):
|
|
|
100
111
|
if self.description is None and "description" in self.model_fields_set:
|
|
101
112
|
_dict['description'] = None
|
|
102
113
|
|
|
114
|
+
# set to None if fee_charged_to (nullable) is None
|
|
115
|
+
# and model_fields_set contains the field
|
|
116
|
+
if self.fee_charged_to is None and "fee_charged_to" in self.model_fields_set:
|
|
117
|
+
_dict['fee_charged_to'] = None
|
|
118
|
+
|
|
103
119
|
return _dict
|
|
104
120
|
|
|
105
121
|
@classmethod
|
|
@@ -116,6 +132,7 @@ class Campaign(BaseModel):
|
|
|
116
132
|
"name": obj.get("name"),
|
|
117
133
|
"description": obj.get("description"),
|
|
118
134
|
"products": obj.get("products"),
|
|
135
|
+
"fee_charged_to": obj.get("fee_charged_to"),
|
|
119
136
|
"webpage_style": ListCampaigns200ResponseCampaignsInnerWebpageStyle.from_dict(obj["webpage_style"]) if obj.get("webpage_style") is not None else None,
|
|
120
137
|
"email_style": ListCampaigns200ResponseCampaignsInnerEmailStyle.from_dict(obj["email_style"]) if obj.get("email_style") is not None else None
|
|
121
138
|
})
|
|
@@ -34,9 +34,10 @@ class CampaignBase(BaseModel):
|
|
|
34
34
|
name: Optional[StrictStr] = Field(default=None, description="Name of the campaign")
|
|
35
35
|
description: Optional[StrictStr] = Field(default=None, description="Description of the campaign")
|
|
36
36
|
products: Optional[List[Annotated[str, Field(strict=True)]]] = Field(default=None, description="List of IDs of products (different gift cards, charity, etc.) that are available in this campaign. ")
|
|
37
|
+
fee_charged_to: Optional[StrictStr] = Field(default=None, description="Determines whether fees for premium products are added to the order total (`SENDER`) or deducted from the recipient's reward amount (`RECIPIENT`). Campaigns with `RECIPIENT` must include at least one fee-free product. ")
|
|
37
38
|
webpage_style: Optional[ListCampaigns200ResponseCampaignsInnerWebpageStyle] = None
|
|
38
39
|
email_style: Optional[ListCampaigns200ResponseCampaignsInnerEmailStyle] = None
|
|
39
|
-
__properties: ClassVar[List[str]] = ["id", "name", "description", "products", "webpage_style", "email_style"]
|
|
40
|
+
__properties: ClassVar[List[str]] = ["id", "name", "description", "products", "fee_charged_to", "webpage_style", "email_style"]
|
|
40
41
|
|
|
41
42
|
@field_validator('id')
|
|
42
43
|
def id_validate_regular_expression(cls, value):
|
|
@@ -48,6 +49,16 @@ class CampaignBase(BaseModel):
|
|
|
48
49
|
raise ValueError(r"must validate the regular expression /[A-Z0-9]{4,20}/")
|
|
49
50
|
return value
|
|
50
51
|
|
|
52
|
+
@field_validator('fee_charged_to')
|
|
53
|
+
def fee_charged_to_validate_enum(cls, value):
|
|
54
|
+
"""Validates the enum"""
|
|
55
|
+
if value is None:
|
|
56
|
+
return value
|
|
57
|
+
|
|
58
|
+
if value not in set(['SENDER', 'RECIPIENT']):
|
|
59
|
+
raise ValueError("must be one of enum values ('SENDER', 'RECIPIENT')")
|
|
60
|
+
return value
|
|
61
|
+
|
|
51
62
|
model_config = ConfigDict(
|
|
52
63
|
populate_by_name=True,
|
|
53
64
|
validate_assignment=True,
|
|
@@ -100,6 +111,11 @@ class CampaignBase(BaseModel):
|
|
|
100
111
|
if self.description is None and "description" in self.model_fields_set:
|
|
101
112
|
_dict['description'] = None
|
|
102
113
|
|
|
114
|
+
# set to None if fee_charged_to (nullable) is None
|
|
115
|
+
# and model_fields_set contains the field
|
|
116
|
+
if self.fee_charged_to is None and "fee_charged_to" in self.model_fields_set:
|
|
117
|
+
_dict['fee_charged_to'] = None
|
|
118
|
+
|
|
103
119
|
return _dict
|
|
104
120
|
|
|
105
121
|
@classmethod
|
|
@@ -116,6 +132,7 @@ class CampaignBase(BaseModel):
|
|
|
116
132
|
"name": obj.get("name"),
|
|
117
133
|
"description": obj.get("description"),
|
|
118
134
|
"products": obj.get("products"),
|
|
135
|
+
"fee_charged_to": obj.get("fee_charged_to"),
|
|
119
136
|
"webpage_style": ListCampaigns200ResponseCampaignsInnerWebpageStyle.from_dict(obj["webpage_style"]) if obj.get("webpage_style") is not None else None,
|
|
120
137
|
"email_style": ListCampaigns200ResponseCampaignsInnerEmailStyle.from_dict(obj["email_style"]) if obj.get("email_style") is not None else None
|
|
121
138
|
})
|
|
@@ -32,9 +32,10 @@ class ConnectedOrganizationOrganization(BaseModel):
|
|
|
32
32
|
id: Optional[Annotated[str, Field(strict=True)]] = None
|
|
33
33
|
name: StrictStr = Field(description="Name of the organization")
|
|
34
34
|
website: StrictStr = Field(description="URL of the website of that organization")
|
|
35
|
+
currency_code: Optional[StrictStr] = Field(default=None, description="Currency used for this organization's balances, orders, and transactions.")
|
|
35
36
|
status: Optional[StrictStr] = Field(default=None, description="Status of the organization. Organizations need to be approved to be able to use them to send out rewards.")
|
|
36
37
|
created_at: Optional[date] = Field(default=None, description="Timestamp of when the organization has been created. *This field is only returned when creating an organization.* It is not returned anymore when retrieving or listing organizations. ")
|
|
37
|
-
__properties: ClassVar[List[str]] = ["id", "name", "website", "status", "created_at"]
|
|
38
|
+
__properties: ClassVar[List[str]] = ["id", "name", "website", "currency_code", "status", "created_at"]
|
|
38
39
|
|
|
39
40
|
@field_validator('id')
|
|
40
41
|
def id_validate_regular_expression(cls, value):
|
|
@@ -116,6 +117,7 @@ class ConnectedOrganizationOrganization(BaseModel):
|
|
|
116
117
|
"id": obj.get("id"),
|
|
117
118
|
"name": obj.get("name"),
|
|
118
119
|
"website": obj.get("website"),
|
|
120
|
+
"currency_code": obj.get("currency_code"),
|
|
119
121
|
"status": obj.get("status"),
|
|
120
122
|
"created_at": obj.get("created_at")
|
|
121
123
|
})
|
{tremendous_python-5.12.0 → tremendous_python-5.14.0}/tremendous/models/create_campaign_request.py
RENAMED
|
@@ -33,9 +33,20 @@ class CreateCampaignRequest(BaseModel):
|
|
|
33
33
|
name: StrictStr = Field(description="Name of the campaign")
|
|
34
34
|
description: Optional[StrictStr] = Field(description="Description of the campaign")
|
|
35
35
|
products: List[Annotated[str, Field(strict=True)]] = Field(description="List of IDs of products (different gift cards, charity, etc.) that are available in this campaign. ")
|
|
36
|
+
fee_charged_to: Optional[StrictStr] = Field(default=None, description="Determines whether fees for premium products are added to the order total (`SENDER`) or deducted from the recipient's reward amount (`RECIPIENT`). Campaigns with `RECIPIENT` must include at least one fee-free product. ")
|
|
36
37
|
webpage_style: Optional[ListCampaigns200ResponseCampaignsInnerWebpageStyle] = None
|
|
37
38
|
email_style: Optional[ListCampaigns200ResponseCampaignsInnerEmailStyle] = None
|
|
38
|
-
__properties: ClassVar[List[str]] = ["name", "description", "products", "webpage_style", "email_style"]
|
|
39
|
+
__properties: ClassVar[List[str]] = ["name", "description", "products", "fee_charged_to", "webpage_style", "email_style"]
|
|
40
|
+
|
|
41
|
+
@field_validator('fee_charged_to')
|
|
42
|
+
def fee_charged_to_validate_enum(cls, value):
|
|
43
|
+
"""Validates the enum"""
|
|
44
|
+
if value is None:
|
|
45
|
+
return value
|
|
46
|
+
|
|
47
|
+
if value not in set(['SENDER', 'RECIPIENT']):
|
|
48
|
+
raise ValueError("must be one of enum values ('SENDER', 'RECIPIENT')")
|
|
49
|
+
return value
|
|
39
50
|
|
|
40
51
|
model_config = ConfigDict(
|
|
41
52
|
populate_by_name=True,
|
|
@@ -87,6 +98,11 @@ class CreateCampaignRequest(BaseModel):
|
|
|
87
98
|
if self.description is None and "description" in self.model_fields_set:
|
|
88
99
|
_dict['description'] = None
|
|
89
100
|
|
|
101
|
+
# set to None if fee_charged_to (nullable) is None
|
|
102
|
+
# and model_fields_set contains the field
|
|
103
|
+
if self.fee_charged_to is None and "fee_charged_to" in self.model_fields_set:
|
|
104
|
+
_dict['fee_charged_to'] = None
|
|
105
|
+
|
|
90
106
|
return _dict
|
|
91
107
|
|
|
92
108
|
@classmethod
|
|
@@ -102,6 +118,7 @@ class CreateCampaignRequest(BaseModel):
|
|
|
102
118
|
"name": obj.get("name"),
|
|
103
119
|
"description": obj.get("description"),
|
|
104
120
|
"products": obj.get("products"),
|
|
121
|
+
"fee_charged_to": obj.get("fee_charged_to"),
|
|
105
122
|
"webpage_style": ListCampaigns200ResponseCampaignsInnerWebpageStyle.from_dict(obj["webpage_style"]) if obj.get("webpage_style") is not None else None,
|
|
106
123
|
"email_style": ListCampaigns200ResponseCampaignsInnerEmailStyle.from_dict(obj["email_style"]) if obj.get("email_style") is not None else None
|
|
107
124
|
})
|
|
@@ -34,7 +34,7 @@ class CreateOrder200ResponseOrder(BaseModel):
|
|
|
34
34
|
id: Annotated[str, Field(strict=True)] = Field(description="Tremendous ID of the order")
|
|
35
35
|
external_id: Optional[StrictStr] = Field(default=None, description="Reference for this order, supplied by the customer. When set, `external_id` makes order idempotent. All requests that use the same `external_id` after the initial order creation, will result in a response that returns the data of the initially created order. The response will have a `201` response code. These responses **fail** to create any further orders. It also allows for retrieving by `external_id` instead of `id` only. ")
|
|
36
36
|
campaign_id: Optional[Annotated[str, Field(strict=True)]] = Field(default=None, description="ID of the campaign in your account, that defines the available products (different gift cards, charity, etc.) that the recipient can choose from. ")
|
|
37
|
-
created_at: datetime = Field(description="Date the order
|
|
37
|
+
created_at: datetime = Field(description="Date the order was created")
|
|
38
38
|
status: StrictStr = Field(description="Execution status of a given order <table> <thead> <tr> <th> Status </th> <th> Description </th> </tr> </thead> <tbody> <tr> <td> <code> CANCELED </code> </td> <td> The order and all of its rewards were canceled. </td> </tr> <tr> <td> <code> OPEN </code> </td> <td> The order has been created, but hasn't yet been processed. </td> </tr> <tr> <td> <code> EXECUTED </code> </td> <td> The order has been executed. Payment has been handled and rewards are being delivered (if applicable). </td> </tr> <tr> <td> <code> FAILED </code> </td> <td> The order could not be processed due to an error. E.g. due to insufficient funds in the account. </td> </tr> <tr> <td> <code> PENDING APPROVAL </code> </td> <td> The order has been created but needs approval to be executed. </td> </tr> <tr> <td> <code> PENDING INTERNAL PAYMENT APPROVAL </code> </td> <td> The order has been created but it is under review and requires approval from our team. </td> </tr> <tr> <td> <code> PENDING SETTLEMENT </code> </td> <td> The order has been created but the funds are being held until the settlement window clears. </td> </tr> </tbody> </table> ")
|
|
39
39
|
channel: Optional[StrictStr] = Field(default=None, description="Name of the channel in which the order was created")
|
|
40
40
|
payment: Optional[ListOrders200ResponseOrdersInnerPayment] = None
|
{tremendous_python-5.12.0 → tremendous_python-5.14.0}/tremendous/models/create_organization.py
RENAMED
|
@@ -36,8 +36,9 @@ class CreateOrganization(BaseModel):
|
|
|
36
36
|
with_api_key: StrictBool = Field(description="Default value is `false`. Set to true to also generate an API key associated to the new organization.")
|
|
37
37
|
copy_settings: Optional[CreateOrganizationRequestCopySettings] = None
|
|
38
38
|
phone: Optional[StrictStr] = Field(default=None, description="Phone number of the organization. For non-US phone numbers, specify the country code (prefixed with +).")
|
|
39
|
+
currency_code: Optional[StrictStr] = Field(default=None, description="Currency code for the new organization. Defaults to the current organization's currency if not provided.")
|
|
39
40
|
created_at: Optional[date] = Field(default=None, description="Timestamp of when the organization has been created. ")
|
|
40
|
-
__properties: ClassVar[List[str]] = ["id", "name", "website", "with_api_key", "copy_settings", "phone", "created_at"]
|
|
41
|
+
__properties: ClassVar[List[str]] = ["id", "name", "website", "with_api_key", "copy_settings", "phone", "currency_code", "created_at"]
|
|
41
42
|
|
|
42
43
|
@field_validator('id')
|
|
43
44
|
def id_validate_regular_expression(cls, value):
|
|
@@ -113,6 +114,7 @@ class CreateOrganization(BaseModel):
|
|
|
113
114
|
"with_api_key": obj.get("with_api_key"),
|
|
114
115
|
"copy_settings": CreateOrganizationRequestCopySettings.from_dict(obj["copy_settings"]) if obj.get("copy_settings") is not None else None,
|
|
115
116
|
"phone": obj.get("phone"),
|
|
117
|
+
"currency_code": obj.get("currency_code"),
|
|
116
118
|
"created_at": obj.get("created_at")
|
|
117
119
|
})
|
|
118
120
|
return _obj
|
|
@@ -35,9 +35,10 @@ class CreateOrganization200ResponseOrganization(BaseModel):
|
|
|
35
35
|
website: StrictStr = Field(description="URL of the website of that organization")
|
|
36
36
|
copy_settings: Optional[CreateOrganizationRequestCopySettings] = None
|
|
37
37
|
phone: Optional[StrictStr] = Field(default=None, description="Phone number of the organization. For non-US phone numbers, specify the country code (prefixed with +).")
|
|
38
|
+
currency_code: Optional[StrictStr] = Field(default=None, description="Currency code for the new organization. Defaults to the current organization's currency if not provided.")
|
|
38
39
|
created_at: Optional[date] = Field(default=None, description="Timestamp of when the organization has been created. ")
|
|
39
40
|
api_key: Optional[StrictStr] = Field(default=None, description="The API key for the created organization. This property is only returned when `api_key` is set to `true`. ")
|
|
40
|
-
__properties: ClassVar[List[str]] = ["id", "name", "website", "copy_settings", "phone", "created_at", "api_key"]
|
|
41
|
+
__properties: ClassVar[List[str]] = ["id", "name", "website", "copy_settings", "phone", "currency_code", "created_at", "api_key"]
|
|
41
42
|
|
|
42
43
|
@field_validator('id')
|
|
43
44
|
def id_validate_regular_expression(cls, value):
|
|
@@ -113,6 +114,7 @@ class CreateOrganization200ResponseOrganization(BaseModel):
|
|
|
113
114
|
"website": obj.get("website"),
|
|
114
115
|
"copy_settings": CreateOrganizationRequestCopySettings.from_dict(obj["copy_settings"]) if obj.get("copy_settings") is not None else None,
|
|
115
116
|
"phone": obj.get("phone"),
|
|
117
|
+
"currency_code": obj.get("currency_code"),
|
|
116
118
|
"created_at": obj.get("created_at"),
|
|
117
119
|
"api_key": obj.get("api_key")
|
|
118
120
|
})
|
|
@@ -36,8 +36,9 @@ class CreateOrganizationForResponse(BaseModel):
|
|
|
36
36
|
with_api_key: Optional[StrictBool] = Field(default=None, description="Default value is `false`. Set to true to also generate an API key associated to the new organization.")
|
|
37
37
|
copy_settings: Optional[CreateOrganizationRequestCopySettings] = None
|
|
38
38
|
phone: Optional[StrictStr] = Field(default=None, description="Phone number of the organization. For non-US phone numbers, specify the country code (prefixed with +).")
|
|
39
|
+
currency_code: Optional[StrictStr] = Field(default=None, description="Currency code for the new organization. Defaults to the current organization's currency if not provided.")
|
|
39
40
|
created_at: Optional[date] = Field(default=None, description="Timestamp of when the organization has been created. ")
|
|
40
|
-
__properties: ClassVar[List[str]] = ["id", "name", "website", "with_api_key", "copy_settings", "phone", "created_at"]
|
|
41
|
+
__properties: ClassVar[List[str]] = ["id", "name", "website", "with_api_key", "copy_settings", "phone", "currency_code", "created_at"]
|
|
41
42
|
|
|
42
43
|
@field_validator('id')
|
|
43
44
|
def id_validate_regular_expression(cls, value):
|
|
@@ -118,6 +119,7 @@ class CreateOrganizationForResponse(BaseModel):
|
|
|
118
119
|
"with_api_key": obj.get("with_api_key"),
|
|
119
120
|
"copy_settings": CreateOrganizationRequestCopySettings.from_dict(obj["copy_settings"]) if obj.get("copy_settings") is not None else None,
|
|
120
121
|
"phone": obj.get("phone"),
|
|
122
|
+
"currency_code": obj.get("currency_code"),
|
|
121
123
|
"created_at": obj.get("created_at")
|
|
122
124
|
})
|
|
123
125
|
return _obj
|
|
@@ -36,8 +36,9 @@ class CreateOrganizationProperties(BaseModel):
|
|
|
36
36
|
with_api_key: Optional[StrictBool] = Field(default=None, description="Default value is `false`. Set to true to also generate an API key associated to the new organization.")
|
|
37
37
|
copy_settings: Optional[CreateOrganizationRequestCopySettings] = None
|
|
38
38
|
phone: Optional[StrictStr] = Field(default=None, description="Phone number of the organization. For non-US phone numbers, specify the country code (prefixed with +).")
|
|
39
|
+
currency_code: Optional[StrictStr] = Field(default=None, description="Currency code for the new organization. Defaults to the current organization's currency if not provided.")
|
|
39
40
|
created_at: Optional[date] = Field(default=None, description="Timestamp of when the organization has been created. ")
|
|
40
|
-
__properties: ClassVar[List[str]] = ["id", "name", "website", "with_api_key", "copy_settings", "phone", "created_at"]
|
|
41
|
+
__properties: ClassVar[List[str]] = ["id", "name", "website", "with_api_key", "copy_settings", "phone", "currency_code", "created_at"]
|
|
41
42
|
|
|
42
43
|
@field_validator('id')
|
|
43
44
|
def id_validate_regular_expression(cls, value):
|
|
@@ -113,6 +114,7 @@ class CreateOrganizationProperties(BaseModel):
|
|
|
113
114
|
"with_api_key": obj.get("with_api_key"),
|
|
114
115
|
"copy_settings": CreateOrganizationRequestCopySettings.from_dict(obj["copy_settings"]) if obj.get("copy_settings") is not None else None,
|
|
115
116
|
"phone": obj.get("phone"),
|
|
117
|
+
"currency_code": obj.get("currency_code"),
|
|
116
118
|
"created_at": obj.get("created_at")
|
|
117
119
|
})
|
|
118
120
|
return _obj
|
|
@@ -33,7 +33,8 @@ class CreateOrganizationRequest(BaseModel):
|
|
|
33
33
|
with_api_key: StrictBool = Field(description="Default value is `false`. Set to true to also generate an API key associated to the new organization.")
|
|
34
34
|
copy_settings: Optional[CreateOrganizationRequestCopySettings] = None
|
|
35
35
|
phone: Optional[StrictStr] = Field(default=None, description="Phone number of the organization. For non-US phone numbers, specify the country code (prefixed with +).")
|
|
36
|
-
|
|
36
|
+
currency_code: Optional[StrictStr] = Field(default=None, description="Currency code for the new organization. Defaults to the current organization's currency if not provided.")
|
|
37
|
+
__properties: ClassVar[List[str]] = ["name", "website", "with_api_key", "copy_settings", "phone", "currency_code"]
|
|
37
38
|
|
|
38
39
|
model_config = ConfigDict(
|
|
39
40
|
populate_by_name=True,
|
|
@@ -93,7 +94,8 @@ class CreateOrganizationRequest(BaseModel):
|
|
|
93
94
|
"website": obj.get("website"),
|
|
94
95
|
"with_api_key": obj.get("with_api_key"),
|
|
95
96
|
"copy_settings": CreateOrganizationRequestCopySettings.from_dict(obj["copy_settings"]) if obj.get("copy_settings") is not None else None,
|
|
96
|
-
"phone": obj.get("phone")
|
|
97
|
+
"phone": obj.get("phone"),
|
|
98
|
+
"currency_code": obj.get("currency_code")
|
|
97
99
|
})
|
|
98
100
|
return _obj
|
|
99
101
|
|
{tremendous_python-5.12.0 → tremendous_python-5.14.0}/tremendous/models/create_topup_request.py
RENAMED
|
@@ -29,7 +29,7 @@ class CreateTopupRequest(BaseModel):
|
|
|
29
29
|
""" # noqa: E501
|
|
30
30
|
funding_source_id: StrictStr = Field(description="The ID of the funding source to top up.")
|
|
31
31
|
idempotency_key: StrictStr = Field(description="Unique key that ensures this request is only processed once. ")
|
|
32
|
-
amount: Union[StrictFloat, StrictInt] = Field(description="Amount
|
|
32
|
+
amount: Union[StrictFloat, StrictInt] = Field(description="Amount to add to your organization's balance, denominated in `currency_code`.")
|
|
33
33
|
__properties: ClassVar[List[str]] = ["funding_source_id", "idempotency_key", "amount"]
|
|
34
34
|
|
|
35
35
|
model_config = ConfigDict(
|
|
@@ -28,7 +28,7 @@ class FraudConfigRedeemedRewardsAmount(BaseModel):
|
|
|
28
28
|
"""
|
|
29
29
|
FraudConfigRedeemedRewardsAmount
|
|
30
30
|
""" # noqa: E501
|
|
31
|
-
amount: Union[Annotated[float, Field(strict=True, ge=1)], Annotated[int, Field(strict=True, ge=1)]] = Field(description="The total amount
|
|
31
|
+
amount: Union[Annotated[float, Field(strict=True, ge=1)], Annotated[int, Field(strict=True, ge=1)]] = Field(description="The total amount of redeemed rewards to use as a threshold. The amount is denominated in the organization's currency.")
|
|
32
32
|
period: StrictStr = Field(description="The period, in days, to consider for the count. Use `all_time` to consider any redeemed rewards.")
|
|
33
33
|
__properties: ClassVar[List[str]] = ["amount", "period"]
|
|
34
34
|
|
|
@@ -21,7 +21,7 @@ import json
|
|
|
21
21
|
from datetime import datetime
|
|
22
22
|
from pydantic import BaseModel, ConfigDict, Field, StrictStr, field_validator
|
|
23
23
|
from typing import Any, ClassVar, Dict, List, Optional
|
|
24
|
-
from tremendous.models.
|
|
24
|
+
from tremendous.models.fraud_review_related_rewards import FraudReviewRelatedRewards
|
|
25
25
|
from tremendous.models.list_fraud_reviews200_response_fraud_reviews_inner_geo import ListFraudReviews200ResponseFraudReviewsInnerGeo
|
|
26
26
|
from tremendous.models.order_without_link_rewards_inner import OrderWithoutLinkRewardsInner
|
|
27
27
|
from typing import Optional, Set
|
|
@@ -42,7 +42,7 @@ class FraudReview(BaseModel):
|
|
|
42
42
|
reviewed_at: Optional[datetime] = Field(default=None, description="When the reward was blocked or released following fraud review. This field is only present if the status is not `flagged`. ")
|
|
43
43
|
redemption_method_account_hash: Optional[StrictStr] = Field(default=None, description="A hash of the destination account for redemption methods that require providing 3rd party account details (e.g., PayPal, Venmo, ACH/CashApp, international bank transfers, etc.). The hash is globally unique by redemption method + account combination. This field is omitted for redemption methods that don't have a destination account (e.g., merchant cards, charities, etc.). ")
|
|
44
44
|
risk: Optional[StrictStr] = Field(default=None, description="The fraud risk associated with the reward.")
|
|
45
|
-
related_rewards: Optional[
|
|
45
|
+
related_rewards: Optional[FraudReviewRelatedRewards] = None
|
|
46
46
|
__properties: ClassVar[List[str]] = ["status", "reasons", "device_id", "redemption_method", "redeemed_at", "geo", "reward", "reviewed_by", "reviewed_at", "redemption_method_account_hash", "risk", "related_rewards"]
|
|
47
47
|
|
|
48
48
|
@field_validator('status')
|
|
@@ -167,7 +167,7 @@ class FraudReview(BaseModel):
|
|
|
167
167
|
"reviewed_at": obj.get("reviewed_at"),
|
|
168
168
|
"redemption_method_account_hash": obj.get("redemption_method_account_hash"),
|
|
169
169
|
"risk": obj.get("risk"),
|
|
170
|
-
"related_rewards":
|
|
170
|
+
"related_rewards": FraudReviewRelatedRewards.from_dict(obj["related_rewards"]) if obj.get("related_rewards") is not None else None
|
|
171
171
|
})
|
|
172
172
|
return _obj
|
|
173
173
|
|
|
@@ -26,13 +26,14 @@ from typing_extensions import Self
|
|
|
26
26
|
|
|
27
27
|
class FraudReviewRelatedRewards(BaseModel):
|
|
28
28
|
"""
|
|
29
|
-
|
|
29
|
+
The related rewards associated with the fraud review.
|
|
30
30
|
""" # noqa: E501
|
|
31
31
|
ids: Optional[List[StrictStr]] = Field(default=None, description="The IDs of rewards that have similar attributes to the fraud reward. A maximum of 100 IDs is returned. ")
|
|
32
32
|
count: Optional[Union[Annotated[float, Field(strict=True, ge=0)], Annotated[int, Field(strict=True, ge=0)]]] = Field(default=None, description="How many related rewards were found in total.")
|
|
33
33
|
blocked_count: Optional[Union[Annotated[float, Field(strict=True, ge=0)], Annotated[int, Field(strict=True, ge=0)]]] = Field(default=None, description="How many related rewards have been blocked.")
|
|
34
|
-
aggregated_value: Optional[Union[Annotated[float, Field(strict=True, ge=0)], Annotated[int, Field(strict=True, ge=0)]]] = Field(default=None, description="Total amount claimed by the related rewards
|
|
35
|
-
|
|
34
|
+
aggregated_value: Optional[Union[Annotated[float, Field(strict=True, ge=0)], Annotated[int, Field(strict=True, ge=0)]]] = Field(default=None, description="Total amount claimed by the related rewards, denominated in `currency_code`. ")
|
|
35
|
+
currency_code: Optional[StrictStr] = Field(default=None, description="Currency of the aggregated value. Always matches the organization's currency.")
|
|
36
|
+
__properties: ClassVar[List[str]] = ["ids", "count", "blocked_count", "aggregated_value", "currency_code"]
|
|
36
37
|
|
|
37
38
|
model_config = ConfigDict(
|
|
38
39
|
populate_by_name=True,
|
|
@@ -64,8 +65,10 @@ class FraudReviewRelatedRewards(BaseModel):
|
|
|
64
65
|
* `None` is only added to the output dict for nullable fields that
|
|
65
66
|
were set at model initialization. Other fields with value `None`
|
|
66
67
|
are ignored.
|
|
68
|
+
* OpenAPI `readOnly` fields are excluded.
|
|
67
69
|
"""
|
|
68
70
|
excluded_fields: Set[str] = set([
|
|
71
|
+
"currency_code",
|
|
69
72
|
])
|
|
70
73
|
|
|
71
74
|
_dict = self.model_dump(
|
|
@@ -88,7 +91,8 @@ class FraudReviewRelatedRewards(BaseModel):
|
|
|
88
91
|
"ids": obj.get("ids"),
|
|
89
92
|
"count": obj.get("count"),
|
|
90
93
|
"blocked_count": obj.get("blocked_count"),
|
|
91
|
-
"aggregated_value": obj.get("aggregated_value")
|
|
94
|
+
"aggregated_value": obj.get("aggregated_value"),
|
|
95
|
+
"currency_code": obj.get("currency_code")
|
|
92
96
|
})
|
|
93
97
|
return _obj
|
|
94
98
|
|
|
@@ -21,7 +21,7 @@ from typing_extensions import Self
|
|
|
21
21
|
|
|
22
22
|
class FraudRuleType(str, Enum):
|
|
23
23
|
"""
|
|
24
|
-
* `review_country` - Flags when the recipient's IP country matches the criteria in the rule * `review_ip` - Flags when recipient's IP matches one in the list * `review_email` - Flags when the recipient's email matches one in the list * `review_redeemed_rewards_count` - Flags when the recipient redeemed more than the number of rewards specified in the config * `review_redeemed_rewards_amount` - Flags when the recipient redeemed more than the total amount specified in the config * `review_multiple_emails` - Flags when recipient's device or account has multiple emails associated * `review_vpn` - Flags when VPN is suspected * `review_tremendous_flag_list` - Flags rewards when redemption attributes match at least one criteria defined by the Tremendous flag list * `review_previously_blocked_recipients` - Flags rewards when the recipient has been blocked before * `allow_ip` - Releases a reward when a recipient's IP matches one in the list * `allow_email` - Releases a reward when the recipient's email matches one in the list
|
|
24
|
+
* `review_country` - Flags when the recipient's IP country matches the criteria in the rule * `review_ip` - Flags when recipient's IP matches one in the list * `review_email` - Flags when the recipient's email matches one in the list * `review_redeemed_rewards_count` - Flags when the recipient redeemed more than the number of rewards specified in the config * `review_redeemed_rewards_amount` - Flags when the recipient redeemed more than the total amount specified in the config. The amount is denominated in the organization's currency. * `review_multiple_emails` - Flags when recipient's device or account has multiple emails associated * `review_vpn` - Flags when VPN is suspected * `review_tremendous_flag_list` - Flags rewards when redemption attributes match at least one criteria defined by the Tremendous flag list * `review_previously_blocked_recipients` - Flags rewards when the recipient has been blocked before * `allow_ip` - Releases a reward when a recipient's IP matches one in the list * `allow_email` - Releases a reward when the recipient's email matches one in the list
|
|
25
25
|
"""
|
|
26
26
|
|
|
27
27
|
"""
|
{tremendous_python-5.12.0 → tremendous_python-5.14.0}/tremendous/models/fraud_rules_list_item.py
RENAMED
|
@@ -27,7 +27,7 @@ class FraudRulesListItem(BaseModel):
|
|
|
27
27
|
"""
|
|
28
28
|
An active fraud rule
|
|
29
29
|
""" # noqa: E501
|
|
30
|
-
rule_type: Optional[StrictStr] = Field(default=None, description="* `review_country` - Flags when the recipient's IP country matches the criteria in the rule * `review_ip` - Flags when recipient's IP matches one in the list * `review_email` - Flags when the recipient's email matches one in the list * `review_redeemed_rewards_count` - Flags when the recipient redeemed more than the number of rewards specified in the config * `review_redeemed_rewards_amount` - Flags when the recipient redeemed more than the total amount specified in the config * `review_multiple_emails` - Flags when recipient's device or account has multiple emails associated * `review_vpn` - Flags when VPN is suspected * `review_tremendous_flag_list` - Flags rewards when redemption attributes match at least one criteria defined by the Tremendous flag list * `review_previously_blocked_recipients` - Flags rewards when the recipient has been blocked before * `allow_ip` - Releases a reward when a recipient's IP matches one in the list * `allow_email` - Releases a reward when the recipient's email matches one in the list ")
|
|
30
|
+
rule_type: Optional[StrictStr] = Field(default=None, description="* `review_country` - Flags when the recipient's IP country matches the criteria in the rule * `review_ip` - Flags when recipient's IP matches one in the list * `review_email` - Flags when the recipient's email matches one in the list * `review_redeemed_rewards_count` - Flags when the recipient redeemed more than the number of rewards specified in the config * `review_redeemed_rewards_amount` - Flags when the recipient redeemed more than the total amount specified in the config. The amount is denominated in the organization's currency. * `review_multiple_emails` - Flags when recipient's device or account has multiple emails associated * `review_vpn` - Flags when VPN is suspected * `review_tremendous_flag_list` - Flags rewards when redemption attributes match at least one criteria defined by the Tremendous flag list * `review_previously_blocked_recipients` - Flags rewards when the recipient has been blocked before * `allow_ip` - Releases a reward when a recipient's IP matches one in the list * `allow_email` - Releases a reward when the recipient's email matches one in the list ")
|
|
31
31
|
config: Optional[Dict[str, Any]] = Field(default=None, description="The configuration associated with the rule. The properties allowed depend on the type of rule. This property is only present for rules that require configuration. ")
|
|
32
32
|
__properties: ClassVar[List[str]] = ["rule_type", "config"]
|
|
33
33
|
|
|
@@ -31,8 +31,9 @@ class GetFraudReview200ResponseFraudReviewRelatedRewards(BaseModel):
|
|
|
31
31
|
ids: Optional[List[StrictStr]] = Field(default=None, description="The IDs of rewards that have similar attributes to the fraud reward. A maximum of 100 IDs is returned. ")
|
|
32
32
|
count: Optional[Union[Annotated[float, Field(strict=True, ge=0)], Annotated[int, Field(strict=True, ge=0)]]] = Field(default=None, description="How many related rewards were found in total.")
|
|
33
33
|
blocked_count: Optional[Union[Annotated[float, Field(strict=True, ge=0)], Annotated[int, Field(strict=True, ge=0)]]] = Field(default=None, description="How many related rewards have been blocked.")
|
|
34
|
-
aggregated_value: Optional[Union[Annotated[float, Field(strict=True, ge=0)], Annotated[int, Field(strict=True, ge=0)]]] = Field(default=None, description="Total amount claimed by the related rewards
|
|
35
|
-
|
|
34
|
+
aggregated_value: Optional[Union[Annotated[float, Field(strict=True, ge=0)], Annotated[int, Field(strict=True, ge=0)]]] = Field(default=None, description="Total amount claimed by the related rewards, denominated in `currency_code`. ")
|
|
35
|
+
currency_code: Optional[StrictStr] = Field(default=None, description="Currency of the aggregated value. Always matches the organization's currency.")
|
|
36
|
+
__properties: ClassVar[List[str]] = ["ids", "count", "blocked_count", "aggregated_value", "currency_code"]
|
|
36
37
|
|
|
37
38
|
model_config = ConfigDict(
|
|
38
39
|
populate_by_name=True,
|
|
@@ -88,7 +89,8 @@ class GetFraudReview200ResponseFraudReviewRelatedRewards(BaseModel):
|
|
|
88
89
|
"ids": obj.get("ids"),
|
|
89
90
|
"count": obj.get("count"),
|
|
90
91
|
"blocked_count": obj.get("blocked_count"),
|
|
91
|
-
"aggregated_value": obj.get("aggregated_value")
|
|
92
|
+
"aggregated_value": obj.get("aggregated_value"),
|
|
93
|
+
"currency_code": obj.get("currency_code")
|
|
92
94
|
})
|
|
93
95
|
return _obj
|
|
94
96
|
|
|
@@ -32,14 +32,25 @@ class Invoice(BaseModel):
|
|
|
32
32
|
id: StrictStr = Field(description="The invoice number")
|
|
33
33
|
po_number: Optional[StrictStr] = Field(default=None, description="Reference to the purchase order number within your organization")
|
|
34
34
|
amount: Union[StrictFloat, StrictInt] = Field(description="Amount of the invoice")
|
|
35
|
-
|
|
35
|
+
currency_code: Optional[StrictStr] = Field(default=None, description="Currency of the invoice")
|
|
36
|
+
currency: Optional[StrictStr] = Field(default=None, description="Deprecated: Use `currency_code` instead.")
|
|
36
37
|
international: Optional[StrictBool] = None
|
|
37
38
|
status: StrictStr = Field(description="Status of this invoice <table> <thead> <tr> <th>Status</th> <th>Description</th> </tr> </thead> <tbody> <tr> <td><code>DELETED</code></td> <td>Invoice has been deleted by your organization</td> </tr> <tr> <td><code>PAID</code></td> <td>Invoice has been paid by your organization</td> </tr> <tr> <td><code>OPEN</code></td> <td>Invoice has been created by your organization but has not been paid, yet</td> </tr> </tbody> </table> ")
|
|
38
39
|
orders: Optional[List[Annotated[str, Field(strict=True)]]] = Field(default=None, description="List of orders related to the invoice (it doesn't apply to prefunding)")
|
|
39
40
|
rewards: Optional[List[Annotated[str, Field(strict=True)]]] = Field(default=None, description="List of rewards related to the invoice (it doesn't apply to prefunding)")
|
|
40
41
|
created_at: datetime = Field(description="Timestamp of when the invoice has been created. ")
|
|
41
42
|
paid_at: Optional[datetime] = Field(description="Timestamp of when the invoice has been paid. ")
|
|
42
|
-
__properties: ClassVar[List[str]] = ["id", "po_number", "amount", "currency", "international", "status", "orders", "rewards", "created_at", "paid_at"]
|
|
43
|
+
__properties: ClassVar[List[str]] = ["id", "po_number", "amount", "currency_code", "currency", "international", "status", "orders", "rewards", "created_at", "paid_at"]
|
|
44
|
+
|
|
45
|
+
@field_validator('currency_code')
|
|
46
|
+
def currency_code_validate_enum(cls, value):
|
|
47
|
+
"""Validates the enum"""
|
|
48
|
+
if value is None:
|
|
49
|
+
return value
|
|
50
|
+
|
|
51
|
+
if value not in set(['USD', 'EUR', 'GBP']):
|
|
52
|
+
raise ValueError("must be one of enum values ('USD', 'EUR', 'GBP')")
|
|
53
|
+
return value
|
|
43
54
|
|
|
44
55
|
@field_validator('currency')
|
|
45
56
|
def currency_validate_enum(cls, value):
|
|
@@ -122,7 +133,8 @@ class Invoice(BaseModel):
|
|
|
122
133
|
"id": obj.get("id"),
|
|
123
134
|
"po_number": obj.get("po_number"),
|
|
124
135
|
"amount": obj.get("amount"),
|
|
125
|
-
"
|
|
136
|
+
"currency_code": obj.get("currency_code"),
|
|
137
|
+
"currency": obj.get("currency"),
|
|
126
138
|
"international": obj.get("international"),
|
|
127
139
|
"status": obj.get("status"),
|
|
128
140
|
"orders": obj.get("orders"),
|
|
@@ -30,12 +30,13 @@ class ListBalanceTransactions200ResponseTransactionsInner(BaseModel):
|
|
|
30
30
|
A balance transaction represents a specific movement or change in an account's balance.
|
|
31
31
|
""" # noqa: E501
|
|
32
32
|
created_at: datetime = Field(description="Date that the transaction was created")
|
|
33
|
-
amount: Union[StrictFloat, StrictInt] = Field(description="Amount of the transaction in
|
|
34
|
-
|
|
33
|
+
amount: Union[StrictFloat, StrictInt] = Field(description="Amount of the transaction, denominated in `currency_code`.")
|
|
34
|
+
currency_code: StrictStr = Field(description="Currency of the transaction amount and running balance. Always matches the organization's currency.")
|
|
35
|
+
balance: Union[StrictFloat, StrictInt] = Field(description="The updated total after the transaction, denominated in `currency_code`. Note that this running balance may be delayed and contain `null`.")
|
|
35
36
|
action: StrictStr = Field(description="The action that was performed")
|
|
36
37
|
description: StrictStr = Field(description="A brief description of the transaction")
|
|
37
38
|
order: Optional[ListBalanceTransactions200ResponseTransactionsInnerOrder] = None
|
|
38
|
-
__properties: ClassVar[List[str]] = ["created_at", "amount", "balance", "action", "description", "order"]
|
|
39
|
+
__properties: ClassVar[List[str]] = ["created_at", "amount", "currency_code", "balance", "action", "description", "order"]
|
|
39
40
|
|
|
40
41
|
model_config = ConfigDict(
|
|
41
42
|
populate_by_name=True,
|
|
@@ -93,6 +94,7 @@ class ListBalanceTransactions200ResponseTransactionsInner(BaseModel):
|
|
|
93
94
|
_obj = cls.model_validate({
|
|
94
95
|
"created_at": obj.get("created_at"),
|
|
95
96
|
"amount": obj.get("amount"),
|
|
97
|
+
"currency_code": obj.get("currency_code"),
|
|
96
98
|
"balance": obj.get("balance"),
|
|
97
99
|
"action": obj.get("action"),
|
|
98
100
|
"description": obj.get("description"),
|