rcs 1.0.18 → 2.0.0.pre.rc.2
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 +192 -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 +359 -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,61 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require "ostruct"
|
4
|
+
require "json"
|
5
|
+
|
6
|
+
module Pinnacle
|
7
|
+
module Brands
|
8
|
+
module Types
|
9
|
+
class AutofillBrandSchemaOptions
|
10
|
+
# @return [Boolean] Set to true to bypass cached data and fetch fresh information.
|
11
|
+
attr_reader :force_reload
|
12
|
+
# @return [OpenStruct] Additional properties unmapped to the current class definition
|
13
|
+
attr_reader :additional_properties
|
14
|
+
# @return [Object]
|
15
|
+
attr_reader :_field_set
|
16
|
+
protected :_field_set
|
17
|
+
|
18
|
+
OMIT = Object.new
|
19
|
+
|
20
|
+
# @param force_reload [Boolean] Set to true to bypass cached data and fetch fresh information.
|
21
|
+
# @param additional_properties [OpenStruct] Additional properties unmapped to the current class definition
|
22
|
+
# @return [Pinnacle::Brands::Types::AutofillBrandSchemaOptions]
|
23
|
+
def initialize(force_reload: OMIT, additional_properties: nil)
|
24
|
+
@force_reload = force_reload if force_reload != OMIT
|
25
|
+
@additional_properties = additional_properties
|
26
|
+
@_field_set = { "forceReload": force_reload }.reject do |_k, v|
|
27
|
+
v == OMIT
|
28
|
+
end
|
29
|
+
end
|
30
|
+
|
31
|
+
# Deserialize a JSON object to an instance of AutofillBrandSchemaOptions
|
32
|
+
#
|
33
|
+
# @param json_object [String]
|
34
|
+
# @return [Pinnacle::Brands::Types::AutofillBrandSchemaOptions]
|
35
|
+
def self.from_json(json_object:)
|
36
|
+
struct = JSON.parse(json_object, object_class: OpenStruct)
|
37
|
+
parsed_json = JSON.parse(json_object)
|
38
|
+
force_reload = parsed_json["forceReload"]
|
39
|
+
new(force_reload: force_reload, additional_properties: struct)
|
40
|
+
end
|
41
|
+
|
42
|
+
# Serialize an instance of AutofillBrandSchemaOptions to a JSON object
|
43
|
+
#
|
44
|
+
# @return [String]
|
45
|
+
def to_json(*_args)
|
46
|
+
@_field_set&.to_json
|
47
|
+
end
|
48
|
+
|
49
|
+
# Leveraged for Union-type generation, validate_raw attempts to parse the given
|
50
|
+
# hash and check each fields type against the current object's property
|
51
|
+
# definitions.
|
52
|
+
#
|
53
|
+
# @param obj [Object]
|
54
|
+
# @return [Void]
|
55
|
+
def self.validate_raw(obj:)
|
56
|
+
obj.force_reload&.is_a?(Boolean) != false || raise("Passed value for field obj.force_reload is not the expected type, validation failed.")
|
57
|
+
end
|
58
|
+
end
|
59
|
+
end
|
60
|
+
end
|
61
|
+
end
|
@@ -0,0 +1,84 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require "ostruct"
|
4
|
+
require "json"
|
5
|
+
|
6
|
+
module Pinnacle
|
7
|
+
module Brands
|
8
|
+
module Types
|
9
|
+
# Contact information for the primary brand representative.
|
10
|
+
class BrandContact
|
11
|
+
# @return [String] Email address of the contact person.
|
12
|
+
attr_reader :email
|
13
|
+
# @return [String] Full name of the contact person.
|
14
|
+
attr_reader :name
|
15
|
+
# @return [String] Phone number of the contact person in E.164 format.
|
16
|
+
attr_reader :phone
|
17
|
+
# @return [String] Job title or position of the contact person.
|
18
|
+
attr_reader :title
|
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 email [String] Email address of the contact person.
|
28
|
+
# @param name [String] Full name of the contact person.
|
29
|
+
# @param phone [String] Phone number of the contact person in E.164 format.
|
30
|
+
# @param title [String] Job title or position of the contact person.
|
31
|
+
# @param additional_properties [OpenStruct] Additional properties unmapped to the current class definition
|
32
|
+
# @return [Pinnacle::Brands::Types::BrandContact]
|
33
|
+
def initialize(email:, name:, phone:, title:, additional_properties: nil)
|
34
|
+
@email = email
|
35
|
+
@name = name
|
36
|
+
@phone = phone
|
37
|
+
@title = title
|
38
|
+
@additional_properties = additional_properties
|
39
|
+
@_field_set = { "email": email, "name": name, "phone": phone, "title": title }
|
40
|
+
end
|
41
|
+
|
42
|
+
# Deserialize a JSON object to an instance of BrandContact
|
43
|
+
#
|
44
|
+
# @param json_object [String]
|
45
|
+
# @return [Pinnacle::Brands::Types::BrandContact]
|
46
|
+
def self.from_json(json_object:)
|
47
|
+
struct = JSON.parse(json_object, object_class: OpenStruct)
|
48
|
+
parsed_json = JSON.parse(json_object)
|
49
|
+
email = parsed_json["email"]
|
50
|
+
name = parsed_json["name"]
|
51
|
+
phone = parsed_json["phone"]
|
52
|
+
title = parsed_json["title"]
|
53
|
+
new(
|
54
|
+
email: email,
|
55
|
+
name: name,
|
56
|
+
phone: phone,
|
57
|
+
title: title,
|
58
|
+
additional_properties: struct
|
59
|
+
)
|
60
|
+
end
|
61
|
+
|
62
|
+
# Serialize an instance of BrandContact to a JSON object
|
63
|
+
#
|
64
|
+
# @return [String]
|
65
|
+
def to_json(*_args)
|
66
|
+
@_field_set&.to_json
|
67
|
+
end
|
68
|
+
|
69
|
+
# Leveraged for Union-type generation, validate_raw attempts to parse the given
|
70
|
+
# hash and check each fields type against the current object's property
|
71
|
+
# definitions.
|
72
|
+
#
|
73
|
+
# @param obj [Object]
|
74
|
+
# @return [Void]
|
75
|
+
def self.validate_raw(obj:)
|
76
|
+
obj.email.is_a?(String) != false || raise("Passed value for field obj.email is not the expected type, validation failed.")
|
77
|
+
obj.name.is_a?(String) != false || raise("Passed value for field obj.name is not the expected type, validation failed.")
|
78
|
+
obj.phone.is_a?(String) != false || raise("Passed value for field obj.phone is not the expected type, validation failed.")
|
79
|
+
obj.title.is_a?(String) != false || raise("Passed value for field obj.title is not the expected type, validation failed.")
|
80
|
+
end
|
81
|
+
end
|
82
|
+
end
|
83
|
+
end
|
84
|
+
end
|
@@ -0,0 +1,44 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require_relative "../../requests"
|
4
|
+
require_relative "dlc/client"
|
5
|
+
require_relative "toll_free/client"
|
6
|
+
require_relative "rcs/client"
|
7
|
+
|
8
|
+
module Pinnacle
|
9
|
+
module Campaigns
|
10
|
+
class Client
|
11
|
+
# @return [Pinnacle::Campaigns::DlcClient]
|
12
|
+
attr_reader :dlc
|
13
|
+
# @return [Pinnacle::Campaigns::TollFreeClient]
|
14
|
+
attr_reader :toll_free
|
15
|
+
# @return [Pinnacle::Campaigns::RcsClient]
|
16
|
+
attr_reader :rcs
|
17
|
+
|
18
|
+
# @param request_client [Pinnacle::RequestClient]
|
19
|
+
# @return [Pinnacle::Campaigns::Client]
|
20
|
+
def initialize(request_client:)
|
21
|
+
@dlc = Pinnacle::Campaigns::DlcClient.new(request_client: request_client)
|
22
|
+
@toll_free = Pinnacle::Campaigns::TollFreeClient.new(request_client: request_client)
|
23
|
+
@rcs = Pinnacle::Campaigns::RcsClient.new(request_client: request_client)
|
24
|
+
end
|
25
|
+
end
|
26
|
+
|
27
|
+
class AsyncClient
|
28
|
+
# @return [Pinnacle::Campaigns::AsyncDlcClient]
|
29
|
+
attr_reader :dlc
|
30
|
+
# @return [Pinnacle::Campaigns::AsyncTollFreeClient]
|
31
|
+
attr_reader :toll_free
|
32
|
+
# @return [Pinnacle::Campaigns::AsyncRcsClient]
|
33
|
+
attr_reader :rcs
|
34
|
+
|
35
|
+
# @param request_client [Pinnacle::AsyncRequestClient]
|
36
|
+
# @return [Pinnacle::Campaigns::AsyncClient]
|
37
|
+
def initialize(request_client:)
|
38
|
+
@dlc = Pinnacle::Campaigns::AsyncDlcClient.new(request_client: request_client)
|
39
|
+
@toll_free = Pinnacle::Campaigns::AsyncTollFreeClient.new(request_client: request_client)
|
40
|
+
@rcs = Pinnacle::Campaigns::AsyncRcsClient.new(request_client: request_client)
|
41
|
+
end
|
42
|
+
end
|
43
|
+
end
|
44
|
+
end
|
@@ -0,0 +1,480 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require_relative "../../../requests"
|
4
|
+
require_relative "../../types/autofill_campaign_params"
|
5
|
+
require_relative "../../types/autofill_dlc_campaign_response"
|
6
|
+
require_relative "../../types/dlc_campaign_with_extended_brand_and_status"
|
7
|
+
require_relative "../../types/campaign_submission_result"
|
8
|
+
require_relative "types/upsert_dlc_schema_keywords"
|
9
|
+
require_relative "types/upsert_dlc_schema_links"
|
10
|
+
require_relative "types/upsert_dlc_schema_options"
|
11
|
+
require_relative "types/upsert_dlc_schema_use_case"
|
12
|
+
require_relative "../../types/validate_campaign_params"
|
13
|
+
require_relative "../../types/campaign_validation_result"
|
14
|
+
require "async"
|
15
|
+
|
16
|
+
module Pinnacle
|
17
|
+
module Campaigns
|
18
|
+
class DlcClient
|
19
|
+
# @return [Pinnacle::RequestClient]
|
20
|
+
attr_reader :request_client
|
21
|
+
|
22
|
+
# @param request_client [Pinnacle::RequestClient]
|
23
|
+
# @return [Pinnacle::Campaigns::DlcClient]
|
24
|
+
def initialize(request_client:)
|
25
|
+
@request_client = request_client
|
26
|
+
end
|
27
|
+
|
28
|
+
# Generate campaign details based off existing campaign and the brand it's
|
29
|
+
# connected to.
|
30
|
+
#
|
31
|
+
# @param request [Hash] Request of type Pinnacle::Types::AutofillCampaignParams, as a Hash
|
32
|
+
# * :additional_info (String)
|
33
|
+
# * :campaign_id (Integer)
|
34
|
+
# @param request_options [Pinnacle::RequestOptions]
|
35
|
+
# @return [Pinnacle::Types::AutofillDlcCampaignResponse]
|
36
|
+
# @example
|
37
|
+
# api = Pinnacle::Client.new(
|
38
|
+
# base_url: "https://api.example.com",
|
39
|
+
# environment: Pinnacle::Environment::DEFAULT,
|
40
|
+
# api_key: "YOUR_API_KEY"
|
41
|
+
# )
|
42
|
+
# api.campaigns.dlc.autofill(request: { additional_info: "Please autofill missing DLC campaign fields using my brand profile", campaign_id: 161 })
|
43
|
+
def autofill(request:, request_options: nil)
|
44
|
+
response = @request_client.conn.post do |req|
|
45
|
+
req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil?
|
46
|
+
req.headers["PINNACLE-API-KEY"] = request_options.api_key unless request_options&.api_key.nil?
|
47
|
+
req.headers = {
|
48
|
+
**(req.headers || {}),
|
49
|
+
**@request_client.get_headers,
|
50
|
+
**(request_options&.additional_headers || {})
|
51
|
+
}.compact
|
52
|
+
unless request_options.nil? || request_options&.additional_query_parameters.nil?
|
53
|
+
req.params = { **(request_options&.additional_query_parameters || {}) }.compact
|
54
|
+
end
|
55
|
+
req.body = { **(request || {}), **(request_options&.additional_body_parameters || {}) }.compact
|
56
|
+
req.url "#{@request_client.get_url(request_options: request_options)}/campaigns/dlc/autofill"
|
57
|
+
end
|
58
|
+
Pinnacle::Types::AutofillDlcCampaignResponse.from_json(json_object: response.body)
|
59
|
+
end
|
60
|
+
|
61
|
+
# Retrieve DLC campaign.
|
62
|
+
#
|
63
|
+
# @param campaign_id [Integer] Unique identifier of the DLC campaign.
|
64
|
+
# @param request_options [Pinnacle::RequestOptions]
|
65
|
+
# @return [Pinnacle::Types::DlcCampaignWithExtendedBrandAndStatus]
|
66
|
+
# @example
|
67
|
+
# api = Pinnacle::Client.new(
|
68
|
+
# base_url: "https://api.example.com",
|
69
|
+
# environment: Pinnacle::Environment::DEFAULT,
|
70
|
+
# api_key: "YOUR_API_KEY"
|
71
|
+
# )
|
72
|
+
# api.campaigns.dlc.get(campaign_id: 28)
|
73
|
+
def get(campaign_id:, request_options: nil)
|
74
|
+
response = @request_client.conn.get do |req|
|
75
|
+
req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil?
|
76
|
+
req.headers["PINNACLE-API-KEY"] = request_options.api_key unless request_options&.api_key.nil?
|
77
|
+
req.headers = {
|
78
|
+
**(req.headers || {}),
|
79
|
+
**@request_client.get_headers,
|
80
|
+
**(request_options&.additional_headers || {})
|
81
|
+
}.compact
|
82
|
+
unless request_options.nil? || request_options&.additional_query_parameters.nil?
|
83
|
+
req.params = { **(request_options&.additional_query_parameters || {}) }.compact
|
84
|
+
end
|
85
|
+
unless request_options.nil? || request_options&.additional_body_parameters.nil?
|
86
|
+
req.body = { **(request_options&.additional_body_parameters || {}) }.compact
|
87
|
+
end
|
88
|
+
req.url "#{@request_client.get_url(request_options: request_options)}/campaigns/dlc/#{campaign_id}"
|
89
|
+
end
|
90
|
+
Pinnacle::Types::DlcCampaignWithExtendedBrandAndStatus.from_json(json_object: response.body)
|
91
|
+
end
|
92
|
+
|
93
|
+
# Submit your DLC campaign for approval and activation with carriers.
|
94
|
+
#
|
95
|
+
# @param campaign_id [Integer] Unique identifier of the DLC campaign to submit.
|
96
|
+
# @param request_options [Pinnacle::RequestOptions]
|
97
|
+
# @return [Pinnacle::Types::CampaignSubmissionResult]
|
98
|
+
# @example
|
99
|
+
# api = Pinnacle::Client.new(
|
100
|
+
# base_url: "https://api.example.com",
|
101
|
+
# environment: Pinnacle::Environment::DEFAULT,
|
102
|
+
# api_key: "YOUR_API_KEY"
|
103
|
+
# )
|
104
|
+
# api.campaigns.dlc.submit(campaign_id: 161)
|
105
|
+
def submit(campaign_id:, request_options: nil)
|
106
|
+
response = @request_client.conn.post do |req|
|
107
|
+
req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil?
|
108
|
+
req.headers["PINNACLE-API-KEY"] = request_options.api_key unless request_options&.api_key.nil?
|
109
|
+
req.headers = {
|
110
|
+
**(req.headers || {}),
|
111
|
+
**@request_client.get_headers,
|
112
|
+
**(request_options&.additional_headers || {})
|
113
|
+
}.compact
|
114
|
+
unless request_options.nil? || request_options&.additional_query_parameters.nil?
|
115
|
+
req.params = { **(request_options&.additional_query_parameters || {}) }.compact
|
116
|
+
end
|
117
|
+
unless request_options.nil? || request_options&.additional_body_parameters.nil?
|
118
|
+
req.body = { **(request_options&.additional_body_parameters || {}) }.compact
|
119
|
+
end
|
120
|
+
req.url "#{@request_client.get_url(request_options: request_options)}/campaigns/dlc/submit/#{campaign_id}"
|
121
|
+
end
|
122
|
+
Pinnacle::Types::CampaignSubmissionResult.from_json(json_object: response.body)
|
123
|
+
end
|
124
|
+
|
125
|
+
# Create a new DLC campaign or updates an existing one. <br>
|
126
|
+
# Omit campaignId to create a campaign.
|
127
|
+
#
|
128
|
+
# @param auto_renew [Boolean] Whether the campaign renews automatically.
|
129
|
+
# @param brand [Integer] Brand id.
|
130
|
+
# @param campaign_id [Integer] Unique identifier for the campaign.
|
131
|
+
# @param description [String] Description of the campaign.
|
132
|
+
# @param keywords [Hash] Keyword response configuration.Request of type Pinnacle::Campaigns::Dlc::Types::UpsertDlcSchemaKeywords, as a Hash
|
133
|
+
# * :help (Hash)
|
134
|
+
# * :message (String)
|
135
|
+
# * :values (Array<String>)
|
136
|
+
# * :opt_in (Hash)
|
137
|
+
# * :message (String)
|
138
|
+
# * :values (Array<String>)
|
139
|
+
# * :opt_out (Hash)
|
140
|
+
# * :message (String)
|
141
|
+
# * :values (Array<String>)
|
142
|
+
# @param links [Hash] Legal documentation links.Request of type Pinnacle::Campaigns::Dlc::Types::UpsertDlcSchemaLinks, as a Hash
|
143
|
+
# * :privacy_policy (String)
|
144
|
+
# * :terms_of_service (String)
|
145
|
+
# @param message_flow [String] Describe the flow of how users will opt in to this campaign.
|
146
|
+
# @param name [String] Display name of the campaign.
|
147
|
+
# @param options [Hash] Campaign configuration options.Request of type Pinnacle::Campaigns::Dlc::Types::UpsertDlcSchemaOptions, as a Hash
|
148
|
+
# * :affiliate_marketing (Boolean)
|
149
|
+
# * :age_gated (Boolean)
|
150
|
+
# * :direct_lending (Boolean)
|
151
|
+
# * :embedded_link (String)
|
152
|
+
# * :embedded_phone (Boolean)
|
153
|
+
# * :number_pooling (Boolean)
|
154
|
+
# @param sample_messages [Array<String>] Example messages for the campaign.
|
155
|
+
# @param use_case [Hash] Use case for the campaign.Request of type Pinnacle::Campaigns::Dlc::Types::UpsertDlcSchemaUseCase, as a Hash
|
156
|
+
# * :sub (Array<Pinnacle::Types::SubUseCaseEnum>)
|
157
|
+
# * :value (Pinnacle::Types::DlcCampaignUseCaseEnum)
|
158
|
+
# @param request_options [Pinnacle::RequestOptions]
|
159
|
+
# @return [Pinnacle::Types::DlcCampaignWithExtendedBrandAndStatus]
|
160
|
+
# @example
|
161
|
+
# api = Pinnacle::Client.new(
|
162
|
+
# base_url: "https://api.example.com",
|
163
|
+
# environment: Pinnacle::Environment::DEFAULT,
|
164
|
+
# api_key: "YOUR_API_KEY"
|
165
|
+
# )
|
166
|
+
# api.campaigns.dlc.upsert(
|
167
|
+
# auto_renew: true,
|
168
|
+
# brand: 1,
|
169
|
+
# campaign_id: 161,
|
170
|
+
# keywords: { help: { message: "Reply HELP for assistance, STOP to opt-out", values: ["HELP", "INFO", "SUPPORT"] }, opt_in: { message: "Welcome! You're now subscribed to Pinnacle.", values: ["JOIN", "START", "SUBSCRIBE"] }, opt_out: { message: "You've been unsubscribed. Reply START to rejoin.", values: ["STOP", "QUIT", "UNSUBSCRIBE"] } },
|
171
|
+
# links: { privacy_policy: "https://www.pinnacle.sh/privacy", terms_of_service: "https://www.pinnacle.sh/terms" },
|
172
|
+
# message_flow: "Customer initiates -> Automated response -> Agent follow-up if needed",
|
173
|
+
# name: "Account Notifications",
|
174
|
+
# options: { affiliate_marketing: false, age_gated: false, direct_lending: false, embedded_link: "https://www.pinnacle.sh/example", embedded_phone: false, number_pooling: false },
|
175
|
+
# sample_messages: ["Security alert: Unusual login detected from new device."],
|
176
|
+
# use_case: { sub: [FRAUD_ALERT], value: ACCOUNT_NOTIFICATION }
|
177
|
+
# )
|
178
|
+
def upsert(auto_renew: nil, brand: nil, campaign_id: nil, description: nil, keywords: nil, links: nil,
|
179
|
+
message_flow: nil, name: nil, options: nil, sample_messages: nil, use_case: nil, request_options: nil)
|
180
|
+
response = @request_client.conn.post do |req|
|
181
|
+
req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil?
|
182
|
+
req.headers["PINNACLE-API-KEY"] = request_options.api_key unless request_options&.api_key.nil?
|
183
|
+
req.headers = {
|
184
|
+
**(req.headers || {}),
|
185
|
+
**@request_client.get_headers,
|
186
|
+
**(request_options&.additional_headers || {})
|
187
|
+
}.compact
|
188
|
+
unless request_options.nil? || request_options&.additional_query_parameters.nil?
|
189
|
+
req.params = { **(request_options&.additional_query_parameters || {}) }.compact
|
190
|
+
end
|
191
|
+
req.body = {
|
192
|
+
**(request_options&.additional_body_parameters || {}),
|
193
|
+
autoRenew: auto_renew,
|
194
|
+
brand: brand,
|
195
|
+
campaignId: campaign_id,
|
196
|
+
description: description,
|
197
|
+
keywords: keywords,
|
198
|
+
links: links,
|
199
|
+
messageFlow: message_flow,
|
200
|
+
name: name,
|
201
|
+
options: options,
|
202
|
+
sampleMessages: sample_messages,
|
203
|
+
useCase: use_case
|
204
|
+
}.compact
|
205
|
+
req.url "#{@request_client.get_url(request_options: request_options)}/campaigns/dlc"
|
206
|
+
end
|
207
|
+
Pinnacle::Types::DlcCampaignWithExtendedBrandAndStatus.from_json(json_object: response.body)
|
208
|
+
end
|
209
|
+
|
210
|
+
# Validate your DLC campaign configuration against carrier requirements and
|
211
|
+
# compliance rules.
|
212
|
+
#
|
213
|
+
# @param request [Hash] Request of type Pinnacle::Types::ValidateCampaignParams, as a Hash
|
214
|
+
# * :additional_info (String)
|
215
|
+
# * :campaign_id (Integer)
|
216
|
+
# @param request_options [Pinnacle::RequestOptions]
|
217
|
+
# @return [Pinnacle::Types::CampaignValidationResult]
|
218
|
+
# @example
|
219
|
+
# api = Pinnacle::Client.new(
|
220
|
+
# base_url: "https://api.example.com",
|
221
|
+
# environment: Pinnacle::Environment::DEFAULT,
|
222
|
+
# api_key: "YOUR_API_KEY"
|
223
|
+
# )
|
224
|
+
# api.campaigns.dlc.validate(request: { additional_info: "Please validate this DLC campaign for 10DLC compliance", campaign_id: 161 })
|
225
|
+
def validate(request:, request_options: nil)
|
226
|
+
response = @request_client.conn.post do |req|
|
227
|
+
req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil?
|
228
|
+
req.headers["PINNACLE-API-KEY"] = request_options.api_key unless request_options&.api_key.nil?
|
229
|
+
req.headers = {
|
230
|
+
**(req.headers || {}),
|
231
|
+
**@request_client.get_headers,
|
232
|
+
**(request_options&.additional_headers || {})
|
233
|
+
}.compact
|
234
|
+
unless request_options.nil? || request_options&.additional_query_parameters.nil?
|
235
|
+
req.params = { **(request_options&.additional_query_parameters || {}) }.compact
|
236
|
+
end
|
237
|
+
req.body = { **(request || {}), **(request_options&.additional_body_parameters || {}) }.compact
|
238
|
+
req.url "#{@request_client.get_url(request_options: request_options)}/campaigns/dlc/validate"
|
239
|
+
end
|
240
|
+
Pinnacle::Types::CampaignValidationResult.from_json(json_object: response.body)
|
241
|
+
end
|
242
|
+
end
|
243
|
+
|
244
|
+
class AsyncDlcClient
|
245
|
+
# @return [Pinnacle::AsyncRequestClient]
|
246
|
+
attr_reader :request_client
|
247
|
+
|
248
|
+
# @param request_client [Pinnacle::AsyncRequestClient]
|
249
|
+
# @return [Pinnacle::Campaigns::AsyncDlcClient]
|
250
|
+
def initialize(request_client:)
|
251
|
+
@request_client = request_client
|
252
|
+
end
|
253
|
+
|
254
|
+
# Generate campaign details based off existing campaign and the brand it's
|
255
|
+
# connected to.
|
256
|
+
#
|
257
|
+
# @param request [Hash] Request of type Pinnacle::Types::AutofillCampaignParams, as a Hash
|
258
|
+
# * :additional_info (String)
|
259
|
+
# * :campaign_id (Integer)
|
260
|
+
# @param request_options [Pinnacle::RequestOptions]
|
261
|
+
# @return [Pinnacle::Types::AutofillDlcCampaignResponse]
|
262
|
+
# @example
|
263
|
+
# api = Pinnacle::Client.new(
|
264
|
+
# base_url: "https://api.example.com",
|
265
|
+
# environment: Pinnacle::Environment::DEFAULT,
|
266
|
+
# api_key: "YOUR_API_KEY"
|
267
|
+
# )
|
268
|
+
# api.campaigns.dlc.autofill(request: { additional_info: "Please autofill missing DLC campaign fields using my brand profile", campaign_id: 161 })
|
269
|
+
def autofill(request:, request_options: nil)
|
270
|
+
Async do
|
271
|
+
response = @request_client.conn.post do |req|
|
272
|
+
req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil?
|
273
|
+
req.headers["PINNACLE-API-KEY"] = request_options.api_key unless request_options&.api_key.nil?
|
274
|
+
req.headers = {
|
275
|
+
**(req.headers || {}),
|
276
|
+
**@request_client.get_headers,
|
277
|
+
**(request_options&.additional_headers || {})
|
278
|
+
}.compact
|
279
|
+
unless request_options.nil? || request_options&.additional_query_parameters.nil?
|
280
|
+
req.params = { **(request_options&.additional_query_parameters || {}) }.compact
|
281
|
+
end
|
282
|
+
req.body = { **(request || {}), **(request_options&.additional_body_parameters || {}) }.compact
|
283
|
+
req.url "#{@request_client.get_url(request_options: request_options)}/campaigns/dlc/autofill"
|
284
|
+
end
|
285
|
+
Pinnacle::Types::AutofillDlcCampaignResponse.from_json(json_object: response.body)
|
286
|
+
end
|
287
|
+
end
|
288
|
+
|
289
|
+
# Retrieve DLC campaign.
|
290
|
+
#
|
291
|
+
# @param campaign_id [Integer] Unique identifier of the DLC campaign.
|
292
|
+
# @param request_options [Pinnacle::RequestOptions]
|
293
|
+
# @return [Pinnacle::Types::DlcCampaignWithExtendedBrandAndStatus]
|
294
|
+
# @example
|
295
|
+
# api = Pinnacle::Client.new(
|
296
|
+
# base_url: "https://api.example.com",
|
297
|
+
# environment: Pinnacle::Environment::DEFAULT,
|
298
|
+
# api_key: "YOUR_API_KEY"
|
299
|
+
# )
|
300
|
+
# api.campaigns.dlc.get(campaign_id: 28)
|
301
|
+
def get(campaign_id:, request_options: nil)
|
302
|
+
Async do
|
303
|
+
response = @request_client.conn.get do |req|
|
304
|
+
req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil?
|
305
|
+
req.headers["PINNACLE-API-KEY"] = request_options.api_key unless request_options&.api_key.nil?
|
306
|
+
req.headers = {
|
307
|
+
**(req.headers || {}),
|
308
|
+
**@request_client.get_headers,
|
309
|
+
**(request_options&.additional_headers || {})
|
310
|
+
}.compact
|
311
|
+
unless request_options.nil? || request_options&.additional_query_parameters.nil?
|
312
|
+
req.params = { **(request_options&.additional_query_parameters || {}) }.compact
|
313
|
+
end
|
314
|
+
unless request_options.nil? || request_options&.additional_body_parameters.nil?
|
315
|
+
req.body = { **(request_options&.additional_body_parameters || {}) }.compact
|
316
|
+
end
|
317
|
+
req.url "#{@request_client.get_url(request_options: request_options)}/campaigns/dlc/#{campaign_id}"
|
318
|
+
end
|
319
|
+
Pinnacle::Types::DlcCampaignWithExtendedBrandAndStatus.from_json(json_object: response.body)
|
320
|
+
end
|
321
|
+
end
|
322
|
+
|
323
|
+
# Submit your DLC campaign for approval and activation with carriers.
|
324
|
+
#
|
325
|
+
# @param campaign_id [Integer] Unique identifier of the DLC campaign to submit.
|
326
|
+
# @param request_options [Pinnacle::RequestOptions]
|
327
|
+
# @return [Pinnacle::Types::CampaignSubmissionResult]
|
328
|
+
# @example
|
329
|
+
# api = Pinnacle::Client.new(
|
330
|
+
# base_url: "https://api.example.com",
|
331
|
+
# environment: Pinnacle::Environment::DEFAULT,
|
332
|
+
# api_key: "YOUR_API_KEY"
|
333
|
+
# )
|
334
|
+
# api.campaigns.dlc.submit(campaign_id: 161)
|
335
|
+
def submit(campaign_id:, request_options: nil)
|
336
|
+
Async do
|
337
|
+
response = @request_client.conn.post do |req|
|
338
|
+
req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil?
|
339
|
+
req.headers["PINNACLE-API-KEY"] = request_options.api_key unless request_options&.api_key.nil?
|
340
|
+
req.headers = {
|
341
|
+
**(req.headers || {}),
|
342
|
+
**@request_client.get_headers,
|
343
|
+
**(request_options&.additional_headers || {})
|
344
|
+
}.compact
|
345
|
+
unless request_options.nil? || request_options&.additional_query_parameters.nil?
|
346
|
+
req.params = { **(request_options&.additional_query_parameters || {}) }.compact
|
347
|
+
end
|
348
|
+
unless request_options.nil? || request_options&.additional_body_parameters.nil?
|
349
|
+
req.body = { **(request_options&.additional_body_parameters || {}) }.compact
|
350
|
+
end
|
351
|
+
req.url "#{@request_client.get_url(request_options: request_options)}/campaigns/dlc/submit/#{campaign_id}"
|
352
|
+
end
|
353
|
+
Pinnacle::Types::CampaignSubmissionResult.from_json(json_object: response.body)
|
354
|
+
end
|
355
|
+
end
|
356
|
+
|
357
|
+
# Create a new DLC campaign or updates an existing one. <br>
|
358
|
+
# Omit campaignId to create a campaign.
|
359
|
+
#
|
360
|
+
# @param auto_renew [Boolean] Whether the campaign renews automatically.
|
361
|
+
# @param brand [Integer] Brand id.
|
362
|
+
# @param campaign_id [Integer] Unique identifier for the campaign.
|
363
|
+
# @param description [String] Description of the campaign.
|
364
|
+
# @param keywords [Hash] Keyword response configuration.Request of type Pinnacle::Campaigns::Dlc::Types::UpsertDlcSchemaKeywords, as a Hash
|
365
|
+
# * :help (Hash)
|
366
|
+
# * :message (String)
|
367
|
+
# * :values (Array<String>)
|
368
|
+
# * :opt_in (Hash)
|
369
|
+
# * :message (String)
|
370
|
+
# * :values (Array<String>)
|
371
|
+
# * :opt_out (Hash)
|
372
|
+
# * :message (String)
|
373
|
+
# * :values (Array<String>)
|
374
|
+
# @param links [Hash] Legal documentation links.Request of type Pinnacle::Campaigns::Dlc::Types::UpsertDlcSchemaLinks, as a Hash
|
375
|
+
# * :privacy_policy (String)
|
376
|
+
# * :terms_of_service (String)
|
377
|
+
# @param message_flow [String] Describe the flow of how users will opt in to this campaign.
|
378
|
+
# @param name [String] Display name of the campaign.
|
379
|
+
# @param options [Hash] Campaign configuration options.Request of type Pinnacle::Campaigns::Dlc::Types::UpsertDlcSchemaOptions, as a Hash
|
380
|
+
# * :affiliate_marketing (Boolean)
|
381
|
+
# * :age_gated (Boolean)
|
382
|
+
# * :direct_lending (Boolean)
|
383
|
+
# * :embedded_link (String)
|
384
|
+
# * :embedded_phone (Boolean)
|
385
|
+
# * :number_pooling (Boolean)
|
386
|
+
# @param sample_messages [Array<String>] Example messages for the campaign.
|
387
|
+
# @param use_case [Hash] Use case for the campaign.Request of type Pinnacle::Campaigns::Dlc::Types::UpsertDlcSchemaUseCase, as a Hash
|
388
|
+
# * :sub (Array<Pinnacle::Types::SubUseCaseEnum>)
|
389
|
+
# * :value (Pinnacle::Types::DlcCampaignUseCaseEnum)
|
390
|
+
# @param request_options [Pinnacle::RequestOptions]
|
391
|
+
# @return [Pinnacle::Types::DlcCampaignWithExtendedBrandAndStatus]
|
392
|
+
# @example
|
393
|
+
# api = Pinnacle::Client.new(
|
394
|
+
# base_url: "https://api.example.com",
|
395
|
+
# environment: Pinnacle::Environment::DEFAULT,
|
396
|
+
# api_key: "YOUR_API_KEY"
|
397
|
+
# )
|
398
|
+
# api.campaigns.dlc.upsert(
|
399
|
+
# auto_renew: true,
|
400
|
+
# brand: 1,
|
401
|
+
# campaign_id: 161,
|
402
|
+
# keywords: { help: { message: "Reply HELP for assistance, STOP to opt-out", values: ["HELP", "INFO", "SUPPORT"] }, opt_in: { message: "Welcome! You're now subscribed to Pinnacle.", values: ["JOIN", "START", "SUBSCRIBE"] }, opt_out: { message: "You've been unsubscribed. Reply START to rejoin.", values: ["STOP", "QUIT", "UNSUBSCRIBE"] } },
|
403
|
+
# links: { privacy_policy: "https://www.pinnacle.sh/privacy", terms_of_service: "https://www.pinnacle.sh/terms" },
|
404
|
+
# message_flow: "Customer initiates -> Automated response -> Agent follow-up if needed",
|
405
|
+
# name: "Account Notifications",
|
406
|
+
# options: { affiliate_marketing: false, age_gated: false, direct_lending: false, embedded_link: "https://www.pinnacle.sh/example", embedded_phone: false, number_pooling: false },
|
407
|
+
# sample_messages: ["Security alert: Unusual login detected from new device."],
|
408
|
+
# use_case: { sub: [FRAUD_ALERT], value: ACCOUNT_NOTIFICATION }
|
409
|
+
# )
|
410
|
+
def upsert(auto_renew: nil, brand: nil, campaign_id: nil, description: nil, keywords: nil, links: nil,
|
411
|
+
message_flow: nil, name: nil, options: nil, sample_messages: nil, use_case: nil, request_options: nil)
|
412
|
+
Async do
|
413
|
+
response = @request_client.conn.post do |req|
|
414
|
+
req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil?
|
415
|
+
req.headers["PINNACLE-API-KEY"] = request_options.api_key unless request_options&.api_key.nil?
|
416
|
+
req.headers = {
|
417
|
+
**(req.headers || {}),
|
418
|
+
**@request_client.get_headers,
|
419
|
+
**(request_options&.additional_headers || {})
|
420
|
+
}.compact
|
421
|
+
unless request_options.nil? || request_options&.additional_query_parameters.nil?
|
422
|
+
req.params = { **(request_options&.additional_query_parameters || {}) }.compact
|
423
|
+
end
|
424
|
+
req.body = {
|
425
|
+
**(request_options&.additional_body_parameters || {}),
|
426
|
+
autoRenew: auto_renew,
|
427
|
+
brand: brand,
|
428
|
+
campaignId: campaign_id,
|
429
|
+
description: description,
|
430
|
+
keywords: keywords,
|
431
|
+
links: links,
|
432
|
+
messageFlow: message_flow,
|
433
|
+
name: name,
|
434
|
+
options: options,
|
435
|
+
sampleMessages: sample_messages,
|
436
|
+
useCase: use_case
|
437
|
+
}.compact
|
438
|
+
req.url "#{@request_client.get_url(request_options: request_options)}/campaigns/dlc"
|
439
|
+
end
|
440
|
+
Pinnacle::Types::DlcCampaignWithExtendedBrandAndStatus.from_json(json_object: response.body)
|
441
|
+
end
|
442
|
+
end
|
443
|
+
|
444
|
+
# Validate your DLC campaign configuration against carrier requirements and
|
445
|
+
# compliance rules.
|
446
|
+
#
|
447
|
+
# @param request [Hash] Request of type Pinnacle::Types::ValidateCampaignParams, as a Hash
|
448
|
+
# * :additional_info (String)
|
449
|
+
# * :campaign_id (Integer)
|
450
|
+
# @param request_options [Pinnacle::RequestOptions]
|
451
|
+
# @return [Pinnacle::Types::CampaignValidationResult]
|
452
|
+
# @example
|
453
|
+
# api = Pinnacle::Client.new(
|
454
|
+
# base_url: "https://api.example.com",
|
455
|
+
# environment: Pinnacle::Environment::DEFAULT,
|
456
|
+
# api_key: "YOUR_API_KEY"
|
457
|
+
# )
|
458
|
+
# api.campaigns.dlc.validate(request: { additional_info: "Please validate this DLC campaign for 10DLC compliance", campaign_id: 161 })
|
459
|
+
def validate(request:, request_options: nil)
|
460
|
+
Async do
|
461
|
+
response = @request_client.conn.post do |req|
|
462
|
+
req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil?
|
463
|
+
req.headers["PINNACLE-API-KEY"] = request_options.api_key unless request_options&.api_key.nil?
|
464
|
+
req.headers = {
|
465
|
+
**(req.headers || {}),
|
466
|
+
**@request_client.get_headers,
|
467
|
+
**(request_options&.additional_headers || {})
|
468
|
+
}.compact
|
469
|
+
unless request_options.nil? || request_options&.additional_query_parameters.nil?
|
470
|
+
req.params = { **(request_options&.additional_query_parameters || {}) }.compact
|
471
|
+
end
|
472
|
+
req.body = { **(request || {}), **(request_options&.additional_body_parameters || {}) }.compact
|
473
|
+
req.url "#{@request_client.get_url(request_options: request_options)}/campaigns/dlc/validate"
|
474
|
+
end
|
475
|
+
Pinnacle::Types::CampaignValidationResult.from_json(json_object: response.body)
|
476
|
+
end
|
477
|
+
end
|
478
|
+
end
|
479
|
+
end
|
480
|
+
end
|