growsurf-python 1.8.0__tar.gz → 1.9.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.9.0/.release-please-manifest.json +3 -0
- {growsurf_python-1.8.0 → growsurf_python-1.9.0}/CHANGELOG.md +12 -0
- {growsurf_python-1.8.0 → growsurf_python-1.9.0}/PKG-INFO +1 -1
- {growsurf_python-1.8.0 → growsurf_python-1.9.0}/api.md +3 -0
- {growsurf_python-1.8.0 → growsurf_python-1.9.0}/pyproject.toml +1 -1
- {growsurf_python-1.8.0 → growsurf_python-1.9.0}/src/growsurf/_version.py +1 -1
- {growsurf_python-1.8.0 → growsurf_python-1.9.0}/src/growsurf/resources/campaign/campaign.py +91 -0
- {growsurf_python-1.8.0 → growsurf_python-1.9.0}/src/growsurf/types/__init__.py +2 -0
- {growsurf_python-1.8.0 → growsurf_python-1.9.0}/src/growsurf/types/campaign/participant.py +12 -0
- growsurf_python-1.9.0/src/growsurf/types/referral_flow_screenshot.py +33 -0
- growsurf_python-1.9.0/src/growsurf/types/referral_flow_screenshots_response.py +22 -0
- {growsurf_python-1.8.0 → growsurf_python-1.9.0}/tests/api_resources/test_campaign.py +85 -0
- growsurf_python-1.8.0/.release-please-manifest.json +0 -3
- {growsurf_python-1.8.0 → growsurf_python-1.9.0}/.gitignore +0 -0
- {growsurf_python-1.8.0 → growsurf_python-1.9.0}/CONTRIBUTING.md +0 -0
- {growsurf_python-1.8.0 → growsurf_python-1.9.0}/LICENSE +0 -0
- {growsurf_python-1.8.0 → growsurf_python-1.9.0}/README.md +0 -0
- {growsurf_python-1.8.0 → growsurf_python-1.9.0}/SECURITY.md +0 -0
- {growsurf_python-1.8.0 → growsurf_python-1.9.0}/bin/check-release-environment +0 -0
- {growsurf_python-1.8.0 → growsurf_python-1.9.0}/bin/publish-pypi +0 -0
- {growsurf_python-1.8.0 → growsurf_python-1.9.0}/examples/.keep +0 -0
- {growsurf_python-1.8.0 → growsurf_python-1.9.0}/release-please-config.json +0 -0
- {growsurf_python-1.8.0 → growsurf_python-1.9.0}/requirements-dev.lock +0 -0
- {growsurf_python-1.8.0 → growsurf_python-1.9.0}/src/growsurf/__init__.py +0 -0
- {growsurf_python-1.8.0 → growsurf_python-1.9.0}/src/growsurf/_base_client.py +0 -0
- {growsurf_python-1.8.0 → growsurf_python-1.9.0}/src/growsurf/_client.py +0 -0
- {growsurf_python-1.8.0 → growsurf_python-1.9.0}/src/growsurf/_compat.py +0 -0
- {growsurf_python-1.8.0 → growsurf_python-1.9.0}/src/growsurf/_constants.py +0 -0
- {growsurf_python-1.8.0 → growsurf_python-1.9.0}/src/growsurf/_exceptions.py +0 -0
- {growsurf_python-1.8.0 → growsurf_python-1.9.0}/src/growsurf/_files.py +0 -0
- {growsurf_python-1.8.0 → growsurf_python-1.9.0}/src/growsurf/_models.py +0 -0
- {growsurf_python-1.8.0 → growsurf_python-1.9.0}/src/growsurf/_qs.py +0 -0
- {growsurf_python-1.8.0 → growsurf_python-1.9.0}/src/growsurf/_resource.py +0 -0
- {growsurf_python-1.8.0 → growsurf_python-1.9.0}/src/growsurf/_response.py +0 -0
- {growsurf_python-1.8.0 → growsurf_python-1.9.0}/src/growsurf/_streaming.py +0 -0
- {growsurf_python-1.8.0 → growsurf_python-1.9.0}/src/growsurf/_types.py +0 -0
- {growsurf_python-1.8.0 → growsurf_python-1.9.0}/src/growsurf/_utils/__init__.py +0 -0
- {growsurf_python-1.8.0 → growsurf_python-1.9.0}/src/growsurf/_utils/_compat.py +0 -0
- {growsurf_python-1.8.0 → growsurf_python-1.9.0}/src/growsurf/_utils/_datetime_parse.py +0 -0
- {growsurf_python-1.8.0 → growsurf_python-1.9.0}/src/growsurf/_utils/_json.py +0 -0
- {growsurf_python-1.8.0 → growsurf_python-1.9.0}/src/growsurf/_utils/_logs.py +0 -0
- {growsurf_python-1.8.0 → growsurf_python-1.9.0}/src/growsurf/_utils/_path.py +0 -0
- {growsurf_python-1.8.0 → growsurf_python-1.9.0}/src/growsurf/_utils/_proxy.py +0 -0
- {growsurf_python-1.8.0 → growsurf_python-1.9.0}/src/growsurf/_utils/_reflection.py +0 -0
- {growsurf_python-1.8.0 → growsurf_python-1.9.0}/src/growsurf/_utils/_resources_proxy.py +0 -0
- {growsurf_python-1.8.0 → growsurf_python-1.9.0}/src/growsurf/_utils/_streams.py +0 -0
- {growsurf_python-1.8.0 → growsurf_python-1.9.0}/src/growsurf/_utils/_sync.py +0 -0
- {growsurf_python-1.8.0 → growsurf_python-1.9.0}/src/growsurf/_utils/_transform.py +0 -0
- {growsurf_python-1.8.0 → growsurf_python-1.9.0}/src/growsurf/_utils/_typing.py +0 -0
- {growsurf_python-1.8.0 → growsurf_python-1.9.0}/src/growsurf/_utils/_utils.py +0 -0
- {growsurf_python-1.8.0 → growsurf_python-1.9.0}/src/growsurf/lib/.keep +0 -0
- {growsurf_python-1.8.0 → growsurf_python-1.9.0}/src/growsurf/py.typed +0 -0
- {growsurf_python-1.8.0 → growsurf_python-1.9.0}/src/growsurf/resources/__init__.py +0 -0
- {growsurf_python-1.8.0 → growsurf_python-1.9.0}/src/growsurf/resources/account.py +0 -0
- {growsurf_python-1.8.0 → growsurf_python-1.9.0}/src/growsurf/resources/campaign/__init__.py +0 -0
- {growsurf_python-1.8.0 → growsurf_python-1.9.0}/src/growsurf/resources/campaign/commission.py +0 -0
- {growsurf_python-1.8.0 → growsurf_python-1.9.0}/src/growsurf/resources/campaign/design.py +0 -0
- {growsurf_python-1.8.0 → growsurf_python-1.9.0}/src/growsurf/resources/campaign/emails.py +0 -0
- {growsurf_python-1.8.0 → growsurf_python-1.9.0}/src/growsurf/resources/campaign/installation.py +0 -0
- {growsurf_python-1.8.0 → growsurf_python-1.9.0}/src/growsurf/resources/campaign/integrations.py +0 -0
- {growsurf_python-1.8.0 → growsurf_python-1.9.0}/src/growsurf/resources/campaign/options.py +0 -0
- {growsurf_python-1.8.0 → growsurf_python-1.9.0}/src/growsurf/resources/campaign/participant.py +0 -0
- {growsurf_python-1.8.0 → growsurf_python-1.9.0}/src/growsurf/resources/campaign/program_resources.py +0 -0
- {growsurf_python-1.8.0 → growsurf_python-1.9.0}/src/growsurf/resources/campaign/reward.py +0 -0
- {growsurf_python-1.8.0 → growsurf_python-1.9.0}/src/growsurf/resources/campaign/rewards.py +0 -0
- {growsurf_python-1.8.0 → growsurf_python-1.9.0}/src/growsurf/resources/campaign/webhooks.py +0 -0
- {growsurf_python-1.8.0 → growsurf_python-1.9.0}/src/growsurf/resources/team.py +0 -0
- {growsurf_python-1.8.0 → growsurf_python-1.9.0}/src/growsurf/types/account_create_params.py +0 -0
- {growsurf_python-1.8.0 → growsurf_python-1.9.0}/src/growsurf/types/affiliate_application.py +0 -0
- {growsurf_python-1.8.0 → growsurf_python-1.9.0}/src/growsurf/types/affiliate_application_answer.py +0 -0
- {growsurf_python-1.8.0 → growsurf_python-1.9.0}/src/growsurf/types/affiliate_application_list_response.py +0 -0
- {growsurf_python-1.8.0 → growsurf_python-1.9.0}/src/growsurf/types/affiliate_invite.py +0 -0
- {growsurf_python-1.8.0 → growsurf_python-1.9.0}/src/growsurf/types/affiliate_invite_list_response.py +0 -0
- {growsurf_python-1.8.0 → growsurf_python-1.9.0}/src/growsurf/types/analytics_availability.py +0 -0
- {growsurf_python-1.8.0 → growsurf_python-1.9.0}/src/growsurf/types/analytics_unavailable_reason.py +0 -0
- {growsurf_python-1.8.0 → growsurf_python-1.9.0}/src/growsurf/types/campaign/__init__.py +0 -0
- {growsurf_python-1.8.0 → growsurf_python-1.9.0}/src/growsurf/types/campaign/campaign.py +0 -0
- {growsurf_python-1.8.0 → growsurf_python-1.9.0}/src/growsurf/types/campaign/campaign_design.py +0 -0
- {growsurf_python-1.8.0 → growsurf_python-1.9.0}/src/growsurf/types/campaign/campaign_emails.py +0 -0
- {growsurf_python-1.8.0 → growsurf_python-1.9.0}/src/growsurf/types/campaign/campaign_installation.py +0 -0
- {growsurf_python-1.8.0 → growsurf_python-1.9.0}/src/growsurf/types/campaign/campaign_options.py +0 -0
- {growsurf_python-1.8.0 → growsurf_python-1.9.0}/src/growsurf/types/campaign/campaign_reward_list_response.py +0 -0
- {growsurf_python-1.8.0 → growsurf_python-1.9.0}/src/growsurf/types/campaign/commission_approve_response.py +0 -0
- {growsurf_python-1.8.0 → growsurf_python-1.9.0}/src/growsurf/types/campaign/commission_delete_response.py +0 -0
- {growsurf_python-1.8.0 → growsurf_python-1.9.0}/src/growsurf/types/campaign/delete_program_resource_response.py +0 -0
- {growsurf_python-1.8.0 → growsurf_python-1.9.0}/src/growsurf/types/campaign/delete_reward_response.py +0 -0
- {growsurf_python-1.8.0 → growsurf_python-1.9.0}/src/growsurf/types/campaign/delete_webhook_response.py +0 -0
- {growsurf_python-1.8.0 → growsurf_python-1.9.0}/src/growsurf/types/campaign/email_participant_response.py +0 -0
- {growsurf_python-1.8.0 → growsurf_python-1.9.0}/src/growsurf/types/campaign/fraud_risk_level.py +0 -0
- {growsurf_python-1.8.0 → growsurf_python-1.9.0}/src/growsurf/types/campaign/integration.py +0 -0
- {growsurf_python-1.8.0 → growsurf_python-1.9.0}/src/growsurf/types/campaign/integration_list_response.py +0 -0
- {growsurf_python-1.8.0 → growsurf_python-1.9.0}/src/growsurf/types/campaign/participant_activation_analytics.py +0 -0
- {growsurf_python-1.8.0 → growsurf_python-1.9.0}/src/growsurf/types/campaign/participant_activity_logs_response.py +0 -0
- {growsurf_python-1.8.0 → growsurf_python-1.9.0}/src/growsurf/types/campaign/participant_add_params.py +0 -0
- {growsurf_python-1.8.0 → growsurf_python-1.9.0}/src/growsurf/types/campaign/participant_analytics_params.py +0 -0
- {growsurf_python-1.8.0 → growsurf_python-1.9.0}/src/growsurf/types/campaign/participant_analytics_response.py +0 -0
- {growsurf_python-1.8.0 → growsurf_python-1.9.0}/src/growsurf/types/campaign/participant_bulk_delete_params.py +0 -0
- {growsurf_python-1.8.0 → growsurf_python-1.9.0}/src/growsurf/types/campaign/participant_bulk_delete_response.py +0 -0
- {growsurf_python-1.8.0 → growsurf_python-1.9.0}/src/growsurf/types/campaign/participant_delete_response.py +0 -0
- {growsurf_python-1.8.0 → growsurf_python-1.9.0}/src/growsurf/types/campaign/participant_email_params.py +0 -0
- {growsurf_python-1.8.0 → growsurf_python-1.9.0}/src/growsurf/types/campaign/participant_get_payout_destination_response.py +0 -0
- {growsurf_python-1.8.0 → growsurf_python-1.9.0}/src/growsurf/types/campaign/participant_list_activity_logs_params.py +0 -0
- {growsurf_python-1.8.0 → growsurf_python-1.9.0}/src/growsurf/types/campaign/participant_list_commissions_params.py +0 -0
- {growsurf_python-1.8.0 → growsurf_python-1.9.0}/src/growsurf/types/campaign/participant_list_payouts_params.py +0 -0
- {growsurf_python-1.8.0 → growsurf_python-1.9.0}/src/growsurf/types/campaign/participant_list_referrals_params.py +0 -0
- {growsurf_python-1.8.0 → growsurf_python-1.9.0}/src/growsurf/types/campaign/participant_list_rewards_params.py +0 -0
- {growsurf_python-1.8.0 → growsurf_python-1.9.0}/src/growsurf/types/campaign/participant_list_rewards_response.py +0 -0
- {growsurf_python-1.8.0 → growsurf_python-1.9.0}/src/growsurf/types/campaign/participant_record_transaction_params.py +0 -0
- {growsurf_python-1.8.0 → growsurf_python-1.9.0}/src/growsurf/types/campaign/participant_record_transaction_response.py +0 -0
- {growsurf_python-1.8.0 → growsurf_python-1.9.0}/src/growsurf/types/campaign/participant_refund_transaction_params.py +0 -0
- {growsurf_python-1.8.0 → growsurf_python-1.9.0}/src/growsurf/types/campaign/participant_refund_transaction_response.py +0 -0
- {growsurf_python-1.8.0 → growsurf_python-1.9.0}/src/growsurf/types/campaign/participant_request_payout_destination_confirmation_params.py +0 -0
- {growsurf_python-1.8.0 → growsurf_python-1.9.0}/src/growsurf/types/campaign/participant_request_payout_destination_confirmation_response.py +0 -0
- {growsurf_python-1.8.0 → growsurf_python-1.9.0}/src/growsurf/types/campaign/participant_reward.py +0 -0
- {growsurf_python-1.8.0 → growsurf_python-1.9.0}/src/growsurf/types/campaign/participant_send_invites_params.py +0 -0
- {growsurf_python-1.8.0 → growsurf_python-1.9.0}/src/growsurf/types/campaign/participant_send_invites_response.py +0 -0
- {growsurf_python-1.8.0 → growsurf_python-1.9.0}/src/growsurf/types/campaign/participant_trigger_referral_params.py +0 -0
- {growsurf_python-1.8.0 → growsurf_python-1.9.0}/src/growsurf/types/campaign/participant_trigger_referral_response.py +0 -0
- {growsurf_python-1.8.0 → growsurf_python-1.9.0}/src/growsurf/types/campaign/participant_update_params.py +0 -0
- {growsurf_python-1.8.0 → growsurf_python-1.9.0}/src/growsurf/types/campaign/pending_analytics_erasure.py +0 -0
- {growsurf_python-1.8.0 → growsurf_python-1.9.0}/src/growsurf/types/campaign/program_resource.py +0 -0
- {growsurf_python-1.8.0 → growsurf_python-1.9.0}/src/growsurf/types/campaign/program_resource_list_response.py +0 -0
- {growsurf_python-1.8.0 → growsurf_python-1.9.0}/src/growsurf/types/campaign/program_resource_upload_result.py +0 -0
- {growsurf_python-1.8.0 → growsurf_python-1.9.0}/src/growsurf/types/campaign/program_resource_upload_ticket.py +0 -0
- {growsurf_python-1.8.0 → growsurf_python-1.9.0}/src/growsurf/types/campaign/referral_source.py +0 -0
- {growsurf_python-1.8.0 → growsurf_python-1.9.0}/src/growsurf/types/campaign/referral_status.py +0 -0
- {growsurf_python-1.8.0 → growsurf_python-1.9.0}/src/growsurf/types/campaign/reward.py +0 -0
- {growsurf_python-1.8.0 → growsurf_python-1.9.0}/src/growsurf/types/campaign/reward_approve_params.py +0 -0
- {growsurf_python-1.8.0 → growsurf_python-1.9.0}/src/growsurf/types/campaign/reward_approve_response.py +0 -0
- {growsurf_python-1.8.0 → growsurf_python-1.9.0}/src/growsurf/types/campaign/reward_create_params.py +0 -0
- {growsurf_python-1.8.0 → growsurf_python-1.9.0}/src/growsurf/types/campaign/reward_delete_response.py +0 -0
- {growsurf_python-1.8.0 → growsurf_python-1.9.0}/src/growsurf/types/campaign/reward_fulfill_response.py +0 -0
- {growsurf_python-1.8.0 → growsurf_python-1.9.0}/src/growsurf/types/campaign/reward_tax_valuation.py +0 -0
- {growsurf_python-1.8.0 → growsurf_python-1.9.0}/src/growsurf/types/campaign/reward_update_params.py +0 -0
- {growsurf_python-1.8.0 → growsurf_python-1.9.0}/src/growsurf/types/campaign/webhook.py +0 -0
- {growsurf_python-1.8.0 → growsurf_python-1.9.0}/src/growsurf/types/campaign/webhook_create_params.py +0 -0
- {growsurf_python-1.8.0 → growsurf_python-1.9.0}/src/growsurf/types/campaign/webhook_event.py +0 -0
- {growsurf_python-1.8.0 → growsurf_python-1.9.0}/src/growsurf/types/campaign/webhook_list_response.py +0 -0
- {growsurf_python-1.8.0 → growsurf_python-1.9.0}/src/growsurf/types/campaign/webhook_test_params.py +0 -0
- {growsurf_python-1.8.0 → growsurf_python-1.9.0}/src/growsurf/types/campaign/webhook_test_response.py +0 -0
- {growsurf_python-1.8.0 → growsurf_python-1.9.0}/src/growsurf/types/campaign/webhook_update_params.py +0 -0
- {growsurf_python-1.8.0 → growsurf_python-1.9.0}/src/growsurf/types/campaign_activation_analytics_response.py +0 -0
- {growsurf_python-1.8.0 → growsurf_python-1.9.0}/src/growsurf/types/campaign_create_affiliate_invite_params.py +0 -0
- {growsurf_python-1.8.0 → growsurf_python-1.9.0}/src/growsurf/types/campaign_create_mobile_participant_token_params.py +0 -0
- {growsurf_python-1.8.0 → growsurf_python-1.9.0}/src/growsurf/types/campaign_create_mobile_participant_token_response.py +0 -0
- {growsurf_python-1.8.0 → growsurf_python-1.9.0}/src/growsurf/types/campaign_create_params.py +0 -0
- {growsurf_python-1.8.0 → growsurf_python-1.9.0}/src/growsurf/types/campaign_engagement_analytics.py +0 -0
- {growsurf_python-1.8.0 → growsurf_python-1.9.0}/src/growsurf/types/campaign_list_affiliate_applications_params.py +0 -0
- {growsurf_python-1.8.0 → growsurf_python-1.9.0}/src/growsurf/types/campaign_list_affiliate_invites_params.py +0 -0
- {growsurf_python-1.8.0 → growsurf_python-1.9.0}/src/growsurf/types/campaign_list_commissions_params.py +0 -0
- {growsurf_python-1.8.0 → growsurf_python-1.9.0}/src/growsurf/types/campaign_list_leaderboard_params.py +0 -0
- {growsurf_python-1.8.0 → growsurf_python-1.9.0}/src/growsurf/types/campaign_list_participants_params.py +0 -0
- {growsurf_python-1.8.0 → growsurf_python-1.9.0}/src/growsurf/types/campaign_list_payouts_params.py +0 -0
- {growsurf_python-1.8.0 → growsurf_python-1.9.0}/src/growsurf/types/campaign_list_referrals_params.py +0 -0
- {growsurf_python-1.8.0 → growsurf_python-1.9.0}/src/growsurf/types/campaign_list_response.py +0 -0
- {growsurf_python-1.8.0 → growsurf_python-1.9.0}/src/growsurf/types/campaign_retrieve_activation_analytics_params.py +0 -0
- {growsurf_python-1.8.0 → growsurf_python-1.9.0}/src/growsurf/types/campaign_retrieve_analytics_params.py +0 -0
- {growsurf_python-1.8.0 → growsurf_python-1.9.0}/src/growsurf/types/campaign_retrieve_analytics_response.py +0 -0
- {growsurf_python-1.8.0 → growsurf_python-1.9.0}/src/growsurf/types/campaign_review_affiliate_application_params.py +0 -0
- {growsurf_python-1.8.0 → growsurf_python-1.9.0}/src/growsurf/types/campaign_update_params.py +0 -0
- {growsurf_python-1.8.0 → growsurf_python-1.9.0}/src/growsurf/types/commission_structure.py +0 -0
- {growsurf_python-1.8.0 → growsurf_python-1.9.0}/src/growsurf/types/create_account_response.py +0 -0
- {growsurf_python-1.8.0 → growsurf_python-1.9.0}/src/growsurf/types/email_analytics.py +0 -0
- {growsurf_python-1.8.0 → growsurf_python-1.9.0}/src/growsurf/types/participant_commission_list.py +0 -0
- {growsurf_python-1.8.0 → growsurf_python-1.9.0}/src/growsurf/types/participant_list.py +0 -0
- {growsurf_python-1.8.0 → growsurf_python-1.9.0}/src/growsurf/types/participant_payout_list.py +0 -0
- {growsurf_python-1.8.0 → growsurf_python-1.9.0}/src/growsurf/types/referral_list.py +0 -0
- {growsurf_python-1.8.0 → growsurf_python-1.9.0}/src/growsurf/types/rotate_api_key_response.py +0 -0
- {growsurf_python-1.8.0 → growsurf_python-1.9.0}/src/growsurf/types/team.py +0 -0
- {growsurf_python-1.8.0 → growsurf_python-1.9.0}/src/growsurf/types/team_update_params.py +0 -0
- {growsurf_python-1.8.0 → growsurf_python-1.9.0}/src/growsurf/types/verification_email_response.py +0 -0
- {growsurf_python-1.8.0 → growsurf_python-1.9.0}/tests/__init__.py +0 -0
- {growsurf_python-1.8.0 → growsurf_python-1.9.0}/tests/api_resources/__init__.py +0 -0
- {growsurf_python-1.8.0 → growsurf_python-1.9.0}/tests/api_resources/campaign/__init__.py +0 -0
- {growsurf_python-1.8.0 → growsurf_python-1.9.0}/tests/api_resources/campaign/test_commission.py +0 -0
- {growsurf_python-1.8.0 → growsurf_python-1.9.0}/tests/api_resources/campaign/test_design.py +0 -0
- {growsurf_python-1.8.0 → growsurf_python-1.9.0}/tests/api_resources/campaign/test_emails.py +0 -0
- {growsurf_python-1.8.0 → growsurf_python-1.9.0}/tests/api_resources/campaign/test_installation.py +0 -0
- {growsurf_python-1.8.0 → growsurf_python-1.9.0}/tests/api_resources/campaign/test_integrations.py +0 -0
- {growsurf_python-1.8.0 → growsurf_python-1.9.0}/tests/api_resources/campaign/test_options.py +0 -0
- {growsurf_python-1.8.0 → growsurf_python-1.9.0}/tests/api_resources/campaign/test_participant.py +0 -0
- {growsurf_python-1.8.0 → growsurf_python-1.9.0}/tests/api_resources/campaign/test_program_resources.py +0 -0
- {growsurf_python-1.8.0 → growsurf_python-1.9.0}/tests/api_resources/campaign/test_reward.py +0 -0
- {growsurf_python-1.8.0 → growsurf_python-1.9.0}/tests/api_resources/campaign/test_rewards.py +0 -0
- {growsurf_python-1.8.0 → growsurf_python-1.9.0}/tests/api_resources/campaign/test_webhooks.py +0 -0
- {growsurf_python-1.8.0 → growsurf_python-1.9.0}/tests/api_resources/test_account.py +0 -0
- {growsurf_python-1.8.0 → growsurf_python-1.9.0}/tests/api_resources/test_team_contract.py +0 -0
- {growsurf_python-1.8.0 → growsurf_python-1.9.0}/tests/conftest.py +0 -0
- {growsurf_python-1.8.0 → growsurf_python-1.9.0}/tests/sample_file.txt +0 -0
- {growsurf_python-1.8.0 → growsurf_python-1.9.0}/tests/test_client.py +0 -0
- {growsurf_python-1.8.0 → growsurf_python-1.9.0}/tests/test_extract_files.py +0 -0
- {growsurf_python-1.8.0 → growsurf_python-1.9.0}/tests/test_files.py +0 -0
- {growsurf_python-1.8.0 → growsurf_python-1.9.0}/tests/test_models.py +0 -0
- {growsurf_python-1.8.0 → growsurf_python-1.9.0}/tests/test_qs.py +0 -0
- {growsurf_python-1.8.0 → growsurf_python-1.9.0}/tests/test_required_args.py +0 -0
- {growsurf_python-1.8.0 → growsurf_python-1.9.0}/tests/test_response.py +0 -0
- {growsurf_python-1.8.0 → growsurf_python-1.9.0}/tests/test_streaming.py +0 -0
- {growsurf_python-1.8.0 → growsurf_python-1.9.0}/tests/test_transform.py +0 -0
- {growsurf_python-1.8.0 → growsurf_python-1.9.0}/tests/test_utils/test_datetime_parse.py +0 -0
- {growsurf_python-1.8.0 → growsurf_python-1.9.0}/tests/test_utils/test_json.py +0 -0
- {growsurf_python-1.8.0 → growsurf_python-1.9.0}/tests/test_utils/test_path.py +0 -0
- {growsurf_python-1.8.0 → growsurf_python-1.9.0}/tests/test_utils/test_proxy.py +0 -0
- {growsurf_python-1.8.0 → growsurf_python-1.9.0}/tests/test_utils/test_typing.py +0 -0
- {growsurf_python-1.8.0 → growsurf_python-1.9.0}/tests/types/test_affiliate_application.py +0 -0
- {growsurf_python-1.8.0 → growsurf_python-1.9.0}/tests/types/test_analytics_reward_status.py +0 -0
- {growsurf_python-1.8.0 → growsurf_python-1.9.0}/tests/types/test_email_analytics.py +0 -0
- {growsurf_python-1.8.0 → growsurf_python-1.9.0}/tests/types/test_lead_reward_events.py +0 -0
- {growsurf_python-1.8.0 → growsurf_python-1.9.0}/tests/types/test_participant_activation_engagement_analytics.py +0 -0
- {growsurf_python-1.8.0 → growsurf_python-1.9.0}/tests/types/test_participant_contract.py +0 -0
- {growsurf_python-1.8.0 → growsurf_python-1.9.0}/tests/types/test_payout_provider_forward_compat.py +0 -0
- {growsurf_python-1.8.0 → growsurf_python-1.9.0}/tests/types/test_referral_source.py +0 -0
- {growsurf_python-1.8.0 → growsurf_python-1.9.0}/tests/utils.py +0 -0
- {growsurf_python-1.8.0 → growsurf_python-1.9.0}/uv.lock +0 -0
|
@@ -1,5 +1,17 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## [1.9.0](https://github.com/growsurf/growsurf-python/compare/v1.8.0...v1.9.0) (2026-09-21)
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
### Features
|
|
7
|
+
|
|
8
|
+
* **api:** add referral-flow screenshot capture and participant leadCount ([609e999](https://github.com/growsurf/growsurf-python/commit/609e99910a61e62eb764c3ea52fd880d3b7cdabf))
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
### Chores
|
|
12
|
+
|
|
13
|
+
* merge origin/main ([7c2e7cc](https://github.com/growsurf/growsurf-python/commit/7c2e7cc12f1bb7ce33db786b7e75450c74ebae37))
|
|
14
|
+
|
|
3
15
|
## [1.8.0](https://github.com/growsurf/growsurf-python/compare/v1.7.1...v1.8.0) (2026-09-19)
|
|
4
16
|
|
|
5
17
|
|
|
@@ -52,6 +52,8 @@ from growsurf.types import (
|
|
|
52
52
|
CampaignListResponse,
|
|
53
53
|
CampaignCreateMobileParticipantTokenResponse,
|
|
54
54
|
CampaignRetrieveAnalyticsResponse,
|
|
55
|
+
ReferralFlowScreenshot,
|
|
56
|
+
ReferralFlowScreenshotsResponse,
|
|
55
57
|
)
|
|
56
58
|
```
|
|
57
59
|
|
|
@@ -63,6 +65,7 @@ Methods:
|
|
|
63
65
|
- <code title="get /campaigns">client.campaign.<a href="./src/growsurf/resources/campaign/campaign.py">list</a>() -> <a href="./src/growsurf/types/campaign_list_response.py">CampaignListResponse</a></code>
|
|
64
66
|
- <code title="post /campaign/{id}/clone">client.campaign.<a href="./src/growsurf/resources/campaign/campaign.py">clone</a>(id) -> <a href="./src/growsurf/types/campaign/campaign.py">Campaign</a></code>
|
|
65
67
|
- <code title="post /campaign/{id}/mobile-participant-token">client.campaign.<a href="./src/growsurf/resources/campaign/campaign.py">create_mobile_participant_token</a>(id, \*\*<a href="src/growsurf/types/campaign_create_mobile_participant_token_params.py">params</a>) -> <a href="./src/growsurf/types/campaign_create_mobile_participant_token_response.py">CampaignCreateMobileParticipantTokenResponse</a></code>
|
|
68
|
+
- <code title="post /campaign/{id}/referral-flow-screenshots">client.campaign.<a href="./src/growsurf/resources/campaign/campaign.py">capture_referral_flow_screenshots</a>(id) -> <a href="./src/growsurf/types/referral_flow_screenshots_response.py">ReferralFlowScreenshotsResponse</a></code>
|
|
66
69
|
- <code title="get /campaign/{id}/commissions">client.campaign.<a href="./src/growsurf/resources/campaign/campaign.py">list_commissions</a>(id, \*\*<a href="src/growsurf/types/campaign_list_commissions_params.py">params</a>) -> <a href="./src/growsurf/types/participant_commission_list.py">ParticipantCommissionList</a></code>
|
|
67
70
|
- <code title="get /campaign/{id}/leaderboard">client.campaign.<a href="./src/growsurf/resources/campaign/campaign.py">list_leaderboard</a>(id, \*\*<a href="src/growsurf/types/campaign_list_leaderboard_params.py">params</a>) -> <a href="./src/growsurf/types/participant_list.py">ParticipantList</a></code>
|
|
68
71
|
- <code title="get /campaign/{id}/participants">client.campaign.<a href="./src/growsurf/resources/campaign/campaign.py">list_participants</a>(id, \*\*<a href="src/growsurf/types/campaign_list_participants_params.py">params</a>) -> <a href="./src/growsurf/types/participant_list.py">ParticipantList</a></code>
|
|
@@ -133,6 +133,7 @@ from ...types.participant_payout_list import ParticipantPayoutList
|
|
|
133
133
|
from ...types.campaign.referral_status import ReferralStatus
|
|
134
134
|
from ...types.participant_commission_list import ParticipantCommissionList
|
|
135
135
|
from ...types.affiliate_invite_list_response import AffiliateInviteListResponse
|
|
136
|
+
from ...types.referral_flow_screenshots_response import ReferralFlowScreenshotsResponse
|
|
136
137
|
from ...types.affiliate_application_list_response import AffiliateApplicationListResponse
|
|
137
138
|
from ...types.campaign_retrieve_analytics_response import CampaignRetrieveAnalyticsResponse
|
|
138
139
|
from ...types.campaign_activation_analytics_response import CampaignActivationAnalyticsResponse
|
|
@@ -500,6 +501,45 @@ class CampaignResource(SyncAPIResource):
|
|
|
500
501
|
cast_to=CampaignCreateMobileParticipantTokenResponse,
|
|
501
502
|
)
|
|
502
503
|
|
|
504
|
+
def capture_referral_flow_screenshots(
|
|
505
|
+
self,
|
|
506
|
+
id: str,
|
|
507
|
+
*,
|
|
508
|
+
# Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
|
|
509
|
+
# The extra values given here take precedence over values defined on the client or passed to this method.
|
|
510
|
+
extra_headers: Headers | None = None,
|
|
511
|
+
extra_query: Query | None = None,
|
|
512
|
+
extra_body: Body | None = None,
|
|
513
|
+
timeout: float | httpx.Timeout | None | NotGiven = not_given,
|
|
514
|
+
) -> ReferralFlowScreenshotsResponse:
|
|
515
|
+
"""
|
|
516
|
+
Renders the program's current saved configuration into two preview images: the
|
|
517
|
+
referrer window a participant sees, and the referred-friend experience. Use them
|
|
518
|
+
to show a person what the draft looks like before anything launches. The images
|
|
519
|
+
render GrowSurf's own preview, not the program's installed website, so they do
|
|
520
|
+
not prove an installation. Each `url` is private and expires; capture again when
|
|
521
|
+
you need a fresh view. Only the account owner's credential can capture
|
|
522
|
+
screenshots, and the endpoint takes no request body.
|
|
523
|
+
|
|
524
|
+
Args:
|
|
525
|
+
extra_headers: Send extra headers
|
|
526
|
+
|
|
527
|
+
extra_query: Add additional query parameters to the request
|
|
528
|
+
|
|
529
|
+
extra_body: Add additional JSON properties to the request
|
|
530
|
+
|
|
531
|
+
timeout: Override the client-level default timeout for this request, in seconds
|
|
532
|
+
"""
|
|
533
|
+
if not id:
|
|
534
|
+
raise ValueError(f"Expected a non-empty value for `id` but received {id!r}")
|
|
535
|
+
return self._post(
|
|
536
|
+
path_template("/campaign/{id}/referral-flow-screenshots", id=id),
|
|
537
|
+
options=make_request_options(
|
|
538
|
+
extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
|
|
539
|
+
),
|
|
540
|
+
cast_to=ReferralFlowScreenshotsResponse,
|
|
541
|
+
)
|
|
542
|
+
|
|
503
543
|
def list_commissions(
|
|
504
544
|
self,
|
|
505
545
|
id: str,
|
|
@@ -1687,6 +1727,45 @@ class AsyncCampaignResource(AsyncAPIResource):
|
|
|
1687
1727
|
cast_to=CampaignCreateMobileParticipantTokenResponse,
|
|
1688
1728
|
)
|
|
1689
1729
|
|
|
1730
|
+
async def capture_referral_flow_screenshots(
|
|
1731
|
+
self,
|
|
1732
|
+
id: str,
|
|
1733
|
+
*,
|
|
1734
|
+
# Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
|
|
1735
|
+
# The extra values given here take precedence over values defined on the client or passed to this method.
|
|
1736
|
+
extra_headers: Headers | None = None,
|
|
1737
|
+
extra_query: Query | None = None,
|
|
1738
|
+
extra_body: Body | None = None,
|
|
1739
|
+
timeout: float | httpx.Timeout | None | NotGiven = not_given,
|
|
1740
|
+
) -> ReferralFlowScreenshotsResponse:
|
|
1741
|
+
"""
|
|
1742
|
+
Renders the program's current saved configuration into two preview images: the
|
|
1743
|
+
referrer window a participant sees, and the referred-friend experience. Use them
|
|
1744
|
+
to show a person what the draft looks like before anything launches. The images
|
|
1745
|
+
render GrowSurf's own preview, not the program's installed website, so they do
|
|
1746
|
+
not prove an installation. Each `url` is private and expires; capture again when
|
|
1747
|
+
you need a fresh view. Only the account owner's credential can capture
|
|
1748
|
+
screenshots, and the endpoint takes no request body.
|
|
1749
|
+
|
|
1750
|
+
Args:
|
|
1751
|
+
extra_headers: Send extra headers
|
|
1752
|
+
|
|
1753
|
+
extra_query: Add additional query parameters to the request
|
|
1754
|
+
|
|
1755
|
+
extra_body: Add additional JSON properties to the request
|
|
1756
|
+
|
|
1757
|
+
timeout: Override the client-level default timeout for this request, in seconds
|
|
1758
|
+
"""
|
|
1759
|
+
if not id:
|
|
1760
|
+
raise ValueError(f"Expected a non-empty value for `id` but received {id!r}")
|
|
1761
|
+
return await self._post(
|
|
1762
|
+
path_template("/campaign/{id}/referral-flow-screenshots", id=id),
|
|
1763
|
+
options=make_request_options(
|
|
1764
|
+
extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
|
|
1765
|
+
),
|
|
1766
|
+
cast_to=ReferralFlowScreenshotsResponse,
|
|
1767
|
+
)
|
|
1768
|
+
|
|
1690
1769
|
async def list_commissions(
|
|
1691
1770
|
self,
|
|
1692
1771
|
id: str,
|
|
@@ -2537,6 +2616,9 @@ class CampaignResourceWithRawResponse:
|
|
|
2537
2616
|
self.create_mobile_participant_token = to_raw_response_wrapper(
|
|
2538
2617
|
campaign.create_mobile_participant_token,
|
|
2539
2618
|
)
|
|
2619
|
+
self.capture_referral_flow_screenshots = to_raw_response_wrapper(
|
|
2620
|
+
campaign.capture_referral_flow_screenshots,
|
|
2621
|
+
)
|
|
2540
2622
|
self.list_commissions = to_raw_response_wrapper(
|
|
2541
2623
|
campaign.list_commissions,
|
|
2542
2624
|
)
|
|
@@ -2656,6 +2738,9 @@ class AsyncCampaignResourceWithRawResponse:
|
|
|
2656
2738
|
self.create_mobile_participant_token = async_to_raw_response_wrapper(
|
|
2657
2739
|
campaign.create_mobile_participant_token,
|
|
2658
2740
|
)
|
|
2741
|
+
self.capture_referral_flow_screenshots = async_to_raw_response_wrapper(
|
|
2742
|
+
campaign.capture_referral_flow_screenshots,
|
|
2743
|
+
)
|
|
2659
2744
|
self.list_commissions = async_to_raw_response_wrapper(
|
|
2660
2745
|
campaign.list_commissions,
|
|
2661
2746
|
)
|
|
@@ -2775,6 +2860,9 @@ class CampaignResourceWithStreamingResponse:
|
|
|
2775
2860
|
self.create_mobile_participant_token = to_streamed_response_wrapper(
|
|
2776
2861
|
campaign.create_mobile_participant_token,
|
|
2777
2862
|
)
|
|
2863
|
+
self.capture_referral_flow_screenshots = to_streamed_response_wrapper(
|
|
2864
|
+
campaign.capture_referral_flow_screenshots,
|
|
2865
|
+
)
|
|
2778
2866
|
self.list_commissions = to_streamed_response_wrapper(
|
|
2779
2867
|
campaign.list_commissions,
|
|
2780
2868
|
)
|
|
@@ -2894,6 +2982,9 @@ class AsyncCampaignResourceWithStreamingResponse:
|
|
|
2894
2982
|
self.create_mobile_participant_token = async_to_streamed_response_wrapper(
|
|
2895
2983
|
campaign.create_mobile_participant_token,
|
|
2896
2984
|
)
|
|
2985
|
+
self.capture_referral_flow_screenshots = async_to_streamed_response_wrapper(
|
|
2986
|
+
campaign.capture_referral_flow_screenshots,
|
|
2987
|
+
)
|
|
2897
2988
|
self.list_commissions = async_to_streamed_response_wrapper(
|
|
2898
2989
|
campaign.list_commissions,
|
|
2899
2990
|
)
|
|
@@ -23,6 +23,7 @@ from .campaign_update_params import CampaignUpdateParams as CampaignUpdateParams
|
|
|
23
23
|
from .create_account_response import CreateAccountResponse as CreateAccountResponse
|
|
24
24
|
from .participant_payout_list import ParticipantPayoutList as ParticipantPayoutList
|
|
25
25
|
from .rotate_api_key_response import RotateApiKeyResponse as RotateApiKeyResponse
|
|
26
|
+
from .referral_flow_screenshot import ReferralFlowScreenshot as ReferralFlowScreenshot
|
|
26
27
|
from .participant_commission_list import ParticipantCommissionList as ParticipantCommissionList
|
|
27
28
|
from .verification_email_response import VerificationEmailResponse as VerificationEmailResponse
|
|
28
29
|
from .affiliate_application_answer import AffiliateApplicationAnswer as AffiliateApplicationAnswer
|
|
@@ -35,6 +36,7 @@ from .campaign_list_commissions_params import CampaignListCommissionsParams as C
|
|
|
35
36
|
from .campaign_list_leaderboard_params import CampaignListLeaderboardParams as CampaignListLeaderboardParams
|
|
36
37
|
from .campaign_list_participants_params import CampaignListParticipantsParams as CampaignListParticipantsParams
|
|
37
38
|
from .campaign_retrieve_analytics_params import CampaignRetrieveAnalyticsParams as CampaignRetrieveAnalyticsParams
|
|
39
|
+
from .referral_flow_screenshots_response import ReferralFlowScreenshotsResponse as ReferralFlowScreenshotsResponse
|
|
38
40
|
from .affiliate_application_list_response import AffiliateApplicationListResponse as AffiliateApplicationListResponse
|
|
39
41
|
from .campaign_retrieve_analytics_response import CampaignRetrieveAnalyticsResponse as CampaignRetrieveAnalyticsResponse
|
|
40
42
|
from .campaign_activation_analytics_response import (
|
|
@@ -49,6 +49,12 @@ class Referrer(BaseModel):
|
|
|
49
49
|
|
|
50
50
|
last_name: Optional[str] = FieldInfo(alias="lastName", default=None)
|
|
51
51
|
|
|
52
|
+
lead_count: Optional[int] = FieldInfo(alias="leadCount", default=None)
|
|
53
|
+
"""
|
|
54
|
+
The number of pending referrals the participant made that have not converted
|
|
55
|
+
into successful referrals yet.
|
|
56
|
+
"""
|
|
57
|
+
|
|
52
58
|
metadata: Optional[Dict[str, object]] = None
|
|
53
59
|
"""Shallow custom metadata object."""
|
|
54
60
|
|
|
@@ -145,6 +151,12 @@ class Participant(BaseModel):
|
|
|
145
151
|
|
|
146
152
|
last_name: Optional[str] = FieldInfo(alias="lastName", default=None)
|
|
147
153
|
|
|
154
|
+
lead_count: Optional[int] = FieldInfo(alias="leadCount", default=None)
|
|
155
|
+
"""
|
|
156
|
+
The number of pending referrals the participant made that have not converted
|
|
157
|
+
into successful referrals yet.
|
|
158
|
+
"""
|
|
159
|
+
|
|
148
160
|
metadata: Optional[Dict[str, object]] = None
|
|
149
161
|
"""Shallow custom metadata object."""
|
|
150
162
|
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
|
|
2
|
+
|
|
3
|
+
from datetime import datetime
|
|
4
|
+
from typing_extensions import Literal
|
|
5
|
+
|
|
6
|
+
from pydantic import Field as FieldInfo
|
|
7
|
+
|
|
8
|
+
from .._models import BaseModel
|
|
9
|
+
|
|
10
|
+
__all__ = ["ReferralFlowScreenshot"]
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
class ReferralFlowScreenshot(BaseModel):
|
|
14
|
+
view: Literal["referrer", "referredFriend"]
|
|
15
|
+
"""Which side of the referral flow the image shows."""
|
|
16
|
+
|
|
17
|
+
label: str
|
|
18
|
+
"""Short human-readable name for the view, such as `Referrer window`."""
|
|
19
|
+
|
|
20
|
+
url: str
|
|
21
|
+
"""Private URL of the image. It stops working at `expiresAt`."""
|
|
22
|
+
|
|
23
|
+
expires_at: datetime = FieldInfo(alias="expiresAt")
|
|
24
|
+
"""ISO 8601 time after which `url` no longer resolves."""
|
|
25
|
+
|
|
26
|
+
width: int
|
|
27
|
+
"""Image width in pixels."""
|
|
28
|
+
|
|
29
|
+
height: int
|
|
30
|
+
"""Image height in pixels."""
|
|
31
|
+
|
|
32
|
+
content_type: str = FieldInfo(alias="contentType")
|
|
33
|
+
"""MIME type of the image."""
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
|
|
2
|
+
|
|
3
|
+
from typing import List
|
|
4
|
+
from datetime import datetime
|
|
5
|
+
|
|
6
|
+
from pydantic import Field as FieldInfo
|
|
7
|
+
|
|
8
|
+
from .._models import BaseModel
|
|
9
|
+
from .referral_flow_screenshot import ReferralFlowScreenshot
|
|
10
|
+
|
|
11
|
+
__all__ = ["ReferralFlowScreenshotsResponse"]
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
class ReferralFlowScreenshotsResponse(BaseModel):
|
|
15
|
+
generated_at: datetime = FieldInfo(alias="generatedAt")
|
|
16
|
+
"""ISO 8601 time the images were rendered."""
|
|
17
|
+
|
|
18
|
+
expires_at: datetime = FieldInfo(alias="expiresAt")
|
|
19
|
+
"""ISO 8601 time after which every `url` in `screenshots` stops working."""
|
|
20
|
+
|
|
21
|
+
screenshots: List[ReferralFlowScreenshot]
|
|
22
|
+
"""One entry per view, in referrer then referred-friend order."""
|
|
@@ -20,6 +20,7 @@ from growsurf.types import (
|
|
|
20
20
|
ParticipantPayoutList,
|
|
21
21
|
ParticipantCommissionList,
|
|
22
22
|
AffiliateInviteListResponse,
|
|
23
|
+
ReferralFlowScreenshotsResponse,
|
|
23
24
|
AffiliateApplicationListResponse,
|
|
24
25
|
CampaignRetrieveAnalyticsResponse,
|
|
25
26
|
CampaignCreateMobileParticipantTokenResponse,
|
|
@@ -362,6 +363,48 @@ class TestCampaign:
|
|
|
362
363
|
email="dev@stainless.com",
|
|
363
364
|
)
|
|
364
365
|
|
|
366
|
+
@pytest.mark.skip(reason="Mock server tests are disabled")
|
|
367
|
+
@parametrize
|
|
368
|
+
def test_method_capture_referral_flow_screenshots(self, client: Growsurf) -> None:
|
|
369
|
+
campaign = client.campaign.capture_referral_flow_screenshots(
|
|
370
|
+
"id",
|
|
371
|
+
)
|
|
372
|
+
assert_matches_type(ReferralFlowScreenshotsResponse, campaign, path=["response"])
|
|
373
|
+
|
|
374
|
+
@pytest.mark.skip(reason="Mock server tests are disabled")
|
|
375
|
+
@parametrize
|
|
376
|
+
def test_raw_response_capture_referral_flow_screenshots(self, client: Growsurf) -> None:
|
|
377
|
+
response = client.campaign.with_raw_response.capture_referral_flow_screenshots(
|
|
378
|
+
"id",
|
|
379
|
+
)
|
|
380
|
+
|
|
381
|
+
assert response.is_closed is True
|
|
382
|
+
assert response.http_request.headers.get("X-Stainless-Lang") == "python"
|
|
383
|
+
campaign = response.parse()
|
|
384
|
+
assert_matches_type(ReferralFlowScreenshotsResponse, campaign, path=["response"])
|
|
385
|
+
|
|
386
|
+
@pytest.mark.skip(reason="Mock server tests are disabled")
|
|
387
|
+
@parametrize
|
|
388
|
+
def test_streaming_response_capture_referral_flow_screenshots(self, client: Growsurf) -> None:
|
|
389
|
+
with client.campaign.with_streaming_response.capture_referral_flow_screenshots(
|
|
390
|
+
"id",
|
|
391
|
+
) as response:
|
|
392
|
+
assert not response.is_closed
|
|
393
|
+
assert response.http_request.headers.get("X-Stainless-Lang") == "python"
|
|
394
|
+
|
|
395
|
+
campaign = response.parse()
|
|
396
|
+
assert_matches_type(ReferralFlowScreenshotsResponse, campaign, path=["response"])
|
|
397
|
+
|
|
398
|
+
assert cast(Any, response.is_closed) is True
|
|
399
|
+
|
|
400
|
+
@pytest.mark.skip(reason="Mock server tests are disabled")
|
|
401
|
+
@parametrize
|
|
402
|
+
def test_path_params_capture_referral_flow_screenshots(self, client: Growsurf) -> None:
|
|
403
|
+
with pytest.raises(ValueError, match=r"Expected a non-empty value for `id` but received ''"):
|
|
404
|
+
client.campaign.with_raw_response.capture_referral_flow_screenshots(
|
|
405
|
+
"",
|
|
406
|
+
)
|
|
407
|
+
|
|
365
408
|
@pytest.mark.skip(reason="Mock server tests are disabled")
|
|
366
409
|
@parametrize
|
|
367
410
|
def test_method_list_commissions(self, client: Growsurf) -> None:
|
|
@@ -1384,6 +1427,48 @@ class TestAsyncCampaign:
|
|
|
1384
1427
|
email="dev@stainless.com",
|
|
1385
1428
|
)
|
|
1386
1429
|
|
|
1430
|
+
@pytest.mark.skip(reason="Mock server tests are disabled")
|
|
1431
|
+
@parametrize
|
|
1432
|
+
async def test_method_capture_referral_flow_screenshots(self, async_client: AsyncGrowsurf) -> None:
|
|
1433
|
+
campaign = await async_client.campaign.capture_referral_flow_screenshots(
|
|
1434
|
+
"id",
|
|
1435
|
+
)
|
|
1436
|
+
assert_matches_type(ReferralFlowScreenshotsResponse, campaign, path=["response"])
|
|
1437
|
+
|
|
1438
|
+
@pytest.mark.skip(reason="Mock server tests are disabled")
|
|
1439
|
+
@parametrize
|
|
1440
|
+
async def test_raw_response_capture_referral_flow_screenshots(self, async_client: AsyncGrowsurf) -> None:
|
|
1441
|
+
response = await async_client.campaign.with_raw_response.capture_referral_flow_screenshots(
|
|
1442
|
+
"id",
|
|
1443
|
+
)
|
|
1444
|
+
|
|
1445
|
+
assert response.is_closed is True
|
|
1446
|
+
assert response.http_request.headers.get("X-Stainless-Lang") == "python"
|
|
1447
|
+
campaign = await response.parse()
|
|
1448
|
+
assert_matches_type(ReferralFlowScreenshotsResponse, campaign, path=["response"])
|
|
1449
|
+
|
|
1450
|
+
@pytest.mark.skip(reason="Mock server tests are disabled")
|
|
1451
|
+
@parametrize
|
|
1452
|
+
async def test_streaming_response_capture_referral_flow_screenshots(self, async_client: AsyncGrowsurf) -> None:
|
|
1453
|
+
async with async_client.campaign.with_streaming_response.capture_referral_flow_screenshots(
|
|
1454
|
+
"id",
|
|
1455
|
+
) as response:
|
|
1456
|
+
assert not response.is_closed
|
|
1457
|
+
assert response.http_request.headers.get("X-Stainless-Lang") == "python"
|
|
1458
|
+
|
|
1459
|
+
campaign = await response.parse()
|
|
1460
|
+
assert_matches_type(ReferralFlowScreenshotsResponse, campaign, path=["response"])
|
|
1461
|
+
|
|
1462
|
+
assert cast(Any, response.is_closed) is True
|
|
1463
|
+
|
|
1464
|
+
@pytest.mark.skip(reason="Mock server tests are disabled")
|
|
1465
|
+
@parametrize
|
|
1466
|
+
async def test_path_params_capture_referral_flow_screenshots(self, async_client: AsyncGrowsurf) -> None:
|
|
1467
|
+
with pytest.raises(ValueError, match=r"Expected a non-empty value for `id` but received ''"):
|
|
1468
|
+
await async_client.campaign.with_raw_response.capture_referral_flow_screenshots(
|
|
1469
|
+
"",
|
|
1470
|
+
)
|
|
1471
|
+
|
|
1387
1472
|
@pytest.mark.skip(reason="Mock server tests are disabled")
|
|
1388
1473
|
@parametrize
|
|
1389
1474
|
async def test_method_list_commissions(self, async_client: AsyncGrowsurf) -> None:
|
|
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
|
|
File without changes
|
|
File without changes
|
{growsurf_python-1.8.0 → growsurf_python-1.9.0}/src/growsurf/resources/campaign/commission.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{growsurf_python-1.8.0 → growsurf_python-1.9.0}/src/growsurf/resources/campaign/installation.py
RENAMED
|
File without changes
|
{growsurf_python-1.8.0 → growsurf_python-1.9.0}/src/growsurf/resources/campaign/integrations.py
RENAMED
|
File without changes
|
|
File without changes
|
{growsurf_python-1.8.0 → growsurf_python-1.9.0}/src/growsurf/resources/campaign/participant.py
RENAMED
|
File without changes
|
{growsurf_python-1.8.0 → growsurf_python-1.9.0}/src/growsurf/resources/campaign/program_resources.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{growsurf_python-1.8.0 → growsurf_python-1.9.0}/src/growsurf/types/affiliate_application_answer.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{growsurf_python-1.8.0 → growsurf_python-1.9.0}/src/growsurf/types/affiliate_invite_list_response.py
RENAMED
|
File without changes
|
{growsurf_python-1.8.0 → growsurf_python-1.9.0}/src/growsurf/types/analytics_availability.py
RENAMED
|
File without changes
|
{growsurf_python-1.8.0 → growsurf_python-1.9.0}/src/growsurf/types/analytics_unavailable_reason.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{growsurf_python-1.8.0 → growsurf_python-1.9.0}/src/growsurf/types/campaign/campaign_design.py
RENAMED
|
File without changes
|
{growsurf_python-1.8.0 → growsurf_python-1.9.0}/src/growsurf/types/campaign/campaign_emails.py
RENAMED
|
File without changes
|
{growsurf_python-1.8.0 → growsurf_python-1.9.0}/src/growsurf/types/campaign/campaign_installation.py
RENAMED
|
File without changes
|
{growsurf_python-1.8.0 → growsurf_python-1.9.0}/src/growsurf/types/campaign/campaign_options.py
RENAMED
|
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.8.0 → growsurf_python-1.9.0}/src/growsurf/types/campaign/fraud_risk_level.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|