leadping 1.0.0__py3-none-any.whl
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.
- leadping/__init__.py +3 -0
- leadping/analytics/analytics_request_builder.py +33 -0
- leadping/analytics/my/my_request_builder.py +111 -0
- leadping/automations/all/all_request_builder.py +33 -0
- leadping/automations/all/my/my_request_builder.py +89 -0
- leadping/automations/automations_request_builder.py +124 -0
- leadping/automations/item/automations_item_request_builder.py +164 -0
- leadping/automations/preview/preview_request_builder.py +89 -0
- leadping/businesses/businesses_request_builder.py +43 -0
- leadping/businesses/invitations/accept/accept_request_builder.py +89 -0
- leadping/businesses/invitations/invitations_request_builder.py +43 -0
- leadping/businesses/invitations/token/item/with_token_item_request_builder.py +81 -0
- leadping/businesses/invitations/token/token_request_builder.py +38 -0
- leadping/businesses/me/invitations/invitations_request_builder.py +138 -0
- leadping/businesses/me/invitations/item/resend/resend_request_builder.py +81 -0
- leadping/businesses/me/invitations/item/with_invitation_item_request_builder.py +88 -0
- leadping/businesses/me/me_request_builder.py +167 -0
- leadping/businesses/me/options/options_request_builder.py +75 -0
- leadping/businesses/me/switch/switch_request_builder.py +89 -0
- leadping/businesses/me/users/item/with_user_item_request_builder.py +127 -0
- leadping/businesses/me/users/users_request_builder.py +139 -0
- leadping/contact/contact_request_builder.py +89 -0
- leadping/conversations/conversations_request_builder.py +43 -0
- leadping/conversations/lead/item/with_lead_item_request_builder.py +90 -0
- leadping/conversations/lead/lead_request_builder.py +38 -0
- leadping/conversations/my/my_request_builder.py +110 -0
- leadping/dispositions/dispositions_request_builder.py +115 -0
- leadping/dispositions/item/dispositions_item_request_builder.py +164 -0
- leadping/dispositions/lead/item/export/export_request_builder.py +81 -0
- leadping/dispositions/lead/item/with_lead_item_request_builder.py +91 -0
- leadping/dispositions/lead/lead_request_builder.py +38 -0
- leadping/events/all/all_request_builder.py +33 -0
- leadping/events/all/my/my_request_builder.py +97 -0
- leadping/events/businesses/businesses_request_builder.py +38 -0
- leadping/events/businesses/item/with_business_item_request_builder.py +89 -0
- leadping/events/calls/all/all_request_builder.py +33 -0
- leadping/events/calls/all/my/my_request_builder.py +89 -0
- leadping/events/calls/calls_request_builder.py +68 -0
- leadping/events/calls/item/with_call_event_item_request_builder.py +81 -0
- leadping/events/calls/lead/item/with_lead_item_request_builder.py +89 -0
- leadping/events/calls/lead/lead_request_builder.py +38 -0
- leadping/events/calls/phone/item/with_phone_number_item_request_builder.py +89 -0
- leadping/events/calls/phone/phone_request_builder.py +38 -0
- leadping/events/conversations/conversations_request_builder.py +38 -0
- leadping/events/conversations/item/notes/notes_request_builder.py +89 -0
- leadping/events/conversations/item/with_conversation_item_request_builder.py +99 -0
- leadping/events/events_request_builder.py +98 -0
- leadping/events/item/detail/detail_request_builder.py +81 -0
- leadping/events/item/with_event_item_request_builder.py +91 -0
- leadping/events/leads/item/with_lead_item_request_builder.py +89 -0
- leadping/events/leads/leads_request_builder.py +38 -0
- leadping/events/sms/all/all_request_builder.py +33 -0
- leadping/events/sms/all/my/my_request_builder.py +89 -0
- leadping/events/sms/item/with_sms_event_item_request_builder.py +81 -0
- leadping/events/sms/lead/item/with_lead_item_request_builder.py +89 -0
- leadping/events/sms/lead/lead_request_builder.py +38 -0
- leadping/events/sms/phone/item/with_phone_number_item_request_builder.py +89 -0
- leadping/events/sms/phone/phone_request_builder.py +38 -0
- leadping/events/sms/sms_request_builder.py +68 -0
- leadping/feedback/admin/admin_request_builder.py +143 -0
- leadping/feedback/admin/item/admin_item_request_builder.py +128 -0
- leadping/feedback/feedback_request_builder.py +99 -0
- leadping/leadping_open_api_client.py +253 -0
- leadping/leads/all/all_request_builder.py +33 -0
- leadping/leads/all/my/my_request_builder.py +115 -0
- leadping/leads/intake/intake_request_builder.py +339 -0
- leadping/leads/item/archive/archive_post_request_body.py +54 -0
- leadping/leads/item/archive/archive_request_builder.py +90 -0
- leadping/leads/item/leads_item_request_builder.py +205 -0
- leadping/leads/item/tags/item/with_tag_item_request_builder.py +81 -0
- leadping/leads/item/tags/tags_request_builder.py +151 -0
- leadping/leads/item/unarchive/unarchive_request_builder.py +81 -0
- leadping/leads/item/workflow_status/workflow_status_request_builder.py +81 -0
- leadping/leads/leads_request_builder.py +148 -0
- leadping/models/accept_business_invitation_request.py +62 -0
- leadping/models/activation_domain_option.py +70 -0
- leadping/models/activation_launch_review_status.py +9 -0
- leadping/models/activation_onboarding_status.py +7 -0
- leadping/models/activation_payment_status.py +7 -0
- leadping/models/activation_subscription_status.py +8 -0
- leadping/models/activation_telephony_status.py +10 -0
- leadping/models/activation_timeline_event.py +79 -0
- leadping/models/admin_enablement_override.py +60 -0
- leadping/models/analytics_comparison.py +55 -0
- leadping/models/analytics_date_range.py +56 -0
- leadping/models/analytics_trend_point_ofdecimal.py +60 -0
- leadping/models/analytics_trend_point_ofint.py +60 -0
- leadping/models/automation_action.py +73 -0
- leadping/models/automation_action_run_record.py +115 -0
- leadping/models/automation_action_settings.py +46 -0
- leadping/models/automation_condition.py +73 -0
- leadping/models/automation_condition_group.py +65 -0
- leadping/models/automation_condition_settings.py +46 -0
- leadping/models/automation_preview_action_result.py +66 -0
- leadping/models/automation_preview_condition_result.py +58 -0
- leadping/models/automation_preview_request.py +61 -0
- leadping/models/automation_preview_response.py +86 -0
- leadping/models/automation_preview_response_sample_payload.py +46 -0
- leadping/models/automation_request.py +122 -0
- leadping/models/automation_request_admin_enablement_override.py +51 -0
- leadping/models/automation_request_snapshot.py +111 -0
- leadping/models/automation_response.py +164 -0
- leadping/models/automation_response_admin_enablement_override.py +51 -0
- leadping/models/automation_response_business.py +54 -0
- leadping/models/automation_response_user.py +54 -0
- leadping/models/automation_run_record.py +129 -0
- leadping/models/automation_run_record_context_snapshot.py +46 -0
- leadping/models/automation_table_row.py +152 -0
- leadping/models/automation_table_row_admin_enablement_override.py +54 -0
- leadping/models/automation_table_row_business.py +54 -0
- leadping/models/automation_table_row_user.py +54 -0
- leadping/models/automation_trigger.py +73 -0
- leadping/models/automation_trigger_settings.py +46 -0
- leadping/models/automation_validation_result.py +54 -0
- leadping/models/automation_workflow_action_response.py +123 -0
- leadping/models/automation_workflow_event_response.py +87 -0
- leadping/models/automation_workflow_run_response.py +185 -0
- leadping/models/automation_workflow_status_response.py +61 -0
- leadping/models/billable_unit.py +16 -0
- leadping/models/billing_plan.py +6 -0
- leadping/models/business_activation_state.py +224 -0
- leadping/models/business_activation_state_ten_dlc_draft.py +54 -0
- leadping/models/business_compliance_policy.py +78 -0
- leadping/models/business_invitation_request.py +61 -0
- leadping/models/business_invitation_response.py +129 -0
- leadping/models/business_invitation_status.py +10 -0
- leadping/models/business_invitation_table_row.py +125 -0
- leadping/models/business_request.py +171 -0
- leadping/models/business_request_activation.py +54 -0
- leadping/models/business_request_address.py +54 -0
- leadping/models/business_request_admin_enablement_override.py +51 -0
- leadping/models/business_request_billing_plan.py +6 -0
- leadping/models/business_request_compliance_policy.py +54 -0
- leadping/models/business_request_ein_document.py +54 -0
- leadping/models/business_request_setup_step.py +15 -0
- leadping/models/business_request_status.py +7 -0
- leadping/models/business_request_stripe_info.py +54 -0
- leadping/models/business_request_subscription_status.py +8 -0
- leadping/models/business_response.py +198 -0
- leadping/models/business_response_activation.py +54 -0
- leadping/models/business_response_address.py +54 -0
- leadping/models/business_response_admin_enablement_override.py +51 -0
- leadping/models/business_response_billing_plan.py +6 -0
- leadping/models/business_response_compliance_policy.py +54 -0
- leadping/models/business_response_ein_document.py +54 -0
- leadping/models/business_response_setup_step.py +15 -0
- leadping/models/business_response_site.py +54 -0
- leadping/models/business_response_status.py +7 -0
- leadping/models/business_response_stripe_info.py +54 -0
- leadping/models/business_response_subscription_status.py +8 -0
- leadping/models/business_response_user.py +54 -0
- leadping/models/business_stripe_info.py +109 -0
- leadping/models/business_stripe_info_cancellation.py +54 -0
- leadping/models/business_stripe_info_dunning.py +54 -0
- leadping/models/business_switch_option.py +100 -0
- leadping/models/business_switch_option_activation_status.py +24 -0
- leadping/models/business_switch_option_business_status.py +7 -0
- leadping/models/business_switch_request.py +50 -0
- leadping/models/business_user_request.py +65 -0
- leadping/models/business_user_response.py +121 -0
- leadping/models/business_user_role.py +7 -0
- leadping/models/business_user_table_row.py +86 -0
- leadping/models/call_event_table_row.py +149 -0
- leadping/models/call_event_table_row_metadata.py +46 -0
- leadping/models/call_event_table_row_status.py +24 -0
- leadping/models/change_billing_plan_request.py +61 -0
- leadping/models/compliance_update_request.py +61 -0
- leadping/models/compliance_update_request_compliance.py +54 -0
- leadping/models/contact_request.py +62 -0
- leadping/models/contact_response.py +50 -0
- leadping/models/conversation_response.py +132 -0
- leadping/models/conversation_response_current_disposition.py +54 -0
- leadping/models/conversation_response_phone_number.py +54 -0
- leadping/models/conversation_response_status.py +8 -0
- leadping/models/coordinate.py +54 -0
- leadping/models/create_note_request.py +50 -0
- leadping/models/current_disposition_summary.py +89 -0
- leadping/models/current_disposition_summary_category.py +10 -0
- leadping/models/current_disposition_summary_source.py +9 -0
- leadping/models/customer_activation_health.py +58 -0
- leadping/models/customer_activation_health_item.py +63 -0
- leadping/models/customer_activation_status.py +24 -0
- leadping/models/customer_analytics_response.py +115 -0
- leadping/models/customer_analytics_summary.py +110 -0
- leadping/models/customer_automation_health.py +81 -0
- leadping/models/customer_automation_health_last_failure.py +51 -0
- leadping/models/customer_communication_usage.py +90 -0
- leadping/models/customer_communication_usage_point.py +76 -0
- leadping/models/customer_failing_automation.py +60 -0
- leadping/models/customer_lead_source_breakdown.py +55 -0
- leadping/models/customer_lead_trend.py +65 -0
- leadping/models/customer_needs_attention_item.py +63 -0
- leadping/models/customer_response_metrics.py +74 -0
- leadping/models/disposition_export_response.py +69 -0
- leadping/models/disposition_export_row.py +161 -0
- leadping/models/disposition_export_row_category.py +10 -0
- leadping/models/disposition_export_row_change_source.py +9 -0
- leadping/models/disposition_request.py +133 -0
- leadping/models/disposition_request_category.py +10 -0
- leadping/models/disposition_request_change_source.py +9 -0
- leadping/models/disposition_response.py +169 -0
- leadping/models/disposition_response_category.py +10 -0
- leadping/models/disposition_response_change_source.py +9 -0
- leadping/models/eligible_outgoing_number_response.py +112 -0
- leadping/models/eligible_outgoing_number_response_health_status.py +11 -0
- leadping/models/event_detail_response.py +188 -0
- leadping/models/event_detail_response_status.py +9 -0
- leadping/models/event_detail_response_timeline_type.py +16 -0
- leadping/models/event_detail_response_user.py +54 -0
- leadping/models/event_table_row.py +247 -0
- leadping/models/event_table_row_selection_reason.py +12 -0
- leadping/models/event_table_row_status.py +25 -0
- leadping/models/event_table_row_traffic_type.py +9 -0
- leadping/models/event_timeline_type.py +16 -0
- leadping/models/exact_match_filter.py +50 -0
- leadping/models/feedback_admin_update_request.py +80 -0
- leadping/models/feedback_admin_update_request_status.py +11 -0
- leadping/models/feedback_admin_update_request_type.py +9 -0
- leadping/models/feedback_create_request.py +77 -0
- leadping/models/feedback_create_request_type.py +9 -0
- leadping/models/feedback_response.py +157 -0
- leadping/models/feedback_status.py +11 -0
- leadping/models/feedback_type.py +9 -0
- leadping/models/id_name_pair.py +54 -0
- leadping/models/id_name_value.py +58 -0
- leadping/models/internal_phone_number_status.py +11 -0
- leadping/models/lead_archive_request.py +54 -0
- leadping/models/lead_contact.py +87 -0
- leadping/models/lead_contact_coordinate.py +54 -0
- leadping/models/lead_contact_phone.py +54 -0
- leadping/models/lead_contact_street_address.py +54 -0
- leadping/models/lead_intake_request.py +178 -0
- leadping/models/lead_intake_request_source_metadata.py +46 -0
- leadping/models/lead_metadata.py +182 -0
- leadping/models/lead_metadata_source_metadata.py +46 -0
- leadping/models/lead_profile.py +88 -0
- leadping/models/lead_profile_employment_type.py +15 -0
- leadping/models/lead_profile_gender.py +9 -0
- leadping/models/lead_profile_marital_status.py +9 -0
- leadping/models/lead_request.py +94 -0
- leadping/models/lead_request_admin_enablement_override.py +51 -0
- leadping/models/lead_response.py +129 -0
- leadping/models/lead_response_admin_enablement_override.py +51 -0
- leadping/models/lead_response_current_disposition.py +54 -0
- leadping/models/lead_table_row.py +140 -0
- leadping/models/lead_table_row_admin_enablement_override.py +54 -0
- leadping/models/lead_table_row_current_disposition.py +54 -0
- leadping/models/lead_tags_request.py +58 -0
- leadping/models/mobile_device_preferences.py +63 -0
- leadping/models/notification_priority.py +8 -0
- leadping/models/notification_table_row.py +113 -0
- leadping/models/notification_type.py +16 -0
- leadping/models/order_by_option.py +61 -0
- leadping/models/order_by_option_direction.py +6 -0
- leadping/models/outbound_capacity_overview.py +89 -0
- leadping/models/outbound_delivery_channel.py +9 -0
- leadping/models/outbound_delivery_source.py +12 -0
- leadping/models/outbound_delivery_status.py +13 -0
- leadping/models/outbound_phone_number_capacity.py +70 -0
- leadping/models/outbound_queue_item.py +92 -0
- leadping/models/outbound_queue_item_reason_code.py +27 -0
- leadping/models/outgoing_number_manual_override_request.py +61 -0
- leadping/models/outgoing_number_selection_reason.py +12 -0
- leadping/models/outgoing_number_selection_request.py +81 -0
- leadping/models/outgoing_number_selection_request_channel.py +6 -0
- leadping/models/outgoing_number_selection_response.py +115 -0
- leadping/models/outgoing_number_selection_response_health_status.py +11 -0
- leadping/models/outgoing_number_selection_response_selection_reason.py +12 -0
- leadping/models/paged_result_of_automation_table_row.py +65 -0
- leadping/models/paged_result_of_call_event_table_row.py +65 -0
- leadping/models/paged_result_of_conversation_response.py +65 -0
- leadping/models/paged_result_of_event_table_row.py +65 -0
- leadping/models/paged_result_of_feedback_response.py +65 -0
- leadping/models/paged_result_of_lead_table_row.py +65 -0
- leadping/models/paged_result_of_notification_table_row.py +65 -0
- leadping/models/paged_result_of_phone_number_table_row.py +65 -0
- leadping/models/paged_result_of_sms_event_table_row.py +65 -0
- leadping/models/paged_result_of_source_table_row.py +65 -0
- leadping/models/paged_result_of_transaction_table_row.py +65 -0
- leadping/models/paged_result_of_usage_ledger_table_row.py +65 -0
- leadping/models/phone.py +65 -0
- leadping/models/phone_lookup.py +92 -0
- leadping/models/phone_lookup_carrier_type.py +16 -0
- leadping/models/phone_lookup_line_type.py +10 -0
- leadping/models/phone_lookup_location.py +54 -0
- leadping/models/phone_number_availability_request.py +50 -0
- leadping/models/phone_number_availability_response.py +69 -0
- leadping/models/phone_number_availability_response_location.py +54 -0
- leadping/models/phone_number_billing_attribution.py +70 -0
- leadping/models/phone_number_capabilities.py +62 -0
- leadping/models/phone_number_event_record.py +86 -0
- leadping/models/phone_number_event_record_state.py +16 -0
- leadping/models/phone_number_inventory_state.py +16 -0
- leadping/models/phone_number_location.py +73 -0
- leadping/models/phone_number_location_coordinate.py +54 -0
- leadping/models/phone_number_messaging_event_response.py +87 -0
- leadping/models/phone_number_opt_out_metrics_response.py +67 -0
- leadping/models/phone_number_outbound_health_status.py +12 -0
- leadping/models/phone_number_provider_lifecycle_state.py +13 -0
- leadping/models/phone_number_request.py +77 -0
- leadping/models/phone_number_request_admin_enablement_override.py +51 -0
- leadping/models/phone_number_response.py +316 -0
- leadping/models/phone_number_response_admin_enablement_override.py +51 -0
- leadping/models/phone_number_response_business.py +54 -0
- leadping/models/phone_number_response_call_warmup_stage.py +9 -0
- leadping/models/phone_number_response_call_warmup_state.py +11 -0
- leadping/models/phone_number_response_health_status.py +11 -0
- leadping/models/phone_number_response_location.py +54 -0
- leadping/models/phone_number_response_user.py +54 -0
- leadping/models/phone_number_response_warmup_state.py +11 -0
- leadping/models/phone_number_routing_metadata.py +82 -0
- leadping/models/phone_number_search_request.py +61 -0
- leadping/models/phone_number_search_request_location.py +54 -0
- leadping/models/phone_number_search_response.py +57 -0
- leadping/models/phone_number_search_result.py +61 -0
- leadping/models/phone_number_search_result_location.py +54 -0
- leadping/models/phone_number_status_response.py +105 -0
- leadping/models/phone_number_status_response_call_warmup.py +54 -0
- leadping/models/phone_number_status_response_sms_warmup.py +54 -0
- leadping/models/phone_number_table_row.py +184 -0
- leadping/models/phone_number_table_row_admin_enablement_override.py +54 -0
- leadping/models/phone_number_table_row_health_status.py +11 -0
- leadping/models/phone_number_table_row_warmup_state.py +11 -0
- leadping/models/phone_number_ten_dlc_association.py +79 -0
- leadping/models/phone_number_traffic_metrics_response.py +71 -0
- leadping/models/phone_number_warmup_call_response.py +98 -0
- leadping/models/phone_number_warmup_call_status.py +15 -0
- leadping/models/phone_number_warmup_health_status.py +11 -0
- leadping/models/phone_number_warmup_stage.py +9 -0
- leadping/models/phone_number_warmup_status_response.py +156 -0
- leadping/models/problem_details.py +66 -0
- leadping/models/range_filter.py +50 -0
- leadping/models/request_data_options.py +91 -0
- leadping/models/send_sms_request.py +136 -0
- leadping/models/send_sms_request_outbound_priority.py +13 -0
- leadping/models/send_sms_request_outbound_source.py +12 -0
- leadping/models/send_sms_request_selection_reason.py +12 -0
- leadping/models/sms_event_table_row.py +232 -0
- leadping/models/sms_event_table_row_outbound_source.py +12 -0
- leadping/models/sms_event_table_row_status.py +18 -0
- leadping/models/sms_event_table_row_traffic_type.py +9 -0
- leadping/models/sms_response.py +212 -0
- leadping/models/sms_response_selection_reason.py +12 -0
- leadping/models/sms_response_status.py +18 -0
- leadping/models/sms_response_traffic_type.py +9 -0
- leadping/models/sms_warmup_action_response.py +97 -0
- leadping/models/sms_warmup_action_status.py +14 -0
- leadping/models/sms_warmup_action_type.py +8 -0
- leadping/models/sms_warmup_health_state.py +11 -0
- leadping/models/sms_warmup_status_response.py +176 -0
- leadping/models/sms_warmup_ui_state.py +65 -0
- leadping/models/source_metrics_response.py +70 -0
- leadping/models/source_request.py +109 -0
- leadping/models/source_request_admin_enablement_override.py +51 -0
- leadping/models/source_response.py +157 -0
- leadping/models/source_response_admin_enablement_override.py +51 -0
- leadping/models/source_response_business.py +54 -0
- leadping/models/source_response_created_by_user.py +54 -0
- leadping/models/source_response_modified_by_user.py +54 -0
- leadping/models/source_response_user.py +54 -0
- leadping/models/source_table_row.py +165 -0
- leadping/models/source_table_row_admin_enablement_override.py +54 -0
- leadping/models/source_table_row_business.py +54 -0
- leadping/models/source_table_row_created_by_user.py +54 -0
- leadping/models/source_table_row_modified_by_user.py +54 -0
- leadping/models/source_table_row_user.py +54 -0
- leadping/models/street_address.py +82 -0
- leadping/models/stripe_payment_method_response.py +75 -0
- leadping/models/tag_request.py +62 -0
- leadping/models/tag_response.py +91 -0
- leadping/models/tag_summary.py +62 -0
- leadping/models/ten_dlc_application_draft.py +131 -0
- leadping/models/ten_dlc_application_status.py +15 -0
- leadping/models/transaction_response.py +148 -0
- leadping/models/transaction_response_metadata.py +46 -0
- leadping/models/transaction_status.py +7 -0
- leadping/models/transaction_table_row.py +117 -0
- leadping/models/transaction_type.py +7 -0
- leadping/models/trusted_form_certificate.py +63 -0
- leadping/models/usage_channel.py +15 -0
- leadping/models/usage_counter_line.py +70 -0
- leadping/models/usage_ledger_table_row.py +148 -0
- leadping/models/usage_record_status.py +13 -0
- leadping/models/usage_summary_line.py +91 -0
- leadping/models/usage_summary_response.py +109 -0
- leadping/models/user_compliance.py +85 -0
- leadping/models/user_data_export_file.py +59 -0
- leadping/models/user_data_export_response.py +110 -0
- leadping/models/user_data_export_statuses.py +9 -0
- leadping/models/user_dunning_info.py +91 -0
- leadping/models/user_identity.py +58 -0
- leadping/models/user_notification_preferences.py +98 -0
- leadping/models/user_request.py +123 -0
- leadping/models/user_request_billing_plan.py +6 -0
- leadping/models/user_request_business.py +54 -0
- leadping/models/user_request_compliance.py +54 -0
- leadping/models/user_request_current_business.py +54 -0
- leadping/models/user_request_notification_preferences.py +54 -0
- leadping/models/user_request_subscription_status.py +8 -0
- leadping/models/user_response.py +166 -0
- leadping/models/user_response_billing_plan.py +6 -0
- leadping/models/user_response_business.py +54 -0
- leadping/models/user_response_compliance.py +54 -0
- leadping/models/user_response_current_business.py +54 -0
- leadping/models/user_response_notification_preferences.py +54 -0
- leadping/models/user_response_stripe_info.py +54 -0
- leadping/models/user_response_subscription_status.py +8 -0
- leadping/models/user_stripe_info.py +109 -0
- leadping/models/user_stripe_info_cancellation.py +54 -0
- leadping/models/user_stripe_info_dunning.py +54 -0
- leadping/models/user_subscription_cancellation_info.py +83 -0
- leadping/models/wallet_response.py +121 -0
- leadping/models/wallet_response_credit_status.py +10 -0
- leadping/models/wallet_response_source_type.py +11 -0
- leadping/models/website_lifecycle_status.py +16 -0
- leadping/notifications/announcements/announcements_request_builder.py +90 -0
- leadping/notifications/item/mark_read/mark_read_request_builder.py +80 -0
- leadping/notifications/item/notifications_item_request_builder.py +33 -0
- leadping/notifications/mark_all_read/mark_all_read_request_builder.py +79 -0
- leadping/notifications/me/me_request_builder.py +90 -0
- leadping/notifications/notifications_request_builder.py +78 -0
- leadping/notifications/unread_count/unread_count_request_builder.py +79 -0
- leadping/outbound/outbound_request_builder.py +33 -0
- leadping/outbound/overview/overview_request_builder.py +75 -0
- leadping/payment_methods/item/payment_methods_item_request_builder.py +119 -0
- leadping/payment_methods/payment_methods_request_builder.py +38 -0
- leadping/phone_numbers/all/all_request_builder.py +33 -0
- leadping/phone_numbers/all/my/my_request_builder.py +89 -0
- leadping/phone_numbers/is_available_for_purchase/is_available_for_purchase_request_builder.py +90 -0
- leadping/phone_numbers/item/phone_number_item_request_builder.py +187 -0
- leadping/phone_numbers/item/status/status_request_builder.py +114 -0
- leadping/phone_numbers/item/warmup/warmup_request_builder.py +113 -0
- leadping/phone_numbers/outgoing/conversation/conversation_request_builder.py +38 -0
- leadping/phone_numbers/outgoing/conversation/item/override/override_request_builder.py +127 -0
- leadping/phone_numbers/outgoing/conversation/item/with_conversation_item_request_builder.py +99 -0
- leadping/phone_numbers/outgoing/manual_override/manual_override_request_builder.py +89 -0
- leadping/phone_numbers/outgoing/new/new_request_builder.py +89 -0
- leadping/phone_numbers/outgoing/outgoing_request_builder.py +53 -0
- leadping/phone_numbers/phone_numbers_request_builder.py +145 -0
- leadping/phone_numbers/search/search_request_builder.py +90 -0
- leadping/reports/exports/exports_request_builder.py +48 -0
- leadping/reports/exports/item/download/download_request_builder.py +88 -0
- leadping/reports/exports/item/with_export_item_request_builder.py +85 -0
- leadping/reports/exports/my/my_request_builder.py +75 -0
- leadping/reports/reports_request_builder.py +33 -0
- leadping/sms/item/cancel/cancel_request_builder.py +82 -0
- leadping/sms/item/with_sms_event_item_request_builder.py +33 -0
- leadping/sms/send/send_request_builder.py +90 -0
- leadping/sms/sms_request_builder.py +48 -0
- leadping/sources/all/all_request_builder.py +33 -0
- leadping/sources/all/my/my_request_builder.py +83 -0
- leadping/sources/item/metrics/metrics_request_builder.py +113 -0
- leadping/sources/item/sources_item_request_builder.py +173 -0
- leadping/sources/sources_request_builder.py +114 -0
- leadping/tags/item/tags_item_request_builder.py +126 -0
- leadping/tags/tags_request_builder.py +157 -0
- leadping/transactions/all/all_request_builder.py +33 -0
- leadping/transactions/all/my/my_request_builder.py +83 -0
- leadping/transactions/item/transactions_item_request_builder.py +82 -0
- leadping/transactions/transactions_request_builder.py +48 -0
- leadping/usage/all/all_request_builder.py +33 -0
- leadping/usage/all/my/my_request_builder.py +83 -0
- leadping/usage/summary/my/my_request_builder.py +102 -0
- leadping/usage/summary/summary_request_builder.py +33 -0
- leadping/usage/usage_request_builder.py +43 -0
- leadping/users/change_billing_plan/change_billing_plan_request_builder.py +90 -0
- leadping/users/compliance/compliance_request_builder.py +89 -0
- leadping/users/me/last_login/last_login_request_builder.py +81 -0
- leadping/users/me/me_request_builder.py +147 -0
- leadping/users/me/paymentmethod/paymentmethod_request_builder.py +81 -0
- leadping/users/users_request_builder.py +53 -0
- leadping/wallets/item/wallets_item_request_builder.py +82 -0
- leadping/wallets/me/me_request_builder.py +82 -0
- leadping/wallets/wallets_request_builder.py +48 -0
- leadping-1.0.0.dist-info/METADATA +69 -0
- leadping-1.0.0.dist-info/RECORD +479 -0
- leadping-1.0.0.dist-info/WHEEL +5 -0
- leadping-1.0.0.dist-info/licenses/LICENSE +5 -0
- leadping-1.0.0.dist-info/top_level.txt +1 -0
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
from enum import Enum
|
|
2
|
+
|
|
3
|
+
class SendSmsRequest_outboundSource(str, Enum):
|
|
4
|
+
Manual = "manual",
|
|
5
|
+
Automation = "automation",
|
|
6
|
+
Campaign = "campaign",
|
|
7
|
+
Import_ = "import",
|
|
8
|
+
Api = "api",
|
|
9
|
+
System_notification = "system_notification",
|
|
10
|
+
Warmup = "warmup",
|
|
11
|
+
Retry = "retry",
|
|
12
|
+
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
from enum import Enum
|
|
2
|
+
|
|
3
|
+
class SendSmsRequest_selectionReason(str, Enum):
|
|
4
|
+
StickyConversation = "StickyConversation",
|
|
5
|
+
LeadAssigned = "LeadAssigned",
|
|
6
|
+
CampaignOrSource = "CampaignOrSource",
|
|
7
|
+
Preferred = "Preferred",
|
|
8
|
+
LocalArea = "LocalArea",
|
|
9
|
+
HealthyPool = "HealthyPool",
|
|
10
|
+
FallbackDefault = "FallbackDefault",
|
|
11
|
+
ManualOverride = "ManualOverride",
|
|
12
|
+
|
|
@@ -0,0 +1,232 @@
|
|
|
1
|
+
from __future__ import annotations
|
|
2
|
+
import datetime
|
|
3
|
+
from collections.abc import Callable
|
|
4
|
+
from dataclasses import dataclass, field
|
|
5
|
+
from kiota_abstractions.serialization import AdditionalDataHolder, Parsable, ParseNode, SerializationWriter
|
|
6
|
+
from typing import Any, Optional, TYPE_CHECKING, Union
|
|
7
|
+
|
|
8
|
+
if TYPE_CHECKING:
|
|
9
|
+
from .sms_event_table_row_outbound_source import SmsEventTableRow_outboundSource
|
|
10
|
+
from .sms_event_table_row_status import SmsEventTableRow_status
|
|
11
|
+
from .sms_event_table_row_traffic_type import SmsEventTableRow_trafficType
|
|
12
|
+
|
|
13
|
+
@dataclass
|
|
14
|
+
class SmsEventTableRow(AdditionalDataHolder, Parsable):
|
|
15
|
+
"""
|
|
16
|
+
API DTO containing SMS event data used by Leadping API contracts.
|
|
17
|
+
"""
|
|
18
|
+
# Stores additional data not described in the OpenAPI description found when deserializing. Can be used for serialization as well.
|
|
19
|
+
additional_data: dict[str, Any] = field(default_factory=dict)
|
|
20
|
+
|
|
21
|
+
# The actor display name associated with this SMS event.
|
|
22
|
+
actor_display_name: Optional[str] = None
|
|
23
|
+
# The actor user ID associated with this SMS event.
|
|
24
|
+
actor_user_id: Optional[str] = None
|
|
25
|
+
# The current billing status for this SMS event.
|
|
26
|
+
billing_status: Optional[str] = None
|
|
27
|
+
# The date and time for the blocked at value on this SMS event.
|
|
28
|
+
blocked_at: Optional[datetime.datetime] = None
|
|
29
|
+
# The business value for this SMS event.
|
|
30
|
+
business: Optional[str] = None
|
|
31
|
+
# The display name for the business associated with this SMS event.
|
|
32
|
+
business_name: Optional[str] = None
|
|
33
|
+
# The human-readable cancel reason explaining this SMS event.
|
|
34
|
+
cancel_reason: Optional[str] = None
|
|
35
|
+
# The date and time for the canceled at value on this SMS event.
|
|
36
|
+
canceled_at: Optional[datetime.datetime] = None
|
|
37
|
+
# The compliance action value for this SMS event.
|
|
38
|
+
compliance_action: Optional[str] = None
|
|
39
|
+
# The conversation ID associated with this SMS event.
|
|
40
|
+
conversation_id: Optional[str] = None
|
|
41
|
+
# The date and time for the created at value on this SMS event.
|
|
42
|
+
created_at: Optional[datetime.datetime] = None
|
|
43
|
+
# The date and time for the delivered at value on this SMS event.
|
|
44
|
+
delivered_at: Optional[datetime.datetime] = None
|
|
45
|
+
# The direction value for this SMS event.
|
|
46
|
+
direction: Optional[str] = None
|
|
47
|
+
# The error code value for this SMS event.
|
|
48
|
+
error_code: Optional[str] = None
|
|
49
|
+
# The error message value for this SMS event.
|
|
50
|
+
error_message: Optional[str] = None
|
|
51
|
+
# The date and time for the failed at value on this SMS event.
|
|
52
|
+
failed_at: Optional[datetime.datetime] = None
|
|
53
|
+
# The phone number associated with this SMS event.
|
|
54
|
+
from_phone_number: Optional[str] = None
|
|
55
|
+
# The from phone number ID associated with this SMS event.
|
|
56
|
+
from_phone_number_id: Optional[str] = None
|
|
57
|
+
# The unique ID for this SMS event.
|
|
58
|
+
id: Optional[str] = None
|
|
59
|
+
# Whether this SMS event was generated by automation.
|
|
60
|
+
is_automated: Optional[bool] = None
|
|
61
|
+
# Whether this SMS event is warmup.
|
|
62
|
+
is_warmup: Optional[bool] = None
|
|
63
|
+
# The lead ID associated with this SMS event.
|
|
64
|
+
lead_id: Optional[str] = None
|
|
65
|
+
# The display name for the lead associated with this SMS event.
|
|
66
|
+
lead_name: Optional[str] = None
|
|
67
|
+
# The outbound phone number ID associated with this SMS event.
|
|
68
|
+
outbound_phone_number_id: Optional[str] = None
|
|
69
|
+
# Defines the source that requested outbound delivery.
|
|
70
|
+
outbound_source: Optional[SmsEventTableRow_outboundSource] = None
|
|
71
|
+
# The provider message ID associated with this SMS event.
|
|
72
|
+
provider_message_id: Optional[str] = None
|
|
73
|
+
# The date and time for the queued at value on this SMS event.
|
|
74
|
+
queued_at: Optional[datetime.datetime] = None
|
|
75
|
+
# The date and time for the received at value on this SMS event.
|
|
76
|
+
received_at: Optional[datetime.datetime] = None
|
|
77
|
+
# The date and time for the scheduled for value on this SMS event.
|
|
78
|
+
scheduled_for: Optional[datetime.datetime] = None
|
|
79
|
+
# The human-readable scheduled reason explaining this SMS event.
|
|
80
|
+
scheduled_reason: Optional[str] = None
|
|
81
|
+
# The resolved display name for the party that sent the message.
|
|
82
|
+
sender_name: Optional[str] = None
|
|
83
|
+
# The date and time for the sending started at value on this SMS event.
|
|
84
|
+
sending_started_at: Optional[datetime.datetime] = None
|
|
85
|
+
# The date and time for the sent at value on this SMS event.
|
|
86
|
+
sent_at: Optional[datetime.datetime] = None
|
|
87
|
+
# Defines the supported SMS Message Status values.
|
|
88
|
+
status: Optional[SmsEventTableRow_status] = None
|
|
89
|
+
# The human-readable status reason explaining this SMS event.
|
|
90
|
+
status_reason: Optional[str] = None
|
|
91
|
+
# The Telnyx ID associated with this SMS event.
|
|
92
|
+
telnyx_id: Optional[str] = None
|
|
93
|
+
# The 10DLC campaign ID associated with this SMS event.
|
|
94
|
+
ten_dlc_campaign_id: Optional[str] = None
|
|
95
|
+
# The text value for this SMS event.
|
|
96
|
+
text: Optional[str] = None
|
|
97
|
+
# The phone number associated with this SMS event.
|
|
98
|
+
to_phone_number: Optional[str] = None
|
|
99
|
+
# Defines the supported SMS Traffic Type values.
|
|
100
|
+
traffic_type: Optional[SmsEventTableRow_trafficType] = None
|
|
101
|
+
# The date and time for the undeliverable at value on this SMS event.
|
|
102
|
+
undeliverable_at: Optional[datetime.datetime] = None
|
|
103
|
+
# The user value for this SMS event.
|
|
104
|
+
user: Optional[str] = None
|
|
105
|
+
# The display name for the user associated with this SMS event.
|
|
106
|
+
user_name: Optional[str] = None
|
|
107
|
+
|
|
108
|
+
@staticmethod
|
|
109
|
+
def create_from_discriminator_value(parse_node: ParseNode) -> SmsEventTableRow:
|
|
110
|
+
"""
|
|
111
|
+
Creates a new instance of the appropriate class based on discriminator value
|
|
112
|
+
param parse_node: The parse node to use to read the discriminator value and create the object
|
|
113
|
+
Returns: SmsEventTableRow
|
|
114
|
+
"""
|
|
115
|
+
if parse_node is None:
|
|
116
|
+
raise TypeError("parse_node cannot be null.")
|
|
117
|
+
return SmsEventTableRow()
|
|
118
|
+
|
|
119
|
+
def get_field_deserializers(self,) -> dict[str, Callable[[ParseNode], None]]:
|
|
120
|
+
"""
|
|
121
|
+
The deserialization information for the current model
|
|
122
|
+
Returns: dict[str, Callable[[ParseNode], None]]
|
|
123
|
+
"""
|
|
124
|
+
from .sms_event_table_row_outbound_source import SmsEventTableRow_outboundSource
|
|
125
|
+
from .sms_event_table_row_status import SmsEventTableRow_status
|
|
126
|
+
from .sms_event_table_row_traffic_type import SmsEventTableRow_trafficType
|
|
127
|
+
|
|
128
|
+
from .sms_event_table_row_outbound_source import SmsEventTableRow_outboundSource
|
|
129
|
+
from .sms_event_table_row_status import SmsEventTableRow_status
|
|
130
|
+
from .sms_event_table_row_traffic_type import SmsEventTableRow_trafficType
|
|
131
|
+
|
|
132
|
+
fields: dict[str, Callable[[Any], None]] = {
|
|
133
|
+
"actorDisplayName": lambda n : setattr(self, 'actor_display_name', n.get_str_value()),
|
|
134
|
+
"actorUserId": lambda n : setattr(self, 'actor_user_id', n.get_str_value()),
|
|
135
|
+
"billingStatus": lambda n : setattr(self, 'billing_status', n.get_str_value()),
|
|
136
|
+
"blockedAt": lambda n : setattr(self, 'blocked_at', n.get_datetime_value()),
|
|
137
|
+
"business": lambda n : setattr(self, 'business', n.get_str_value()),
|
|
138
|
+
"businessName": lambda n : setattr(self, 'business_name', n.get_str_value()),
|
|
139
|
+
"cancelReason": lambda n : setattr(self, 'cancel_reason', n.get_str_value()),
|
|
140
|
+
"canceledAt": lambda n : setattr(self, 'canceled_at', n.get_datetime_value()),
|
|
141
|
+
"complianceAction": lambda n : setattr(self, 'compliance_action', n.get_str_value()),
|
|
142
|
+
"conversationId": lambda n : setattr(self, 'conversation_id', n.get_str_value()),
|
|
143
|
+
"createdAt": lambda n : setattr(self, 'created_at', n.get_datetime_value()),
|
|
144
|
+
"deliveredAt": lambda n : setattr(self, 'delivered_at', n.get_datetime_value()),
|
|
145
|
+
"direction": lambda n : setattr(self, 'direction', n.get_str_value()),
|
|
146
|
+
"errorCode": lambda n : setattr(self, 'error_code', n.get_str_value()),
|
|
147
|
+
"errorMessage": lambda n : setattr(self, 'error_message', n.get_str_value()),
|
|
148
|
+
"failedAt": lambda n : setattr(self, 'failed_at', n.get_datetime_value()),
|
|
149
|
+
"fromPhoneNumber": lambda n : setattr(self, 'from_phone_number', n.get_str_value()),
|
|
150
|
+
"fromPhoneNumberId": lambda n : setattr(self, 'from_phone_number_id', n.get_str_value()),
|
|
151
|
+
"id": lambda n : setattr(self, 'id', n.get_str_value()),
|
|
152
|
+
"isAutomated": lambda n : setattr(self, 'is_automated', n.get_bool_value()),
|
|
153
|
+
"isWarmup": lambda n : setattr(self, 'is_warmup', n.get_bool_value()),
|
|
154
|
+
"leadId": lambda n : setattr(self, 'lead_id', n.get_str_value()),
|
|
155
|
+
"leadName": lambda n : setattr(self, 'lead_name', n.get_str_value()),
|
|
156
|
+
"outboundPhoneNumberId": lambda n : setattr(self, 'outbound_phone_number_id', n.get_str_value()),
|
|
157
|
+
"outboundSource": lambda n : setattr(self, 'outbound_source', n.get_enum_value(SmsEventTableRow_outboundSource)),
|
|
158
|
+
"providerMessageId": lambda n : setattr(self, 'provider_message_id', n.get_str_value()),
|
|
159
|
+
"queuedAt": lambda n : setattr(self, 'queued_at', n.get_datetime_value()),
|
|
160
|
+
"receivedAt": lambda n : setattr(self, 'received_at', n.get_datetime_value()),
|
|
161
|
+
"scheduledFor": lambda n : setattr(self, 'scheduled_for', n.get_datetime_value()),
|
|
162
|
+
"scheduledReason": lambda n : setattr(self, 'scheduled_reason', n.get_str_value()),
|
|
163
|
+
"senderName": lambda n : setattr(self, 'sender_name', n.get_str_value()),
|
|
164
|
+
"sendingStartedAt": lambda n : setattr(self, 'sending_started_at', n.get_datetime_value()),
|
|
165
|
+
"sentAt": lambda n : setattr(self, 'sent_at', n.get_datetime_value()),
|
|
166
|
+
"status": lambda n : setattr(self, 'status', n.get_enum_value(SmsEventTableRow_status)),
|
|
167
|
+
"statusReason": lambda n : setattr(self, 'status_reason', n.get_str_value()),
|
|
168
|
+
"telnyxId": lambda n : setattr(self, 'telnyx_id', n.get_str_value()),
|
|
169
|
+
"tenDlcCampaignId": lambda n : setattr(self, 'ten_dlc_campaign_id', n.get_str_value()),
|
|
170
|
+
"text": lambda n : setattr(self, 'text', n.get_str_value()),
|
|
171
|
+
"toPhoneNumber": lambda n : setattr(self, 'to_phone_number', n.get_str_value()),
|
|
172
|
+
"trafficType": lambda n : setattr(self, 'traffic_type', n.get_enum_value(SmsEventTableRow_trafficType)),
|
|
173
|
+
"undeliverableAt": lambda n : setattr(self, 'undeliverable_at', n.get_datetime_value()),
|
|
174
|
+
"user": lambda n : setattr(self, 'user', n.get_str_value()),
|
|
175
|
+
"userName": lambda n : setattr(self, 'user_name', n.get_str_value()),
|
|
176
|
+
}
|
|
177
|
+
return fields
|
|
178
|
+
|
|
179
|
+
def serialize(self,writer: SerializationWriter) -> None:
|
|
180
|
+
"""
|
|
181
|
+
Serializes information the current object
|
|
182
|
+
param writer: Serialization writer to use to serialize this model
|
|
183
|
+
Returns: None
|
|
184
|
+
"""
|
|
185
|
+
if writer is None:
|
|
186
|
+
raise TypeError("writer cannot be null.")
|
|
187
|
+
writer.write_str_value("actorDisplayName", self.actor_display_name)
|
|
188
|
+
writer.write_str_value("actorUserId", self.actor_user_id)
|
|
189
|
+
writer.write_str_value("billingStatus", self.billing_status)
|
|
190
|
+
writer.write_datetime_value("blockedAt", self.blocked_at)
|
|
191
|
+
writer.write_str_value("business", self.business)
|
|
192
|
+
writer.write_str_value("businessName", self.business_name)
|
|
193
|
+
writer.write_str_value("cancelReason", self.cancel_reason)
|
|
194
|
+
writer.write_datetime_value("canceledAt", self.canceled_at)
|
|
195
|
+
writer.write_str_value("complianceAction", self.compliance_action)
|
|
196
|
+
writer.write_str_value("conversationId", self.conversation_id)
|
|
197
|
+
writer.write_datetime_value("createdAt", self.created_at)
|
|
198
|
+
writer.write_datetime_value("deliveredAt", self.delivered_at)
|
|
199
|
+
writer.write_str_value("direction", self.direction)
|
|
200
|
+
writer.write_str_value("errorCode", self.error_code)
|
|
201
|
+
writer.write_str_value("errorMessage", self.error_message)
|
|
202
|
+
writer.write_datetime_value("failedAt", self.failed_at)
|
|
203
|
+
writer.write_str_value("fromPhoneNumber", self.from_phone_number)
|
|
204
|
+
writer.write_str_value("fromPhoneNumberId", self.from_phone_number_id)
|
|
205
|
+
writer.write_str_value("id", self.id)
|
|
206
|
+
writer.write_bool_value("isAutomated", self.is_automated)
|
|
207
|
+
writer.write_bool_value("isWarmup", self.is_warmup)
|
|
208
|
+
writer.write_str_value("leadId", self.lead_id)
|
|
209
|
+
writer.write_str_value("leadName", self.lead_name)
|
|
210
|
+
writer.write_str_value("outboundPhoneNumberId", self.outbound_phone_number_id)
|
|
211
|
+
writer.write_enum_value("outboundSource", self.outbound_source)
|
|
212
|
+
writer.write_str_value("providerMessageId", self.provider_message_id)
|
|
213
|
+
writer.write_datetime_value("queuedAt", self.queued_at)
|
|
214
|
+
writer.write_datetime_value("receivedAt", self.received_at)
|
|
215
|
+
writer.write_datetime_value("scheduledFor", self.scheduled_for)
|
|
216
|
+
writer.write_str_value("scheduledReason", self.scheduled_reason)
|
|
217
|
+
writer.write_str_value("senderName", self.sender_name)
|
|
218
|
+
writer.write_datetime_value("sendingStartedAt", self.sending_started_at)
|
|
219
|
+
writer.write_datetime_value("sentAt", self.sent_at)
|
|
220
|
+
writer.write_enum_value("status", self.status)
|
|
221
|
+
writer.write_str_value("statusReason", self.status_reason)
|
|
222
|
+
writer.write_str_value("telnyxId", self.telnyx_id)
|
|
223
|
+
writer.write_str_value("tenDlcCampaignId", self.ten_dlc_campaign_id)
|
|
224
|
+
writer.write_str_value("text", self.text)
|
|
225
|
+
writer.write_str_value("toPhoneNumber", self.to_phone_number)
|
|
226
|
+
writer.write_enum_value("trafficType", self.traffic_type)
|
|
227
|
+
writer.write_datetime_value("undeliverableAt", self.undeliverable_at)
|
|
228
|
+
writer.write_str_value("user", self.user)
|
|
229
|
+
writer.write_str_value("userName", self.user_name)
|
|
230
|
+
writer.write_additional_data_value(self.additional_data)
|
|
231
|
+
|
|
232
|
+
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
from enum import Enum
|
|
2
|
+
|
|
3
|
+
class SmsEventTableRow_outboundSource(str, Enum):
|
|
4
|
+
Manual = "manual",
|
|
5
|
+
Automation = "automation",
|
|
6
|
+
Campaign = "campaign",
|
|
7
|
+
Import_ = "import",
|
|
8
|
+
Api = "api",
|
|
9
|
+
System_notification = "system_notification",
|
|
10
|
+
Warmup = "warmup",
|
|
11
|
+
Retry = "retry",
|
|
12
|
+
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
from enum import Enum
|
|
2
|
+
|
|
3
|
+
class SmsEventTableRow_status(str, Enum):
|
|
4
|
+
Draft = "draft",
|
|
5
|
+
Scheduled = "scheduled",
|
|
6
|
+
Queued = "queued",
|
|
7
|
+
Sending = "sending",
|
|
8
|
+
Sent = "sent",
|
|
9
|
+
Received = "received",
|
|
10
|
+
Delivered = "delivered",
|
|
11
|
+
Failed = "failed",
|
|
12
|
+
Undeliverable = "undeliverable",
|
|
13
|
+
Opted_out = "opted_out",
|
|
14
|
+
Blocked_compliance = "blocked_compliance",
|
|
15
|
+
Blocked_billing = "blocked_billing",
|
|
16
|
+
Blocked_missing_campaign = "blocked_missing_campaign",
|
|
17
|
+
Canceled = "canceled",
|
|
18
|
+
|
|
@@ -0,0 +1,212 @@
|
|
|
1
|
+
from __future__ import annotations
|
|
2
|
+
import datetime
|
|
3
|
+
from collections.abc import Callable
|
|
4
|
+
from dataclasses import dataclass, field
|
|
5
|
+
from kiota_abstractions.serialization import AdditionalDataHolder, Parsable, ParseNode, SerializationWriter
|
|
6
|
+
from typing import Any, Optional, TYPE_CHECKING, Union
|
|
7
|
+
|
|
8
|
+
if TYPE_CHECKING:
|
|
9
|
+
from .sms_response_selection_reason import SmsResponse_selectionReason
|
|
10
|
+
from .sms_response_status import SmsResponse_status
|
|
11
|
+
from .sms_response_traffic_type import SmsResponse_trafficType
|
|
12
|
+
|
|
13
|
+
@dataclass
|
|
14
|
+
class SmsResponse(AdditionalDataHolder, Parsable):
|
|
15
|
+
"""
|
|
16
|
+
API response containing SMS data returned to callers.
|
|
17
|
+
"""
|
|
18
|
+
# Stores additional data not described in the OpenAPI description found when deserializing. Can be used for serialization as well.
|
|
19
|
+
additional_data: dict[str, Any] = field(default_factory=dict)
|
|
20
|
+
|
|
21
|
+
# The current billing status for this SMS.
|
|
22
|
+
billing_status: Optional[str] = None
|
|
23
|
+
# The date and time for the blocked at value on this SMS.
|
|
24
|
+
blocked_at: Optional[datetime.datetime] = None
|
|
25
|
+
# The campaign ID associated with this SMS.
|
|
26
|
+
campaign_id: Optional[str] = None
|
|
27
|
+
# The human-readable cancel reason explaining this SMS.
|
|
28
|
+
cancel_reason: Optional[str] = None
|
|
29
|
+
# The date and time for the canceled at value on this SMS.
|
|
30
|
+
canceled_at: Optional[datetime.datetime] = None
|
|
31
|
+
# The compliance action value for this SMS.
|
|
32
|
+
compliance_action: Optional[str] = None
|
|
33
|
+
# The conversation ID associated with this SMS.
|
|
34
|
+
conversation_id: Optional[str] = None
|
|
35
|
+
# The date and time when the entity was created.
|
|
36
|
+
created_at: Optional[datetime.datetime] = None
|
|
37
|
+
# The date and time for the delivered at value on this SMS.
|
|
38
|
+
delivered_at: Optional[datetime.datetime] = None
|
|
39
|
+
# The error code value for this SMS.
|
|
40
|
+
error_code: Optional[str] = None
|
|
41
|
+
# The error message value for this SMS.
|
|
42
|
+
error_message: Optional[str] = None
|
|
43
|
+
# The date and time for the failed at value on this SMS.
|
|
44
|
+
failed_at: Optional[datetime.datetime] = None
|
|
45
|
+
# The phone number associated with this SMS.
|
|
46
|
+
from_phone_number: Optional[str] = None
|
|
47
|
+
# The from phone number ID associated with this SMS.
|
|
48
|
+
from_phone_number_id: Optional[str] = None
|
|
49
|
+
# The unique identifier for the entity.
|
|
50
|
+
id: Optional[str] = None
|
|
51
|
+
# Whether this SMS is warmup.
|
|
52
|
+
is_warmup: Optional[bool] = None
|
|
53
|
+
# The lead ID associated with this SMS.
|
|
54
|
+
lead_id: Optional[str] = None
|
|
55
|
+
# The date and time when the entity was last modified, if applicable.
|
|
56
|
+
modified_at: Optional[datetime.datetime] = None
|
|
57
|
+
# The date and time for the next retry at value on this SMS.
|
|
58
|
+
next_retry_at: Optional[datetime.datetime] = None
|
|
59
|
+
# The outbound phone number ID associated with this SMS.
|
|
60
|
+
outbound_phone_number_id: Optional[str] = None
|
|
61
|
+
# The provider message ID associated with this SMS.
|
|
62
|
+
provider_message_id: Optional[str] = None
|
|
63
|
+
# The date and time for the queued at value on this SMS.
|
|
64
|
+
queued_at: Optional[datetime.datetime] = None
|
|
65
|
+
# The date and time for the received at value on this SMS.
|
|
66
|
+
received_at: Optional[datetime.datetime] = None
|
|
67
|
+
# The retry count for this SMS.
|
|
68
|
+
retry_count: Optional[int] = None
|
|
69
|
+
# The date and time for the scheduled for value on this SMS.
|
|
70
|
+
scheduled_for: Optional[datetime.datetime] = None
|
|
71
|
+
# The human-readable scheduled reason explaining this SMS.
|
|
72
|
+
scheduled_reason: Optional[str] = None
|
|
73
|
+
# Defines the supported Outgoing Number Selection Reason values.
|
|
74
|
+
selection_reason: Optional[SmsResponse_selectionReason] = None
|
|
75
|
+
# The date and time for the sending started at value on this SMS.
|
|
76
|
+
sending_started_at: Optional[datetime.datetime] = None
|
|
77
|
+
# The date and time for the sent at value on this SMS.
|
|
78
|
+
sent_at: Optional[datetime.datetime] = None
|
|
79
|
+
# The source ID associated with this SMS.
|
|
80
|
+
source_id: Optional[str] = None
|
|
81
|
+
# Defines the supported SMS Message Status values.
|
|
82
|
+
status: Optional[SmsResponse_status] = None
|
|
83
|
+
# The human-readable status reason explaining this SMS.
|
|
84
|
+
status_reason: Optional[str] = None
|
|
85
|
+
# The Telnyx ID associated with this SMS.
|
|
86
|
+
telnyx_id: Optional[str] = None
|
|
87
|
+
# The 10DLC campaign ID associated with this SMS.
|
|
88
|
+
ten_dlc_campaign_id: Optional[str] = None
|
|
89
|
+
# The text value for this SMS.
|
|
90
|
+
text: Optional[str] = None
|
|
91
|
+
# Defines the supported SMS Traffic Type values.
|
|
92
|
+
traffic_type: Optional[SmsResponse_trafficType] = None
|
|
93
|
+
# The date and time for the undeliverable at value on this SMS.
|
|
94
|
+
undeliverable_at: Optional[datetime.datetime] = None
|
|
95
|
+
# Whether this SMS was manually overridden.
|
|
96
|
+
was_manually_overridden: Optional[bool] = None
|
|
97
|
+
|
|
98
|
+
@staticmethod
|
|
99
|
+
def create_from_discriminator_value(parse_node: ParseNode) -> SmsResponse:
|
|
100
|
+
"""
|
|
101
|
+
Creates a new instance of the appropriate class based on discriminator value
|
|
102
|
+
param parse_node: The parse node to use to read the discriminator value and create the object
|
|
103
|
+
Returns: SmsResponse
|
|
104
|
+
"""
|
|
105
|
+
if parse_node is None:
|
|
106
|
+
raise TypeError("parse_node cannot be null.")
|
|
107
|
+
return SmsResponse()
|
|
108
|
+
|
|
109
|
+
def get_field_deserializers(self,) -> dict[str, Callable[[ParseNode], None]]:
|
|
110
|
+
"""
|
|
111
|
+
The deserialization information for the current model
|
|
112
|
+
Returns: dict[str, Callable[[ParseNode], None]]
|
|
113
|
+
"""
|
|
114
|
+
from .sms_response_selection_reason import SmsResponse_selectionReason
|
|
115
|
+
from .sms_response_status import SmsResponse_status
|
|
116
|
+
from .sms_response_traffic_type import SmsResponse_trafficType
|
|
117
|
+
|
|
118
|
+
from .sms_response_selection_reason import SmsResponse_selectionReason
|
|
119
|
+
from .sms_response_status import SmsResponse_status
|
|
120
|
+
from .sms_response_traffic_type import SmsResponse_trafficType
|
|
121
|
+
|
|
122
|
+
fields: dict[str, Callable[[Any], None]] = {
|
|
123
|
+
"billingStatus": lambda n : setattr(self, 'billing_status', n.get_str_value()),
|
|
124
|
+
"blockedAt": lambda n : setattr(self, 'blocked_at', n.get_datetime_value()),
|
|
125
|
+
"campaignId": lambda n : setattr(self, 'campaign_id', n.get_str_value()),
|
|
126
|
+
"cancelReason": lambda n : setattr(self, 'cancel_reason', n.get_str_value()),
|
|
127
|
+
"canceledAt": lambda n : setattr(self, 'canceled_at', n.get_datetime_value()),
|
|
128
|
+
"complianceAction": lambda n : setattr(self, 'compliance_action', n.get_str_value()),
|
|
129
|
+
"conversationId": lambda n : setattr(self, 'conversation_id', n.get_str_value()),
|
|
130
|
+
"createdAt": lambda n : setattr(self, 'created_at', n.get_datetime_value()),
|
|
131
|
+
"deliveredAt": lambda n : setattr(self, 'delivered_at', n.get_datetime_value()),
|
|
132
|
+
"errorCode": lambda n : setattr(self, 'error_code', n.get_str_value()),
|
|
133
|
+
"errorMessage": lambda n : setattr(self, 'error_message', n.get_str_value()),
|
|
134
|
+
"failedAt": lambda n : setattr(self, 'failed_at', n.get_datetime_value()),
|
|
135
|
+
"fromPhoneNumber": lambda n : setattr(self, 'from_phone_number', n.get_str_value()),
|
|
136
|
+
"fromPhoneNumberId": lambda n : setattr(self, 'from_phone_number_id', n.get_str_value()),
|
|
137
|
+
"id": lambda n : setattr(self, 'id', n.get_str_value()),
|
|
138
|
+
"isWarmup": lambda n : setattr(self, 'is_warmup', n.get_bool_value()),
|
|
139
|
+
"leadId": lambda n : setattr(self, 'lead_id', n.get_str_value()),
|
|
140
|
+
"modifiedAt": lambda n : setattr(self, 'modified_at', n.get_datetime_value()),
|
|
141
|
+
"nextRetryAt": lambda n : setattr(self, 'next_retry_at', n.get_datetime_value()),
|
|
142
|
+
"outboundPhoneNumberId": lambda n : setattr(self, 'outbound_phone_number_id', n.get_str_value()),
|
|
143
|
+
"providerMessageId": lambda n : setattr(self, 'provider_message_id', n.get_str_value()),
|
|
144
|
+
"queuedAt": lambda n : setattr(self, 'queued_at', n.get_datetime_value()),
|
|
145
|
+
"receivedAt": lambda n : setattr(self, 'received_at', n.get_datetime_value()),
|
|
146
|
+
"retryCount": lambda n : setattr(self, 'retry_count', n.get_int_value()),
|
|
147
|
+
"scheduledFor": lambda n : setattr(self, 'scheduled_for', n.get_datetime_value()),
|
|
148
|
+
"scheduledReason": lambda n : setattr(self, 'scheduled_reason', n.get_str_value()),
|
|
149
|
+
"selectionReason": lambda n : setattr(self, 'selection_reason', n.get_enum_value(SmsResponse_selectionReason)),
|
|
150
|
+
"sendingStartedAt": lambda n : setattr(self, 'sending_started_at', n.get_datetime_value()),
|
|
151
|
+
"sentAt": lambda n : setattr(self, 'sent_at', n.get_datetime_value()),
|
|
152
|
+
"sourceId": lambda n : setattr(self, 'source_id', n.get_str_value()),
|
|
153
|
+
"status": lambda n : setattr(self, 'status', n.get_enum_value(SmsResponse_status)),
|
|
154
|
+
"statusReason": lambda n : setattr(self, 'status_reason', n.get_str_value()),
|
|
155
|
+
"telnyxId": lambda n : setattr(self, 'telnyx_id', n.get_str_value()),
|
|
156
|
+
"tenDlcCampaignId": lambda n : setattr(self, 'ten_dlc_campaign_id', n.get_str_value()),
|
|
157
|
+
"text": lambda n : setattr(self, 'text', n.get_str_value()),
|
|
158
|
+
"trafficType": lambda n : setattr(self, 'traffic_type', n.get_enum_value(SmsResponse_trafficType)),
|
|
159
|
+
"undeliverableAt": lambda n : setattr(self, 'undeliverable_at', n.get_datetime_value()),
|
|
160
|
+
"wasManuallyOverridden": lambda n : setattr(self, 'was_manually_overridden', n.get_bool_value()),
|
|
161
|
+
}
|
|
162
|
+
return fields
|
|
163
|
+
|
|
164
|
+
def serialize(self,writer: SerializationWriter) -> None:
|
|
165
|
+
"""
|
|
166
|
+
Serializes information the current object
|
|
167
|
+
param writer: Serialization writer to use to serialize this model
|
|
168
|
+
Returns: None
|
|
169
|
+
"""
|
|
170
|
+
if writer is None:
|
|
171
|
+
raise TypeError("writer cannot be null.")
|
|
172
|
+
writer.write_str_value("billingStatus", self.billing_status)
|
|
173
|
+
writer.write_datetime_value("blockedAt", self.blocked_at)
|
|
174
|
+
writer.write_str_value("campaignId", self.campaign_id)
|
|
175
|
+
writer.write_str_value("cancelReason", self.cancel_reason)
|
|
176
|
+
writer.write_datetime_value("canceledAt", self.canceled_at)
|
|
177
|
+
writer.write_str_value("complianceAction", self.compliance_action)
|
|
178
|
+
writer.write_str_value("conversationId", self.conversation_id)
|
|
179
|
+
writer.write_datetime_value("createdAt", self.created_at)
|
|
180
|
+
writer.write_datetime_value("deliveredAt", self.delivered_at)
|
|
181
|
+
writer.write_str_value("errorCode", self.error_code)
|
|
182
|
+
writer.write_str_value("errorMessage", self.error_message)
|
|
183
|
+
writer.write_datetime_value("failedAt", self.failed_at)
|
|
184
|
+
writer.write_str_value("fromPhoneNumber", self.from_phone_number)
|
|
185
|
+
writer.write_str_value("fromPhoneNumberId", self.from_phone_number_id)
|
|
186
|
+
writer.write_str_value("id", self.id)
|
|
187
|
+
writer.write_bool_value("isWarmup", self.is_warmup)
|
|
188
|
+
writer.write_str_value("leadId", self.lead_id)
|
|
189
|
+
writer.write_datetime_value("modifiedAt", self.modified_at)
|
|
190
|
+
writer.write_datetime_value("nextRetryAt", self.next_retry_at)
|
|
191
|
+
writer.write_str_value("outboundPhoneNumberId", self.outbound_phone_number_id)
|
|
192
|
+
writer.write_str_value("providerMessageId", self.provider_message_id)
|
|
193
|
+
writer.write_datetime_value("queuedAt", self.queued_at)
|
|
194
|
+
writer.write_datetime_value("receivedAt", self.received_at)
|
|
195
|
+
writer.write_int_value("retryCount", self.retry_count)
|
|
196
|
+
writer.write_datetime_value("scheduledFor", self.scheduled_for)
|
|
197
|
+
writer.write_str_value("scheduledReason", self.scheduled_reason)
|
|
198
|
+
writer.write_enum_value("selectionReason", self.selection_reason)
|
|
199
|
+
writer.write_datetime_value("sendingStartedAt", self.sending_started_at)
|
|
200
|
+
writer.write_datetime_value("sentAt", self.sent_at)
|
|
201
|
+
writer.write_str_value("sourceId", self.source_id)
|
|
202
|
+
writer.write_enum_value("status", self.status)
|
|
203
|
+
writer.write_str_value("statusReason", self.status_reason)
|
|
204
|
+
writer.write_str_value("telnyxId", self.telnyx_id)
|
|
205
|
+
writer.write_str_value("tenDlcCampaignId", self.ten_dlc_campaign_id)
|
|
206
|
+
writer.write_str_value("text", self.text)
|
|
207
|
+
writer.write_enum_value("trafficType", self.traffic_type)
|
|
208
|
+
writer.write_datetime_value("undeliverableAt", self.undeliverable_at)
|
|
209
|
+
writer.write_bool_value("wasManuallyOverridden", self.was_manually_overridden)
|
|
210
|
+
writer.write_additional_data_value(self.additional_data)
|
|
211
|
+
|
|
212
|
+
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
from enum import Enum
|
|
2
|
+
|
|
3
|
+
class SmsResponse_selectionReason(str, Enum):
|
|
4
|
+
StickyConversation = "StickyConversation",
|
|
5
|
+
LeadAssigned = "LeadAssigned",
|
|
6
|
+
CampaignOrSource = "CampaignOrSource",
|
|
7
|
+
Preferred = "Preferred",
|
|
8
|
+
LocalArea = "LocalArea",
|
|
9
|
+
HealthyPool = "HealthyPool",
|
|
10
|
+
FallbackDefault = "FallbackDefault",
|
|
11
|
+
ManualOverride = "ManualOverride",
|
|
12
|
+
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
from enum import Enum
|
|
2
|
+
|
|
3
|
+
class SmsResponse_status(str, Enum):
|
|
4
|
+
Draft = "draft",
|
|
5
|
+
Scheduled = "scheduled",
|
|
6
|
+
Queued = "queued",
|
|
7
|
+
Sending = "sending",
|
|
8
|
+
Sent = "sent",
|
|
9
|
+
Received = "received",
|
|
10
|
+
Delivered = "delivered",
|
|
11
|
+
Failed = "failed",
|
|
12
|
+
Undeliverable = "undeliverable",
|
|
13
|
+
Opted_out = "opted_out",
|
|
14
|
+
Blocked_compliance = "blocked_compliance",
|
|
15
|
+
Blocked_billing = "blocked_billing",
|
|
16
|
+
Blocked_missing_campaign = "blocked_missing_campaign",
|
|
17
|
+
Canceled = "canceled",
|
|
18
|
+
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
from __future__ import annotations
|
|
2
|
+
import datetime
|
|
3
|
+
from collections.abc import Callable
|
|
4
|
+
from dataclasses import dataclass, field
|
|
5
|
+
from kiota_abstractions.serialization import AdditionalDataHolder, Parsable, ParseNode, SerializationWriter
|
|
6
|
+
from typing import Any, Optional, TYPE_CHECKING, Union
|
|
7
|
+
|
|
8
|
+
if TYPE_CHECKING:
|
|
9
|
+
from .sms_warmup_action_status import SmsWarmupActionStatus
|
|
10
|
+
from .sms_warmup_action_type import SmsWarmupActionType
|
|
11
|
+
|
|
12
|
+
@dataclass
|
|
13
|
+
class SmsWarmupActionResponse(AdditionalDataHolder, Parsable):
|
|
14
|
+
"""
|
|
15
|
+
API response containing SMS warmup action data returned to callers.
|
|
16
|
+
"""
|
|
17
|
+
# Stores additional data not described in the OpenAPI description found when deserializing. Can be used for serialization as well.
|
|
18
|
+
additional_data: dict[str, Any] = field(default_factory=dict)
|
|
19
|
+
|
|
20
|
+
# The action type classification for this SMS warmup action.
|
|
21
|
+
action_type: Optional[SmsWarmupActionType] = None
|
|
22
|
+
# The body value for this SMS warmup action.
|
|
23
|
+
body: Optional[str] = None
|
|
24
|
+
# The conversation ID associated with this SMS warmup action.
|
|
25
|
+
conversation_id: Optional[str] = None
|
|
26
|
+
# The date and time for the executed at value on this SMS warmup action.
|
|
27
|
+
executed_at: Optional[datetime.datetime] = None
|
|
28
|
+
# The human-readable failure reason explaining this SMS warmup action.
|
|
29
|
+
failure_reason: Optional[str] = None
|
|
30
|
+
# The phone number associated with this SMS warmup action.
|
|
31
|
+
from_phone_number: Optional[str] = None
|
|
32
|
+
# The unique ID for this SMS warmup action.
|
|
33
|
+
id: Optional[str] = None
|
|
34
|
+
# The date and time for the scheduled at value on this SMS warmup action.
|
|
35
|
+
scheduled_at: Optional[datetime.datetime] = None
|
|
36
|
+
# The current status for this SMS warmup action.
|
|
37
|
+
status: Optional[SmsWarmupActionStatus] = None
|
|
38
|
+
# The phone number associated with this SMS warmup action.
|
|
39
|
+
to_phone_number: Optional[str] = None
|
|
40
|
+
|
|
41
|
+
@staticmethod
|
|
42
|
+
def create_from_discriminator_value(parse_node: ParseNode) -> SmsWarmupActionResponse:
|
|
43
|
+
"""
|
|
44
|
+
Creates a new instance of the appropriate class based on discriminator value
|
|
45
|
+
param parse_node: The parse node to use to read the discriminator value and create the object
|
|
46
|
+
Returns: SmsWarmupActionResponse
|
|
47
|
+
"""
|
|
48
|
+
if parse_node is None:
|
|
49
|
+
raise TypeError("parse_node cannot be null.")
|
|
50
|
+
return SmsWarmupActionResponse()
|
|
51
|
+
|
|
52
|
+
def get_field_deserializers(self,) -> dict[str, Callable[[ParseNode], None]]:
|
|
53
|
+
"""
|
|
54
|
+
The deserialization information for the current model
|
|
55
|
+
Returns: dict[str, Callable[[ParseNode], None]]
|
|
56
|
+
"""
|
|
57
|
+
from .sms_warmup_action_status import SmsWarmupActionStatus
|
|
58
|
+
from .sms_warmup_action_type import SmsWarmupActionType
|
|
59
|
+
|
|
60
|
+
from .sms_warmup_action_status import SmsWarmupActionStatus
|
|
61
|
+
from .sms_warmup_action_type import SmsWarmupActionType
|
|
62
|
+
|
|
63
|
+
fields: dict[str, Callable[[Any], None]] = {
|
|
64
|
+
"actionType": lambda n : setattr(self, 'action_type', n.get_enum_value(SmsWarmupActionType)),
|
|
65
|
+
"body": lambda n : setattr(self, 'body', n.get_str_value()),
|
|
66
|
+
"conversationId": lambda n : setattr(self, 'conversation_id', n.get_str_value()),
|
|
67
|
+
"executedAt": lambda n : setattr(self, 'executed_at', n.get_datetime_value()),
|
|
68
|
+
"failureReason": lambda n : setattr(self, 'failure_reason', n.get_str_value()),
|
|
69
|
+
"fromPhoneNumber": lambda n : setattr(self, 'from_phone_number', n.get_str_value()),
|
|
70
|
+
"id": lambda n : setattr(self, 'id', n.get_str_value()),
|
|
71
|
+
"scheduledAt": lambda n : setattr(self, 'scheduled_at', n.get_datetime_value()),
|
|
72
|
+
"status": lambda n : setattr(self, 'status', n.get_enum_value(SmsWarmupActionStatus)),
|
|
73
|
+
"toPhoneNumber": lambda n : setattr(self, 'to_phone_number', n.get_str_value()),
|
|
74
|
+
}
|
|
75
|
+
return fields
|
|
76
|
+
|
|
77
|
+
def serialize(self,writer: SerializationWriter) -> None:
|
|
78
|
+
"""
|
|
79
|
+
Serializes information the current object
|
|
80
|
+
param writer: Serialization writer to use to serialize this model
|
|
81
|
+
Returns: None
|
|
82
|
+
"""
|
|
83
|
+
if writer is None:
|
|
84
|
+
raise TypeError("writer cannot be null.")
|
|
85
|
+
writer.write_enum_value("actionType", self.action_type)
|
|
86
|
+
writer.write_str_value("body", self.body)
|
|
87
|
+
writer.write_str_value("conversationId", self.conversation_id)
|
|
88
|
+
writer.write_datetime_value("executedAt", self.executed_at)
|
|
89
|
+
writer.write_str_value("failureReason", self.failure_reason)
|
|
90
|
+
writer.write_str_value("fromPhoneNumber", self.from_phone_number)
|
|
91
|
+
writer.write_str_value("id", self.id)
|
|
92
|
+
writer.write_datetime_value("scheduledAt", self.scheduled_at)
|
|
93
|
+
writer.write_enum_value("status", self.status)
|
|
94
|
+
writer.write_str_value("toPhoneNumber", self.to_phone_number)
|
|
95
|
+
writer.write_additional_data_value(self.additional_data)
|
|
96
|
+
|
|
97
|
+
|