rcs 1.0.18 → 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,318 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require_relative "../../../requests"
|
4
|
+
require_relative "types/send_sms_schema_options"
|
5
|
+
require_relative "types/send_sms_response"
|
6
|
+
require_relative "types/send_mms_schema_options"
|
7
|
+
require_relative "types/send_mms_response"
|
8
|
+
require_relative "../../types/rcs"
|
9
|
+
require_relative "types/send_rcs_response"
|
10
|
+
require "async"
|
11
|
+
|
12
|
+
module Pinnacle
|
13
|
+
module Messages
|
14
|
+
class SendClient
|
15
|
+
# @return [Pinnacle::RequestClient]
|
16
|
+
attr_reader :request_client
|
17
|
+
|
18
|
+
# @param request_client [Pinnacle::RequestClient]
|
19
|
+
# @return [Pinnacle::Messages::SendClient]
|
20
|
+
def initialize(request_client:)
|
21
|
+
@request_client = request_client
|
22
|
+
end
|
23
|
+
|
24
|
+
# Send a SMS message immediately or schedule it for future delivery.
|
25
|
+
#
|
26
|
+
# @param from [String] Phone number that sends the message in E.164 format.
|
27
|
+
# @param options [Hash] Additional settings to customize SMS delivery.Request of type Pinnacle::Messages::Send::Types::SendSmsSchemaOptions, as a Hash
|
28
|
+
# * :schedule (Hash)
|
29
|
+
# * :end_date (DateTime)
|
30
|
+
# * :recurrence (String)
|
31
|
+
# * :send_at (String)
|
32
|
+
# * :timezone (String)
|
33
|
+
# * :tracking (Pinnacle::Types::Tracking)
|
34
|
+
# @param text [String] Message content.
|
35
|
+
# @param to [String] Recipient's phone number in E.164 format.
|
36
|
+
# @param request_options [Pinnacle::RequestOptions]
|
37
|
+
# @return [Pinnacle::Types::SentSmsDetails, Pinnacle::Types::ScheduledMessaage]
|
38
|
+
# @example
|
39
|
+
# api = Pinnacle::Client.new(
|
40
|
+
# base_url: "https://api.example.com",
|
41
|
+
# environment: Pinnacle::Environment::DEFAULT,
|
42
|
+
# api_key: "YOUR_API_KEY"
|
43
|
+
# )
|
44
|
+
# api.messages.send.sms(
|
45
|
+
# from: "+14155164736",
|
46
|
+
# text: "Hey! 😂",
|
47
|
+
# to: "+14154746461"
|
48
|
+
# )
|
49
|
+
def sms(from:, text:, to:, options: nil, request_options: nil)
|
50
|
+
response = @request_client.conn.post do |req|
|
51
|
+
req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil?
|
52
|
+
req.headers["PINNACLE-API-KEY"] = request_options.api_key unless request_options&.api_key.nil?
|
53
|
+
req.headers = {
|
54
|
+
**(req.headers || {}),
|
55
|
+
**@request_client.get_headers,
|
56
|
+
**(request_options&.additional_headers || {})
|
57
|
+
}.compact
|
58
|
+
unless request_options.nil? || request_options&.additional_query_parameters.nil?
|
59
|
+
req.params = { **(request_options&.additional_query_parameters || {}) }.compact
|
60
|
+
end
|
61
|
+
req.body = {
|
62
|
+
**(request_options&.additional_body_parameters || {}),
|
63
|
+
from: from,
|
64
|
+
options: options,
|
65
|
+
text: text,
|
66
|
+
to: to
|
67
|
+
}.compact
|
68
|
+
req.url "#{@request_client.get_url(request_options: request_options)}/messages/send/sms"
|
69
|
+
end
|
70
|
+
Pinnacle::Messages::Send::Types::SendSmsResponse.from_json(json_object: response.body)
|
71
|
+
end
|
72
|
+
|
73
|
+
# Send a MMS immediately or schedule it for future delivery.
|
74
|
+
#
|
75
|
+
# @param from [String] Phone number you want to send the message from in E.164 format.
|
76
|
+
# @param media_urls [Array<String>] Media file URLs to send.<br>
|
77
|
+
# See [supported media
|
78
|
+
# types](https://app.pinnacle.sh/supported-file-types?type=MMS).
|
79
|
+
# @param options [Hash] Control how your MMS is processed and delivered.Request of type Pinnacle::Messages::Send::Types::SendMmsSchemaOptions, as a Hash
|
80
|
+
# * :multiple_messages (Boolean)
|
81
|
+
# * :schedule (Hash)
|
82
|
+
# * :end_date (DateTime)
|
83
|
+
# * :recurrence (String)
|
84
|
+
# * :send_at (String)
|
85
|
+
# * :timezone (String)
|
86
|
+
# * :tracking (Pinnacle::Types::Tracking)
|
87
|
+
# * :validate (Boolean)
|
88
|
+
# @param text [String] Message text to accompany the media.
|
89
|
+
# @param to [String] Recipient's phone number in E.164 format.
|
90
|
+
# @param request_options [Pinnacle::RequestOptions]
|
91
|
+
# @return [Pinnacle::Types::SentMmsDetails, Pinnacle::Types::ScheduledMessaage]
|
92
|
+
# @example
|
93
|
+
# api = Pinnacle::Client.new(
|
94
|
+
# base_url: "https://api.example.com",
|
95
|
+
# environment: Pinnacle::Environment::DEFAULT,
|
96
|
+
# api_key: "YOUR_API_KEY"
|
97
|
+
# )
|
98
|
+
# api.messages.send.mms(
|
99
|
+
# from: "+14155164736",
|
100
|
+
# media_urls: ["https://fastly.picsum.photos/id/941/300/300.jpg?hmac=mDxM9PWSqRDjecwSCEpzU4bj35gqnG7yA25OL29uNv0"],
|
101
|
+
# options: { multiple_messages: true, validate: true },
|
102
|
+
# text: "Check out this image!",
|
103
|
+
# to: "+14154746461"
|
104
|
+
# )
|
105
|
+
def mms(from:, media_urls:, text:, to:, options: nil, 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
|
+
req.body = {
|
118
|
+
**(request_options&.additional_body_parameters || {}),
|
119
|
+
from: from,
|
120
|
+
mediaUrls: media_urls,
|
121
|
+
options: options,
|
122
|
+
text: text,
|
123
|
+
to: to
|
124
|
+
}.compact
|
125
|
+
req.url "#{@request_client.get_url(request_options: request_options)}/messages/send/mms"
|
126
|
+
end
|
127
|
+
Pinnacle::Messages::Send::Types::SendMmsResponse.from_json(json_object: response.body)
|
128
|
+
end
|
129
|
+
|
130
|
+
# Send a RCS message immediately or schedule it for future delivery. <br>
|
131
|
+
# Requires an active RCS agent and recipient devices that support RCS Business
|
132
|
+
# Messaging.
|
133
|
+
#
|
134
|
+
# @param request [Pinnacle::Types::RcsText, Pinnacle::Types::RcsMedia, Pinnacle::Types::RcsCard]
|
135
|
+
# @param request_options [Pinnacle::RequestOptions]
|
136
|
+
# @return [Pinnacle::Types::SentRcsDetails, Pinnacle::Types::ScheduledMessaage]
|
137
|
+
# @example
|
138
|
+
# api = Pinnacle::Client.new(
|
139
|
+
# base_url: "https://api.example.com",
|
140
|
+
# environment: Pinnacle::Environment::DEFAULT,
|
141
|
+
# api_key: "YOUR_API_KEY"
|
142
|
+
# )
|
143
|
+
# api.messages.send.rcs(request: { quick_replies: , text: "text", from: "from", to: "to" })
|
144
|
+
def rcs(request:, request_options: nil)
|
145
|
+
response = @request_client.conn.post do |req|
|
146
|
+
req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil?
|
147
|
+
req.headers["PINNACLE-API-KEY"] = request_options.api_key unless request_options&.api_key.nil?
|
148
|
+
req.headers = {
|
149
|
+
**(req.headers || {}),
|
150
|
+
**@request_client.get_headers,
|
151
|
+
**(request_options&.additional_headers || {})
|
152
|
+
}.compact
|
153
|
+
unless request_options.nil? || request_options&.additional_query_parameters.nil?
|
154
|
+
req.params = { **(request_options&.additional_query_parameters || {}) }.compact
|
155
|
+
end
|
156
|
+
req.body = { **(request || {}), **(request_options&.additional_body_parameters || {}) }.compact
|
157
|
+
req.url "#{@request_client.get_url(request_options: request_options)}/messages/send/rcs"
|
158
|
+
end
|
159
|
+
Pinnacle::Messages::Send::Types::SendRcsResponse.from_json(json_object: response.body)
|
160
|
+
end
|
161
|
+
end
|
162
|
+
|
163
|
+
class AsyncSendClient
|
164
|
+
# @return [Pinnacle::AsyncRequestClient]
|
165
|
+
attr_reader :request_client
|
166
|
+
|
167
|
+
# @param request_client [Pinnacle::AsyncRequestClient]
|
168
|
+
# @return [Pinnacle::Messages::AsyncSendClient]
|
169
|
+
def initialize(request_client:)
|
170
|
+
@request_client = request_client
|
171
|
+
end
|
172
|
+
|
173
|
+
# Send a SMS message immediately or schedule it for future delivery.
|
174
|
+
#
|
175
|
+
# @param from [String] Phone number that sends the message in E.164 format.
|
176
|
+
# @param options [Hash] Additional settings to customize SMS delivery.Request of type Pinnacle::Messages::Send::Types::SendSmsSchemaOptions, as a Hash
|
177
|
+
# * :schedule (Hash)
|
178
|
+
# * :end_date (DateTime)
|
179
|
+
# * :recurrence (String)
|
180
|
+
# * :send_at (String)
|
181
|
+
# * :timezone (String)
|
182
|
+
# * :tracking (Pinnacle::Types::Tracking)
|
183
|
+
# @param text [String] Message content.
|
184
|
+
# @param to [String] Recipient's phone number in E.164 format.
|
185
|
+
# @param request_options [Pinnacle::RequestOptions]
|
186
|
+
# @return [Pinnacle::Types::SentSmsDetails, Pinnacle::Types::ScheduledMessaage]
|
187
|
+
# @example
|
188
|
+
# api = Pinnacle::Client.new(
|
189
|
+
# base_url: "https://api.example.com",
|
190
|
+
# environment: Pinnacle::Environment::DEFAULT,
|
191
|
+
# api_key: "YOUR_API_KEY"
|
192
|
+
# )
|
193
|
+
# api.messages.send.sms(
|
194
|
+
# from: "+14155164736",
|
195
|
+
# text: "Hey! 😂",
|
196
|
+
# to: "+14154746461"
|
197
|
+
# )
|
198
|
+
def sms(from:, text:, to:, options: nil, request_options: nil)
|
199
|
+
Async do
|
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 = {
|
212
|
+
**(request_options&.additional_body_parameters || {}),
|
213
|
+
from: from,
|
214
|
+
options: options,
|
215
|
+
text: text,
|
216
|
+
to: to
|
217
|
+
}.compact
|
218
|
+
req.url "#{@request_client.get_url(request_options: request_options)}/messages/send/sms"
|
219
|
+
end
|
220
|
+
Pinnacle::Messages::Send::Types::SendSmsResponse.from_json(json_object: response.body)
|
221
|
+
end
|
222
|
+
end
|
223
|
+
|
224
|
+
# Send a MMS immediately or schedule it for future delivery.
|
225
|
+
#
|
226
|
+
# @param from [String] Phone number you want to send the message from in E.164 format.
|
227
|
+
# @param media_urls [Array<String>] Media file URLs to send.<br>
|
228
|
+
# See [supported media
|
229
|
+
# types](https://app.pinnacle.sh/supported-file-types?type=MMS).
|
230
|
+
# @param options [Hash] Control how your MMS is processed and delivered.Request of type Pinnacle::Messages::Send::Types::SendMmsSchemaOptions, as a Hash
|
231
|
+
# * :multiple_messages (Boolean)
|
232
|
+
# * :schedule (Hash)
|
233
|
+
# * :end_date (DateTime)
|
234
|
+
# * :recurrence (String)
|
235
|
+
# * :send_at (String)
|
236
|
+
# * :timezone (String)
|
237
|
+
# * :tracking (Pinnacle::Types::Tracking)
|
238
|
+
# * :validate (Boolean)
|
239
|
+
# @param text [String] Message text to accompany the media.
|
240
|
+
# @param to [String] Recipient's phone number in E.164 format.
|
241
|
+
# @param request_options [Pinnacle::RequestOptions]
|
242
|
+
# @return [Pinnacle::Types::SentMmsDetails, Pinnacle::Types::ScheduledMessaage]
|
243
|
+
# @example
|
244
|
+
# api = Pinnacle::Client.new(
|
245
|
+
# base_url: "https://api.example.com",
|
246
|
+
# environment: Pinnacle::Environment::DEFAULT,
|
247
|
+
# api_key: "YOUR_API_KEY"
|
248
|
+
# )
|
249
|
+
# api.messages.send.mms(
|
250
|
+
# from: "+14155164736",
|
251
|
+
# media_urls: ["https://fastly.picsum.photos/id/941/300/300.jpg?hmac=mDxM9PWSqRDjecwSCEpzU4bj35gqnG7yA25OL29uNv0"],
|
252
|
+
# options: { multiple_messages: true, validate: true },
|
253
|
+
# text: "Check out this image!",
|
254
|
+
# to: "+14154746461"
|
255
|
+
# )
|
256
|
+
def mms(from:, media_urls:, text:, to:, options: nil, request_options: nil)
|
257
|
+
Async do
|
258
|
+
response = @request_client.conn.post do |req|
|
259
|
+
req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil?
|
260
|
+
req.headers["PINNACLE-API-KEY"] = request_options.api_key unless request_options&.api_key.nil?
|
261
|
+
req.headers = {
|
262
|
+
**(req.headers || {}),
|
263
|
+
**@request_client.get_headers,
|
264
|
+
**(request_options&.additional_headers || {})
|
265
|
+
}.compact
|
266
|
+
unless request_options.nil? || request_options&.additional_query_parameters.nil?
|
267
|
+
req.params = { **(request_options&.additional_query_parameters || {}) }.compact
|
268
|
+
end
|
269
|
+
req.body = {
|
270
|
+
**(request_options&.additional_body_parameters || {}),
|
271
|
+
from: from,
|
272
|
+
mediaUrls: media_urls,
|
273
|
+
options: options,
|
274
|
+
text: text,
|
275
|
+
to: to
|
276
|
+
}.compact
|
277
|
+
req.url "#{@request_client.get_url(request_options: request_options)}/messages/send/mms"
|
278
|
+
end
|
279
|
+
Pinnacle::Messages::Send::Types::SendMmsResponse.from_json(json_object: response.body)
|
280
|
+
end
|
281
|
+
end
|
282
|
+
|
283
|
+
# Send a RCS message immediately or schedule it for future delivery. <br>
|
284
|
+
# Requires an active RCS agent and recipient devices that support RCS Business
|
285
|
+
# Messaging.
|
286
|
+
#
|
287
|
+
# @param request [Pinnacle::Types::RcsText, Pinnacle::Types::RcsMedia, Pinnacle::Types::RcsCard]
|
288
|
+
# @param request_options [Pinnacle::RequestOptions]
|
289
|
+
# @return [Pinnacle::Types::SentRcsDetails, Pinnacle::Types::ScheduledMessaage]
|
290
|
+
# @example
|
291
|
+
# api = Pinnacle::Client.new(
|
292
|
+
# base_url: "https://api.example.com",
|
293
|
+
# environment: Pinnacle::Environment::DEFAULT,
|
294
|
+
# api_key: "YOUR_API_KEY"
|
295
|
+
# )
|
296
|
+
# api.messages.send.rcs(request: { quick_replies: , text: "text", from: "from", to: "to" })
|
297
|
+
def rcs(request:, request_options: nil)
|
298
|
+
Async do
|
299
|
+
response = @request_client.conn.post do |req|
|
300
|
+
req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil?
|
301
|
+
req.headers["PINNACLE-API-KEY"] = request_options.api_key unless request_options&.api_key.nil?
|
302
|
+
req.headers = {
|
303
|
+
**(req.headers || {}),
|
304
|
+
**@request_client.get_headers,
|
305
|
+
**(request_options&.additional_headers || {})
|
306
|
+
}.compact
|
307
|
+
unless request_options.nil? || request_options&.additional_query_parameters.nil?
|
308
|
+
req.params = { **(request_options&.additional_query_parameters || {}) }.compact
|
309
|
+
end
|
310
|
+
req.body = { **(request || {}), **(request_options&.additional_body_parameters || {}) }.compact
|
311
|
+
req.url "#{@request_client.get_url(request_options: request_options)}/messages/send/rcs"
|
312
|
+
end
|
313
|
+
Pinnacle::Messages::Send::Types::SendRcsResponse.from_json(json_object: response.body)
|
314
|
+
end
|
315
|
+
end
|
316
|
+
end
|
317
|
+
end
|
318
|
+
end
|
@@ -0,0 +1,60 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require "json"
|
4
|
+
require_relative "../../../types/sent_mms_details"
|
5
|
+
require_relative "../../../types/scheduled_messaage"
|
6
|
+
|
7
|
+
module Pinnacle
|
8
|
+
module Messages
|
9
|
+
module Send
|
10
|
+
module Types
|
11
|
+
class SendMmsResponse
|
12
|
+
# Deserialize a JSON object to an instance of SendMmsResponse
|
13
|
+
#
|
14
|
+
# @param json_object [String]
|
15
|
+
# @return [Pinnacle::Messages::Send::Types::SendMmsResponse]
|
16
|
+
def self.from_json(json_object:)
|
17
|
+
struct = JSON.parse(json_object, object_class: OpenStruct)
|
18
|
+
begin
|
19
|
+
Pinnacle::Types::SentMmsDetails.validate_raw(obj: struct)
|
20
|
+
return Pinnacle::Types::SentMmsDetails.from_json(json_object: struct) unless struct.nil?
|
21
|
+
|
22
|
+
return nil
|
23
|
+
rescue StandardError
|
24
|
+
# noop
|
25
|
+
end
|
26
|
+
begin
|
27
|
+
Pinnacle::Types::ScheduledMessaage.validate_raw(obj: struct)
|
28
|
+
return Pinnacle::Types::ScheduledMessaage.from_json(json_object: struct) unless struct.nil?
|
29
|
+
|
30
|
+
return nil
|
31
|
+
rescue StandardError
|
32
|
+
# noop
|
33
|
+
end
|
34
|
+
struct
|
35
|
+
end
|
36
|
+
|
37
|
+
# Leveraged for Union-type generation, validate_raw attempts to parse the given
|
38
|
+
# hash and check each fields type against the current object's property
|
39
|
+
# definitions.
|
40
|
+
#
|
41
|
+
# @param obj [Object]
|
42
|
+
# @return [Void]
|
43
|
+
def self.validate_raw(obj:)
|
44
|
+
begin
|
45
|
+
return Pinnacle::Types::SentMmsDetails.validate_raw(obj: obj)
|
46
|
+
rescue StandardError
|
47
|
+
# noop
|
48
|
+
end
|
49
|
+
begin
|
50
|
+
return Pinnacle::Types::ScheduledMessaage.validate_raw(obj: obj)
|
51
|
+
rescue StandardError
|
52
|
+
# noop
|
53
|
+
end
|
54
|
+
raise("Passed value matched no type within the union, validation failed.")
|
55
|
+
end
|
56
|
+
end
|
57
|
+
end
|
58
|
+
end
|
59
|
+
end
|
60
|
+
end
|
@@ -0,0 +1,108 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require_relative "../../../types/message_schedule"
|
4
|
+
require_relative "../../../types/tracking"
|
5
|
+
require "ostruct"
|
6
|
+
require "json"
|
7
|
+
|
8
|
+
module Pinnacle
|
9
|
+
module Messages
|
10
|
+
module Send
|
11
|
+
module Types
|
12
|
+
# Control how your MMS is processed and delivered.
|
13
|
+
class SendMmsSchemaOptions
|
14
|
+
# @return [Boolean] Allow splitting large content into multiple MMS messages if size limits are
|
15
|
+
# exceeded. <br>
|
16
|
+
# If `false`, MMS over the limit will throw an error and won't be sent.
|
17
|
+
attr_reader :multiple_messages
|
18
|
+
# @return [Pinnacle::Types::MessageSchedule]
|
19
|
+
attr_reader :schedule
|
20
|
+
# @return [Pinnacle::Types::Tracking]
|
21
|
+
attr_reader :tracking
|
22
|
+
# @return [Boolean] Set to true to check this message and throw an error when validation fails. <br>
|
23
|
+
# If errors occur, the message is not sent. Otherwise message is sent after
|
24
|
+
# validation.
|
25
|
+
attr_reader :validate
|
26
|
+
# @return [OpenStruct] Additional properties unmapped to the current class definition
|
27
|
+
attr_reader :additional_properties
|
28
|
+
# @return [Object]
|
29
|
+
attr_reader :_field_set
|
30
|
+
protected :_field_set
|
31
|
+
|
32
|
+
OMIT = Object.new
|
33
|
+
|
34
|
+
# @param multiple_messages [Boolean] Allow splitting large content into multiple MMS messages if size limits are
|
35
|
+
# exceeded. <br>
|
36
|
+
# If `false`, MMS over the limit will throw an error and won't be sent.
|
37
|
+
# @param schedule [Pinnacle::Types::MessageSchedule]
|
38
|
+
# @param tracking [Pinnacle::Types::Tracking]
|
39
|
+
# @param validate [Boolean] Set to true to check this message and throw an error when validation fails. <br>
|
40
|
+
# If errors occur, the message is not sent. Otherwise message is sent after
|
41
|
+
# validation.
|
42
|
+
# @param additional_properties [OpenStruct] Additional properties unmapped to the current class definition
|
43
|
+
# @return [Pinnacle::Messages::Send::Types::SendMmsSchemaOptions]
|
44
|
+
def initialize(multiple_messages:, validate:, schedule: OMIT, tracking: OMIT, additional_properties: nil)
|
45
|
+
@multiple_messages = multiple_messages
|
46
|
+
@schedule = schedule if schedule != OMIT
|
47
|
+
@tracking = tracking if tracking != OMIT
|
48
|
+
@validate = validate
|
49
|
+
@additional_properties = additional_properties
|
50
|
+
@_field_set = {
|
51
|
+
"multiple_messages": multiple_messages,
|
52
|
+
"schedule": schedule,
|
53
|
+
"tracking": tracking,
|
54
|
+
"validate": validate
|
55
|
+
}.reject do |_k, v|
|
56
|
+
v == OMIT
|
57
|
+
end
|
58
|
+
end
|
59
|
+
|
60
|
+
# Deserialize a JSON object to an instance of SendMmsSchemaOptions
|
61
|
+
#
|
62
|
+
# @param json_object [String]
|
63
|
+
# @return [Pinnacle::Messages::Send::Types::SendMmsSchemaOptions]
|
64
|
+
def self.from_json(json_object:)
|
65
|
+
struct = JSON.parse(json_object, object_class: OpenStruct)
|
66
|
+
parsed_json = JSON.parse(json_object)
|
67
|
+
multiple_messages = parsed_json["multiple_messages"]
|
68
|
+
if parsed_json["schedule"].nil?
|
69
|
+
schedule = nil
|
70
|
+
else
|
71
|
+
schedule = parsed_json["schedule"].to_json
|
72
|
+
schedule = Pinnacle::Types::MessageSchedule.from_json(json_object: schedule)
|
73
|
+
end
|
74
|
+
tracking = parsed_json["tracking"]
|
75
|
+
validate = parsed_json["validate"]
|
76
|
+
new(
|
77
|
+
multiple_messages: multiple_messages,
|
78
|
+
schedule: schedule,
|
79
|
+
tracking: tracking,
|
80
|
+
validate: validate,
|
81
|
+
additional_properties: struct
|
82
|
+
)
|
83
|
+
end
|
84
|
+
|
85
|
+
# Serialize an instance of SendMmsSchemaOptions to a JSON object
|
86
|
+
#
|
87
|
+
# @return [String]
|
88
|
+
def to_json(*_args)
|
89
|
+
@_field_set&.to_json
|
90
|
+
end
|
91
|
+
|
92
|
+
# Leveraged for Union-type generation, validate_raw attempts to parse the given
|
93
|
+
# hash and check each fields type against the current object's property
|
94
|
+
# definitions.
|
95
|
+
#
|
96
|
+
# @param obj [Object]
|
97
|
+
# @return [Void]
|
98
|
+
def self.validate_raw(obj:)
|
99
|
+
obj.multiple_messages.is_a?(Boolean) != false || raise("Passed value for field obj.multiple_messages is not the expected type, validation failed.")
|
100
|
+
obj.schedule.nil? || Pinnacle::Types::MessageSchedule.validate_raw(obj: obj.schedule)
|
101
|
+
obj.tracking&.is_a?(Pinnacle::Types::Tracking) != false || raise("Passed value for field obj.tracking is not the expected type, validation failed.")
|
102
|
+
obj.validate.is_a?(Boolean) != false || raise("Passed value for field obj.validate is not the expected type, validation failed.")
|
103
|
+
end
|
104
|
+
end
|
105
|
+
end
|
106
|
+
end
|
107
|
+
end
|
108
|
+
end
|
@@ -0,0 +1,60 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require "json"
|
4
|
+
require_relative "../../../types/sent_rcs_details"
|
5
|
+
require_relative "../../../types/scheduled_messaage"
|
6
|
+
|
7
|
+
module Pinnacle
|
8
|
+
module Messages
|
9
|
+
module Send
|
10
|
+
module Types
|
11
|
+
class SendRcsResponse
|
12
|
+
# Deserialize a JSON object to an instance of SendRcsResponse
|
13
|
+
#
|
14
|
+
# @param json_object [String]
|
15
|
+
# @return [Pinnacle::Messages::Send::Types::SendRcsResponse]
|
16
|
+
def self.from_json(json_object:)
|
17
|
+
struct = JSON.parse(json_object, object_class: OpenStruct)
|
18
|
+
begin
|
19
|
+
Pinnacle::Types::SentRcsDetails.validate_raw(obj: struct)
|
20
|
+
return Pinnacle::Types::SentRcsDetails.from_json(json_object: struct) unless struct.nil?
|
21
|
+
|
22
|
+
return nil
|
23
|
+
rescue StandardError
|
24
|
+
# noop
|
25
|
+
end
|
26
|
+
begin
|
27
|
+
Pinnacle::Types::ScheduledMessaage.validate_raw(obj: struct)
|
28
|
+
return Pinnacle::Types::ScheduledMessaage.from_json(json_object: struct) unless struct.nil?
|
29
|
+
|
30
|
+
return nil
|
31
|
+
rescue StandardError
|
32
|
+
# noop
|
33
|
+
end
|
34
|
+
struct
|
35
|
+
end
|
36
|
+
|
37
|
+
# Leveraged for Union-type generation, validate_raw attempts to parse the given
|
38
|
+
# hash and check each fields type against the current object's property
|
39
|
+
# definitions.
|
40
|
+
#
|
41
|
+
# @param obj [Object]
|
42
|
+
# @return [Void]
|
43
|
+
def self.validate_raw(obj:)
|
44
|
+
begin
|
45
|
+
return Pinnacle::Types::SentRcsDetails.validate_raw(obj: obj)
|
46
|
+
rescue StandardError
|
47
|
+
# noop
|
48
|
+
end
|
49
|
+
begin
|
50
|
+
return Pinnacle::Types::ScheduledMessaage.validate_raw(obj: obj)
|
51
|
+
rescue StandardError
|
52
|
+
# noop
|
53
|
+
end
|
54
|
+
raise("Passed value matched no type within the union, validation failed.")
|
55
|
+
end
|
56
|
+
end
|
57
|
+
end
|
58
|
+
end
|
59
|
+
end
|
60
|
+
end
|
@@ -0,0 +1,60 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require "json"
|
4
|
+
require_relative "../../../types/sent_sms_details"
|
5
|
+
require_relative "../../../types/scheduled_messaage"
|
6
|
+
|
7
|
+
module Pinnacle
|
8
|
+
module Messages
|
9
|
+
module Send
|
10
|
+
module Types
|
11
|
+
class SendSmsResponse
|
12
|
+
# Deserialize a JSON object to an instance of SendSmsResponse
|
13
|
+
#
|
14
|
+
# @param json_object [String]
|
15
|
+
# @return [Pinnacle::Messages::Send::Types::SendSmsResponse]
|
16
|
+
def self.from_json(json_object:)
|
17
|
+
struct = JSON.parse(json_object, object_class: OpenStruct)
|
18
|
+
begin
|
19
|
+
Pinnacle::Types::SentSmsDetails.validate_raw(obj: struct)
|
20
|
+
return Pinnacle::Types::SentSmsDetails.from_json(json_object: struct) unless struct.nil?
|
21
|
+
|
22
|
+
return nil
|
23
|
+
rescue StandardError
|
24
|
+
# noop
|
25
|
+
end
|
26
|
+
begin
|
27
|
+
Pinnacle::Types::ScheduledMessaage.validate_raw(obj: struct)
|
28
|
+
return Pinnacle::Types::ScheduledMessaage.from_json(json_object: struct) unless struct.nil?
|
29
|
+
|
30
|
+
return nil
|
31
|
+
rescue StandardError
|
32
|
+
# noop
|
33
|
+
end
|
34
|
+
struct
|
35
|
+
end
|
36
|
+
|
37
|
+
# Leveraged for Union-type generation, validate_raw attempts to parse the given
|
38
|
+
# hash and check each fields type against the current object's property
|
39
|
+
# definitions.
|
40
|
+
#
|
41
|
+
# @param obj [Object]
|
42
|
+
# @return [Void]
|
43
|
+
def self.validate_raw(obj:)
|
44
|
+
begin
|
45
|
+
return Pinnacle::Types::SentSmsDetails.validate_raw(obj: obj)
|
46
|
+
rescue StandardError
|
47
|
+
# noop
|
48
|
+
end
|
49
|
+
begin
|
50
|
+
return Pinnacle::Types::ScheduledMessaage.validate_raw(obj: obj)
|
51
|
+
rescue StandardError
|
52
|
+
# noop
|
53
|
+
end
|
54
|
+
raise("Passed value matched no type within the union, validation failed.")
|
55
|
+
end
|
56
|
+
end
|
57
|
+
end
|
58
|
+
end
|
59
|
+
end
|
60
|
+
end
|
@@ -0,0 +1,81 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require_relative "../../../types/message_schedule"
|
4
|
+
require_relative "../../../types/tracking"
|
5
|
+
require "ostruct"
|
6
|
+
require "json"
|
7
|
+
|
8
|
+
module Pinnacle
|
9
|
+
module Messages
|
10
|
+
module Send
|
11
|
+
module Types
|
12
|
+
# Additional settings to customize SMS delivery.
|
13
|
+
class SendSmsSchemaOptions
|
14
|
+
# @return [Pinnacle::Types::MessageSchedule]
|
15
|
+
attr_reader :schedule
|
16
|
+
# @return [Pinnacle::Types::Tracking]
|
17
|
+
attr_reader :tracking
|
18
|
+
# @return [OpenStruct] Additional properties unmapped to the current class definition
|
19
|
+
attr_reader :additional_properties
|
20
|
+
# @return [Object]
|
21
|
+
attr_reader :_field_set
|
22
|
+
protected :_field_set
|
23
|
+
|
24
|
+
OMIT = Object.new
|
25
|
+
|
26
|
+
# @param schedule [Pinnacle::Types::MessageSchedule]
|
27
|
+
# @param tracking [Pinnacle::Types::Tracking]
|
28
|
+
# @param additional_properties [OpenStruct] Additional properties unmapped to the current class definition
|
29
|
+
# @return [Pinnacle::Messages::Send::Types::SendSmsSchemaOptions]
|
30
|
+
def initialize(schedule: OMIT, tracking: OMIT, additional_properties: nil)
|
31
|
+
@schedule = schedule if schedule != OMIT
|
32
|
+
@tracking = tracking if tracking != OMIT
|
33
|
+
@additional_properties = additional_properties
|
34
|
+
@_field_set = { "schedule": schedule, "tracking": tracking }.reject do |_k, v|
|
35
|
+
v == OMIT
|
36
|
+
end
|
37
|
+
end
|
38
|
+
|
39
|
+
# Deserialize a JSON object to an instance of SendSmsSchemaOptions
|
40
|
+
#
|
41
|
+
# @param json_object [String]
|
42
|
+
# @return [Pinnacle::Messages::Send::Types::SendSmsSchemaOptions]
|
43
|
+
def self.from_json(json_object:)
|
44
|
+
struct = JSON.parse(json_object, object_class: OpenStruct)
|
45
|
+
parsed_json = JSON.parse(json_object)
|
46
|
+
if parsed_json["schedule"].nil?
|
47
|
+
schedule = nil
|
48
|
+
else
|
49
|
+
schedule = parsed_json["schedule"].to_json
|
50
|
+
schedule = Pinnacle::Types::MessageSchedule.from_json(json_object: schedule)
|
51
|
+
end
|
52
|
+
tracking = parsed_json["tracking"]
|
53
|
+
new(
|
54
|
+
schedule: schedule,
|
55
|
+
tracking: tracking,
|
56
|
+
additional_properties: struct
|
57
|
+
)
|
58
|
+
end
|
59
|
+
|
60
|
+
# Serialize an instance of SendSmsSchemaOptions to a JSON object
|
61
|
+
#
|
62
|
+
# @return [String]
|
63
|
+
def to_json(*_args)
|
64
|
+
@_field_set&.to_json
|
65
|
+
end
|
66
|
+
|
67
|
+
# Leveraged for Union-type generation, validate_raw attempts to parse the given
|
68
|
+
# hash and check each fields type against the current object's property
|
69
|
+
# definitions.
|
70
|
+
#
|
71
|
+
# @param obj [Object]
|
72
|
+
# @return [Void]
|
73
|
+
def self.validate_raw(obj:)
|
74
|
+
obj.schedule.nil? || Pinnacle::Types::MessageSchedule.validate_raw(obj: obj.schedule)
|
75
|
+
obj.tracking&.is_a?(Pinnacle::Types::Tracking) != false || raise("Passed value for field obj.tracking is not the expected type, validation failed.")
|
76
|
+
end
|
77
|
+
end
|
78
|
+
end
|
79
|
+
end
|
80
|
+
end
|
81
|
+
end
|