growsurf-python 1.12.0__tar.gz → 1.13.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.
- growsurf_python-1.13.0/.release-please-manifest.json +3 -0
- {growsurf_python-1.12.0 → growsurf_python-1.13.0}/CHANGELOG.md +8 -0
- {growsurf_python-1.12.0 → growsurf_python-1.13.0}/PKG-INFO +1 -1
- growsurf_python-1.13.0/SECURITY.md +13 -0
- {growsurf_python-1.12.0 → growsurf_python-1.13.0}/api.md +1 -0
- {growsurf_python-1.12.0 → growsurf_python-1.13.0}/pyproject.toml +1 -1
- {growsurf_python-1.12.0 → growsurf_python-1.13.0}/src/growsurf/_version.py +1 -1
- {growsurf_python-1.12.0 → growsurf_python-1.13.0}/src/growsurf/resources/campaign/campaign.py +11 -0
- {growsurf_python-1.12.0 → growsurf_python-1.13.0}/src/growsurf/resources/campaign/participant.py +26 -3
- {growsurf_python-1.12.0 → growsurf_python-1.13.0}/src/growsurf/resources/campaign/reward.py +6 -6
- {growsurf_python-1.12.0 → growsurf_python-1.13.0}/src/growsurf/types/campaign/__init__.py +1 -0
- {growsurf_python-1.12.0 → growsurf_python-1.13.0}/src/growsurf/types/campaign/campaign_options.py +3 -2
- growsurf_python-1.13.0/src/growsurf/types/campaign/language.py +9 -0
- {growsurf_python-1.12.0 → growsurf_python-1.13.0}/src/growsurf/types/campaign/participant.py +8 -0
- {growsurf_python-1.12.0 → growsurf_python-1.13.0}/src/growsurf/types/campaign/participant_add_params.py +8 -0
- {growsurf_python-1.12.0 → growsurf_python-1.13.0}/src/growsurf/types/campaign/participant_update_params.py +9 -1
- {growsurf_python-1.12.0 → growsurf_python-1.13.0}/src/growsurf/types/campaign_create_mobile_participant_token_params.py +8 -0
- {growsurf_python-1.12.0 → growsurf_python-1.13.0}/tests/api_resources/campaign/test_participant.py +4 -0
- {growsurf_python-1.12.0 → growsurf_python-1.13.0}/tests/api_resources/test_campaign.py +2 -0
- growsurf_python-1.12.0/.release-please-manifest.json +0 -3
- growsurf_python-1.12.0/SECURITY.md +0 -23
- {growsurf_python-1.12.0 → growsurf_python-1.13.0}/.gitignore +0 -0
- {growsurf_python-1.12.0 → growsurf_python-1.13.0}/CONTRIBUTING.md +0 -0
- {growsurf_python-1.12.0 → growsurf_python-1.13.0}/LICENSE +0 -0
- {growsurf_python-1.12.0 → growsurf_python-1.13.0}/README.md +0 -0
- {growsurf_python-1.12.0 → growsurf_python-1.13.0}/bin/check-release-environment +0 -0
- {growsurf_python-1.12.0 → growsurf_python-1.13.0}/bin/publish-pypi +0 -0
- {growsurf_python-1.12.0 → growsurf_python-1.13.0}/examples/.keep +0 -0
- {growsurf_python-1.12.0 → growsurf_python-1.13.0}/release-please-config.json +0 -0
- {growsurf_python-1.12.0 → growsurf_python-1.13.0}/requirements-dev.lock +0 -0
- {growsurf_python-1.12.0 → growsurf_python-1.13.0}/src/growsurf/__init__.py +0 -0
- {growsurf_python-1.12.0 → growsurf_python-1.13.0}/src/growsurf/_base_client.py +0 -0
- {growsurf_python-1.12.0 → growsurf_python-1.13.0}/src/growsurf/_client.py +0 -0
- {growsurf_python-1.12.0 → growsurf_python-1.13.0}/src/growsurf/_compat.py +0 -0
- {growsurf_python-1.12.0 → growsurf_python-1.13.0}/src/growsurf/_constants.py +0 -0
- {growsurf_python-1.12.0 → growsurf_python-1.13.0}/src/growsurf/_exceptions.py +0 -0
- {growsurf_python-1.12.0 → growsurf_python-1.13.0}/src/growsurf/_files.py +0 -0
- {growsurf_python-1.12.0 → growsurf_python-1.13.0}/src/growsurf/_models.py +0 -0
- {growsurf_python-1.12.0 → growsurf_python-1.13.0}/src/growsurf/_qs.py +0 -0
- {growsurf_python-1.12.0 → growsurf_python-1.13.0}/src/growsurf/_resource.py +0 -0
- {growsurf_python-1.12.0 → growsurf_python-1.13.0}/src/growsurf/_response.py +0 -0
- {growsurf_python-1.12.0 → growsurf_python-1.13.0}/src/growsurf/_streaming.py +0 -0
- {growsurf_python-1.12.0 → growsurf_python-1.13.0}/src/growsurf/_types.py +0 -0
- {growsurf_python-1.12.0 → growsurf_python-1.13.0}/src/growsurf/_utils/__init__.py +0 -0
- {growsurf_python-1.12.0 → growsurf_python-1.13.0}/src/growsurf/_utils/_compat.py +0 -0
- {growsurf_python-1.12.0 → growsurf_python-1.13.0}/src/growsurf/_utils/_datetime_parse.py +0 -0
- {growsurf_python-1.12.0 → growsurf_python-1.13.0}/src/growsurf/_utils/_json.py +0 -0
- {growsurf_python-1.12.0 → growsurf_python-1.13.0}/src/growsurf/_utils/_logs.py +0 -0
- {growsurf_python-1.12.0 → growsurf_python-1.13.0}/src/growsurf/_utils/_path.py +0 -0
- {growsurf_python-1.12.0 → growsurf_python-1.13.0}/src/growsurf/_utils/_proxy.py +0 -0
- {growsurf_python-1.12.0 → growsurf_python-1.13.0}/src/growsurf/_utils/_reflection.py +0 -0
- {growsurf_python-1.12.0 → growsurf_python-1.13.0}/src/growsurf/_utils/_resources_proxy.py +0 -0
- {growsurf_python-1.12.0 → growsurf_python-1.13.0}/src/growsurf/_utils/_streams.py +0 -0
- {growsurf_python-1.12.0 → growsurf_python-1.13.0}/src/growsurf/_utils/_sync.py +0 -0
- {growsurf_python-1.12.0 → growsurf_python-1.13.0}/src/growsurf/_utils/_transform.py +0 -0
- {growsurf_python-1.12.0 → growsurf_python-1.13.0}/src/growsurf/_utils/_typing.py +0 -0
- {growsurf_python-1.12.0 → growsurf_python-1.13.0}/src/growsurf/_utils/_utils.py +0 -0
- {growsurf_python-1.12.0 → growsurf_python-1.13.0}/src/growsurf/lib/.keep +0 -0
- {growsurf_python-1.12.0 → growsurf_python-1.13.0}/src/growsurf/py.typed +0 -0
- {growsurf_python-1.12.0 → growsurf_python-1.13.0}/src/growsurf/resources/__init__.py +0 -0
- {growsurf_python-1.12.0 → growsurf_python-1.13.0}/src/growsurf/resources/account.py +0 -0
- {growsurf_python-1.12.0 → growsurf_python-1.13.0}/src/growsurf/resources/campaign/__init__.py +0 -0
- {growsurf_python-1.12.0 → growsurf_python-1.13.0}/src/growsurf/resources/campaign/commission.py +0 -0
- {growsurf_python-1.12.0 → growsurf_python-1.13.0}/src/growsurf/resources/campaign/design.py +0 -0
- {growsurf_python-1.12.0 → growsurf_python-1.13.0}/src/growsurf/resources/campaign/emails.py +0 -0
- {growsurf_python-1.12.0 → growsurf_python-1.13.0}/src/growsurf/resources/campaign/installation.py +0 -0
- {growsurf_python-1.12.0 → growsurf_python-1.13.0}/src/growsurf/resources/campaign/integrations.py +0 -0
- {growsurf_python-1.12.0 → growsurf_python-1.13.0}/src/growsurf/resources/campaign/options.py +0 -0
- {growsurf_python-1.12.0 → growsurf_python-1.13.0}/src/growsurf/resources/campaign/program_resources.py +0 -0
- {growsurf_python-1.12.0 → growsurf_python-1.13.0}/src/growsurf/resources/campaign/rewards.py +0 -0
- {growsurf_python-1.12.0 → growsurf_python-1.13.0}/src/growsurf/resources/campaign/webhooks.py +0 -0
- {growsurf_python-1.12.0 → growsurf_python-1.13.0}/src/growsurf/resources/team.py +0 -0
- {growsurf_python-1.12.0 → growsurf_python-1.13.0}/src/growsurf/types/__init__.py +0 -0
- {growsurf_python-1.12.0 → growsurf_python-1.13.0}/src/growsurf/types/account_create_params.py +0 -0
- {growsurf_python-1.12.0 → growsurf_python-1.13.0}/src/growsurf/types/affiliate_application.py +0 -0
- {growsurf_python-1.12.0 → growsurf_python-1.13.0}/src/growsurf/types/affiliate_application_answer.py +0 -0
- {growsurf_python-1.12.0 → growsurf_python-1.13.0}/src/growsurf/types/affiliate_application_list_response.py +0 -0
- {growsurf_python-1.12.0 → growsurf_python-1.13.0}/src/growsurf/types/affiliate_invite.py +0 -0
- {growsurf_python-1.12.0 → growsurf_python-1.13.0}/src/growsurf/types/affiliate_invite_list_response.py +0 -0
- {growsurf_python-1.12.0 → growsurf_python-1.13.0}/src/growsurf/types/analytics_availability.py +0 -0
- {growsurf_python-1.12.0 → growsurf_python-1.13.0}/src/growsurf/types/analytics_unavailable_reason.py +0 -0
- {growsurf_python-1.12.0 → growsurf_python-1.13.0}/src/growsurf/types/campaign/campaign.py +0 -0
- {growsurf_python-1.12.0 → growsurf_python-1.13.0}/src/growsurf/types/campaign/campaign_design.py +0 -0
- {growsurf_python-1.12.0 → growsurf_python-1.13.0}/src/growsurf/types/campaign/campaign_emails.py +0 -0
- {growsurf_python-1.12.0 → growsurf_python-1.13.0}/src/growsurf/types/campaign/campaign_installation.py +0 -0
- {growsurf_python-1.12.0 → growsurf_python-1.13.0}/src/growsurf/types/campaign/campaign_reward_list_response.py +0 -0
- {growsurf_python-1.12.0 → growsurf_python-1.13.0}/src/growsurf/types/campaign/commission_approve_response.py +0 -0
- {growsurf_python-1.12.0 → growsurf_python-1.13.0}/src/growsurf/types/campaign/commission_delete_response.py +0 -0
- {growsurf_python-1.12.0 → growsurf_python-1.13.0}/src/growsurf/types/campaign/delete_program_resource_response.py +0 -0
- {growsurf_python-1.12.0 → growsurf_python-1.13.0}/src/growsurf/types/campaign/delete_reward_response.py +0 -0
- {growsurf_python-1.12.0 → growsurf_python-1.13.0}/src/growsurf/types/campaign/delete_webhook_response.py +0 -0
- {growsurf_python-1.12.0 → growsurf_python-1.13.0}/src/growsurf/types/campaign/email_participant_response.py +0 -0
- {growsurf_python-1.12.0 → growsurf_python-1.13.0}/src/growsurf/types/campaign/fraud_risk_level.py +0 -0
- {growsurf_python-1.12.0 → growsurf_python-1.13.0}/src/growsurf/types/campaign/integration.py +0 -0
- {growsurf_python-1.12.0 → growsurf_python-1.13.0}/src/growsurf/types/campaign/integration_list_response.py +0 -0
- {growsurf_python-1.12.0 → growsurf_python-1.13.0}/src/growsurf/types/campaign/participant_activation_analytics.py +0 -0
- {growsurf_python-1.12.0 → growsurf_python-1.13.0}/src/growsurf/types/campaign/participant_activity_logs_response.py +0 -0
- {growsurf_python-1.12.0 → growsurf_python-1.13.0}/src/growsurf/types/campaign/participant_analytics_params.py +0 -0
- {growsurf_python-1.12.0 → growsurf_python-1.13.0}/src/growsurf/types/campaign/participant_analytics_response.py +0 -0
- {growsurf_python-1.12.0 → growsurf_python-1.13.0}/src/growsurf/types/campaign/participant_bulk_delete_params.py +0 -0
- {growsurf_python-1.12.0 → growsurf_python-1.13.0}/src/growsurf/types/campaign/participant_bulk_delete_response.py +0 -0
- {growsurf_python-1.12.0 → growsurf_python-1.13.0}/src/growsurf/types/campaign/participant_delete_response.py +0 -0
- {growsurf_python-1.12.0 → growsurf_python-1.13.0}/src/growsurf/types/campaign/participant_email_params.py +0 -0
- {growsurf_python-1.12.0 → growsurf_python-1.13.0}/src/growsurf/types/campaign/participant_get_payout_destination_response.py +0 -0
- {growsurf_python-1.12.0 → growsurf_python-1.13.0}/src/growsurf/types/campaign/participant_list_activity_logs_params.py +0 -0
- {growsurf_python-1.12.0 → growsurf_python-1.13.0}/src/growsurf/types/campaign/participant_list_commissions_params.py +0 -0
- {growsurf_python-1.12.0 → growsurf_python-1.13.0}/src/growsurf/types/campaign/participant_list_payouts_params.py +0 -0
- {growsurf_python-1.12.0 → growsurf_python-1.13.0}/src/growsurf/types/campaign/participant_list_referrals_params.py +0 -0
- {growsurf_python-1.12.0 → growsurf_python-1.13.0}/src/growsurf/types/campaign/participant_list_rewards_params.py +0 -0
- {growsurf_python-1.12.0 → growsurf_python-1.13.0}/src/growsurf/types/campaign/participant_list_rewards_response.py +0 -0
- {growsurf_python-1.12.0 → growsurf_python-1.13.0}/src/growsurf/types/campaign/participant_record_transaction_params.py +0 -0
- {growsurf_python-1.12.0 → growsurf_python-1.13.0}/src/growsurf/types/campaign/participant_record_transaction_response.py +0 -0
- {growsurf_python-1.12.0 → growsurf_python-1.13.0}/src/growsurf/types/campaign/participant_refund_transaction_params.py +0 -0
- {growsurf_python-1.12.0 → growsurf_python-1.13.0}/src/growsurf/types/campaign/participant_refund_transaction_response.py +0 -0
- {growsurf_python-1.12.0 → growsurf_python-1.13.0}/src/growsurf/types/campaign/participant_request_payout_destination_confirmation_params.py +0 -0
- {growsurf_python-1.12.0 → growsurf_python-1.13.0}/src/growsurf/types/campaign/participant_request_payout_destination_confirmation_response.py +0 -0
- {growsurf_python-1.12.0 → growsurf_python-1.13.0}/src/growsurf/types/campaign/participant_reward.py +0 -0
- {growsurf_python-1.12.0 → growsurf_python-1.13.0}/src/growsurf/types/campaign/participant_send_invites_params.py +0 -0
- {growsurf_python-1.12.0 → growsurf_python-1.13.0}/src/growsurf/types/campaign/participant_send_invites_response.py +0 -0
- {growsurf_python-1.12.0 → growsurf_python-1.13.0}/src/growsurf/types/campaign/participant_trigger_referral_params.py +0 -0
- {growsurf_python-1.12.0 → growsurf_python-1.13.0}/src/growsurf/types/campaign/participant_trigger_referral_response.py +0 -0
- {growsurf_python-1.12.0 → growsurf_python-1.13.0}/src/growsurf/types/campaign/pending_analytics_erasure.py +0 -0
- {growsurf_python-1.12.0 → growsurf_python-1.13.0}/src/growsurf/types/campaign/program_resource.py +0 -0
- {growsurf_python-1.12.0 → growsurf_python-1.13.0}/src/growsurf/types/campaign/program_resource_list_response.py +0 -0
- {growsurf_python-1.12.0 → growsurf_python-1.13.0}/src/growsurf/types/campaign/program_resource_upload_result.py +0 -0
- {growsurf_python-1.12.0 → growsurf_python-1.13.0}/src/growsurf/types/campaign/program_resource_upload_ticket.py +0 -0
- {growsurf_python-1.12.0 → growsurf_python-1.13.0}/src/growsurf/types/campaign/referral_source.py +0 -0
- {growsurf_python-1.12.0 → growsurf_python-1.13.0}/src/growsurf/types/campaign/referral_status.py +0 -0
- {growsurf_python-1.12.0 → growsurf_python-1.13.0}/src/growsurf/types/campaign/reward.py +0 -0
- {growsurf_python-1.12.0 → growsurf_python-1.13.0}/src/growsurf/types/campaign/reward_approve_params.py +0 -0
- {growsurf_python-1.12.0 → growsurf_python-1.13.0}/src/growsurf/types/campaign/reward_approve_response.py +0 -0
- {growsurf_python-1.12.0 → growsurf_python-1.13.0}/src/growsurf/types/campaign/reward_create_params.py +0 -0
- {growsurf_python-1.12.0 → growsurf_python-1.13.0}/src/growsurf/types/campaign/reward_delete_response.py +0 -0
- {growsurf_python-1.12.0 → growsurf_python-1.13.0}/src/growsurf/types/campaign/reward_fulfill_response.py +0 -0
- {growsurf_python-1.12.0 → growsurf_python-1.13.0}/src/growsurf/types/campaign/reward_tax_valuation.py +0 -0
- {growsurf_python-1.12.0 → growsurf_python-1.13.0}/src/growsurf/types/campaign/reward_update_params.py +0 -0
- {growsurf_python-1.12.0 → growsurf_python-1.13.0}/src/growsurf/types/campaign/webhook.py +0 -0
- {growsurf_python-1.12.0 → growsurf_python-1.13.0}/src/growsurf/types/campaign/webhook_create_params.py +0 -0
- {growsurf_python-1.12.0 → growsurf_python-1.13.0}/src/growsurf/types/campaign/webhook_event.py +0 -0
- {growsurf_python-1.12.0 → growsurf_python-1.13.0}/src/growsurf/types/campaign/webhook_list_response.py +0 -0
- {growsurf_python-1.12.0 → growsurf_python-1.13.0}/src/growsurf/types/campaign/webhook_test_params.py +0 -0
- {growsurf_python-1.12.0 → growsurf_python-1.13.0}/src/growsurf/types/campaign/webhook_test_response.py +0 -0
- {growsurf_python-1.12.0 → growsurf_python-1.13.0}/src/growsurf/types/campaign/webhook_update_params.py +0 -0
- {growsurf_python-1.12.0 → growsurf_python-1.13.0}/src/growsurf/types/campaign_activation_analytics_response.py +0 -0
- {growsurf_python-1.12.0 → growsurf_python-1.13.0}/src/growsurf/types/campaign_create_affiliate_invite_params.py +0 -0
- {growsurf_python-1.12.0 → growsurf_python-1.13.0}/src/growsurf/types/campaign_create_mobile_participant_token_response.py +0 -0
- {growsurf_python-1.12.0 → growsurf_python-1.13.0}/src/growsurf/types/campaign_create_params.py +0 -0
- {growsurf_python-1.12.0 → growsurf_python-1.13.0}/src/growsurf/types/campaign_engagement_analytics.py +0 -0
- {growsurf_python-1.12.0 → growsurf_python-1.13.0}/src/growsurf/types/campaign_list_affiliate_applications_params.py +0 -0
- {growsurf_python-1.12.0 → growsurf_python-1.13.0}/src/growsurf/types/campaign_list_affiliate_invites_params.py +0 -0
- {growsurf_python-1.12.0 → growsurf_python-1.13.0}/src/growsurf/types/campaign_list_commissions_params.py +0 -0
- {growsurf_python-1.12.0 → growsurf_python-1.13.0}/src/growsurf/types/campaign_list_leaderboard_params.py +0 -0
- {growsurf_python-1.12.0 → growsurf_python-1.13.0}/src/growsurf/types/campaign_list_participants_params.py +0 -0
- {growsurf_python-1.12.0 → growsurf_python-1.13.0}/src/growsurf/types/campaign_list_payouts_params.py +0 -0
- {growsurf_python-1.12.0 → growsurf_python-1.13.0}/src/growsurf/types/campaign_list_referrals_params.py +0 -0
- {growsurf_python-1.12.0 → growsurf_python-1.13.0}/src/growsurf/types/campaign_list_response.py +0 -0
- {growsurf_python-1.12.0 → growsurf_python-1.13.0}/src/growsurf/types/campaign_retrieve_activation_analytics_params.py +0 -0
- {growsurf_python-1.12.0 → growsurf_python-1.13.0}/src/growsurf/types/campaign_retrieve_analytics_params.py +0 -0
- {growsurf_python-1.12.0 → growsurf_python-1.13.0}/src/growsurf/types/campaign_retrieve_analytics_response.py +0 -0
- {growsurf_python-1.12.0 → growsurf_python-1.13.0}/src/growsurf/types/campaign_review_affiliate_application_params.py +0 -0
- {growsurf_python-1.12.0 → growsurf_python-1.13.0}/src/growsurf/types/campaign_update_params.py +0 -0
- {growsurf_python-1.12.0 → growsurf_python-1.13.0}/src/growsurf/types/commission_structure.py +0 -0
- {growsurf_python-1.12.0 → growsurf_python-1.13.0}/src/growsurf/types/create_account_response.py +0 -0
- {growsurf_python-1.12.0 → growsurf_python-1.13.0}/src/growsurf/types/email_analytics.py +0 -0
- {growsurf_python-1.12.0 → growsurf_python-1.13.0}/src/growsurf/types/participant_commission_list.py +0 -0
- {growsurf_python-1.12.0 → growsurf_python-1.13.0}/src/growsurf/types/participant_list.py +0 -0
- {growsurf_python-1.12.0 → growsurf_python-1.13.0}/src/growsurf/types/participant_payout_list.py +0 -0
- {growsurf_python-1.12.0 → growsurf_python-1.13.0}/src/growsurf/types/referral_flow_screenshot.py +0 -0
- {growsurf_python-1.12.0 → growsurf_python-1.13.0}/src/growsurf/types/referral_flow_screenshots_response.py +0 -0
- {growsurf_python-1.12.0 → growsurf_python-1.13.0}/src/growsurf/types/referral_list.py +0 -0
- {growsurf_python-1.12.0 → growsurf_python-1.13.0}/src/growsurf/types/rotate_api_key_response.py +0 -0
- {growsurf_python-1.12.0 → growsurf_python-1.13.0}/src/growsurf/types/team.py +0 -0
- {growsurf_python-1.12.0 → growsurf_python-1.13.0}/src/growsurf/types/team_update_params.py +0 -0
- {growsurf_python-1.12.0 → growsurf_python-1.13.0}/src/growsurf/types/verification_email_response.py +0 -0
- {growsurf_python-1.12.0 → growsurf_python-1.13.0}/tests/__init__.py +0 -0
- {growsurf_python-1.12.0 → growsurf_python-1.13.0}/tests/api_resources/__init__.py +0 -0
- {growsurf_python-1.12.0 → growsurf_python-1.13.0}/tests/api_resources/campaign/__init__.py +0 -0
- {growsurf_python-1.12.0 → growsurf_python-1.13.0}/tests/api_resources/campaign/test_commission.py +0 -0
- {growsurf_python-1.12.0 → growsurf_python-1.13.0}/tests/api_resources/campaign/test_design.py +0 -0
- {growsurf_python-1.12.0 → growsurf_python-1.13.0}/tests/api_resources/campaign/test_emails.py +0 -0
- {growsurf_python-1.12.0 → growsurf_python-1.13.0}/tests/api_resources/campaign/test_installation.py +0 -0
- {growsurf_python-1.12.0 → growsurf_python-1.13.0}/tests/api_resources/campaign/test_integrations.py +0 -0
- {growsurf_python-1.12.0 → growsurf_python-1.13.0}/tests/api_resources/campaign/test_options.py +0 -0
- {growsurf_python-1.12.0 → growsurf_python-1.13.0}/tests/api_resources/campaign/test_program_resources.py +0 -0
- {growsurf_python-1.12.0 → growsurf_python-1.13.0}/tests/api_resources/campaign/test_reward.py +0 -0
- {growsurf_python-1.12.0 → growsurf_python-1.13.0}/tests/api_resources/campaign/test_rewards.py +0 -0
- {growsurf_python-1.12.0 → growsurf_python-1.13.0}/tests/api_resources/campaign/test_webhooks.py +0 -0
- {growsurf_python-1.12.0 → growsurf_python-1.13.0}/tests/api_resources/test_account.py +0 -0
- {growsurf_python-1.12.0 → growsurf_python-1.13.0}/tests/api_resources/test_team_contract.py +0 -0
- {growsurf_python-1.12.0 → growsurf_python-1.13.0}/tests/conftest.py +0 -0
- {growsurf_python-1.12.0 → growsurf_python-1.13.0}/tests/sample_file.txt +0 -0
- {growsurf_python-1.12.0 → growsurf_python-1.13.0}/tests/test_client.py +0 -0
- {growsurf_python-1.12.0 → growsurf_python-1.13.0}/tests/test_extract_files.py +0 -0
- {growsurf_python-1.12.0 → growsurf_python-1.13.0}/tests/test_files.py +0 -0
- {growsurf_python-1.12.0 → growsurf_python-1.13.0}/tests/test_models.py +0 -0
- {growsurf_python-1.12.0 → growsurf_python-1.13.0}/tests/test_qs.py +0 -0
- {growsurf_python-1.12.0 → growsurf_python-1.13.0}/tests/test_required_args.py +0 -0
- {growsurf_python-1.12.0 → growsurf_python-1.13.0}/tests/test_response.py +0 -0
- {growsurf_python-1.12.0 → growsurf_python-1.13.0}/tests/test_streaming.py +0 -0
- {growsurf_python-1.12.0 → growsurf_python-1.13.0}/tests/test_transform.py +0 -0
- {growsurf_python-1.12.0 → growsurf_python-1.13.0}/tests/test_utils/test_datetime_parse.py +0 -0
- {growsurf_python-1.12.0 → growsurf_python-1.13.0}/tests/test_utils/test_json.py +0 -0
- {growsurf_python-1.12.0 → growsurf_python-1.13.0}/tests/test_utils/test_path.py +0 -0
- {growsurf_python-1.12.0 → growsurf_python-1.13.0}/tests/test_utils/test_proxy.py +0 -0
- {growsurf_python-1.12.0 → growsurf_python-1.13.0}/tests/test_utils/test_typing.py +0 -0
- {growsurf_python-1.12.0 → growsurf_python-1.13.0}/tests/types/test_affiliate_application.py +0 -0
- {growsurf_python-1.12.0 → growsurf_python-1.13.0}/tests/types/test_analytics_reward_status.py +0 -0
- {growsurf_python-1.12.0 → growsurf_python-1.13.0}/tests/types/test_email_analytics.py +0 -0
- {growsurf_python-1.12.0 → growsurf_python-1.13.0}/tests/types/test_lead_reward_events.py +0 -0
- {growsurf_python-1.12.0 → growsurf_python-1.13.0}/tests/types/test_participant_activation_engagement_analytics.py +0 -0
- {growsurf_python-1.12.0 → growsurf_python-1.13.0}/tests/types/test_participant_contract.py +0 -0
- {growsurf_python-1.12.0 → growsurf_python-1.13.0}/tests/types/test_payout_provider_forward_compat.py +0 -0
- {growsurf_python-1.12.0 → growsurf_python-1.13.0}/tests/types/test_referral_source.py +0 -0
- {growsurf_python-1.12.0 → growsurf_python-1.13.0}/tests/utils.py +0 -0
- {growsurf_python-1.12.0 → growsurf_python-1.13.0}/uv.lock +0 -0
|
@@ -1,5 +1,13 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## [1.13.0](https://github.com/growsurf/growsurf-python/compare/v1.12.0...v1.13.0) (2026-10-09)
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
### Features
|
|
7
|
+
|
|
8
|
+
* add program and participant language support ([57890e4](https://github.com/growsurf/growsurf-python/commit/57890e4ddfd3b2af6ac43d8caafdcf8ab013f3a6))
|
|
9
|
+
* add program languages and update SDK guidance ([1925adb](https://github.com/growsurf/growsurf-python/commit/1925adb305c1ba3743dcbac397c06dfcb2444743))
|
|
10
|
+
|
|
3
11
|
## [1.12.0](https://github.com/growsurf/growsurf-python/compare/v1.11.0...v1.12.0) (2026-10-07)
|
|
4
12
|
|
|
5
13
|
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
# Security Policy
|
|
2
|
+
|
|
3
|
+
## Reporting Security Issues
|
|
4
|
+
|
|
5
|
+
GrowSurf maintains this SDK. If you believe you have found a security vulnerability in it, please report it to support@growsurf.com rather than opening a public issue.
|
|
6
|
+
|
|
7
|
+
## Responsible Disclosure
|
|
8
|
+
|
|
9
|
+
Please give us a reasonable amount of time to investigate and address the issue before making any information public. We appreciate the efforts of security researchers who help keep this SDK and the systems it talks to secure.
|
|
10
|
+
|
|
11
|
+
## Other GrowSurf Security Issues
|
|
12
|
+
|
|
13
|
+
For security issues in GrowSurf products or services that are not related to this SDK, contact support@growsurf.com as well.
|
{growsurf_python-1.12.0 → growsurf_python-1.13.0}/src/growsurf/resources/campaign/campaign.py
RENAMED
|
@@ -127,6 +127,7 @@ from ...types.referral_list import ReferralList
|
|
|
127
127
|
from ...types.affiliate_invite import AffiliateInvite
|
|
128
128
|
from ...types.participant_list import ParticipantList
|
|
129
129
|
from ...types.campaign.campaign import Campaign
|
|
130
|
+
from ...types.campaign.language import Language
|
|
130
131
|
from ...types.affiliate_application import AffiliateApplication
|
|
131
132
|
from ...types.campaign_list_response import CampaignListResponse
|
|
132
133
|
from ...types.participant_payout_list import ParticipantPayoutList
|
|
@@ -439,6 +440,7 @@ class CampaignResource(SyncAPIResource):
|
|
|
439
440
|
first_name: str | Omit = omit,
|
|
440
441
|
ip_address: str | Omit = omit,
|
|
441
442
|
is_affiliate: bool | Omit = omit,
|
|
443
|
+
language: Language | Omit = omit,
|
|
442
444
|
last_name: str | Omit = omit,
|
|
443
445
|
metadata: Dict[str, object] | Omit = omit,
|
|
444
446
|
mobile_instance_id: str | Omit = omit,
|
|
@@ -466,6 +468,9 @@ class CampaignResource(SyncAPIResource):
|
|
|
466
468
|
|
|
467
469
|
is_affiliate: Affiliate programs only. Controls affiliate enrollment for a new participant.
|
|
468
470
|
|
|
471
|
+
language: The language of the participant's portal and program emails. Must be one of the
|
|
472
|
+
program's languages. Applied only when this request creates the participant.
|
|
473
|
+
|
|
469
474
|
referred_by: Referrer participant ID or email address.
|
|
470
475
|
|
|
471
476
|
extra_headers: Send extra headers
|
|
@@ -487,6 +492,7 @@ class CampaignResource(SyncAPIResource):
|
|
|
487
492
|
"first_name": first_name,
|
|
488
493
|
"ip_address": ip_address,
|
|
489
494
|
"is_affiliate": is_affiliate,
|
|
495
|
+
"language": language,
|
|
490
496
|
"last_name": last_name,
|
|
491
497
|
"metadata": metadata,
|
|
492
498
|
"mobile_instance_id": mobile_instance_id,
|
|
@@ -1665,6 +1671,7 @@ class AsyncCampaignResource(AsyncAPIResource):
|
|
|
1665
1671
|
first_name: str | Omit = omit,
|
|
1666
1672
|
ip_address: str | Omit = omit,
|
|
1667
1673
|
is_affiliate: bool | Omit = omit,
|
|
1674
|
+
language: Language | Omit = omit,
|
|
1668
1675
|
last_name: str | Omit = omit,
|
|
1669
1676
|
metadata: Dict[str, object] | Omit = omit,
|
|
1670
1677
|
mobile_instance_id: str | Omit = omit,
|
|
@@ -1692,6 +1699,9 @@ class AsyncCampaignResource(AsyncAPIResource):
|
|
|
1692
1699
|
|
|
1693
1700
|
is_affiliate: Affiliate programs only. Controls affiliate enrollment for a new participant.
|
|
1694
1701
|
|
|
1702
|
+
language: The language of the participant's portal and program emails. Must be one of the
|
|
1703
|
+
program's languages. Applied only when this request creates the participant.
|
|
1704
|
+
|
|
1695
1705
|
referred_by: Referrer participant ID or email address.
|
|
1696
1706
|
|
|
1697
1707
|
extra_headers: Send extra headers
|
|
@@ -1713,6 +1723,7 @@ class AsyncCampaignResource(AsyncAPIResource):
|
|
|
1713
1723
|
"first_name": first_name,
|
|
1714
1724
|
"ip_address": ip_address,
|
|
1715
1725
|
"is_affiliate": is_affiliate,
|
|
1726
|
+
"language": language,
|
|
1716
1727
|
"last_name": last_name,
|
|
1717
1728
|
"metadata": metadata,
|
|
1718
1729
|
"mobile_instance_id": mobile_instance_id,
|
{growsurf_python-1.12.0 → growsurf_python-1.13.0}/src/growsurf/resources/campaign/participant.py
RENAMED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
from __future__ import annotations
|
|
4
4
|
|
|
5
|
-
from typing import Any, Dict, Iterable, cast
|
|
5
|
+
from typing import Any, Dict, Iterable, Optional, cast
|
|
6
6
|
from typing_extensions import Literal
|
|
7
7
|
|
|
8
8
|
import httpx
|
|
@@ -37,6 +37,7 @@ from ...types.campaign import (
|
|
|
37
37
|
participant_request_payout_destination_confirmation_params,
|
|
38
38
|
)
|
|
39
39
|
from ...types.referral_list import ReferralList
|
|
40
|
+
from ...types.campaign.language import Language
|
|
40
41
|
from ...types.campaign.participant import Participant
|
|
41
42
|
from ...types.participant_payout_list import ParticipantPayoutList
|
|
42
43
|
from ...types.campaign.referral_status import ReferralStatus
|
|
@@ -129,6 +130,7 @@ class ParticipantResource(SyncAPIResource):
|
|
|
129
130
|
affiliate_status: Literal["APPROVED", "SUSPENDED", "BANNED"] | Omit = omit,
|
|
130
131
|
email: str | Omit = omit,
|
|
131
132
|
first_name: str | Omit = omit,
|
|
133
|
+
language: Optional[Language] | Omit = omit,
|
|
132
134
|
last_name: str | Omit = omit,
|
|
133
135
|
metadata: Dict[str, object] | Omit = omit,
|
|
134
136
|
notes: str | Omit = omit,
|
|
@@ -155,6 +157,10 @@ class ParticipantResource(SyncAPIResource):
|
|
|
155
157
|
participant who is not yet an affiliate. `SUSPENDED` and `BANNED` are rejected for
|
|
156
158
|
non-affiliates.
|
|
157
159
|
|
|
160
|
+
language: The language of the participant's portal and program emails. Must be one of the
|
|
161
|
+
program's languages (see `languages` in the program options). Send the base
|
|
162
|
+
language or `null` to use the program's base language.
|
|
163
|
+
|
|
158
164
|
metadata: Shallow custom metadata object.
|
|
159
165
|
|
|
160
166
|
notes: Freeform internal notes about the participant (internal only, never exposed to
|
|
@@ -185,6 +191,7 @@ class ParticipantResource(SyncAPIResource):
|
|
|
185
191
|
"affiliate_status": affiliate_status,
|
|
186
192
|
"email": email,
|
|
187
193
|
"first_name": first_name,
|
|
194
|
+
"language": language,
|
|
188
195
|
"last_name": last_name,
|
|
189
196
|
"metadata": metadata,
|
|
190
197
|
"notes": notes,
|
|
@@ -298,6 +305,7 @@ class ParticipantResource(SyncAPIResource):
|
|
|
298
305
|
first_name: str | Omit = omit,
|
|
299
306
|
ip_address: str | Omit = omit,
|
|
300
307
|
is_affiliate: bool | Omit = omit,
|
|
308
|
+
language: Language | Omit = omit,
|
|
301
309
|
last_name: str | Omit = omit,
|
|
302
310
|
metadata: Dict[str, object] | Omit = omit,
|
|
303
311
|
mobile_instance_id: str | Omit = omit,
|
|
@@ -326,6 +334,9 @@ class ParticipantResource(SyncAPIResource):
|
|
|
326
334
|
non-affiliate without `affiliateStatus`. Existing participants are returned
|
|
327
335
|
unchanged.
|
|
328
336
|
|
|
337
|
+
language: The language of the participant's portal and program emails. Must be one of the
|
|
338
|
+
program's languages. Applied only when this request creates the participant.
|
|
339
|
+
|
|
329
340
|
metadata: Shallow custom metadata object.
|
|
330
341
|
|
|
331
342
|
mobile_instance_id: Optional app-install scoped identifier for native mobile anti-fraud. Recommended
|
|
@@ -358,6 +369,7 @@ class ParticipantResource(SyncAPIResource):
|
|
|
358
369
|
"first_name": first_name,
|
|
359
370
|
"ip_address": ip_address,
|
|
360
371
|
"is_affiliate": is_affiliate,
|
|
372
|
+
"language": language,
|
|
361
373
|
"last_name": last_name,
|
|
362
374
|
"metadata": metadata,
|
|
363
375
|
"mobile_instance_id": mobile_instance_id,
|
|
@@ -1019,7 +1031,7 @@ class ParticipantResource(SyncAPIResource):
|
|
|
1019
1031
|
name, postal address, and an unsubscribe link are added automatically, and
|
|
1020
1032
|
unsubscribed participants are suppressed). Sending requires the team to be
|
|
1021
1033
|
verified by GrowSurf. Requires a **verified custom email domain** on the program
|
|
1022
|
-
(which can be completed in *
|
|
1034
|
+
(which can be completed in *Program Editor > 3. Emails > Email Settings*).
|
|
1023
1035
|
Returns `400` until one is verified. The email is accepted for delivery.
|
|
1024
1036
|
|
|
1025
1037
|
Args:
|
|
@@ -1397,6 +1409,7 @@ class AsyncParticipantResource(AsyncAPIResource):
|
|
|
1397
1409
|
affiliate_status: Literal["APPROVED", "SUSPENDED", "BANNED"] | Omit = omit,
|
|
1398
1410
|
email: str | Omit = omit,
|
|
1399
1411
|
first_name: str | Omit = omit,
|
|
1412
|
+
language: Optional[Language] | Omit = omit,
|
|
1400
1413
|
last_name: str | Omit = omit,
|
|
1401
1414
|
metadata: Dict[str, object] | Omit = omit,
|
|
1402
1415
|
notes: str | Omit = omit,
|
|
@@ -1423,6 +1436,10 @@ class AsyncParticipantResource(AsyncAPIResource):
|
|
|
1423
1436
|
participant who is not yet an affiliate. `SUSPENDED` and `BANNED` are rejected for
|
|
1424
1437
|
non-affiliates.
|
|
1425
1438
|
|
|
1439
|
+
language: The language of the participant's portal and program emails. Must be one of the
|
|
1440
|
+
program's languages (see `languages` in the program options). Send the base
|
|
1441
|
+
language or `null` to use the program's base language.
|
|
1442
|
+
|
|
1426
1443
|
metadata: Shallow custom metadata object.
|
|
1427
1444
|
|
|
1428
1445
|
notes: Freeform internal notes about the participant (internal only, never exposed to
|
|
@@ -1453,6 +1470,7 @@ class AsyncParticipantResource(AsyncAPIResource):
|
|
|
1453
1470
|
"affiliate_status": affiliate_status,
|
|
1454
1471
|
"email": email,
|
|
1455
1472
|
"first_name": first_name,
|
|
1473
|
+
"language": language,
|
|
1456
1474
|
"last_name": last_name,
|
|
1457
1475
|
"metadata": metadata,
|
|
1458
1476
|
"notes": notes,
|
|
@@ -1566,6 +1584,7 @@ class AsyncParticipantResource(AsyncAPIResource):
|
|
|
1566
1584
|
first_name: str | Omit = omit,
|
|
1567
1585
|
ip_address: str | Omit = omit,
|
|
1568
1586
|
is_affiliate: bool | Omit = omit,
|
|
1587
|
+
language: Language | Omit = omit,
|
|
1569
1588
|
last_name: str | Omit = omit,
|
|
1570
1589
|
metadata: Dict[str, object] | Omit = omit,
|
|
1571
1590
|
mobile_instance_id: str | Omit = omit,
|
|
@@ -1594,6 +1613,9 @@ class AsyncParticipantResource(AsyncAPIResource):
|
|
|
1594
1613
|
non-affiliate without `affiliateStatus`. Existing participants are returned
|
|
1595
1614
|
unchanged.
|
|
1596
1615
|
|
|
1616
|
+
language: The language of the participant's portal and program emails. Must be one of the
|
|
1617
|
+
program's languages. Applied only when this request creates the participant.
|
|
1618
|
+
|
|
1597
1619
|
metadata: Shallow custom metadata object.
|
|
1598
1620
|
|
|
1599
1621
|
mobile_instance_id: Optional app-install scoped identifier for native mobile anti-fraud. Recommended
|
|
@@ -1626,6 +1648,7 @@ class AsyncParticipantResource(AsyncAPIResource):
|
|
|
1626
1648
|
"first_name": first_name,
|
|
1627
1649
|
"ip_address": ip_address,
|
|
1628
1650
|
"is_affiliate": is_affiliate,
|
|
1651
|
+
"language": language,
|
|
1629
1652
|
"last_name": last_name,
|
|
1630
1653
|
"metadata": metadata,
|
|
1631
1654
|
"mobile_instance_id": mobile_instance_id,
|
|
@@ -2287,7 +2310,7 @@ class AsyncParticipantResource(AsyncAPIResource):
|
|
|
2287
2310
|
name, postal address, and an unsubscribe link are added automatically, and
|
|
2288
2311
|
unsubscribed participants are suppressed). Sending requires the team to be
|
|
2289
2312
|
verified by GrowSurf. Requires a **verified custom email domain** on the program
|
|
2290
|
-
(which can be completed in *
|
|
2313
|
+
(which can be completed in *Program Editor > 3. Emails > Email Settings*).
|
|
2291
2314
|
Returns `400` until one is verified. The email is accepted for delivery.
|
|
2292
2315
|
|
|
2293
2316
|
Args:
|
|
@@ -58,8 +58,8 @@ class RewardResource(SyncAPIResource):
|
|
|
58
58
|
timeout: float | httpx.Timeout | None | NotGiven = not_given,
|
|
59
59
|
) -> RewardDeleteResponse:
|
|
60
60
|
"""
|
|
61
|
-
Removes a
|
|
62
|
-
approved.
|
|
61
|
+
Removes a participant reward that requires manual approval and has not yet
|
|
62
|
+
been approved.
|
|
63
63
|
|
|
64
64
|
Args:
|
|
65
65
|
extra_headers: Send extra headers
|
|
@@ -96,7 +96,7 @@ class RewardResource(SyncAPIResource):
|
|
|
96
96
|
timeout: float | httpx.Timeout | None | NotGiven = not_given,
|
|
97
97
|
) -> RewardApproveResponse:
|
|
98
98
|
"""
|
|
99
|
-
Approves a
|
|
99
|
+
Approves a participant reward that requires manual approval. This requires
|
|
100
100
|
`reward:write`. When the request also sets `fulfill` to `true`, it additionally
|
|
101
101
|
requires `reward:fulfill`.
|
|
102
102
|
|
|
@@ -196,8 +196,8 @@ class AsyncRewardResource(AsyncAPIResource):
|
|
|
196
196
|
timeout: float | httpx.Timeout | None | NotGiven = not_given,
|
|
197
197
|
) -> RewardDeleteResponse:
|
|
198
198
|
"""
|
|
199
|
-
Removes a
|
|
200
|
-
approved.
|
|
199
|
+
Removes a participant reward that requires manual approval and has not yet
|
|
200
|
+
been approved.
|
|
201
201
|
|
|
202
202
|
Args:
|
|
203
203
|
extra_headers: Send extra headers
|
|
@@ -234,7 +234,7 @@ class AsyncRewardResource(AsyncAPIResource):
|
|
|
234
234
|
timeout: float | httpx.Timeout | None | NotGiven = not_given,
|
|
235
235
|
) -> RewardApproveResponse:
|
|
236
236
|
"""
|
|
237
|
-
Approves a
|
|
237
|
+
Approves a participant reward that requires manual approval. This requires
|
|
238
238
|
`reward:write`. When the request also sets `fulfill` to `true`, it additionally
|
|
239
239
|
requires `reward:fulfill`.
|
|
240
240
|
|
|
@@ -5,6 +5,7 @@ from __future__ import annotations
|
|
|
5
5
|
from .reward import Reward as Reward
|
|
6
6
|
from .webhook import Webhook as Webhook
|
|
7
7
|
from .campaign import Campaign as Campaign
|
|
8
|
+
from .language import Language as Language
|
|
8
9
|
from .integration import Integration as Integration
|
|
9
10
|
from .participant import Participant as Participant
|
|
10
11
|
from .webhook_event import WebhookEvent as WebhookEvent
|
{growsurf_python-1.12.0 → growsurf_python-1.13.0}/src/growsurf/types/campaign/campaign_options.py
RENAMED
|
@@ -8,8 +8,9 @@ __all__ = ["CampaignOptions"]
|
|
|
8
8
|
# A program's options (the dashboard Program Editor's Options tab): reward/fraud
|
|
9
9
|
# approval, anti-fraud lists + toggles, the `LAST_CLICK` or `FIRST_CLICK`
|
|
10
10
|
# attribution model, referral windows, reCAPTCHA, affiliate enrollment +
|
|
11
|
-
# application review, payout + tax settings (affiliate only),
|
|
12
|
-
#
|
|
11
|
+
# application review, payout + tax settings (affiliate only), notification-email
|
|
12
|
+
# settings, and the program's `languages` (`baseLanguage` and
|
|
13
|
+
# `additionalLanguages`). It is intentionally modeled as a loose object. To see the full
|
|
13
14
|
# object with every field and its current value, `GET` the resource, then `PATCH`
|
|
14
15
|
# back only the fields you want to change.
|
|
15
16
|
CampaignOptions: TypeAlias = Dict[str, object]
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
|
|
2
|
+
|
|
3
|
+
from typing_extensions import Literal, TypeAlias
|
|
4
|
+
|
|
5
|
+
__all__ = ["Language"]
|
|
6
|
+
|
|
7
|
+
# A language a program can run in. Participants see the portal and receive program
|
|
8
|
+
# emails in their language.
|
|
9
|
+
Language: TypeAlias = Literal["en", "es", "fr", "de", "it", "pt-BR", "nl", "pl", "sv", "tr", "ja", "ko", "zh-CN", "id"]
|
{growsurf_python-1.12.0 → growsurf_python-1.13.0}/src/growsurf/types/campaign/participant.py
RENAMED
|
@@ -5,6 +5,7 @@ from typing_extensions import Literal
|
|
|
5
5
|
|
|
6
6
|
from pydantic import Field as FieldInfo
|
|
7
7
|
|
|
8
|
+
from .language import Language
|
|
8
9
|
from ..._models import BaseModel
|
|
9
10
|
from .referral_source import ReferralSource
|
|
10
11
|
from .referral_status import ReferralStatus
|
|
@@ -149,6 +150,13 @@ class Participant(BaseModel):
|
|
|
149
150
|
|
|
150
151
|
is_winner: Optional[bool] = FieldInfo(alias="isWinner", default=None)
|
|
151
152
|
|
|
153
|
+
language: Optional[Language] = None
|
|
154
|
+
"""The language of the participant's portal and program emails.
|
|
155
|
+
|
|
156
|
+
The program's base language unless the participant (or you) picked another of the
|
|
157
|
+
program's languages.
|
|
158
|
+
"""
|
|
159
|
+
|
|
152
160
|
last_name: Optional[str] = FieldInfo(alias="lastName", default=None)
|
|
153
161
|
|
|
154
162
|
lead_count: Optional[int] = FieldInfo(alias="leadCount", default=None)
|
|
@@ -6,6 +6,7 @@ from typing import Dict
|
|
|
6
6
|
from typing_extensions import Literal, Required, Annotated, TypedDict
|
|
7
7
|
|
|
8
8
|
from ..._utils import PropertyInfo
|
|
9
|
+
from .language import Language
|
|
9
10
|
|
|
10
11
|
__all__ = ["ParticipantAddParams"]
|
|
11
12
|
|
|
@@ -27,6 +28,13 @@ class ParticipantAddParams(TypedDict, total=False):
|
|
|
27
28
|
unchanged.
|
|
28
29
|
"""
|
|
29
30
|
|
|
31
|
+
language: Language
|
|
32
|
+
"""The language of the participant's portal and program emails.
|
|
33
|
+
|
|
34
|
+
Must be one of the program's languages. Applied only when this request creates
|
|
35
|
+
the participant.
|
|
36
|
+
"""
|
|
37
|
+
|
|
30
38
|
last_name: Annotated[str, PropertyInfo(alias="lastName")]
|
|
31
39
|
|
|
32
40
|
metadata: Dict[str, object]
|
|
@@ -2,11 +2,12 @@
|
|
|
2
2
|
|
|
3
3
|
from __future__ import annotations
|
|
4
4
|
|
|
5
|
-
from typing import Dict
|
|
5
|
+
from typing import Dict, Optional
|
|
6
6
|
from typing_extensions import Literal, Required, Annotated, TypedDict
|
|
7
7
|
|
|
8
8
|
from ..._types import SequenceNotStr
|
|
9
9
|
from ..._utils import PropertyInfo
|
|
10
|
+
from .language import Language
|
|
10
11
|
|
|
11
12
|
__all__ = ["ParticipantUpdateParams"]
|
|
12
13
|
|
|
@@ -25,6 +26,13 @@ class ParticipantUpdateParams(TypedDict, total=False):
|
|
|
25
26
|
|
|
26
27
|
first_name: Annotated[str, PropertyInfo(alias="firstName")]
|
|
27
28
|
|
|
29
|
+
language: Optional[Language]
|
|
30
|
+
"""The language of the participant's portal and program emails.
|
|
31
|
+
|
|
32
|
+
Must be one of the program's languages (see `languages` in the program options).
|
|
33
|
+
Send the base language or `null` to use the program's base language.
|
|
34
|
+
"""
|
|
35
|
+
|
|
28
36
|
last_name: Annotated[str, PropertyInfo(alias="lastName")]
|
|
29
37
|
|
|
30
38
|
metadata: Dict[str, object]
|
|
@@ -6,6 +6,7 @@ from typing import Dict
|
|
|
6
6
|
from typing_extensions import Literal, Required, Annotated, TypedDict
|
|
7
7
|
|
|
8
8
|
from .._utils import PropertyInfo
|
|
9
|
+
from .campaign.language import Language
|
|
9
10
|
|
|
10
11
|
__all__ = ["CampaignCreateMobileParticipantTokenParams"]
|
|
11
12
|
|
|
@@ -27,6 +28,13 @@ class CampaignCreateMobileParticipantTokenParams(TypedDict, total=False):
|
|
|
27
28
|
unchanged.
|
|
28
29
|
"""
|
|
29
30
|
|
|
31
|
+
language: Language
|
|
32
|
+
"""The language of the participant's portal and program emails.
|
|
33
|
+
|
|
34
|
+
Must be one of the program's languages. Applied only when this request creates
|
|
35
|
+
the participant.
|
|
36
|
+
"""
|
|
37
|
+
|
|
30
38
|
last_name: Annotated[str, PropertyInfo(alias="lastName")]
|
|
31
39
|
|
|
32
40
|
metadata: Dict[str, object]
|
{growsurf_python-1.12.0 → growsurf_python-1.13.0}/tests/api_resources/campaign/test_participant.py
RENAMED
|
@@ -104,6 +104,7 @@ class TestParticipant:
|
|
|
104
104
|
id="id",
|
|
105
105
|
email="dev@stainless.com",
|
|
106
106
|
first_name="Gavin",
|
|
107
|
+
language="es",
|
|
107
108
|
last_name="Belson",
|
|
108
109
|
metadata={"company": "bar"},
|
|
109
110
|
notes="notes",
|
|
@@ -278,6 +279,7 @@ class TestParticipant:
|
|
|
278
279
|
first_name="firstName",
|
|
279
280
|
ip_address="ipAddress",
|
|
280
281
|
is_affiliate=True,
|
|
282
|
+
language="es",
|
|
281
283
|
last_name="lastName",
|
|
282
284
|
metadata={"foo": "bar"},
|
|
283
285
|
mobile_instance_id="mobileInstanceId",
|
|
@@ -1344,6 +1346,7 @@ class TestAsyncParticipant:
|
|
|
1344
1346
|
id="id",
|
|
1345
1347
|
email="dev@stainless.com",
|
|
1346
1348
|
first_name="Gavin",
|
|
1349
|
+
language="es",
|
|
1347
1350
|
last_name="Belson",
|
|
1348
1351
|
metadata={"company": "bar"},
|
|
1349
1352
|
notes="notes",
|
|
@@ -1518,6 +1521,7 @@ class TestAsyncParticipant:
|
|
|
1518
1521
|
first_name="firstName",
|
|
1519
1522
|
ip_address="ipAddress",
|
|
1520
1523
|
is_affiliate=True,
|
|
1524
|
+
language="es",
|
|
1521
1525
|
last_name="lastName",
|
|
1522
1526
|
metadata={"foo": "bar"},
|
|
1523
1527
|
mobile_instance_id="mobileInstanceId",
|
|
@@ -318,6 +318,7 @@ class TestCampaign:
|
|
|
318
318
|
fingerprint="fingerprint",
|
|
319
319
|
first_name="firstName",
|
|
320
320
|
ip_address="ipAddress",
|
|
321
|
+
language="es",
|
|
321
322
|
last_name="lastName",
|
|
322
323
|
metadata={"foo": "bar"},
|
|
323
324
|
mobile_instance_id="mobileInstanceId",
|
|
@@ -1382,6 +1383,7 @@ class TestAsyncCampaign:
|
|
|
1382
1383
|
fingerprint="fingerprint",
|
|
1383
1384
|
first_name="firstName",
|
|
1384
1385
|
ip_address="ipAddress",
|
|
1386
|
+
language="es",
|
|
1385
1387
|
last_name="lastName",
|
|
1386
1388
|
metadata={"foo": "bar"},
|
|
1387
1389
|
mobile_instance_id="mobileInstanceId",
|
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
# Security Policy
|
|
2
|
-
|
|
3
|
-
## Reporting Security Issues
|
|
4
|
-
|
|
5
|
-
This SDK is generated by [Stainless Software Inc](http://stainless.com). Stainless takes security seriously, and encourages you to report any security vulnerability promptly so that appropriate action can be taken.
|
|
6
|
-
|
|
7
|
-
To report a security issue, please contact the Stainless team at security@stainless.com.
|
|
8
|
-
|
|
9
|
-
## Responsible Disclosure
|
|
10
|
-
|
|
11
|
-
We appreciate the efforts of security researchers and individuals who help us maintain the security of
|
|
12
|
-
SDKs we generate. If you believe you have found a security vulnerability, please adhere to responsible
|
|
13
|
-
disclosure practices by allowing us a reasonable amount of time to investigate and address the issue
|
|
14
|
-
before making any information public.
|
|
15
|
-
|
|
16
|
-
## Reporting Non-SDK Related Security Issues
|
|
17
|
-
|
|
18
|
-
If you encounter security issues that are not directly related to SDKs but pertain to the services
|
|
19
|
-
or products provided by Growsurf, please follow the respective company's security reporting guidelines.
|
|
20
|
-
|
|
21
|
-
---
|
|
22
|
-
|
|
23
|
-
Thank you for helping us keep the SDKs and systems they interact with secure.
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{growsurf_python-1.12.0 → growsurf_python-1.13.0}/src/growsurf/resources/campaign/__init__.py
RENAMED
|
File without changes
|
{growsurf_python-1.12.0 → growsurf_python-1.13.0}/src/growsurf/resources/campaign/commission.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{growsurf_python-1.12.0 → growsurf_python-1.13.0}/src/growsurf/resources/campaign/installation.py
RENAMED
|
File without changes
|
{growsurf_python-1.12.0 → growsurf_python-1.13.0}/src/growsurf/resources/campaign/integrations.py
RENAMED
|
File without changes
|
{growsurf_python-1.12.0 → growsurf_python-1.13.0}/src/growsurf/resources/campaign/options.py
RENAMED
|
File without changes
|
|
File without changes
|
{growsurf_python-1.12.0 → growsurf_python-1.13.0}/src/growsurf/resources/campaign/rewards.py
RENAMED
|
File without changes
|