rcs 1.0.17 → 2.0.0.pre.rc.1
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.
- checksums.yaml +4 -4
- data/lib/environment.rb +1 -1
- data/lib/rcs/brands/client.rb +631 -0
- data/lib/rcs/brands/types/autofill_brand_schema_options.rb +61 -0
- data/lib/rcs/brands/types/brand_contact.rb +84 -0
- data/lib/rcs/campaigns/client.rb +44 -0
- data/lib/rcs/campaigns/dlc/client.rb +480 -0
- data/lib/rcs/campaigns/dlc/types/upsert_dlc_schema_keywords.rb +99 -0
- data/lib/rcs/campaigns/dlc/types/upsert_dlc_schema_keywords_help.rb +74 -0
- data/lib/rcs/campaigns/dlc/types/upsert_dlc_schema_keywords_opt_in.rb +74 -0
- data/lib/rcs/campaigns/dlc/types/upsert_dlc_schema_keywords_opt_out.rb +74 -0
- data/lib/rcs/campaigns/dlc/types/upsert_dlc_schema_links.rb +74 -0
- data/lib/rcs/campaigns/dlc/types/upsert_dlc_schema_options.rb +110 -0
- data/lib/rcs/campaigns/dlc/types/upsert_dlc_schema_use_case.rb +76 -0
- data/lib/rcs/campaigns/rcs/client.rb +457 -0
- data/lib/rcs/campaigns/rcs/types/rcs_autofill_response.rb +155 -0
- data/lib/rcs/campaigns/rcs/types/upsert_rcs_schema_agent.rb +140 -0
- data/lib/rcs/campaigns/rcs/types/upsert_rcs_schema_agent_emails_item.rb +73 -0
- data/lib/rcs/campaigns/rcs/types/upsert_rcs_schema_agent_phones_item.rb +73 -0
- data/lib/rcs/campaigns/rcs/types/upsert_rcs_schema_agent_websites_item.rb +73 -0
- data/lib/rcs/campaigns/rcs/types/upsert_rcs_schema_links.rb +74 -0
- data/lib/rcs/campaigns/rcs/types/upsert_rcs_schema_opt_in.rb +75 -0
- data/lib/rcs/campaigns/rcs/types/upsert_rcs_schema_opt_out.rb +76 -0
- data/lib/rcs/campaigns/rcs/types/upsert_rcs_schema_use_case.rb +75 -0
- data/lib/rcs/campaigns/toll_free/client.rb +429 -0
- data/lib/rcs/campaigns/toll_free/types/toll_free_autofill_response.rb +130 -0
- data/lib/rcs/campaigns/toll_free/types/upsert_toll_free_schema_opt_in.rb +86 -0
- data/lib/rcs/campaigns/toll_free/types/upsert_toll_free_schema_use_case.rb +75 -0
- data/lib/rcs/contacts/client.rb +275 -0
- data/lib/rcs/conversations/client.rb +273 -0
- data/lib/rcs/message/client.rb +30 -0
- data/lib/rcs/message/sms/client.rb +96 -0
- data/lib/rcs/messages/client.rb +185 -0
- data/lib/rcs/messages/mms/client.rb +98 -0
- data/lib/rcs/messages/rcs/client.rb +94 -0
- data/lib/rcs/messages/send/client.rb +318 -0
- data/lib/rcs/messages/send/types/send_mms_response.rb +60 -0
- data/lib/rcs/messages/send/types/send_mms_schema_options.rb +108 -0
- data/lib/rcs/messages/send/types/send_rcs_response.rb +60 -0
- data/lib/rcs/messages/send/types/send_sms_response.rb +60 -0
- data/lib/rcs/messages/send/types/send_sms_schema_options.rb +81 -0
- data/lib/rcs/messages/types/message_reaction_schema_options.rb +71 -0
- data/lib/rcs/phone_numbers/campaign/client.rb +179 -0
- data/lib/rcs/phone_numbers/client.rb +345 -0
- data/lib/rcs/phone_numbers/types/phone_details_schema_level.rb +16 -0
- data/lib/rcs/phone_numbers/types/phone_details_schema_options.rb +93 -0
- data/lib/rcs/phone_numbers/types/phone_details_schema_options_enhanced_contact_info.rb +64 -0
- data/lib/rcs/phone_numbers/types/phone_numbers_get_response.rb +58 -0
- data/lib/rcs/phone_numbers/types/search_schema_location.rb +96 -0
- data/lib/rcs/phone_numbers/types/search_schema_number.rb +81 -0
- data/lib/rcs/phone_numbers/types/search_schema_options.rb +62 -0
- data/lib/rcs/phone_numbers/webhook/client.rb +191 -0
- data/lib/rcs/status/client.rb +30 -0
- data/lib/rcs/status/get/client.rb +367 -0
- data/lib/rcs/tools/client.rb +32 -199
- data/lib/rcs/tools/contact_card/client.rb +285 -0
- data/lib/rcs/tools/contact_card/types/get_v_card_schema_options.rb +67 -0
- data/lib/rcs/tools/file/client.rb +138 -0
- data/lib/rcs/tools/file/types/file_upload_schema_options.rb +70 -0
- data/lib/rcs/tools/file/types/file_upload_schema_options_download.rb +66 -0
- data/lib/rcs/tools/url/client.rb +245 -0
- data/lib/rcs/types/advanced_phone_information.rb +147 -0
- data/lib/rcs/types/advanced_phone_information_carrier.rb +90 -0
- data/lib/rcs/types/advanced_phone_information_contact.rb +146 -0
- data/lib/rcs/types/advanced_phone_information_location.rb +142 -0
- data/lib/rcs/types/advanced_phone_information_location_coordinates.rb +73 -0
- data/lib/rcs/types/advanced_phone_information_location_country.rb +77 -0
- data/lib/rcs/types/advanced_phone_information_type.rb +97 -0
- data/lib/rcs/types/advanced_phone_information_type_recommendation.rb +15 -0
- data/lib/rcs/types/agent.rb +68 -0
- data/lib/rcs/types/attach_webhook_params.rb +60 -0
- data/lib/rcs/types/attach_webhook_response_webhook.rb +86 -0
- data/lib/rcs/types/attach_webhook_schema_name.rb +88 -0
- data/lib/rcs/types/attach_webhook_schema_webhook_id.rb +77 -0
- data/lib/rcs/types/attached_phone_number_result.rb +75 -0
- data/lib/rcs/types/autofill_campaign_params.rb +69 -0
- data/lib/rcs/types/autofill_dlc_campaign_response.rb +169 -0
- data/lib/rcs/types/autofill_dlc_response_keywords.rb +95 -0
- data/lib/rcs/types/autofill_dlc_response_keywords_help.rb +70 -0
- data/lib/rcs/{send/types/send_sms_response.rb → types/autofill_dlc_response_keywords_opt_in.rb} +18 -17
- data/lib/rcs/types/autofill_dlc_response_keywords_opt_out.rb +70 -0
- data/lib/rcs/types/autofill_dlc_response_links.rb +70 -0
- data/lib/rcs/types/autofill_dlc_response_options.rb +106 -0
- data/lib/rcs/types/autofill_dlc_response_use_case.rb +72 -0
- data/lib/rcs/types/bad_request_error_body.rb +44 -45
- data/lib/rcs/types/basic_phone_information.rb +127 -0
- data/lib/rcs/{company/types/company_register_response_brand.rb → types/basic_phone_information_contact.rb} +12 -21
- data/lib/rcs/types/basic_phone_information_location.rb +74 -0
- data/lib/rcs/types/basic_phone_information_location_country.rb +75 -0
- data/lib/rcs/types/brand_status.rb +92 -0
- data/lib/rcs/types/brand_status_enum.rb +21 -0
- data/lib/rcs/types/buy_response_capabilities.rb +77 -0
- data/lib/rcs/types/campaign_enum.rb +15 -0
- data/lib/rcs/types/campaign_query.rb +69 -0
- data/lib/rcs/{company/types/company_register_request_company_id.rb → types/campaign_submission_result.rb} +15 -16
- data/lib/rcs/types/campaign_validation_response_errors_item.rb +76 -0
- data/lib/rcs/types/campaign_validation_result.rb +71 -0
- data/lib/rcs/types/click_action.rb +73 -0
- data/lib/rcs/types/click_action_data.rb +56 -0
- data/lib/rcs/types/click_action_data_metadata.rb +69 -0
- data/lib/rcs/types/company_sector_enum.rb +26 -0
- data/lib/rcs/types/company_type_enum.rb +14 -0
- data/lib/rcs/types/configured_webhook.rb +85 -0
- data/lib/rcs/types/contact.rb +105 -0
- data/lib/rcs/types/contact_id.rb +57 -0
- data/lib/rcs/types/conversation.rb +146 -0
- data/lib/rcs/types/conversation_contact.rb +68 -0
- data/lib/rcs/types/conversation_list.rb +79 -0
- data/lib/rcs/types/conversation_sender.rb +60 -0
- data/lib/rcs/types/create_url_options.rb +61 -0
- data/lib/rcs/types/detached_phone_number_result.rb +75 -0
- data/lib/rcs/types/detached_webhook_info.rb +74 -0
- data/lib/rcs/types/detailed_phone_number_enum.rb +25 -0
- data/lib/rcs/types/dlc_assignment_status_enum.rb +19 -0
- data/lib/rcs/types/dlc_campaign_status.rb +107 -0
- data/lib/rcs/types/dlc_campaign_use_case_enum.rb +35 -0
- data/lib/rcs/types/dlc_campaign_with_extended_brand_and_status.rb +194 -0
- data/lib/rcs/types/dlc_with_extended_brand_and_status_keywords.rb +94 -0
- data/lib/rcs/types/dlc_with_extended_brand_and_status_keywords_help.rb +72 -0
- data/lib/rcs/{send/types/send_mms_response.rb → types/dlc_with_extended_brand_and_status_keywords_opt_in.rb} +20 -17
- data/lib/rcs/{send/types/send_rcs_response.rb → types/dlc_with_extended_brand_and_status_keywords_opt_out.rb} +20 -17
- data/lib/rcs/types/dlc_with_extended_brand_and_status_links.rb +70 -0
- data/lib/rcs/types/dlc_with_extended_brand_and_status_options.rb +106 -0
- data/lib/rcs/types/dlc_with_extended_brand_and_status_use_case.rb +72 -0
- data/lib/rcs/types/enhanced_contact.rb +9 -0
- data/lib/rcs/types/enhanced_contact_item.rb +104 -0
- data/lib/rcs/types/error.rb +61 -0
- data/lib/rcs/types/extended_brand.rb +194 -0
- data/lib/rcs/types/extended_brand_with_vetting.rb +226 -0
- data/lib/rcs/types/extended_rcs_campaign.rb +173 -0
- data/lib/rcs/{company/types/company_register_request.rb → types/get_conversation_params.rb} +13 -12
- data/lib/rcs/types/get_conversation_request_id.rb +58 -0
- data/lib/rcs/types/get_conversation_request_recipient.rb +72 -0
- data/lib/rcs/types/get_dlc_campaign_status_response_updates.rb +96 -0
- data/lib/rcs/types/get_toll_free_campaign_status_response_updates.rb +92 -0
- data/lib/rcs/types/inbound_button.rb +56 -0
- data/lib/rcs/types/link_click_event.rb +465 -0
- data/lib/rcs/{company/types/company_update_response.rb → types/location_share_action.rb} +19 -19
- data/lib/rcs/types/location_share_action_data.rb +89 -0
- data/lib/rcs/types/message.rb +174 -0
- data/lib/rcs/types/message_content.rb +85 -0
- data/lib/rcs/types/message_method_enum.rb +12 -0
- data/lib/rcs/types/message_protocol_enum.rb +12 -0
- data/lib/rcs/types/message_schedule.rb +94 -0
- data/lib/rcs/types/message_status_enum.rb +16 -0
- data/lib/rcs/types/message_volume_enum.rb +20 -0
- data/lib/rcs/types/messaging_profile_enum.rb +11 -0
- data/lib/rcs/types/mms_content.rb +74 -0
- data/lib/rcs/types/mms_validation_response_segments.rb +85 -0
- data/lib/rcs/types/mms_validation_response_segments_value_item.rb +75 -0
- data/lib/rcs/types/mms_validation_result.rb +82 -0
- data/lib/rcs/types/nullable_contact.rb +84 -0
- data/lib/rcs/types/number_format.rb +79 -0
- data/lib/rcs/types/opt_in_method_enum.rb +13 -0
- data/lib/rcs/types/optional_brand_info.rb +145 -0
- data/lib/rcs/types/optional_contact.rb +83 -0
- data/lib/rcs/types/optional_contacts.rb +84 -0
- data/lib/rcs/types/phone.rb +101 -0
- data/lib/rcs/types/phone_capabilities.rb +75 -0
- data/lib/rcs/types/phone_enum.rb +13 -0
- data/lib/rcs/types/phone_feature_enum.rb +18 -0
- data/lib/rcs/types/phone_number_campaign_attach_failed_item.rb +67 -0
- data/lib/rcs/types/phone_number_campaign_attach_phone_numbers_item.rb +75 -0
- data/lib/rcs/types/phone_number_campaign_attach_phone_numbers_item_campaign.rb +78 -0
- data/lib/rcs/types/phone_number_campaign_detach_failed_item.rb +67 -0
- data/lib/rcs/types/phone_number_campaign_detach_phone_numbers_item.rb +75 -0
- data/lib/rcs/types/phone_number_campaign_detach_phone_numbers_item_campaign.rb +78 -0
- data/lib/rcs/types/phone_number_cost.rb +75 -0
- data/lib/rcs/types/phone_number_details.rb +110 -0
- data/lib/rcs/types/phone_number_enum.rb +18 -0
- data/lib/rcs/types/phone_number_region.rb +91 -0
- data/lib/rcs/types/phone_number_status.rb +90 -0
- data/lib/rcs/types/phone_number_status_enum.rb +16 -0
- data/lib/rcs/types/pinnacle_file_upload_metadata.rb +84 -0
- data/lib/rcs/types/pinnacle_url_config.rb +71 -0
- data/lib/rcs/types/profile_status_enum.rb +17 -0
- data/lib/rcs/types/purchased_number.rb +75 -0
- data/lib/rcs/types/rcs.rb +70 -0
- data/lib/rcs/types/rcs_base.rb +82 -0
- data/lib/rcs/types/rcs_base_options.rb +100 -0
- data/lib/rcs/types/rcs_button_call.rb +68 -0
- data/lib/rcs/types/rcs_button_content.rb +148 -0
- data/lib/rcs/types/rcs_button_open_url.rb +68 -0
- data/lib/rcs/types/rcs_button_request_user_location.rb +58 -0
- data/lib/rcs/types/rcs_button_schedule_event.rb +98 -0
- data/lib/rcs/types/rcs_button_send_location.rb +74 -0
- data/lib/rcs/types/rcs_button_send_location_lat_long.rb +68 -0
- data/lib/rcs/types/rcs_button_trigger.rb +78 -0
- data/lib/rcs/types/rcs_campaign.rb +143 -0
- data/lib/rcs/types/rcs_campaign_opt_in_method_enum.rb +15 -0
- data/lib/rcs/types/rcs_campaign_schema_agent.rb +134 -0
- data/lib/rcs/types/rcs_campaign_schema_agent_emails_item.rb +69 -0
- data/lib/rcs/types/rcs_campaign_schema_agent_phones_item.rb +69 -0
- data/lib/rcs/types/rcs_campaign_schema_agent_websites_item.rb +69 -0
- data/lib/rcs/types/rcs_campaign_schema_extra_agent.rb +134 -0
- data/lib/rcs/types/rcs_campaign_schema_extra_agent_emails_item.rb +70 -0
- data/lib/rcs/types/rcs_campaign_schema_extra_agent_phones_item.rb +70 -0
- data/lib/rcs/types/rcs_campaign_schema_extra_agent_websites_item.rb +71 -0
- data/lib/rcs/types/rcs_campaign_schema_extra_links.rb +70 -0
- data/lib/rcs/types/rcs_campaign_schema_extra_opt_in.rb +71 -0
- data/lib/rcs/types/rcs_campaign_schema_extra_opt_out.rb +70 -0
- data/lib/rcs/types/rcs_campaign_schema_extra_use_case.rb +71 -0
- data/lib/rcs/types/rcs_campaign_schema_links.rb +70 -0
- data/lib/rcs/types/rcs_campaign_schema_opt_in.rb +71 -0
- data/lib/rcs/types/rcs_campaign_schema_opt_out.rb +70 -0
- data/lib/rcs/types/rcs_campaign_schema_use_case.rb +71 -0
- data/lib/rcs/types/rcs_campaign_status.rb +86 -0
- data/lib/rcs/types/rcs_campaign_use_case_enum.rb +23 -0
- data/lib/rcs/types/rcs_card.rb +110 -0
- data/lib/rcs/types/rcs_cards.rb +79 -0
- data/lib/rcs/types/rcs_cards_cards_item.rb +88 -0
- data/lib/rcs/types/rcs_cards_content.rb +79 -0
- data/lib/rcs/types/rcs_cards_content_cards_item.rb +94 -0
- data/lib/rcs/types/rcs_content.rb +72 -0
- data/lib/rcs/types/rcs_media.rb +110 -0
- data/lib/rcs/types/rcs_media_content.rb +81 -0
- data/lib/rcs/types/rcs_media_details_content.rb +77 -0
- data/lib/rcs/types/rcs_text.rb +106 -0
- data/lib/rcs/types/rcs_text_content.rb +72 -0
- data/lib/rcs/types/rcs_validate_content.rb +70 -0
- data/lib/rcs/{company/types/company_register_response.rb → types/rcs_validate_content_media.rb} +19 -21
- data/lib/rcs/types/rcs_validation_result.rb +76 -0
- data/lib/rcs/types/reaction_result.rb +67 -0
- data/lib/rcs/types/scheduled_messaage.rb +73 -0
- data/lib/rcs/types/scheduled_send_response_config.rb +89 -0
- data/lib/rcs/types/send_sms_response_segments.rb +69 -0
- data/lib/rcs/types/send_sms_response_segments_encoding.rb +11 -0
- data/lib/rcs/types/sent_mms_details.rb +102 -0
- data/lib/rcs/types/sent_rcs_details.rb +105 -0
- data/lib/rcs/types/sent_sms_details.rb +108 -0
- data/lib/rcs/types/shortened_url.rb +77 -0
- data/lib/rcs/types/shortened_url_with_click_data.rb +90 -0
- data/lib/rcs/types/sms_content.rb +58 -0
- data/lib/rcs/types/sms_validation_response_segments.rb +80 -0
- data/lib/rcs/types/sms_validation_response_segments_gsm_7.rb +75 -0
- data/lib/rcs/types/sms_validation_response_segments_utf_16.rb +68 -0
- data/lib/rcs/types/sms_validation_response_total.rb +75 -0
- data/lib/rcs/types/sms_validation_result.rb +102 -0
- data/lib/rcs/types/sub_use_case_enum.rb +19 -0
- data/lib/rcs/types/submission_results.rb +57 -0
- data/lib/rcs/types/successful_conversation_update.rb +58 -0
- data/lib/rcs/types/toll_free_campaign.rb +118 -0
- data/lib/rcs/types/toll_free_campaign_schema_opt_in.rb +78 -0
- data/lib/rcs/types/toll_free_campaign_schema_use_case.rb +71 -0
- data/lib/rcs/types/toll_free_campaign_status.rb +91 -0
- data/lib/rcs/types/toll_free_campaign_use_case_enum.rb +52 -0
- data/lib/rcs/types/toll_free_campaign_with_extended_brand_and_status.rb +155 -0
- data/lib/rcs/types/toll_free_status_enum.rb +20 -0
- data/lib/rcs/types/tracking.rb +17 -0
- data/lib/rcs/types/updated_contact_id.rb +57 -0
- data/lib/rcs/types/upload_results.rb +80 -0
- data/lib/rcs/types/v_card_address_schema_type_item.rb +15 -0
- data/lib/rcs/types/v_card_data.rb +237 -0
- data/lib/rcs/types/v_card_data_file.rb +74 -0
- data/lib/rcs/types/v_card_data_file_metadata.rb +62 -0
- data/lib/rcs/types/v_card_email_schema_type_item.rb +21 -0
- data/lib/rcs/types/v_card_geo.rb +70 -0
- data/lib/rcs/types/v_card_name.rb +98 -0
- data/lib/rcs/types/v_card_organization.rb +70 -0
- data/lib/rcs/types/v_card_phone_schema_type_item.rb +21 -0
- data/lib/rcs/types/validate_campaign_params.rb +69 -0
- data/lib/rcs/types/validation_error_details.rb +76 -0
- data/lib/rcs/types/validation_results.rb +71 -0
- data/lib/rcs/types/vcard.rb +215 -0
- data/lib/rcs/types/vcard_address.rb +130 -0
- data/lib/rcs/types/vcard_content.rb +223 -0
- data/lib/rcs/types/vcard_email.rb +70 -0
- data/lib/rcs/types/vcard_phone.rb +70 -0
- data/lib/rcs/types/vcard_resource.rb +71 -0
- data/lib/rcs/types/vetting_feedback.rb +81 -0
- data/lib/rcs/types/vetting_history.rb +98 -0
- data/lib/rcs/types/vetting_history_vetting_status.rb +13 -0
- data/lib/rcs/types/vetting_results.rb +57 -0
- data/lib/rcs/types/webhook_event_enum.rb +13 -0
- data/lib/rcs/types/webhook_result.rb +64 -0
- data/lib/rcs/{company/types/company_update_response_brand.rb → types/webhooks.rb} +25 -17
- data/lib/rcs/types/zod_error.rb +73 -0
- data/lib/rcs/webhooks/client.rb +93 -0
- data/lib/rcs.rb +67 -83
- data/lib/requests.rb +4 -4
- data/lib/types_export.rb +252 -46
- metadata +278 -52
- data/lib/rcs/company/client.rb +0 -375
- data/lib/rcs/company/types/company_register_request_company.rb +0 -128
- data/lib/rcs/send/client.rb +0 -382
- data/lib/rcs/send/types/rcs_fallback.rb +0 -84
- data/lib/rcs/tools/types/tools_shorten_url_response.rb +0 -70
- data/lib/rcs/tools/types/tools_upload_url_response.rb +0 -69
- data/lib/rcs/types/action.rb +0 -154
- data/lib/rcs/types/action_lat_long.rb +0 -68
- data/lib/rcs/types/action_type.rb +0 -16
- data/lib/rcs/types/additional_email.rb +0 -65
- data/lib/rcs/types/additional_phone_number.rb +0 -65
- data/lib/rcs/types/additional_website.rb +0 -65
- data/lib/rcs/types/card.rb +0 -90
- data/lib/rcs/types/company.rb +0 -319
- data/lib/rcs/types/company_additional_emails_item.rb +0 -67
- data/lib/rcs/types/company_additional_phone_numbers_item.rb +0 -67
- data/lib/rcs/types/company_additional_websites_item.rb +0 -67
- data/lib/rcs/types/company_category.rb +0 -20
- data/lib/rcs/types/company_contact.rb +0 -117
- data/lib/rcs/types/company_details.rb +0 -120
- data/lib/rcs/types/forbidden_error_body.rb +0 -57
- data/lib/rcs/types/inbound_action_message.rb +0 -117
- data/lib/rcs/types/inbound_location_message.rb +0 -106
- data/lib/rcs/types/inbound_location_message_coordinates.rb +0 -65
- data/lib/rcs/types/inbound_media_message.rb +0 -112
- data/lib/rcs/types/inbound_message.rb +0 -88
- data/lib/rcs/types/inbound_message_message_type.rb +0 -10
- data/lib/rcs/types/inbound_message_metadata.rb +0 -79
- data/lib/rcs/types/inbound_text_message.rb +0 -100
- data/lib/rcs/types/internal_server_error_body.rb +0 -57
- data/lib/rcs/types/media_payload.rb +0 -65
- data/lib/rcs/types/message_metadata.rb +0 -56
- data/lib/rcs/types/messaging.rb +0 -95
- data/lib/rcs/types/optionals.rb +0 -99
- data/lib/rcs/types/payment_required_error_body.rb +0 -57
- data/lib/rcs/types/point_of_contact.rb +0 -72
- data/lib/rcs/types/rcs_functionalities.rb +0 -117
- data/lib/rcs/types/sender_metadata.rb +0 -74
- data/lib/rcs/types/unauthorized_error_body.rb +0 -57
@@ -0,0 +1,429 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require_relative "../../../requests"
|
4
|
+
require_relative "../../types/autofill_campaign_params"
|
5
|
+
require_relative "types/toll_free_autofill_response"
|
6
|
+
require_relative "../../types/toll_free_campaign_with_extended_brand_and_status"
|
7
|
+
require_relative "../../types/campaign_submission_result"
|
8
|
+
require_relative "../../types/message_volume_enum"
|
9
|
+
require_relative "types/upsert_toll_free_schema_opt_in"
|
10
|
+
require_relative "types/upsert_toll_free_schema_use_case"
|
11
|
+
require_relative "../../types/validate_campaign_params"
|
12
|
+
require_relative "../../types/campaign_validation_result"
|
13
|
+
require "async"
|
14
|
+
|
15
|
+
module Pinnacle
|
16
|
+
module Campaigns
|
17
|
+
class TollFreeClient
|
18
|
+
# @return [Pinnacle::RequestClient]
|
19
|
+
attr_reader :request_client
|
20
|
+
|
21
|
+
# @param request_client [Pinnacle::RequestClient]
|
22
|
+
# @return [Pinnacle::Campaigns::TollFreeClient]
|
23
|
+
def initialize(request_client:)
|
24
|
+
@request_client = request_client
|
25
|
+
end
|
26
|
+
|
27
|
+
# Generate campaign details based off existing campaign and the brand it's
|
28
|
+
# connected to.
|
29
|
+
#
|
30
|
+
# @param request [Hash] Request of type Pinnacle::Types::AutofillCampaignParams, as a Hash
|
31
|
+
# * :additional_info (String)
|
32
|
+
# * :campaign_id (Integer)
|
33
|
+
# @param request_options [Pinnacle::RequestOptions]
|
34
|
+
# @return [Pinnacle::Campaigns::TollFree::Types::TollFreeAutofillResponse]
|
35
|
+
# @example
|
36
|
+
# api = Pinnacle::Client.new(
|
37
|
+
# base_url: "https://api.example.com",
|
38
|
+
# environment: Pinnacle::Environment::DEFAULT,
|
39
|
+
# api_key: "YOUR_API_KEY"
|
40
|
+
# )
|
41
|
+
# api.campaigns.toll_free.autofill(request: { additional_info: "Please autofill missing DLC campaign fields using my brand profile", campaign_id: 161 })
|
42
|
+
def autofill(request:, request_options: nil)
|
43
|
+
response = @request_client.conn.post do |req|
|
44
|
+
req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil?
|
45
|
+
req.headers["PINNACLE-API-KEY"] = request_options.api_key unless request_options&.api_key.nil?
|
46
|
+
req.headers = {
|
47
|
+
**(req.headers || {}),
|
48
|
+
**@request_client.get_headers,
|
49
|
+
**(request_options&.additional_headers || {})
|
50
|
+
}.compact
|
51
|
+
unless request_options.nil? || request_options&.additional_query_parameters.nil?
|
52
|
+
req.params = { **(request_options&.additional_query_parameters || {}) }.compact
|
53
|
+
end
|
54
|
+
req.body = { **(request || {}), **(request_options&.additional_body_parameters || {}) }.compact
|
55
|
+
req.url "#{@request_client.get_url(request_options: request_options)}/campaigns/toll-free/autofill"
|
56
|
+
end
|
57
|
+
Pinnacle::Campaigns::TollFree::Types::TollFreeAutofillResponse.from_json(json_object: response.body)
|
58
|
+
end
|
59
|
+
|
60
|
+
# Retrieve Toll-Free campaign.
|
61
|
+
#
|
62
|
+
# @param campaign_id [Integer] Unique identifier of toll-free campaign.
|
63
|
+
# @param request_options [Pinnacle::RequestOptions]
|
64
|
+
# @return [Pinnacle::Types::TollFreeCampaignWithExtendedBrandAndStatus]
|
65
|
+
# @example
|
66
|
+
# api = Pinnacle::Client.new(
|
67
|
+
# base_url: "https://api.example.com",
|
68
|
+
# environment: Pinnacle::Environment::DEFAULT,
|
69
|
+
# api_key: "YOUR_API_KEY"
|
70
|
+
# )
|
71
|
+
# api.campaigns.toll_free.get(campaign_id: 161)
|
72
|
+
def get(campaign_id:, request_options: nil)
|
73
|
+
response = @request_client.conn.get do |req|
|
74
|
+
req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil?
|
75
|
+
req.headers["PINNACLE-API-KEY"] = request_options.api_key unless request_options&.api_key.nil?
|
76
|
+
req.headers = {
|
77
|
+
**(req.headers || {}),
|
78
|
+
**@request_client.get_headers,
|
79
|
+
**(request_options&.additional_headers || {})
|
80
|
+
}.compact
|
81
|
+
unless request_options.nil? || request_options&.additional_query_parameters.nil?
|
82
|
+
req.params = { **(request_options&.additional_query_parameters || {}) }.compact
|
83
|
+
end
|
84
|
+
unless request_options.nil? || request_options&.additional_body_parameters.nil?
|
85
|
+
req.body = { **(request_options&.additional_body_parameters || {}) }.compact
|
86
|
+
end
|
87
|
+
req.url "#{@request_client.get_url(request_options: request_options)}/campaigns/toll-free/#{campaign_id}"
|
88
|
+
end
|
89
|
+
Pinnacle::Types::TollFreeCampaignWithExtendedBrandAndStatus.from_json(json_object: response.body)
|
90
|
+
end
|
91
|
+
|
92
|
+
# Submit your toll-free campaign for approval and activation with carriers.
|
93
|
+
#
|
94
|
+
# @param campaign_id [Integer] Unique identifier of the toll-free campaign to submit.
|
95
|
+
# @param request_options [Pinnacle::RequestOptions]
|
96
|
+
# @return [Pinnacle::Types::CampaignSubmissionResult]
|
97
|
+
# @example
|
98
|
+
# api = Pinnacle::Client.new(
|
99
|
+
# base_url: "https://api.example.com",
|
100
|
+
# environment: Pinnacle::Environment::DEFAULT,
|
101
|
+
# api_key: "YOUR_API_KEY"
|
102
|
+
# )
|
103
|
+
# api.campaigns.toll_free.submit(campaign_id: 161)
|
104
|
+
def submit(campaign_id:, request_options: nil)
|
105
|
+
response = @request_client.conn.post do |req|
|
106
|
+
req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil?
|
107
|
+
req.headers["PINNACLE-API-KEY"] = request_options.api_key unless request_options&.api_key.nil?
|
108
|
+
req.headers = {
|
109
|
+
**(req.headers || {}),
|
110
|
+
**@request_client.get_headers,
|
111
|
+
**(request_options&.additional_headers || {})
|
112
|
+
}.compact
|
113
|
+
unless request_options.nil? || request_options&.additional_query_parameters.nil?
|
114
|
+
req.params = { **(request_options&.additional_query_parameters || {}) }.compact
|
115
|
+
end
|
116
|
+
unless request_options.nil? || request_options&.additional_body_parameters.nil?
|
117
|
+
req.body = { **(request_options&.additional_body_parameters || {}) }.compact
|
118
|
+
end
|
119
|
+
req.url "#{@request_client.get_url(request_options: request_options)}/campaigns/toll-free/submit/#{campaign_id}"
|
120
|
+
end
|
121
|
+
Pinnacle::Types::CampaignSubmissionResult.from_json(json_object: response.body)
|
122
|
+
end
|
123
|
+
|
124
|
+
# Create a new toll-free campaign or updates an existing one.<br>
|
125
|
+
# Omit campaignId to create a campaign.
|
126
|
+
#
|
127
|
+
# @param brand [Integer] Brand id.
|
128
|
+
# @param campaign_id [Integer] Unique identifier for the campaign.
|
129
|
+
# @param monthly_volume [Pinnacle::Types::MessageVolumeEnum]
|
130
|
+
# @param name [String] Display name of the campaign.
|
131
|
+
# @param opt_in [Hash] Opt-in keyword settings.Request of type Pinnacle::Campaigns::TollFree::Types::UpsertTollFreeSchemaOptIn, as a Hash
|
132
|
+
# * :method (Pinnacle::Types::OptInMethodEnum)
|
133
|
+
# * :url (String)
|
134
|
+
# * :workflow_description (String)
|
135
|
+
# @param production_message_content [String] Explain message that would be sent.
|
136
|
+
# @param use_case [Hash] Use case classification for the campaign.Request of type Pinnacle::Campaigns::TollFree::Types::UpsertTollFreeSchemaUseCase, as a Hash
|
137
|
+
# * :summary (String)
|
138
|
+
# * :value (Pinnacle::Types::TollFreeCampaignUseCaseEnum)
|
139
|
+
# @param request_options [Pinnacle::RequestOptions]
|
140
|
+
# @return [Pinnacle::Types::TollFreeCampaignWithExtendedBrandAndStatus]
|
141
|
+
# @example
|
142
|
+
# api = Pinnacle::Client.new(
|
143
|
+
# base_url: "https://api.example.com",
|
144
|
+
# environment: Pinnacle::Environment::DEFAULT,
|
145
|
+
# api_key: "YOUR_API_KEY"
|
146
|
+
# )
|
147
|
+
# api.campaigns.toll_free.upsert(
|
148
|
+
# brand: 2,
|
149
|
+
# campaign_id: 161,
|
150
|
+
# monthly_volume: ONE_000,
|
151
|
+
# name: "Pinnacle",
|
152
|
+
# opt_in: { method: DIGITAL, url: "https://www.pinnacle.sh/", workflow_description: "Visit https://www.pinnacle.sh/" },
|
153
|
+
# production_message_content: "Join Pinnacle's workshop tomorrow and send your first RCS!",
|
154
|
+
# use_case: { summary: "Alerts clients about any Pinnacle hosted workshops.", value: WORKSHOP_ALERTS }
|
155
|
+
# )
|
156
|
+
def upsert(brand: nil, campaign_id: nil, monthly_volume: nil, name: nil, opt_in: nil,
|
157
|
+
production_message_content: nil, use_case: nil, request_options: nil)
|
158
|
+
response = @request_client.conn.post do |req|
|
159
|
+
req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil?
|
160
|
+
req.headers["PINNACLE-API-KEY"] = request_options.api_key unless request_options&.api_key.nil?
|
161
|
+
req.headers = {
|
162
|
+
**(req.headers || {}),
|
163
|
+
**@request_client.get_headers,
|
164
|
+
**(request_options&.additional_headers || {})
|
165
|
+
}.compact
|
166
|
+
unless request_options.nil? || request_options&.additional_query_parameters.nil?
|
167
|
+
req.params = { **(request_options&.additional_query_parameters || {}) }.compact
|
168
|
+
end
|
169
|
+
req.body = {
|
170
|
+
**(request_options&.additional_body_parameters || {}),
|
171
|
+
brand: brand,
|
172
|
+
campaignId: campaign_id,
|
173
|
+
monthlyVolume: monthly_volume,
|
174
|
+
name: name,
|
175
|
+
optIn: opt_in,
|
176
|
+
productionMessageContent: production_message_content,
|
177
|
+
useCase: use_case
|
178
|
+
}.compact
|
179
|
+
req.url "#{@request_client.get_url(request_options: request_options)}/campaigns/toll-free"
|
180
|
+
end
|
181
|
+
Pinnacle::Types::TollFreeCampaignWithExtendedBrandAndStatus.from_json(json_object: response.body)
|
182
|
+
end
|
183
|
+
|
184
|
+
# Validate your toll-free campaign configuration against carrier requirements and
|
185
|
+
# compliance rules.
|
186
|
+
#
|
187
|
+
# @param request [Hash] Request of type Pinnacle::Types::ValidateCampaignParams, as a Hash
|
188
|
+
# * :additional_info (String)
|
189
|
+
# * :campaign_id (Integer)
|
190
|
+
# @param request_options [Pinnacle::RequestOptions]
|
191
|
+
# @return [Pinnacle::Types::CampaignValidationResult]
|
192
|
+
# @example
|
193
|
+
# api = Pinnacle::Client.new(
|
194
|
+
# base_url: "https://api.example.com",
|
195
|
+
# environment: Pinnacle::Environment::DEFAULT,
|
196
|
+
# api_key: "YOUR_API_KEY"
|
197
|
+
# )
|
198
|
+
# api.campaigns.toll_free.validate(request: { additional_info: "Please validate this DLC campaign for 10DLC compliance", campaign_id: 161 })
|
199
|
+
def validate(request:, request_options: nil)
|
200
|
+
response = @request_client.conn.post do |req|
|
201
|
+
req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil?
|
202
|
+
req.headers["PINNACLE-API-KEY"] = request_options.api_key unless request_options&.api_key.nil?
|
203
|
+
req.headers = {
|
204
|
+
**(req.headers || {}),
|
205
|
+
**@request_client.get_headers,
|
206
|
+
**(request_options&.additional_headers || {})
|
207
|
+
}.compact
|
208
|
+
unless request_options.nil? || request_options&.additional_query_parameters.nil?
|
209
|
+
req.params = { **(request_options&.additional_query_parameters || {}) }.compact
|
210
|
+
end
|
211
|
+
req.body = { **(request || {}), **(request_options&.additional_body_parameters || {}) }.compact
|
212
|
+
req.url "#{@request_client.get_url(request_options: request_options)}/campaigns/toll-free/validate"
|
213
|
+
end
|
214
|
+
Pinnacle::Types::CampaignValidationResult.from_json(json_object: response.body)
|
215
|
+
end
|
216
|
+
end
|
217
|
+
|
218
|
+
class AsyncTollFreeClient
|
219
|
+
# @return [Pinnacle::AsyncRequestClient]
|
220
|
+
attr_reader :request_client
|
221
|
+
|
222
|
+
# @param request_client [Pinnacle::AsyncRequestClient]
|
223
|
+
# @return [Pinnacle::Campaigns::AsyncTollFreeClient]
|
224
|
+
def initialize(request_client:)
|
225
|
+
@request_client = request_client
|
226
|
+
end
|
227
|
+
|
228
|
+
# Generate campaign details based off existing campaign and the brand it's
|
229
|
+
# connected to.
|
230
|
+
#
|
231
|
+
# @param request [Hash] Request of type Pinnacle::Types::AutofillCampaignParams, as a Hash
|
232
|
+
# * :additional_info (String)
|
233
|
+
# * :campaign_id (Integer)
|
234
|
+
# @param request_options [Pinnacle::RequestOptions]
|
235
|
+
# @return [Pinnacle::Campaigns::TollFree::Types::TollFreeAutofillResponse]
|
236
|
+
# @example
|
237
|
+
# api = Pinnacle::Client.new(
|
238
|
+
# base_url: "https://api.example.com",
|
239
|
+
# environment: Pinnacle::Environment::DEFAULT,
|
240
|
+
# api_key: "YOUR_API_KEY"
|
241
|
+
# )
|
242
|
+
# api.campaigns.toll_free.autofill(request: { additional_info: "Please autofill missing DLC campaign fields using my brand profile", campaign_id: 161 })
|
243
|
+
def autofill(request:, request_options: nil)
|
244
|
+
Async do
|
245
|
+
response = @request_client.conn.post do |req|
|
246
|
+
req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil?
|
247
|
+
req.headers["PINNACLE-API-KEY"] = request_options.api_key unless request_options&.api_key.nil?
|
248
|
+
req.headers = {
|
249
|
+
**(req.headers || {}),
|
250
|
+
**@request_client.get_headers,
|
251
|
+
**(request_options&.additional_headers || {})
|
252
|
+
}.compact
|
253
|
+
unless request_options.nil? || request_options&.additional_query_parameters.nil?
|
254
|
+
req.params = { **(request_options&.additional_query_parameters || {}) }.compact
|
255
|
+
end
|
256
|
+
req.body = { **(request || {}), **(request_options&.additional_body_parameters || {}) }.compact
|
257
|
+
req.url "#{@request_client.get_url(request_options: request_options)}/campaigns/toll-free/autofill"
|
258
|
+
end
|
259
|
+
Pinnacle::Campaigns::TollFree::Types::TollFreeAutofillResponse.from_json(json_object: response.body)
|
260
|
+
end
|
261
|
+
end
|
262
|
+
|
263
|
+
# Retrieve Toll-Free campaign.
|
264
|
+
#
|
265
|
+
# @param campaign_id [Integer] Unique identifier of toll-free campaign.
|
266
|
+
# @param request_options [Pinnacle::RequestOptions]
|
267
|
+
# @return [Pinnacle::Types::TollFreeCampaignWithExtendedBrandAndStatus]
|
268
|
+
# @example
|
269
|
+
# api = Pinnacle::Client.new(
|
270
|
+
# base_url: "https://api.example.com",
|
271
|
+
# environment: Pinnacle::Environment::DEFAULT,
|
272
|
+
# api_key: "YOUR_API_KEY"
|
273
|
+
# )
|
274
|
+
# api.campaigns.toll_free.get(campaign_id: 161)
|
275
|
+
def get(campaign_id:, request_options: nil)
|
276
|
+
Async do
|
277
|
+
response = @request_client.conn.get do |req|
|
278
|
+
req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil?
|
279
|
+
req.headers["PINNACLE-API-KEY"] = request_options.api_key unless request_options&.api_key.nil?
|
280
|
+
req.headers = {
|
281
|
+
**(req.headers || {}),
|
282
|
+
**@request_client.get_headers,
|
283
|
+
**(request_options&.additional_headers || {})
|
284
|
+
}.compact
|
285
|
+
unless request_options.nil? || request_options&.additional_query_parameters.nil?
|
286
|
+
req.params = { **(request_options&.additional_query_parameters || {}) }.compact
|
287
|
+
end
|
288
|
+
unless request_options.nil? || request_options&.additional_body_parameters.nil?
|
289
|
+
req.body = { **(request_options&.additional_body_parameters || {}) }.compact
|
290
|
+
end
|
291
|
+
req.url "#{@request_client.get_url(request_options: request_options)}/campaigns/toll-free/#{campaign_id}"
|
292
|
+
end
|
293
|
+
Pinnacle::Types::TollFreeCampaignWithExtendedBrandAndStatus.from_json(json_object: response.body)
|
294
|
+
end
|
295
|
+
end
|
296
|
+
|
297
|
+
# Submit your toll-free campaign for approval and activation with carriers.
|
298
|
+
#
|
299
|
+
# @param campaign_id [Integer] Unique identifier of the toll-free campaign to submit.
|
300
|
+
# @param request_options [Pinnacle::RequestOptions]
|
301
|
+
# @return [Pinnacle::Types::CampaignSubmissionResult]
|
302
|
+
# @example
|
303
|
+
# api = Pinnacle::Client.new(
|
304
|
+
# base_url: "https://api.example.com",
|
305
|
+
# environment: Pinnacle::Environment::DEFAULT,
|
306
|
+
# api_key: "YOUR_API_KEY"
|
307
|
+
# )
|
308
|
+
# api.campaigns.toll_free.submit(campaign_id: 161)
|
309
|
+
def submit(campaign_id:, request_options: nil)
|
310
|
+
Async do
|
311
|
+
response = @request_client.conn.post do |req|
|
312
|
+
req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil?
|
313
|
+
req.headers["PINNACLE-API-KEY"] = request_options.api_key unless request_options&.api_key.nil?
|
314
|
+
req.headers = {
|
315
|
+
**(req.headers || {}),
|
316
|
+
**@request_client.get_headers,
|
317
|
+
**(request_options&.additional_headers || {})
|
318
|
+
}.compact
|
319
|
+
unless request_options.nil? || request_options&.additional_query_parameters.nil?
|
320
|
+
req.params = { **(request_options&.additional_query_parameters || {}) }.compact
|
321
|
+
end
|
322
|
+
unless request_options.nil? || request_options&.additional_body_parameters.nil?
|
323
|
+
req.body = { **(request_options&.additional_body_parameters || {}) }.compact
|
324
|
+
end
|
325
|
+
req.url "#{@request_client.get_url(request_options: request_options)}/campaigns/toll-free/submit/#{campaign_id}"
|
326
|
+
end
|
327
|
+
Pinnacle::Types::CampaignSubmissionResult.from_json(json_object: response.body)
|
328
|
+
end
|
329
|
+
end
|
330
|
+
|
331
|
+
# Create a new toll-free campaign or updates an existing one.<br>
|
332
|
+
# Omit campaignId to create a campaign.
|
333
|
+
#
|
334
|
+
# @param brand [Integer] Brand id.
|
335
|
+
# @param campaign_id [Integer] Unique identifier for the campaign.
|
336
|
+
# @param monthly_volume [Pinnacle::Types::MessageVolumeEnum]
|
337
|
+
# @param name [String] Display name of the campaign.
|
338
|
+
# @param opt_in [Hash] Opt-in keyword settings.Request of type Pinnacle::Campaigns::TollFree::Types::UpsertTollFreeSchemaOptIn, as a Hash
|
339
|
+
# * :method (Pinnacle::Types::OptInMethodEnum)
|
340
|
+
# * :url (String)
|
341
|
+
# * :workflow_description (String)
|
342
|
+
# @param production_message_content [String] Explain message that would be sent.
|
343
|
+
# @param use_case [Hash] Use case classification for the campaign.Request of type Pinnacle::Campaigns::TollFree::Types::UpsertTollFreeSchemaUseCase, as a Hash
|
344
|
+
# * :summary (String)
|
345
|
+
# * :value (Pinnacle::Types::TollFreeCampaignUseCaseEnum)
|
346
|
+
# @param request_options [Pinnacle::RequestOptions]
|
347
|
+
# @return [Pinnacle::Types::TollFreeCampaignWithExtendedBrandAndStatus]
|
348
|
+
# @example
|
349
|
+
# api = Pinnacle::Client.new(
|
350
|
+
# base_url: "https://api.example.com",
|
351
|
+
# environment: Pinnacle::Environment::DEFAULT,
|
352
|
+
# api_key: "YOUR_API_KEY"
|
353
|
+
# )
|
354
|
+
# api.campaigns.toll_free.upsert(
|
355
|
+
# brand: 2,
|
356
|
+
# campaign_id: 161,
|
357
|
+
# monthly_volume: ONE_000,
|
358
|
+
# name: "Pinnacle",
|
359
|
+
# opt_in: { method: DIGITAL, url: "https://www.pinnacle.sh/", workflow_description: "Visit https://www.pinnacle.sh/" },
|
360
|
+
# production_message_content: "Join Pinnacle's workshop tomorrow and send your first RCS!",
|
361
|
+
# use_case: { summary: "Alerts clients about any Pinnacle hosted workshops.", value: WORKSHOP_ALERTS }
|
362
|
+
# )
|
363
|
+
def upsert(brand: nil, campaign_id: nil, monthly_volume: nil, name: nil, opt_in: nil,
|
364
|
+
production_message_content: nil, use_case: nil, request_options: nil)
|
365
|
+
Async do
|
366
|
+
response = @request_client.conn.post do |req|
|
367
|
+
req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil?
|
368
|
+
req.headers["PINNACLE-API-KEY"] = request_options.api_key unless request_options&.api_key.nil?
|
369
|
+
req.headers = {
|
370
|
+
**(req.headers || {}),
|
371
|
+
**@request_client.get_headers,
|
372
|
+
**(request_options&.additional_headers || {})
|
373
|
+
}.compact
|
374
|
+
unless request_options.nil? || request_options&.additional_query_parameters.nil?
|
375
|
+
req.params = { **(request_options&.additional_query_parameters || {}) }.compact
|
376
|
+
end
|
377
|
+
req.body = {
|
378
|
+
**(request_options&.additional_body_parameters || {}),
|
379
|
+
brand: brand,
|
380
|
+
campaignId: campaign_id,
|
381
|
+
monthlyVolume: monthly_volume,
|
382
|
+
name: name,
|
383
|
+
optIn: opt_in,
|
384
|
+
productionMessageContent: production_message_content,
|
385
|
+
useCase: use_case
|
386
|
+
}.compact
|
387
|
+
req.url "#{@request_client.get_url(request_options: request_options)}/campaigns/toll-free"
|
388
|
+
end
|
389
|
+
Pinnacle::Types::TollFreeCampaignWithExtendedBrandAndStatus.from_json(json_object: response.body)
|
390
|
+
end
|
391
|
+
end
|
392
|
+
|
393
|
+
# Validate your toll-free campaign configuration against carrier requirements and
|
394
|
+
# compliance rules.
|
395
|
+
#
|
396
|
+
# @param request [Hash] Request of type Pinnacle::Types::ValidateCampaignParams, as a Hash
|
397
|
+
# * :additional_info (String)
|
398
|
+
# * :campaign_id (Integer)
|
399
|
+
# @param request_options [Pinnacle::RequestOptions]
|
400
|
+
# @return [Pinnacle::Types::CampaignValidationResult]
|
401
|
+
# @example
|
402
|
+
# api = Pinnacle::Client.new(
|
403
|
+
# base_url: "https://api.example.com",
|
404
|
+
# environment: Pinnacle::Environment::DEFAULT,
|
405
|
+
# api_key: "YOUR_API_KEY"
|
406
|
+
# )
|
407
|
+
# api.campaigns.toll_free.validate(request: { additional_info: "Please validate this DLC campaign for 10DLC compliance", campaign_id: 161 })
|
408
|
+
def validate(request:, request_options: nil)
|
409
|
+
Async do
|
410
|
+
response = @request_client.conn.post do |req|
|
411
|
+
req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil?
|
412
|
+
req.headers["PINNACLE-API-KEY"] = request_options.api_key unless request_options&.api_key.nil?
|
413
|
+
req.headers = {
|
414
|
+
**(req.headers || {}),
|
415
|
+
**@request_client.get_headers,
|
416
|
+
**(request_options&.additional_headers || {})
|
417
|
+
}.compact
|
418
|
+
unless request_options.nil? || request_options&.additional_query_parameters.nil?
|
419
|
+
req.params = { **(request_options&.additional_query_parameters || {}) }.compact
|
420
|
+
end
|
421
|
+
req.body = { **(request || {}), **(request_options&.additional_body_parameters || {}) }.compact
|
422
|
+
req.url "#{@request_client.get_url(request_options: request_options)}/campaigns/toll-free/validate"
|
423
|
+
end
|
424
|
+
Pinnacle::Types::CampaignValidationResult.from_json(json_object: response.body)
|
425
|
+
end
|
426
|
+
end
|
427
|
+
end
|
428
|
+
end
|
429
|
+
end
|
@@ -0,0 +1,130 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require_relative "../../../types/message_volume_enum"
|
4
|
+
require_relative "../../../types/toll_free_campaign_schema_opt_in"
|
5
|
+
require_relative "../../../types/toll_free_campaign_schema_use_case"
|
6
|
+
require "ostruct"
|
7
|
+
require "json"
|
8
|
+
|
9
|
+
module Pinnacle
|
10
|
+
module Campaigns
|
11
|
+
module TollFree
|
12
|
+
module Types
|
13
|
+
class TollFreeAutofillResponse
|
14
|
+
# @return [Integer]
|
15
|
+
attr_reader :brand
|
16
|
+
# @return [Integer] Unique identifier for the campaign.
|
17
|
+
attr_reader :campaign_id
|
18
|
+
# @return [Pinnacle::Types::MessageVolumeEnum]
|
19
|
+
attr_reader :monthly_volume
|
20
|
+
# @return [String] Display name of the campaign.
|
21
|
+
attr_reader :name
|
22
|
+
# @return [Pinnacle::Types::TollFreeCampaignSchemaOptIn] Opt-in keyword settings.
|
23
|
+
attr_reader :opt_in
|
24
|
+
# @return [String] Explain message that would be sent.
|
25
|
+
attr_reader :production_message_content
|
26
|
+
# @return [Pinnacle::Types::TollFreeCampaignSchemaUseCase] Use case classification for the campaign.
|
27
|
+
attr_reader :use_case
|
28
|
+
# @return [OpenStruct] Additional properties unmapped to the current class definition
|
29
|
+
attr_reader :additional_properties
|
30
|
+
# @return [Object]
|
31
|
+
attr_reader :_field_set
|
32
|
+
protected :_field_set
|
33
|
+
|
34
|
+
OMIT = Object.new
|
35
|
+
|
36
|
+
# @param brand [Integer]
|
37
|
+
# @param campaign_id [Integer] Unique identifier for the campaign.
|
38
|
+
# @param monthly_volume [Pinnacle::Types::MessageVolumeEnum]
|
39
|
+
# @param name [String] Display name of the campaign.
|
40
|
+
# @param opt_in [Pinnacle::Types::TollFreeCampaignSchemaOptIn] Opt-in keyword settings.
|
41
|
+
# @param production_message_content [String] Explain message that would be sent.
|
42
|
+
# @param use_case [Pinnacle::Types::TollFreeCampaignSchemaUseCase] Use case classification for the campaign.
|
43
|
+
# @param additional_properties [OpenStruct] Additional properties unmapped to the current class definition
|
44
|
+
# @return [Pinnacle::Campaigns::TollFree::Types::TollFreeAutofillResponse]
|
45
|
+
def initialize(brand: OMIT, campaign_id: OMIT, monthly_volume: OMIT, name: OMIT, opt_in: OMIT,
|
46
|
+
production_message_content: OMIT, use_case: OMIT, additional_properties: nil)
|
47
|
+
@brand = brand if brand != OMIT
|
48
|
+
@campaign_id = campaign_id if campaign_id != OMIT
|
49
|
+
@monthly_volume = monthly_volume if monthly_volume != OMIT
|
50
|
+
@name = name if name != OMIT
|
51
|
+
@opt_in = opt_in if opt_in != OMIT
|
52
|
+
@production_message_content = production_message_content if production_message_content != OMIT
|
53
|
+
@use_case = use_case if use_case != OMIT
|
54
|
+
@additional_properties = additional_properties
|
55
|
+
@_field_set = {
|
56
|
+
"brand": brand,
|
57
|
+
"campaignId": campaign_id,
|
58
|
+
"monthlyVolume": monthly_volume,
|
59
|
+
"name": name,
|
60
|
+
"optIn": opt_in,
|
61
|
+
"productionMessageContent": production_message_content,
|
62
|
+
"useCase": use_case
|
63
|
+
}.reject do |_k, v|
|
64
|
+
v == OMIT
|
65
|
+
end
|
66
|
+
end
|
67
|
+
|
68
|
+
# Deserialize a JSON object to an instance of TollFreeAutofillResponse
|
69
|
+
#
|
70
|
+
# @param json_object [String]
|
71
|
+
# @return [Pinnacle::Campaigns::TollFree::Types::TollFreeAutofillResponse]
|
72
|
+
def self.from_json(json_object:)
|
73
|
+
struct = JSON.parse(json_object, object_class: OpenStruct)
|
74
|
+
parsed_json = JSON.parse(json_object)
|
75
|
+
brand = parsed_json["brand"]
|
76
|
+
campaign_id = parsed_json["campaignId"]
|
77
|
+
monthly_volume = parsed_json["monthlyVolume"]
|
78
|
+
name = parsed_json["name"]
|
79
|
+
if parsed_json["optIn"].nil?
|
80
|
+
opt_in = nil
|
81
|
+
else
|
82
|
+
opt_in = parsed_json["optIn"].to_json
|
83
|
+
opt_in = Pinnacle::Types::TollFreeCampaignSchemaOptIn.from_json(json_object: opt_in)
|
84
|
+
end
|
85
|
+
production_message_content = parsed_json["productionMessageContent"]
|
86
|
+
if parsed_json["useCase"].nil?
|
87
|
+
use_case = nil
|
88
|
+
else
|
89
|
+
use_case = parsed_json["useCase"].to_json
|
90
|
+
use_case = Pinnacle::Types::TollFreeCampaignSchemaUseCase.from_json(json_object: use_case)
|
91
|
+
end
|
92
|
+
new(
|
93
|
+
brand: brand,
|
94
|
+
campaign_id: campaign_id,
|
95
|
+
monthly_volume: monthly_volume,
|
96
|
+
name: name,
|
97
|
+
opt_in: opt_in,
|
98
|
+
production_message_content: production_message_content,
|
99
|
+
use_case: use_case,
|
100
|
+
additional_properties: struct
|
101
|
+
)
|
102
|
+
end
|
103
|
+
|
104
|
+
# Serialize an instance of TollFreeAutofillResponse to a JSON object
|
105
|
+
#
|
106
|
+
# @return [String]
|
107
|
+
def to_json(*_args)
|
108
|
+
@_field_set&.to_json
|
109
|
+
end
|
110
|
+
|
111
|
+
# Leveraged for Union-type generation, validate_raw attempts to parse the given
|
112
|
+
# hash and check each fields type against the current object's property
|
113
|
+
# definitions.
|
114
|
+
#
|
115
|
+
# @param obj [Object]
|
116
|
+
# @return [Void]
|
117
|
+
def self.validate_raw(obj:)
|
118
|
+
obj.brand&.is_a?(Integer) != false || raise("Passed value for field obj.brand is not the expected type, validation failed.")
|
119
|
+
obj.campaign_id&.is_a?(Integer) != false || raise("Passed value for field obj.campaign_id is not the expected type, validation failed.")
|
120
|
+
obj.monthly_volume&.is_a?(Pinnacle::Types::MessageVolumeEnum) != false || raise("Passed value for field obj.monthly_volume is not the expected type, validation failed.")
|
121
|
+
obj.name&.is_a?(String) != false || raise("Passed value for field obj.name is not the expected type, validation failed.")
|
122
|
+
obj.opt_in.nil? || Pinnacle::Types::TollFreeCampaignSchemaOptIn.validate_raw(obj: obj.opt_in)
|
123
|
+
obj.production_message_content&.is_a?(String) != false || raise("Passed value for field obj.production_message_content is not the expected type, validation failed.")
|
124
|
+
obj.use_case.nil? || Pinnacle::Types::TollFreeCampaignSchemaUseCase.validate_raw(obj: obj.use_case)
|
125
|
+
end
|
126
|
+
end
|
127
|
+
end
|
128
|
+
end
|
129
|
+
end
|
130
|
+
end
|
@@ -0,0 +1,86 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require_relative "../../../types/opt_in_method_enum"
|
4
|
+
require "ostruct"
|
5
|
+
require "json"
|
6
|
+
|
7
|
+
module Pinnacle
|
8
|
+
module Campaigns
|
9
|
+
module TollFree
|
10
|
+
module Types
|
11
|
+
# Opt-in keyword settings.
|
12
|
+
class UpsertTollFreeSchemaOptIn
|
13
|
+
# @return [Pinnacle::Types::OptInMethodEnum]
|
14
|
+
attr_reader :method
|
15
|
+
# @return [String] Url to opt in.
|
16
|
+
attr_reader :url
|
17
|
+
# @return [String] Explain how users find the opt-in.
|
18
|
+
attr_reader :workflow_description
|
19
|
+
# @return [OpenStruct] Additional properties unmapped to the current class definition
|
20
|
+
attr_reader :additional_properties
|
21
|
+
# @return [Object]
|
22
|
+
attr_reader :_field_set
|
23
|
+
protected :_field_set
|
24
|
+
|
25
|
+
OMIT = Object.new
|
26
|
+
|
27
|
+
# @param method [Pinnacle::Types::OptInMethodEnum]
|
28
|
+
# @param url [String] Url to opt in.
|
29
|
+
# @param workflow_description [String] Explain how users find the opt-in.
|
30
|
+
# @param additional_properties [OpenStruct] Additional properties unmapped to the current class definition
|
31
|
+
# @return [Pinnacle::Campaigns::TollFree::Types::UpsertTollFreeSchemaOptIn]
|
32
|
+
def initialize(method: OMIT, url: OMIT, workflow_description: OMIT, additional_properties: nil)
|
33
|
+
@method = method if method != OMIT
|
34
|
+
@url = url if url != OMIT
|
35
|
+
@workflow_description = workflow_description if workflow_description != OMIT
|
36
|
+
@additional_properties = additional_properties
|
37
|
+
@_field_set = {
|
38
|
+
"method": method,
|
39
|
+
"url": url,
|
40
|
+
"workflowDescription": workflow_description
|
41
|
+
}.reject do |_k, v|
|
42
|
+
v == OMIT
|
43
|
+
end
|
44
|
+
end
|
45
|
+
|
46
|
+
# Deserialize a JSON object to an instance of UpsertTollFreeSchemaOptIn
|
47
|
+
#
|
48
|
+
# @param json_object [String]
|
49
|
+
# @return [Pinnacle::Campaigns::TollFree::Types::UpsertTollFreeSchemaOptIn]
|
50
|
+
def self.from_json(json_object:)
|
51
|
+
struct = JSON.parse(json_object, object_class: OpenStruct)
|
52
|
+
parsed_json = JSON.parse(json_object)
|
53
|
+
method = parsed_json["method"]
|
54
|
+
url = parsed_json["url"]
|
55
|
+
workflow_description = parsed_json["workflowDescription"]
|
56
|
+
new(
|
57
|
+
method: method,
|
58
|
+
url: url,
|
59
|
+
workflow_description: workflow_description,
|
60
|
+
additional_properties: struct
|
61
|
+
)
|
62
|
+
end
|
63
|
+
|
64
|
+
# Serialize an instance of UpsertTollFreeSchemaOptIn to a JSON object
|
65
|
+
#
|
66
|
+
# @return [String]
|
67
|
+
def to_json(*_args)
|
68
|
+
@_field_set&.to_json
|
69
|
+
end
|
70
|
+
|
71
|
+
# Leveraged for Union-type generation, validate_raw attempts to parse the given
|
72
|
+
# hash and check each fields type against the current object's property
|
73
|
+
# definitions.
|
74
|
+
#
|
75
|
+
# @param obj [Object]
|
76
|
+
# @return [Void]
|
77
|
+
def self.validate_raw(obj:)
|
78
|
+
obj.method&.is_a?(Pinnacle::Types::OptInMethodEnum) != false || raise("Passed value for field obj.method is not the expected type, validation failed.")
|
79
|
+
obj.url&.is_a?(String) != false || raise("Passed value for field obj.url is not the expected type, validation failed.")
|
80
|
+
obj.workflow_description&.is_a?(String) != false || raise("Passed value for field obj.workflow_description is not the expected type, validation failed.")
|
81
|
+
end
|
82
|
+
end
|
83
|
+
end
|
84
|
+
end
|
85
|
+
end
|
86
|
+
end
|