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,237 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require_relative "v_card_data_file"
|
4
|
+
require_relative "v_card_name"
|
5
|
+
require_relative "vcard_address"
|
6
|
+
require_relative "vcard_phone"
|
7
|
+
require_relative "vcard_email"
|
8
|
+
require_relative "v_card_geo"
|
9
|
+
require_relative "v_card_organization"
|
10
|
+
require "ostruct"
|
11
|
+
require "json"
|
12
|
+
|
13
|
+
module Pinnacle
|
14
|
+
module Types
|
15
|
+
class VCardData
|
16
|
+
# @return [Pinnacle::Types::VCardDataFile] File associated to the contact.
|
17
|
+
attr_reader :file
|
18
|
+
# @return [String] ISO 8601 timestamp of last vCard update.
|
19
|
+
attr_reader :revision
|
20
|
+
# @return [Integer] Unique identifier for the contact.
|
21
|
+
attr_reader :id
|
22
|
+
# @return [String] Full display name for the vCard.
|
23
|
+
attr_reader :formatted_name
|
24
|
+
# @return [Pinnacle::Types::VCardName] Structured name components.
|
25
|
+
attr_reader :name
|
26
|
+
# @return [Array<String>] Nicknames or aliases.
|
27
|
+
attr_reader :nickname
|
28
|
+
# @return [String] Birthday in ISO 8601 date format (YYYY-MM-DD).
|
29
|
+
attr_reader :birthday
|
30
|
+
# @return [Array<Pinnacle::Types::VcardAddress>] Physical addresses.
|
31
|
+
attr_reader :addresses
|
32
|
+
# @return [String] Website URL.
|
33
|
+
attr_reader :url
|
34
|
+
# @return [Array<Pinnacle::Types::VcardPhone>] Phone numbers.
|
35
|
+
attr_reader :phones
|
36
|
+
# @return [Array<Pinnacle::Types::VcardEmail>] Email addresses.
|
37
|
+
attr_reader :emails
|
38
|
+
# @return [String] Timezone (e.g., "America/New_York").
|
39
|
+
attr_reader :timezone
|
40
|
+
# @return [Pinnacle::Types::VCardGeo] Geographic coordinates.
|
41
|
+
attr_reader :geo
|
42
|
+
# @return [String] Job title or position.
|
43
|
+
attr_reader :title
|
44
|
+
# @return [String] Role or function within the organization.
|
45
|
+
attr_reader :role
|
46
|
+
# @return [Pinnacle::Types::VCardOrganization] Organization or company information.
|
47
|
+
attr_reader :organization
|
48
|
+
# @return [Array<String>] Categories or tags for organizing contacts.
|
49
|
+
attr_reader :categories
|
50
|
+
# @return [String] Additional notes or comments.
|
51
|
+
attr_reader :note
|
52
|
+
# @return [OpenStruct] Additional properties unmapped to the current class definition
|
53
|
+
attr_reader :additional_properties
|
54
|
+
# @return [Object]
|
55
|
+
attr_reader :_field_set
|
56
|
+
protected :_field_set
|
57
|
+
|
58
|
+
OMIT = Object.new
|
59
|
+
|
60
|
+
# @param file [Pinnacle::Types::VCardDataFile] File associated to the contact.
|
61
|
+
# @param revision [String] ISO 8601 timestamp of last vCard update.
|
62
|
+
# @param id [Integer] Unique identifier for the contact.
|
63
|
+
# @param formatted_name [String] Full display name for the vCard.
|
64
|
+
# @param name [Pinnacle::Types::VCardName] Structured name components.
|
65
|
+
# @param nickname [Array<String>] Nicknames or aliases.
|
66
|
+
# @param birthday [String] Birthday in ISO 8601 date format (YYYY-MM-DD).
|
67
|
+
# @param addresses [Array<Pinnacle::Types::VcardAddress>] Physical addresses.
|
68
|
+
# @param url [String] Website URL.
|
69
|
+
# @param phones [Array<Pinnacle::Types::VcardPhone>] Phone numbers.
|
70
|
+
# @param emails [Array<Pinnacle::Types::VcardEmail>] Email addresses.
|
71
|
+
# @param timezone [String] Timezone (e.g., "America/New_York").
|
72
|
+
# @param geo [Pinnacle::Types::VCardGeo] Geographic coordinates.
|
73
|
+
# @param title [String] Job title or position.
|
74
|
+
# @param role [String] Role or function within the organization.
|
75
|
+
# @param organization [Pinnacle::Types::VCardOrganization] Organization or company information.
|
76
|
+
# @param categories [Array<String>] Categories or tags for organizing contacts.
|
77
|
+
# @param note [String] Additional notes or comments.
|
78
|
+
# @param additional_properties [OpenStruct] Additional properties unmapped to the current class definition
|
79
|
+
# @return [Pinnacle::Types::VCardData]
|
80
|
+
def initialize(file:, revision: OMIT, id: OMIT, formatted_name: OMIT, name: OMIT, nickname: OMIT, birthday: OMIT,
|
81
|
+
addresses: OMIT, url: OMIT, phones: OMIT, emails: OMIT, timezone: OMIT, geo: OMIT, title: OMIT, role: OMIT, organization: OMIT, categories: OMIT, note: OMIT, additional_properties: nil)
|
82
|
+
@file = file
|
83
|
+
@revision = revision if revision != OMIT
|
84
|
+
@id = id if id != OMIT
|
85
|
+
@formatted_name = formatted_name if formatted_name != OMIT
|
86
|
+
@name = name if name != OMIT
|
87
|
+
@nickname = nickname if nickname != OMIT
|
88
|
+
@birthday = birthday if birthday != OMIT
|
89
|
+
@addresses = addresses if addresses != OMIT
|
90
|
+
@url = url if url != OMIT
|
91
|
+
@phones = phones if phones != OMIT
|
92
|
+
@emails = emails if emails != OMIT
|
93
|
+
@timezone = timezone if timezone != OMIT
|
94
|
+
@geo = geo if geo != OMIT
|
95
|
+
@title = title if title != OMIT
|
96
|
+
@role = role if role != OMIT
|
97
|
+
@organization = organization if organization != OMIT
|
98
|
+
@categories = categories if categories != OMIT
|
99
|
+
@note = note if note != OMIT
|
100
|
+
@additional_properties = additional_properties
|
101
|
+
@_field_set = {
|
102
|
+
"file": file,
|
103
|
+
"revision": revision,
|
104
|
+
"id": id,
|
105
|
+
"formattedName": formatted_name,
|
106
|
+
"name": name,
|
107
|
+
"nickname": nickname,
|
108
|
+
"birthday": birthday,
|
109
|
+
"addresses": addresses,
|
110
|
+
"url": url,
|
111
|
+
"phones": phones,
|
112
|
+
"emails": emails,
|
113
|
+
"timezone": timezone,
|
114
|
+
"geo": geo,
|
115
|
+
"title": title,
|
116
|
+
"role": role,
|
117
|
+
"organization": organization,
|
118
|
+
"categories": categories,
|
119
|
+
"note": note
|
120
|
+
}.reject do |_k, v|
|
121
|
+
v == OMIT
|
122
|
+
end
|
123
|
+
end
|
124
|
+
|
125
|
+
# Deserialize a JSON object to an instance of VCardData
|
126
|
+
#
|
127
|
+
# @param json_object [String]
|
128
|
+
# @return [Pinnacle::Types::VCardData]
|
129
|
+
def self.from_json(json_object:)
|
130
|
+
struct = JSON.parse(json_object, object_class: OpenStruct)
|
131
|
+
parsed_json = JSON.parse(json_object)
|
132
|
+
if parsed_json["file"].nil?
|
133
|
+
file = nil
|
134
|
+
else
|
135
|
+
file = parsed_json["file"].to_json
|
136
|
+
file = Pinnacle::Types::VCardDataFile.from_json(json_object: file)
|
137
|
+
end
|
138
|
+
revision = parsed_json["revision"]
|
139
|
+
id = parsed_json["id"]
|
140
|
+
formatted_name = parsed_json["formattedName"]
|
141
|
+
if parsed_json["name"].nil?
|
142
|
+
name = nil
|
143
|
+
else
|
144
|
+
name = parsed_json["name"].to_json
|
145
|
+
name = Pinnacle::Types::VCardName.from_json(json_object: name)
|
146
|
+
end
|
147
|
+
nickname = parsed_json["nickname"]
|
148
|
+
birthday = parsed_json["birthday"]
|
149
|
+
addresses = parsed_json["addresses"]&.map do |item|
|
150
|
+
item = item.to_json
|
151
|
+
Pinnacle::Types::VcardAddress.from_json(json_object: item)
|
152
|
+
end
|
153
|
+
url = parsed_json["url"]
|
154
|
+
phones = parsed_json["phones"]&.map do |item|
|
155
|
+
item = item.to_json
|
156
|
+
Pinnacle::Types::VcardPhone.from_json(json_object: item)
|
157
|
+
end
|
158
|
+
emails = parsed_json["emails"]&.map do |item|
|
159
|
+
item = item.to_json
|
160
|
+
Pinnacle::Types::VcardEmail.from_json(json_object: item)
|
161
|
+
end
|
162
|
+
timezone = parsed_json["timezone"]
|
163
|
+
if parsed_json["geo"].nil?
|
164
|
+
geo = nil
|
165
|
+
else
|
166
|
+
geo = parsed_json["geo"].to_json
|
167
|
+
geo = Pinnacle::Types::VCardGeo.from_json(json_object: geo)
|
168
|
+
end
|
169
|
+
title = parsed_json["title"]
|
170
|
+
role = parsed_json["role"]
|
171
|
+
if parsed_json["organization"].nil?
|
172
|
+
organization = nil
|
173
|
+
else
|
174
|
+
organization = parsed_json["organization"].to_json
|
175
|
+
organization = Pinnacle::Types::VCardOrganization.from_json(json_object: organization)
|
176
|
+
end
|
177
|
+
categories = parsed_json["categories"]
|
178
|
+
note = parsed_json["note"]
|
179
|
+
new(
|
180
|
+
file: file,
|
181
|
+
revision: revision,
|
182
|
+
id: id,
|
183
|
+
formatted_name: formatted_name,
|
184
|
+
name: name,
|
185
|
+
nickname: nickname,
|
186
|
+
birthday: birthday,
|
187
|
+
addresses: addresses,
|
188
|
+
url: url,
|
189
|
+
phones: phones,
|
190
|
+
emails: emails,
|
191
|
+
timezone: timezone,
|
192
|
+
geo: geo,
|
193
|
+
title: title,
|
194
|
+
role: role,
|
195
|
+
organization: organization,
|
196
|
+
categories: categories,
|
197
|
+
note: note,
|
198
|
+
additional_properties: struct
|
199
|
+
)
|
200
|
+
end
|
201
|
+
|
202
|
+
# Serialize an instance of VCardData to a JSON object
|
203
|
+
#
|
204
|
+
# @return [String]
|
205
|
+
def to_json(*_args)
|
206
|
+
@_field_set&.to_json
|
207
|
+
end
|
208
|
+
|
209
|
+
# Leveraged for Union-type generation, validate_raw attempts to parse the given
|
210
|
+
# hash and check each fields type against the current object's property
|
211
|
+
# definitions.
|
212
|
+
#
|
213
|
+
# @param obj [Object]
|
214
|
+
# @return [Void]
|
215
|
+
def self.validate_raw(obj:)
|
216
|
+
Pinnacle::Types::VCardDataFile.validate_raw(obj: obj.file)
|
217
|
+
obj.revision&.is_a?(String) != false || raise("Passed value for field obj.revision is not the expected type, validation failed.")
|
218
|
+
obj.id&.is_a?(Integer) != false || raise("Passed value for field obj.id is not the expected type, validation failed.")
|
219
|
+
obj.formatted_name&.is_a?(String) != false || raise("Passed value for field obj.formatted_name is not the expected type, validation failed.")
|
220
|
+
obj.name.nil? || Pinnacle::Types::VCardName.validate_raw(obj: obj.name)
|
221
|
+
obj.nickname&.is_a?(Array) != false || raise("Passed value for field obj.nickname is not the expected type, validation failed.")
|
222
|
+
obj.birthday&.is_a?(String) != false || raise("Passed value for field obj.birthday is not the expected type, validation failed.")
|
223
|
+
obj.addresses&.is_a?(Array) != false || raise("Passed value for field obj.addresses is not the expected type, validation failed.")
|
224
|
+
obj.url&.is_a?(String) != false || raise("Passed value for field obj.url is not the expected type, validation failed.")
|
225
|
+
obj.phones&.is_a?(Array) != false || raise("Passed value for field obj.phones is not the expected type, validation failed.")
|
226
|
+
obj.emails&.is_a?(Array) != false || raise("Passed value for field obj.emails is not the expected type, validation failed.")
|
227
|
+
obj.timezone&.is_a?(String) != false || raise("Passed value for field obj.timezone is not the expected type, validation failed.")
|
228
|
+
obj.geo.nil? || Pinnacle::Types::VCardGeo.validate_raw(obj: obj.geo)
|
229
|
+
obj.title&.is_a?(String) != false || raise("Passed value for field obj.title is not the expected type, validation failed.")
|
230
|
+
obj.role&.is_a?(String) != false || raise("Passed value for field obj.role is not the expected type, validation failed.")
|
231
|
+
obj.organization.nil? || Pinnacle::Types::VCardOrganization.validate_raw(obj: obj.organization)
|
232
|
+
obj.categories&.is_a?(Array) != false || raise("Passed value for field obj.categories is not the expected type, validation failed.")
|
233
|
+
obj.note&.is_a?(String) != false || raise("Passed value for field obj.note is not the expected type, validation failed.")
|
234
|
+
end
|
235
|
+
end
|
236
|
+
end
|
237
|
+
end
|
@@ -0,0 +1,74 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require_relative "v_card_data_file_metadata"
|
4
|
+
require "ostruct"
|
5
|
+
require "json"
|
6
|
+
|
7
|
+
module Pinnacle
|
8
|
+
module Types
|
9
|
+
# File associated to the contact.
|
10
|
+
class VCardDataFile
|
11
|
+
# @return [String] Presigned URL to download the contact card.
|
12
|
+
attr_reader :url
|
13
|
+
# @return [Pinnacle::Types::VCardDataFileMetadata] Additional information about the download URL.
|
14
|
+
attr_reader :metadata
|
15
|
+
# @return [OpenStruct] Additional properties unmapped to the current class definition
|
16
|
+
attr_reader :additional_properties
|
17
|
+
# @return [Object]
|
18
|
+
attr_reader :_field_set
|
19
|
+
protected :_field_set
|
20
|
+
|
21
|
+
OMIT = Object.new
|
22
|
+
|
23
|
+
# @param url [String] Presigned URL to download the contact card.
|
24
|
+
# @param metadata [Pinnacle::Types::VCardDataFileMetadata] Additional information about the download URL.
|
25
|
+
# @param additional_properties [OpenStruct] Additional properties unmapped to the current class definition
|
26
|
+
# @return [Pinnacle::Types::VCardDataFile]
|
27
|
+
def initialize(url:, metadata:, additional_properties: nil)
|
28
|
+
@url = url
|
29
|
+
@metadata = metadata
|
30
|
+
@additional_properties = additional_properties
|
31
|
+
@_field_set = { "url": url, "metadata": metadata }
|
32
|
+
end
|
33
|
+
|
34
|
+
# Deserialize a JSON object to an instance of VCardDataFile
|
35
|
+
#
|
36
|
+
# @param json_object [String]
|
37
|
+
# @return [Pinnacle::Types::VCardDataFile]
|
38
|
+
def self.from_json(json_object:)
|
39
|
+
struct = JSON.parse(json_object, object_class: OpenStruct)
|
40
|
+
parsed_json = JSON.parse(json_object)
|
41
|
+
url = parsed_json["url"]
|
42
|
+
if parsed_json["metadata"].nil?
|
43
|
+
metadata = nil
|
44
|
+
else
|
45
|
+
metadata = parsed_json["metadata"].to_json
|
46
|
+
metadata = Pinnacle::Types::VCardDataFileMetadata.from_json(json_object: metadata)
|
47
|
+
end
|
48
|
+
new(
|
49
|
+
url: url,
|
50
|
+
metadata: metadata,
|
51
|
+
additional_properties: struct
|
52
|
+
)
|
53
|
+
end
|
54
|
+
|
55
|
+
# Serialize an instance of VCardDataFile to a JSON object
|
56
|
+
#
|
57
|
+
# @return [String]
|
58
|
+
def to_json(*_args)
|
59
|
+
@_field_set&.to_json
|
60
|
+
end
|
61
|
+
|
62
|
+
# Leveraged for Union-type generation, validate_raw attempts to parse the given
|
63
|
+
# hash and check each fields type against the current object's property
|
64
|
+
# definitions.
|
65
|
+
#
|
66
|
+
# @param obj [Object]
|
67
|
+
# @return [Void]
|
68
|
+
def self.validate_raw(obj:)
|
69
|
+
obj.url.is_a?(String) != false || raise("Passed value for field obj.url is not the expected type, validation failed.")
|
70
|
+
Pinnacle::Types::VCardDataFileMetadata.validate_raw(obj: obj.metadata)
|
71
|
+
end
|
72
|
+
end
|
73
|
+
end
|
74
|
+
end
|
@@ -0,0 +1,62 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require "ostruct"
|
4
|
+
require "json"
|
5
|
+
|
6
|
+
module Pinnacle
|
7
|
+
module Types
|
8
|
+
# Additional information about the download URL.
|
9
|
+
class VCardDataFileMetadata
|
10
|
+
# @return [String] When the download URL expires in ISO 8601 format.<br>
|
11
|
+
# Null indicates that it is permanent.
|
12
|
+
attr_reader :expires_at
|
13
|
+
# @return [OpenStruct] Additional properties unmapped to the current class definition
|
14
|
+
attr_reader :additional_properties
|
15
|
+
# @return [Object]
|
16
|
+
attr_reader :_field_set
|
17
|
+
protected :_field_set
|
18
|
+
|
19
|
+
OMIT = Object.new
|
20
|
+
|
21
|
+
# @param expires_at [String] When the download URL expires in ISO 8601 format.<br>
|
22
|
+
# Null indicates that it is permanent.
|
23
|
+
# @param additional_properties [OpenStruct] Additional properties unmapped to the current class definition
|
24
|
+
# @return [Pinnacle::Types::VCardDataFileMetadata]
|
25
|
+
def initialize(expires_at: OMIT, additional_properties: nil)
|
26
|
+
@expires_at = expires_at if expires_at != OMIT
|
27
|
+
@additional_properties = additional_properties
|
28
|
+
@_field_set = { "expiresAt": expires_at }.reject do |_k, v|
|
29
|
+
v == OMIT
|
30
|
+
end
|
31
|
+
end
|
32
|
+
|
33
|
+
# Deserialize a JSON object to an instance of VCardDataFileMetadata
|
34
|
+
#
|
35
|
+
# @param json_object [String]
|
36
|
+
# @return [Pinnacle::Types::VCardDataFileMetadata]
|
37
|
+
def self.from_json(json_object:)
|
38
|
+
struct = JSON.parse(json_object, object_class: OpenStruct)
|
39
|
+
parsed_json = JSON.parse(json_object)
|
40
|
+
expires_at = parsed_json["expiresAt"]
|
41
|
+
new(expires_at: expires_at, additional_properties: struct)
|
42
|
+
end
|
43
|
+
|
44
|
+
# Serialize an instance of VCardDataFileMetadata to a JSON object
|
45
|
+
#
|
46
|
+
# @return [String]
|
47
|
+
def to_json(*_args)
|
48
|
+
@_field_set&.to_json
|
49
|
+
end
|
50
|
+
|
51
|
+
# Leveraged for Union-type generation, validate_raw attempts to parse the given
|
52
|
+
# hash and check each fields type against the current object's property
|
53
|
+
# definitions.
|
54
|
+
#
|
55
|
+
# @param obj [Object]
|
56
|
+
# @return [Void]
|
57
|
+
def self.validate_raw(obj:)
|
58
|
+
obj.expires_at&.is_a?(String) != false || raise("Passed value for field obj.expires_at is not the expected type, validation failed.")
|
59
|
+
end
|
60
|
+
end
|
61
|
+
end
|
62
|
+
end
|
@@ -0,0 +1,21 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Pinnacle
|
4
|
+
module Types
|
5
|
+
class VCardEmailSchemaTypeItem
|
6
|
+
PREF = "PREF"
|
7
|
+
INTERNET = "INTERNET"
|
8
|
+
X_400 = "X400"
|
9
|
+
AOL = "AOL"
|
10
|
+
APPLELINK = "APPLELINK"
|
11
|
+
ATTMAIL = "ATTMAIL"
|
12
|
+
CIS = "CIS"
|
13
|
+
EWORLD = "EWORLD"
|
14
|
+
IBMMAIL = "IBMMAIL"
|
15
|
+
MCIMAIL = "MCIMAIL"
|
16
|
+
POWERSHARE = "POWERSHARE"
|
17
|
+
PRODIGY = "PRODIGY"
|
18
|
+
TLX = "TLX"
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
@@ -0,0 +1,70 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require "ostruct"
|
4
|
+
require "json"
|
5
|
+
|
6
|
+
module Pinnacle
|
7
|
+
module Types
|
8
|
+
# Geographic coordinates.
|
9
|
+
class VCardGeo
|
10
|
+
# @return [Float] Latitude coordinate.
|
11
|
+
attr_reader :latitude
|
12
|
+
# @return [Float] Longitude coordinate.
|
13
|
+
attr_reader :longitude
|
14
|
+
# @return [OpenStruct] Additional properties unmapped to the current class definition
|
15
|
+
attr_reader :additional_properties
|
16
|
+
# @return [Object]
|
17
|
+
attr_reader :_field_set
|
18
|
+
protected :_field_set
|
19
|
+
|
20
|
+
OMIT = Object.new
|
21
|
+
|
22
|
+
# @param latitude [Float] Latitude coordinate.
|
23
|
+
# @param longitude [Float] Longitude coordinate.
|
24
|
+
# @param additional_properties [OpenStruct] Additional properties unmapped to the current class definition
|
25
|
+
# @return [Pinnacle::Types::VCardGeo]
|
26
|
+
def initialize(latitude: OMIT, longitude: OMIT, additional_properties: nil)
|
27
|
+
@latitude = latitude if latitude != OMIT
|
28
|
+
@longitude = longitude if longitude != OMIT
|
29
|
+
@additional_properties = additional_properties
|
30
|
+
@_field_set = { "latitude": latitude, "longitude": longitude }.reject do |_k, v|
|
31
|
+
v == OMIT
|
32
|
+
end
|
33
|
+
end
|
34
|
+
|
35
|
+
# Deserialize a JSON object to an instance of VCardGeo
|
36
|
+
#
|
37
|
+
# @param json_object [String]
|
38
|
+
# @return [Pinnacle::Types::VCardGeo]
|
39
|
+
def self.from_json(json_object:)
|
40
|
+
struct = JSON.parse(json_object, object_class: OpenStruct)
|
41
|
+
parsed_json = JSON.parse(json_object)
|
42
|
+
latitude = parsed_json["latitude"]
|
43
|
+
longitude = parsed_json["longitude"]
|
44
|
+
new(
|
45
|
+
latitude: latitude,
|
46
|
+
longitude: longitude,
|
47
|
+
additional_properties: struct
|
48
|
+
)
|
49
|
+
end
|
50
|
+
|
51
|
+
# Serialize an instance of VCardGeo to a JSON object
|
52
|
+
#
|
53
|
+
# @return [String]
|
54
|
+
def to_json(*_args)
|
55
|
+
@_field_set&.to_json
|
56
|
+
end
|
57
|
+
|
58
|
+
# Leveraged for Union-type generation, validate_raw attempts to parse the given
|
59
|
+
# hash and check each fields type against the current object's property
|
60
|
+
# definitions.
|
61
|
+
#
|
62
|
+
# @param obj [Object]
|
63
|
+
# @return [Void]
|
64
|
+
def self.validate_raw(obj:)
|
65
|
+
obj.latitude&.is_a?(Float) != false || raise("Passed value for field obj.latitude is not the expected type, validation failed.")
|
66
|
+
obj.longitude&.is_a?(Float) != false || raise("Passed value for field obj.longitude is not the expected type, validation failed.")
|
67
|
+
end
|
68
|
+
end
|
69
|
+
end
|
70
|
+
end
|
@@ -0,0 +1,98 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require "ostruct"
|
4
|
+
require "json"
|
5
|
+
|
6
|
+
module Pinnacle
|
7
|
+
module Types
|
8
|
+
# Structured name components.
|
9
|
+
class VCardName
|
10
|
+
# @return [String] Last name or surname.
|
11
|
+
attr_reader :family_name
|
12
|
+
# @return [String] First name or given name.
|
13
|
+
attr_reader :given_name
|
14
|
+
# @return [Array<String>] Middle names or additional names.
|
15
|
+
attr_reader :additional_names
|
16
|
+
# @return [Array<String>] Title prefixes like "Dr.", "Mr.", "Ms.".
|
17
|
+
attr_reader :honorific_prefixes
|
18
|
+
# @return [Array<String>] Title suffixes like "Jr.", "Sr.", "PhD".
|
19
|
+
attr_reader :honorific_suffixes
|
20
|
+
# @return [OpenStruct] Additional properties unmapped to the current class definition
|
21
|
+
attr_reader :additional_properties
|
22
|
+
# @return [Object]
|
23
|
+
attr_reader :_field_set
|
24
|
+
protected :_field_set
|
25
|
+
|
26
|
+
OMIT = Object.new
|
27
|
+
|
28
|
+
# @param family_name [String] Last name or surname.
|
29
|
+
# @param given_name [String] First name or given name.
|
30
|
+
# @param additional_names [Array<String>] Middle names or additional names.
|
31
|
+
# @param honorific_prefixes [Array<String>] Title prefixes like "Dr.", "Mr.", "Ms.".
|
32
|
+
# @param honorific_suffixes [Array<String>] Title suffixes like "Jr.", "Sr.", "PhD".
|
33
|
+
# @param additional_properties [OpenStruct] Additional properties unmapped to the current class definition
|
34
|
+
# @return [Pinnacle::Types::VCardName]
|
35
|
+
def initialize(family_name: OMIT, given_name: OMIT, additional_names: OMIT, honorific_prefixes: OMIT,
|
36
|
+
honorific_suffixes: OMIT, additional_properties: nil)
|
37
|
+
@family_name = family_name if family_name != OMIT
|
38
|
+
@given_name = given_name if given_name != OMIT
|
39
|
+
@additional_names = additional_names if additional_names != OMIT
|
40
|
+
@honorific_prefixes = honorific_prefixes if honorific_prefixes != OMIT
|
41
|
+
@honorific_suffixes = honorific_suffixes if honorific_suffixes != OMIT
|
42
|
+
@additional_properties = additional_properties
|
43
|
+
@_field_set = {
|
44
|
+
"familyName": family_name,
|
45
|
+
"givenName": given_name,
|
46
|
+
"additionalNames": additional_names,
|
47
|
+
"honorificPrefixes": honorific_prefixes,
|
48
|
+
"honorificSuffixes": honorific_suffixes
|
49
|
+
}.reject do |_k, v|
|
50
|
+
v == OMIT
|
51
|
+
end
|
52
|
+
end
|
53
|
+
|
54
|
+
# Deserialize a JSON object to an instance of VCardName
|
55
|
+
#
|
56
|
+
# @param json_object [String]
|
57
|
+
# @return [Pinnacle::Types::VCardName]
|
58
|
+
def self.from_json(json_object:)
|
59
|
+
struct = JSON.parse(json_object, object_class: OpenStruct)
|
60
|
+
parsed_json = JSON.parse(json_object)
|
61
|
+
family_name = parsed_json["familyName"]
|
62
|
+
given_name = parsed_json["givenName"]
|
63
|
+
additional_names = parsed_json["additionalNames"]
|
64
|
+
honorific_prefixes = parsed_json["honorificPrefixes"]
|
65
|
+
honorific_suffixes = parsed_json["honorificSuffixes"]
|
66
|
+
new(
|
67
|
+
family_name: family_name,
|
68
|
+
given_name: given_name,
|
69
|
+
additional_names: additional_names,
|
70
|
+
honorific_prefixes: honorific_prefixes,
|
71
|
+
honorific_suffixes: honorific_suffixes,
|
72
|
+
additional_properties: struct
|
73
|
+
)
|
74
|
+
end
|
75
|
+
|
76
|
+
# Serialize an instance of VCardName to a JSON object
|
77
|
+
#
|
78
|
+
# @return [String]
|
79
|
+
def to_json(*_args)
|
80
|
+
@_field_set&.to_json
|
81
|
+
end
|
82
|
+
|
83
|
+
# Leveraged for Union-type generation, validate_raw attempts to parse the given
|
84
|
+
# hash and check each fields type against the current object's property
|
85
|
+
# definitions.
|
86
|
+
#
|
87
|
+
# @param obj [Object]
|
88
|
+
# @return [Void]
|
89
|
+
def self.validate_raw(obj:)
|
90
|
+
obj.family_name&.is_a?(String) != false || raise("Passed value for field obj.family_name is not the expected type, validation failed.")
|
91
|
+
obj.given_name&.is_a?(String) != false || raise("Passed value for field obj.given_name is not the expected type, validation failed.")
|
92
|
+
obj.additional_names&.is_a?(Array) != false || raise("Passed value for field obj.additional_names is not the expected type, validation failed.")
|
93
|
+
obj.honorific_prefixes&.is_a?(Array) != false || raise("Passed value for field obj.honorific_prefixes is not the expected type, validation failed.")
|
94
|
+
obj.honorific_suffixes&.is_a?(Array) != false || raise("Passed value for field obj.honorific_suffixes is not the expected type, validation failed.")
|
95
|
+
end
|
96
|
+
end
|
97
|
+
end
|
98
|
+
end
|
@@ -0,0 +1,70 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require "ostruct"
|
4
|
+
require "json"
|
5
|
+
|
6
|
+
module Pinnacle
|
7
|
+
module Types
|
8
|
+
# Organization or company information.
|
9
|
+
class VCardOrganization
|
10
|
+
# @return [String] Company or organization name.
|
11
|
+
attr_reader :name
|
12
|
+
# @return [Array<String>] Department or organizational units.
|
13
|
+
attr_reader :units
|
14
|
+
# @return [OpenStruct] Additional properties unmapped to the current class definition
|
15
|
+
attr_reader :additional_properties
|
16
|
+
# @return [Object]
|
17
|
+
attr_reader :_field_set
|
18
|
+
protected :_field_set
|
19
|
+
|
20
|
+
OMIT = Object.new
|
21
|
+
|
22
|
+
# @param name [String] Company or organization name.
|
23
|
+
# @param units [Array<String>] Department or organizational units.
|
24
|
+
# @param additional_properties [OpenStruct] Additional properties unmapped to the current class definition
|
25
|
+
# @return [Pinnacle::Types::VCardOrganization]
|
26
|
+
def initialize(name: OMIT, units: OMIT, additional_properties: nil)
|
27
|
+
@name = name if name != OMIT
|
28
|
+
@units = units if units != OMIT
|
29
|
+
@additional_properties = additional_properties
|
30
|
+
@_field_set = { "name": name, "units": units }.reject do |_k, v|
|
31
|
+
v == OMIT
|
32
|
+
end
|
33
|
+
end
|
34
|
+
|
35
|
+
# Deserialize a JSON object to an instance of VCardOrganization
|
36
|
+
#
|
37
|
+
# @param json_object [String]
|
38
|
+
# @return [Pinnacle::Types::VCardOrganization]
|
39
|
+
def self.from_json(json_object:)
|
40
|
+
struct = JSON.parse(json_object, object_class: OpenStruct)
|
41
|
+
parsed_json = JSON.parse(json_object)
|
42
|
+
name = parsed_json["name"]
|
43
|
+
units = parsed_json["units"]
|
44
|
+
new(
|
45
|
+
name: name,
|
46
|
+
units: units,
|
47
|
+
additional_properties: struct
|
48
|
+
)
|
49
|
+
end
|
50
|
+
|
51
|
+
# Serialize an instance of VCardOrganization to a JSON object
|
52
|
+
#
|
53
|
+
# @return [String]
|
54
|
+
def to_json(*_args)
|
55
|
+
@_field_set&.to_json
|
56
|
+
end
|
57
|
+
|
58
|
+
# Leveraged for Union-type generation, validate_raw attempts to parse the given
|
59
|
+
# hash and check each fields type against the current object's property
|
60
|
+
# definitions.
|
61
|
+
#
|
62
|
+
# @param obj [Object]
|
63
|
+
# @return [Void]
|
64
|
+
def self.validate_raw(obj:)
|
65
|
+
obj.name&.is_a?(String) != false || raise("Passed value for field obj.name is not the expected type, validation failed.")
|
66
|
+
obj.units&.is_a?(Array) != false || raise("Passed value for field obj.units is not the expected type, validation failed.")
|
67
|
+
end
|
68
|
+
end
|
69
|
+
end
|
70
|
+
end
|
@@ -0,0 +1,21 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Pinnacle
|
4
|
+
module Types
|
5
|
+
class VCardPhoneSchemaTypeItem
|
6
|
+
PREF = "PREF"
|
7
|
+
WORK = "WORK"
|
8
|
+
HOME = "HOME"
|
9
|
+
VOICE = "VOICE"
|
10
|
+
FAX = "FAX"
|
11
|
+
MSG = "MSG"
|
12
|
+
CELL = "CELL"
|
13
|
+
PAGER = "PAGER"
|
14
|
+
BBS = "BBS"
|
15
|
+
MODEM = "MODEM"
|
16
|
+
CAR = "CAR"
|
17
|
+
ISDN = "ISDN"
|
18
|
+
VIDEO = "VIDEO"
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|