From eec1de8488611ed0de187623bbeacc33f11e47da Mon Sep 17 00:00:00 2001
From: fern-api <115122769+fern-api[bot]@users.noreply.github.com>
Date: Mon, 21 Jul 2025 21:26:04 +0000
Subject: [PATCH] SDK regeneration
---
README.md | 4 +-
pyproject.toml | 6 +-
reference.md | 550 ++++++----------
src/intercom/__init__.py | 586 +++++++++++++++++-
src/intercom/admins/__init__.py | 3 +-
src/intercom/admins/requests/__init__.py | 8 +
src/intercom/admins/requests/admin.py | 65 ++
src/intercom/admins/requests/admin_avatar.py | 14 +
src/intercom/ai_agent/__init__.py | 3 +-
src/intercom/ai_agent/requests/__init__.py | 7 +
src/intercom/ai_agent/requests/ai_agent.py | 43 ++
src/intercom/ai_content_source/__init__.py | 3 +-
.../ai_content_source/requests/__init__.py | 7 +
.../requests/content_source.py | 31 +
src/intercom/articles/__init__.py | 16 +
src/intercom/articles/client.py | 60 +-
src/intercom/articles/raw_client.py | 26 +-
src/intercom/articles/requests/__init__.py | 23 +
src/intercom/articles/requests/article.py | 13 +
.../articles/requests/article_list_item.py | 90 +++
.../requests/article_search_highlights.py | 30 +
...ighlights_highlighted_summary_item_item.py | 22 +
...earch_highlights_highlighted_title_item.py | 22 +
.../requests/search_articles_response.py | 30 +
.../requests/search_articles_response_data.py | 23 +
src/intercom/companies/__init__.py | 16 +
src/intercom/companies/requests/__init__.py | 23 +
.../requests/companies_retrieve_response.py | 46 ++
src/intercom/companies/requests/company.py | 100 +++
.../companies/requests/company_plan.py | 22 +
.../companies/requests/company_segments.py | 19 +
.../companies/requests/company_tags.py | 18 +
src/intercom/contacts/__init__.py | 3 +-
src/intercom/contacts/client.py | 92 +--
src/intercom/contacts/raw_client.py | 42 +-
src/intercom/contacts/requests/__init__.py | 7 +
src/intercom/contacts/requests/contact.py | 227 +++++++
src/intercom/conversations/__init__.py | 24 +
src/intercom/conversations/client.py | 202 +++---
src/intercom/conversations/raw_client.py | 98 +--
.../conversations/requests/__init__.py | 37 ++
...ontact_to_conversation_request_customer.py | 19 +
..._conversation_request_customer_customer.py | 13 +
...ation_request_customer_intercom_user_id.py | 13 +
...o_conversation_request_customer_user_id.py | 13 +
.../conversations/requests/conversation.py | 108 ++++
.../conversations_manage_request_body.py | 42 ++
.../create_conversation_request_from.py | 16 +
src/intercom/core/client_wrapper.py | 6 +-
src/intercom/data_attributes/__init__.py | 3 +
src/intercom/data_attributes/client.py | 30 +-
src/intercom/data_attributes/raw_client.py | 14 +-
.../data_attributes/requests/__init__.py | 8 +
.../requests/data_attribute.py | 98 +++
...ate_data_attribute_request_options_item.py | 7 +
src/intercom/data_events/__init__.py | 3 +-
src/intercom/data_events/requests/__init__.py | 7 +
.../data_events/requests/data_event.py | 51 ++
src/intercom/data_export/__init__.py | 3 +-
src/intercom/data_export/requests/__init__.py | 7 +
.../data_export/requests/data_export.py | 30 +
src/intercom/events/__init__.py | 3 +-
src/intercom/events/client.py | 46 +-
src/intercom/events/raw_client.py | 34 +-
src/intercom/events/requests/__init__.py | 7 +
...event_summaries_request_event_summaries.py | 29 +
src/intercom/help_center/__init__.py | 3 +-
src/intercom/help_center/requests/__init__.py | 9 +
.../help_center/requests/collection.py | 71 +++
.../help_center/requests/help_center.py | 44 ++
.../help_center/requests/help_center_list.py | 22 +
.../help_centers/collections/client.py | 18 +-
.../help_centers/collections/raw_client.py | 26 +-
src/intercom/messages/__init__.py | 3 +-
src/intercom/messages/client.py | 64 +-
src/intercom/messages/raw_client.py | 14 +-
src/intercom/messages/requests/__init__.py | 7 +
src/intercom/messages/requests/message.py | 45 ++
src/intercom/news/__init__.py | 13 +-
src/intercom/news/items/client.py | 34 +-
src/intercom/news/items/raw_client.py | 34 +-
src/intercom/news/requests/__init__.py | 9 +
src/intercom/news/requests/news_item.py | 83 +++
src/intercom/news/requests/newsfeed.py | 38 ++
.../news/requests/newsfeed_assignment.py | 19 +
src/intercom/notes/__init__.py | 3 +-
src/intercom/notes/requests/__init__.py | 8 +
src/intercom/notes/requests/note.py | 43 ++
src/intercom/notes/requests/note_contact.py | 21 +
src/intercom/requests/__init__.py | 453 ++++++++++++++
src/intercom/requests/action_component.py | 26 +
src/intercom/requests/activity_log.py | 34 +
src/intercom/requests/activity_log_list.py | 24 +
.../requests/activity_log_metadata.py | 54 ++
.../requests/activity_log_performed_by.py | 31 +
src/intercom/requests/addressable_list.py | 24 +
src/intercom/requests/admin_list.py | 22 +
src/intercom/requests/admin_priority_level.py | 21 +
.../admin_reply_conversation_request.py | 40 ++
.../requests/admin_reply_ticket_request.py | 40 ++
...reply_ticket_request_reply_options_item.py | 16 +
src/intercom/requests/admin_with_app.py | 73 +++
.../requests/admin_with_app_avatar.py | 21 +
src/intercom/requests/app.py | 44 ++
src/intercom/requests/article_content.py | 57 ++
src/intercom/requests/article_list.py | 28 +
src/intercom/requests/article_statistics.py | 46 ++
.../requests/article_translated_content.py | 209 +++++++
.../requests/assign_conversation_request.py | 26 +
src/intercom/requests/button_component.py | 39 ++
src/intercom/requests/canvas_object.py | 32 +
src/intercom/requests/checkbox_component.py | 47 ++
src/intercom/requests/checkbox_option.py | 31 +
.../requests/close_conversation_request.py | 22 +
src/intercom/requests/collection_list.py | 29 +
.../requests/company_attached_contacts.py | 30 +
.../requests/company_attached_segments.py | 22 +
src/intercom/requests/company_list.py | 24 +
src/intercom/requests/company_scroll.py | 30 +
src/intercom/requests/component.py | 144 +++++
src/intercom/requests/configure_request.py | 8 +
.../configure_request_component_id.py | 45 ++
.../requests/configure_request_zero.py | 22 +
src/intercom/requests/configure_response.py | 8 +
.../requests/configure_response_canvas.py | 11 +
src/intercom/requests/contact_archived.py | 31 +
.../requests/contact_attached_companies.py | 30 +
src/intercom/requests/contact_companies.py | 37 ++
src/intercom/requests/contact_company.py | 26 +
src/intercom/requests/contact_deleted.py | 31 +
src/intercom/requests/contact_list.py | 30 +
src/intercom/requests/contact_location.py | 31 +
src/intercom/requests/contact_notes.py | 32 +
src/intercom/requests/contact_reference.py | 26 +
.../requests/contact_reply_base_request.py | 24 +
.../contact_reply_conversation_request.py | 11 +
.../requests/contact_reply_email_request.py | 23 +
.../contact_reply_intercom_user_id_request.py | 23 +
.../contact_reply_ticket_email_request.py | 14 +
...t_reply_ticket_intercom_user_id_request.py | 14 +
.../requests/contact_reply_ticket_request.py | 13 +
.../contact_reply_ticket_user_id_request.py | 14 +
.../requests/contact_reply_user_id_request.py | 23 +
src/intercom/requests/contact_segments.py | 22 +
.../requests/contact_social_profiles.py | 17 +
.../requests/contact_subscription_types.py | 32 +
src/intercom/requests/contact_tags.py | 32 +
src/intercom/requests/contact_unarchived.py | 31 +
src/intercom/requests/content_object.py | 19 +
src/intercom/requests/content_sources_list.py | 19 +
src/intercom/requests/context.py | 42 ++
.../requests/conversation_attachment_files.py | 24 +
.../requests/conversation_contacts.py | 18 +
.../conversation_first_contact_reply.py | 24 +
src/intercom/requests/conversation_part.py | 70 +++
.../requests/conversation_part_author.py | 29 +
src/intercom/requests/conversation_parts.py | 27 +
src/intercom/requests/conversation_rating.py | 29 +
src/intercom/requests/conversation_source.py | 55 ++
.../requests/conversation_statistics.py | 106 ++++
.../requests/conversation_teammates.py | 22 +
.../requests/create_contact_request.py | 11 +
.../create_contact_request_with_email.py | 52 ++
...create_contact_request_with_external_id.py | 52 ++
.../create_contact_request_with_role.py | 52 ++
.../requests/create_data_event_request.py | 11 +
.../create_data_event_request_with_email.py | 27 +
.../create_data_event_request_with_id.py | 27 +
.../create_data_event_request_with_user_id.py | 27 +
.../requests/create_message_request.py | 35 ++
.../requests/create_message_request_from.py | 21 +
.../requests/create_message_request_to.py | 20 +
.../create_message_request_with_email.py | 43 ++
.../create_message_request_with_inapp.py | 43 ++
.../requests/create_or_update_tag_request.py | 19 +
...reate_ticket_reply_with_comment_request.py | 8 +
.../requests/create_ticket_request.py | 35 ++
.../create_ticket_request_contacts_item.py | 13 +
...eate_ticket_request_contacts_item_email.py | 10 +
...icket_request_contacts_item_external_id.py | 10 +
.../create_ticket_request_contacts_item_id.py | 10 +
src/intercom/requests/current_canvas.py | 15 +
src/intercom/requests/cursor_pages.py | 34 +
src/intercom/requests/customer_request.py | 11 +
.../requests/customer_request_email.py | 10 +
.../customer_request_intercom_user_id.py | 10 +
.../requests/customer_request_user_id.py | 10 +
src/intercom/requests/data_attribute_list.py | 22 +
src/intercom/requests/data_event_list.py | 28 +
.../requests/data_event_list_pages.py | 12 +
src/intercom/requests/data_event_summary.py | 37 ++
.../requests/data_event_summary_item.py | 34 +
src/intercom/requests/data_export_csv.py | 139 +++++
src/intercom/requests/data_table_component.py | 17 +
src/intercom/requests/data_table_item.py | 26 +
.../requests/deleted_article_object.py | 26 +
.../requests/deleted_collection_object.py | 26 +
.../requests/deleted_company_object.py | 26 +
src/intercom/requests/deleted_object.py | 26 +
src/intercom/requests/divider_component.py | 21 +
src/intercom/requests/dropdown_component.py | 45 ++
src/intercom/requests/dropdown_option.py | 31 +
src/intercom/requests/error.py | 27 +
src/intercom/requests/error_errors_item.py | 20 +
src/intercom/requests/event.py | 16 +
src/intercom/requests/file_attribute.py | 40 ++
src/intercom/requests/group_content.py | 26 +
.../requests/group_translated_content.py | 203 ++++++
src/intercom/requests/image_component.py | 56 ++
src/intercom/requests/initialize_request.py | 50 ++
src/intercom/requests/initialize_response.py | 15 +
src/intercom/requests/input_component.py | 49 ++
src/intercom/requests/linked_object.py | 25 +
src/intercom/requests/linked_object_list.py | 32 +
src/intercom/requests/list_component.py | 26 +
.../requests/list_component_items_item.py | 8 +
src/intercom/requests/list_item.py | 52 ++
src/intercom/requests/list_item_with_image.py | 20 +
.../requests/list_item_without_image.py | 21 +
src/intercom/requests/live_canvas_request.py | 39 ++
src/intercom/requests/live_canvas_response.py | 15 +
src/intercom/requests/metadata.py | 5 +
.../multiple_filter_search_request.py | 24 +
...ultiple_or_single_filter_search_request.py | 13 +
src/intercom/requests/news_item_request.py | 53 ++
src/intercom/requests/note_list.py | 27 +
src/intercom/requests/offset_pages.py | 28 +
.../requests/open_conversation_request.py | 14 +
src/intercom/requests/pages_link.py | 23 +
.../paginated_conversation_response.py | 30 +
.../requests/paginated_news_item_response.py | 29 +
.../requests/paginated_newsfeed_response.py | 29 +
src/intercom/requests/part_attachment.py | 44 ++
src/intercom/requests/phone_switch.py | 21 +
.../requests/redact_conversation_request.py | 24 +
..._conversation_request_conversation_part.py | 19 +
.../redact_conversation_request_source.py | 19 +
src/intercom/requests/reference.py | 19 +
.../requests/reply_conversation_request.py | 10 +
src/intercom/requests/results_response.py | 16 +
src/intercom/requests/search_request.py | 14 +
src/intercom/requests/search_request_query.py | 8 +
src/intercom/requests/segment_list.py | 27 +
.../requests/sheet_action_component.py | 16 +
.../requests/single_filter_search_request.py | 26 +
.../single_filter_search_request_value.py | 5 +
.../requests/single_select_component.py | 54 ++
src/intercom/requests/single_select_option.py | 31 +
src/intercom/requests/sla_applied.py | 29 +
.../requests/snooze_conversation_request.py | 19 +
src/intercom/requests/social_profile.py | 26 +
src/intercom/requests/spacer_component.py | 20 +
.../requests/starting_after_paging.py | 15 +
.../requests/submit_action_component.py | 11 +
src/intercom/requests/submit_request.py | 66 ++
src/intercom/requests/submit_response.py | 36 ++
.../requests/subscription_type_list.py | 22 +
src/intercom/requests/tag_company_request.py | 22 +
.../tag_company_request_companies_item.py | 15 +
src/intercom/requests/tag_list.py | 22 +
.../requests/tag_multiple_users_request.py | 19 +
.../tag_multiple_users_request_users_item.py | 10 +
src/intercom/requests/tags.py | 22 +
src/intercom/requests/team_list.py | 22 +
src/intercom/requests/team_priority_level.py | 21 +
src/intercom/requests/text_area_component.py | 41 ++
src/intercom/requests/text_component.py | 38 ++
src/intercom/requests/ticket_list.py | 30 +
src/intercom/requests/ticket_part_author.py | 30 +
src/intercom/requests/ticket_parts.py | 27 +
src/intercom/requests/ticket_reply.py | 55 ++
.../requests/ticket_type_attribute.py | 97 +++
.../requests/ticket_type_attribute_list.py | 22 +
src/intercom/requests/ticket_type_list.py | 22 +
src/intercom/requests/translation.py | 24 +
.../requests/untag_company_request.py | 22 +
.../untag_company_request_companies_item.py | 22 +
.../requests/update_visitor_request.py | 8 +
.../update_visitor_request_with_id.py | 22 +
.../update_visitor_request_with_user_id.py | 22 +
src/intercom/requests/url_action_component.py | 14 +
src/intercom/requests/visitor.py | 158 +++++
src/intercom/requests/visitor_avatar.py | 15 +
src/intercom/requests/visitor_companies.py | 15 +
.../requests/visitor_deleted_object.py | 26 +
.../requests/visitor_location_data.py | 45 ++
src/intercom/requests/visitor_segments.py | 14 +
.../requests/visitor_social_profiles.py | 14 +
src/intercom/requests/visitor_tags.py | 15 +
.../requests/visitor_tags_tags_item.py | 22 +
src/intercom/segments/__init__.py | 3 +-
src/intercom/segments/requests/__init__.py | 7 +
src/intercom/segments/requests/segment.py | 47 ++
src/intercom/subscription_types/__init__.py | 2 +
.../subscription_types/requests/__init__.py | 7 +
.../requests/subscription_type.py | 46 ++
src/intercom/tags/__init__.py | 3 +-
src/intercom/tags/client.py | 24 +-
src/intercom/tags/raw_client.py | 14 +-
src/intercom/tags/requests/__init__.py | 8 +
src/intercom/tags/requests/tag.py | 34 +
.../tags/requests/tags_create_request_body.py | 12 +
src/intercom/teams/__init__.py | 3 +-
src/intercom/teams/requests/__init__.py | 7 +
src/intercom/teams/requests/team.py | 34 +
src/intercom/tickets/__init__.py | 14 +
src/intercom/tickets/client.py | 152 ++---
src/intercom/tickets/raw_client.py | 74 +--
src/intercom/tickets/requests/__init__.py | 19 +
src/intercom/tickets/requests/ticket.py | 93 +++
.../tickets/requests/ticket_contacts.py | 22 +
src/intercom/tickets/requests/ticket_part.py | 77 +++
src/intercom/tickets/requests/ticket_type.py | 64 ++
.../requests/tickets_reply_request_body.py | 8 +
.../update_ticket_request_assignment.py | 15 +
src/intercom/unstable/__init__.py | 578 ++++++++++++++++-
src/intercom/unstable/admins/__init__.py | 3 +-
.../unstable/admins/requests/__init__.py | 7 +
.../unstable/admins/requests/admin.py | 69 +++
src/intercom/unstable/ai_agent/__init__.py | 3 +-
.../unstable/ai_agent/requests/__init__.py | 7 +
.../unstable/ai_agent/requests/ai_agent.py | 43 ++
src/intercom/unstable/ai_content/__init__.py | 10 +
.../unstable/ai_content/requests/__init__.py | 15 +
.../requests/content_import_source.py | 53 ++
.../requests/content_import_sources_list.py | 29 +
.../ai_content/requests/external_page.py | 81 +++
.../requests/external_pages_list.py | 29 +
.../unstable/ai_content_source/__init__.py | 3 +-
.../ai_content_source/requests/__init__.py | 7 +
.../requests/content_source.py | 30 +
src/intercom/unstable/articles/__init__.py | 16 +
.../unstable/articles/requests/__init__.py | 23 +
.../unstable/articles/requests/article.py | 13 +
.../articles/requests/article_list_item.py | 90 +++
.../requests/article_search_highlights.py | 32 +
...ighlights_highlighted_summary_item_item.py | 22 +
...earch_highlights_highlighted_title_item.py | 22 +
.../requests/article_search_response.py | 30 +
.../requests/article_search_response_data.py | 23 +
src/intercom/unstable/companies/__init__.py | 12 +-
.../unstable/companies/requests/__init__.py | 10 +
.../unstable/companies/requests/company.py | 105 ++++
.../companies/requests/company_plan.py | 20 +
.../companies/requests/company_segments.py | 19 +
.../companies/requests/company_tags.py | 18 +
src/intercom/unstable/contacts/__init__.py | 16 +
src/intercom/unstable/contacts/client.py | 66 +-
src/intercom/unstable/contacts/raw_client.py | 28 +-
.../unstable/contacts/requests/__init__.py | 21 +
.../unstable/contacts/requests/contact.py | 224 +++++++
.../contacts/requests/contact_avatar.py | 15 +
.../requests/create_contact_response.py | 11 +
.../requests/merge_contact_response.py | 11 +
.../show_contact_by_external_id_response.py | 11 +
.../requests/show_contact_response.py | 11 +
.../requests/update_contact_response.py | 11 +
.../unstable/conversations/__init__.py | 24 +
src/intercom/unstable/conversations/client.py | 222 +++----
.../unstable/conversations/raw_client.py | 134 ++--
.../conversations/requests/__init__.py | 37 ++
...ontact_to_conversation_request_customer.py | 19 +
..._conversation_request_customer_customer.py | 13 +
...ation_request_customer_intercom_user_id.py | 13 +
...o_conversation_request_customer_user_id.py | 13 +
.../conversations/requests/conversation.py | 111 ++++
.../create_conversation_request_from.py | 16 +
.../manage_conversation_request_body.py | 42 ++
.../unstable/custom_channel_events/client.py | 161 +++--
.../custom_channel_events/raw_client.py | 64 +-
.../custom_object_instances/__init__.py | 3 +-
.../requests/__init__.py | 7 +
.../requests/custom_object_instance.py | 51 ++
.../unstable/data_attributes/__init__.py | 2 +
.../data_attributes/requests/__init__.py | 7 +
.../requests/data_attribute.py | 98 +++
src/intercom/unstable/data_events/__init__.py | 14 +
src/intercom/unstable/data_events/client.py | 32 +-
.../unstable/data_events/raw_client.py | 42 +-
.../unstable/data_events/requests/__init__.py | 19 +
...event_summaries_request_event_summaries.py | 29 +
.../data_events/requests/data_event.py | 51 ++
.../lis_data_events_request_filter.py | 13 +
.../lis_data_events_request_filter_email.py | 7 +
..._events_request_filter_intercom_user_id.py | 7 +
.../lis_data_events_request_filter_user_id.py | 7 +
src/intercom/unstable/data_export/__init__.py | 3 +-
.../unstable/data_export/requests/__init__.py | 7 +
.../data_export/requests/data_export.py | 30 +
src/intercom/unstable/export/__init__.py | 10 +
.../unstable/export/requests/__init__.py | 19 +
...rt_reporting_data_get_datasets_response.py | 13 +
...ng_data_get_datasets_response_data_item.py | 18 +
...sets_response_data_item_attributes_item.py | 8 +
..._export_reporting_data_enqueue_response.py | 10 +
src/intercom/unstable/help_center/__init__.py | 3 +-
src/intercom/unstable/help_center/client.py | 18 +-
.../unstable/help_center/raw_client.py | 26 +-
.../unstable/help_center/requests/__init__.py | 9 +
.../help_center/requests/collection.py | 71 +++
.../help_center/requests/help_center.py | 44 ++
.../help_center/requests/help_center_list.py | 22 +
src/intercom/unstable/jobs/__init__.py | 3 +-
.../unstable/jobs/requests/__init__.py | 7 +
src/intercom/unstable/jobs/requests/jobs.py | 47 ++
src/intercom/unstable/messages/__init__.py | 3 +-
.../unstable/messages/requests/__init__.py | 7 +
.../unstable/messages/requests/message.py | 45 ++
src/intercom/unstable/news/__init__.py | 11 +-
src/intercom/unstable/news/client.py | 34 +-
src/intercom/unstable/news/raw_client.py | 34 +-
.../unstable/news/requests/__init__.py | 9 +
.../unstable/news/requests/news_item.py | 78 +++
.../unstable/news/requests/newsfeed.py | 31 +
.../news/requests/newsfeed_assignment.py | 19 +
src/intercom/unstable/notes/__init__.py | 3 +-
.../unstable/notes/requests/__init__.py | 8 +
src/intercom/unstable/notes/requests/note.py | 41 ++
.../unstable/notes/requests/note_contact.py | 19 +
src/intercom/unstable/requests/__init__.py | 399 ++++++++++++
.../unstable/requests/activity_log.py | 34 +
.../unstable/requests/activity_log_list.py | 24 +
.../requests/activity_log_metadata.py | 54 ++
.../requests/activity_log_performed_by.py | 29 +
.../unstable/requests/addressable_list.py | 24 +
src/intercom/unstable/requests/admin_list.py | 22 +
.../unstable/requests/admin_priority_level.py | 21 +
.../admin_reply_conversation_request.py | 46 ++
.../requests/admin_reply_ticket_request.py | 40 ++
...reply_ticket_request_reply_options_item.py | 16 +
.../unstable/requests/admin_with_app.py | 73 +++
.../requests/admin_with_app_avatar.py | 19 +
src/intercom/unstable/requests/app.py | 44 ++
.../unstable/requests/article_content.py | 55 ++
.../unstable/requests/article_list.py | 29 +
.../unstable/requests/article_statistics.py | 46 ++
.../requests/article_translated_content.py | 207 +++++++
.../requests/assign_conversation_request.py | 26 +
.../unstable/requests/away_status_reason.py | 41 ++
.../requests/close_conversation_request.py | 22 +
.../unstable/requests/collection_list.py | 29 +
.../requests/company_attached_contacts.py | 30 +
.../requests/company_attached_segments.py | 22 +
.../unstable/requests/company_data.py | 26 +
.../unstable/requests/company_list.py | 29 +
.../unstable/requests/company_scroll.py | 30 +
.../unstable/requests/contact_archived.py | 15 +
.../requests/contact_attached_companies.py | 30 +
.../unstable/requests/contact_blocked.py | 15 +
.../unstable/requests/contact_companies.py | 32 +
.../unstable/requests/contact_deleted.py | 15 +
.../unstable/requests/contact_list.py | 30 +
.../unstable/requests/contact_location.py | 29 +
.../unstable/requests/contact_notes.py | 32 +
.../unstable/requests/contact_reference.py | 26 +
.../requests/contact_reply_base_request.py | 30 +
...t_reply_base_request_reply_options_item.py | 16 +
.../contact_reply_conversation_request.py | 11 +
.../requests/contact_reply_email_request.py | 23 +
.../contact_reply_intercom_user_id_request.py | 23 +
.../contact_reply_ticket_email_request.py | 14 +
...t_reply_ticket_intercom_user_id_request.py | 14 +
.../requests/contact_reply_ticket_request.py | 13 +
.../contact_reply_ticket_user_id_request.py | 14 +
.../requests/contact_reply_user_id_request.py | 23 +
.../unstable/requests/contact_segments.py | 22 +
.../requests/contact_social_profiles.py | 17 +
.../requests/contact_subscription_types.py | 32 +
.../unstable/requests/contact_tags.py | 32 +
.../unstable/requests/contact_unarchived.py | 15 +
.../unstable/requests/content_sources_list.py | 19 +
.../requests/conversation_attachment_files.py | 24 +
...conversation_attribute_updated_by_admin.py | 14 +
...on_attribute_updated_by_admin_attribute.py | 10 +
...sation_attribute_updated_by_admin_value.py | 10 +
...versation_attribute_updated_by_workflow.py | 16 +
...attribute_updated_by_workflow_attribute.py | 10 +
...ion_attribute_updated_by_workflow_value.py | 10 +
..._attribute_updated_by_workflow_workflow.py | 10 +
.../requests/conversation_contacts.py | 22 +
.../unstable/requests/conversation_deleted.py | 26 +
.../conversation_first_contact_reply.py | 24 +
.../unstable/requests/conversation_list.py | 30 +
.../unstable/requests/conversation_part.py | 93 +++
.../requests/conversation_part_author.py | 39 ++
.../requests/conversation_part_metadata.py | 24 +
..._part_metadata_quick_reply_options_item.py | 13 +
.../unstable/requests/conversation_parts.py | 27 +
.../unstable/requests/conversation_rating.py | 29 +
.../requests/conversation_response_time.py | 24 +
.../unstable/requests/conversation_source.py | 55 ++
.../requests/conversation_statistics.py | 126 ++++
.../requests/conversation_teammates.py | 22 +
.../requests/create_or_update_tag_request.py | 19 +
...reate_ticket_reply_with_comment_request.py | 8 +
.../create_ticket_request_assignment.py | 15 +
.../requests/create_ticket_request_body.py | 44 ++
.../create_ticket_request_contacts_item.py | 13 +
...eate_ticket_request_contacts_item_email.py | 10 +
...icket_request_contacts_item_external_id.py | 10 +
.../create_ticket_request_contacts_item_id.py | 10 +
.../unstable/requests/cursor_pages.py | 34 +
.../requests/custom_action_finished.py | 12 +
.../requests/custom_action_finished_action.py | 16 +
.../requests/custom_action_started.py | 12 +
.../requests/custom_action_started_action.py | 10 +
.../unstable/requests/custom_attributes.py | 7 +
.../requests/custom_attributes_value.py | 8 +
.../requests/custom_channel_attribute.py | 15 +
.../requests/custom_channel_base_event.py | 18 +
.../requests/custom_channel_contact.py | 26 +
.../custom_channel_notification_response.py | 25 +
.../custom_object_instance_deleted.py | 24 +
.../requests/custom_object_instance_list.py | 18 +
.../unstable/requests/customer_request.py | 11 +
.../requests/customer_request_email.py | 10 +
.../customer_request_intercom_user_id.py | 10 +
.../requests/customer_request_user_id.py | 10 +
.../unstable/requests/data_attribute_list.py | 22 +
.../unstable/requests/data_event_list.py | 28 +
.../requests/data_event_list_pages.py | 12 +
.../unstable/requests/data_event_summary.py | 37 ++
.../requests/data_event_summary_item.py | 34 +
.../unstable/requests/data_export_csv.py | 139 +++++
src/intercom/unstable/requests/datetime.py | 6 +
.../requests/deleted_article_object.py | 26 +
.../requests/deleted_collection_object.py | 26 +
.../requests/deleted_company_object.py | 26 +
.../unstable/requests/deleted_object.py | 26 +
.../unstable/requests/email_address_header.py | 24 +
.../requests/email_message_metadata.py | 22 +
src/intercom/unstable/requests/error.py | 27 +
.../unstable/requests/error_errors_item.py | 20 +
.../unstable/requests/event_details.py | 17 +
.../unstable/requests/file_attribute.py | 40 ++
.../unstable/requests/group_content.py | 24 +
.../requests/group_translated_content.py | 201 ++++++
.../unstable/requests/linked_object.py | 25 +
.../unstable/requests/linked_object_list.py | 32 +
.../multiple_filter_search_request.py | 24 +
.../multiple_filter_search_request_value.py | 13 +
.../unstable/requests/news_item_request.py | 53 ++
.../unstable/requests/not_found_error_body.py | 23 +
.../not_found_error_body_errors_item.py | 15 +
src/intercom/unstable/requests/note_list.py | 30 +
.../requests/open_conversation_request.py | 14 +
.../requests/operator_workflow_event.py | 14 +
.../requests/operator_workflow_event_event.py | 15 +
.../operator_workflow_event_workflow.py | 10 +
src/intercom/unstable/requests/pages_link.py | 23 +
.../unstable/requests/paginated_response.py | 30 +
.../requests/paginated_response_data_item.py | 39 ++
.../unstable/requests/part_attachment.py | 44 ++
.../unstable/requests/phone_switch.py | 21 +
.../unstable/requests/quick_reply_option.py | 16 +
src/intercom/unstable/requests/recipient.py | 20 +
.../requests/redact_conversation_request.py | 24 +
..._conversation_request_conversation_part.py | 19 +
.../redact_conversation_request_source.py | 19 +
src/intercom/unstable/requests/reference.py | 19 +
.../reply_conversation_request_body.py | 10 +
.../unstable/requests/search_request.py | 14 +
.../unstable/requests/search_request_query.py | 8 +
.../unstable/requests/segment_list.py | 27 +
.../requests/single_filter_search_request.py | 26 +
.../single_filter_search_request_value.py | 7 +
...single_filter_search_request_value_item.py | 5 +
src/intercom/unstable/requests/sla_applied.py | 29 +
.../requests/snooze_conversation_request.py | 19 +
.../unstable/requests/social_profile.py | 24 +
.../requests/starting_after_paging.py | 15 +
.../requests/subscription_type_list.py | 22 +
.../unstable/requests/tag_company_request.py | 22 +
.../tag_company_request_companies_item.py | 15 +
src/intercom/unstable/requests/tag_list.py | 22 +
.../requests/tag_multiple_users_request.py | 19 +
.../tag_multiple_users_request_users_item.py | 10 +
src/intercom/unstable/requests/tags.py | 22 +
src/intercom/unstable/requests/team_list.py | 22 +
.../unstable/requests/team_priority_level.py | 21 +
.../requests/ticket_custom_attributes.py | 7 +
.../ticket_custom_attributes_value.py | 9 +
src/intercom/unstable/requests/ticket_list.py | 30 +
.../unstable/requests/ticket_part_author.py | 30 +
.../unstable/requests/ticket_parts.py | 27 +
.../unstable/requests/ticket_reply.py | 55 ++
.../ticket_request_custom_attributes.py | 7 +
.../ticket_request_custom_attributes_value.py | 7 +
.../unstable/requests/ticket_state_list.py | 22 +
.../requests/ticket_type_attribute.py | 96 +++
.../requests/ticket_type_attribute_list.py | 22 +
.../unstable/requests/ticket_type_list.py | 22 +
src/intercom/unstable/requests/translation.py | 24 +
.../requests/untag_company_request.py | 22 +
.../untag_company_request_companies_item.py | 20 +
.../requests/update_article_request_body.py | 48 ++
.../update_ticket_type_request_body.py | 41 ++
src/intercom/unstable/requests/visitor.py | 158 +++++
.../unstable/requests/visitor_avatar.py | 15 +
.../unstable/requests/visitor_companies.py | 15 +
.../requests/visitor_deleted_object.py | 26 +
.../requests/visitor_location_data.py | 45 ++
.../unstable/requests/visitor_segments.py | 14 +
.../requests/visitor_social_profiles.py | 14 +
.../unstable/requests/visitor_tags.py | 15 +
.../requests/visitor_tags_tags_item.py | 22 +
.../requests/whatsapp_message_status_list.py | 23 +
...hatsapp_message_status_list_events_item.py | 48 ++
.../whatsapp_message_status_list_pages.py | 24 +
...whatsapp_message_status_list_pages_next.py | 14 +
src/intercom/unstable/segments/__init__.py | 3 +-
.../unstable/segments/requests/__init__.py | 7 +
.../unstable/segments/requests/segment.py | 47 ++
.../unstable/subscription_types/__init__.py | 2 +
.../subscription_types/requests/__init__.py | 7 +
.../requests/subscription_type.py | 46 ++
src/intercom/unstable/tags/__init__.py | 3 +-
src/intercom/unstable/tags/client.py | 20 +-
src/intercom/unstable/tags/raw_client.py | 14 +-
.../unstable/tags/requests/__init__.py | 9 +
.../tags/requests/create_tag_request_body.py | 12 +
src/intercom/unstable/tags/requests/tag.py | 32 +
.../unstable/tags/requests/tag_basic.py | 24 +
src/intercom/unstable/teams/__init__.py | 3 +-
.../unstable/teams/requests/__init__.py | 7 +
src/intercom/unstable/teams/requests/team.py | 34 +
src/intercom/unstable/tickets/__init__.py | 32 +
src/intercom/unstable/tickets/client.py | 132 ++--
src/intercom/unstable/tickets/raw_client.py | 74 +--
.../unstable/tickets/requests/__init__.py | 37 ++
.../requests/delete_ticket_response.py | 26 +
.../requests/reply_ticket_request_body.py | 8 +
.../unstable/tickets/requests/ticket.py | 79 +++
.../tickets/requests/ticket_contacts.py | 22 +
.../unstable/tickets/requests/ticket_part.py | 88 +++
.../ticket_part_updated_attribute_data.py | 21 +
...t_part_updated_attribute_data_attribute.py | 26 +
...icket_part_updated_attribute_data_value.py | 21 +
...et_part_updated_attribute_data_value_id.py | 5 +
...part_updated_attribute_data_value_label.py | 5 +
.../unstable/tickets/requests/ticket_state.py | 35 ++
.../tickets/requests/ticket_state_detailed.py | 46 ++
.../ticket_state_detailed_ticket_types.py | 22 +
.../unstable/tickets/requests/ticket_type.py | 68 ++
.../requests/ticket_type_ticket_states.py | 22 +
src/intercom/version.py | 2 +-
src/intercom/visitors/__init__.py | 16 +
src/intercom/visitors/client.py | 67 +-
src/intercom/visitors/raw_client.py | 42 +-
src/intercom/visitors/requests/__init__.py | 21 +
.../requests/convert_visitor_request_user.py | 8 +
.../convert_visitor_request_visitor.py | 9 +
.../visitors/requests/user_with_id.py | 15 +
.../visitors/requests/user_with_user_id.py | 15 +
.../visitors/requests/visitor_with_email.py | 10 +
.../visitors/requests/visitor_with_id.py | 10 +
.../visitors/requests/visitor_with_user_id.py | 10 +
657 files changed, 20295 insertions(+), 1688 deletions(-)
create mode 100644 src/intercom/admins/requests/__init__.py
create mode 100644 src/intercom/admins/requests/admin.py
create mode 100644 src/intercom/admins/requests/admin_avatar.py
create mode 100644 src/intercom/ai_agent/requests/__init__.py
create mode 100644 src/intercom/ai_agent/requests/ai_agent.py
create mode 100644 src/intercom/ai_content_source/requests/__init__.py
create mode 100644 src/intercom/ai_content_source/requests/content_source.py
create mode 100644 src/intercom/articles/requests/__init__.py
create mode 100644 src/intercom/articles/requests/article.py
create mode 100644 src/intercom/articles/requests/article_list_item.py
create mode 100644 src/intercom/articles/requests/article_search_highlights.py
create mode 100644 src/intercom/articles/requests/article_search_highlights_highlighted_summary_item_item.py
create mode 100644 src/intercom/articles/requests/article_search_highlights_highlighted_title_item.py
create mode 100644 src/intercom/articles/requests/search_articles_response.py
create mode 100644 src/intercom/articles/requests/search_articles_response_data.py
create mode 100644 src/intercom/companies/requests/__init__.py
create mode 100644 src/intercom/companies/requests/companies_retrieve_response.py
create mode 100644 src/intercom/companies/requests/company.py
create mode 100644 src/intercom/companies/requests/company_plan.py
create mode 100644 src/intercom/companies/requests/company_segments.py
create mode 100644 src/intercom/companies/requests/company_tags.py
create mode 100644 src/intercom/contacts/requests/__init__.py
create mode 100644 src/intercom/contacts/requests/contact.py
create mode 100644 src/intercom/conversations/requests/__init__.py
create mode 100644 src/intercom/conversations/requests/attach_contact_to_conversation_request_customer.py
create mode 100644 src/intercom/conversations/requests/attach_contact_to_conversation_request_customer_customer.py
create mode 100644 src/intercom/conversations/requests/attach_contact_to_conversation_request_customer_intercom_user_id.py
create mode 100644 src/intercom/conversations/requests/attach_contact_to_conversation_request_customer_user_id.py
create mode 100644 src/intercom/conversations/requests/conversation.py
create mode 100644 src/intercom/conversations/requests/conversations_manage_request_body.py
create mode 100644 src/intercom/conversations/requests/create_conversation_request_from.py
create mode 100644 src/intercom/data_attributes/requests/__init__.py
create mode 100644 src/intercom/data_attributes/requests/data_attribute.py
create mode 100644 src/intercom/data_attributes/requests/update_data_attribute_request_options_item.py
create mode 100644 src/intercom/data_events/requests/__init__.py
create mode 100644 src/intercom/data_events/requests/data_event.py
create mode 100644 src/intercom/data_export/requests/__init__.py
create mode 100644 src/intercom/data_export/requests/data_export.py
create mode 100644 src/intercom/events/requests/__init__.py
create mode 100644 src/intercom/events/requests/create_data_event_summaries_request_event_summaries.py
create mode 100644 src/intercom/help_center/requests/__init__.py
create mode 100644 src/intercom/help_center/requests/collection.py
create mode 100644 src/intercom/help_center/requests/help_center.py
create mode 100644 src/intercom/help_center/requests/help_center_list.py
create mode 100644 src/intercom/messages/requests/__init__.py
create mode 100644 src/intercom/messages/requests/message.py
create mode 100644 src/intercom/news/requests/__init__.py
create mode 100644 src/intercom/news/requests/news_item.py
create mode 100644 src/intercom/news/requests/newsfeed.py
create mode 100644 src/intercom/news/requests/newsfeed_assignment.py
create mode 100644 src/intercom/notes/requests/__init__.py
create mode 100644 src/intercom/notes/requests/note.py
create mode 100644 src/intercom/notes/requests/note_contact.py
create mode 100644 src/intercom/requests/__init__.py
create mode 100644 src/intercom/requests/action_component.py
create mode 100644 src/intercom/requests/activity_log.py
create mode 100644 src/intercom/requests/activity_log_list.py
create mode 100644 src/intercom/requests/activity_log_metadata.py
create mode 100644 src/intercom/requests/activity_log_performed_by.py
create mode 100644 src/intercom/requests/addressable_list.py
create mode 100644 src/intercom/requests/admin_list.py
create mode 100644 src/intercom/requests/admin_priority_level.py
create mode 100644 src/intercom/requests/admin_reply_conversation_request.py
create mode 100644 src/intercom/requests/admin_reply_ticket_request.py
create mode 100644 src/intercom/requests/admin_reply_ticket_request_reply_options_item.py
create mode 100644 src/intercom/requests/admin_with_app.py
create mode 100644 src/intercom/requests/admin_with_app_avatar.py
create mode 100644 src/intercom/requests/app.py
create mode 100644 src/intercom/requests/article_content.py
create mode 100644 src/intercom/requests/article_list.py
create mode 100644 src/intercom/requests/article_statistics.py
create mode 100644 src/intercom/requests/article_translated_content.py
create mode 100644 src/intercom/requests/assign_conversation_request.py
create mode 100644 src/intercom/requests/button_component.py
create mode 100644 src/intercom/requests/canvas_object.py
create mode 100644 src/intercom/requests/checkbox_component.py
create mode 100644 src/intercom/requests/checkbox_option.py
create mode 100644 src/intercom/requests/close_conversation_request.py
create mode 100644 src/intercom/requests/collection_list.py
create mode 100644 src/intercom/requests/company_attached_contacts.py
create mode 100644 src/intercom/requests/company_attached_segments.py
create mode 100644 src/intercom/requests/company_list.py
create mode 100644 src/intercom/requests/company_scroll.py
create mode 100644 src/intercom/requests/component.py
create mode 100644 src/intercom/requests/configure_request.py
create mode 100644 src/intercom/requests/configure_request_component_id.py
create mode 100644 src/intercom/requests/configure_request_zero.py
create mode 100644 src/intercom/requests/configure_response.py
create mode 100644 src/intercom/requests/configure_response_canvas.py
create mode 100644 src/intercom/requests/contact_archived.py
create mode 100644 src/intercom/requests/contact_attached_companies.py
create mode 100644 src/intercom/requests/contact_companies.py
create mode 100644 src/intercom/requests/contact_company.py
create mode 100644 src/intercom/requests/contact_deleted.py
create mode 100644 src/intercom/requests/contact_list.py
create mode 100644 src/intercom/requests/contact_location.py
create mode 100644 src/intercom/requests/contact_notes.py
create mode 100644 src/intercom/requests/contact_reference.py
create mode 100644 src/intercom/requests/contact_reply_base_request.py
create mode 100644 src/intercom/requests/contact_reply_conversation_request.py
create mode 100644 src/intercom/requests/contact_reply_email_request.py
create mode 100644 src/intercom/requests/contact_reply_intercom_user_id_request.py
create mode 100644 src/intercom/requests/contact_reply_ticket_email_request.py
create mode 100644 src/intercom/requests/contact_reply_ticket_intercom_user_id_request.py
create mode 100644 src/intercom/requests/contact_reply_ticket_request.py
create mode 100644 src/intercom/requests/contact_reply_ticket_user_id_request.py
create mode 100644 src/intercom/requests/contact_reply_user_id_request.py
create mode 100644 src/intercom/requests/contact_segments.py
create mode 100644 src/intercom/requests/contact_social_profiles.py
create mode 100644 src/intercom/requests/contact_subscription_types.py
create mode 100644 src/intercom/requests/contact_tags.py
create mode 100644 src/intercom/requests/contact_unarchived.py
create mode 100644 src/intercom/requests/content_object.py
create mode 100644 src/intercom/requests/content_sources_list.py
create mode 100644 src/intercom/requests/context.py
create mode 100644 src/intercom/requests/conversation_attachment_files.py
create mode 100644 src/intercom/requests/conversation_contacts.py
create mode 100644 src/intercom/requests/conversation_first_contact_reply.py
create mode 100644 src/intercom/requests/conversation_part.py
create mode 100644 src/intercom/requests/conversation_part_author.py
create mode 100644 src/intercom/requests/conversation_parts.py
create mode 100644 src/intercom/requests/conversation_rating.py
create mode 100644 src/intercom/requests/conversation_source.py
create mode 100644 src/intercom/requests/conversation_statistics.py
create mode 100644 src/intercom/requests/conversation_teammates.py
create mode 100644 src/intercom/requests/create_contact_request.py
create mode 100644 src/intercom/requests/create_contact_request_with_email.py
create mode 100644 src/intercom/requests/create_contact_request_with_external_id.py
create mode 100644 src/intercom/requests/create_contact_request_with_role.py
create mode 100644 src/intercom/requests/create_data_event_request.py
create mode 100644 src/intercom/requests/create_data_event_request_with_email.py
create mode 100644 src/intercom/requests/create_data_event_request_with_id.py
create mode 100644 src/intercom/requests/create_data_event_request_with_user_id.py
create mode 100644 src/intercom/requests/create_message_request.py
create mode 100644 src/intercom/requests/create_message_request_from.py
create mode 100644 src/intercom/requests/create_message_request_to.py
create mode 100644 src/intercom/requests/create_message_request_with_email.py
create mode 100644 src/intercom/requests/create_message_request_with_inapp.py
create mode 100644 src/intercom/requests/create_or_update_tag_request.py
create mode 100644 src/intercom/requests/create_ticket_reply_with_comment_request.py
create mode 100644 src/intercom/requests/create_ticket_request.py
create mode 100644 src/intercom/requests/create_ticket_request_contacts_item.py
create mode 100644 src/intercom/requests/create_ticket_request_contacts_item_email.py
create mode 100644 src/intercom/requests/create_ticket_request_contacts_item_external_id.py
create mode 100644 src/intercom/requests/create_ticket_request_contacts_item_id.py
create mode 100644 src/intercom/requests/current_canvas.py
create mode 100644 src/intercom/requests/cursor_pages.py
create mode 100644 src/intercom/requests/customer_request.py
create mode 100644 src/intercom/requests/customer_request_email.py
create mode 100644 src/intercom/requests/customer_request_intercom_user_id.py
create mode 100644 src/intercom/requests/customer_request_user_id.py
create mode 100644 src/intercom/requests/data_attribute_list.py
create mode 100644 src/intercom/requests/data_event_list.py
create mode 100644 src/intercom/requests/data_event_list_pages.py
create mode 100644 src/intercom/requests/data_event_summary.py
create mode 100644 src/intercom/requests/data_event_summary_item.py
create mode 100644 src/intercom/requests/data_export_csv.py
create mode 100644 src/intercom/requests/data_table_component.py
create mode 100644 src/intercom/requests/data_table_item.py
create mode 100644 src/intercom/requests/deleted_article_object.py
create mode 100644 src/intercom/requests/deleted_collection_object.py
create mode 100644 src/intercom/requests/deleted_company_object.py
create mode 100644 src/intercom/requests/deleted_object.py
create mode 100644 src/intercom/requests/divider_component.py
create mode 100644 src/intercom/requests/dropdown_component.py
create mode 100644 src/intercom/requests/dropdown_option.py
create mode 100644 src/intercom/requests/error.py
create mode 100644 src/intercom/requests/error_errors_item.py
create mode 100644 src/intercom/requests/event.py
create mode 100644 src/intercom/requests/file_attribute.py
create mode 100644 src/intercom/requests/group_content.py
create mode 100644 src/intercom/requests/group_translated_content.py
create mode 100644 src/intercom/requests/image_component.py
create mode 100644 src/intercom/requests/initialize_request.py
create mode 100644 src/intercom/requests/initialize_response.py
create mode 100644 src/intercom/requests/input_component.py
create mode 100644 src/intercom/requests/linked_object.py
create mode 100644 src/intercom/requests/linked_object_list.py
create mode 100644 src/intercom/requests/list_component.py
create mode 100644 src/intercom/requests/list_component_items_item.py
create mode 100644 src/intercom/requests/list_item.py
create mode 100644 src/intercom/requests/list_item_with_image.py
create mode 100644 src/intercom/requests/list_item_without_image.py
create mode 100644 src/intercom/requests/live_canvas_request.py
create mode 100644 src/intercom/requests/live_canvas_response.py
create mode 100644 src/intercom/requests/metadata.py
create mode 100644 src/intercom/requests/multiple_filter_search_request.py
create mode 100644 src/intercom/requests/multiple_or_single_filter_search_request.py
create mode 100644 src/intercom/requests/news_item_request.py
create mode 100644 src/intercom/requests/note_list.py
create mode 100644 src/intercom/requests/offset_pages.py
create mode 100644 src/intercom/requests/open_conversation_request.py
create mode 100644 src/intercom/requests/pages_link.py
create mode 100644 src/intercom/requests/paginated_conversation_response.py
create mode 100644 src/intercom/requests/paginated_news_item_response.py
create mode 100644 src/intercom/requests/paginated_newsfeed_response.py
create mode 100644 src/intercom/requests/part_attachment.py
create mode 100644 src/intercom/requests/phone_switch.py
create mode 100644 src/intercom/requests/redact_conversation_request.py
create mode 100644 src/intercom/requests/redact_conversation_request_conversation_part.py
create mode 100644 src/intercom/requests/redact_conversation_request_source.py
create mode 100644 src/intercom/requests/reference.py
create mode 100644 src/intercom/requests/reply_conversation_request.py
create mode 100644 src/intercom/requests/results_response.py
create mode 100644 src/intercom/requests/search_request.py
create mode 100644 src/intercom/requests/search_request_query.py
create mode 100644 src/intercom/requests/segment_list.py
create mode 100644 src/intercom/requests/sheet_action_component.py
create mode 100644 src/intercom/requests/single_filter_search_request.py
create mode 100644 src/intercom/requests/single_filter_search_request_value.py
create mode 100644 src/intercom/requests/single_select_component.py
create mode 100644 src/intercom/requests/single_select_option.py
create mode 100644 src/intercom/requests/sla_applied.py
create mode 100644 src/intercom/requests/snooze_conversation_request.py
create mode 100644 src/intercom/requests/social_profile.py
create mode 100644 src/intercom/requests/spacer_component.py
create mode 100644 src/intercom/requests/starting_after_paging.py
create mode 100644 src/intercom/requests/submit_action_component.py
create mode 100644 src/intercom/requests/submit_request.py
create mode 100644 src/intercom/requests/submit_response.py
create mode 100644 src/intercom/requests/subscription_type_list.py
create mode 100644 src/intercom/requests/tag_company_request.py
create mode 100644 src/intercom/requests/tag_company_request_companies_item.py
create mode 100644 src/intercom/requests/tag_list.py
create mode 100644 src/intercom/requests/tag_multiple_users_request.py
create mode 100644 src/intercom/requests/tag_multiple_users_request_users_item.py
create mode 100644 src/intercom/requests/tags.py
create mode 100644 src/intercom/requests/team_list.py
create mode 100644 src/intercom/requests/team_priority_level.py
create mode 100644 src/intercom/requests/text_area_component.py
create mode 100644 src/intercom/requests/text_component.py
create mode 100644 src/intercom/requests/ticket_list.py
create mode 100644 src/intercom/requests/ticket_part_author.py
create mode 100644 src/intercom/requests/ticket_parts.py
create mode 100644 src/intercom/requests/ticket_reply.py
create mode 100644 src/intercom/requests/ticket_type_attribute.py
create mode 100644 src/intercom/requests/ticket_type_attribute_list.py
create mode 100644 src/intercom/requests/ticket_type_list.py
create mode 100644 src/intercom/requests/translation.py
create mode 100644 src/intercom/requests/untag_company_request.py
create mode 100644 src/intercom/requests/untag_company_request_companies_item.py
create mode 100644 src/intercom/requests/update_visitor_request.py
create mode 100644 src/intercom/requests/update_visitor_request_with_id.py
create mode 100644 src/intercom/requests/update_visitor_request_with_user_id.py
create mode 100644 src/intercom/requests/url_action_component.py
create mode 100644 src/intercom/requests/visitor.py
create mode 100644 src/intercom/requests/visitor_avatar.py
create mode 100644 src/intercom/requests/visitor_companies.py
create mode 100644 src/intercom/requests/visitor_deleted_object.py
create mode 100644 src/intercom/requests/visitor_location_data.py
create mode 100644 src/intercom/requests/visitor_segments.py
create mode 100644 src/intercom/requests/visitor_social_profiles.py
create mode 100644 src/intercom/requests/visitor_tags.py
create mode 100644 src/intercom/requests/visitor_tags_tags_item.py
create mode 100644 src/intercom/segments/requests/__init__.py
create mode 100644 src/intercom/segments/requests/segment.py
create mode 100644 src/intercom/subscription_types/requests/__init__.py
create mode 100644 src/intercom/subscription_types/requests/subscription_type.py
create mode 100644 src/intercom/tags/requests/__init__.py
create mode 100644 src/intercom/tags/requests/tag.py
create mode 100644 src/intercom/tags/requests/tags_create_request_body.py
create mode 100644 src/intercom/teams/requests/__init__.py
create mode 100644 src/intercom/teams/requests/team.py
create mode 100644 src/intercom/tickets/requests/__init__.py
create mode 100644 src/intercom/tickets/requests/ticket.py
create mode 100644 src/intercom/tickets/requests/ticket_contacts.py
create mode 100644 src/intercom/tickets/requests/ticket_part.py
create mode 100644 src/intercom/tickets/requests/ticket_type.py
create mode 100644 src/intercom/tickets/requests/tickets_reply_request_body.py
create mode 100644 src/intercom/tickets/requests/update_ticket_request_assignment.py
create mode 100644 src/intercom/unstable/admins/requests/__init__.py
create mode 100644 src/intercom/unstable/admins/requests/admin.py
create mode 100644 src/intercom/unstable/ai_agent/requests/__init__.py
create mode 100644 src/intercom/unstable/ai_agent/requests/ai_agent.py
create mode 100644 src/intercom/unstable/ai_content/requests/__init__.py
create mode 100644 src/intercom/unstable/ai_content/requests/content_import_source.py
create mode 100644 src/intercom/unstable/ai_content/requests/content_import_sources_list.py
create mode 100644 src/intercom/unstable/ai_content/requests/external_page.py
create mode 100644 src/intercom/unstable/ai_content/requests/external_pages_list.py
create mode 100644 src/intercom/unstable/ai_content_source/requests/__init__.py
create mode 100644 src/intercom/unstable/ai_content_source/requests/content_source.py
create mode 100644 src/intercom/unstable/articles/requests/__init__.py
create mode 100644 src/intercom/unstable/articles/requests/article.py
create mode 100644 src/intercom/unstable/articles/requests/article_list_item.py
create mode 100644 src/intercom/unstable/articles/requests/article_search_highlights.py
create mode 100644 src/intercom/unstable/articles/requests/article_search_highlights_highlighted_summary_item_item.py
create mode 100644 src/intercom/unstable/articles/requests/article_search_highlights_highlighted_title_item.py
create mode 100644 src/intercom/unstable/articles/requests/article_search_response.py
create mode 100644 src/intercom/unstable/articles/requests/article_search_response_data.py
create mode 100644 src/intercom/unstable/companies/requests/__init__.py
create mode 100644 src/intercom/unstable/companies/requests/company.py
create mode 100644 src/intercom/unstable/companies/requests/company_plan.py
create mode 100644 src/intercom/unstable/companies/requests/company_segments.py
create mode 100644 src/intercom/unstable/companies/requests/company_tags.py
create mode 100644 src/intercom/unstable/contacts/requests/__init__.py
create mode 100644 src/intercom/unstable/contacts/requests/contact.py
create mode 100644 src/intercom/unstable/contacts/requests/contact_avatar.py
create mode 100644 src/intercom/unstable/contacts/requests/create_contact_response.py
create mode 100644 src/intercom/unstable/contacts/requests/merge_contact_response.py
create mode 100644 src/intercom/unstable/contacts/requests/show_contact_by_external_id_response.py
create mode 100644 src/intercom/unstable/contacts/requests/show_contact_response.py
create mode 100644 src/intercom/unstable/contacts/requests/update_contact_response.py
create mode 100644 src/intercom/unstable/conversations/requests/__init__.py
create mode 100644 src/intercom/unstable/conversations/requests/attach_contact_to_conversation_request_customer.py
create mode 100644 src/intercom/unstable/conversations/requests/attach_contact_to_conversation_request_customer_customer.py
create mode 100644 src/intercom/unstable/conversations/requests/attach_contact_to_conversation_request_customer_intercom_user_id.py
create mode 100644 src/intercom/unstable/conversations/requests/attach_contact_to_conversation_request_customer_user_id.py
create mode 100644 src/intercom/unstable/conversations/requests/conversation.py
create mode 100644 src/intercom/unstable/conversations/requests/create_conversation_request_from.py
create mode 100644 src/intercom/unstable/conversations/requests/manage_conversation_request_body.py
create mode 100644 src/intercom/unstable/custom_object_instances/requests/__init__.py
create mode 100644 src/intercom/unstable/custom_object_instances/requests/custom_object_instance.py
create mode 100644 src/intercom/unstable/data_attributes/requests/__init__.py
create mode 100644 src/intercom/unstable/data_attributes/requests/data_attribute.py
create mode 100644 src/intercom/unstable/data_events/requests/__init__.py
create mode 100644 src/intercom/unstable/data_events/requests/create_data_event_summaries_request_event_summaries.py
create mode 100644 src/intercom/unstable/data_events/requests/data_event.py
create mode 100644 src/intercom/unstable/data_events/requests/lis_data_events_request_filter.py
create mode 100644 src/intercom/unstable/data_events/requests/lis_data_events_request_filter_email.py
create mode 100644 src/intercom/unstable/data_events/requests/lis_data_events_request_filter_intercom_user_id.py
create mode 100644 src/intercom/unstable/data_events/requests/lis_data_events_request_filter_user_id.py
create mode 100644 src/intercom/unstable/data_export/requests/__init__.py
create mode 100644 src/intercom/unstable/data_export/requests/data_export.py
create mode 100644 src/intercom/unstable/export/requests/__init__.py
create mode 100644 src/intercom/unstable/export/requests/get_export_reporting_data_get_datasets_response.py
create mode 100644 src/intercom/unstable/export/requests/get_export_reporting_data_get_datasets_response_data_item.py
create mode 100644 src/intercom/unstable/export/requests/get_export_reporting_data_get_datasets_response_data_item_attributes_item.py
create mode 100644 src/intercom/unstable/export/requests/post_export_reporting_data_enqueue_response.py
create mode 100644 src/intercom/unstable/help_center/requests/__init__.py
create mode 100644 src/intercom/unstable/help_center/requests/collection.py
create mode 100644 src/intercom/unstable/help_center/requests/help_center.py
create mode 100644 src/intercom/unstable/help_center/requests/help_center_list.py
create mode 100644 src/intercom/unstable/jobs/requests/__init__.py
create mode 100644 src/intercom/unstable/jobs/requests/jobs.py
create mode 100644 src/intercom/unstable/messages/requests/__init__.py
create mode 100644 src/intercom/unstable/messages/requests/message.py
create mode 100644 src/intercom/unstable/news/requests/__init__.py
create mode 100644 src/intercom/unstable/news/requests/news_item.py
create mode 100644 src/intercom/unstable/news/requests/newsfeed.py
create mode 100644 src/intercom/unstable/news/requests/newsfeed_assignment.py
create mode 100644 src/intercom/unstable/notes/requests/__init__.py
create mode 100644 src/intercom/unstable/notes/requests/note.py
create mode 100644 src/intercom/unstable/notes/requests/note_contact.py
create mode 100644 src/intercom/unstable/requests/__init__.py
create mode 100644 src/intercom/unstable/requests/activity_log.py
create mode 100644 src/intercom/unstable/requests/activity_log_list.py
create mode 100644 src/intercom/unstable/requests/activity_log_metadata.py
create mode 100644 src/intercom/unstable/requests/activity_log_performed_by.py
create mode 100644 src/intercom/unstable/requests/addressable_list.py
create mode 100644 src/intercom/unstable/requests/admin_list.py
create mode 100644 src/intercom/unstable/requests/admin_priority_level.py
create mode 100644 src/intercom/unstable/requests/admin_reply_conversation_request.py
create mode 100644 src/intercom/unstable/requests/admin_reply_ticket_request.py
create mode 100644 src/intercom/unstable/requests/admin_reply_ticket_request_reply_options_item.py
create mode 100644 src/intercom/unstable/requests/admin_with_app.py
create mode 100644 src/intercom/unstable/requests/admin_with_app_avatar.py
create mode 100644 src/intercom/unstable/requests/app.py
create mode 100644 src/intercom/unstable/requests/article_content.py
create mode 100644 src/intercom/unstable/requests/article_list.py
create mode 100644 src/intercom/unstable/requests/article_statistics.py
create mode 100644 src/intercom/unstable/requests/article_translated_content.py
create mode 100644 src/intercom/unstable/requests/assign_conversation_request.py
create mode 100644 src/intercom/unstable/requests/away_status_reason.py
create mode 100644 src/intercom/unstable/requests/close_conversation_request.py
create mode 100644 src/intercom/unstable/requests/collection_list.py
create mode 100644 src/intercom/unstable/requests/company_attached_contacts.py
create mode 100644 src/intercom/unstable/requests/company_attached_segments.py
create mode 100644 src/intercom/unstable/requests/company_data.py
create mode 100644 src/intercom/unstable/requests/company_list.py
create mode 100644 src/intercom/unstable/requests/company_scroll.py
create mode 100644 src/intercom/unstable/requests/contact_archived.py
create mode 100644 src/intercom/unstable/requests/contact_attached_companies.py
create mode 100644 src/intercom/unstable/requests/contact_blocked.py
create mode 100644 src/intercom/unstable/requests/contact_companies.py
create mode 100644 src/intercom/unstable/requests/contact_deleted.py
create mode 100644 src/intercom/unstable/requests/contact_list.py
create mode 100644 src/intercom/unstable/requests/contact_location.py
create mode 100644 src/intercom/unstable/requests/contact_notes.py
create mode 100644 src/intercom/unstable/requests/contact_reference.py
create mode 100644 src/intercom/unstable/requests/contact_reply_base_request.py
create mode 100644 src/intercom/unstable/requests/contact_reply_base_request_reply_options_item.py
create mode 100644 src/intercom/unstable/requests/contact_reply_conversation_request.py
create mode 100644 src/intercom/unstable/requests/contact_reply_email_request.py
create mode 100644 src/intercom/unstable/requests/contact_reply_intercom_user_id_request.py
create mode 100644 src/intercom/unstable/requests/contact_reply_ticket_email_request.py
create mode 100644 src/intercom/unstable/requests/contact_reply_ticket_intercom_user_id_request.py
create mode 100644 src/intercom/unstable/requests/contact_reply_ticket_request.py
create mode 100644 src/intercom/unstable/requests/contact_reply_ticket_user_id_request.py
create mode 100644 src/intercom/unstable/requests/contact_reply_user_id_request.py
create mode 100644 src/intercom/unstable/requests/contact_segments.py
create mode 100644 src/intercom/unstable/requests/contact_social_profiles.py
create mode 100644 src/intercom/unstable/requests/contact_subscription_types.py
create mode 100644 src/intercom/unstable/requests/contact_tags.py
create mode 100644 src/intercom/unstable/requests/contact_unarchived.py
create mode 100644 src/intercom/unstable/requests/content_sources_list.py
create mode 100644 src/intercom/unstable/requests/conversation_attachment_files.py
create mode 100644 src/intercom/unstable/requests/conversation_attribute_updated_by_admin.py
create mode 100644 src/intercom/unstable/requests/conversation_attribute_updated_by_admin_attribute.py
create mode 100644 src/intercom/unstable/requests/conversation_attribute_updated_by_admin_value.py
create mode 100644 src/intercom/unstable/requests/conversation_attribute_updated_by_workflow.py
create mode 100644 src/intercom/unstable/requests/conversation_attribute_updated_by_workflow_attribute.py
create mode 100644 src/intercom/unstable/requests/conversation_attribute_updated_by_workflow_value.py
create mode 100644 src/intercom/unstable/requests/conversation_attribute_updated_by_workflow_workflow.py
create mode 100644 src/intercom/unstable/requests/conversation_contacts.py
create mode 100644 src/intercom/unstable/requests/conversation_deleted.py
create mode 100644 src/intercom/unstable/requests/conversation_first_contact_reply.py
create mode 100644 src/intercom/unstable/requests/conversation_list.py
create mode 100644 src/intercom/unstable/requests/conversation_part.py
create mode 100644 src/intercom/unstable/requests/conversation_part_author.py
create mode 100644 src/intercom/unstable/requests/conversation_part_metadata.py
create mode 100644 src/intercom/unstable/requests/conversation_part_metadata_quick_reply_options_item.py
create mode 100644 src/intercom/unstable/requests/conversation_parts.py
create mode 100644 src/intercom/unstable/requests/conversation_rating.py
create mode 100644 src/intercom/unstable/requests/conversation_response_time.py
create mode 100644 src/intercom/unstable/requests/conversation_source.py
create mode 100644 src/intercom/unstable/requests/conversation_statistics.py
create mode 100644 src/intercom/unstable/requests/conversation_teammates.py
create mode 100644 src/intercom/unstable/requests/create_or_update_tag_request.py
create mode 100644 src/intercom/unstable/requests/create_ticket_reply_with_comment_request.py
create mode 100644 src/intercom/unstable/requests/create_ticket_request_assignment.py
create mode 100644 src/intercom/unstable/requests/create_ticket_request_body.py
create mode 100644 src/intercom/unstable/requests/create_ticket_request_contacts_item.py
create mode 100644 src/intercom/unstable/requests/create_ticket_request_contacts_item_email.py
create mode 100644 src/intercom/unstable/requests/create_ticket_request_contacts_item_external_id.py
create mode 100644 src/intercom/unstable/requests/create_ticket_request_contacts_item_id.py
create mode 100644 src/intercom/unstable/requests/cursor_pages.py
create mode 100644 src/intercom/unstable/requests/custom_action_finished.py
create mode 100644 src/intercom/unstable/requests/custom_action_finished_action.py
create mode 100644 src/intercom/unstable/requests/custom_action_started.py
create mode 100644 src/intercom/unstable/requests/custom_action_started_action.py
create mode 100644 src/intercom/unstable/requests/custom_attributes.py
create mode 100644 src/intercom/unstable/requests/custom_attributes_value.py
create mode 100644 src/intercom/unstable/requests/custom_channel_attribute.py
create mode 100644 src/intercom/unstable/requests/custom_channel_base_event.py
create mode 100644 src/intercom/unstable/requests/custom_channel_contact.py
create mode 100644 src/intercom/unstable/requests/custom_channel_notification_response.py
create mode 100644 src/intercom/unstable/requests/custom_object_instance_deleted.py
create mode 100644 src/intercom/unstable/requests/custom_object_instance_list.py
create mode 100644 src/intercom/unstable/requests/customer_request.py
create mode 100644 src/intercom/unstable/requests/customer_request_email.py
create mode 100644 src/intercom/unstable/requests/customer_request_intercom_user_id.py
create mode 100644 src/intercom/unstable/requests/customer_request_user_id.py
create mode 100644 src/intercom/unstable/requests/data_attribute_list.py
create mode 100644 src/intercom/unstable/requests/data_event_list.py
create mode 100644 src/intercom/unstable/requests/data_event_list_pages.py
create mode 100644 src/intercom/unstable/requests/data_event_summary.py
create mode 100644 src/intercom/unstable/requests/data_event_summary_item.py
create mode 100644 src/intercom/unstable/requests/data_export_csv.py
create mode 100644 src/intercom/unstable/requests/datetime.py
create mode 100644 src/intercom/unstable/requests/deleted_article_object.py
create mode 100644 src/intercom/unstable/requests/deleted_collection_object.py
create mode 100644 src/intercom/unstable/requests/deleted_company_object.py
create mode 100644 src/intercom/unstable/requests/deleted_object.py
create mode 100644 src/intercom/unstable/requests/email_address_header.py
create mode 100644 src/intercom/unstable/requests/email_message_metadata.py
create mode 100644 src/intercom/unstable/requests/error.py
create mode 100644 src/intercom/unstable/requests/error_errors_item.py
create mode 100644 src/intercom/unstable/requests/event_details.py
create mode 100644 src/intercom/unstable/requests/file_attribute.py
create mode 100644 src/intercom/unstable/requests/group_content.py
create mode 100644 src/intercom/unstable/requests/group_translated_content.py
create mode 100644 src/intercom/unstable/requests/linked_object.py
create mode 100644 src/intercom/unstable/requests/linked_object_list.py
create mode 100644 src/intercom/unstable/requests/multiple_filter_search_request.py
create mode 100644 src/intercom/unstable/requests/multiple_filter_search_request_value.py
create mode 100644 src/intercom/unstable/requests/news_item_request.py
create mode 100644 src/intercom/unstable/requests/not_found_error_body.py
create mode 100644 src/intercom/unstable/requests/not_found_error_body_errors_item.py
create mode 100644 src/intercom/unstable/requests/note_list.py
create mode 100644 src/intercom/unstable/requests/open_conversation_request.py
create mode 100644 src/intercom/unstable/requests/operator_workflow_event.py
create mode 100644 src/intercom/unstable/requests/operator_workflow_event_event.py
create mode 100644 src/intercom/unstable/requests/operator_workflow_event_workflow.py
create mode 100644 src/intercom/unstable/requests/pages_link.py
create mode 100644 src/intercom/unstable/requests/paginated_response.py
create mode 100644 src/intercom/unstable/requests/paginated_response_data_item.py
create mode 100644 src/intercom/unstable/requests/part_attachment.py
create mode 100644 src/intercom/unstable/requests/phone_switch.py
create mode 100644 src/intercom/unstable/requests/quick_reply_option.py
create mode 100644 src/intercom/unstable/requests/recipient.py
create mode 100644 src/intercom/unstable/requests/redact_conversation_request.py
create mode 100644 src/intercom/unstable/requests/redact_conversation_request_conversation_part.py
create mode 100644 src/intercom/unstable/requests/redact_conversation_request_source.py
create mode 100644 src/intercom/unstable/requests/reference.py
create mode 100644 src/intercom/unstable/requests/reply_conversation_request_body.py
create mode 100644 src/intercom/unstable/requests/search_request.py
create mode 100644 src/intercom/unstable/requests/search_request_query.py
create mode 100644 src/intercom/unstable/requests/segment_list.py
create mode 100644 src/intercom/unstable/requests/single_filter_search_request.py
create mode 100644 src/intercom/unstable/requests/single_filter_search_request_value.py
create mode 100644 src/intercom/unstable/requests/single_filter_search_request_value_item.py
create mode 100644 src/intercom/unstable/requests/sla_applied.py
create mode 100644 src/intercom/unstable/requests/snooze_conversation_request.py
create mode 100644 src/intercom/unstable/requests/social_profile.py
create mode 100644 src/intercom/unstable/requests/starting_after_paging.py
create mode 100644 src/intercom/unstable/requests/subscription_type_list.py
create mode 100644 src/intercom/unstable/requests/tag_company_request.py
create mode 100644 src/intercom/unstable/requests/tag_company_request_companies_item.py
create mode 100644 src/intercom/unstable/requests/tag_list.py
create mode 100644 src/intercom/unstable/requests/tag_multiple_users_request.py
create mode 100644 src/intercom/unstable/requests/tag_multiple_users_request_users_item.py
create mode 100644 src/intercom/unstable/requests/tags.py
create mode 100644 src/intercom/unstable/requests/team_list.py
create mode 100644 src/intercom/unstable/requests/team_priority_level.py
create mode 100644 src/intercom/unstable/requests/ticket_custom_attributes.py
create mode 100644 src/intercom/unstable/requests/ticket_custom_attributes_value.py
create mode 100644 src/intercom/unstable/requests/ticket_list.py
create mode 100644 src/intercom/unstable/requests/ticket_part_author.py
create mode 100644 src/intercom/unstable/requests/ticket_parts.py
create mode 100644 src/intercom/unstable/requests/ticket_reply.py
create mode 100644 src/intercom/unstable/requests/ticket_request_custom_attributes.py
create mode 100644 src/intercom/unstable/requests/ticket_request_custom_attributes_value.py
create mode 100644 src/intercom/unstable/requests/ticket_state_list.py
create mode 100644 src/intercom/unstable/requests/ticket_type_attribute.py
create mode 100644 src/intercom/unstable/requests/ticket_type_attribute_list.py
create mode 100644 src/intercom/unstable/requests/ticket_type_list.py
create mode 100644 src/intercom/unstable/requests/translation.py
create mode 100644 src/intercom/unstable/requests/untag_company_request.py
create mode 100644 src/intercom/unstable/requests/untag_company_request_companies_item.py
create mode 100644 src/intercom/unstable/requests/update_article_request_body.py
create mode 100644 src/intercom/unstable/requests/update_ticket_type_request_body.py
create mode 100644 src/intercom/unstable/requests/visitor.py
create mode 100644 src/intercom/unstable/requests/visitor_avatar.py
create mode 100644 src/intercom/unstable/requests/visitor_companies.py
create mode 100644 src/intercom/unstable/requests/visitor_deleted_object.py
create mode 100644 src/intercom/unstable/requests/visitor_location_data.py
create mode 100644 src/intercom/unstable/requests/visitor_segments.py
create mode 100644 src/intercom/unstable/requests/visitor_social_profiles.py
create mode 100644 src/intercom/unstable/requests/visitor_tags.py
create mode 100644 src/intercom/unstable/requests/visitor_tags_tags_item.py
create mode 100644 src/intercom/unstable/requests/whatsapp_message_status_list.py
create mode 100644 src/intercom/unstable/requests/whatsapp_message_status_list_events_item.py
create mode 100644 src/intercom/unstable/requests/whatsapp_message_status_list_pages.py
create mode 100644 src/intercom/unstable/requests/whatsapp_message_status_list_pages_next.py
create mode 100644 src/intercom/unstable/segments/requests/__init__.py
create mode 100644 src/intercom/unstable/segments/requests/segment.py
create mode 100644 src/intercom/unstable/subscription_types/requests/__init__.py
create mode 100644 src/intercom/unstable/subscription_types/requests/subscription_type.py
create mode 100644 src/intercom/unstable/tags/requests/__init__.py
create mode 100644 src/intercom/unstable/tags/requests/create_tag_request_body.py
create mode 100644 src/intercom/unstable/tags/requests/tag.py
create mode 100644 src/intercom/unstable/tags/requests/tag_basic.py
create mode 100644 src/intercom/unstable/teams/requests/__init__.py
create mode 100644 src/intercom/unstable/teams/requests/team.py
create mode 100644 src/intercom/unstable/tickets/requests/__init__.py
create mode 100644 src/intercom/unstable/tickets/requests/delete_ticket_response.py
create mode 100644 src/intercom/unstable/tickets/requests/reply_ticket_request_body.py
create mode 100644 src/intercom/unstable/tickets/requests/ticket.py
create mode 100644 src/intercom/unstable/tickets/requests/ticket_contacts.py
create mode 100644 src/intercom/unstable/tickets/requests/ticket_part.py
create mode 100644 src/intercom/unstable/tickets/requests/ticket_part_updated_attribute_data.py
create mode 100644 src/intercom/unstable/tickets/requests/ticket_part_updated_attribute_data_attribute.py
create mode 100644 src/intercom/unstable/tickets/requests/ticket_part_updated_attribute_data_value.py
create mode 100644 src/intercom/unstable/tickets/requests/ticket_part_updated_attribute_data_value_id.py
create mode 100644 src/intercom/unstable/tickets/requests/ticket_part_updated_attribute_data_value_label.py
create mode 100644 src/intercom/unstable/tickets/requests/ticket_state.py
create mode 100644 src/intercom/unstable/tickets/requests/ticket_state_detailed.py
create mode 100644 src/intercom/unstable/tickets/requests/ticket_state_detailed_ticket_types.py
create mode 100644 src/intercom/unstable/tickets/requests/ticket_type.py
create mode 100644 src/intercom/unstable/tickets/requests/ticket_type_ticket_states.py
create mode 100644 src/intercom/visitors/requests/__init__.py
create mode 100644 src/intercom/visitors/requests/convert_visitor_request_user.py
create mode 100644 src/intercom/visitors/requests/convert_visitor_request_visitor.py
create mode 100644 src/intercom/visitors/requests/user_with_id.py
create mode 100644 src/intercom/visitors/requests/user_with_user_id.py
create mode 100644 src/intercom/visitors/requests/visitor_with_email.py
create mode 100644 src/intercom/visitors/requests/visitor_with_id.py
create mode 100644 src/intercom/visitors/requests/visitor_with_user_id.py
diff --git a/README.md b/README.md
index e043dab..b400b7a 100644
--- a/README.md
+++ b/README.md
@@ -1,14 +1,14 @@
# Intercom Python Library
[](https://buildwithfern.com?utm_source=github&utm_medium=github&utm_campaign=readme&utm_source=https%3A%2F%2Fgithub.com%2Fintercom%2Fpython-intercom)
-[](https://pypi.python.org/pypi/intercom-python)
+[](https://pypi.python.org/pypi/python-intercom)
The Intercom Python library provides convenient access to the Intercom API from Python.
## Installation
```sh
-pip install intercom-python
+pip install python-intercom
```
## Reference
diff --git a/pyproject.toml b/pyproject.toml
index 0e3e599..702391b 100644
--- a/pyproject.toml
+++ b/pyproject.toml
@@ -1,9 +1,9 @@
[project]
-name = "intercom-python"
+name = "python-intercom"
[tool.poetry]
-name = "intercom-python"
-version = "v4.0.0a0"
+name = "python-intercom"
+version = "v4.0.0a1"
description = ""
readme = "README.md"
authors = []
diff --git a/reference.md b/reference.md
index 32c5a74..86c7f2b 100644
--- a/reference.md
+++ b/reference.md
@@ -558,7 +558,7 @@ client.articles.create(
-
-**translated_content:** `typing.Optional[ArticleTranslatedContent]`
+**translated_content:** `typing.Optional[ArticleTranslatedContentParams]`
@@ -764,7 +764,7 @@ client.articles.update(
-
-**translated_content:** `typing.Optional[ArticleTranslatedContent]`
+**translated_content:** `typing.Optional[ArticleTranslatedContentParams]`
@@ -3064,30 +3064,19 @@ The table below shows the operators you can use to define how you want to search
```python
-from intercom import (
- Intercom,
- MultipleFilterSearchRequest,
- SingleFilterSearchRequest,
- StartingAfterPaging,
-)
+from intercom import Intercom
client = Intercom(
token="YOUR_TOKEN",
)
response = client.contacts.search(
- query=MultipleFilterSearchRequest(
- operator="AND",
- value=[
- SingleFilterSearchRequest(
- field="created_at",
- operator=">",
- value="1306054154",
- )
+ query={
+ "operator": "AND",
+ "value": [
+ {"field": "created_at", "operator": ">", "value": "1306054154"}
],
- ),
- pagination=StartingAfterPaging(
- per_page=5,
- ),
+ },
+ pagination={"per_page": 5},
)
for item in response:
yield item
@@ -3109,7 +3098,7 @@ for page in response.iter_pages():
-
-**query:** `SearchRequestQuery`
+**query:** `SearchRequestQueryParams`
@@ -3117,7 +3106,7 @@ for page in response.iter_pages():
-
-**pagination:** `typing.Optional[StartingAfterPaging]`
+**pagination:** `typing.Optional[StartingAfterPagingParams]`
@@ -3257,15 +3246,13 @@ You can create a new contact (ie. user or lead).
```python
-from intercom import CreateContactRequestWithEmail, Intercom
+from intercom import Intercom
client = Intercom(
token="YOUR_TOKEN",
)
client.contacts.create(
- request=CreateContactRequestWithEmail(
- email="joebloggs@intercom.io",
- ),
+ request={"email": "joebloggs@intercom.io"},
)
```
@@ -3282,7 +3269,7 @@ client.contacts.create(
-
-**request:** `CreateContactRequest`
+**request:** `CreateContactRequestParams`
@@ -4126,24 +4113,13 @@ Each operation will return a tag object.
```python
-from intercom import (
- Intercom,
- TagMultipleUsersRequest,
- TagMultipleUsersRequestUsersItem,
-)
+from intercom import Intercom
client = Intercom(
token="YOUR_TOKEN",
)
client.tags.create(
- request=TagMultipleUsersRequest(
- name="test",
- users=[
- TagMultipleUsersRequestUsersItem(
- id="123",
- )
- ],
- ),
+ request={"name": "test", "users": [{"id": "123"}]},
)
```
@@ -4160,7 +4136,7 @@ client.tags.create(
-
-**request:** `TagsCreateRequestBody`
+**request:** `TagsCreateRequestBodyParams`
@@ -4621,16 +4597,12 @@ This will return the Message model that has been created.
```python
from intercom import Intercom
-from intercom.conversations import CreateConversationRequestFrom
client = Intercom(
token="YOUR_TOKEN",
)
client.conversations.create(
- from_=CreateConversationRequestFrom(
- type="user",
- id="123_doesnt_exist",
- ),
+ from_={"type": "user", "id": "123_doesnt_exist"},
body="Hello there",
)
@@ -4648,7 +4620,7 @@ client.conversations.create(
-
-**from_:** `CreateConversationRequestFrom`
+**from_:** `CreateConversationRequestFromParams`
@@ -4999,30 +4971,19 @@ The table below shows the operators you can use to define how you want to search
```python
-from intercom import (
- Intercom,
- MultipleFilterSearchRequest,
- SingleFilterSearchRequest,
- StartingAfterPaging,
-)
+from intercom import Intercom
client = Intercom(
token="YOUR_TOKEN",
)
response = client.conversations.search(
- query=MultipleFilterSearchRequest(
- operator="AND",
- value=[
- SingleFilterSearchRequest(
- field="created_at",
- operator=">",
- value="1306054154",
- )
+ query={
+ "operator": "AND",
+ "value": [
+ {"field": "created_at", "operator": ">", "value": "1306054154"}
],
- ),
- pagination=StartingAfterPaging(
- per_page=5,
- ),
+ },
+ pagination={"per_page": 5},
)
for item in response:
yield item
@@ -5044,7 +5005,7 @@ for page in response.iter_pages():
-
-**query:** `SearchRequestQuery`
+**query:** `SearchRequestQueryParams`
@@ -5052,7 +5013,7 @@ for page in response.iter_pages():
-
-**pagination:** `typing.Optional[StartingAfterPaging]`
+**pagination:** `typing.Optional[StartingAfterPagingParams]`
@@ -5099,17 +5060,19 @@ You can reply to a conversation with a message from an admin or on behalf of a c
```python
-from intercom import ContactReplyIntercomUserIdRequest, Intercom
+from intercom import Intercom
client = Intercom(
token="YOUR_TOKEN",
)
client.conversations.reply(
conversation_id='123 or "last"',
- request=ContactReplyIntercomUserIdRequest(
- body="Thanks again :)",
- intercom_user_id="667d60f18a68186f43bafdf4",
- ),
+ request={
+ "message_type": "comment",
+ "type": "user",
+ "body": "Thanks again :)",
+ "intercom_user_id": "667d60f18a68186f43bafdf4",
+ },
)
```
@@ -5134,7 +5097,7 @@ client.conversations.reply(
-
-**request:** `ReplyConversationRequest`
+**request:** `ReplyConversationRequestParams`
@@ -5186,16 +5149,13 @@ For managing conversations you can:
```python
from intercom import Intercom
-from intercom.conversations import ConversationsManageRequestBody_Close
client = Intercom(
token="YOUR_TOKEN",
)
client.conversations.manage(
conversation_id="123",
- request=ConversationsManageRequestBody_Close(
- admin_id="12345",
- ),
+ request={"type": "admin", "admin_id": "12345", "message_type": "close"},
)
```
@@ -5220,7 +5180,7 @@ client.conversations.manage(
-
-**request:** `ConversationsManageRequestBody`
+**request:** `ConversationsManageRequestBodyParams`
@@ -5348,9 +5308,6 @@ If you add a contact via the email parameter and there is no user/lead found on
```python
from intercom import Intercom
-from intercom.conversations import (
- AttachContactToConversationRequestCustomerIntercomUserId,
-)
client = Intercom(
token="YOUR_TOKEN",
@@ -5358,9 +5315,7 @@ client = Intercom(
client.conversations.attach_contact_as_admin(
conversation_id="123",
admin_id="12345",
- customer=AttachContactToConversationRequestCustomerIntercomUserId(
- intercom_user_id="667d61188a68186f43bafe0e",
- ),
+ customer={"intercom_user_id": "667d61188a68186f43bafe0e"},
)
```
@@ -5393,7 +5348,7 @@ client.conversations.attach_contact_as_admin(
-
-**customer:** `typing.Optional[AttachContactToConversationRequestCustomer]`
+**customer:** `typing.Optional[AttachContactToConversationRequestCustomerParams]`
@@ -5536,16 +5491,17 @@ If you are redacting a conversation part, it must have a `body`. If you are reda
```python
-from intercom import Intercom, RedactConversationRequest_ConversationPart
+from intercom import Intercom
client = Intercom(
token="YOUR_TOKEN",
)
client.conversations.redact_conversation_part(
- request=RedactConversationRequest_ConversationPart(
- conversation_id="really_123_doesnt_exist",
- conversation_part_id="really_123_doesnt_exist",
- ),
+ request={
+ "conversation_id": "really_123_doesnt_exist",
+ "conversation_part_id": "really_123_doesnt_exist",
+ "type": "conversation_part",
+ },
)
```
@@ -5562,7 +5518,7 @@ client.conversations.redact_conversation_part(
-
-**request:** `RedactConversationRequest`
+**request:** `RedactConversationRequestParams`
@@ -5941,7 +5897,7 @@ client.data_attributes.update(
-
-**options:** `typing.Optional[typing.Sequence[UpdateDataAttributeRequestOptionsItem]]` — To create list attributes. Provide a set of hashes with `value` as the key of the options you want to make. `data_type` must be `string`.
+**options:** `typing.Optional[typing.Sequence[UpdateDataAttributeRequestOptionsItemParams]]` — To create list attributes. Provide a set of hashes with `value` as the key of the options you want to make. `data_type` must be `string`.
@@ -6160,17 +6116,17 @@ Duplicated events are responded to using the normal `202 Accepted` code - an err
```python
-from intercom import CreateDataEventRequestWithId, Intercom
+from intercom import Intercom
client = Intercom(
token="YOUR_TOKEN",
)
client.events.create(
- request=CreateDataEventRequestWithId(
- id="8a88a590-e1c3-41e2-a502-e0649dbf721c",
- event_name="invited-friend",
- created_at=1671028894,
- ),
+ request={
+ "id": "8a88a590-e1c3-41e2-a502-e0649dbf721c",
+ "event_name": "invited-friend",
+ "created_at": 1671028894,
+ },
)
```
@@ -6187,7 +6143,7 @@ client.events.create(
-
-**request:** `CreateDataEventRequest`
+**request:** `CreateDataEventRequestParams`
@@ -6263,7 +6219,7 @@ client.events.summaries()
-
-**event_summaries:** `typing.Optional[CreateDataEventSummariesRequestEventSummaries]` — A list of event summaries for the user. Each event summary should contain the event name, the time the event occurred, and the number of times the event occurred. The event name should be a past tense 'verb-noun' combination, to improve readability, for example `updated-plan`.
+**event_summaries:** `typing.Optional[CreateDataEventSummariesRequestEventSummariesParams]` — A list of event summaries for the user. Each event summary should contain the event name, the time the event occurred, and the number of times the event occurred. The event name should be a past tense 'verb-noun' combination, to improve readability, for example `updated-plan`.
@@ -6635,29 +6591,20 @@ This will return the Message model that has been created.
```python
-from intercom import (
- CreateMessageRequest_Email,
- CreateMessageRequestFrom,
- CreateMessageRequestTo,
- Intercom,
-)
+from intercom import Intercom
client = Intercom(
token="YOUR_TOKEN",
)
client.messages.create(
- request=CreateMessageRequest_Email(
- subject="Thanks for everything",
- body="Hello there",
- template="plain",
- from_=CreateMessageRequestFrom(
- id=394051,
- ),
- to=CreateMessageRequestTo(
- type="user",
- id="536e564f316c83104c000020",
- ),
- ),
+ request={
+ "subject": "Thanks for everything",
+ "body": "Hello there",
+ "template": "plain",
+ "from_": {"type": "admin", "id": 394051},
+ "to": {"type": "user", "id": "536e564f316c83104c000020"},
+ "message_type": "email",
+ },
)
```
@@ -6674,7 +6621,7 @@ client.messages.create(
-
-**request:** `CreateMessageRequest`
+**request:** `CreateMessageRequestParams`
@@ -7500,17 +7447,19 @@ You can reply to a ticket with a message from an admin or on behalf of a contact
```python
-from intercom import ContactReplyTicketIntercomUserIdRequest, Intercom
+from intercom import Intercom
client = Intercom(
token="YOUR_TOKEN",
)
client.tickets.reply(
ticket_id="123",
- request=ContactReplyTicketIntercomUserIdRequest(
- body="Thanks again :)",
- intercom_user_id="667d619d8a68186f43bafe82",
- ),
+ request={
+ "message_type": "comment",
+ "type": "user",
+ "body": "Thanks again :)",
+ "intercom_user_id": "667d619d8a68186f43bafe82",
+ },
)
```
@@ -7535,7 +7484,7 @@ client.tickets.reply(
-
-**request:** `TicketsReplyRequestBody`
+**request:** `TicketsReplyRequestBodyParams`
@@ -7582,18 +7531,14 @@ You can create a new ticket.
```python
-from intercom import CreateTicketRequestContactsItemId, Intercom
+from intercom import Intercom
client = Intercom(
token="YOUR_TOKEN",
)
client.tickets.create(
ticket_type_id="1234",
- contacts=[
- CreateTicketRequestContactsItemId(
- id="667d61b78a68186f43bafe8d",
- )
- ],
+ contacts=[{"id": "667d61b78a68186f43bafe8d"}],
ticket_attributes={
"_default_title_": "example",
"_default_description_": "there is a problem",
@@ -7622,7 +7567,7 @@ client.tickets.create(
-
-**contacts:** `typing.Sequence[CreateTicketRequestContactsItem]` — The list of contacts (users or leads) affected by this ticket. Currently only one is allowed
+**contacts:** `typing.Sequence[CreateTicketRequestContactsItemParams]` — The list of contacts (users or leads) affected by this ticket. Currently only one is allowed
@@ -7764,7 +7709,6 @@ You can update a ticket.
```python
from intercom import Intercom
-from intercom.tickets import UpdateTicketRequestAssignment
client = Intercom(
token="YOUR_TOKEN",
@@ -7776,10 +7720,7 @@ client.tickets.update(
"_default_description_": "there is a problem",
},
state="in_progress",
- assignment=UpdateTicketRequestAssignment(
- admin_id="991267899",
- assignee_id="456",
- ),
+ assignment={"admin_id": "991267899", "assignee_id": "456"},
)
```
@@ -7844,7 +7785,7 @@ client.tickets.update(
-
-**assignment:** `typing.Optional[UpdateTicketRequestAssignment]`
+**assignment:** `typing.Optional[UpdateTicketRequestAssignmentParams]`
@@ -7951,30 +7892,19 @@ The table below shows the operators you can use to define how you want to search
```python
-from intercom import (
- Intercom,
- MultipleFilterSearchRequest,
- SingleFilterSearchRequest,
- StartingAfterPaging,
-)
+from intercom import Intercom
client = Intercom(
token="YOUR_TOKEN",
)
response = client.tickets.search(
- query=MultipleFilterSearchRequest(
- operator="AND",
- value=[
- SingleFilterSearchRequest(
- field="created_at",
- operator=">",
- value="1306054154",
- )
+ query={
+ "operator": "AND",
+ "value": [
+ {"field": "created_at", "operator": ">", "value": "1306054154"}
],
- ),
- pagination=StartingAfterPaging(
- per_page=5,
- ),
+ },
+ pagination={"per_page": 5},
)
for item in response:
yield item
@@ -7996,7 +7926,7 @@ for page in response.iter_pages():
-
-**query:** `SearchRequestQuery`
+**query:** `SearchRequestQueryParams`
@@ -8004,7 +7934,7 @@ for page in response.iter_pages():
-
-**pagination:** `typing.Optional[StartingAfterPaging]`
+**pagination:** `typing.Optional[StartingAfterPagingParams]`
@@ -8126,16 +8056,13 @@ Sending a PUT request to `/visitors` will result in an update of an existing Vis
```python
-from intercom import Intercom, UpdateVisitorRequestWithUserId
+from intercom import Intercom
client = Intercom(
token="YOUR_TOKEN",
)
client.visitors.update(
- request=UpdateVisitorRequestWithUserId(
- user_id="fail",
- name="Christian Fail",
- ),
+ request={"user_id": "fail", "name": "Christian Fail"},
)
```
@@ -8152,7 +8079,7 @@ client.visitors.update(
-
-**request:** `UpdateVisitorRequest`
+**request:** `UpdateVisitorRequestParams`
@@ -8204,20 +8131,14 @@ You can merge a Visitor to a Contact of role type `lead` or `user`.
```python
from intercom import Intercom
-from intercom.visitors import UserWithId, VisitorWithUserId
client = Intercom(
token="YOUR_TOKEN",
)
client.visitors.merge_to_contact(
type="user",
- user=UserWithId(
- id="8a88a590-e1c3-41e2-a502-e0649dbf721c",
- email="foo@bar.com",
- ),
- visitor=VisitorWithUserId(
- user_id="3ecf64d0-9ed1-4e9f-88e1-da7d6e6782f3",
- ),
+ user={"id": "8a88a590-e1c3-41e2-a502-e0649dbf721c", "email": "foo@bar.com"},
+ visitor={"user_id": "3ecf64d0-9ed1-4e9f-88e1-da7d6e6782f3"},
)
```
@@ -8242,7 +8163,7 @@ client.visitors.merge_to_contact(
-
-**user:** `ConvertVisitorRequestUser` — The unique identifiers retained after converting or merging.
+**user:** `ConvertVisitorRequestUserParams` — The unique identifiers retained after converting or merging.
@@ -8250,7 +8171,7 @@ client.visitors.merge_to_contact(
-
-**visitor:** `ConvertVisitorRequestVisitor` — The unique identifiers to convert a single Visitor.
+**visitor:** `ConvertVisitorRequestVisitorParams` — The unique identifiers to convert a single Visitor.
@@ -8421,7 +8342,7 @@ client.help_centers.collections.create(
-
-**translated_content:** `typing.Optional[GroupTranslatedContent]`
+**translated_content:** `typing.Optional[GroupTranslatedContentParams]`
@@ -8602,7 +8523,7 @@ client.help_centers.collections.update(
-
-**translated_content:** `typing.Optional[GroupTranslatedContent]`
+**translated_content:** `typing.Optional[GroupTranslatedContentParams]`
@@ -8789,7 +8710,6 @@ You can create a news item
```python
from intercom import Intercom
-from intercom.news import NewsfeedAssignment
client = Intercom(
token="YOUR_TOKEN",
@@ -8802,12 +8722,7 @@ client.news.items.create(
deliver_silently=True,
labels=["Product", "Update", "New"],
reactions=["😆", "😅"],
- newsfeed_assignments=[
- NewsfeedAssignment(
- newsfeed_id=53,
- published_at=1664638214,
- )
- ],
+ newsfeed_assignments=[{"newsfeed_id": 53, "published_at": 1664638214}],
)
```
@@ -8880,7 +8795,7 @@ client.news.items.create(
-
-**newsfeed_assignments:** `typing.Optional[typing.Sequence[NewsfeedAssignment]]` — A list of newsfeed_assignments to assign to the specified newsfeed.
+**newsfeed_assignments:** `typing.Optional[typing.Sequence[NewsfeedAssignmentParams]]` — A list of newsfeed_assignments to assign to the specified newsfeed.
@@ -9074,7 +8989,7 @@ client.news.items.update(
-
-**newsfeed_assignments:** `typing.Optional[typing.Sequence[NewsfeedAssignment]]` — A list of newsfeed_assignments to assign to the specified newsfeed.
+**newsfeed_assignments:** `typing.Optional[typing.Sequence[NewsfeedAssignmentParams]]` — A list of newsfeed_assignments to assign to the specified newsfeed.
@@ -11551,7 +11466,7 @@ client.unstable.help_center.create_collection(
-
-**translated_content:** `typing.Optional[GroupTranslatedContent]`
+**translated_content:** `typing.Optional[GroupTranslatedContentParams]`
@@ -11732,7 +11647,7 @@ client.unstable.help_center.update_collection(
-
-**translated_content:** `typing.Optional[GroupTranslatedContent]`
+**translated_content:** `typing.Optional[GroupTranslatedContentParams]`
@@ -13648,29 +13563,18 @@ The table below shows the operators you can use to define how you want to search
```python
from intercom import Intercom
-from intercom.unstable import (
- MultipleFilterSearchRequest,
- SingleFilterSearchRequest,
- StartingAfterPaging,
-)
client = Intercom(
token="YOUR_TOKEN",
)
client.unstable.contacts.search_contacts(
- query=MultipleFilterSearchRequest(
- operator="AND",
- value=[
- SingleFilterSearchRequest(
- field="created_at",
- operator=">",
- value="1306054154",
- )
+ query={
+ "operator": "AND",
+ "value": [
+ {"field": "created_at", "operator": ">", "value": "1306054154"}
],
- ),
- pagination=StartingAfterPaging(
- per_page=5,
- ),
+ },
+ pagination={"per_page": 5},
)
```
@@ -13687,7 +13591,7 @@ client.unstable.contacts.search_contacts(
-
-**query:** `SearchRequestQuery`
+**query:** `SearchRequestQueryParams`
@@ -13695,7 +13599,7 @@ client.unstable.contacts.search_contacts(
-
-**pagination:** `typing.Optional[StartingAfterPaging]`
+**pagination:** `typing.Optional[StartingAfterPagingParams]`
@@ -15036,23 +14940,12 @@ Each operation will return a tag object.
```python
from intercom import Intercom
-from intercom.unstable import (
- TagMultipleUsersRequest,
- TagMultipleUsersRequestUsersItem,
-)
client = Intercom(
token="YOUR_TOKEN",
)
client.unstable.tags.create_tag(
- request=TagMultipleUsersRequest(
- name="test",
- users=[
- TagMultipleUsersRequestUsersItem(
- id="123",
- )
- ],
- ),
+ request={"name": "test", "users": [{"id": "123"}]},
)
```
@@ -15069,7 +14962,7 @@ client.unstable.tags.create_tag(
-
-**request:** `CreateTagRequestBody`
+**request:** `CreateTagRequestBodyParams`
@@ -15525,16 +15418,12 @@ This will return the Message model that has been created.
```python
from intercom import Intercom
-from intercom.unstable.conversations import CreateConversationRequestFrom
client = Intercom(
token="YOUR_TOKEN",
)
client.unstable.conversations.create_conversation(
- from_=CreateConversationRequestFrom(
- type="user",
- id="123_doesnt_exist",
- ),
+ from_={"type": "user", "id": "123_doesnt_exist"},
body="Hello there",
)
@@ -15552,7 +15441,7 @@ client.unstable.conversations.create_conversation(
-
-**from_:** `CreateConversationRequestFrom`
+**from_:** `CreateConversationRequestFromParams`
@@ -15773,7 +15662,7 @@ client.unstable.conversations.update_conversation(
-
-**custom_attributes:** `typing.Optional[CustomAttributes]`
+**custom_attributes:** `typing.Optional[CustomAttributesParams]`
@@ -15997,29 +15886,18 @@ The table below shows the operators you can use to define how you want to search
```python
from intercom import Intercom
-from intercom.unstable import (
- MultipleFilterSearchRequest,
- SingleFilterSearchRequest,
- StartingAfterPaging,
-)
client = Intercom(
token="YOUR_TOKEN",
)
client.unstable.conversations.search_conversations(
- query=MultipleFilterSearchRequest(
- operator="AND",
- value=[
- SingleFilterSearchRequest(
- field="created_at",
- operator=">",
- value="1306054154",
- )
+ query={
+ "operator": "AND",
+ "value": [
+ {"field": "created_at", "operator": ">", "value": "1306054154"}
],
- ),
- pagination=StartingAfterPaging(
- per_page=5,
- ),
+ },
+ pagination={"per_page": 5},
)
```
@@ -16036,7 +15914,7 @@ client.unstable.conversations.search_conversations(
-
-**query:** `SearchRequestQuery`
+**query:** `SearchRequestQueryParams`
@@ -16044,7 +15922,7 @@ client.unstable.conversations.search_conversations(
-
-**pagination:** `typing.Optional[StartingAfterPaging]`
+**pagination:** `typing.Optional[StartingAfterPagingParams]`
@@ -16092,17 +15970,18 @@ You can reply to a conversation with a message from an admin or on behalf of a c
```python
from intercom import Intercom
-from intercom.unstable import ContactReplyIntercomUserIdRequest
client = Intercom(
token="YOUR_TOKEN",
)
client.unstable.conversations.reply_conversation(
id='123 or "last"',
- request=ContactReplyIntercomUserIdRequest(
- body="Thanks again :)",
- intercom_user_id="6762f1661bb69f9f2193bbbf",
- ),
+ request={
+ "message_type": "comment",
+ "type": "user",
+ "body": "Thanks again :)",
+ "intercom_user_id": "6762f1661bb69f9f2193bbbf",
+ },
)
```
@@ -16127,7 +16006,7 @@ client.unstable.conversations.reply_conversation(
-
-**request:** `ReplyConversationRequestBody`
+**request:** `ReplyConversationRequestBodyParams`
@@ -16179,16 +16058,13 @@ For managing conversations you can:
```python
from intercom import Intercom
-from intercom.unstable.conversations import ManageConversationRequestBody_Close
client = Intercom(
token="YOUR_TOKEN",
)
client.unstable.conversations.manage_conversation(
id="123",
- request=ManageConversationRequestBody_Close(
- admin_id="12345",
- ),
+ request={"type": "admin", "admin_id": "12345", "message_type": "close"},
)
```
@@ -16213,7 +16089,7 @@ client.unstable.conversations.manage_conversation(
-
-**request:** `ManageConversationRequestBody`
+**request:** `ManageConversationRequestBodyParams`
@@ -16265,9 +16141,6 @@ If you add a contact via the email parameter and there is no user/lead found on
```python
from intercom import Intercom
-from intercom.unstable.conversations import (
- AttachContactToConversationRequestCustomerIntercomUserId,
-)
client = Intercom(
token="YOUR_TOKEN",
@@ -16275,9 +16148,7 @@ client = Intercom(
client.unstable.conversations.attach_contact_to_conversation(
id="123",
admin_id="12345",
- customer=AttachContactToConversationRequestCustomerIntercomUserId(
- intercom_user_id="6762f19e1bb69f9f2193bbd5",
- ),
+ customer={"intercom_user_id": "6762f19e1bb69f9f2193bbd5"},
)
```
@@ -16310,7 +16181,7 @@ client.unstable.conversations.attach_contact_to_conversation(
-
-**customer:** `typing.Optional[AttachContactToConversationRequestCustomer]`
+**customer:** `typing.Optional[AttachContactToConversationRequestCustomerParams]`
@@ -16454,16 +16325,16 @@ If you are redacting a conversation part, it must have a `body`. If you are reda
```python
from intercom import Intercom
-from intercom.unstable import RedactConversationRequest_ConversationPart
client = Intercom(
token="YOUR_TOKEN",
)
client.unstable.conversations.redact_conversation(
- request=RedactConversationRequest_ConversationPart(
- conversation_id="really_123_doesnt_exist",
- conversation_part_id="really_123_doesnt_exist",
- ),
+ request={
+ "conversation_id": "really_123_doesnt_exist",
+ "conversation_part_id": "really_123_doesnt_exist",
+ "type": "conversation_part",
+ },
)
```
@@ -16480,7 +16351,7 @@ client.unstable.conversations.redact_conversation(
-
-**request:** `RedactConversationRequest`
+**request:** `RedactConversationRequestParams`
@@ -16567,7 +16438,7 @@ client.unstable.conversations.convert_conversation_to_ticket(
-
-**attributes:** `typing.Optional[TicketRequestCustomAttributes]`
+**attributes:** `typing.Optional[TicketRequestCustomAttributesParams]`
@@ -16617,7 +16488,6 @@ Notifies Intercom that a new conversation was created in your custom channel/pla
```python
from intercom import Intercom
-from intercom.unstable import CustomChannelContact
client = Intercom(
token="YOUR_TOKEN",
@@ -16625,12 +16495,12 @@ client = Intercom(
client.unstable.custom_channel_events.notify_new_conversation(
event_id="evt_12345",
external_conversation_id="conv_67890",
- contact=CustomChannelContact(
- type="user",
- external_id="user_001",
- name="Jane Doe",
- email="jane.doe@example.com",
- ),
+ contact={
+ "type": "user",
+ "external_id": "user_001",
+ "name": "Jane Doe",
+ "email": "jane.doe@example.com",
+ },
)
```
@@ -16663,7 +16533,7 @@ client.unstable.custom_channel_events.notify_new_conversation(
-
-**contact:** `CustomChannelContact`
+**contact:** `CustomChannelContactParams`
@@ -16712,7 +16582,6 @@ Notifies Intercom that a new message was sent in a conversation on your custom c
```python
from intercom import Intercom
-from intercom.unstable import CustomChannelContact
client = Intercom(
token="YOUR_TOKEN",
@@ -16720,12 +16589,12 @@ client = Intercom(
client.unstable.custom_channel_events.notify_new_message(
event_id="evt_54321",
external_conversation_id="conv_98765",
- contact=CustomChannelContact(
- type="user",
- external_id="user_002",
- name="John Smith",
- email="john.smith@example.com",
- ),
+ contact={
+ "type": "user",
+ "external_id": "user_002",
+ "name": "John Smith",
+ "email": "john.smith@example.com",
+ },
body="Hello, I need help with my order.",
)
@@ -16767,7 +16636,7 @@ client.unstable.custom_channel_events.notify_new_message(
-
-**contact:** `CustomChannelContact`
+**contact:** `CustomChannelContactParams`
@@ -16816,7 +16685,6 @@ Notifies Intercom that a user selected a quick reply option in your custom chann
```python
from intercom import Intercom
-from intercom.unstable import CustomChannelContact
client = Intercom(
token="YOUR_TOKEN",
@@ -16824,12 +16692,12 @@ client = Intercom(
client.unstable.custom_channel_events.notify_quick_reply_selected(
event_id="evt_67890",
external_conversation_id="conv_13579",
- contact=CustomChannelContact(
- type="user",
- external_id="user_003",
- name="Alice Example",
- email="alice@example.com",
- ),
+ contact={
+ "type": "user",
+ "external_id": "user_003",
+ "name": "Alice Example",
+ "email": "alice@example.com",
+ },
quick_reply_option_id="1234",
)
@@ -16871,7 +16739,7 @@ client.unstable.custom_channel_events.notify_quick_reply_selected(
-
-**contact:** `CustomChannelContact`
+**contact:** `CustomChannelContactParams`
@@ -16920,7 +16788,6 @@ Notifies Intercom that a user provided a response to an attribute collector in y
```python
from intercom import Intercom
-from intercom.unstable import CustomChannelAttribute, CustomChannelContact
client = Intercom(
token="YOUR_TOKEN",
@@ -16928,16 +16795,13 @@ client = Intercom(
client.unstable.custom_channel_events.notify_attribute_collected(
event_id="evt_24680",
external_conversation_id="conv_11223",
- contact=CustomChannelContact(
- type="user",
- external_id="user_004",
- name="Bob Example",
- email="bob@example.com",
- ),
- attribute=CustomChannelAttribute(
- id="shipping_address",
- value="123 Main St, Springfield",
- ),
+ contact={
+ "type": "user",
+ "external_id": "user_004",
+ "name": "Bob Example",
+ "email": "bob@example.com",
+ },
+ attribute={"id": "shipping_address", "value": "123 Main St, Springfield"},
)
```
@@ -16954,7 +16818,7 @@ client.unstable.custom_channel_events.notify_attribute_collected(
-
-**attribute:** `CustomChannelAttribute`
+**attribute:** `CustomChannelAttributeParams`
@@ -16978,7 +16842,7 @@ client.unstable.custom_channel_events.notify_attribute_collected(
-
-**contact:** `CustomChannelContact`
+**contact:** `CustomChannelContactParams`
@@ -17766,15 +17630,12 @@ You can optionally define the result page size as well with the `per_page` param
```python
from intercom import Intercom
-from intercom.unstable.data_events import LisDataEventsRequestFilterUserId
client = Intercom(
token="YOUR_TOKEN",
)
client.unstable.data_events.lis_data_events(
- filter=LisDataEventsRequestFilterUserId(
- user_id="user_id",
- ),
+ filter={"user_id": "user_id"},
type="type",
)
@@ -17792,7 +17653,7 @@ client.unstable.data_events.lis_data_events(
-
-**filter:** `LisDataEventsRequestFilter`
+**filter:** `LisDataEventsRequestFilterParams`
@@ -17994,7 +17855,7 @@ client.unstable.data_events.data_event_summaries()
-
-**event_summaries:** `typing.Optional[CreateDataEventSummariesRequestEventSummaries]` — A list of event summaries for the user. Each event summary should contain the event name, the time the event occurred, and the number of times the event occurred. The event name should be a past tense 'verb-noun' combination, to improve readability, for example `updated-plan`.
+**event_summaries:** `typing.Optional[CreateDataEventSummariesRequestEventSummariesParams]` — A list of event summaries for the user. Each event summary should contain the event name, the time the event occurred, and the number of times the event occurred. The event name should be a past tense 'verb-noun' combination, to improve readability, for example `updated-plan`.
@@ -18664,7 +18525,6 @@ You can create a news item
```python
from intercom import Intercom
-from intercom.unstable.news import NewsfeedAssignment
client = Intercom(
token="YOUR_TOKEN",
@@ -18677,12 +18537,7 @@ client.unstable.news.create_news_item(
deliver_silently=True,
labels=["Product", "Update", "New"],
reactions=["😆", "😅"],
- newsfeed_assignments=[
- NewsfeedAssignment(
- newsfeed_id=53,
- published_at=1664638214,
- )
- ],
+ newsfeed_assignments=[{"newsfeed_id": 53, "published_at": 1664638214}],
)
```
@@ -18755,7 +18610,7 @@ client.unstable.news.create_news_item(
-
-**newsfeed_assignments:** `typing.Optional[typing.Sequence[NewsfeedAssignment]]` — A list of newsfeed_assignments to assign to the specified newsfeed.
+**newsfeed_assignments:** `typing.Optional[typing.Sequence[NewsfeedAssignmentParams]]` — A list of newsfeed_assignments to assign to the specified newsfeed.
@@ -18949,7 +18804,7 @@ client.unstable.news.update_news_item(
-
-**newsfeed_assignments:** `typing.Optional[typing.Sequence[NewsfeedAssignment]]` — A list of newsfeed_assignments to assign to the specified newsfeed.
+**newsfeed_assignments:** `typing.Optional[typing.Sequence[NewsfeedAssignmentParams]]` — A list of newsfeed_assignments to assign to the specified newsfeed.
@@ -20193,17 +20048,18 @@ You can reply to a ticket with a message from an admin or on behalf of a contact
```python
from intercom import Intercom
-from intercom.unstable import ContactReplyTicketIntercomUserIdRequest
client = Intercom(
token="YOUR_TOKEN",
)
client.unstable.tickets.reply_ticket(
id="123",
- request=ContactReplyTicketIntercomUserIdRequest(
- body="Thanks again :)",
- intercom_user_id="6762f2a41bb69f9f2193bc4c",
- ),
+ request={
+ "message_type": "comment",
+ "type": "user",
+ "body": "Thanks again :)",
+ "intercom_user_id": "6762f2a41bb69f9f2193bc4c",
+ },
)
```
@@ -20228,7 +20084,7 @@ client.unstable.tickets.reply_ticket(
-
-**request:** `ReplyTicketRequestBody`
+**request:** `ReplyTicketRequestBodyParams`
@@ -20276,18 +20132,13 @@ Enqueues ticket creation for asynchronous processing, returning if the job was e
```python
from intercom import Intercom
-from intercom.unstable import CreateTicketRequestContactsItemId
client = Intercom(
token="YOUR_TOKEN",
)
client.unstable.tickets.enqueue_create_ticket(
ticket_type_id="1234",
- contacts=[
- CreateTicketRequestContactsItemId(
- id="6762f2d81bb69f9f2193bc54",
- )
- ],
+ contacts=[{"id": "6762f2d81bb69f9f2193bc54"}],
)
```
@@ -20312,7 +20163,7 @@ client.unstable.tickets.enqueue_create_ticket(
-
-**contacts:** `typing.Sequence[CreateTicketRequestContactsItem]` — The list of contacts (users or leads) affected by this ticket. Currently only one is allowed
+**contacts:** `typing.Sequence[CreateTicketRequestContactsItemParams]` — The list of contacts (users or leads) affected by this ticket. Currently only one is allowed
@@ -20358,7 +20209,7 @@ The ID of the conversation you want to link to the ticket. Here are the valid wa
-
-**assignment:** `typing.Optional[CreateTicketRequestAssignment]`
+**assignment:** `typing.Optional[CreateTicketRequestAssignmentParams]`
@@ -20749,29 +20600,18 @@ The table below shows the operators you can use to define how you want to search
```python
from intercom import Intercom
-from intercom.unstable import (
- MultipleFilterSearchRequest,
- SingleFilterSearchRequest,
- StartingAfterPaging,
-)
client = Intercom(
token="YOUR_TOKEN",
)
client.unstable.tickets.search_tickets(
- query=MultipleFilterSearchRequest(
- operator="AND",
- value=[
- SingleFilterSearchRequest(
- field="created_at",
- operator=">",
- value="1306054154",
- )
+ query={
+ "operator": "AND",
+ "value": [
+ {"field": "created_at", "operator": ">", "value": "1306054154"}
],
- ),
- pagination=StartingAfterPaging(
- per_page=5,
- ),
+ },
+ pagination={"per_page": 5},
)
```
@@ -20788,7 +20628,7 @@ client.unstable.tickets.search_tickets(
-
-**query:** `SearchRequestQuery`
+**query:** `SearchRequestQueryParams`
@@ -20796,7 +20636,7 @@ client.unstable.tickets.search_tickets(
-
-**pagination:** `typing.Optional[StartingAfterPaging]`
+**pagination:** `typing.Optional[StartingAfterPagingParams]`
diff --git a/src/intercom/__init__.py b/src/intercom/__init__.py
index a38fa41..f168b84 100644
--- a/src/intercom/__init__.py
+++ b/src/intercom/__init__.py
@@ -283,50 +283,75 @@
unstable,
visitors,
)
-from .admins import Admin, AdminAvatar
-from .ai_agent import AiAgent, AiAgentSourceType
-from .ai_content_source import ContentSource
+from .admins import Admin, AdminAvatar, AdminAvatarParams, AdminParams
+from .ai_agent import AiAgent, AiAgentParams, AiAgentSourceType
+from .ai_content_source import ContentSource, ContentSourceParams
from .articles import (
Article,
ArticleListItem,
+ ArticleListItemParams,
ArticleListItemState,
+ ArticleParams,
ArticleSearchHighlights,
ArticleSearchHighlightsHighlightedSummaryItemItem,
+ ArticleSearchHighlightsHighlightedSummaryItemItemParams,
ArticleSearchHighlightsHighlightedSummaryItemItemType,
ArticleSearchHighlightsHighlightedTitleItem,
+ ArticleSearchHighlightsHighlightedTitleItemParams,
ArticleSearchHighlightsHighlightedTitleItemType,
+ ArticleSearchHighlightsParams,
CreateArticleRequestParentType,
CreateArticleRequestState,
SearchArticlesResponse,
SearchArticlesResponseData,
+ SearchArticlesResponseDataParams,
+ SearchArticlesResponseParams,
UpdateArticleRequestBodyParentType,
UpdateArticleRequestBodyState,
)
from .client import AsyncIntercom, Intercom
from .companies import (
CompaniesRetrieveResponse,
+ CompaniesRetrieveResponseParams,
CompaniesRetrieveResponse_Company,
+ CompaniesRetrieveResponse_CompanyParams,
CompaniesRetrieveResponse_List,
+ CompaniesRetrieveResponse_ListParams,
Company,
+ CompanyParams,
CompanyPlan,
+ CompanyPlanParams,
CompanySegments,
+ CompanySegmentsParams,
CompanyTags,
+ CompanyTagsParams,
)
-from .contacts import Contact
+from .contacts import Contact, ContactParams
from .conversations import (
AttachContactToConversationRequestCustomer,
AttachContactToConversationRequestCustomerCustomer,
+ AttachContactToConversationRequestCustomerCustomerParams,
AttachContactToConversationRequestCustomerIntercomUserId,
+ AttachContactToConversationRequestCustomerIntercomUserIdParams,
+ AttachContactToConversationRequestCustomerParams,
AttachContactToConversationRequestCustomerUserId,
+ AttachContactToConversationRequestCustomerUserIdParams,
Conversation,
+ ConversationParams,
ConversationPriority,
ConversationState,
ConversationsManageRequestBody,
+ ConversationsManageRequestBodyParams,
ConversationsManageRequestBody_Assignment,
+ ConversationsManageRequestBody_AssignmentParams,
ConversationsManageRequestBody_Close,
+ ConversationsManageRequestBody_CloseParams,
ConversationsManageRequestBody_Open,
+ ConversationsManageRequestBody_OpenParams,
ConversationsManageRequestBody_Snoozed,
+ ConversationsManageRequestBody_SnoozedParams,
CreateConversationRequestFrom,
+ CreateConversationRequestFromParams,
CreateConversationRequestFromType,
)
from .data_attributes import (
@@ -335,365 +360,870 @@
DataAttribute,
DataAttributeDataType,
DataAttributeModel,
+ DataAttributeParams,
DataAttributesListRequestModel,
UpdateDataAttributeRequestOptionsItem,
+ UpdateDataAttributeRequestOptionsItemParams,
)
-from .data_events import DataEvent
-from .data_export import DataExport, DataExportStatus
+from .data_events import DataEvent, DataEventParams
+from .data_export import DataExport, DataExportParams, DataExportStatus
from .environment import IntercomEnvironment
-from .events import CreateDataEventSummariesRequestEventSummaries
-from .help_center import Collection, HelpCenter, HelpCenterList
-from .messages import Message, MessageMessageType
-from .news import NewsItem, NewsItemState, Newsfeed, NewsfeedAssignment
-from .notes import Note, NoteContact
-from .segments import Segment, SegmentPersonType
+from .events import CreateDataEventSummariesRequestEventSummaries, CreateDataEventSummariesRequestEventSummariesParams
+from .help_center import (
+ Collection,
+ CollectionParams,
+ HelpCenter,
+ HelpCenterList,
+ HelpCenterListParams,
+ HelpCenterParams,
+)
+from .messages import Message, MessageMessageType, MessageParams
+from .news import (
+ NewsItem,
+ NewsItemParams,
+ NewsItemState,
+ Newsfeed,
+ NewsfeedAssignment,
+ NewsfeedAssignmentParams,
+ NewsfeedParams,
+)
+from .notes import Note, NoteContact, NoteContactParams, NoteParams
+from .requests import (
+ ActionComponentParams,
+ ActionComponent_SheetParams,
+ ActionComponent_SubmitParams,
+ ActionComponent_UrlParams,
+ ActivityLogListParams,
+ ActivityLogMetadataParams,
+ ActivityLogParams,
+ ActivityLogPerformedByParams,
+ AddressableListParams,
+ AdminListParams,
+ AdminPriorityLevelParams,
+ AdminReplyConversationRequestParams,
+ AdminReplyTicketRequestParams,
+ AdminReplyTicketRequestReplyOptionsItemParams,
+ AdminWithAppAvatarParams,
+ AdminWithAppParams,
+ AppParams,
+ ArticleContentParams,
+ ArticleListParams,
+ ArticleStatisticsParams,
+ ArticleTranslatedContentParams,
+ AssignConversationRequestParams,
+ ButtonComponentParams,
+ CanvasObjectParams,
+ CheckboxComponentParams,
+ CheckboxOptionParams,
+ CloseConversationRequestParams,
+ CollectionListParams,
+ CompanyAttachedContactsParams,
+ CompanyAttachedSegmentsParams,
+ CompanyListParams,
+ CompanyScrollParams,
+ ComponentParams,
+ Component_ButtonParams,
+ Component_CheckboxParams,
+ Component_DataTableParams,
+ Component_DividerParams,
+ Component_DropdownParams,
+ Component_ImageParams,
+ Component_InputParams,
+ Component_ListParams,
+ Component_SingleSelectParams,
+ Component_SpacerParams,
+ Component_TextParams,
+ Component_TextareaParams,
+ ConfigureRequestComponentIdParams,
+ ConfigureRequestParams,
+ ConfigureRequestZeroParams,
+ ConfigureResponseCanvasParams,
+ ConfigureResponseParams,
+ ContactArchivedParams,
+ ContactAttachedCompaniesParams,
+ ContactCompaniesParams,
+ ContactCompanyParams,
+ ContactDeletedParams,
+ ContactListParams,
+ ContactLocationParams,
+ ContactNotesParams,
+ ContactReferenceParams,
+ ContactReplyBaseRequestParams,
+ ContactReplyConversationRequestParams,
+ ContactReplyEmailRequestParams,
+ ContactReplyIntercomUserIdRequestParams,
+ ContactReplyTicketEmailRequestParams,
+ ContactReplyTicketIntercomUserIdRequestParams,
+ ContactReplyTicketRequestParams,
+ ContactReplyTicketUserIdRequestParams,
+ ContactReplyUserIdRequestParams,
+ ContactSegmentsParams,
+ ContactSocialProfilesParams,
+ ContactSubscriptionTypesParams,
+ ContactTagsParams,
+ ContactUnarchivedParams,
+ ContentObjectParams,
+ ContentSourcesListParams,
+ ContextParams,
+ ConversationAttachmentFilesParams,
+ ConversationContactsParams,
+ ConversationFirstContactReplyParams,
+ ConversationPartAuthorParams,
+ ConversationPartParams,
+ ConversationPartsParams,
+ ConversationRatingParams,
+ ConversationSourceParams,
+ ConversationStatisticsParams,
+ ConversationTeammatesParams,
+ CreateContactRequestParams,
+ CreateContactRequestWithEmailParams,
+ CreateContactRequestWithExternalIdParams,
+ CreateContactRequestWithRoleParams,
+ CreateDataEventRequestParams,
+ CreateDataEventRequestWithEmailParams,
+ CreateDataEventRequestWithIdParams,
+ CreateDataEventRequestWithUserIdParams,
+ CreateMessageRequestFromParams,
+ CreateMessageRequestParams,
+ CreateMessageRequestToParams,
+ CreateMessageRequestWithEmailParams,
+ CreateMessageRequestWithInappParams,
+ CreateMessageRequest_EmailParams,
+ CreateMessageRequest_InappParams,
+ CreateOrUpdateTagRequestParams,
+ CreateTicketReplyWithCommentRequestParams,
+ CreateTicketRequestContactsItemEmailParams,
+ CreateTicketRequestContactsItemExternalIdParams,
+ CreateTicketRequestContactsItemIdParams,
+ CreateTicketRequestContactsItemParams,
+ CreateTicketRequestParams,
+ CurrentCanvasParams,
+ CursorPagesParams,
+ CustomerRequestEmailParams,
+ CustomerRequestIntercomUserIdParams,
+ CustomerRequestParams,
+ CustomerRequestUserIdParams,
+ DataAttributeListParams,
+ DataEventListPagesParams,
+ DataEventListParams,
+ DataEventSummaryItemParams,
+ DataEventSummaryParams,
+ DataExportCsvParams,
+ DataTableComponentParams,
+ DataTableItemParams,
+ DeletedArticleObjectParams,
+ DeletedCollectionObjectParams,
+ DeletedCompanyObjectParams,
+ DeletedObjectParams,
+ DividerComponentParams,
+ DropdownComponentParams,
+ DropdownOptionParams,
+ ErrorErrorsItemParams,
+ ErrorParams,
+ EventParams,
+ FileAttributeParams,
+ GroupContentParams,
+ GroupTranslatedContentParams,
+ ImageComponentParams,
+ InitializeRequestParams,
+ InitializeResponseParams,
+ InputComponentParams,
+ LinkedObjectListParams,
+ LinkedObjectParams,
+ ListComponentItemsItemParams,
+ ListComponentParams,
+ ListItemParams,
+ ListItemWithImageParams,
+ ListItemWithoutImageParams,
+ LiveCanvasRequestParams,
+ LiveCanvasResponseParams,
+ MetadataParams,
+ MultipleFilterSearchRequestParams,
+ MultipleOrSingleFilterSearchRequestParams,
+ NewsItemRequestParams,
+ NoteListParams,
+ OffsetPagesParams,
+ OpenConversationRequestParams,
+ PagesLinkParams,
+ PaginatedConversationResponseParams,
+ PaginatedNewsItemResponseParams,
+ PaginatedNewsfeedResponseParams,
+ PartAttachmentParams,
+ PhoneSwitchParams,
+ RedactConversationRequestConversationPartParams,
+ RedactConversationRequestParams,
+ RedactConversationRequestSourceParams,
+ RedactConversationRequest_ConversationPartParams,
+ RedactConversationRequest_SourceParams,
+ ReferenceParams,
+ ReplyConversationRequestParams,
+ ResultsResponseParams,
+ SearchRequestParams,
+ SearchRequestQueryParams,
+ SegmentListParams,
+ SheetActionComponentParams,
+ SingleFilterSearchRequestParams,
+ SingleFilterSearchRequestValueParams,
+ SingleSelectComponentParams,
+ SingleSelectOptionParams,
+ SlaAppliedParams,
+ SnoozeConversationRequestParams,
+ SocialProfileParams,
+ SpacerComponentParams,
+ StartingAfterPagingParams,
+ SubmitActionComponentParams,
+ SubmitRequestParams,
+ SubmitResponseParams,
+ SubscriptionTypeListParams,
+ TagCompanyRequestCompaniesItemParams,
+ TagCompanyRequestParams,
+ TagListParams,
+ TagMultipleUsersRequestParams,
+ TagMultipleUsersRequestUsersItemParams,
+ TagsParams,
+ TeamListParams,
+ TeamPriorityLevelParams,
+ TextAreaComponentParams,
+ TextComponentParams,
+ TicketListParams,
+ TicketPartAuthorParams,
+ TicketPartsParams,
+ TicketReplyParams,
+ TicketTypeAttributeListParams,
+ TicketTypeAttributeParams,
+ TicketTypeListParams,
+ TranslationParams,
+ UntagCompanyRequestCompaniesItemParams,
+ UntagCompanyRequestParams,
+ UpdateVisitorRequestParams,
+ UpdateVisitorRequestWithIdParams,
+ UpdateVisitorRequestWithUserIdParams,
+ UrlActionComponentParams,
+ VisitorAvatarParams,
+ VisitorCompaniesParams,
+ VisitorDeletedObjectParams,
+ VisitorLocationDataParams,
+ VisitorParams,
+ VisitorSegmentsParams,
+ VisitorSocialProfilesParams,
+ VisitorTagsParams,
+ VisitorTagsTagsItemParams,
+)
+from .segments import Segment, SegmentParams, SegmentPersonType
from .subscription_types import (
SubscriptionType,
SubscriptionTypeConsentType,
SubscriptionTypeContentTypesItem,
+ SubscriptionTypeParams,
SubscriptionTypeState,
)
-from .tags import Tag, TagsCreateRequestBody
-from .teams import Team
+from .tags import Tag, TagParams, TagsCreateRequestBody, TagsCreateRequestBodyParams
+from .teams import Team, TeamParams
from .ticket_types import CreateTicketTypeRequestCategory, UpdateTicketTypeRequestBodyCategory
from .tickets import (
Ticket,
TicketCategory,
TicketContacts,
+ TicketContactsParams,
+ TicketParams,
TicketPart,
+ TicketPartParams,
TicketPartPreviousTicketState,
TicketPartTicketState,
TicketTicketState,
TicketType,
TicketTypeCategory,
+ TicketTypeParams,
TicketsReplyRequestBody,
+ TicketsReplyRequestBodyParams,
UpdateTicketRequestAssignment,
+ UpdateTicketRequestAssignmentParams,
UpdateTicketRequestState,
)
from .version import __version__
from .visitors import (
ConvertVisitorRequestUser,
+ ConvertVisitorRequestUserParams,
ConvertVisitorRequestVisitor,
+ ConvertVisitorRequestVisitorParams,
UserWithId,
+ UserWithIdParams,
UserWithUserId,
+ UserWithUserIdParams,
VisitorWithEmail,
+ VisitorWithEmailParams,
VisitorWithId,
+ VisitorWithIdParams,
VisitorWithUserId,
+ VisitorWithUserIdParams,
)
__all__ = [
"ActionComponent",
+ "ActionComponentParams",
"ActionComponent_Sheet",
+ "ActionComponent_SheetParams",
"ActionComponent_Submit",
+ "ActionComponent_SubmitParams",
"ActionComponent_Url",
+ "ActionComponent_UrlParams",
"ActivityLog",
"ActivityLogActivityType",
"ActivityLogList",
+ "ActivityLogListParams",
"ActivityLogMetadata",
+ "ActivityLogMetadataParams",
+ "ActivityLogParams",
"ActivityLogPerformedBy",
+ "ActivityLogPerformedByParams",
"AddressableList",
+ "AddressableListParams",
"Admin",
"AdminAvatar",
+ "AdminAvatarParams",
"AdminList",
+ "AdminListParams",
+ "AdminParams",
"AdminPriorityLevel",
+ "AdminPriorityLevelParams",
"AdminReplyConversationRequest",
"AdminReplyConversationRequestMessageType",
+ "AdminReplyConversationRequestParams",
"AdminReplyTicketRequest",
"AdminReplyTicketRequestMessageType",
+ "AdminReplyTicketRequestParams",
"AdminReplyTicketRequestReplyOptionsItem",
+ "AdminReplyTicketRequestReplyOptionsItemParams",
"AdminWithApp",
"AdminWithAppAvatar",
+ "AdminWithAppAvatarParams",
+ "AdminWithAppParams",
"AiAgent",
+ "AiAgentParams",
"AiAgentSourceType",
"App",
+ "AppParams",
"Article",
"ArticleContent",
+ "ArticleContentParams",
"ArticleContentState",
"ArticleList",
"ArticleListItem",
+ "ArticleListItemParams",
"ArticleListItemState",
+ "ArticleListParams",
+ "ArticleParams",
"ArticleSearchHighlights",
"ArticleSearchHighlightsHighlightedSummaryItemItem",
+ "ArticleSearchHighlightsHighlightedSummaryItemItemParams",
"ArticleSearchHighlightsHighlightedSummaryItemItemType",
"ArticleSearchHighlightsHighlightedTitleItem",
+ "ArticleSearchHighlightsHighlightedTitleItemParams",
"ArticleSearchHighlightsHighlightedTitleItemType",
+ "ArticleSearchHighlightsParams",
"ArticleStatistics",
+ "ArticleStatisticsParams",
"ArticleTranslatedContent",
+ "ArticleTranslatedContentParams",
"AssignConversationRequest",
+ "AssignConversationRequestParams",
"AssignConversationRequestType",
"AsyncIntercom",
"AttachContactToConversationRequestCustomer",
"AttachContactToConversationRequestCustomerCustomer",
+ "AttachContactToConversationRequestCustomerCustomerParams",
"AttachContactToConversationRequestCustomerIntercomUserId",
+ "AttachContactToConversationRequestCustomerIntercomUserIdParams",
+ "AttachContactToConversationRequestCustomerParams",
"AttachContactToConversationRequestCustomerUserId",
+ "AttachContactToConversationRequestCustomerUserIdParams",
"BadRequestError",
"ButtonComponent",
+ "ButtonComponentParams",
"ButtonComponentStyle",
"CanvasObject",
+ "CanvasObjectParams",
"CheckboxComponent",
+ "CheckboxComponentParams",
"CheckboxComponentSaveState",
"CheckboxOption",
+ "CheckboxOptionParams",
"CloseConversationRequest",
+ "CloseConversationRequestParams",
"Collection",
"CollectionList",
+ "CollectionListParams",
+ "CollectionParams",
"CompaniesRetrieveResponse",
+ "CompaniesRetrieveResponseParams",
"CompaniesRetrieveResponse_Company",
+ "CompaniesRetrieveResponse_CompanyParams",
"CompaniesRetrieveResponse_List",
+ "CompaniesRetrieveResponse_ListParams",
"Company",
"CompanyAttachedContacts",
+ "CompanyAttachedContactsParams",
"CompanyAttachedSegments",
+ "CompanyAttachedSegmentsParams",
"CompanyList",
+ "CompanyListParams",
+ "CompanyParams",
"CompanyPlan",
+ "CompanyPlanParams",
"CompanyScroll",
+ "CompanyScrollParams",
"CompanySegments",
+ "CompanySegmentsParams",
"CompanyTags",
+ "CompanyTagsParams",
"Component",
+ "ComponentParams",
"Component_Button",
+ "Component_ButtonParams",
"Component_Checkbox",
+ "Component_CheckboxParams",
"Component_DataTable",
+ "Component_DataTableParams",
"Component_Divider",
+ "Component_DividerParams",
"Component_Dropdown",
+ "Component_DropdownParams",
"Component_Image",
+ "Component_ImageParams",
"Component_Input",
+ "Component_InputParams",
"Component_List",
+ "Component_ListParams",
"Component_SingleSelect",
+ "Component_SingleSelectParams",
"Component_Spacer",
+ "Component_SpacerParams",
"Component_Text",
+ "Component_TextParams",
"Component_Textarea",
+ "Component_TextareaParams",
"ConfigureRequest",
"ConfigureRequestComponentId",
+ "ConfigureRequestComponentIdParams",
+ "ConfigureRequestParams",
"ConfigureRequestZero",
+ "ConfigureRequestZeroParams",
"ConfigureResponse",
"ConfigureResponseCanvas",
+ "ConfigureResponseCanvasParams",
+ "ConfigureResponseParams",
"Contact",
"ContactArchived",
+ "ContactArchivedParams",
"ContactAttachedCompanies",
+ "ContactAttachedCompaniesParams",
"ContactCompanies",
+ "ContactCompaniesParams",
"ContactCompany",
+ "ContactCompanyParams",
"ContactDeleted",
+ "ContactDeletedParams",
"ContactList",
+ "ContactListParams",
"ContactLocation",
+ "ContactLocationParams",
"ContactNotes",
+ "ContactNotesParams",
+ "ContactParams",
"ContactReference",
+ "ContactReferenceParams",
"ContactReplyBaseRequest",
+ "ContactReplyBaseRequestParams",
"ContactReplyConversationRequest",
+ "ContactReplyConversationRequestParams",
"ContactReplyEmailRequest",
+ "ContactReplyEmailRequestParams",
"ContactReplyIntercomUserIdRequest",
+ "ContactReplyIntercomUserIdRequestParams",
"ContactReplyTicketEmailRequest",
+ "ContactReplyTicketEmailRequestParams",
"ContactReplyTicketIntercomUserIdRequest",
+ "ContactReplyTicketIntercomUserIdRequestParams",
"ContactReplyTicketRequest",
+ "ContactReplyTicketRequestParams",
"ContactReplyTicketUserIdRequest",
+ "ContactReplyTicketUserIdRequestParams",
"ContactReplyUserIdRequest",
+ "ContactReplyUserIdRequestParams",
"ContactSegments",
+ "ContactSegmentsParams",
"ContactSocialProfiles",
+ "ContactSocialProfilesParams",
"ContactSubscriptionTypes",
+ "ContactSubscriptionTypesParams",
"ContactTags",
+ "ContactTagsParams",
"ContactUnarchived",
+ "ContactUnarchivedParams",
"ContentObject",
+ "ContentObjectParams",
"ContentSource",
+ "ContentSourceParams",
"ContentSourcesList",
+ "ContentSourcesListParams",
"Context",
"ContextLocation",
+ "ContextParams",
"Conversation",
"ConversationAttachmentFiles",
+ "ConversationAttachmentFilesParams",
"ConversationContacts",
+ "ConversationContactsParams",
"ConversationFirstContactReply",
+ "ConversationFirstContactReplyParams",
+ "ConversationParams",
"ConversationPart",
"ConversationPartAuthor",
+ "ConversationPartAuthorParams",
+ "ConversationPartParams",
"ConversationParts",
+ "ConversationPartsParams",
"ConversationPriority",
"ConversationRating",
+ "ConversationRatingParams",
"ConversationSource",
+ "ConversationSourceParams",
"ConversationSourceType",
"ConversationState",
"ConversationStatistics",
+ "ConversationStatisticsParams",
"ConversationTeammates",
+ "ConversationTeammatesParams",
"ConversationsManageRequestBody",
+ "ConversationsManageRequestBodyParams",
"ConversationsManageRequestBody_Assignment",
+ "ConversationsManageRequestBody_AssignmentParams",
"ConversationsManageRequestBody_Close",
+ "ConversationsManageRequestBody_CloseParams",
"ConversationsManageRequestBody_Open",
+ "ConversationsManageRequestBody_OpenParams",
"ConversationsManageRequestBody_Snoozed",
+ "ConversationsManageRequestBody_SnoozedParams",
"ConvertVisitorRequestUser",
+ "ConvertVisitorRequestUserParams",
"ConvertVisitorRequestVisitor",
+ "ConvertVisitorRequestVisitorParams",
"CreateArticleRequestParentType",
"CreateArticleRequestState",
"CreateContactRequest",
+ "CreateContactRequestParams",
"CreateContactRequestTwo",
"CreateContactRequestWithEmail",
+ "CreateContactRequestWithEmailParams",
"CreateContactRequestWithExternalId",
+ "CreateContactRequestWithExternalIdParams",
"CreateContactRequestWithRole",
+ "CreateContactRequestWithRoleParams",
"CreateConversationRequestFrom",
+ "CreateConversationRequestFromParams",
"CreateConversationRequestFromType",
"CreateDataAttributeRequestDataType",
"CreateDataAttributeRequestModel",
"CreateDataEventRequest",
+ "CreateDataEventRequestParams",
"CreateDataEventRequestTwo",
"CreateDataEventRequestWithEmail",
+ "CreateDataEventRequestWithEmailParams",
"CreateDataEventRequestWithId",
+ "CreateDataEventRequestWithIdParams",
"CreateDataEventRequestWithUserId",
+ "CreateDataEventRequestWithUserIdParams",
"CreateDataEventSummariesRequestEventSummaries",
+ "CreateDataEventSummariesRequestEventSummariesParams",
"CreateMessageRequest",
"CreateMessageRequestFrom",
+ "CreateMessageRequestFromParams",
+ "CreateMessageRequestParams",
"CreateMessageRequestThree",
"CreateMessageRequestTo",
+ "CreateMessageRequestToParams",
"CreateMessageRequestType",
"CreateMessageRequestWithEmail",
+ "CreateMessageRequestWithEmailParams",
"CreateMessageRequestWithInapp",
+ "CreateMessageRequestWithInappParams",
"CreateMessageRequest_Email",
+ "CreateMessageRequest_EmailParams",
"CreateMessageRequest_Inapp",
+ "CreateMessageRequest_InappParams",
"CreateOrUpdateTagRequest",
+ "CreateOrUpdateTagRequestParams",
"CreateTicketReplyWithCommentRequest",
+ "CreateTicketReplyWithCommentRequestParams",
"CreateTicketRequest",
"CreateTicketRequestContactsItem",
"CreateTicketRequestContactsItemEmail",
+ "CreateTicketRequestContactsItemEmailParams",
"CreateTicketRequestContactsItemExternalId",
+ "CreateTicketRequestContactsItemExternalIdParams",
"CreateTicketRequestContactsItemId",
+ "CreateTicketRequestContactsItemIdParams",
+ "CreateTicketRequestContactsItemParams",
+ "CreateTicketRequestParams",
"CreateTicketTypeRequestCategory",
"CurrentCanvas",
+ "CurrentCanvasParams",
"CursorPages",
+ "CursorPagesParams",
"CustomAttributes",
"CustomerRequest",
"CustomerRequestEmail",
+ "CustomerRequestEmailParams",
"CustomerRequestIntercomUserId",
+ "CustomerRequestIntercomUserIdParams",
+ "CustomerRequestParams",
"CustomerRequestUserId",
+ "CustomerRequestUserIdParams",
"DataAttribute",
"DataAttributeDataType",
"DataAttributeList",
+ "DataAttributeListParams",
"DataAttributeModel",
+ "DataAttributeParams",
"DataAttributesListRequestModel",
"DataEvent",
"DataEventList",
"DataEventListPages",
+ "DataEventListPagesParams",
+ "DataEventListParams",
+ "DataEventParams",
"DataEventSummary",
"DataEventSummaryItem",
+ "DataEventSummaryItemParams",
+ "DataEventSummaryParams",
"DataExport",
"DataExportCsv",
+ "DataExportCsvParams",
+ "DataExportParams",
"DataExportStatus",
"DataTableComponent",
+ "DataTableComponentParams",
"DataTableItem",
+ "DataTableItemParams",
"DeletedArticleObject",
+ "DeletedArticleObjectParams",
"DeletedCollectionObject",
+ "DeletedCollectionObjectParams",
"DeletedCompanyObject",
+ "DeletedCompanyObjectParams",
"DeletedObject",
+ "DeletedObjectParams",
"DividerComponent",
+ "DividerComponentParams",
"DropdownComponent",
+ "DropdownComponentParams",
"DropdownComponentSaveState",
"DropdownOption",
+ "DropdownOptionParams",
"Error",
"ErrorErrorsItem",
+ "ErrorErrorsItemParams",
+ "ErrorParams",
"Event",
+ "EventParams",
"FileAttribute",
+ "FileAttributeParams",
"ForbiddenError",
"GroupContent",
+ "GroupContentParams",
"GroupTranslatedContent",
+ "GroupTranslatedContentParams",
"HelpCenter",
"HelpCenterList",
+ "HelpCenterListParams",
+ "HelpCenterParams",
"ImageComponent",
"ImageComponentAlign",
+ "ImageComponentParams",
"InitializeRequest",
+ "InitializeRequestParams",
"InitializeResponse",
+ "InitializeResponseParams",
"InputComponent",
+ "InputComponentParams",
"InputComponentSaveState",
"Intercom",
"IntercomEnvironment",
"LinkedObject",
"LinkedObjectList",
+ "LinkedObjectListParams",
+ "LinkedObjectParams",
"LinkedObjectType",
"ListComponent",
"ListComponentItemsItem",
+ "ListComponentItemsItemParams",
+ "ListComponentParams",
"ListItem",
+ "ListItemParams",
"ListItemWithImage",
+ "ListItemWithImageParams",
"ListItemWithoutImage",
+ "ListItemWithoutImageParams",
"LiveCanvasRequest",
+ "LiveCanvasRequestParams",
"LiveCanvasResponse",
+ "LiveCanvasResponseParams",
"Message",
"MessageMessageType",
+ "MessageParams",
"Metadata",
+ "MetadataParams",
"MultipleFilterSearchRequest",
"MultipleFilterSearchRequestOperator",
+ "MultipleFilterSearchRequestParams",
"MultipleOrSingleFilterSearchRequest",
+ "MultipleOrSingleFilterSearchRequestParams",
"NewsItem",
+ "NewsItemParams",
"NewsItemRequest",
+ "NewsItemRequestParams",
"NewsItemRequestState",
"NewsItemState",
"Newsfeed",
"NewsfeedAssignment",
+ "NewsfeedAssignmentParams",
+ "NewsfeedParams",
"NotFoundError",
"Note",
"NoteContact",
+ "NoteContactParams",
"NoteList",
+ "NoteListParams",
+ "NoteParams",
"OffsetPages",
+ "OffsetPagesParams",
"OpenConversationRequest",
+ "OpenConversationRequestParams",
"PagesLink",
+ "PagesLinkParams",
"PaginatedConversationResponse",
+ "PaginatedConversationResponseParams",
"PaginatedNewsItemResponse",
+ "PaginatedNewsItemResponseParams",
"PaginatedNewsfeedResponse",
+ "PaginatedNewsfeedResponseParams",
"PartAttachment",
+ "PartAttachmentParams",
"PhoneSwitch",
+ "PhoneSwitchParams",
"RedactConversationRequest",
"RedactConversationRequestConversationPart",
+ "RedactConversationRequestConversationPartParams",
+ "RedactConversationRequestParams",
"RedactConversationRequestSource",
+ "RedactConversationRequestSourceParams",
"RedactConversationRequest_ConversationPart",
+ "RedactConversationRequest_ConversationPartParams",
"RedactConversationRequest_Source",
+ "RedactConversationRequest_SourceParams",
"Reference",
+ "ReferenceParams",
"ReplyConversationRequest",
+ "ReplyConversationRequestParams",
"ResultsResponse",
+ "ResultsResponseParams",
"SearchArticlesResponse",
"SearchArticlesResponseData",
+ "SearchArticlesResponseDataParams",
+ "SearchArticlesResponseParams",
"SearchRequest",
+ "SearchRequestParams",
"SearchRequestQuery",
+ "SearchRequestQueryParams",
"Segment",
"SegmentList",
+ "SegmentListParams",
+ "SegmentParams",
"SegmentPersonType",
"SheetActionComponent",
+ "SheetActionComponentParams",
"SingleFilterSearchRequest",
"SingleFilterSearchRequestOperator",
+ "SingleFilterSearchRequestParams",
"SingleFilterSearchRequestValue",
+ "SingleFilterSearchRequestValueParams",
"SingleSelectComponent",
+ "SingleSelectComponentParams",
"SingleSelectComponentSaveState",
"SingleSelectOption",
+ "SingleSelectOptionParams",
"SlaApplied",
+ "SlaAppliedParams",
"SlaAppliedSlaStatus",
"SnoozeConversationRequest",
+ "SnoozeConversationRequestParams",
"SocialProfile",
+ "SocialProfileParams",
"SpacerComponent",
+ "SpacerComponentParams",
"SpacerComponentSize",
"StartingAfterPaging",
+ "StartingAfterPagingParams",
"SubmitActionComponent",
+ "SubmitActionComponentParams",
"SubmitRequest",
+ "SubmitRequestParams",
"SubmitResponse",
+ "SubmitResponseParams",
"SubscriptionType",
"SubscriptionTypeConsentType",
"SubscriptionTypeContentTypesItem",
"SubscriptionTypeList",
+ "SubscriptionTypeListParams",
+ "SubscriptionTypeParams",
"SubscriptionTypeState",
"Tag",
"TagCompanyRequest",
"TagCompanyRequestCompaniesItem",
+ "TagCompanyRequestCompaniesItemParams",
+ "TagCompanyRequestParams",
"TagList",
+ "TagListParams",
"TagMultipleUsersRequest",
+ "TagMultipleUsersRequestParams",
"TagMultipleUsersRequestUsersItem",
+ "TagMultipleUsersRequestUsersItemParams",
+ "TagParams",
"Tags",
"TagsCreateRequestBody",
+ "TagsCreateRequestBodyParams",
+ "TagsParams",
"Team",
"TeamList",
+ "TeamListParams",
+ "TeamParams",
"TeamPriorityLevel",
+ "TeamPriorityLevelParams",
"TextAreaComponent",
+ "TextAreaComponentParams",
"TextComponent",
"TextComponentAlign",
+ "TextComponentParams",
"TextComponentStyle",
"Ticket",
"TicketCategory",
"TicketContacts",
+ "TicketContactsParams",
"TicketCustomAttributes",
"TicketList",
+ "TicketListParams",
+ "TicketParams",
"TicketPart",
"TicketPartAuthor",
+ "TicketPartAuthorParams",
"TicketPartAuthorType",
+ "TicketPartParams",
"TicketPartPreviousTicketState",
"TicketPartTicketState",
"TicketParts",
+ "TicketPartsParams",
"TicketReply",
+ "TicketReplyParams",
"TicketReplyPartType",
"TicketRequestCustomAttributes",
"TicketTicketState",
@@ -701,39 +1231,67 @@
"TicketTypeAttribute",
"TicketTypeAttributeDataType",
"TicketTypeAttributeList",
+ "TicketTypeAttributeListParams",
+ "TicketTypeAttributeParams",
"TicketTypeCategory",
"TicketTypeList",
+ "TicketTypeListParams",
+ "TicketTypeParams",
"TicketsReplyRequestBody",
+ "TicketsReplyRequestBodyParams",
"Translation",
+ "TranslationParams",
"UnauthorizedError",
"UnprocessableEntityError",
"UntagCompanyRequest",
"UntagCompanyRequestCompaniesItem",
+ "UntagCompanyRequestCompaniesItemParams",
+ "UntagCompanyRequestParams",
"UpdateArticleRequestBodyParentType",
"UpdateArticleRequestBodyState",
"UpdateDataAttributeRequestOptionsItem",
+ "UpdateDataAttributeRequestOptionsItemParams",
"UpdateTicketRequestAssignment",
+ "UpdateTicketRequestAssignmentParams",
"UpdateTicketRequestState",
"UpdateTicketTypeRequestBodyCategory",
"UpdateVisitorRequest",
"UpdateVisitorRequestOne",
+ "UpdateVisitorRequestParams",
"UpdateVisitorRequestWithId",
+ "UpdateVisitorRequestWithIdParams",
"UpdateVisitorRequestWithUserId",
+ "UpdateVisitorRequestWithUserIdParams",
"UrlActionComponent",
+ "UrlActionComponentParams",
"UserWithId",
+ "UserWithIdParams",
"UserWithUserId",
+ "UserWithUserIdParams",
"Visitor",
"VisitorAvatar",
+ "VisitorAvatarParams",
"VisitorCompanies",
+ "VisitorCompaniesParams",
"VisitorDeletedObject",
+ "VisitorDeletedObjectParams",
"VisitorLocationData",
+ "VisitorLocationDataParams",
+ "VisitorParams",
"VisitorSegments",
+ "VisitorSegmentsParams",
"VisitorSocialProfiles",
+ "VisitorSocialProfilesParams",
"VisitorTags",
+ "VisitorTagsParams",
"VisitorTagsTagsItem",
+ "VisitorTagsTagsItemParams",
"VisitorWithEmail",
+ "VisitorWithEmailParams",
"VisitorWithId",
+ "VisitorWithIdParams",
"VisitorWithUserId",
+ "VisitorWithUserIdParams",
"__version__",
"admins",
"ai_agent",
diff --git a/src/intercom/admins/__init__.py b/src/intercom/admins/__init__.py
index 6d2c427..613578c 100644
--- a/src/intercom/admins/__init__.py
+++ b/src/intercom/admins/__init__.py
@@ -3,5 +3,6 @@
# isort: skip_file
from .types import Admin, AdminAvatar
+from .requests import AdminAvatarParams, AdminParams
-__all__ = ["Admin", "AdminAvatar"]
+__all__ = ["Admin", "AdminAvatar", "AdminAvatarParams", "AdminParams"]
diff --git a/src/intercom/admins/requests/__init__.py b/src/intercom/admins/requests/__init__.py
new file mode 100644
index 0000000..234c287
--- /dev/null
+++ b/src/intercom/admins/requests/__init__.py
@@ -0,0 +1,8 @@
+# This file was auto-generated by Fern from our API Definition.
+
+# isort: skip_file
+
+from .admin import AdminParams
+from .admin_avatar import AdminAvatarParams
+
+__all__ = ["AdminAvatarParams", "AdminParams"]
diff --git a/src/intercom/admins/requests/admin.py b/src/intercom/admins/requests/admin.py
new file mode 100644
index 0000000..4bf50ca
--- /dev/null
+++ b/src/intercom/admins/requests/admin.py
@@ -0,0 +1,65 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing
+
+import typing_extensions
+from ...requests.team_priority_level import TeamPriorityLevelParams
+from .admin_avatar import AdminAvatarParams
+
+
+class AdminParams(typing_extensions.TypedDict):
+ """
+ Admins are teammate accounts that have access to a workspace.
+ """
+
+ type: typing_extensions.NotRequired[typing.Literal["admin"]]
+ """
+ String representing the object's type. Always has the value `admin`.
+ """
+
+ id: str
+ """
+ The id representing the admin.
+ """
+
+ name: str
+ """
+ The name of the admin.
+ """
+
+ email: str
+ """
+ The email of the admin.
+ """
+
+ job_title: typing_extensions.NotRequired[str]
+ """
+ The job title of the admin.
+ """
+
+ away_mode_enabled: bool
+ """
+ Identifies if this admin is currently set in away mode.
+ """
+
+ away_mode_reassign: bool
+ """
+ Identifies if this admin is set to automatically reassign new conversations to the apps default inbox.
+ """
+
+ has_inbox_seat: bool
+ """
+ Identifies if this admin has a paid inbox seat to restrict/allow features that require them.
+ """
+
+ team_ids: typing.Sequence[int]
+ """
+ This object represents the avatar associated with the admin.
+ """
+
+ avatar: typing_extensions.NotRequired[AdminAvatarParams]
+ """
+ The avatar object associated with the admin
+ """
+
+ team_priority_level: typing_extensions.NotRequired[TeamPriorityLevelParams]
diff --git a/src/intercom/admins/requests/admin_avatar.py b/src/intercom/admins/requests/admin_avatar.py
new file mode 100644
index 0000000..50d8f91
--- /dev/null
+++ b/src/intercom/admins/requests/admin_avatar.py
@@ -0,0 +1,14 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing_extensions
+
+
+class AdminAvatarParams(typing_extensions.TypedDict):
+ """
+ The avatar object associated with the admin
+ """
+
+ image_url: str
+ """
+ URL of the admin's avatar image
+ """
diff --git a/src/intercom/ai_agent/__init__.py b/src/intercom/ai_agent/__init__.py
index da3b829..d7ad5dc 100644
--- a/src/intercom/ai_agent/__init__.py
+++ b/src/intercom/ai_agent/__init__.py
@@ -3,5 +3,6 @@
# isort: skip_file
from .types import AiAgent, AiAgentSourceType
+from .requests import AiAgentParams
-__all__ = ["AiAgent", "AiAgentSourceType"]
+__all__ = ["AiAgent", "AiAgentParams", "AiAgentSourceType"]
diff --git a/src/intercom/ai_agent/requests/__init__.py b/src/intercom/ai_agent/requests/__init__.py
new file mode 100644
index 0000000..a4ddb09
--- /dev/null
+++ b/src/intercom/ai_agent/requests/__init__.py
@@ -0,0 +1,7 @@
+# This file was auto-generated by Fern from our API Definition.
+
+# isort: skip_file
+
+from .ai_agent import AiAgentParams
+
+__all__ = ["AiAgentParams"]
diff --git a/src/intercom/ai_agent/requests/ai_agent.py b/src/intercom/ai_agent/requests/ai_agent.py
new file mode 100644
index 0000000..1307ddf
--- /dev/null
+++ b/src/intercom/ai_agent/requests/ai_agent.py
@@ -0,0 +1,43 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing_extensions
+from ...requests.content_sources_list import ContentSourcesListParams
+from ..types.ai_agent_source_type import AiAgentSourceType
+
+
+class AiAgentParams(typing_extensions.TypedDict):
+ """
+ Data related to AI Agent involvement in the conversation.
+ """
+
+ source_type: AiAgentSourceType
+ """
+ The type of the source that triggered AI Agent involvement in the conversation.
+ """
+
+ source_title: typing_extensions.NotRequired[str]
+ """
+ The title of the source that triggered AI Agent involvement in the conversation. If this is `essentials_plan_setup` then it will return `null`.
+ """
+
+ last_answer_type: typing_extensions.NotRequired[str]
+ """
+ The type of the last answer delivered by AI Agent. If no answer was delivered then this will return `null`
+ """
+
+ resolution_state: typing_extensions.NotRequired[str]
+ """
+ The resolution state of AI Agent. If no AI or custom answer has been delivered then this will return `null`.
+ """
+
+ rating: typing_extensions.NotRequired[int]
+ """
+ The customer satisfaction rating given to AI Agent, from 1-5.
+ """
+
+ rating_remark: typing_extensions.NotRequired[str]
+ """
+ The customer satisfaction rating remark given to AI Agent.
+ """
+
+ content_sources: typing_extensions.NotRequired[ContentSourcesListParams]
diff --git a/src/intercom/ai_content_source/__init__.py b/src/intercom/ai_content_source/__init__.py
index d89e9ba..b2ed963 100644
--- a/src/intercom/ai_content_source/__init__.py
+++ b/src/intercom/ai_content_source/__init__.py
@@ -3,5 +3,6 @@
# isort: skip_file
from .types import ContentSource
+from .requests import ContentSourceParams
-__all__ = ["ContentSource"]
+__all__ = ["ContentSource", "ContentSourceParams"]
diff --git a/src/intercom/ai_content_source/requests/__init__.py b/src/intercom/ai_content_source/requests/__init__.py
new file mode 100644
index 0000000..e8fc199
--- /dev/null
+++ b/src/intercom/ai_content_source/requests/__init__.py
@@ -0,0 +1,7 @@
+# This file was auto-generated by Fern from our API Definition.
+
+# isort: skip_file
+
+from .content_source import ContentSourceParams
+
+__all__ = ["ContentSourceParams"]
diff --git a/src/intercom/ai_content_source/requests/content_source.py b/src/intercom/ai_content_source/requests/content_source.py
new file mode 100644
index 0000000..ddd4428
--- /dev/null
+++ b/src/intercom/ai_content_source/requests/content_source.py
@@ -0,0 +1,31 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing
+
+import typing_extensions
+
+
+class ContentSourceParams(typing_extensions.TypedDict):
+ """
+ The content source used by AI Agent in the conversation.
+ """
+
+ content_type: typing.Literal["custom_answer"]
+ """
+ The type of the content source.
+ """
+
+ url: str
+ """
+ The internal URL linking to the content source for teammates.
+ """
+
+ title: str
+ """
+ The title of the content source.
+ """
+
+ locale: str
+ """
+ The ISO 639 language code of the content source.
+ """
diff --git a/src/intercom/articles/__init__.py b/src/intercom/articles/__init__.py
index 143e0d6..4e0a736 100644
--- a/src/intercom/articles/__init__.py
+++ b/src/intercom/articles/__init__.py
@@ -18,20 +18,36 @@
UpdateArticleRequestBodyParentType,
UpdateArticleRequestBodyState,
)
+from .requests import (
+ ArticleListItemParams,
+ ArticleParams,
+ ArticleSearchHighlightsHighlightedSummaryItemItemParams,
+ ArticleSearchHighlightsHighlightedTitleItemParams,
+ ArticleSearchHighlightsParams,
+ SearchArticlesResponseDataParams,
+ SearchArticlesResponseParams,
+)
__all__ = [
"Article",
"ArticleListItem",
+ "ArticleListItemParams",
"ArticleListItemState",
+ "ArticleParams",
"ArticleSearchHighlights",
"ArticleSearchHighlightsHighlightedSummaryItemItem",
+ "ArticleSearchHighlightsHighlightedSummaryItemItemParams",
"ArticleSearchHighlightsHighlightedSummaryItemItemType",
"ArticleSearchHighlightsHighlightedTitleItem",
+ "ArticleSearchHighlightsHighlightedTitleItemParams",
"ArticleSearchHighlightsHighlightedTitleItemType",
+ "ArticleSearchHighlightsParams",
"CreateArticleRequestParentType",
"CreateArticleRequestState",
"SearchArticlesResponse",
"SearchArticlesResponseData",
+ "SearchArticlesResponseDataParams",
+ "SearchArticlesResponseParams",
"UpdateArticleRequestBodyParentType",
"UpdateArticleRequestBodyState",
]
diff --git a/src/intercom/articles/client.py b/src/intercom/articles/client.py
index 0ac6720..ec93407 100644
--- a/src/intercom/articles/client.py
+++ b/src/intercom/articles/client.py
@@ -5,7 +5,7 @@
from ..core.client_wrapper import AsyncClientWrapper, SyncClientWrapper
from ..core.pagination import AsyncPager, SyncPager
from ..core.request_options import RequestOptions
-from ..types.article_translated_content import ArticleTranslatedContent
+from ..requests.article_translated_content import ArticleTranslatedContentParams
from ..types.deleted_article_object import DeletedArticleObject
from .raw_client import AsyncRawArticlesClient, RawArticlesClient
from .types.article import Article
@@ -91,7 +91,7 @@ def create(
state: typing.Optional[CreateArticleRequestState] = OMIT,
parent_id: typing.Optional[int] = OMIT,
parent_type: typing.Optional[CreateArticleRequestParentType] = OMIT,
- translated_content: typing.Optional[ArticleTranslatedContent] = OMIT,
+ translated_content: typing.Optional[ArticleTranslatedContentParams] = OMIT,
request_options: typing.Optional[RequestOptions] = None,
) -> Article:
"""
@@ -120,7 +120,7 @@ def create(
parent_type : typing.Optional[CreateArticleRequestParentType]
The type of parent, which can either be a `collection` or `section`.
- translated_content : typing.Optional[ArticleTranslatedContent]
+ translated_content : typing.Optional[ArticleTranslatedContentParams]
request_options : typing.Optional[RequestOptions]
Request-specific configuration.
@@ -132,7 +132,7 @@ def create(
Examples
--------
- from intercom import ArticleContent, ArticleTranslatedContent, Intercom
+ from intercom import Intercom
client = Intercom(
token="YOUR_TOKEN",
@@ -145,15 +145,16 @@ def create(
state="published",
parent_id=145,
parent_type="collection",
- translated_content=ArticleTranslatedContent(
- fr=ArticleContent(
- title="Merci pour tout",
- description="Description de l'article",
- body="Corps de l'article",
- author_id=991267407,
- state="published",
- ),
- ),
+ translated_content={
+ "fr": {
+ "type": "article_content",
+ "title": "Merci pour tout",
+ "description": "Description de l'article",
+ "body": "Corps de l'article",
+ "author_id": 991267407,
+ "state": "published",
+ }
+ },
)
"""
_response = self._raw_client.create(
@@ -211,7 +212,7 @@ def update(
state: typing.Optional[UpdateArticleRequestBodyState] = OMIT,
parent_id: typing.Optional[str] = OMIT,
parent_type: typing.Optional[UpdateArticleRequestBodyParentType] = OMIT,
- translated_content: typing.Optional[ArticleTranslatedContent] = OMIT,
+ translated_content: typing.Optional[ArticleTranslatedContentParams] = OMIT,
request_options: typing.Optional[RequestOptions] = None,
) -> Article:
"""
@@ -243,7 +244,7 @@ def update(
parent_type : typing.Optional[UpdateArticleRequestBodyParentType]
The type of parent, which can either be a `collection` or `section`.
- translated_content : typing.Optional[ArticleTranslatedContent]
+ translated_content : typing.Optional[ArticleTranslatedContentParams]
request_options : typing.Optional[RequestOptions]
Request-specific configuration.
@@ -449,7 +450,7 @@ async def create(
state: typing.Optional[CreateArticleRequestState] = OMIT,
parent_id: typing.Optional[int] = OMIT,
parent_type: typing.Optional[CreateArticleRequestParentType] = OMIT,
- translated_content: typing.Optional[ArticleTranslatedContent] = OMIT,
+ translated_content: typing.Optional[ArticleTranslatedContentParams] = OMIT,
request_options: typing.Optional[RequestOptions] = None,
) -> Article:
"""
@@ -478,7 +479,7 @@ async def create(
parent_type : typing.Optional[CreateArticleRequestParentType]
The type of parent, which can either be a `collection` or `section`.
- translated_content : typing.Optional[ArticleTranslatedContent]
+ translated_content : typing.Optional[ArticleTranslatedContentParams]
request_options : typing.Optional[RequestOptions]
Request-specific configuration.
@@ -492,7 +493,7 @@ async def create(
--------
import asyncio
- from intercom import ArticleContent, ArticleTranslatedContent, AsyncIntercom
+ from intercom import AsyncIntercom
client = AsyncIntercom(
token="YOUR_TOKEN",
@@ -508,15 +509,16 @@ async def main() -> None:
state="published",
parent_id=145,
parent_type="collection",
- translated_content=ArticleTranslatedContent(
- fr=ArticleContent(
- title="Merci pour tout",
- description="Description de l'article",
- body="Corps de l'article",
- author_id=991267407,
- state="published",
- ),
- ),
+ translated_content={
+ "fr": {
+ "type": "article_content",
+ "title": "Merci pour tout",
+ "description": "Description de l'article",
+ "body": "Corps de l'article",
+ "author_id": 991267407,
+ "state": "published",
+ }
+ },
)
@@ -585,7 +587,7 @@ async def update(
state: typing.Optional[UpdateArticleRequestBodyState] = OMIT,
parent_id: typing.Optional[str] = OMIT,
parent_type: typing.Optional[UpdateArticleRequestBodyParentType] = OMIT,
- translated_content: typing.Optional[ArticleTranslatedContent] = OMIT,
+ translated_content: typing.Optional[ArticleTranslatedContentParams] = OMIT,
request_options: typing.Optional[RequestOptions] = None,
) -> Article:
"""
@@ -617,7 +619,7 @@ async def update(
parent_type : typing.Optional[UpdateArticleRequestBodyParentType]
The type of parent, which can either be a `collection` or `section`.
- translated_content : typing.Optional[ArticleTranslatedContent]
+ translated_content : typing.Optional[ArticleTranslatedContentParams]
request_options : typing.Optional[RequestOptions]
Request-specific configuration.
diff --git a/src/intercom/articles/raw_client.py b/src/intercom/articles/raw_client.py
index ee2643b..d81fd46 100644
--- a/src/intercom/articles/raw_client.py
+++ b/src/intercom/articles/raw_client.py
@@ -14,8 +14,8 @@
from ..errors.bad_request_error import BadRequestError
from ..errors.not_found_error import NotFoundError
from ..errors.unauthorized_error import UnauthorizedError
+from ..requests.article_translated_content import ArticleTranslatedContentParams
from ..types.article_list import ArticleList
-from ..types.article_translated_content import ArticleTranslatedContent
from ..types.deleted_article_object import DeletedArticleObject
from ..types.error import Error
from .types.article import Article
@@ -120,7 +120,7 @@ def create(
state: typing.Optional[CreateArticleRequestState] = OMIT,
parent_id: typing.Optional[int] = OMIT,
parent_type: typing.Optional[CreateArticleRequestParentType] = OMIT,
- translated_content: typing.Optional[ArticleTranslatedContent] = OMIT,
+ translated_content: typing.Optional[ArticleTranslatedContentParams] = OMIT,
request_options: typing.Optional[RequestOptions] = None,
) -> HttpResponse[Article]:
"""
@@ -149,7 +149,7 @@ def create(
parent_type : typing.Optional[CreateArticleRequestParentType]
The type of parent, which can either be a `collection` or `section`.
- translated_content : typing.Optional[ArticleTranslatedContent]
+ translated_content : typing.Optional[ArticleTranslatedContentParams]
request_options : typing.Optional[RequestOptions]
Request-specific configuration.
@@ -171,7 +171,7 @@ def create(
"parent_id": parent_id,
"parent_type": parent_type,
"translated_content": convert_and_respect_annotation_metadata(
- object_=translated_content, annotation=ArticleTranslatedContent, direction="write"
+ object_=translated_content, annotation=ArticleTranslatedContentParams, direction="write"
),
},
headers={
@@ -289,7 +289,7 @@ def update(
state: typing.Optional[UpdateArticleRequestBodyState] = OMIT,
parent_id: typing.Optional[str] = OMIT,
parent_type: typing.Optional[UpdateArticleRequestBodyParentType] = OMIT,
- translated_content: typing.Optional[ArticleTranslatedContent] = OMIT,
+ translated_content: typing.Optional[ArticleTranslatedContentParams] = OMIT,
request_options: typing.Optional[RequestOptions] = None,
) -> HttpResponse[Article]:
"""
@@ -321,7 +321,7 @@ def update(
parent_type : typing.Optional[UpdateArticleRequestBodyParentType]
The type of parent, which can either be a `collection` or `section`.
- translated_content : typing.Optional[ArticleTranslatedContent]
+ translated_content : typing.Optional[ArticleTranslatedContentParams]
request_options : typing.Optional[RequestOptions]
Request-specific configuration.
@@ -343,7 +343,7 @@ def update(
"parent_id": parent_id,
"parent_type": parent_type,
"translated_content": convert_and_respect_annotation_metadata(
- object_=translated_content, annotation=ArticleTranslatedContent, direction="write"
+ object_=translated_content, annotation=ArticleTranslatedContentParams, direction="write"
),
},
headers={
@@ -615,7 +615,7 @@ async def create(
state: typing.Optional[CreateArticleRequestState] = OMIT,
parent_id: typing.Optional[int] = OMIT,
parent_type: typing.Optional[CreateArticleRequestParentType] = OMIT,
- translated_content: typing.Optional[ArticleTranslatedContent] = OMIT,
+ translated_content: typing.Optional[ArticleTranslatedContentParams] = OMIT,
request_options: typing.Optional[RequestOptions] = None,
) -> AsyncHttpResponse[Article]:
"""
@@ -644,7 +644,7 @@ async def create(
parent_type : typing.Optional[CreateArticleRequestParentType]
The type of parent, which can either be a `collection` or `section`.
- translated_content : typing.Optional[ArticleTranslatedContent]
+ translated_content : typing.Optional[ArticleTranslatedContentParams]
request_options : typing.Optional[RequestOptions]
Request-specific configuration.
@@ -666,7 +666,7 @@ async def create(
"parent_id": parent_id,
"parent_type": parent_type,
"translated_content": convert_and_respect_annotation_metadata(
- object_=translated_content, annotation=ArticleTranslatedContent, direction="write"
+ object_=translated_content, annotation=ArticleTranslatedContentParams, direction="write"
),
},
headers={
@@ -784,7 +784,7 @@ async def update(
state: typing.Optional[UpdateArticleRequestBodyState] = OMIT,
parent_id: typing.Optional[str] = OMIT,
parent_type: typing.Optional[UpdateArticleRequestBodyParentType] = OMIT,
- translated_content: typing.Optional[ArticleTranslatedContent] = OMIT,
+ translated_content: typing.Optional[ArticleTranslatedContentParams] = OMIT,
request_options: typing.Optional[RequestOptions] = None,
) -> AsyncHttpResponse[Article]:
"""
@@ -816,7 +816,7 @@ async def update(
parent_type : typing.Optional[UpdateArticleRequestBodyParentType]
The type of parent, which can either be a `collection` or `section`.
- translated_content : typing.Optional[ArticleTranslatedContent]
+ translated_content : typing.Optional[ArticleTranslatedContentParams]
request_options : typing.Optional[RequestOptions]
Request-specific configuration.
@@ -838,7 +838,7 @@ async def update(
"parent_id": parent_id,
"parent_type": parent_type,
"translated_content": convert_and_respect_annotation_metadata(
- object_=translated_content, annotation=ArticleTranslatedContent, direction="write"
+ object_=translated_content, annotation=ArticleTranslatedContentParams, direction="write"
),
},
headers={
diff --git a/src/intercom/articles/requests/__init__.py b/src/intercom/articles/requests/__init__.py
new file mode 100644
index 0000000..1e039e2
--- /dev/null
+++ b/src/intercom/articles/requests/__init__.py
@@ -0,0 +1,23 @@
+# This file was auto-generated by Fern from our API Definition.
+
+# isort: skip_file
+
+from .article import ArticleParams
+from .article_list_item import ArticleListItemParams
+from .article_search_highlights import ArticleSearchHighlightsParams
+from .article_search_highlights_highlighted_summary_item_item import (
+ ArticleSearchHighlightsHighlightedSummaryItemItemParams,
+)
+from .article_search_highlights_highlighted_title_item import ArticleSearchHighlightsHighlightedTitleItemParams
+from .search_articles_response import SearchArticlesResponseParams
+from .search_articles_response_data import SearchArticlesResponseDataParams
+
+__all__ = [
+ "ArticleListItemParams",
+ "ArticleParams",
+ "ArticleSearchHighlightsHighlightedSummaryItemItemParams",
+ "ArticleSearchHighlightsHighlightedTitleItemParams",
+ "ArticleSearchHighlightsParams",
+ "SearchArticlesResponseDataParams",
+ "SearchArticlesResponseParams",
+]
diff --git a/src/intercom/articles/requests/article.py b/src/intercom/articles/requests/article.py
new file mode 100644
index 0000000..636c57e
--- /dev/null
+++ b/src/intercom/articles/requests/article.py
@@ -0,0 +1,13 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing_extensions
+from ...requests.article_statistics import ArticleStatisticsParams
+from .article_list_item import ArticleListItemParams
+
+
+class ArticleParams(ArticleListItemParams):
+ """
+ The Articles API is a central place to gather all information and take actions on your articles. Articles can live within collections and sections, or alternatively they can stand alone.
+ """
+
+ statistics: typing_extensions.NotRequired[ArticleStatisticsParams]
diff --git a/src/intercom/articles/requests/article_list_item.py b/src/intercom/articles/requests/article_list_item.py
new file mode 100644
index 0000000..0758cc7
--- /dev/null
+++ b/src/intercom/articles/requests/article_list_item.py
@@ -0,0 +1,90 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing
+
+import typing_extensions
+from ...requests.article_translated_content import ArticleTranslatedContentParams
+from ..types.article_list_item_state import ArticleListItemState
+
+
+class ArticleListItemParams(typing_extensions.TypedDict):
+ """
+ The data returned about your articles when you list them.
+ """
+
+ type: typing_extensions.NotRequired[typing.Literal["article"]]
+ """
+ The type of object - `article`.
+ """
+
+ id: str
+ """
+ The unique identifier for the article which is given by Intercom.
+ """
+
+ workspace_id: str
+ """
+ The id of the workspace which the article belongs to.
+ """
+
+ title: str
+ """
+ The title of the article. For multilingual articles, this will be the title of the default language's content.
+ """
+
+ description: typing_extensions.NotRequired[str]
+ """
+ The description of the article. For multilingual articles, this will be the description of the default language's content.
+ """
+
+ body: typing_extensions.NotRequired[str]
+ """
+ The body of the article in HTML. For multilingual articles, this will be the body of the default language's content.
+ """
+
+ author_id: int
+ """
+ The id of the author of the article. For multilingual articles, this will be the id of the author of the default language's content. Must be a teammate on the help center's workspace.
+ """
+
+ state: ArticleListItemState
+ """
+ Whether the article is `published` or is a `draft`. For multilingual articles, this will be the state of the default language's content.
+ """
+
+ created_at: int
+ """
+ The time when the article was created. For multilingual articles, this will be the timestamp of creation of the default language's content in seconds.
+ """
+
+ updated_at: int
+ """
+ The time when the article was last updated. For multilingual articles, this will be the timestamp of last update of the default language's content in seconds.
+ """
+
+ url: typing_extensions.NotRequired[str]
+ """
+ The URL of the article. For multilingual articles, this will be the URL of the default language's content.
+ """
+
+ parent_id: typing_extensions.NotRequired[int]
+ """
+ The id of the article's parent collection or section. An article without this field stands alone.
+ """
+
+ parent_ids: typing_extensions.NotRequired[typing.Sequence[int]]
+ """
+ The ids of the article's parent collections or sections. An article without this field stands alone.
+ """
+
+ parent_type: typing_extensions.NotRequired[str]
+ """
+ The type of parent, which can either be a `collection` or `section`.
+ """
+
+ default_locale: typing_extensions.NotRequired[str]
+ """
+ The default locale of the help center. This field is only returned for multilingual help centers.
+ """
+
+ translated_content: typing_extensions.NotRequired[ArticleTranslatedContentParams]
diff --git a/src/intercom/articles/requests/article_search_highlights.py b/src/intercom/articles/requests/article_search_highlights.py
new file mode 100644
index 0000000..6bd6074
--- /dev/null
+++ b/src/intercom/articles/requests/article_search_highlights.py
@@ -0,0 +1,30 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing
+
+import typing_extensions
+from .article_search_highlights_highlighted_summary_item_item import (
+ ArticleSearchHighlightsHighlightedSummaryItemItemParams,
+)
+from .article_search_highlights_highlighted_title_item import ArticleSearchHighlightsHighlightedTitleItemParams
+
+
+class ArticleSearchHighlightsParams(typing_extensions.TypedDict):
+ """
+ The highlighted results of an Article search. In the examples provided my search query is always "my query".
+ """
+
+ article_id: str
+ """
+ The ID of the corresponding article.
+ """
+
+ highlighted_title: typing.Sequence[ArticleSearchHighlightsHighlightedTitleItemParams]
+ """
+ An Article title highlighted.
+ """
+
+ highlighted_summary: typing.Sequence[typing.Sequence[ArticleSearchHighlightsHighlightedSummaryItemItemParams]]
+ """
+ An Article description and body text highlighted.
+ """
diff --git a/src/intercom/articles/requests/article_search_highlights_highlighted_summary_item_item.py b/src/intercom/articles/requests/article_search_highlights_highlighted_summary_item_item.py
new file mode 100644
index 0000000..c19f00d
--- /dev/null
+++ b/src/intercom/articles/requests/article_search_highlights_highlighted_summary_item_item.py
@@ -0,0 +1,22 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing_extensions
+from ..types.article_search_highlights_highlighted_summary_item_item_type import (
+ ArticleSearchHighlightsHighlightedSummaryItemItemType,
+)
+
+
+class ArticleSearchHighlightsHighlightedSummaryItemItemParams(typing_extensions.TypedDict):
+ """
+ An instance of highlighted summary text.
+ """
+
+ type: typing_extensions.NotRequired[ArticleSearchHighlightsHighlightedSummaryItemItemType]
+ """
+ The type of text - `highlight` or `plain`.
+ """
+
+ text: typing_extensions.NotRequired[str]
+ """
+ The text of the title.
+ """
diff --git a/src/intercom/articles/requests/article_search_highlights_highlighted_title_item.py b/src/intercom/articles/requests/article_search_highlights_highlighted_title_item.py
new file mode 100644
index 0000000..ee57af8
--- /dev/null
+++ b/src/intercom/articles/requests/article_search_highlights_highlighted_title_item.py
@@ -0,0 +1,22 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing_extensions
+from ..types.article_search_highlights_highlighted_title_item_type import (
+ ArticleSearchHighlightsHighlightedTitleItemType,
+)
+
+
+class ArticleSearchHighlightsHighlightedTitleItemParams(typing_extensions.TypedDict):
+ """
+ A highlighted article title.
+ """
+
+ type: typing_extensions.NotRequired[ArticleSearchHighlightsHighlightedTitleItemType]
+ """
+ The type of text - `highlight` or `plain`.
+ """
+
+ text: typing_extensions.NotRequired[str]
+ """
+ The text of the title.
+ """
diff --git a/src/intercom/articles/requests/search_articles_response.py b/src/intercom/articles/requests/search_articles_response.py
new file mode 100644
index 0000000..119931d
--- /dev/null
+++ b/src/intercom/articles/requests/search_articles_response.py
@@ -0,0 +1,30 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing
+
+import typing_extensions
+from ...requests.cursor_pages import CursorPagesParams
+from .search_articles_response_data import SearchArticlesResponseDataParams
+
+
+class SearchArticlesResponseParams(typing_extensions.TypedDict):
+ """
+ The results of an Article search
+ """
+
+ type: typing.Literal["list"]
+ """
+ The type of the object - `list`.
+ """
+
+ total_count: int
+ """
+ The total number of Articles matching the search query
+ """
+
+ data: SearchArticlesResponseDataParams
+ """
+ An object containing the results of the search.
+ """
+
+ pages: typing_extensions.NotRequired[CursorPagesParams]
diff --git a/src/intercom/articles/requests/search_articles_response_data.py b/src/intercom/articles/requests/search_articles_response_data.py
new file mode 100644
index 0000000..42f54ae
--- /dev/null
+++ b/src/intercom/articles/requests/search_articles_response_data.py
@@ -0,0 +1,23 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing
+
+import typing_extensions
+from .article import ArticleParams
+from .article_search_highlights import ArticleSearchHighlightsParams
+
+
+class SearchArticlesResponseDataParams(typing_extensions.TypedDict):
+ """
+ An object containing the results of the search.
+ """
+
+ articles: typing_extensions.NotRequired[typing.Sequence[ArticleParams]]
+ """
+ An array of Article objects
+ """
+
+ highlights: typing_extensions.NotRequired[typing.Sequence[ArticleSearchHighlightsParams]]
+ """
+ A corresponding array of highlighted Article content
+ """
diff --git a/src/intercom/companies/__init__.py b/src/intercom/companies/__init__.py
index 4b23ee2..371e66c 100644
--- a/src/intercom/companies/__init__.py
+++ b/src/intercom/companies/__init__.py
@@ -11,13 +11,29 @@
CompanySegments,
CompanyTags,
)
+from .requests import (
+ CompaniesRetrieveResponseParams,
+ CompaniesRetrieveResponse_CompanyParams,
+ CompaniesRetrieveResponse_ListParams,
+ CompanyParams,
+ CompanyPlanParams,
+ CompanySegmentsParams,
+ CompanyTagsParams,
+)
__all__ = [
"CompaniesRetrieveResponse",
+ "CompaniesRetrieveResponseParams",
"CompaniesRetrieveResponse_Company",
+ "CompaniesRetrieveResponse_CompanyParams",
"CompaniesRetrieveResponse_List",
+ "CompaniesRetrieveResponse_ListParams",
"Company",
+ "CompanyParams",
"CompanyPlan",
+ "CompanyPlanParams",
"CompanySegments",
+ "CompanySegmentsParams",
"CompanyTags",
+ "CompanyTagsParams",
]
diff --git a/src/intercom/companies/requests/__init__.py b/src/intercom/companies/requests/__init__.py
new file mode 100644
index 0000000..5fb0001
--- /dev/null
+++ b/src/intercom/companies/requests/__init__.py
@@ -0,0 +1,23 @@
+# This file was auto-generated by Fern from our API Definition.
+
+# isort: skip_file
+
+from .companies_retrieve_response import (
+ CompaniesRetrieveResponseParams,
+ CompaniesRetrieveResponse_CompanyParams,
+ CompaniesRetrieveResponse_ListParams,
+)
+from .company import CompanyParams
+from .company_plan import CompanyPlanParams
+from .company_segments import CompanySegmentsParams
+from .company_tags import CompanyTagsParams
+
+__all__ = [
+ "CompaniesRetrieveResponseParams",
+ "CompaniesRetrieveResponse_CompanyParams",
+ "CompaniesRetrieveResponse_ListParams",
+ "CompanyParams",
+ "CompanyPlanParams",
+ "CompanySegmentsParams",
+ "CompanyTagsParams",
+]
diff --git a/src/intercom/companies/requests/companies_retrieve_response.py b/src/intercom/companies/requests/companies_retrieve_response.py
new file mode 100644
index 0000000..8bf6d4e
--- /dev/null
+++ b/src/intercom/companies/requests/companies_retrieve_response.py
@@ -0,0 +1,46 @@
+# This file was auto-generated by Fern from our API Definition.
+
+from __future__ import annotations
+
+import typing
+
+import typing_extensions
+from ...requests.offset_pages import OffsetPagesParams
+from .company import CompanyParams
+from .company_plan import CompanyPlanParams
+from .company_segments import CompanySegmentsParams
+from .company_tags import CompanyTagsParams
+
+
+class CompaniesRetrieveResponse_CompanyParams(typing_extensions.TypedDict):
+ type: typing.Literal["company"]
+ id: str
+ name: str
+ app_id: str
+ plan: typing_extensions.NotRequired[CompanyPlanParams]
+ company_id: str
+ remote_created_at: typing_extensions.NotRequired[int]
+ created_at: int
+ updated_at: int
+ last_request_at: typing_extensions.NotRequired[int]
+ size: typing_extensions.NotRequired[int]
+ website: typing_extensions.NotRequired[str]
+ industry: typing_extensions.NotRequired[str]
+ monthly_spend: int
+ session_count: int
+ user_count: int
+ custom_attributes: typing_extensions.NotRequired[typing.Dict[str, typing.Optional[typing.Any]]]
+ tags: typing_extensions.NotRequired[CompanyTagsParams]
+ segments: typing_extensions.NotRequired[CompanySegmentsParams]
+
+
+class CompaniesRetrieveResponse_ListParams(typing_extensions.TypedDict):
+ type: typing.Literal["list"]
+ pages: typing_extensions.NotRequired[OffsetPagesParams]
+ total_count: int
+ data: typing.Sequence[CompanyParams]
+
+
+CompaniesRetrieveResponseParams = typing.Union[
+ CompaniesRetrieveResponse_CompanyParams, CompaniesRetrieveResponse_ListParams
+]
diff --git a/src/intercom/companies/requests/company.py b/src/intercom/companies/requests/company.py
new file mode 100644
index 0000000..25f52ff
--- /dev/null
+++ b/src/intercom/companies/requests/company.py
@@ -0,0 +1,100 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing
+
+import typing_extensions
+from .company_plan import CompanyPlanParams
+from .company_segments import CompanySegmentsParams
+from .company_tags import CompanyTagsParams
+
+
+class CompanyParams(typing_extensions.TypedDict):
+ """
+ Companies allow you to represent organizations using your product. Each company will have its own description and be associated with contacts. You can fetch, create, update and list companies.
+ """
+
+ id: str
+ """
+ The Intercom defined id representing the company.
+ """
+
+ name: str
+ """
+ The name of the company.
+ """
+
+ app_id: str
+ """
+ The Intercom defined code of the workspace the company is associated to.
+ """
+
+ plan: typing_extensions.NotRequired[CompanyPlanParams]
+ company_id: str
+ """
+ The company id you have defined for the company.
+ """
+
+ remote_created_at: typing_extensions.NotRequired[int]
+ """
+ The time the company was created by you.
+ """
+
+ created_at: int
+ """
+ The time the company was added in Intercom.
+ """
+
+ updated_at: int
+ """
+ The last time the company was updated.
+ """
+
+ last_request_at: typing_extensions.NotRequired[int]
+ """
+ The time the company last recorded making a request.
+ """
+
+ size: typing_extensions.NotRequired[int]
+ """
+ The number of employees in the company.
+ """
+
+ website: typing_extensions.NotRequired[str]
+ """
+ The URL for the company website.
+ """
+
+ industry: typing_extensions.NotRequired[str]
+ """
+ The industry that the company operates in.
+ """
+
+ monthly_spend: int
+ """
+ How much revenue the company generates for your business.
+ """
+
+ session_count: int
+ """
+ How many sessions the company has recorded.
+ """
+
+ user_count: int
+ """
+ The number of users in the company.
+ """
+
+ custom_attributes: typing_extensions.NotRequired[typing.Dict[str, typing.Optional[typing.Any]]]
+ """
+ The custom attributes you have set on the company.
+ """
+
+ tags: typing_extensions.NotRequired[CompanyTagsParams]
+ """
+ The list of tags associated with the company
+ """
+
+ segments: typing_extensions.NotRequired[CompanySegmentsParams]
+ """
+ The list of segments associated with the company
+ """
diff --git a/src/intercom/companies/requests/company_plan.py b/src/intercom/companies/requests/company_plan.py
new file mode 100644
index 0000000..777b083
--- /dev/null
+++ b/src/intercom/companies/requests/company_plan.py
@@ -0,0 +1,22 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing
+
+import typing_extensions
+
+
+class CompanyPlanParams(typing_extensions.TypedDict):
+ type: typing_extensions.NotRequired[typing.Literal["plan"]]
+ """
+ Value is always "plan"
+ """
+
+ id: typing_extensions.NotRequired[str]
+ """
+ The id of the plan
+ """
+
+ name: typing_extensions.NotRequired[str]
+ """
+ The name of the plan
+ """
diff --git a/src/intercom/companies/requests/company_segments.py b/src/intercom/companies/requests/company_segments.py
new file mode 100644
index 0000000..31befe7
--- /dev/null
+++ b/src/intercom/companies/requests/company_segments.py
@@ -0,0 +1,19 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing
+
+import typing_extensions
+from ...segments.requests.segment import SegmentParams
+
+
+class CompanySegmentsParams(typing_extensions.TypedDict):
+ """
+ The list of segments associated with the company
+ """
+
+ type: typing_extensions.NotRequired[typing.Literal["segment.list"]]
+ """
+ The type of the object
+ """
+
+ segments: typing_extensions.NotRequired[typing.Sequence[SegmentParams]]
diff --git a/src/intercom/companies/requests/company_tags.py b/src/intercom/companies/requests/company_tags.py
new file mode 100644
index 0000000..70d4e88
--- /dev/null
+++ b/src/intercom/companies/requests/company_tags.py
@@ -0,0 +1,18 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing
+
+import typing_extensions
+
+
+class CompanyTagsParams(typing_extensions.TypedDict):
+ """
+ The list of tags associated with the company
+ """
+
+ type: typing_extensions.NotRequired[typing.Literal["tag.list"]]
+ """
+ The type of the object
+ """
+
+ tags: typing_extensions.NotRequired[typing.Sequence[typing.Optional[typing.Any]]]
diff --git a/src/intercom/contacts/__init__.py b/src/intercom/contacts/__init__.py
index 1877e8a..682a3a3 100644
--- a/src/intercom/contacts/__init__.py
+++ b/src/intercom/contacts/__init__.py
@@ -3,5 +3,6 @@
# isort: skip_file
from .types import Contact
+from .requests import ContactParams
-__all__ = ["Contact"]
+__all__ = ["Contact", "ContactParams"]
diff --git a/src/intercom/contacts/client.py b/src/intercom/contacts/client.py
index d24425c..c12bab9 100644
--- a/src/intercom/contacts/client.py
+++ b/src/intercom/contacts/client.py
@@ -6,14 +6,14 @@
from ..core.client_wrapper import AsyncClientWrapper, SyncClientWrapper
from ..core.pagination import AsyncPager, SyncPager
from ..core.request_options import RequestOptions
+from ..requests.create_contact_request import CreateContactRequestParams
+from ..requests.search_request_query import SearchRequestQueryParams
+from ..requests.starting_after_paging import StartingAfterPagingParams
from ..subscription_types.types.subscription_type import SubscriptionType
from ..types.contact_archived import ContactArchived
from ..types.contact_deleted import ContactDeleted
from ..types.contact_segments import ContactSegments
from ..types.contact_unarchived import ContactUnarchived
-from ..types.create_contact_request import CreateContactRequest
-from ..types.search_request_query import SearchRequestQuery
-from ..types.starting_after_paging import StartingAfterPaging
from ..types.subscription_type_list import SubscriptionTypeList
from ..types.tag_list import TagList
from .raw_client import AsyncRawContactsClient, RawContactsClient
@@ -484,8 +484,8 @@ def merge_lead_in_user(
def search(
self,
*,
- query: SearchRequestQuery,
- pagination: typing.Optional[StartingAfterPaging] = OMIT,
+ query: SearchRequestQueryParams,
+ pagination: typing.Optional[StartingAfterPagingParams] = OMIT,
request_options: typing.Optional[RequestOptions] = None,
) -> SyncPager[Contact]:
"""
@@ -591,9 +591,9 @@ def search(
Parameters
----------
- query : SearchRequestQuery
+ query : SearchRequestQueryParams
- pagination : typing.Optional[StartingAfterPaging]
+ pagination : typing.Optional[StartingAfterPagingParams]
request_options : typing.Optional[RequestOptions]
Request-specific configuration.
@@ -605,30 +605,19 @@ def search(
Examples
--------
- from intercom import (
- Intercom,
- MultipleFilterSearchRequest,
- SingleFilterSearchRequest,
- StartingAfterPaging,
- )
+ from intercom import Intercom
client = Intercom(
token="YOUR_TOKEN",
)
response = client.contacts.search(
- query=MultipleFilterSearchRequest(
- operator="AND",
- value=[
- SingleFilterSearchRequest(
- field="created_at",
- operator=">",
- value="1306054154",
- )
+ query={
+ "operator": "AND",
+ "value": [
+ {"field": "created_at", "operator": ">", "value": "1306054154"}
],
- ),
- pagination=StartingAfterPaging(
- per_page=5,
- ),
+ },
+ pagination={"per_page": 5},
)
for item in response:
yield item
@@ -691,14 +680,14 @@ def list(
)
def create(
- self, *, request: CreateContactRequest, request_options: typing.Optional[RequestOptions] = None
+ self, *, request: CreateContactRequestParams, request_options: typing.Optional[RequestOptions] = None
) -> Contact:
"""
You can create a new contact (ie. user or lead).
Parameters
----------
- request : CreateContactRequest
+ request : CreateContactRequestParams
request_options : typing.Optional[RequestOptions]
Request-specific configuration.
@@ -710,15 +699,13 @@ def create(
Examples
--------
- from intercom import CreateContactRequestWithEmail, Intercom
+ from intercom import Intercom
client = Intercom(
token="YOUR_TOKEN",
)
client.contacts.create(
- request=CreateContactRequestWithEmail(
- email="joebloggs@intercom.io",
- ),
+ request={"email": "joebloggs@intercom.io"},
)
"""
_response = self._raw_client.create(request=request, request_options=request_options)
@@ -1335,8 +1322,8 @@ async def main() -> None:
async def search(
self,
*,
- query: SearchRequestQuery,
- pagination: typing.Optional[StartingAfterPaging] = OMIT,
+ query: SearchRequestQueryParams,
+ pagination: typing.Optional[StartingAfterPagingParams] = OMIT,
request_options: typing.Optional[RequestOptions] = None,
) -> AsyncPager[Contact]:
"""
@@ -1442,9 +1429,9 @@ async def search(
Parameters
----------
- query : SearchRequestQuery
+ query : SearchRequestQueryParams
- pagination : typing.Optional[StartingAfterPaging]
+ pagination : typing.Optional[StartingAfterPagingParams]
request_options : typing.Optional[RequestOptions]
Request-specific configuration.
@@ -1458,12 +1445,7 @@ async def search(
--------
import asyncio
- from intercom import (
- AsyncIntercom,
- MultipleFilterSearchRequest,
- SingleFilterSearchRequest,
- StartingAfterPaging,
- )
+ from intercom import AsyncIntercom
client = AsyncIntercom(
token="YOUR_TOKEN",
@@ -1472,19 +1454,13 @@ async def search(
async def main() -> None:
response = await client.contacts.search(
- query=MultipleFilterSearchRequest(
- operator="AND",
- value=[
- SingleFilterSearchRequest(
- field="created_at",
- operator=">",
- value="1306054154",
- )
+ query={
+ "operator": "AND",
+ "value": [
+ {"field": "created_at", "operator": ">", "value": "1306054154"}
],
- ),
- pagination=StartingAfterPaging(
- per_page=5,
- ),
+ },
+ pagination={"per_page": 5},
)
async for item in response:
yield item
@@ -1560,14 +1536,14 @@ async def main() -> None:
)
async def create(
- self, *, request: CreateContactRequest, request_options: typing.Optional[RequestOptions] = None
+ self, *, request: CreateContactRequestParams, request_options: typing.Optional[RequestOptions] = None
) -> Contact:
"""
You can create a new contact (ie. user or lead).
Parameters
----------
- request : CreateContactRequest
+ request : CreateContactRequestParams
request_options : typing.Optional[RequestOptions]
Request-specific configuration.
@@ -1581,7 +1557,7 @@ async def create(
--------
import asyncio
- from intercom import AsyncIntercom, CreateContactRequestWithEmail
+ from intercom import AsyncIntercom
client = AsyncIntercom(
token="YOUR_TOKEN",
@@ -1590,9 +1566,7 @@ async def create(
async def main() -> None:
await client.contacts.create(
- request=CreateContactRequestWithEmail(
- email="joebloggs@intercom.io",
- ),
+ request={"email": "joebloggs@intercom.io"},
)
diff --git a/src/intercom/contacts/raw_client.py b/src/intercom/contacts/raw_client.py
index db4c3d4..07e22c7 100644
--- a/src/intercom/contacts/raw_client.py
+++ b/src/intercom/contacts/raw_client.py
@@ -14,6 +14,9 @@
from ..core.unchecked_base_model import construct_type
from ..errors.not_found_error import NotFoundError
from ..errors.unauthorized_error import UnauthorizedError
+from ..requests.create_contact_request import CreateContactRequestParams
+from ..requests.search_request_query import SearchRequestQueryParams
+from ..requests.starting_after_paging import StartingAfterPagingParams
from ..subscription_types.types.subscription_type import SubscriptionType
from ..types.contact_archived import ContactArchived
from ..types.contact_attached_companies import ContactAttachedCompanies
@@ -21,10 +24,7 @@
from ..types.contact_list import ContactList
from ..types.contact_segments import ContactSegments
from ..types.contact_unarchived import ContactUnarchived
-from ..types.create_contact_request import CreateContactRequest
from ..types.error import Error
-from ..types.search_request_query import SearchRequestQuery
-from ..types.starting_after_paging import StartingAfterPaging
from ..types.subscription_type_list import SubscriptionTypeList
from ..types.tag_list import TagList
from .types.contact import Contact
@@ -742,8 +742,8 @@ def merge_lead_in_user(
def search(
self,
*,
- query: SearchRequestQuery,
- pagination: typing.Optional[StartingAfterPaging] = OMIT,
+ query: SearchRequestQueryParams,
+ pagination: typing.Optional[StartingAfterPagingParams] = OMIT,
request_options: typing.Optional[RequestOptions] = None,
) -> SyncPager[Contact]:
"""
@@ -849,9 +849,9 @@ def search(
Parameters
----------
- query : SearchRequestQuery
+ query : SearchRequestQueryParams
- pagination : typing.Optional[StartingAfterPaging]
+ pagination : typing.Optional[StartingAfterPagingParams]
request_options : typing.Optional[RequestOptions]
Request-specific configuration.
@@ -866,10 +866,10 @@ def search(
method="POST",
json={
"query": convert_and_respect_annotation_metadata(
- object_=query, annotation=SearchRequestQuery, direction="write"
+ object_=query, annotation=SearchRequestQueryParams, direction="write"
),
"pagination": convert_and_respect_annotation_metadata(
- object_=pagination, annotation=StartingAfterPaging, direction="write"
+ object_=pagination, annotation=StartingAfterPagingParams, direction="write"
),
},
headers={
@@ -1002,14 +1002,14 @@ def list(
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
def create(
- self, *, request: CreateContactRequest, request_options: typing.Optional[RequestOptions] = None
+ self, *, request: CreateContactRequestParams, request_options: typing.Optional[RequestOptions] = None
) -> HttpResponse[Contact]:
"""
You can create a new contact (ie. user or lead).
Parameters
----------
- request : CreateContactRequest
+ request : CreateContactRequestParams
request_options : typing.Optional[RequestOptions]
Request-specific configuration.
@@ -1023,7 +1023,7 @@ def create(
"contacts",
method="POST",
json=convert_and_respect_annotation_metadata(
- object_=request, annotation=CreateContactRequest, direction="write"
+ object_=request, annotation=CreateContactRequestParams, direction="write"
),
headers={
"content-type": "application/json",
@@ -1848,8 +1848,8 @@ async def merge_lead_in_user(
async def search(
self,
*,
- query: SearchRequestQuery,
- pagination: typing.Optional[StartingAfterPaging] = OMIT,
+ query: SearchRequestQueryParams,
+ pagination: typing.Optional[StartingAfterPagingParams] = OMIT,
request_options: typing.Optional[RequestOptions] = None,
) -> AsyncPager[Contact]:
"""
@@ -1955,9 +1955,9 @@ async def search(
Parameters
----------
- query : SearchRequestQuery
+ query : SearchRequestQueryParams
- pagination : typing.Optional[StartingAfterPaging]
+ pagination : typing.Optional[StartingAfterPagingParams]
request_options : typing.Optional[RequestOptions]
Request-specific configuration.
@@ -1972,10 +1972,10 @@ async def search(
method="POST",
json={
"query": convert_and_respect_annotation_metadata(
- object_=query, annotation=SearchRequestQuery, direction="write"
+ object_=query, annotation=SearchRequestQueryParams, direction="write"
),
"pagination": convert_and_respect_annotation_metadata(
- object_=pagination, annotation=StartingAfterPaging, direction="write"
+ object_=pagination, annotation=StartingAfterPagingParams, direction="write"
),
},
headers={
@@ -2114,14 +2114,14 @@ async def _get_next():
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
async def create(
- self, *, request: CreateContactRequest, request_options: typing.Optional[RequestOptions] = None
+ self, *, request: CreateContactRequestParams, request_options: typing.Optional[RequestOptions] = None
) -> AsyncHttpResponse[Contact]:
"""
You can create a new contact (ie. user or lead).
Parameters
----------
- request : CreateContactRequest
+ request : CreateContactRequestParams
request_options : typing.Optional[RequestOptions]
Request-specific configuration.
@@ -2135,7 +2135,7 @@ async def create(
"contacts",
method="POST",
json=convert_and_respect_annotation_metadata(
- object_=request, annotation=CreateContactRequest, direction="write"
+ object_=request, annotation=CreateContactRequestParams, direction="write"
),
headers={
"content-type": "application/json",
diff --git a/src/intercom/contacts/requests/__init__.py b/src/intercom/contacts/requests/__init__.py
new file mode 100644
index 0000000..6c30b6f
--- /dev/null
+++ b/src/intercom/contacts/requests/__init__.py
@@ -0,0 +1,7 @@
+# This file was auto-generated by Fern from our API Definition.
+
+# isort: skip_file
+
+from .contact import ContactParams
+
+__all__ = ["ContactParams"]
diff --git a/src/intercom/contacts/requests/contact.py b/src/intercom/contacts/requests/contact.py
new file mode 100644
index 0000000..c4ea1cc
--- /dev/null
+++ b/src/intercom/contacts/requests/contact.py
@@ -0,0 +1,227 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing
+
+import typing_extensions
+from ...requests.contact_companies import ContactCompaniesParams
+from ...requests.contact_location import ContactLocationParams
+from ...requests.contact_notes import ContactNotesParams
+from ...requests.contact_social_profiles import ContactSocialProfilesParams
+from ...requests.contact_tags import ContactTagsParams
+
+
+class ContactParams(typing_extensions.TypedDict):
+ """
+ Contact are the objects that represent your leads and users in Intercom.
+ """
+
+ type: typing_extensions.NotRequired[typing.Literal["contact"]]
+ """
+ The type of object.
+ """
+
+ id: str
+ """
+ The unique identifier for the contact which is given by Intercom.
+ """
+
+ external_id: typing_extensions.NotRequired[str]
+ """
+ The unique identifier for the contact which is provided by the Client.
+ """
+
+ workspace_id: str
+ """
+ The id of the workspace which the contact belongs to.
+ """
+
+ role: str
+ """
+ The role of the contact.
+ """
+
+ email: typing_extensions.NotRequired[str]
+ """
+ The contact's email.
+ """
+
+ email_domain: typing_extensions.NotRequired[str]
+ """
+ The contact's email domain.
+ """
+
+ phone: typing_extensions.NotRequired[str]
+ """
+ The contacts phone.
+ """
+
+ formatted_phone: typing_extensions.NotRequired[str]
+ """
+ The contacts phone number normalized to the E164 format
+ """
+
+ name: typing_extensions.NotRequired[str]
+ """
+ The contacts name.
+ """
+
+ owner_id: typing_extensions.NotRequired[int]
+ """
+ The id of an admin that has been assigned account ownership of the contact.
+ """
+
+ has_hard_bounced: bool
+ """
+ Whether the contact has had an email sent to them hard bounce.
+ """
+
+ marked_email_as_spam: bool
+ """
+ Whether the contact has marked an email sent to them as spam.
+ """
+
+ unsubscribed_from_emails: bool
+ """
+ Whether the contact is unsubscribed from emails.
+ """
+
+ created_at: int
+ """
+ (UNIX timestamp) The time when the contact was created.
+ """
+
+ updated_at: int
+ """
+ (UNIX timestamp) The time when the contact was last updated.
+ """
+
+ signed_up_at: typing_extensions.NotRequired[int]
+ """
+ (UNIX timestamp) The time specified for when a contact signed up.
+ """
+
+ last_seen_at: typing_extensions.NotRequired[int]
+ """
+ (UNIX timestamp) The time when the contact was last seen (either where the Intercom Messenger was installed or when specified manually).
+ """
+
+ last_replied_at: typing_extensions.NotRequired[int]
+ """
+ (UNIX timestamp) The time when the contact last messaged in.
+ """
+
+ last_contacted_at: typing_extensions.NotRequired[int]
+ """
+ (UNIX timestamp) The time when the contact was last messaged.
+ """
+
+ last_email_opened_at: typing_extensions.NotRequired[int]
+ """
+ (UNIX timestamp) The time when the contact last opened an email.
+ """
+
+ last_email_clicked_at: typing_extensions.NotRequired[int]
+ """
+ (UNIX timestamp) The time when the contact last clicked a link in an email.
+ """
+
+ language_override: typing_extensions.NotRequired[str]
+ """
+ A preferred language setting for the contact, used by the Intercom Messenger even if their browser settings change.
+ """
+
+ browser: typing_extensions.NotRequired[str]
+ """
+ The name of the browser which the contact is using.
+ """
+
+ browser_version: typing_extensions.NotRequired[str]
+ """
+ The version of the browser which the contact is using.
+ """
+
+ browser_language: typing_extensions.NotRequired[str]
+ """
+ The language set by the browser which the contact is using.
+ """
+
+ os: typing_extensions.NotRequired[str]
+ """
+ The operating system which the contact is using.
+ """
+
+ android_app_name: typing_extensions.NotRequired[str]
+ """
+ The name of the Android app which the contact is using.
+ """
+
+ android_app_version: typing_extensions.NotRequired[str]
+ """
+ The version of the Android app which the contact is using.
+ """
+
+ android_device: typing_extensions.NotRequired[str]
+ """
+ The Android device which the contact is using.
+ """
+
+ android_os_version: typing_extensions.NotRequired[str]
+ """
+ The version of the Android OS which the contact is using.
+ """
+
+ android_sdk_version: typing_extensions.NotRequired[str]
+ """
+ The version of the Android SDK which the contact is using.
+ """
+
+ android_last_seen_at: typing_extensions.NotRequired[int]
+ """
+ (UNIX timestamp) The time when the contact was last seen on an Android device.
+ """
+
+ ios_app_name: typing_extensions.NotRequired[str]
+ """
+ The name of the iOS app which the contact is using.
+ """
+
+ ios_app_version: typing_extensions.NotRequired[str]
+ """
+ The version of the iOS app which the contact is using.
+ """
+
+ ios_device: typing_extensions.NotRequired[str]
+ """
+ The iOS device which the contact is using.
+ """
+
+ ios_os_version: typing_extensions.NotRequired[str]
+ """
+ The version of iOS which the contact is using.
+ """
+
+ ios_sdk_version: typing_extensions.NotRequired[str]
+ """
+ The version of the iOS SDK which the contact is using.
+ """
+
+ ios_last_seen_at: typing_extensions.NotRequired[int]
+ """
+ (UNIX timestamp) The last time the contact used the iOS app.
+ """
+
+ custom_attributes: typing_extensions.NotRequired[typing.Dict[str, typing.Optional[typing.Any]]]
+ """
+ The custom attributes which are set for the contact.
+ """
+
+ avatar: typing_extensions.NotRequired[str]
+ """
+ An image URL containing the avatar of a contact.
+ """
+
+ tags: typing_extensions.NotRequired[ContactTagsParams]
+ notes: typing_extensions.NotRequired[ContactNotesParams]
+ companies: typing_extensions.NotRequired[ContactCompaniesParams]
+ location: ContactLocationParams
+ social_profiles: ContactSocialProfilesParams
diff --git a/src/intercom/conversations/__init__.py b/src/intercom/conversations/__init__.py
index 3801940..e9fc706 100644
--- a/src/intercom/conversations/__init__.py
+++ b/src/intercom/conversations/__init__.py
@@ -18,20 +18,44 @@
CreateConversationRequestFrom,
CreateConversationRequestFromType,
)
+from .requests import (
+ AttachContactToConversationRequestCustomerCustomerParams,
+ AttachContactToConversationRequestCustomerIntercomUserIdParams,
+ AttachContactToConversationRequestCustomerParams,
+ AttachContactToConversationRequestCustomerUserIdParams,
+ ConversationParams,
+ ConversationsManageRequestBodyParams,
+ ConversationsManageRequestBody_AssignmentParams,
+ ConversationsManageRequestBody_CloseParams,
+ ConversationsManageRequestBody_OpenParams,
+ ConversationsManageRequestBody_SnoozedParams,
+ CreateConversationRequestFromParams,
+)
__all__ = [
"AttachContactToConversationRequestCustomer",
"AttachContactToConversationRequestCustomerCustomer",
+ "AttachContactToConversationRequestCustomerCustomerParams",
"AttachContactToConversationRequestCustomerIntercomUserId",
+ "AttachContactToConversationRequestCustomerIntercomUserIdParams",
+ "AttachContactToConversationRequestCustomerParams",
"AttachContactToConversationRequestCustomerUserId",
+ "AttachContactToConversationRequestCustomerUserIdParams",
"Conversation",
+ "ConversationParams",
"ConversationPriority",
"ConversationState",
"ConversationsManageRequestBody",
+ "ConversationsManageRequestBodyParams",
"ConversationsManageRequestBody_Assignment",
+ "ConversationsManageRequestBody_AssignmentParams",
"ConversationsManageRequestBody_Close",
+ "ConversationsManageRequestBody_CloseParams",
"ConversationsManageRequestBody_Open",
+ "ConversationsManageRequestBody_OpenParams",
"ConversationsManageRequestBody_Snoozed",
+ "ConversationsManageRequestBody_SnoozedParams",
"CreateConversationRequestFrom",
+ "CreateConversationRequestFromParams",
"CreateConversationRequestFromType",
]
diff --git a/src/intercom/conversations/client.py b/src/intercom/conversations/client.py
index 7f4d1bb..d18d476 100644
--- a/src/intercom/conversations/client.py
+++ b/src/intercom/conversations/client.py
@@ -6,18 +6,18 @@
from ..core.pagination import AsyncPager, SyncPager
from ..core.request_options import RequestOptions
from ..messages.types.message import Message
+from ..requests.redact_conversation_request import RedactConversationRequestParams
+from ..requests.reply_conversation_request import ReplyConversationRequestParams
+from ..requests.search_request_query import SearchRequestQueryParams
+from ..requests.starting_after_paging import StartingAfterPagingParams
from ..tickets.types.ticket import Ticket
from ..types.custom_attributes import CustomAttributes
-from ..types.redact_conversation_request import RedactConversationRequest
-from ..types.reply_conversation_request import ReplyConversationRequest
-from ..types.search_request_query import SearchRequestQuery
-from ..types.starting_after_paging import StartingAfterPaging
from ..types.ticket_request_custom_attributes import TicketRequestCustomAttributes
from .raw_client import AsyncRawConversationsClient, RawConversationsClient
-from .types.attach_contact_to_conversation_request_customer import AttachContactToConversationRequestCustomer
+from .requests.attach_contact_to_conversation_request_customer import AttachContactToConversationRequestCustomerParams
+from .requests.conversations_manage_request_body import ConversationsManageRequestBodyParams
+from .requests.create_conversation_request_from import CreateConversationRequestFromParams
from .types.conversation import Conversation
-from .types.conversations_manage_request_body import ConversationsManageRequestBody
-from .types.create_conversation_request_from import CreateConversationRequestFrom
# this is used as the default value for optional parameters
OMIT = typing.cast(typing.Any, ...)
@@ -89,7 +89,7 @@ def list(
def create(
self,
*,
- from_: CreateConversationRequestFrom,
+ from_: CreateConversationRequestFromParams,
body: str,
created_at: typing.Optional[int] = OMIT,
request_options: typing.Optional[RequestOptions] = None,
@@ -107,7 +107,7 @@ def create(
Parameters
----------
- from_ : CreateConversationRequestFrom
+ from_ : CreateConversationRequestFromParams
body : str
The content of the message. HTML is not supported.
@@ -126,16 +126,12 @@ def create(
Examples
--------
from intercom import Intercom
- from intercom.conversations import CreateConversationRequestFrom
client = Intercom(
token="YOUR_TOKEN",
)
client.conversations.create(
- from_=CreateConversationRequestFrom(
- type="user",
- id="667d60d18a68186f43bafddd",
- ),
+ from_={"type": "user", "id": "667d60d18a68186f43bafddd"},
body="Hello there",
)
"""
@@ -258,8 +254,8 @@ def update(
def search(
self,
*,
- query: SearchRequestQuery,
- pagination: typing.Optional[StartingAfterPaging] = OMIT,
+ query: SearchRequestQueryParams,
+ pagination: typing.Optional[StartingAfterPagingParams] = OMIT,
request_options: typing.Optional[RequestOptions] = None,
) -> SyncPager[Conversation]:
"""
@@ -365,9 +361,9 @@ def search(
Parameters
----------
- query : SearchRequestQuery
+ query : SearchRequestQueryParams
- pagination : typing.Optional[StartingAfterPaging]
+ pagination : typing.Optional[StartingAfterPagingParams]
request_options : typing.Optional[RequestOptions]
Request-specific configuration.
@@ -379,30 +375,19 @@ def search(
Examples
--------
- from intercom import (
- Intercom,
- MultipleFilterSearchRequest,
- SingleFilterSearchRequest,
- StartingAfterPaging,
- )
+ from intercom import Intercom
client = Intercom(
token="YOUR_TOKEN",
)
response = client.conversations.search(
- query=MultipleFilterSearchRequest(
- operator="AND",
- value=[
- SingleFilterSearchRequest(
- field="created_at",
- operator=">",
- value="1306054154",
- )
+ query={
+ "operator": "AND",
+ "value": [
+ {"field": "created_at", "operator": ">", "value": "1306054154"}
],
- ),
- pagination=StartingAfterPaging(
- per_page=5,
- ),
+ },
+ pagination={"per_page": 5},
)
for item in response:
yield item
@@ -416,7 +401,7 @@ def reply(
self,
conversation_id: str,
*,
- request: ReplyConversationRequest,
+ request: ReplyConversationRequestParams,
request_options: typing.Optional[RequestOptions] = None,
) -> Conversation:
"""
@@ -427,7 +412,7 @@ def reply(
conversation_id : str
The Intercom provisioned identifier for the conversation or the string "last" to reply to the last part of the conversation
- request : ReplyConversationRequest
+ request : ReplyConversationRequestParams
request_options : typing.Optional[RequestOptions]
Request-specific configuration.
@@ -439,17 +424,19 @@ def reply(
Examples
--------
- from intercom import ContactReplyIntercomUserIdRequest, Intercom
+ from intercom import Intercom
client = Intercom(
token="YOUR_TOKEN",
)
client.conversations.reply(
conversation_id='123 or "last"',
- request=ContactReplyIntercomUserIdRequest(
- body="Thanks again :)",
- intercom_user_id="667d60f18a68186f43bafdf4",
- ),
+ request={
+ "message_type": "comment",
+ "type": "user",
+ "body": "Thanks again :)",
+ "intercom_user_id": "667d60f18a68186f43bafdf4",
+ },
)
"""
_response = self._raw_client.reply(conversation_id, request=request, request_options=request_options)
@@ -459,7 +446,7 @@ def manage(
self,
conversation_id: str,
*,
- request: ConversationsManageRequestBody,
+ request: ConversationsManageRequestBodyParams,
request_options: typing.Optional[RequestOptions] = None,
) -> Conversation:
"""
@@ -474,7 +461,7 @@ def manage(
conversation_id : str
The identifier for the conversation as given by Intercom.
- request : ConversationsManageRequestBody
+ request : ConversationsManageRequestBodyParams
request_options : typing.Optional[RequestOptions]
Request-specific configuration.
@@ -487,16 +474,13 @@ def manage(
Examples
--------
from intercom import Intercom
- from intercom.conversations import ConversationsManageRequestBody_Close
client = Intercom(
token="YOUR_TOKEN",
)
client.conversations.manage(
conversation_id="123",
- request=ConversationsManageRequestBody_Close(
- admin_id="12345",
- ),
+ request={"type": "admin", "admin_id": "12345", "message_type": "close"},
)
"""
_response = self._raw_client.manage(conversation_id, request=request, request_options=request_options)
@@ -546,7 +530,7 @@ def attach_contact_as_admin(
conversation_id: str,
*,
admin_id: typing.Optional[str] = OMIT,
- customer: typing.Optional[AttachContactToConversationRequestCustomer] = OMIT,
+ customer: typing.Optional[AttachContactToConversationRequestCustomerParams] = OMIT,
request_options: typing.Optional[RequestOptions] = None,
) -> Conversation:
"""
@@ -564,7 +548,7 @@ def attach_contact_as_admin(
admin_id : typing.Optional[str]
The `id` of the admin who is adding the new participant.
- customer : typing.Optional[AttachContactToConversationRequestCustomer]
+ customer : typing.Optional[AttachContactToConversationRequestCustomerParams]
request_options : typing.Optional[RequestOptions]
Request-specific configuration.
@@ -577,9 +561,6 @@ def attach_contact_as_admin(
Examples
--------
from intercom import Intercom
- from intercom.conversations import (
- AttachContactToConversationRequestCustomerIntercomUserId,
- )
client = Intercom(
token="YOUR_TOKEN",
@@ -587,9 +568,7 @@ def attach_contact_as_admin(
client.conversations.attach_contact_as_admin(
conversation_id="123",
admin_id="12345",
- customer=AttachContactToConversationRequestCustomerIntercomUserId(
- intercom_user_id="667d61168a68186f43bafe0d",
- ),
+ customer={"intercom_user_id": "667d61168a68186f43bafe0d"},
)
"""
_response = self._raw_client.attach_contact_as_admin(
@@ -650,7 +629,7 @@ def detach_contact_as_admin(
return _response.data
def redact_conversation_part(
- self, *, request: RedactConversationRequest, request_options: typing.Optional[RequestOptions] = None
+ self, *, request: RedactConversationRequestParams, request_options: typing.Optional[RequestOptions] = None
) -> Conversation:
"""
You can redact a conversation part or the source message of a conversation (as seen in the source object).
@@ -661,7 +640,7 @@ def redact_conversation_part(
Parameters
----------
- request : RedactConversationRequest
+ request : RedactConversationRequestParams
request_options : typing.Optional[RequestOptions]
Request-specific configuration.
@@ -673,16 +652,17 @@ def redact_conversation_part(
Examples
--------
- from intercom import Intercom, RedactConversationRequest_ConversationPart
+ from intercom import Intercom
client = Intercom(
token="YOUR_TOKEN",
)
client.conversations.redact_conversation_part(
- request=RedactConversationRequest_ConversationPart(
- conversation_id="19894788788",
- conversation_part_id="19381789428",
- ),
+ request={
+ "conversation_id": "19894788788",
+ "conversation_part_id": "19381789428",
+ "type": "conversation_part",
+ },
)
"""
_response = self._raw_client.redact_conversation_part(request=request, request_options=request_options)
@@ -812,7 +792,7 @@ async def main() -> None:
async def create(
self,
*,
- from_: CreateConversationRequestFrom,
+ from_: CreateConversationRequestFromParams,
body: str,
created_at: typing.Optional[int] = OMIT,
request_options: typing.Optional[RequestOptions] = None,
@@ -830,7 +810,7 @@ async def create(
Parameters
----------
- from_ : CreateConversationRequestFrom
+ from_ : CreateConversationRequestFromParams
body : str
The content of the message. HTML is not supported.
@@ -851,7 +831,6 @@ async def create(
import asyncio
from intercom import AsyncIntercom
- from intercom.conversations import CreateConversationRequestFrom
client = AsyncIntercom(
token="YOUR_TOKEN",
@@ -860,10 +839,7 @@ async def create(
async def main() -> None:
await client.conversations.create(
- from_=CreateConversationRequestFrom(
- type="user",
- id="667d60d18a68186f43bafddd",
- ),
+ from_={"type": "user", "id": "667d60d18a68186f43bafddd"},
body="Hello there",
)
@@ -1005,8 +981,8 @@ async def main() -> None:
async def search(
self,
*,
- query: SearchRequestQuery,
- pagination: typing.Optional[StartingAfterPaging] = OMIT,
+ query: SearchRequestQueryParams,
+ pagination: typing.Optional[StartingAfterPagingParams] = OMIT,
request_options: typing.Optional[RequestOptions] = None,
) -> AsyncPager[Conversation]:
"""
@@ -1112,9 +1088,9 @@ async def search(
Parameters
----------
- query : SearchRequestQuery
+ query : SearchRequestQueryParams
- pagination : typing.Optional[StartingAfterPaging]
+ pagination : typing.Optional[StartingAfterPagingParams]
request_options : typing.Optional[RequestOptions]
Request-specific configuration.
@@ -1128,12 +1104,7 @@ async def search(
--------
import asyncio
- from intercom import (
- AsyncIntercom,
- MultipleFilterSearchRequest,
- SingleFilterSearchRequest,
- StartingAfterPaging,
- )
+ from intercom import AsyncIntercom
client = AsyncIntercom(
token="YOUR_TOKEN",
@@ -1142,19 +1113,13 @@ async def search(
async def main() -> None:
response = await client.conversations.search(
- query=MultipleFilterSearchRequest(
- operator="AND",
- value=[
- SingleFilterSearchRequest(
- field="created_at",
- operator=">",
- value="1306054154",
- )
+ query={
+ "operator": "AND",
+ "value": [
+ {"field": "created_at", "operator": ">", "value": "1306054154"}
],
- ),
- pagination=StartingAfterPaging(
- per_page=5,
- ),
+ },
+ pagination={"per_page": 5},
)
async for item in response:
yield item
@@ -1172,7 +1137,7 @@ async def reply(
self,
conversation_id: str,
*,
- request: ReplyConversationRequest,
+ request: ReplyConversationRequestParams,
request_options: typing.Optional[RequestOptions] = None,
) -> Conversation:
"""
@@ -1183,7 +1148,7 @@ async def reply(
conversation_id : str
The Intercom provisioned identifier for the conversation or the string "last" to reply to the last part of the conversation
- request : ReplyConversationRequest
+ request : ReplyConversationRequestParams
request_options : typing.Optional[RequestOptions]
Request-specific configuration.
@@ -1197,7 +1162,7 @@ async def reply(
--------
import asyncio
- from intercom import AsyncIntercom, ContactReplyIntercomUserIdRequest
+ from intercom import AsyncIntercom
client = AsyncIntercom(
token="YOUR_TOKEN",
@@ -1207,10 +1172,12 @@ async def reply(
async def main() -> None:
await client.conversations.reply(
conversation_id='123 or "last"',
- request=ContactReplyIntercomUserIdRequest(
- body="Thanks again :)",
- intercom_user_id="667d60f18a68186f43bafdf4",
- ),
+ request={
+ "message_type": "comment",
+ "type": "user",
+ "body": "Thanks again :)",
+ "intercom_user_id": "667d60f18a68186f43bafdf4",
+ },
)
@@ -1223,7 +1190,7 @@ async def manage(
self,
conversation_id: str,
*,
- request: ConversationsManageRequestBody,
+ request: ConversationsManageRequestBodyParams,
request_options: typing.Optional[RequestOptions] = None,
) -> Conversation:
"""
@@ -1238,7 +1205,7 @@ async def manage(
conversation_id : str
The identifier for the conversation as given by Intercom.
- request : ConversationsManageRequestBody
+ request : ConversationsManageRequestBodyParams
request_options : typing.Optional[RequestOptions]
Request-specific configuration.
@@ -1253,7 +1220,6 @@ async def manage(
import asyncio
from intercom import AsyncIntercom
- from intercom.conversations import ConversationsManageRequestBody_Close
client = AsyncIntercom(
token="YOUR_TOKEN",
@@ -1263,9 +1229,7 @@ async def manage(
async def main() -> None:
await client.conversations.manage(
conversation_id="123",
- request=ConversationsManageRequestBody_Close(
- admin_id="12345",
- ),
+ request={"type": "admin", "admin_id": "12345", "message_type": "close"},
)
@@ -1326,7 +1290,7 @@ async def attach_contact_as_admin(
conversation_id: str,
*,
admin_id: typing.Optional[str] = OMIT,
- customer: typing.Optional[AttachContactToConversationRequestCustomer] = OMIT,
+ customer: typing.Optional[AttachContactToConversationRequestCustomerParams] = OMIT,
request_options: typing.Optional[RequestOptions] = None,
) -> Conversation:
"""
@@ -1344,7 +1308,7 @@ async def attach_contact_as_admin(
admin_id : typing.Optional[str]
The `id` of the admin who is adding the new participant.
- customer : typing.Optional[AttachContactToConversationRequestCustomer]
+ customer : typing.Optional[AttachContactToConversationRequestCustomerParams]
request_options : typing.Optional[RequestOptions]
Request-specific configuration.
@@ -1359,9 +1323,6 @@ async def attach_contact_as_admin(
import asyncio
from intercom import AsyncIntercom
- from intercom.conversations import (
- AttachContactToConversationRequestCustomerIntercomUserId,
- )
client = AsyncIntercom(
token="YOUR_TOKEN",
@@ -1372,9 +1333,7 @@ async def main() -> None:
await client.conversations.attach_contact_as_admin(
conversation_id="123",
admin_id="12345",
- customer=AttachContactToConversationRequestCustomerIntercomUserId(
- intercom_user_id="667d61168a68186f43bafe0d",
- ),
+ customer={"intercom_user_id": "667d61168a68186f43bafe0d"},
)
@@ -1446,7 +1405,7 @@ async def main() -> None:
return _response.data
async def redact_conversation_part(
- self, *, request: RedactConversationRequest, request_options: typing.Optional[RequestOptions] = None
+ self, *, request: RedactConversationRequestParams, request_options: typing.Optional[RequestOptions] = None
) -> Conversation:
"""
You can redact a conversation part or the source message of a conversation (as seen in the source object).
@@ -1457,7 +1416,7 @@ async def redact_conversation_part(
Parameters
----------
- request : RedactConversationRequest
+ request : RedactConversationRequestParams
request_options : typing.Optional[RequestOptions]
Request-specific configuration.
@@ -1471,7 +1430,7 @@ async def redact_conversation_part(
--------
import asyncio
- from intercom import AsyncIntercom, RedactConversationRequest_ConversationPart
+ from intercom import AsyncIntercom
client = AsyncIntercom(
token="YOUR_TOKEN",
@@ -1480,10 +1439,11 @@ async def redact_conversation_part(
async def main() -> None:
await client.conversations.redact_conversation_part(
- request=RedactConversationRequest_ConversationPart(
- conversation_id="19894788788",
- conversation_part_id="19381789428",
- ),
+ request={
+ "conversation_id": "19894788788",
+ "conversation_part_id": "19381789428",
+ "type": "conversation_part",
+ },
)
diff --git a/src/intercom/conversations/raw_client.py b/src/intercom/conversations/raw_client.py
index ced03b9..e18b3e3 100644
--- a/src/intercom/conversations/raw_client.py
+++ b/src/intercom/conversations/raw_client.py
@@ -17,19 +17,19 @@
from ..errors.unauthorized_error import UnauthorizedError
from ..errors.unprocessable_entity_error import UnprocessableEntityError
from ..messages.types.message import Message
+from ..requests.redact_conversation_request import RedactConversationRequestParams
+from ..requests.reply_conversation_request import ReplyConversationRequestParams
+from ..requests.search_request_query import SearchRequestQueryParams
+from ..requests.starting_after_paging import StartingAfterPagingParams
from ..tickets.types.ticket import Ticket
from ..types.custom_attributes import CustomAttributes
from ..types.error import Error
from ..types.paginated_conversation_response import PaginatedConversationResponse
-from ..types.redact_conversation_request import RedactConversationRequest
-from ..types.reply_conversation_request import ReplyConversationRequest
-from ..types.search_request_query import SearchRequestQuery
-from ..types.starting_after_paging import StartingAfterPaging
from ..types.ticket_request_custom_attributes import TicketRequestCustomAttributes
-from .types.attach_contact_to_conversation_request_customer import AttachContactToConversationRequestCustomer
+from .requests.attach_contact_to_conversation_request_customer import AttachContactToConversationRequestCustomerParams
+from .requests.conversations_manage_request_body import ConversationsManageRequestBodyParams
+from .requests.create_conversation_request_from import CreateConversationRequestFromParams
from .types.conversation import Conversation
-from .types.conversations_manage_request_body import ConversationsManageRequestBody
-from .types.create_conversation_request_from import CreateConversationRequestFrom
# this is used as the default value for optional parameters
OMIT = typing.cast(typing.Any, ...)
@@ -133,7 +133,7 @@ def list(
def create(
self,
*,
- from_: CreateConversationRequestFrom,
+ from_: CreateConversationRequestFromParams,
body: str,
created_at: typing.Optional[int] = OMIT,
request_options: typing.Optional[RequestOptions] = None,
@@ -151,7 +151,7 @@ def create(
Parameters
----------
- from_ : CreateConversationRequestFrom
+ from_ : CreateConversationRequestFromParams
body : str
The content of the message. HTML is not supported.
@@ -172,7 +172,7 @@ def create(
method="POST",
json={
"from": convert_and_respect_annotation_metadata(
- object_=from_, annotation=CreateConversationRequestFrom, direction="write"
+ object_=from_, annotation=CreateConversationRequestFromParams, direction="write"
),
"body": body,
"created_at": created_at,
@@ -427,8 +427,8 @@ def update(
def search(
self,
*,
- query: SearchRequestQuery,
- pagination: typing.Optional[StartingAfterPaging] = OMIT,
+ query: SearchRequestQueryParams,
+ pagination: typing.Optional[StartingAfterPagingParams] = OMIT,
request_options: typing.Optional[RequestOptions] = None,
) -> SyncPager[Conversation]:
"""
@@ -534,9 +534,9 @@ def search(
Parameters
----------
- query : SearchRequestQuery
+ query : SearchRequestQueryParams
- pagination : typing.Optional[StartingAfterPaging]
+ pagination : typing.Optional[StartingAfterPagingParams]
request_options : typing.Optional[RequestOptions]
Request-specific configuration.
@@ -551,10 +551,10 @@ def search(
method="POST",
json={
"query": convert_and_respect_annotation_metadata(
- object_=query, annotation=SearchRequestQuery, direction="write"
+ object_=query, annotation=SearchRequestQueryParams, direction="write"
),
"pagination": convert_and_respect_annotation_metadata(
- object_=pagination, annotation=StartingAfterPaging, direction="write"
+ object_=pagination, annotation=StartingAfterPagingParams, direction="write"
),
},
headers={
@@ -595,7 +595,7 @@ def reply(
self,
conversation_id: str,
*,
- request: ReplyConversationRequest,
+ request: ReplyConversationRequestParams,
request_options: typing.Optional[RequestOptions] = None,
) -> HttpResponse[Conversation]:
"""
@@ -606,7 +606,7 @@ def reply(
conversation_id : str
The Intercom provisioned identifier for the conversation or the string "last" to reply to the last part of the conversation
- request : ReplyConversationRequest
+ request : ReplyConversationRequestParams
request_options : typing.Optional[RequestOptions]
Request-specific configuration.
@@ -620,7 +620,7 @@ def reply(
f"conversations/{jsonable_encoder(conversation_id)}/reply",
method="POST",
json=convert_and_respect_annotation_metadata(
- object_=request, annotation=ReplyConversationRequest, direction="write"
+ object_=request, annotation=ReplyConversationRequestParams, direction="write"
),
headers={
"content-type": "application/json",
@@ -680,7 +680,7 @@ def manage(
self,
conversation_id: str,
*,
- request: ConversationsManageRequestBody,
+ request: ConversationsManageRequestBodyParams,
request_options: typing.Optional[RequestOptions] = None,
) -> HttpResponse[Conversation]:
"""
@@ -695,7 +695,7 @@ def manage(
conversation_id : str
The identifier for the conversation as given by Intercom.
- request : ConversationsManageRequestBody
+ request : ConversationsManageRequestBodyParams
request_options : typing.Optional[RequestOptions]
Request-specific configuration.
@@ -709,7 +709,7 @@ def manage(
f"conversations/{jsonable_encoder(conversation_id)}/parts",
method="POST",
json=convert_and_respect_annotation_metadata(
- object_=request, annotation=ConversationsManageRequestBody, direction="write"
+ object_=request, annotation=ConversationsManageRequestBodyParams, direction="write"
),
headers={
"content-type": "application/json",
@@ -848,7 +848,7 @@ def attach_contact_as_admin(
conversation_id: str,
*,
admin_id: typing.Optional[str] = OMIT,
- customer: typing.Optional[AttachContactToConversationRequestCustomer] = OMIT,
+ customer: typing.Optional[AttachContactToConversationRequestCustomerParams] = OMIT,
request_options: typing.Optional[RequestOptions] = None,
) -> HttpResponse[Conversation]:
"""
@@ -866,7 +866,7 @@ def attach_contact_as_admin(
admin_id : typing.Optional[str]
The `id` of the admin who is adding the new participant.
- customer : typing.Optional[AttachContactToConversationRequestCustomer]
+ customer : typing.Optional[AttachContactToConversationRequestCustomerParams]
request_options : typing.Optional[RequestOptions]
Request-specific configuration.
@@ -882,7 +882,7 @@ def attach_contact_as_admin(
json={
"admin_id": admin_id,
"customer": convert_and_respect_annotation_metadata(
- object_=customer, annotation=AttachContactToConversationRequestCustomer, direction="write"
+ object_=customer, annotation=AttachContactToConversationRequestCustomerParams, direction="write"
),
},
headers={
@@ -1045,7 +1045,7 @@ def detach_contact_as_admin(
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
def redact_conversation_part(
- self, *, request: RedactConversationRequest, request_options: typing.Optional[RequestOptions] = None
+ self, *, request: RedactConversationRequestParams, request_options: typing.Optional[RequestOptions] = None
) -> HttpResponse[Conversation]:
"""
You can redact a conversation part or the source message of a conversation (as seen in the source object).
@@ -1056,7 +1056,7 @@ def redact_conversation_part(
Parameters
----------
- request : RedactConversationRequest
+ request : RedactConversationRequestParams
request_options : typing.Optional[RequestOptions]
Request-specific configuration.
@@ -1070,7 +1070,7 @@ def redact_conversation_part(
"conversations/redact",
method="POST",
json=convert_and_respect_annotation_metadata(
- object_=request, annotation=RedactConversationRequest, direction="write"
+ object_=request, annotation=RedactConversationRequestParams, direction="write"
),
headers={
"content-type": "application/json",
@@ -1285,7 +1285,7 @@ async def _get_next():
async def create(
self,
*,
- from_: CreateConversationRequestFrom,
+ from_: CreateConversationRequestFromParams,
body: str,
created_at: typing.Optional[int] = OMIT,
request_options: typing.Optional[RequestOptions] = None,
@@ -1303,7 +1303,7 @@ async def create(
Parameters
----------
- from_ : CreateConversationRequestFrom
+ from_ : CreateConversationRequestFromParams
body : str
The content of the message. HTML is not supported.
@@ -1324,7 +1324,7 @@ async def create(
method="POST",
json={
"from": convert_and_respect_annotation_metadata(
- object_=from_, annotation=CreateConversationRequestFrom, direction="write"
+ object_=from_, annotation=CreateConversationRequestFromParams, direction="write"
),
"body": body,
"created_at": created_at,
@@ -1579,8 +1579,8 @@ async def update(
async def search(
self,
*,
- query: SearchRequestQuery,
- pagination: typing.Optional[StartingAfterPaging] = OMIT,
+ query: SearchRequestQueryParams,
+ pagination: typing.Optional[StartingAfterPagingParams] = OMIT,
request_options: typing.Optional[RequestOptions] = None,
) -> AsyncPager[Conversation]:
"""
@@ -1686,9 +1686,9 @@ async def search(
Parameters
----------
- query : SearchRequestQuery
+ query : SearchRequestQueryParams
- pagination : typing.Optional[StartingAfterPaging]
+ pagination : typing.Optional[StartingAfterPagingParams]
request_options : typing.Optional[RequestOptions]
Request-specific configuration.
@@ -1703,10 +1703,10 @@ async def search(
method="POST",
json={
"query": convert_and_respect_annotation_metadata(
- object_=query, annotation=SearchRequestQuery, direction="write"
+ object_=query, annotation=SearchRequestQueryParams, direction="write"
),
"pagination": convert_and_respect_annotation_metadata(
- object_=pagination, annotation=StartingAfterPaging, direction="write"
+ object_=pagination, annotation=StartingAfterPagingParams, direction="write"
),
},
headers={
@@ -1750,7 +1750,7 @@ async def reply(
self,
conversation_id: str,
*,
- request: ReplyConversationRequest,
+ request: ReplyConversationRequestParams,
request_options: typing.Optional[RequestOptions] = None,
) -> AsyncHttpResponse[Conversation]:
"""
@@ -1761,7 +1761,7 @@ async def reply(
conversation_id : str
The Intercom provisioned identifier for the conversation or the string "last" to reply to the last part of the conversation
- request : ReplyConversationRequest
+ request : ReplyConversationRequestParams
request_options : typing.Optional[RequestOptions]
Request-specific configuration.
@@ -1775,7 +1775,7 @@ async def reply(
f"conversations/{jsonable_encoder(conversation_id)}/reply",
method="POST",
json=convert_and_respect_annotation_metadata(
- object_=request, annotation=ReplyConversationRequest, direction="write"
+ object_=request, annotation=ReplyConversationRequestParams, direction="write"
),
headers={
"content-type": "application/json",
@@ -1835,7 +1835,7 @@ async def manage(
self,
conversation_id: str,
*,
- request: ConversationsManageRequestBody,
+ request: ConversationsManageRequestBodyParams,
request_options: typing.Optional[RequestOptions] = None,
) -> AsyncHttpResponse[Conversation]:
"""
@@ -1850,7 +1850,7 @@ async def manage(
conversation_id : str
The identifier for the conversation as given by Intercom.
- request : ConversationsManageRequestBody
+ request : ConversationsManageRequestBodyParams
request_options : typing.Optional[RequestOptions]
Request-specific configuration.
@@ -1864,7 +1864,7 @@ async def manage(
f"conversations/{jsonable_encoder(conversation_id)}/parts",
method="POST",
json=convert_and_respect_annotation_metadata(
- object_=request, annotation=ConversationsManageRequestBody, direction="write"
+ object_=request, annotation=ConversationsManageRequestBodyParams, direction="write"
),
headers={
"content-type": "application/json",
@@ -2003,7 +2003,7 @@ async def attach_contact_as_admin(
conversation_id: str,
*,
admin_id: typing.Optional[str] = OMIT,
- customer: typing.Optional[AttachContactToConversationRequestCustomer] = OMIT,
+ customer: typing.Optional[AttachContactToConversationRequestCustomerParams] = OMIT,
request_options: typing.Optional[RequestOptions] = None,
) -> AsyncHttpResponse[Conversation]:
"""
@@ -2021,7 +2021,7 @@ async def attach_contact_as_admin(
admin_id : typing.Optional[str]
The `id` of the admin who is adding the new participant.
- customer : typing.Optional[AttachContactToConversationRequestCustomer]
+ customer : typing.Optional[AttachContactToConversationRequestCustomerParams]
request_options : typing.Optional[RequestOptions]
Request-specific configuration.
@@ -2037,7 +2037,7 @@ async def attach_contact_as_admin(
json={
"admin_id": admin_id,
"customer": convert_and_respect_annotation_metadata(
- object_=customer, annotation=AttachContactToConversationRequestCustomer, direction="write"
+ object_=customer, annotation=AttachContactToConversationRequestCustomerParams, direction="write"
),
},
headers={
@@ -2200,7 +2200,7 @@ async def detach_contact_as_admin(
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
async def redact_conversation_part(
- self, *, request: RedactConversationRequest, request_options: typing.Optional[RequestOptions] = None
+ self, *, request: RedactConversationRequestParams, request_options: typing.Optional[RequestOptions] = None
) -> AsyncHttpResponse[Conversation]:
"""
You can redact a conversation part or the source message of a conversation (as seen in the source object).
@@ -2211,7 +2211,7 @@ async def redact_conversation_part(
Parameters
----------
- request : RedactConversationRequest
+ request : RedactConversationRequestParams
request_options : typing.Optional[RequestOptions]
Request-specific configuration.
@@ -2225,7 +2225,7 @@ async def redact_conversation_part(
"conversations/redact",
method="POST",
json=convert_and_respect_annotation_metadata(
- object_=request, annotation=RedactConversationRequest, direction="write"
+ object_=request, annotation=RedactConversationRequestParams, direction="write"
),
headers={
"content-type": "application/json",
diff --git a/src/intercom/conversations/requests/__init__.py b/src/intercom/conversations/requests/__init__.py
new file mode 100644
index 0000000..f1e9c7e
--- /dev/null
+++ b/src/intercom/conversations/requests/__init__.py
@@ -0,0 +1,37 @@
+# This file was auto-generated by Fern from our API Definition.
+
+# isort: skip_file
+
+from .attach_contact_to_conversation_request_customer import AttachContactToConversationRequestCustomerParams
+from .attach_contact_to_conversation_request_customer_customer import (
+ AttachContactToConversationRequestCustomerCustomerParams,
+)
+from .attach_contact_to_conversation_request_customer_intercom_user_id import (
+ AttachContactToConversationRequestCustomerIntercomUserIdParams,
+)
+from .attach_contact_to_conversation_request_customer_user_id import (
+ AttachContactToConversationRequestCustomerUserIdParams,
+)
+from .conversation import ConversationParams
+from .conversations_manage_request_body import (
+ ConversationsManageRequestBodyParams,
+ ConversationsManageRequestBody_AssignmentParams,
+ ConversationsManageRequestBody_CloseParams,
+ ConversationsManageRequestBody_OpenParams,
+ ConversationsManageRequestBody_SnoozedParams,
+)
+from .create_conversation_request_from import CreateConversationRequestFromParams
+
+__all__ = [
+ "AttachContactToConversationRequestCustomerCustomerParams",
+ "AttachContactToConversationRequestCustomerIntercomUserIdParams",
+ "AttachContactToConversationRequestCustomerParams",
+ "AttachContactToConversationRequestCustomerUserIdParams",
+ "ConversationParams",
+ "ConversationsManageRequestBodyParams",
+ "ConversationsManageRequestBody_AssignmentParams",
+ "ConversationsManageRequestBody_CloseParams",
+ "ConversationsManageRequestBody_OpenParams",
+ "ConversationsManageRequestBody_SnoozedParams",
+ "CreateConversationRequestFromParams",
+]
diff --git a/src/intercom/conversations/requests/attach_contact_to_conversation_request_customer.py b/src/intercom/conversations/requests/attach_contact_to_conversation_request_customer.py
new file mode 100644
index 0000000..b91bf22
--- /dev/null
+++ b/src/intercom/conversations/requests/attach_contact_to_conversation_request_customer.py
@@ -0,0 +1,19 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing
+
+from .attach_contact_to_conversation_request_customer_customer import (
+ AttachContactToConversationRequestCustomerCustomerParams,
+)
+from .attach_contact_to_conversation_request_customer_intercom_user_id import (
+ AttachContactToConversationRequestCustomerIntercomUserIdParams,
+)
+from .attach_contact_to_conversation_request_customer_user_id import (
+ AttachContactToConversationRequestCustomerUserIdParams,
+)
+
+AttachContactToConversationRequestCustomerParams = typing.Union[
+ AttachContactToConversationRequestCustomerIntercomUserIdParams,
+ AttachContactToConversationRequestCustomerUserIdParams,
+ AttachContactToConversationRequestCustomerCustomerParams,
+]
diff --git a/src/intercom/conversations/requests/attach_contact_to_conversation_request_customer_customer.py b/src/intercom/conversations/requests/attach_contact_to_conversation_request_customer_customer.py
new file mode 100644
index 0000000..14582f0
--- /dev/null
+++ b/src/intercom/conversations/requests/attach_contact_to_conversation_request_customer_customer.py
@@ -0,0 +1,13 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing_extensions
+from ...requests.customer_request import CustomerRequestParams
+
+
+class AttachContactToConversationRequestCustomerCustomerParams(typing_extensions.TypedDict):
+ email: str
+ """
+ The email you have defined for the contact who is being added as a participant.
+ """
+
+ customer: typing_extensions.NotRequired[CustomerRequestParams]
diff --git a/src/intercom/conversations/requests/attach_contact_to_conversation_request_customer_intercom_user_id.py b/src/intercom/conversations/requests/attach_contact_to_conversation_request_customer_intercom_user_id.py
new file mode 100644
index 0000000..0f63806
--- /dev/null
+++ b/src/intercom/conversations/requests/attach_contact_to_conversation_request_customer_intercom_user_id.py
@@ -0,0 +1,13 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing_extensions
+from ...requests.customer_request import CustomerRequestParams
+
+
+class AttachContactToConversationRequestCustomerIntercomUserIdParams(typing_extensions.TypedDict):
+ intercom_user_id: str
+ """
+ The identifier for the contact as given by Intercom.
+ """
+
+ customer: typing_extensions.NotRequired[CustomerRequestParams]
diff --git a/src/intercom/conversations/requests/attach_contact_to_conversation_request_customer_user_id.py b/src/intercom/conversations/requests/attach_contact_to_conversation_request_customer_user_id.py
new file mode 100644
index 0000000..4cff5fb
--- /dev/null
+++ b/src/intercom/conversations/requests/attach_contact_to_conversation_request_customer_user_id.py
@@ -0,0 +1,13 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing_extensions
+from ...requests.customer_request import CustomerRequestParams
+
+
+class AttachContactToConversationRequestCustomerUserIdParams(typing_extensions.TypedDict):
+ user_id: str
+ """
+ The external_id you have defined for the contact who is being added as a participant.
+ """
+
+ customer: typing_extensions.NotRequired[CustomerRequestParams]
diff --git a/src/intercom/conversations/requests/conversation.py b/src/intercom/conversations/requests/conversation.py
new file mode 100644
index 0000000..397bc01
--- /dev/null
+++ b/src/intercom/conversations/requests/conversation.py
@@ -0,0 +1,108 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing
+
+import typing_extensions
+from ...ai_agent.requests.ai_agent import AiAgentParams
+from ...requests.conversation_contacts import ConversationContactsParams
+from ...requests.conversation_first_contact_reply import ConversationFirstContactReplyParams
+from ...requests.conversation_parts import ConversationPartsParams
+from ...requests.conversation_rating import ConversationRatingParams
+from ...requests.conversation_source import ConversationSourceParams
+from ...requests.conversation_statistics import ConversationStatisticsParams
+from ...requests.conversation_teammates import ConversationTeammatesParams
+from ...requests.linked_object_list import LinkedObjectListParams
+from ...requests.sla_applied import SlaAppliedParams
+from ...requests.tags import TagsParams
+from ...types.custom_attributes import CustomAttributes
+from ..types.conversation_priority import ConversationPriority
+from ..types.conversation_state import ConversationState
+
+
+class ConversationParams(typing_extensions.TypedDict):
+ """
+ Conversations are how you can communicate with users in Intercom. They are created when a contact replies to an outbound message, or when one admin directly sends a message to a single contact.
+ """
+
+ type: typing_extensions.NotRequired[typing.Literal["conversation"]]
+ """
+ Always conversation.
+ """
+
+ id: str
+ """
+ The id representing the conversation.
+ """
+
+ title: typing_extensions.NotRequired[str]
+ """
+ The title given to the conversation.
+ """
+
+ created_at: int
+ """
+ The time the conversation was created.
+ """
+
+ updated_at: int
+ """
+ The last time the conversation was updated.
+ """
+
+ waiting_since: typing_extensions.NotRequired[int]
+ """
+ The last time a Contact responded to an Admin. In other words, the time a customer started waiting for a response. Set to null if last reply is from an Admin.
+ """
+
+ snoozed_until: typing_extensions.NotRequired[int]
+ """
+ If set this is the time in the future when this conversation will be marked as open. i.e. it will be in a snoozed state until this time. i.e. it will be in a snoozed state until this time.
+ """
+
+ open: bool
+ """
+ Indicates whether a conversation is open (true) or closed (false).
+ """
+
+ state: ConversationState
+ """
+ Can be set to "open", "closed" or "snoozed".
+ """
+
+ read: bool
+ """
+ Indicates whether a conversation has been read.
+ """
+
+ priority: typing_extensions.NotRequired[ConversationPriority]
+ """
+ If marked as priority, it will return priority or else not_priority.
+ """
+
+ admin_assignee_id: typing_extensions.NotRequired[int]
+ """
+ The id of the admin assigned to the conversation. If it's not assigned to an admin it will return null.
+ """
+
+ team_assignee_id: typing_extensions.NotRequired[str]
+ """
+ The id of the team assigned to the conversation. If it's not assigned to a team it will return null.
+ """
+
+ tags: typing_extensions.NotRequired[TagsParams]
+ conversation_rating: typing_extensions.NotRequired[ConversationRatingParams]
+ source: ConversationSourceParams
+ contacts: ConversationContactsParams
+ teammates: ConversationTeammatesParams
+ custom_attributes: CustomAttributes
+ first_contact_reply: typing_extensions.NotRequired[ConversationFirstContactReplyParams]
+ sla_applied: typing_extensions.NotRequired[SlaAppliedParams]
+ statistics: typing_extensions.NotRequired[ConversationStatisticsParams]
+ conversation_parts: typing_extensions.NotRequired[ConversationPartsParams]
+ linked_objects: typing_extensions.NotRequired[LinkedObjectListParams]
+ ai_agent_participated: typing_extensions.NotRequired[bool]
+ """
+ Indicates whether the AI Agent participated in the conversation.
+ """
+
+ ai_agent: typing_extensions.NotRequired[AiAgentParams]
diff --git a/src/intercom/conversations/requests/conversations_manage_request_body.py b/src/intercom/conversations/requests/conversations_manage_request_body.py
new file mode 100644
index 0000000..35c7396
--- /dev/null
+++ b/src/intercom/conversations/requests/conversations_manage_request_body.py
@@ -0,0 +1,42 @@
+# This file was auto-generated by Fern from our API Definition.
+
+from __future__ import annotations
+
+import typing
+
+import typing_extensions
+from ...types.assign_conversation_request_type import AssignConversationRequestType
+
+
+class ConversationsManageRequestBody_CloseParams(typing_extensions.TypedDict):
+ message_type: typing.Literal["close"]
+ type: typing.Literal["admin"]
+ admin_id: str
+ body: typing_extensions.NotRequired[str]
+
+
+class ConversationsManageRequestBody_SnoozedParams(typing_extensions.TypedDict):
+ message_type: typing.Literal["snoozed"]
+ admin_id: str
+ snoozed_until: int
+
+
+class ConversationsManageRequestBody_OpenParams(typing_extensions.TypedDict):
+ message_type: typing.Literal["open"]
+ admin_id: str
+
+
+class ConversationsManageRequestBody_AssignmentParams(typing_extensions.TypedDict):
+ message_type: typing.Literal["assignment"]
+ type: AssignConversationRequestType
+ admin_id: str
+ assignee_id: str
+ body: typing_extensions.NotRequired[str]
+
+
+ConversationsManageRequestBodyParams = typing.Union[
+ ConversationsManageRequestBody_CloseParams,
+ ConversationsManageRequestBody_SnoozedParams,
+ ConversationsManageRequestBody_OpenParams,
+ ConversationsManageRequestBody_AssignmentParams,
+]
diff --git a/src/intercom/conversations/requests/create_conversation_request_from.py b/src/intercom/conversations/requests/create_conversation_request_from.py
new file mode 100644
index 0000000..922de2e
--- /dev/null
+++ b/src/intercom/conversations/requests/create_conversation_request_from.py
@@ -0,0 +1,16 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing_extensions
+from ..types.create_conversation_request_from_type import CreateConversationRequestFromType
+
+
+class CreateConversationRequestFromParams(typing_extensions.TypedDict):
+ type: CreateConversationRequestFromType
+ """
+ The role associated to the contact - user or lead.
+ """
+
+ id: str
+ """
+ The identifier for the contact which is given by Intercom.
+ """
diff --git a/src/intercom/core/client_wrapper.py b/src/intercom/core/client_wrapper.py
index 4204e04..dd63773 100644
--- a/src/intercom/core/client_wrapper.py
+++ b/src/intercom/core/client_wrapper.py
@@ -20,10 +20,10 @@ def __init__(
def get_headers(self) -> typing.Dict[str, str]:
headers: typing.Dict[str, str] = {
- "User-Agent": "intercom-python/v4.0.0a0",
+ "User-Agent": "python-intercom/v4.0.0a1",
"X-Fern-Language": "Python",
- "X-Fern-SDK-Name": "intercom-python",
- "X-Fern-SDK-Version": "v4.0.0a0",
+ "X-Fern-SDK-Name": "python-intercom",
+ "X-Fern-SDK-Version": "v4.0.0a1",
}
headers["Authorization"] = f"Bearer {self._get_token()}"
return headers
diff --git a/src/intercom/data_attributes/__init__.py b/src/intercom/data_attributes/__init__.py
index 28a61e8..dacfc4f 100644
--- a/src/intercom/data_attributes/__init__.py
+++ b/src/intercom/data_attributes/__init__.py
@@ -11,6 +11,7 @@
DataAttributesListRequestModel,
UpdateDataAttributeRequestOptionsItem,
)
+from .requests import DataAttributeParams, UpdateDataAttributeRequestOptionsItemParams
__all__ = [
"CreateDataAttributeRequestDataType",
@@ -18,6 +19,8 @@
"DataAttribute",
"DataAttributeDataType",
"DataAttributeModel",
+ "DataAttributeParams",
"DataAttributesListRequestModel",
"UpdateDataAttributeRequestOptionsItem",
+ "UpdateDataAttributeRequestOptionsItemParams",
]
diff --git a/src/intercom/data_attributes/client.py b/src/intercom/data_attributes/client.py
index b762c06..f9b8f9a 100644
--- a/src/intercom/data_attributes/client.py
+++ b/src/intercom/data_attributes/client.py
@@ -6,11 +6,11 @@
from ..core.request_options import RequestOptions
from ..types.data_attribute_list import DataAttributeList
from .raw_client import AsyncRawDataAttributesClient, RawDataAttributesClient
+from .requests.update_data_attribute_request_options_item import UpdateDataAttributeRequestOptionsItemParams
from .types.create_data_attribute_request_data_type import CreateDataAttributeRequestDataType
from .types.create_data_attribute_request_model import CreateDataAttributeRequestModel
from .types.data_attribute import DataAttribute
from .types.data_attributes_list_request_model import DataAttributesListRequestModel
-from .types.update_data_attribute_request_options_item import UpdateDataAttributeRequestOptionsItem
# this is used as the default value for optional parameters
OMIT = typing.cast(typing.Any, ...)
@@ -143,7 +143,7 @@ def update(
*,
archived: typing.Optional[bool] = OMIT,
description: typing.Optional[str] = OMIT,
- options: typing.Optional[typing.Sequence[UpdateDataAttributeRequestOptionsItem]] = OMIT,
+ options: typing.Optional[typing.Sequence[UpdateDataAttributeRequestOptionsItemParams]] = OMIT,
messenger_writable: typing.Optional[bool] = OMIT,
request_options: typing.Optional[RequestOptions] = None,
) -> DataAttribute:
@@ -166,7 +166,7 @@ def update(
description : typing.Optional[str]
The readable description you see in the UI for the attribute.
- options : typing.Optional[typing.Sequence[UpdateDataAttributeRequestOptionsItem]]
+ options : typing.Optional[typing.Sequence[UpdateDataAttributeRequestOptionsItemParams]]
To create list attributes. Provide a set of hashes with `value` as the key of the options you want to make. `data_type` must be `string`.
messenger_writable : typing.Optional[bool]
@@ -183,7 +183,6 @@ def update(
Examples
--------
from intercom import Intercom
- from intercom.data_attributes import UpdateDataAttributeRequestOptionsItem
client = Intercom(
token="YOUR_TOKEN",
@@ -192,14 +191,7 @@ def update(
data_attribute_id="1",
archived=False,
description="Just a plain old ring",
- options=[
- UpdateDataAttributeRequestOptionsItem(
- value="1-10",
- ),
- UpdateDataAttributeRequestOptionsItem(
- value="11-20",
- ),
- ],
+ options=[{"value": "1-10"}, {"value": "11-20"}],
)
"""
_response = self._raw_client.update(
@@ -356,7 +348,7 @@ async def update(
*,
archived: typing.Optional[bool] = OMIT,
description: typing.Optional[str] = OMIT,
- options: typing.Optional[typing.Sequence[UpdateDataAttributeRequestOptionsItem]] = OMIT,
+ options: typing.Optional[typing.Sequence[UpdateDataAttributeRequestOptionsItemParams]] = OMIT,
messenger_writable: typing.Optional[bool] = OMIT,
request_options: typing.Optional[RequestOptions] = None,
) -> DataAttribute:
@@ -379,7 +371,7 @@ async def update(
description : typing.Optional[str]
The readable description you see in the UI for the attribute.
- options : typing.Optional[typing.Sequence[UpdateDataAttributeRequestOptionsItem]]
+ options : typing.Optional[typing.Sequence[UpdateDataAttributeRequestOptionsItemParams]]
To create list attributes. Provide a set of hashes with `value` as the key of the options you want to make. `data_type` must be `string`.
messenger_writable : typing.Optional[bool]
@@ -398,7 +390,6 @@ async def update(
import asyncio
from intercom import AsyncIntercom
- from intercom.data_attributes import UpdateDataAttributeRequestOptionsItem
client = AsyncIntercom(
token="YOUR_TOKEN",
@@ -410,14 +401,7 @@ async def main() -> None:
data_attribute_id="1",
archived=False,
description="Just a plain old ring",
- options=[
- UpdateDataAttributeRequestOptionsItem(
- value="1-10",
- ),
- UpdateDataAttributeRequestOptionsItem(
- value="11-20",
- ),
- ],
+ options=[{"value": "1-10"}, {"value": "11-20"}],
)
diff --git a/src/intercom/data_attributes/raw_client.py b/src/intercom/data_attributes/raw_client.py
index 8170eed..4f212a5 100644
--- a/src/intercom/data_attributes/raw_client.py
+++ b/src/intercom/data_attributes/raw_client.py
@@ -16,11 +16,11 @@
from ..errors.unprocessable_entity_error import UnprocessableEntityError
from ..types.data_attribute_list import DataAttributeList
from ..types.error import Error
+from .requests.update_data_attribute_request_options_item import UpdateDataAttributeRequestOptionsItemParams
from .types.create_data_attribute_request_data_type import CreateDataAttributeRequestDataType
from .types.create_data_attribute_request_model import CreateDataAttributeRequestModel
from .types.data_attribute import DataAttribute
from .types.data_attributes_list_request_model import DataAttributesListRequestModel
-from .types.update_data_attribute_request_options_item import UpdateDataAttributeRequestOptionsItem
# this is used as the default value for optional parameters
OMIT = typing.cast(typing.Any, ...)
@@ -193,7 +193,7 @@ def update(
*,
archived: typing.Optional[bool] = OMIT,
description: typing.Optional[str] = OMIT,
- options: typing.Optional[typing.Sequence[UpdateDataAttributeRequestOptionsItem]] = OMIT,
+ options: typing.Optional[typing.Sequence[UpdateDataAttributeRequestOptionsItemParams]] = OMIT,
messenger_writable: typing.Optional[bool] = OMIT,
request_options: typing.Optional[RequestOptions] = None,
) -> HttpResponse[DataAttribute]:
@@ -216,7 +216,7 @@ def update(
description : typing.Optional[str]
The readable description you see in the UI for the attribute.
- options : typing.Optional[typing.Sequence[UpdateDataAttributeRequestOptionsItem]]
+ options : typing.Optional[typing.Sequence[UpdateDataAttributeRequestOptionsItemParams]]
To create list attributes. Provide a set of hashes with `value` as the key of the options you want to make. `data_type` must be `string`.
messenger_writable : typing.Optional[bool]
@@ -238,7 +238,7 @@ def update(
"description": description,
"options": convert_and_respect_annotation_metadata(
object_=options,
- annotation=typing.Sequence[UpdateDataAttributeRequestOptionsItem],
+ annotation=typing.Sequence[UpdateDataAttributeRequestOptionsItemParams],
direction="write",
),
"messenger_writable": messenger_writable,
@@ -476,7 +476,7 @@ async def update(
*,
archived: typing.Optional[bool] = OMIT,
description: typing.Optional[str] = OMIT,
- options: typing.Optional[typing.Sequence[UpdateDataAttributeRequestOptionsItem]] = OMIT,
+ options: typing.Optional[typing.Sequence[UpdateDataAttributeRequestOptionsItemParams]] = OMIT,
messenger_writable: typing.Optional[bool] = OMIT,
request_options: typing.Optional[RequestOptions] = None,
) -> AsyncHttpResponse[DataAttribute]:
@@ -499,7 +499,7 @@ async def update(
description : typing.Optional[str]
The readable description you see in the UI for the attribute.
- options : typing.Optional[typing.Sequence[UpdateDataAttributeRequestOptionsItem]]
+ options : typing.Optional[typing.Sequence[UpdateDataAttributeRequestOptionsItemParams]]
To create list attributes. Provide a set of hashes with `value` as the key of the options you want to make. `data_type` must be `string`.
messenger_writable : typing.Optional[bool]
@@ -521,7 +521,7 @@ async def update(
"description": description,
"options": convert_and_respect_annotation_metadata(
object_=options,
- annotation=typing.Sequence[UpdateDataAttributeRequestOptionsItem],
+ annotation=typing.Sequence[UpdateDataAttributeRequestOptionsItemParams],
direction="write",
),
"messenger_writable": messenger_writable,
diff --git a/src/intercom/data_attributes/requests/__init__.py b/src/intercom/data_attributes/requests/__init__.py
new file mode 100644
index 0000000..3cbcb9c
--- /dev/null
+++ b/src/intercom/data_attributes/requests/__init__.py
@@ -0,0 +1,8 @@
+# This file was auto-generated by Fern from our API Definition.
+
+# isort: skip_file
+
+from .data_attribute import DataAttributeParams
+from .update_data_attribute_request_options_item import UpdateDataAttributeRequestOptionsItemParams
+
+__all__ = ["DataAttributeParams", "UpdateDataAttributeRequestOptionsItemParams"]
diff --git a/src/intercom/data_attributes/requests/data_attribute.py b/src/intercom/data_attributes/requests/data_attribute.py
new file mode 100644
index 0000000..db15dd6
--- /dev/null
+++ b/src/intercom/data_attributes/requests/data_attribute.py
@@ -0,0 +1,98 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing
+
+import typing_extensions
+from ..types.data_attribute_data_type import DataAttributeDataType
+from ..types.data_attribute_model import DataAttributeModel
+
+
+class DataAttributeParams(typing_extensions.TypedDict):
+ """
+ Data Attributes are metadata used to describe your contact, company and conversation models. These include standard and custom attributes. By using the data attributes endpoint, you can get the global list of attributes for your workspace, as well as create and archive custom attributes.
+ """
+
+ type: typing.Literal["data_attribute"]
+ """
+ Value is `data_attribute`.
+ """
+
+ id: typing_extensions.NotRequired[int]
+ """
+ The unique identifier for the data attribute which is given by Intercom. Only available for custom attributes.
+ """
+
+ model: typing_extensions.NotRequired[DataAttributeModel]
+ """
+ Value is `contact` for user/lead attributes and `company` for company attributes.
+ """
+
+ name: str
+ """
+ Name of the attribute.
+ """
+
+ full_name: str
+ """
+ Full name of the attribute. Should match the name unless it's a nested attribute. We can split full_name on `.` to access nested user object values.
+ """
+
+ label: str
+ """
+ Readable name of the attribute (i.e. name you see in the UI)
+ """
+
+ description: typing_extensions.NotRequired[str]
+ """
+ Readable description of the attribute.
+ """
+
+ data_type: DataAttributeDataType
+ """
+ The data type of the attribute.
+ """
+
+ options: typing_extensions.NotRequired[typing.Sequence[str]]
+ """
+ List of predefined options for attribute value.
+ """
+
+ api_writable: typing_extensions.NotRequired[bool]
+ """
+ Can this attribute be updated through API
+ """
+
+ messenger_writable: typing_extensions.NotRequired[bool]
+ """
+ Can this attribute be updated by the Messenger
+ """
+
+ ui_writable: typing_extensions.NotRequired[bool]
+ """
+ Can this attribute be updated in the UI
+ """
+
+ custom: typing_extensions.NotRequired[bool]
+ """
+ Set to true if this is a CDA
+ """
+
+ archived: typing_extensions.NotRequired[bool]
+ """
+ Is this attribute archived. (Only applicable to CDAs)
+ """
+
+ created_at: typing_extensions.NotRequired[int]
+ """
+ The time the attribute was created as a UTC Unix timestamp
+ """
+
+ updated_at: typing_extensions.NotRequired[int]
+ """
+ The time the attribute was last updated as a UTC Unix timestamp
+ """
+
+ admin_id: typing_extensions.NotRequired[str]
+ """
+ Teammate who created the attribute. Only applicable to CDAs
+ """
diff --git a/src/intercom/data_attributes/requests/update_data_attribute_request_options_item.py b/src/intercom/data_attributes/requests/update_data_attribute_request_options_item.py
new file mode 100644
index 0000000..07eb57e
--- /dev/null
+++ b/src/intercom/data_attributes/requests/update_data_attribute_request_options_item.py
@@ -0,0 +1,7 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing_extensions
+
+
+class UpdateDataAttributeRequestOptionsItemParams(typing_extensions.TypedDict):
+ value: str
diff --git a/src/intercom/data_events/__init__.py b/src/intercom/data_events/__init__.py
index 73e8e00..931fc49 100644
--- a/src/intercom/data_events/__init__.py
+++ b/src/intercom/data_events/__init__.py
@@ -3,5 +3,6 @@
# isort: skip_file
from .types import DataEvent
+from .requests import DataEventParams
-__all__ = ["DataEvent"]
+__all__ = ["DataEvent", "DataEventParams"]
diff --git a/src/intercom/data_events/requests/__init__.py b/src/intercom/data_events/requests/__init__.py
new file mode 100644
index 0000000..8d21ade
--- /dev/null
+++ b/src/intercom/data_events/requests/__init__.py
@@ -0,0 +1,7 @@
+# This file was auto-generated by Fern from our API Definition.
+
+# isort: skip_file
+
+from .data_event import DataEventParams
+
+__all__ = ["DataEventParams"]
diff --git a/src/intercom/data_events/requests/data_event.py b/src/intercom/data_events/requests/data_event.py
new file mode 100644
index 0000000..81af024
--- /dev/null
+++ b/src/intercom/data_events/requests/data_event.py
@@ -0,0 +1,51 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing
+
+import typing_extensions
+
+
+class DataEventParams(typing_extensions.TypedDict):
+ """
+ Data events are used to notify Intercom of changes to your data.
+ """
+
+ type: typing_extensions.NotRequired[typing.Literal["event"]]
+ """
+ The type of the object
+ """
+
+ event_name: str
+ """
+ The name of the event that occurred. This is presented to your App's admins when filtering and creating segments - a good event name is typically a past tense 'verb-noun' combination, to improve readability, for example `updated-plan`.
+ """
+
+ created_at: int
+ """
+ The time the event occurred as a UTC Unix timestamp
+ """
+
+ user_id: typing_extensions.NotRequired[str]
+ """
+ Your identifier for the user.
+ """
+
+ id: typing_extensions.NotRequired[str]
+ """
+ Your identifier for a lead or a user.
+ """
+
+ intercom_user_id: typing_extensions.NotRequired[str]
+ """
+ The Intercom identifier for the user.
+ """
+
+ email: typing_extensions.NotRequired[str]
+ """
+ An email address for your user. An email should only be used where your application uses email to uniquely identify users.
+ """
+
+ metadata: typing_extensions.NotRequired[typing.Dict[str, str]]
+ """
+ Optional metadata about the event.
+ """
diff --git a/src/intercom/data_export/__init__.py b/src/intercom/data_export/__init__.py
index 0b3cdcb..08e44ac 100644
--- a/src/intercom/data_export/__init__.py
+++ b/src/intercom/data_export/__init__.py
@@ -3,5 +3,6 @@
# isort: skip_file
from .types import DataExport, DataExportStatus
+from .requests import DataExportParams
-__all__ = ["DataExport", "DataExportStatus"]
+__all__ = ["DataExport", "DataExportParams", "DataExportStatus"]
diff --git a/src/intercom/data_export/requests/__init__.py b/src/intercom/data_export/requests/__init__.py
new file mode 100644
index 0000000..0c18d5a
--- /dev/null
+++ b/src/intercom/data_export/requests/__init__.py
@@ -0,0 +1,7 @@
+# This file was auto-generated by Fern from our API Definition.
+
+# isort: skip_file
+
+from .data_export import DataExportParams
+
+__all__ = ["DataExportParams"]
diff --git a/src/intercom/data_export/requests/data_export.py b/src/intercom/data_export/requests/data_export.py
new file mode 100644
index 0000000..f4c43d4
--- /dev/null
+++ b/src/intercom/data_export/requests/data_export.py
@@ -0,0 +1,30 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing_extensions
+from ..types.data_export_status import DataExportStatus
+
+
+class DataExportParams(typing_extensions.TypedDict):
+ """
+ The data export api is used to view all message sent & viewed in a given timeframe.
+ """
+
+ job_identifier: str
+ """
+ The identifier for your job.
+ """
+
+ status: DataExportStatus
+ """
+ The current state of your job.
+ """
+
+ download_expires_at: str
+ """
+ The time after which you will not be able to access the data.
+ """
+
+ download_url: str
+ """
+ The location where you can download your data.
+ """
diff --git a/src/intercom/events/__init__.py b/src/intercom/events/__init__.py
index ec0d472..76b5162 100644
--- a/src/intercom/events/__init__.py
+++ b/src/intercom/events/__init__.py
@@ -3,5 +3,6 @@
# isort: skip_file
from .types import CreateDataEventSummariesRequestEventSummaries
+from .requests import CreateDataEventSummariesRequestEventSummariesParams
-__all__ = ["CreateDataEventSummariesRequestEventSummaries"]
+__all__ = ["CreateDataEventSummariesRequestEventSummaries", "CreateDataEventSummariesRequestEventSummariesParams"]
diff --git a/src/intercom/events/client.py b/src/intercom/events/client.py
index 356b230..f19ec73 100644
--- a/src/intercom/events/client.py
+++ b/src/intercom/events/client.py
@@ -4,10 +4,12 @@
from ..core.client_wrapper import AsyncClientWrapper, SyncClientWrapper
from ..core.request_options import RequestOptions
-from ..types.create_data_event_request import CreateDataEventRequest
+from ..requests.create_data_event_request import CreateDataEventRequestParams
from ..types.data_event_summary import DataEventSummary
from .raw_client import AsyncRawEventsClient, RawEventsClient
-from .types.create_data_event_summaries_request_event_summaries import CreateDataEventSummariesRequestEventSummaries
+from .requests.create_data_event_summaries_request_event_summaries import (
+ CreateDataEventSummariesRequestEventSummariesParams,
+)
# this is used as the default value for optional parameters
OMIT = typing.cast(typing.Any, ...)
@@ -106,7 +108,7 @@ def list(
return _response.data
def create(
- self, *, request: CreateDataEventRequest, request_options: typing.Optional[RequestOptions] = None
+ self, *, request: CreateDataEventRequestParams, request_options: typing.Optional[RequestOptions] = None
) -> None:
"""
@@ -153,7 +155,7 @@ def create(
Parameters
----------
- request : CreateDataEventRequest
+ request : CreateDataEventRequestParams
request_options : typing.Optional[RequestOptions]
Request-specific configuration.
@@ -164,17 +166,17 @@ def create(
Examples
--------
- from intercom import CreateDataEventRequestWithId, Intercom
+ from intercom import Intercom
client = Intercom(
token="YOUR_TOKEN",
)
client.events.create(
- request=CreateDataEventRequestWithId(
- id="8a88a590-e1c3-41e2-a502-e0649dbf721c",
- event_name="invited-friend",
- created_at=1671028894,
- ),
+ request={
+ "id": "8a88a590-e1c3-41e2-a502-e0649dbf721c",
+ "event_name": "invited-friend",
+ "created_at": 1671028894,
+ },
)
"""
_response = self._raw_client.create(request=request, request_options=request_options)
@@ -184,7 +186,7 @@ def summaries(
self,
*,
user_id: typing.Optional[str] = OMIT,
- event_summaries: typing.Optional[CreateDataEventSummariesRequestEventSummaries] = OMIT,
+ event_summaries: typing.Optional[CreateDataEventSummariesRequestEventSummariesParams] = OMIT,
request_options: typing.Optional[RequestOptions] = None,
) -> None:
"""
@@ -195,7 +197,7 @@ def summaries(
user_id : typing.Optional[str]
Your identifier for the user.
- event_summaries : typing.Optional[CreateDataEventSummariesRequestEventSummaries]
+ event_summaries : typing.Optional[CreateDataEventSummariesRequestEventSummariesParams]
A list of event summaries for the user. Each event summary should contain the event name, the time the event occurred, and the number of times the event occurred. The event name should be a past tense 'verb-noun' combination, to improve readability, for example `updated-plan`.
request_options : typing.Optional[RequestOptions]
@@ -321,7 +323,7 @@ async def main() -> None:
return _response.data
async def create(
- self, *, request: CreateDataEventRequest, request_options: typing.Optional[RequestOptions] = None
+ self, *, request: CreateDataEventRequestParams, request_options: typing.Optional[RequestOptions] = None
) -> None:
"""
@@ -368,7 +370,7 @@ async def create(
Parameters
----------
- request : CreateDataEventRequest
+ request : CreateDataEventRequestParams
request_options : typing.Optional[RequestOptions]
Request-specific configuration.
@@ -381,7 +383,7 @@ async def create(
--------
import asyncio
- from intercom import AsyncIntercom, CreateDataEventRequestWithId
+ from intercom import AsyncIntercom
client = AsyncIntercom(
token="YOUR_TOKEN",
@@ -390,11 +392,11 @@ async def create(
async def main() -> None:
await client.events.create(
- request=CreateDataEventRequestWithId(
- id="8a88a590-e1c3-41e2-a502-e0649dbf721c",
- event_name="invited-friend",
- created_at=1671028894,
- ),
+ request={
+ "id": "8a88a590-e1c3-41e2-a502-e0649dbf721c",
+ "event_name": "invited-friend",
+ "created_at": 1671028894,
+ },
)
@@ -407,7 +409,7 @@ async def summaries(
self,
*,
user_id: typing.Optional[str] = OMIT,
- event_summaries: typing.Optional[CreateDataEventSummariesRequestEventSummaries] = OMIT,
+ event_summaries: typing.Optional[CreateDataEventSummariesRequestEventSummariesParams] = OMIT,
request_options: typing.Optional[RequestOptions] = None,
) -> None:
"""
@@ -418,7 +420,7 @@ async def summaries(
user_id : typing.Optional[str]
Your identifier for the user.
- event_summaries : typing.Optional[CreateDataEventSummariesRequestEventSummaries]
+ event_summaries : typing.Optional[CreateDataEventSummariesRequestEventSummariesParams]
A list of event summaries for the user. Each event summary should contain the event name, the time the event occurred, and the number of times the event occurred. The event name should be a past tense 'verb-noun' combination, to improve readability, for example `updated-plan`.
request_options : typing.Optional[RequestOptions]
diff --git a/src/intercom/events/raw_client.py b/src/intercom/events/raw_client.py
index ffcbea7..64356f5 100644
--- a/src/intercom/events/raw_client.py
+++ b/src/intercom/events/raw_client.py
@@ -10,10 +10,12 @@
from ..core.serialization import convert_and_respect_annotation_metadata
from ..core.unchecked_base_model import construct_type
from ..errors.unauthorized_error import UnauthorizedError
-from ..types.create_data_event_request import CreateDataEventRequest
+from ..requests.create_data_event_request import CreateDataEventRequestParams
from ..types.data_event_summary import DataEventSummary
from ..types.error import Error
-from .types.create_data_event_summaries_request_event_summaries import CreateDataEventSummariesRequestEventSummaries
+from .requests.create_data_event_summaries_request_event_summaries import (
+ CreateDataEventSummariesRequestEventSummariesParams,
+)
# this is used as the default value for optional parameters
OMIT = typing.cast(typing.Any, ...)
@@ -118,7 +120,7 @@ def list(
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
def create(
- self, *, request: CreateDataEventRequest, request_options: typing.Optional[RequestOptions] = None
+ self, *, request: CreateDataEventRequestParams, request_options: typing.Optional[RequestOptions] = None
) -> HttpResponse[None]:
"""
@@ -165,7 +167,7 @@ def create(
Parameters
----------
- request : CreateDataEventRequest
+ request : CreateDataEventRequestParams
request_options : typing.Optional[RequestOptions]
Request-specific configuration.
@@ -178,7 +180,7 @@ def create(
"events",
method="POST",
json=convert_and_respect_annotation_metadata(
- object_=request, annotation=CreateDataEventRequest, direction="write"
+ object_=request, annotation=CreateDataEventRequestParams, direction="write"
),
headers={
"content-type": "application/json",
@@ -209,7 +211,7 @@ def summaries(
self,
*,
user_id: typing.Optional[str] = OMIT,
- event_summaries: typing.Optional[CreateDataEventSummariesRequestEventSummaries] = OMIT,
+ event_summaries: typing.Optional[CreateDataEventSummariesRequestEventSummariesParams] = OMIT,
request_options: typing.Optional[RequestOptions] = None,
) -> HttpResponse[None]:
"""
@@ -220,7 +222,7 @@ def summaries(
user_id : typing.Optional[str]
Your identifier for the user.
- event_summaries : typing.Optional[CreateDataEventSummariesRequestEventSummaries]
+ event_summaries : typing.Optional[CreateDataEventSummariesRequestEventSummariesParams]
A list of event summaries for the user. Each event summary should contain the event name, the time the event occurred, and the number of times the event occurred. The event name should be a past tense 'verb-noun' combination, to improve readability, for example `updated-plan`.
request_options : typing.Optional[RequestOptions]
@@ -236,7 +238,9 @@ def summaries(
json={
"user_id": user_id,
"event_summaries": convert_and_respect_annotation_metadata(
- object_=event_summaries, annotation=CreateDataEventSummariesRequestEventSummaries, direction="write"
+ object_=event_summaries,
+ annotation=CreateDataEventSummariesRequestEventSummariesParams,
+ direction="write",
),
},
headers={
@@ -364,7 +368,7 @@ async def list(
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
async def create(
- self, *, request: CreateDataEventRequest, request_options: typing.Optional[RequestOptions] = None
+ self, *, request: CreateDataEventRequestParams, request_options: typing.Optional[RequestOptions] = None
) -> AsyncHttpResponse[None]:
"""
@@ -411,7 +415,7 @@ async def create(
Parameters
----------
- request : CreateDataEventRequest
+ request : CreateDataEventRequestParams
request_options : typing.Optional[RequestOptions]
Request-specific configuration.
@@ -424,7 +428,7 @@ async def create(
"events",
method="POST",
json=convert_and_respect_annotation_metadata(
- object_=request, annotation=CreateDataEventRequest, direction="write"
+ object_=request, annotation=CreateDataEventRequestParams, direction="write"
),
headers={
"content-type": "application/json",
@@ -455,7 +459,7 @@ async def summaries(
self,
*,
user_id: typing.Optional[str] = OMIT,
- event_summaries: typing.Optional[CreateDataEventSummariesRequestEventSummaries] = OMIT,
+ event_summaries: typing.Optional[CreateDataEventSummariesRequestEventSummariesParams] = OMIT,
request_options: typing.Optional[RequestOptions] = None,
) -> AsyncHttpResponse[None]:
"""
@@ -466,7 +470,7 @@ async def summaries(
user_id : typing.Optional[str]
Your identifier for the user.
- event_summaries : typing.Optional[CreateDataEventSummariesRequestEventSummaries]
+ event_summaries : typing.Optional[CreateDataEventSummariesRequestEventSummariesParams]
A list of event summaries for the user. Each event summary should contain the event name, the time the event occurred, and the number of times the event occurred. The event name should be a past tense 'verb-noun' combination, to improve readability, for example `updated-plan`.
request_options : typing.Optional[RequestOptions]
@@ -482,7 +486,9 @@ async def summaries(
json={
"user_id": user_id,
"event_summaries": convert_and_respect_annotation_metadata(
- object_=event_summaries, annotation=CreateDataEventSummariesRequestEventSummaries, direction="write"
+ object_=event_summaries,
+ annotation=CreateDataEventSummariesRequestEventSummariesParams,
+ direction="write",
),
},
headers={
diff --git a/src/intercom/events/requests/__init__.py b/src/intercom/events/requests/__init__.py
new file mode 100644
index 0000000..d99ae5a
--- /dev/null
+++ b/src/intercom/events/requests/__init__.py
@@ -0,0 +1,7 @@
+# This file was auto-generated by Fern from our API Definition.
+
+# isort: skip_file
+
+from .create_data_event_summaries_request_event_summaries import CreateDataEventSummariesRequestEventSummariesParams
+
+__all__ = ["CreateDataEventSummariesRequestEventSummariesParams"]
diff --git a/src/intercom/events/requests/create_data_event_summaries_request_event_summaries.py b/src/intercom/events/requests/create_data_event_summaries_request_event_summaries.py
new file mode 100644
index 0000000..c775b88
--- /dev/null
+++ b/src/intercom/events/requests/create_data_event_summaries_request_event_summaries.py
@@ -0,0 +1,29 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing_extensions
+
+
+class CreateDataEventSummariesRequestEventSummariesParams(typing_extensions.TypedDict):
+ """
+ A list of event summaries for the user. Each event summary should contain the event name, the time the event occurred, and the number of times the event occurred. The event name should be a past tense 'verb-noun' combination, to improve readability, for example `updated-plan`.
+ """
+
+ event_name: typing_extensions.NotRequired[str]
+ """
+ The name of the event that occurred. A good event name is typically a past tense 'verb-noun' combination, to improve readability, for example `updated-plan`.
+ """
+
+ count: typing_extensions.NotRequired[int]
+ """
+ The number of times the event occurred.
+ """
+
+ first: typing_extensions.NotRequired[int]
+ """
+ The first time the event was sent
+ """
+
+ last: typing_extensions.NotRequired[int]
+ """
+ The last time the event was sent
+ """
diff --git a/src/intercom/help_center/__init__.py b/src/intercom/help_center/__init__.py
index 5b02d75..4e5d5ff 100644
--- a/src/intercom/help_center/__init__.py
+++ b/src/intercom/help_center/__init__.py
@@ -3,5 +3,6 @@
# isort: skip_file
from .types import Collection, HelpCenter, HelpCenterList
+from .requests import CollectionParams, HelpCenterListParams, HelpCenterParams
-__all__ = ["Collection", "HelpCenter", "HelpCenterList"]
+__all__ = ["Collection", "CollectionParams", "HelpCenter", "HelpCenterList", "HelpCenterListParams", "HelpCenterParams"]
diff --git a/src/intercom/help_center/requests/__init__.py b/src/intercom/help_center/requests/__init__.py
new file mode 100644
index 0000000..2faddfe
--- /dev/null
+++ b/src/intercom/help_center/requests/__init__.py
@@ -0,0 +1,9 @@
+# This file was auto-generated by Fern from our API Definition.
+
+# isort: skip_file
+
+from .collection import CollectionParams
+from .help_center import HelpCenterParams
+from .help_center_list import HelpCenterListParams
+
+__all__ = ["CollectionParams", "HelpCenterListParams", "HelpCenterParams"]
diff --git a/src/intercom/help_center/requests/collection.py b/src/intercom/help_center/requests/collection.py
new file mode 100644
index 0000000..1a3ef65
--- /dev/null
+++ b/src/intercom/help_center/requests/collection.py
@@ -0,0 +1,71 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing_extensions
+from ...requests.group_translated_content import GroupTranslatedContentParams
+
+
+class CollectionParams(typing_extensions.TypedDict):
+ """
+ Collections are top level containers for Articles within the Help Center.
+ """
+
+ id: str
+ """
+ The unique identifier for the collection which is given by Intercom.
+ """
+
+ workspace_id: str
+ """
+ The id of the workspace which the collection belongs to.
+ """
+
+ name: str
+ """
+ The name of the collection. For multilingual collections, this will be the name of the default language's content.
+ """
+
+ description: typing_extensions.NotRequired[str]
+ """
+ The description of the collection. For multilingual help centers, this will be the description of the collection for the default language.
+ """
+
+ created_at: int
+ """
+ The time when the article was created (seconds). For multilingual articles, this will be the timestamp of creation of the default language's content.
+ """
+
+ updated_at: typing_extensions.NotRequired[int]
+ """
+ The time when the article was last updated (seconds). For multilingual articles, this will be the timestamp of last update of the default language's content.
+ """
+
+ url: typing_extensions.NotRequired[str]
+ """
+ The URL of the collection. For multilingual help centers, this will be the URL of the collection for the default language.
+ """
+
+ icon: typing_extensions.NotRequired[str]
+ """
+ The icon of the collection.
+ """
+
+ order: int
+ """
+ The order of the section in relation to others sections within a collection. Values go from `0` upwards. `0` is the default if there's no order.
+ """
+
+ default_locale: typing_extensions.NotRequired[str]
+ """
+ The default locale of the help center. This field is only returned for multilingual help centers.
+ """
+
+ translated_content: typing_extensions.NotRequired[GroupTranslatedContentParams]
+ parent_id: typing_extensions.NotRequired[str]
+ """
+ The id of the parent collection. If `null` then it is the first level collection.
+ """
+
+ help_center_id: typing_extensions.NotRequired[int]
+ """
+ The id of the help center the collection is in.
+ """
diff --git a/src/intercom/help_center/requests/help_center.py b/src/intercom/help_center/requests/help_center.py
new file mode 100644
index 0000000..0115707
--- /dev/null
+++ b/src/intercom/help_center/requests/help_center.py
@@ -0,0 +1,44 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing_extensions
+
+
+class HelpCenterParams(typing_extensions.TypedDict):
+ """
+ Help Centers contain collections
+ """
+
+ id: str
+ """
+ The unique identifier for the Help Center which is given by Intercom.
+ """
+
+ workspace_id: str
+ """
+ The id of the workspace which the Help Center belongs to.
+ """
+
+ created_at: int
+ """
+ The time when the Help Center was created.
+ """
+
+ updated_at: typing_extensions.NotRequired[int]
+ """
+ The time when the Help Center was last updated.
+ """
+
+ identifier: str
+ """
+ The identifier of the Help Center. This is used in the URL of the Help Center.
+ """
+
+ website_turned_on: bool
+ """
+ Whether the Help Center is turned on or not. This is controlled in your Help Center settings.
+ """
+
+ display_name: str
+ """
+ The display name of the Help Center only seen by teammates.
+ """
diff --git a/src/intercom/help_center/requests/help_center_list.py b/src/intercom/help_center/requests/help_center_list.py
new file mode 100644
index 0000000..f5ae4f0
--- /dev/null
+++ b/src/intercom/help_center/requests/help_center_list.py
@@ -0,0 +1,22 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing
+
+import typing_extensions
+from .help_center import HelpCenterParams
+
+
+class HelpCenterListParams(typing_extensions.TypedDict):
+ """
+ A list of Help Centers belonging to the App
+ """
+
+ type: typing.Literal["list"]
+ """
+ The type of the object - `list`.
+ """
+
+ data: typing.Sequence[HelpCenterParams]
+ """
+ An array of Help Center objects
+ """
diff --git a/src/intercom/help_centers/collections/client.py b/src/intercom/help_centers/collections/client.py
index f7b7c7e..42065ed 100644
--- a/src/intercom/help_centers/collections/client.py
+++ b/src/intercom/help_centers/collections/client.py
@@ -6,8 +6,8 @@
from ...core.pagination import AsyncPager, SyncPager
from ...core.request_options import RequestOptions
from ...help_center.types.collection import Collection
+from ...requests.group_translated_content import GroupTranslatedContentParams
from ...types.deleted_collection_object import DeletedCollectionObject
-from ...types.group_translated_content import GroupTranslatedContent
from .raw_client import AsyncRawCollectionsClient, RawCollectionsClient
# this is used as the default value for optional parameters
@@ -78,7 +78,7 @@ def create(
*,
name: str,
description: typing.Optional[str] = OMIT,
- translated_content: typing.Optional[GroupTranslatedContent] = OMIT,
+ translated_content: typing.Optional[GroupTranslatedContentParams] = OMIT,
parent_id: typing.Optional[str] = OMIT,
help_center_id: typing.Optional[int] = OMIT,
request_options: typing.Optional[RequestOptions] = None,
@@ -94,7 +94,7 @@ def create(
description : typing.Optional[str]
The description of the collection. For multilingual collections, this will be the description of the default language's content.
- translated_content : typing.Optional[GroupTranslatedContent]
+ translated_content : typing.Optional[GroupTranslatedContentParams]
parent_id : typing.Optional[str]
The id of the parent collection. If `null` then it will be created as the first level collection.
@@ -168,7 +168,7 @@ def update(
*,
name: typing.Optional[str] = OMIT,
description: typing.Optional[str] = OMIT,
- translated_content: typing.Optional[GroupTranslatedContent] = OMIT,
+ translated_content: typing.Optional[GroupTranslatedContentParams] = OMIT,
parent_id: typing.Optional[str] = OMIT,
request_options: typing.Optional[RequestOptions] = None,
) -> Collection:
@@ -186,7 +186,7 @@ def update(
description : typing.Optional[str]
The description of the collection. For multilingual collections, this will be the description of the default language's content.
- translated_content : typing.Optional[GroupTranslatedContent]
+ translated_content : typing.Optional[GroupTranslatedContentParams]
parent_id : typing.Optional[str]
The id of the parent collection. If `null` then it will be updated as the first level collection.
@@ -328,7 +328,7 @@ async def create(
*,
name: str,
description: typing.Optional[str] = OMIT,
- translated_content: typing.Optional[GroupTranslatedContent] = OMIT,
+ translated_content: typing.Optional[GroupTranslatedContentParams] = OMIT,
parent_id: typing.Optional[str] = OMIT,
help_center_id: typing.Optional[int] = OMIT,
request_options: typing.Optional[RequestOptions] = None,
@@ -344,7 +344,7 @@ async def create(
description : typing.Optional[str]
The description of the collection. For multilingual collections, this will be the description of the default language's content.
- translated_content : typing.Optional[GroupTranslatedContent]
+ translated_content : typing.Optional[GroupTranslatedContentParams]
parent_id : typing.Optional[str]
The id of the parent collection. If `null` then it will be created as the first level collection.
@@ -434,7 +434,7 @@ async def update(
*,
name: typing.Optional[str] = OMIT,
description: typing.Optional[str] = OMIT,
- translated_content: typing.Optional[GroupTranslatedContent] = OMIT,
+ translated_content: typing.Optional[GroupTranslatedContentParams] = OMIT,
parent_id: typing.Optional[str] = OMIT,
request_options: typing.Optional[RequestOptions] = None,
) -> Collection:
@@ -452,7 +452,7 @@ async def update(
description : typing.Optional[str]
The description of the collection. For multilingual collections, this will be the description of the default language's content.
- translated_content : typing.Optional[GroupTranslatedContent]
+ translated_content : typing.Optional[GroupTranslatedContentParams]
parent_id : typing.Optional[str]
The id of the parent collection. If `null` then it will be updated as the first level collection.
diff --git a/src/intercom/help_centers/collections/raw_client.py b/src/intercom/help_centers/collections/raw_client.py
index 98fed1c..ff0723c 100644
--- a/src/intercom/help_centers/collections/raw_client.py
+++ b/src/intercom/help_centers/collections/raw_client.py
@@ -15,10 +15,10 @@
from ...errors.not_found_error import NotFoundError
from ...errors.unauthorized_error import UnauthorizedError
from ...help_center.types.collection import Collection
+from ...requests.group_translated_content import GroupTranslatedContentParams
from ...types.collection_list import CollectionList
from ...types.deleted_collection_object import DeletedCollectionObject
from ...types.error import Error
-from ...types.group_translated_content import GroupTranslatedContent
# this is used as the default value for optional parameters
OMIT = typing.cast(typing.Any, ...)
@@ -107,7 +107,7 @@ def create(
*,
name: str,
description: typing.Optional[str] = OMIT,
- translated_content: typing.Optional[GroupTranslatedContent] = OMIT,
+ translated_content: typing.Optional[GroupTranslatedContentParams] = OMIT,
parent_id: typing.Optional[str] = OMIT,
help_center_id: typing.Optional[int] = OMIT,
request_options: typing.Optional[RequestOptions] = None,
@@ -123,7 +123,7 @@ def create(
description : typing.Optional[str]
The description of the collection. For multilingual collections, this will be the description of the default language's content.
- translated_content : typing.Optional[GroupTranslatedContent]
+ translated_content : typing.Optional[GroupTranslatedContentParams]
parent_id : typing.Optional[str]
The id of the parent collection. If `null` then it will be created as the first level collection.
@@ -146,7 +146,7 @@ def create(
"name": name,
"description": description,
"translated_content": convert_and_respect_annotation_metadata(
- object_=translated_content, annotation=GroupTranslatedContent, direction="write"
+ object_=translated_content, annotation=GroupTranslatedContentParams, direction="write"
),
"parent_id": parent_id,
"help_center_id": help_center_id,
@@ -261,7 +261,7 @@ def update(
*,
name: typing.Optional[str] = OMIT,
description: typing.Optional[str] = OMIT,
- translated_content: typing.Optional[GroupTranslatedContent] = OMIT,
+ translated_content: typing.Optional[GroupTranslatedContentParams] = OMIT,
parent_id: typing.Optional[str] = OMIT,
request_options: typing.Optional[RequestOptions] = None,
) -> HttpResponse[Collection]:
@@ -279,7 +279,7 @@ def update(
description : typing.Optional[str]
The description of the collection. For multilingual collections, this will be the description of the default language's content.
- translated_content : typing.Optional[GroupTranslatedContent]
+ translated_content : typing.Optional[GroupTranslatedContentParams]
parent_id : typing.Optional[str]
The id of the parent collection. If `null` then it will be updated as the first level collection.
@@ -299,7 +299,7 @@ def update(
"name": name,
"description": description,
"translated_content": convert_and_respect_annotation_metadata(
- object_=translated_content, annotation=GroupTranslatedContent, direction="write"
+ object_=translated_content, annotation=GroupTranslatedContentParams, direction="write"
),
"parent_id": parent_id,
},
@@ -494,7 +494,7 @@ async def create(
*,
name: str,
description: typing.Optional[str] = OMIT,
- translated_content: typing.Optional[GroupTranslatedContent] = OMIT,
+ translated_content: typing.Optional[GroupTranslatedContentParams] = OMIT,
parent_id: typing.Optional[str] = OMIT,
help_center_id: typing.Optional[int] = OMIT,
request_options: typing.Optional[RequestOptions] = None,
@@ -510,7 +510,7 @@ async def create(
description : typing.Optional[str]
The description of the collection. For multilingual collections, this will be the description of the default language's content.
- translated_content : typing.Optional[GroupTranslatedContent]
+ translated_content : typing.Optional[GroupTranslatedContentParams]
parent_id : typing.Optional[str]
The id of the parent collection. If `null` then it will be created as the first level collection.
@@ -533,7 +533,7 @@ async def create(
"name": name,
"description": description,
"translated_content": convert_and_respect_annotation_metadata(
- object_=translated_content, annotation=GroupTranslatedContent, direction="write"
+ object_=translated_content, annotation=GroupTranslatedContentParams, direction="write"
),
"parent_id": parent_id,
"help_center_id": help_center_id,
@@ -648,7 +648,7 @@ async def update(
*,
name: typing.Optional[str] = OMIT,
description: typing.Optional[str] = OMIT,
- translated_content: typing.Optional[GroupTranslatedContent] = OMIT,
+ translated_content: typing.Optional[GroupTranslatedContentParams] = OMIT,
parent_id: typing.Optional[str] = OMIT,
request_options: typing.Optional[RequestOptions] = None,
) -> AsyncHttpResponse[Collection]:
@@ -666,7 +666,7 @@ async def update(
description : typing.Optional[str]
The description of the collection. For multilingual collections, this will be the description of the default language's content.
- translated_content : typing.Optional[GroupTranslatedContent]
+ translated_content : typing.Optional[GroupTranslatedContentParams]
parent_id : typing.Optional[str]
The id of the parent collection. If `null` then it will be updated as the first level collection.
@@ -686,7 +686,7 @@ async def update(
"name": name,
"description": description,
"translated_content": convert_and_respect_annotation_metadata(
- object_=translated_content, annotation=GroupTranslatedContent, direction="write"
+ object_=translated_content, annotation=GroupTranslatedContentParams, direction="write"
),
"parent_id": parent_id,
},
diff --git a/src/intercom/messages/__init__.py b/src/intercom/messages/__init__.py
index 08e9449..8be2551 100644
--- a/src/intercom/messages/__init__.py
+++ b/src/intercom/messages/__init__.py
@@ -3,5 +3,6 @@
# isort: skip_file
from .types import Message, MessageMessageType
+from .requests import MessageParams
-__all__ = ["Message", "MessageMessageType"]
+__all__ = ["Message", "MessageMessageType", "MessageParams"]
diff --git a/src/intercom/messages/client.py b/src/intercom/messages/client.py
index c57e93c..c408705 100644
--- a/src/intercom/messages/client.py
+++ b/src/intercom/messages/client.py
@@ -4,7 +4,7 @@
from ..core.client_wrapper import AsyncClientWrapper, SyncClientWrapper
from ..core.request_options import RequestOptions
-from ..types.create_message_request import CreateMessageRequest
+from ..requests.create_message_request import CreateMessageRequestParams
from .raw_client import AsyncRawMessagesClient, RawMessagesClient
from .types.message import Message
@@ -28,7 +28,7 @@ def with_raw_response(self) -> RawMessagesClient:
return self._raw_client
def create(
- self, *, request: CreateMessageRequest, request_options: typing.Optional[RequestOptions] = None
+ self, *, request: CreateMessageRequestParams, request_options: typing.Optional[RequestOptions] = None
) -> Message:
"""
You can create a message that has been initiated by an admin. The conversation can be either an in-app message or an email.
@@ -45,7 +45,7 @@ def create(
Parameters
----------
- request : CreateMessageRequest
+ request : CreateMessageRequestParams
request_options : typing.Optional[RequestOptions]
Request-specific configuration.
@@ -57,29 +57,20 @@ def create(
Examples
--------
- from intercom import (
- CreateMessageRequest_Email,
- CreateMessageRequestFrom,
- CreateMessageRequestTo,
- Intercom,
- )
+ from intercom import Intercom
client = Intercom(
token="YOUR_TOKEN",
)
client.messages.create(
- request=CreateMessageRequest_Email(
- subject="Thanks for everything",
- body="Hello there",
- template="plain",
- from_=CreateMessageRequestFrom(
- id=394051,
- ),
- to=CreateMessageRequestTo(
- type="user",
- id="536e564f316c83104c000020",
- ),
- ),
+ request={
+ "subject": "Thanks for everything",
+ "body": "Hello there",
+ "template": "plain",
+ "from_": {"type": "admin", "id": 394051},
+ "to": {"type": "user", "id": "536e564f316c83104c000020"},
+ "message_type": "email",
+ },
)
"""
_response = self._raw_client.create(request=request, request_options=request_options)
@@ -102,7 +93,7 @@ def with_raw_response(self) -> AsyncRawMessagesClient:
return self._raw_client
async def create(
- self, *, request: CreateMessageRequest, request_options: typing.Optional[RequestOptions] = None
+ self, *, request: CreateMessageRequestParams, request_options: typing.Optional[RequestOptions] = None
) -> Message:
"""
You can create a message that has been initiated by an admin. The conversation can be either an in-app message or an email.
@@ -119,7 +110,7 @@ async def create(
Parameters
----------
- request : CreateMessageRequest
+ request : CreateMessageRequestParams
request_options : typing.Optional[RequestOptions]
Request-specific configuration.
@@ -133,12 +124,7 @@ async def create(
--------
import asyncio
- from intercom import (
- AsyncIntercom,
- CreateMessageRequest_Email,
- CreateMessageRequestFrom,
- CreateMessageRequestTo,
- )
+ from intercom import AsyncIntercom
client = AsyncIntercom(
token="YOUR_TOKEN",
@@ -147,18 +133,14 @@ async def create(
async def main() -> None:
await client.messages.create(
- request=CreateMessageRequest_Email(
- subject="Thanks for everything",
- body="Hello there",
- template="plain",
- from_=CreateMessageRequestFrom(
- id=394051,
- ),
- to=CreateMessageRequestTo(
- type="user",
- id="536e564f316c83104c000020",
- ),
- ),
+ request={
+ "subject": "Thanks for everything",
+ "body": "Hello there",
+ "template": "plain",
+ "from_": {"type": "admin", "id": 394051},
+ "to": {"type": "user", "id": "536e564f316c83104c000020"},
+ "message_type": "email",
+ },
)
diff --git a/src/intercom/messages/raw_client.py b/src/intercom/messages/raw_client.py
index e8e1498..9d04b8b 100644
--- a/src/intercom/messages/raw_client.py
+++ b/src/intercom/messages/raw_client.py
@@ -13,7 +13,7 @@
from ..errors.forbidden_error import ForbiddenError
from ..errors.unauthorized_error import UnauthorizedError
from ..errors.unprocessable_entity_error import UnprocessableEntityError
-from ..types.create_message_request import CreateMessageRequest
+from ..requests.create_message_request import CreateMessageRequestParams
from ..types.error import Error
from .types.message import Message
@@ -26,7 +26,7 @@ def __init__(self, *, client_wrapper: SyncClientWrapper):
self._client_wrapper = client_wrapper
def create(
- self, *, request: CreateMessageRequest, request_options: typing.Optional[RequestOptions] = None
+ self, *, request: CreateMessageRequestParams, request_options: typing.Optional[RequestOptions] = None
) -> HttpResponse[Message]:
"""
You can create a message that has been initiated by an admin. The conversation can be either an in-app message or an email.
@@ -43,7 +43,7 @@ def create(
Parameters
----------
- request : CreateMessageRequest
+ request : CreateMessageRequestParams
request_options : typing.Optional[RequestOptions]
Request-specific configuration.
@@ -57,7 +57,7 @@ def create(
"messages",
method="POST",
json=convert_and_respect_annotation_metadata(
- object_=request, annotation=CreateMessageRequest, direction="write"
+ object_=request, annotation=CreateMessageRequestParams, direction="write"
),
headers={
"content-type": "application/json",
@@ -130,7 +130,7 @@ def __init__(self, *, client_wrapper: AsyncClientWrapper):
self._client_wrapper = client_wrapper
async def create(
- self, *, request: CreateMessageRequest, request_options: typing.Optional[RequestOptions] = None
+ self, *, request: CreateMessageRequestParams, request_options: typing.Optional[RequestOptions] = None
) -> AsyncHttpResponse[Message]:
"""
You can create a message that has been initiated by an admin. The conversation can be either an in-app message or an email.
@@ -147,7 +147,7 @@ async def create(
Parameters
----------
- request : CreateMessageRequest
+ request : CreateMessageRequestParams
request_options : typing.Optional[RequestOptions]
Request-specific configuration.
@@ -161,7 +161,7 @@ async def create(
"messages",
method="POST",
json=convert_and_respect_annotation_metadata(
- object_=request, annotation=CreateMessageRequest, direction="write"
+ object_=request, annotation=CreateMessageRequestParams, direction="write"
),
headers={
"content-type": "application/json",
diff --git a/src/intercom/messages/requests/__init__.py b/src/intercom/messages/requests/__init__.py
new file mode 100644
index 0000000..b95d6af
--- /dev/null
+++ b/src/intercom/messages/requests/__init__.py
@@ -0,0 +1,7 @@
+# This file was auto-generated by Fern from our API Definition.
+
+# isort: skip_file
+
+from .message import MessageParams
+
+__all__ = ["MessageParams"]
diff --git a/src/intercom/messages/requests/message.py b/src/intercom/messages/requests/message.py
new file mode 100644
index 0000000..1dcfa34
--- /dev/null
+++ b/src/intercom/messages/requests/message.py
@@ -0,0 +1,45 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing_extensions
+from ..types.message_message_type import MessageMessageType
+
+
+class MessageParams(typing_extensions.TypedDict):
+ """
+ Message are how you reach out to contacts in Intercom. They are created when an admin sends an outbound message to a contact.
+ """
+
+ type: str
+ """
+ The type of the message
+ """
+
+ id: str
+ """
+ The id representing the message.
+ """
+
+ created_at: int
+ """
+ The time the conversation was created.
+ """
+
+ subject: str
+ """
+ The subject of the message. Only present if message_type: email.
+ """
+
+ body: str
+ """
+ The message body, which may contain HTML.
+ """
+
+ message_type: MessageMessageType
+ """
+ The type of message that was sent. Can be email, inapp, facebook or twitter.
+ """
+
+ conversation_id: str
+ """
+ The associated conversation_id
+ """
diff --git a/src/intercom/news/__init__.py b/src/intercom/news/__init__.py
index ed4b5b3..660f3ec 100644
--- a/src/intercom/news/__init__.py
+++ b/src/intercom/news/__init__.py
@@ -4,5 +4,16 @@
from .types import NewsItem, NewsItemState, Newsfeed, NewsfeedAssignment
from . import feeds, items
+from .requests import NewsItemParams, NewsfeedAssignmentParams, NewsfeedParams
-__all__ = ["NewsItem", "NewsItemState", "Newsfeed", "NewsfeedAssignment", "feeds", "items"]
+__all__ = [
+ "NewsItem",
+ "NewsItemParams",
+ "NewsItemState",
+ "Newsfeed",
+ "NewsfeedAssignment",
+ "NewsfeedAssignmentParams",
+ "NewsfeedParams",
+ "feeds",
+ "items",
+]
diff --git a/src/intercom/news/items/client.py b/src/intercom/news/items/client.py
index 1252a3b..05e694f 100644
--- a/src/intercom/news/items/client.py
+++ b/src/intercom/news/items/client.py
@@ -7,8 +7,8 @@
from ...types.deleted_object import DeletedObject
from ...types.news_item_request_state import NewsItemRequestState
from ...types.paginated_news_item_response import PaginatedNewsItemResponse
+from ..requests.newsfeed_assignment import NewsfeedAssignmentParams
from ..types.news_item import NewsItem
-from ..types.newsfeed_assignment import NewsfeedAssignment
from .raw_client import AsyncRawItemsClient, RawItemsClient
# this is used as the default value for optional parameters
@@ -66,7 +66,7 @@ def create(
deliver_silently: typing.Optional[bool] = OMIT,
labels: typing.Optional[typing.Sequence[str]] = OMIT,
reactions: typing.Optional[typing.Sequence[typing.Optional[str]]] = OMIT,
- newsfeed_assignments: typing.Optional[typing.Sequence[NewsfeedAssignment]] = OMIT,
+ newsfeed_assignments: typing.Optional[typing.Sequence[NewsfeedAssignmentParams]] = OMIT,
request_options: typing.Optional[RequestOptions] = None,
) -> NewsItem:
"""
@@ -95,7 +95,7 @@ def create(
reactions : typing.Optional[typing.Sequence[typing.Optional[str]]]
Ordered list of emoji reactions to the news item. When empty, reactions are disabled.
- newsfeed_assignments : typing.Optional[typing.Sequence[NewsfeedAssignment]]
+ newsfeed_assignments : typing.Optional[typing.Sequence[NewsfeedAssignmentParams]]
A list of newsfeed_assignments to assign to the specified newsfeed.
request_options : typing.Optional[RequestOptions]
@@ -109,7 +109,6 @@ def create(
Examples
--------
from intercom import Intercom
- from intercom.news import NewsfeedAssignment
client = Intercom(
token="YOUR_TOKEN",
@@ -122,12 +121,7 @@ def create(
deliver_silently=True,
labels=["Product", "Update", "New"],
reactions=["😆", "😅"],
- newsfeed_assignments=[
- NewsfeedAssignment(
- newsfeed_id=53,
- published_at=1664638214,
- )
- ],
+ newsfeed_assignments=[{"newsfeed_id": 53, "published_at": 1664638214}],
)
"""
_response = self._raw_client.create(
@@ -185,7 +179,7 @@ def update(
deliver_silently: typing.Optional[bool] = OMIT,
labels: typing.Optional[typing.Sequence[str]] = OMIT,
reactions: typing.Optional[typing.Sequence[typing.Optional[str]]] = OMIT,
- newsfeed_assignments: typing.Optional[typing.Sequence[NewsfeedAssignment]] = OMIT,
+ newsfeed_assignments: typing.Optional[typing.Sequence[NewsfeedAssignmentParams]] = OMIT,
request_options: typing.Optional[RequestOptions] = None,
) -> NewsItem:
"""
@@ -215,7 +209,7 @@ def update(
reactions : typing.Optional[typing.Sequence[typing.Optional[str]]]
Ordered list of emoji reactions to the news item. When empty, reactions are disabled.
- newsfeed_assignments : typing.Optional[typing.Sequence[NewsfeedAssignment]]
+ newsfeed_assignments : typing.Optional[typing.Sequence[NewsfeedAssignmentParams]]
A list of newsfeed_assignments to assign to the specified newsfeed.
request_options : typing.Optional[RequestOptions]
@@ -346,7 +340,7 @@ async def create(
deliver_silently: typing.Optional[bool] = OMIT,
labels: typing.Optional[typing.Sequence[str]] = OMIT,
reactions: typing.Optional[typing.Sequence[typing.Optional[str]]] = OMIT,
- newsfeed_assignments: typing.Optional[typing.Sequence[NewsfeedAssignment]] = OMIT,
+ newsfeed_assignments: typing.Optional[typing.Sequence[NewsfeedAssignmentParams]] = OMIT,
request_options: typing.Optional[RequestOptions] = None,
) -> NewsItem:
"""
@@ -375,7 +369,7 @@ async def create(
reactions : typing.Optional[typing.Sequence[typing.Optional[str]]]
Ordered list of emoji reactions to the news item. When empty, reactions are disabled.
- newsfeed_assignments : typing.Optional[typing.Sequence[NewsfeedAssignment]]
+ newsfeed_assignments : typing.Optional[typing.Sequence[NewsfeedAssignmentParams]]
A list of newsfeed_assignments to assign to the specified newsfeed.
request_options : typing.Optional[RequestOptions]
@@ -391,7 +385,6 @@ async def create(
import asyncio
from intercom import AsyncIntercom
- from intercom.news import NewsfeedAssignment
client = AsyncIntercom(
token="YOUR_TOKEN",
@@ -407,12 +400,7 @@ async def main() -> None:
deliver_silently=True,
labels=["Product", "Update", "New"],
reactions=["😆", "😅"],
- newsfeed_assignments=[
- NewsfeedAssignment(
- newsfeed_id=53,
- published_at=1664638214,
- )
- ],
+ newsfeed_assignments=[{"newsfeed_id": 53, "published_at": 1664638214}],
)
@@ -481,7 +469,7 @@ async def update(
deliver_silently: typing.Optional[bool] = OMIT,
labels: typing.Optional[typing.Sequence[str]] = OMIT,
reactions: typing.Optional[typing.Sequence[typing.Optional[str]]] = OMIT,
- newsfeed_assignments: typing.Optional[typing.Sequence[NewsfeedAssignment]] = OMIT,
+ newsfeed_assignments: typing.Optional[typing.Sequence[NewsfeedAssignmentParams]] = OMIT,
request_options: typing.Optional[RequestOptions] = None,
) -> NewsItem:
"""
@@ -511,7 +499,7 @@ async def update(
reactions : typing.Optional[typing.Sequence[typing.Optional[str]]]
Ordered list of emoji reactions to the news item. When empty, reactions are disabled.
- newsfeed_assignments : typing.Optional[typing.Sequence[NewsfeedAssignment]]
+ newsfeed_assignments : typing.Optional[typing.Sequence[NewsfeedAssignmentParams]]
A list of newsfeed_assignments to assign to the specified newsfeed.
request_options : typing.Optional[RequestOptions]
diff --git a/src/intercom/news/items/raw_client.py b/src/intercom/news/items/raw_client.py
index 229758a..e4660be 100644
--- a/src/intercom/news/items/raw_client.py
+++ b/src/intercom/news/items/raw_client.py
@@ -16,8 +16,8 @@
from ...types.error import Error
from ...types.news_item_request_state import NewsItemRequestState
from ...types.paginated_news_item_response import PaginatedNewsItemResponse
+from ..requests.newsfeed_assignment import NewsfeedAssignmentParams
from ..types.news_item import NewsItem
-from ..types.newsfeed_assignment import NewsfeedAssignment
# this is used as the default value for optional parameters
OMIT = typing.cast(typing.Any, ...)
@@ -84,7 +84,7 @@ def create(
deliver_silently: typing.Optional[bool] = OMIT,
labels: typing.Optional[typing.Sequence[str]] = OMIT,
reactions: typing.Optional[typing.Sequence[typing.Optional[str]]] = OMIT,
- newsfeed_assignments: typing.Optional[typing.Sequence[NewsfeedAssignment]] = OMIT,
+ newsfeed_assignments: typing.Optional[typing.Sequence[NewsfeedAssignmentParams]] = OMIT,
request_options: typing.Optional[RequestOptions] = None,
) -> HttpResponse[NewsItem]:
"""
@@ -113,7 +113,7 @@ def create(
reactions : typing.Optional[typing.Sequence[typing.Optional[str]]]
Ordered list of emoji reactions to the news item. When empty, reactions are disabled.
- newsfeed_assignments : typing.Optional[typing.Sequence[NewsfeedAssignment]]
+ newsfeed_assignments : typing.Optional[typing.Sequence[NewsfeedAssignmentParams]]
A list of newsfeed_assignments to assign to the specified newsfeed.
request_options : typing.Optional[RequestOptions]
@@ -136,7 +136,9 @@ def create(
"labels": labels,
"reactions": reactions,
"newsfeed_assignments": convert_and_respect_annotation_metadata(
- object_=newsfeed_assignments, annotation=typing.Sequence[NewsfeedAssignment], direction="write"
+ object_=newsfeed_assignments,
+ annotation=typing.Sequence[NewsfeedAssignmentParams],
+ direction="write",
),
},
headers={
@@ -243,7 +245,7 @@ def update(
deliver_silently: typing.Optional[bool] = OMIT,
labels: typing.Optional[typing.Sequence[str]] = OMIT,
reactions: typing.Optional[typing.Sequence[typing.Optional[str]]] = OMIT,
- newsfeed_assignments: typing.Optional[typing.Sequence[NewsfeedAssignment]] = OMIT,
+ newsfeed_assignments: typing.Optional[typing.Sequence[NewsfeedAssignmentParams]] = OMIT,
request_options: typing.Optional[RequestOptions] = None,
) -> HttpResponse[NewsItem]:
"""
@@ -273,7 +275,7 @@ def update(
reactions : typing.Optional[typing.Sequence[typing.Optional[str]]]
Ordered list of emoji reactions to the news item. When empty, reactions are disabled.
- newsfeed_assignments : typing.Optional[typing.Sequence[NewsfeedAssignment]]
+ newsfeed_assignments : typing.Optional[typing.Sequence[NewsfeedAssignmentParams]]
A list of newsfeed_assignments to assign to the specified newsfeed.
request_options : typing.Optional[RequestOptions]
@@ -296,7 +298,9 @@ def update(
"labels": labels,
"reactions": reactions,
"newsfeed_assignments": convert_and_respect_annotation_metadata(
- object_=newsfeed_assignments, annotation=typing.Sequence[NewsfeedAssignment], direction="write"
+ object_=newsfeed_assignments,
+ annotation=typing.Sequence[NewsfeedAssignmentParams],
+ direction="write",
),
},
headers={
@@ -465,7 +469,7 @@ async def create(
deliver_silently: typing.Optional[bool] = OMIT,
labels: typing.Optional[typing.Sequence[str]] = OMIT,
reactions: typing.Optional[typing.Sequence[typing.Optional[str]]] = OMIT,
- newsfeed_assignments: typing.Optional[typing.Sequence[NewsfeedAssignment]] = OMIT,
+ newsfeed_assignments: typing.Optional[typing.Sequence[NewsfeedAssignmentParams]] = OMIT,
request_options: typing.Optional[RequestOptions] = None,
) -> AsyncHttpResponse[NewsItem]:
"""
@@ -494,7 +498,7 @@ async def create(
reactions : typing.Optional[typing.Sequence[typing.Optional[str]]]
Ordered list of emoji reactions to the news item. When empty, reactions are disabled.
- newsfeed_assignments : typing.Optional[typing.Sequence[NewsfeedAssignment]]
+ newsfeed_assignments : typing.Optional[typing.Sequence[NewsfeedAssignmentParams]]
A list of newsfeed_assignments to assign to the specified newsfeed.
request_options : typing.Optional[RequestOptions]
@@ -517,7 +521,9 @@ async def create(
"labels": labels,
"reactions": reactions,
"newsfeed_assignments": convert_and_respect_annotation_metadata(
- object_=newsfeed_assignments, annotation=typing.Sequence[NewsfeedAssignment], direction="write"
+ object_=newsfeed_assignments,
+ annotation=typing.Sequence[NewsfeedAssignmentParams],
+ direction="write",
),
},
headers={
@@ -624,7 +630,7 @@ async def update(
deliver_silently: typing.Optional[bool] = OMIT,
labels: typing.Optional[typing.Sequence[str]] = OMIT,
reactions: typing.Optional[typing.Sequence[typing.Optional[str]]] = OMIT,
- newsfeed_assignments: typing.Optional[typing.Sequence[NewsfeedAssignment]] = OMIT,
+ newsfeed_assignments: typing.Optional[typing.Sequence[NewsfeedAssignmentParams]] = OMIT,
request_options: typing.Optional[RequestOptions] = None,
) -> AsyncHttpResponse[NewsItem]:
"""
@@ -654,7 +660,7 @@ async def update(
reactions : typing.Optional[typing.Sequence[typing.Optional[str]]]
Ordered list of emoji reactions to the news item. When empty, reactions are disabled.
- newsfeed_assignments : typing.Optional[typing.Sequence[NewsfeedAssignment]]
+ newsfeed_assignments : typing.Optional[typing.Sequence[NewsfeedAssignmentParams]]
A list of newsfeed_assignments to assign to the specified newsfeed.
request_options : typing.Optional[RequestOptions]
@@ -677,7 +683,9 @@ async def update(
"labels": labels,
"reactions": reactions,
"newsfeed_assignments": convert_and_respect_annotation_metadata(
- object_=newsfeed_assignments, annotation=typing.Sequence[NewsfeedAssignment], direction="write"
+ object_=newsfeed_assignments,
+ annotation=typing.Sequence[NewsfeedAssignmentParams],
+ direction="write",
),
},
headers={
diff --git a/src/intercom/news/requests/__init__.py b/src/intercom/news/requests/__init__.py
new file mode 100644
index 0000000..0b4965d
--- /dev/null
+++ b/src/intercom/news/requests/__init__.py
@@ -0,0 +1,9 @@
+# This file was auto-generated by Fern from our API Definition.
+
+# isort: skip_file
+
+from .news_item import NewsItemParams
+from .newsfeed import NewsfeedParams
+from .newsfeed_assignment import NewsfeedAssignmentParams
+
+__all__ = ["NewsItemParams", "NewsfeedAssignmentParams", "NewsfeedParams"]
diff --git a/src/intercom/news/requests/news_item.py b/src/intercom/news/requests/news_item.py
new file mode 100644
index 0000000..20975c3
--- /dev/null
+++ b/src/intercom/news/requests/news_item.py
@@ -0,0 +1,83 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing
+
+import typing_extensions
+from ..types.news_item_state import NewsItemState
+from .newsfeed_assignment import NewsfeedAssignmentParams
+
+
+class NewsItemParams(typing_extensions.TypedDict):
+ """
+ A News Item is a content type in Intercom enabling you to announce product updates, company news, promotions, events and more with your customers.
+ """
+
+ type: typing.Literal["news-item"]
+ """
+ The type of object.
+ """
+
+ id: str
+ """
+ The unique identifier for the news item which is given by Intercom.
+ """
+
+ workspace_id: str
+ """
+ The id of the workspace which the news item belongs to.
+ """
+
+ title: str
+ """
+ The title of the news item.
+ """
+
+ body: str
+ """
+ The news item body, which may contain HTML.
+ """
+
+ sender_id: int
+ """
+ The id of the sender of the news item. Must be a teammate on the workspace.
+ """
+
+ state: NewsItemState
+ """
+ News items will not be visible to your users in the assigned newsfeeds until they are set live.
+ """
+
+ newsfeed_assignments: typing_extensions.NotRequired[typing.Sequence[NewsfeedAssignmentParams]]
+ """
+ A list of newsfeed_assignments to assign to the specified newsfeed.
+ """
+
+ labels: typing_extensions.NotRequired[typing.Sequence[typing.Optional[str]]]
+ """
+ Label names displayed to users to categorize the news item.
+ """
+
+ cover_image_url: typing_extensions.NotRequired[str]
+ """
+ URL of the image used as cover. Must have .jpg or .png extension.
+ """
+
+ reactions: typing_extensions.NotRequired[typing.Sequence[typing.Optional[str]]]
+ """
+ Ordered list of emoji reactions to the news item. When empty, reactions are disabled.
+ """
+
+ deliver_silently: typing_extensions.NotRequired[bool]
+ """
+ When set to true, the news item will appear in the messenger newsfeed without showing a notification badge.
+ """
+
+ created_at: int
+ """
+ Timestamp for when the news item was created.
+ """
+
+ updated_at: typing_extensions.NotRequired[int]
+ """
+ Timestamp for when the news item was last updated.
+ """
diff --git a/src/intercom/news/requests/newsfeed.py b/src/intercom/news/requests/newsfeed.py
new file mode 100644
index 0000000..fbb9a4e
--- /dev/null
+++ b/src/intercom/news/requests/newsfeed.py
@@ -0,0 +1,38 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing
+
+import typing_extensions
+
+
+class NewsfeedParams(typing_extensions.TypedDict):
+ """
+ A newsfeed is a collection of news items, targeted to a specific audience.
+
+ Newsfeeds currently cannot be edited through the API, please refer to [this article](https://www.intercom.com/help/en/articles/6362267-getting-started-with-news) to set up your newsfeeds in Intercom.
+ """
+
+ id: str
+ """
+ The unique identifier for the newsfeed which is given by Intercom.
+ """
+
+ type: typing.Literal["newsfeed"]
+ """
+ The type of object.
+ """
+
+ name: str
+ """
+ The name of the newsfeed. This name will never be visible to your users.
+ """
+
+ created_at: int
+ """
+ Timestamp for when the newsfeed was created.
+ """
+
+ updated_at: typing_extensions.NotRequired[int]
+ """
+ Timestamp for when the newsfeed was last updated.
+ """
diff --git a/src/intercom/news/requests/newsfeed_assignment.py b/src/intercom/news/requests/newsfeed_assignment.py
new file mode 100644
index 0000000..7fb2f2f
--- /dev/null
+++ b/src/intercom/news/requests/newsfeed_assignment.py
@@ -0,0 +1,19 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing_extensions
+
+
+class NewsfeedAssignmentParams(typing_extensions.TypedDict):
+ """
+ Assigns a news item to a newsfeed.
+ """
+
+ newsfeed_id: int
+ """
+ The unique identifier for the newsfeed which is given by Intercom. Publish dates cannot be in the future, to schedule news items use the dedicated feature in app (see this article).
+ """
+
+ published_at: int
+ """
+ Publish date of the news item on the newsfeed, use this field if you want to set a publish date in the past (e.g. when importing existing news items). On write, this field will be ignored if the news item state is "draft".
+ """
diff --git a/src/intercom/notes/__init__.py b/src/intercom/notes/__init__.py
index f4f2a2b..a4f5fea 100644
--- a/src/intercom/notes/__init__.py
+++ b/src/intercom/notes/__init__.py
@@ -3,5 +3,6 @@
# isort: skip_file
from .types import Note, NoteContact
+from .requests import NoteContactParams, NoteParams
-__all__ = ["Note", "NoteContact"]
+__all__ = ["Note", "NoteContact", "NoteContactParams", "NoteParams"]
diff --git a/src/intercom/notes/requests/__init__.py b/src/intercom/notes/requests/__init__.py
new file mode 100644
index 0000000..c54d718
--- /dev/null
+++ b/src/intercom/notes/requests/__init__.py
@@ -0,0 +1,8 @@
+# This file was auto-generated by Fern from our API Definition.
+
+# isort: skip_file
+
+from .note import NoteParams
+from .note_contact import NoteContactParams
+
+__all__ = ["NoteContactParams", "NoteParams"]
diff --git a/src/intercom/notes/requests/note.py b/src/intercom/notes/requests/note.py
new file mode 100644
index 0000000..c4bdeda
--- /dev/null
+++ b/src/intercom/notes/requests/note.py
@@ -0,0 +1,43 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing
+
+import typing_extensions
+from ...admins.requests.admin import AdminParams
+from .note_contact import NoteContactParams
+
+
+class NoteParams(typing_extensions.TypedDict):
+ """
+ Notes allow you to annotate and comment on your contacts.
+ """
+
+ type: typing.Literal["note"]
+ """
+ String representing the object's type. Always has the value `note`.
+ """
+
+ id: str
+ """
+ The id of the note.
+ """
+
+ created_at: int
+ """
+ The time the note was created.
+ """
+
+ contact: typing_extensions.NotRequired[NoteContactParams]
+ """
+ Represents the contact that the note was created about.
+ """
+
+ author: AdminParams
+ """
+ Optional. Represents the Admin that created the note.
+ """
+
+ body: str
+ """
+ The body text of the note.
+ """
diff --git a/src/intercom/notes/requests/note_contact.py b/src/intercom/notes/requests/note_contact.py
new file mode 100644
index 0000000..4aab277
--- /dev/null
+++ b/src/intercom/notes/requests/note_contact.py
@@ -0,0 +1,21 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing
+
+import typing_extensions
+
+
+class NoteContactParams(typing_extensions.TypedDict):
+ """
+ Represents the contact that the note was created about.
+ """
+
+ type: typing_extensions.NotRequired[typing.Literal["contact"]]
+ """
+ String representing the object's type. Always has the value `contact`.
+ """
+
+ id: typing_extensions.NotRequired[str]
+ """
+ The id of the contact.
+ """
diff --git a/src/intercom/requests/__init__.py b/src/intercom/requests/__init__.py
new file mode 100644
index 0000000..4dd0ee4
--- /dev/null
+++ b/src/intercom/requests/__init__.py
@@ -0,0 +1,453 @@
+# This file was auto-generated by Fern from our API Definition.
+
+# isort: skip_file
+
+from .action_component import (
+ ActionComponentParams,
+ ActionComponent_SheetParams,
+ ActionComponent_SubmitParams,
+ ActionComponent_UrlParams,
+)
+from .activity_log import ActivityLogParams
+from .activity_log_list import ActivityLogListParams
+from .activity_log_metadata import ActivityLogMetadataParams
+from .activity_log_performed_by import ActivityLogPerformedByParams
+from .addressable_list import AddressableListParams
+from .admin_list import AdminListParams
+from .admin_priority_level import AdminPriorityLevelParams
+from .admin_reply_conversation_request import AdminReplyConversationRequestParams
+from .admin_reply_ticket_request import AdminReplyTicketRequestParams
+from .admin_reply_ticket_request_reply_options_item import AdminReplyTicketRequestReplyOptionsItemParams
+from .admin_with_app import AdminWithAppParams
+from .admin_with_app_avatar import AdminWithAppAvatarParams
+from .app import AppParams
+from .article_content import ArticleContentParams
+from .article_list import ArticleListParams
+from .article_statistics import ArticleStatisticsParams
+from .article_translated_content import ArticleTranslatedContentParams
+from .assign_conversation_request import AssignConversationRequestParams
+from .button_component import ButtonComponentParams
+from .canvas_object import CanvasObjectParams
+from .checkbox_component import CheckboxComponentParams
+from .checkbox_option import CheckboxOptionParams
+from .close_conversation_request import CloseConversationRequestParams
+from .collection_list import CollectionListParams
+from .company_attached_contacts import CompanyAttachedContactsParams
+from .company_attached_segments import CompanyAttachedSegmentsParams
+from .company_list import CompanyListParams
+from .company_scroll import CompanyScrollParams
+from .component import (
+ ComponentParams,
+ Component_ButtonParams,
+ Component_CheckboxParams,
+ Component_DataTableParams,
+ Component_DividerParams,
+ Component_DropdownParams,
+ Component_ImageParams,
+ Component_InputParams,
+ Component_ListParams,
+ Component_SingleSelectParams,
+ Component_SpacerParams,
+ Component_TextParams,
+ Component_TextareaParams,
+)
+from .configure_request import ConfigureRequestParams
+from .configure_request_component_id import ConfigureRequestComponentIdParams
+from .configure_request_zero import ConfigureRequestZeroParams
+from .configure_response import ConfigureResponseParams
+from .configure_response_canvas import ConfigureResponseCanvasParams
+from .contact_archived import ContactArchivedParams
+from .contact_attached_companies import ContactAttachedCompaniesParams
+from .contact_companies import ContactCompaniesParams
+from .contact_company import ContactCompanyParams
+from .contact_deleted import ContactDeletedParams
+from .contact_list import ContactListParams
+from .contact_location import ContactLocationParams
+from .contact_notes import ContactNotesParams
+from .contact_reference import ContactReferenceParams
+from .contact_reply_base_request import ContactReplyBaseRequestParams
+from .contact_reply_conversation_request import ContactReplyConversationRequestParams
+from .contact_reply_email_request import ContactReplyEmailRequestParams
+from .contact_reply_intercom_user_id_request import ContactReplyIntercomUserIdRequestParams
+from .contact_reply_ticket_email_request import ContactReplyTicketEmailRequestParams
+from .contact_reply_ticket_intercom_user_id_request import ContactReplyTicketIntercomUserIdRequestParams
+from .contact_reply_ticket_request import ContactReplyTicketRequestParams
+from .contact_reply_ticket_user_id_request import ContactReplyTicketUserIdRequestParams
+from .contact_reply_user_id_request import ContactReplyUserIdRequestParams
+from .contact_segments import ContactSegmentsParams
+from .contact_social_profiles import ContactSocialProfilesParams
+from .contact_subscription_types import ContactSubscriptionTypesParams
+from .contact_tags import ContactTagsParams
+from .contact_unarchived import ContactUnarchivedParams
+from .content_object import ContentObjectParams
+from .content_sources_list import ContentSourcesListParams
+from .context import ContextParams
+from .conversation_attachment_files import ConversationAttachmentFilesParams
+from .conversation_contacts import ConversationContactsParams
+from .conversation_first_contact_reply import ConversationFirstContactReplyParams
+from .conversation_part import ConversationPartParams
+from .conversation_part_author import ConversationPartAuthorParams
+from .conversation_parts import ConversationPartsParams
+from .conversation_rating import ConversationRatingParams
+from .conversation_source import ConversationSourceParams
+from .conversation_statistics import ConversationStatisticsParams
+from .conversation_teammates import ConversationTeammatesParams
+from .create_contact_request import CreateContactRequestParams
+from .create_contact_request_with_email import CreateContactRequestWithEmailParams
+from .create_contact_request_with_external_id import CreateContactRequestWithExternalIdParams
+from .create_contact_request_with_role import CreateContactRequestWithRoleParams
+from .create_data_event_request import CreateDataEventRequestParams
+from .create_data_event_request_with_email import CreateDataEventRequestWithEmailParams
+from .create_data_event_request_with_id import CreateDataEventRequestWithIdParams
+from .create_data_event_request_with_user_id import CreateDataEventRequestWithUserIdParams
+from .create_message_request import (
+ CreateMessageRequestParams,
+ CreateMessageRequest_EmailParams,
+ CreateMessageRequest_InappParams,
+)
+from .create_message_request_from import CreateMessageRequestFromParams
+from .create_message_request_to import CreateMessageRequestToParams
+from .create_message_request_with_email import CreateMessageRequestWithEmailParams
+from .create_message_request_with_inapp import CreateMessageRequestWithInappParams
+from .create_or_update_tag_request import CreateOrUpdateTagRequestParams
+from .create_ticket_reply_with_comment_request import CreateTicketReplyWithCommentRequestParams
+from .create_ticket_request import CreateTicketRequestParams
+from .create_ticket_request_contacts_item import CreateTicketRequestContactsItemParams
+from .create_ticket_request_contacts_item_email import CreateTicketRequestContactsItemEmailParams
+from .create_ticket_request_contacts_item_external_id import CreateTicketRequestContactsItemExternalIdParams
+from .create_ticket_request_contacts_item_id import CreateTicketRequestContactsItemIdParams
+from .current_canvas import CurrentCanvasParams
+from .cursor_pages import CursorPagesParams
+from .customer_request import CustomerRequestParams
+from .customer_request_email import CustomerRequestEmailParams
+from .customer_request_intercom_user_id import CustomerRequestIntercomUserIdParams
+from .customer_request_user_id import CustomerRequestUserIdParams
+from .data_attribute_list import DataAttributeListParams
+from .data_event_list import DataEventListParams
+from .data_event_list_pages import DataEventListPagesParams
+from .data_event_summary import DataEventSummaryParams
+from .data_event_summary_item import DataEventSummaryItemParams
+from .data_export_csv import DataExportCsvParams
+from .data_table_component import DataTableComponentParams
+from .data_table_item import DataTableItemParams
+from .deleted_article_object import DeletedArticleObjectParams
+from .deleted_collection_object import DeletedCollectionObjectParams
+from .deleted_company_object import DeletedCompanyObjectParams
+from .deleted_object import DeletedObjectParams
+from .divider_component import DividerComponentParams
+from .dropdown_component import DropdownComponentParams
+from .dropdown_option import DropdownOptionParams
+from .error import ErrorParams
+from .error_errors_item import ErrorErrorsItemParams
+from .event import EventParams
+from .file_attribute import FileAttributeParams
+from .group_content import GroupContentParams
+from .group_translated_content import GroupTranslatedContentParams
+from .image_component import ImageComponentParams
+from .initialize_request import InitializeRequestParams
+from .initialize_response import InitializeResponseParams
+from .input_component import InputComponentParams
+from .linked_object import LinkedObjectParams
+from .linked_object_list import LinkedObjectListParams
+from .list_component import ListComponentParams
+from .list_component_items_item import ListComponentItemsItemParams
+from .list_item import ListItemParams
+from .list_item_with_image import ListItemWithImageParams
+from .list_item_without_image import ListItemWithoutImageParams
+from .live_canvas_request import LiveCanvasRequestParams
+from .live_canvas_response import LiveCanvasResponseParams
+from .metadata import MetadataParams
+from .multiple_filter_search_request import MultipleFilterSearchRequestParams
+from .multiple_or_single_filter_search_request import MultipleOrSingleFilterSearchRequestParams
+from .news_item_request import NewsItemRequestParams
+from .note_list import NoteListParams
+from .offset_pages import OffsetPagesParams
+from .open_conversation_request import OpenConversationRequestParams
+from .pages_link import PagesLinkParams
+from .paginated_conversation_response import PaginatedConversationResponseParams
+from .paginated_news_item_response import PaginatedNewsItemResponseParams
+from .paginated_newsfeed_response import PaginatedNewsfeedResponseParams
+from .part_attachment import PartAttachmentParams
+from .phone_switch import PhoneSwitchParams
+from .redact_conversation_request import (
+ RedactConversationRequestParams,
+ RedactConversationRequest_ConversationPartParams,
+ RedactConversationRequest_SourceParams,
+)
+from .redact_conversation_request_conversation_part import RedactConversationRequestConversationPartParams
+from .redact_conversation_request_source import RedactConversationRequestSourceParams
+from .reference import ReferenceParams
+from .reply_conversation_request import ReplyConversationRequestParams
+from .results_response import ResultsResponseParams
+from .search_request import SearchRequestParams
+from .search_request_query import SearchRequestQueryParams
+from .segment_list import SegmentListParams
+from .sheet_action_component import SheetActionComponentParams
+from .single_filter_search_request import SingleFilterSearchRequestParams
+from .single_filter_search_request_value import SingleFilterSearchRequestValueParams
+from .single_select_component import SingleSelectComponentParams
+from .single_select_option import SingleSelectOptionParams
+from .sla_applied import SlaAppliedParams
+from .snooze_conversation_request import SnoozeConversationRequestParams
+from .social_profile import SocialProfileParams
+from .spacer_component import SpacerComponentParams
+from .starting_after_paging import StartingAfterPagingParams
+from .submit_action_component import SubmitActionComponentParams
+from .submit_request import SubmitRequestParams
+from .submit_response import SubmitResponseParams
+from .subscription_type_list import SubscriptionTypeListParams
+from .tag_company_request import TagCompanyRequestParams
+from .tag_company_request_companies_item import TagCompanyRequestCompaniesItemParams
+from .tag_list import TagListParams
+from .tag_multiple_users_request import TagMultipleUsersRequestParams
+from .tag_multiple_users_request_users_item import TagMultipleUsersRequestUsersItemParams
+from .tags import TagsParams
+from .team_list import TeamListParams
+from .team_priority_level import TeamPriorityLevelParams
+from .text_area_component import TextAreaComponentParams
+from .text_component import TextComponentParams
+from .ticket_list import TicketListParams
+from .ticket_part_author import TicketPartAuthorParams
+from .ticket_parts import TicketPartsParams
+from .ticket_reply import TicketReplyParams
+from .ticket_type_attribute import TicketTypeAttributeParams
+from .ticket_type_attribute_list import TicketTypeAttributeListParams
+from .ticket_type_list import TicketTypeListParams
+from .translation import TranslationParams
+from .untag_company_request import UntagCompanyRequestParams
+from .untag_company_request_companies_item import UntagCompanyRequestCompaniesItemParams
+from .update_visitor_request import UpdateVisitorRequestParams
+from .update_visitor_request_with_id import UpdateVisitorRequestWithIdParams
+from .update_visitor_request_with_user_id import UpdateVisitorRequestWithUserIdParams
+from .url_action_component import UrlActionComponentParams
+from .visitor import VisitorParams
+from .visitor_avatar import VisitorAvatarParams
+from .visitor_companies import VisitorCompaniesParams
+from .visitor_deleted_object import VisitorDeletedObjectParams
+from .visitor_location_data import VisitorLocationDataParams
+from .visitor_segments import VisitorSegmentsParams
+from .visitor_social_profiles import VisitorSocialProfilesParams
+from .visitor_tags import VisitorTagsParams
+from .visitor_tags_tags_item import VisitorTagsTagsItemParams
+
+__all__ = [
+ "ActionComponentParams",
+ "ActionComponent_SheetParams",
+ "ActionComponent_SubmitParams",
+ "ActionComponent_UrlParams",
+ "ActivityLogListParams",
+ "ActivityLogMetadataParams",
+ "ActivityLogParams",
+ "ActivityLogPerformedByParams",
+ "AddressableListParams",
+ "AdminListParams",
+ "AdminPriorityLevelParams",
+ "AdminReplyConversationRequestParams",
+ "AdminReplyTicketRequestParams",
+ "AdminReplyTicketRequestReplyOptionsItemParams",
+ "AdminWithAppAvatarParams",
+ "AdminWithAppParams",
+ "AppParams",
+ "ArticleContentParams",
+ "ArticleListParams",
+ "ArticleStatisticsParams",
+ "ArticleTranslatedContentParams",
+ "AssignConversationRequestParams",
+ "ButtonComponentParams",
+ "CanvasObjectParams",
+ "CheckboxComponentParams",
+ "CheckboxOptionParams",
+ "CloseConversationRequestParams",
+ "CollectionListParams",
+ "CompanyAttachedContactsParams",
+ "CompanyAttachedSegmentsParams",
+ "CompanyListParams",
+ "CompanyScrollParams",
+ "ComponentParams",
+ "Component_ButtonParams",
+ "Component_CheckboxParams",
+ "Component_DataTableParams",
+ "Component_DividerParams",
+ "Component_DropdownParams",
+ "Component_ImageParams",
+ "Component_InputParams",
+ "Component_ListParams",
+ "Component_SingleSelectParams",
+ "Component_SpacerParams",
+ "Component_TextParams",
+ "Component_TextareaParams",
+ "ConfigureRequestComponentIdParams",
+ "ConfigureRequestParams",
+ "ConfigureRequestZeroParams",
+ "ConfigureResponseCanvasParams",
+ "ConfigureResponseParams",
+ "ContactArchivedParams",
+ "ContactAttachedCompaniesParams",
+ "ContactCompaniesParams",
+ "ContactCompanyParams",
+ "ContactDeletedParams",
+ "ContactListParams",
+ "ContactLocationParams",
+ "ContactNotesParams",
+ "ContactReferenceParams",
+ "ContactReplyBaseRequestParams",
+ "ContactReplyConversationRequestParams",
+ "ContactReplyEmailRequestParams",
+ "ContactReplyIntercomUserIdRequestParams",
+ "ContactReplyTicketEmailRequestParams",
+ "ContactReplyTicketIntercomUserIdRequestParams",
+ "ContactReplyTicketRequestParams",
+ "ContactReplyTicketUserIdRequestParams",
+ "ContactReplyUserIdRequestParams",
+ "ContactSegmentsParams",
+ "ContactSocialProfilesParams",
+ "ContactSubscriptionTypesParams",
+ "ContactTagsParams",
+ "ContactUnarchivedParams",
+ "ContentObjectParams",
+ "ContentSourcesListParams",
+ "ContextParams",
+ "ConversationAttachmentFilesParams",
+ "ConversationContactsParams",
+ "ConversationFirstContactReplyParams",
+ "ConversationPartAuthorParams",
+ "ConversationPartParams",
+ "ConversationPartsParams",
+ "ConversationRatingParams",
+ "ConversationSourceParams",
+ "ConversationStatisticsParams",
+ "ConversationTeammatesParams",
+ "CreateContactRequestParams",
+ "CreateContactRequestWithEmailParams",
+ "CreateContactRequestWithExternalIdParams",
+ "CreateContactRequestWithRoleParams",
+ "CreateDataEventRequestParams",
+ "CreateDataEventRequestWithEmailParams",
+ "CreateDataEventRequestWithIdParams",
+ "CreateDataEventRequestWithUserIdParams",
+ "CreateMessageRequestFromParams",
+ "CreateMessageRequestParams",
+ "CreateMessageRequestToParams",
+ "CreateMessageRequestWithEmailParams",
+ "CreateMessageRequestWithInappParams",
+ "CreateMessageRequest_EmailParams",
+ "CreateMessageRequest_InappParams",
+ "CreateOrUpdateTagRequestParams",
+ "CreateTicketReplyWithCommentRequestParams",
+ "CreateTicketRequestContactsItemEmailParams",
+ "CreateTicketRequestContactsItemExternalIdParams",
+ "CreateTicketRequestContactsItemIdParams",
+ "CreateTicketRequestContactsItemParams",
+ "CreateTicketRequestParams",
+ "CurrentCanvasParams",
+ "CursorPagesParams",
+ "CustomerRequestEmailParams",
+ "CustomerRequestIntercomUserIdParams",
+ "CustomerRequestParams",
+ "CustomerRequestUserIdParams",
+ "DataAttributeListParams",
+ "DataEventListPagesParams",
+ "DataEventListParams",
+ "DataEventSummaryItemParams",
+ "DataEventSummaryParams",
+ "DataExportCsvParams",
+ "DataTableComponentParams",
+ "DataTableItemParams",
+ "DeletedArticleObjectParams",
+ "DeletedCollectionObjectParams",
+ "DeletedCompanyObjectParams",
+ "DeletedObjectParams",
+ "DividerComponentParams",
+ "DropdownComponentParams",
+ "DropdownOptionParams",
+ "ErrorErrorsItemParams",
+ "ErrorParams",
+ "EventParams",
+ "FileAttributeParams",
+ "GroupContentParams",
+ "GroupTranslatedContentParams",
+ "ImageComponentParams",
+ "InitializeRequestParams",
+ "InitializeResponseParams",
+ "InputComponentParams",
+ "LinkedObjectListParams",
+ "LinkedObjectParams",
+ "ListComponentItemsItemParams",
+ "ListComponentParams",
+ "ListItemParams",
+ "ListItemWithImageParams",
+ "ListItemWithoutImageParams",
+ "LiveCanvasRequestParams",
+ "LiveCanvasResponseParams",
+ "MetadataParams",
+ "MultipleFilterSearchRequestParams",
+ "MultipleOrSingleFilterSearchRequestParams",
+ "NewsItemRequestParams",
+ "NoteListParams",
+ "OffsetPagesParams",
+ "OpenConversationRequestParams",
+ "PagesLinkParams",
+ "PaginatedConversationResponseParams",
+ "PaginatedNewsItemResponseParams",
+ "PaginatedNewsfeedResponseParams",
+ "PartAttachmentParams",
+ "PhoneSwitchParams",
+ "RedactConversationRequestConversationPartParams",
+ "RedactConversationRequestParams",
+ "RedactConversationRequestSourceParams",
+ "RedactConversationRequest_ConversationPartParams",
+ "RedactConversationRequest_SourceParams",
+ "ReferenceParams",
+ "ReplyConversationRequestParams",
+ "ResultsResponseParams",
+ "SearchRequestParams",
+ "SearchRequestQueryParams",
+ "SegmentListParams",
+ "SheetActionComponentParams",
+ "SingleFilterSearchRequestParams",
+ "SingleFilterSearchRequestValueParams",
+ "SingleSelectComponentParams",
+ "SingleSelectOptionParams",
+ "SlaAppliedParams",
+ "SnoozeConversationRequestParams",
+ "SocialProfileParams",
+ "SpacerComponentParams",
+ "StartingAfterPagingParams",
+ "SubmitActionComponentParams",
+ "SubmitRequestParams",
+ "SubmitResponseParams",
+ "SubscriptionTypeListParams",
+ "TagCompanyRequestCompaniesItemParams",
+ "TagCompanyRequestParams",
+ "TagListParams",
+ "TagMultipleUsersRequestParams",
+ "TagMultipleUsersRequestUsersItemParams",
+ "TagsParams",
+ "TeamListParams",
+ "TeamPriorityLevelParams",
+ "TextAreaComponentParams",
+ "TextComponentParams",
+ "TicketListParams",
+ "TicketPartAuthorParams",
+ "TicketPartsParams",
+ "TicketReplyParams",
+ "TicketTypeAttributeListParams",
+ "TicketTypeAttributeParams",
+ "TicketTypeListParams",
+ "TranslationParams",
+ "UntagCompanyRequestCompaniesItemParams",
+ "UntagCompanyRequestParams",
+ "UpdateVisitorRequestParams",
+ "UpdateVisitorRequestWithIdParams",
+ "UpdateVisitorRequestWithUserIdParams",
+ "UrlActionComponentParams",
+ "VisitorAvatarParams",
+ "VisitorCompaniesParams",
+ "VisitorDeletedObjectParams",
+ "VisitorLocationDataParams",
+ "VisitorParams",
+ "VisitorSegmentsParams",
+ "VisitorSocialProfilesParams",
+ "VisitorTagsParams",
+ "VisitorTagsTagsItemParams",
+]
diff --git a/src/intercom/requests/action_component.py b/src/intercom/requests/action_component.py
new file mode 100644
index 0000000..5c5a679
--- /dev/null
+++ b/src/intercom/requests/action_component.py
@@ -0,0 +1,26 @@
+# This file was auto-generated by Fern from our API Definition.
+
+from __future__ import annotations
+
+import typing
+
+import typing_extensions
+
+
+class ActionComponent_SheetParams(typing_extensions.TypedDict):
+ type: typing.Literal["sheet"]
+ url: str
+
+
+class ActionComponent_UrlParams(typing_extensions.TypedDict):
+ type: typing.Literal["url"]
+ url: str
+
+
+class ActionComponent_SubmitParams(typing_extensions.TypedDict):
+ type: typing.Literal["submit"]
+
+
+ActionComponentParams = typing.Union[
+ ActionComponent_SheetParams, ActionComponent_UrlParams, ActionComponent_SubmitParams
+]
diff --git a/src/intercom/requests/activity_log.py b/src/intercom/requests/activity_log.py
new file mode 100644
index 0000000..e1bae79
--- /dev/null
+++ b/src/intercom/requests/activity_log.py
@@ -0,0 +1,34 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing_extensions
+from ..types.activity_log_activity_type import ActivityLogActivityType
+from .activity_log_metadata import ActivityLogMetadataParams
+from .activity_log_performed_by import ActivityLogPerformedByParams
+
+
+class ActivityLogParams(typing_extensions.TypedDict):
+ """
+ Activities performed by Admins.
+ """
+
+ id: str
+ """
+ The id representing the activity.
+ """
+
+ performed_by: ActivityLogPerformedByParams
+ """
+ Details about the Admin involved in the activity.
+ """
+
+ metadata: typing_extensions.NotRequired[ActivityLogMetadataParams]
+ created_at: typing_extensions.NotRequired[int]
+ """
+ The time the activity was created.
+ """
+
+ activity_type: ActivityLogActivityType
+ activity_description: typing_extensions.NotRequired[str]
+ """
+ A sentence or two describing the activity.
+ """
diff --git a/src/intercom/requests/activity_log_list.py b/src/intercom/requests/activity_log_list.py
new file mode 100644
index 0000000..3cd9035
--- /dev/null
+++ b/src/intercom/requests/activity_log_list.py
@@ -0,0 +1,24 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing
+
+import typing_extensions
+from .activity_log import ActivityLogParams
+from .cursor_pages import CursorPagesParams
+
+
+class ActivityLogListParams(typing_extensions.TypedDict):
+ """
+ A paginated list of activity logs.
+ """
+
+ type: typing.Literal["activity_log.list"]
+ """
+ String representing the object's type. Always has the value `activity_log.list`.
+ """
+
+ pages: typing_extensions.NotRequired[CursorPagesParams]
+ activity_logs: typing.Sequence[ActivityLogParams]
+ """
+ An array of activity logs
+ """
diff --git a/src/intercom/requests/activity_log_metadata.py b/src/intercom/requests/activity_log_metadata.py
new file mode 100644
index 0000000..aba14d3
--- /dev/null
+++ b/src/intercom/requests/activity_log_metadata.py
@@ -0,0 +1,54 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing_extensions
+
+
+class ActivityLogMetadataParams(typing_extensions.TypedDict):
+ """
+ Additional data provided about Admin activity.
+ """
+
+ sign_in_method: typing_extensions.NotRequired[str]
+ """
+ The way the admin signed in.
+ """
+
+ external_id: typing_extensions.NotRequired[str]
+ """
+ The unique identifier for the contact which is provided by the Client.
+ """
+
+ away_mode: typing_extensions.NotRequired[bool]
+ """
+ The away mode status which is set to true when away and false when returned.
+ """
+
+ away_status_reason: typing_extensions.NotRequired[str]
+ """
+ The reason the Admin is away.
+ """
+
+ reassign_conversations: typing_extensions.NotRequired[bool]
+ """
+ Indicates if conversations should be reassigned while an Admin is away.
+ """
+
+ source: typing_extensions.NotRequired[str]
+ """
+ The action that initiated the status change.
+ """
+
+ auto_changed: typing_extensions.NotRequired[str]
+ """
+ Indicates if the status was changed automatically or manually.
+ """
+
+ update_by: typing_extensions.NotRequired[int]
+ """
+ The ID of the Admin who initiated the activity.
+ """
+
+ update_by_name: typing_extensions.NotRequired[str]
+ """
+ The name of the Admin who initiated the activity.
+ """
diff --git a/src/intercom/requests/activity_log_performed_by.py b/src/intercom/requests/activity_log_performed_by.py
new file mode 100644
index 0000000..9ad6037
--- /dev/null
+++ b/src/intercom/requests/activity_log_performed_by.py
@@ -0,0 +1,31 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing
+
+import typing_extensions
+
+
+class ActivityLogPerformedByParams(typing_extensions.TypedDict):
+ """
+ Details about the Admin involved in the activity.
+ """
+
+ type: typing_extensions.NotRequired[typing.Literal["admin"]]
+ """
+ String representing the object's type. Always has the value `admin`.
+ """
+
+ id: typing_extensions.NotRequired[str]
+ """
+ The id representing the admin.
+ """
+
+ email: typing_extensions.NotRequired[str]
+ """
+ The email of the admin.
+ """
+
+ ip: typing_extensions.NotRequired[str]
+ """
+ The IP address of the admin.
+ """
diff --git a/src/intercom/requests/addressable_list.py b/src/intercom/requests/addressable_list.py
new file mode 100644
index 0000000..0272a8d
--- /dev/null
+++ b/src/intercom/requests/addressable_list.py
@@ -0,0 +1,24 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing_extensions
+
+
+class AddressableListParams(typing_extensions.TypedDict):
+ """
+ A list used to access other resources from a parent model.
+ """
+
+ type: str
+ """
+ The addressable object type
+ """
+
+ id: str
+ """
+ The id of the addressable object
+ """
+
+ url: str
+ """
+ Url to get more company resources for this contact
+ """
diff --git a/src/intercom/requests/admin_list.py b/src/intercom/requests/admin_list.py
new file mode 100644
index 0000000..7623de2
--- /dev/null
+++ b/src/intercom/requests/admin_list.py
@@ -0,0 +1,22 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing
+
+import typing_extensions
+from ..admins.requests.admin import AdminParams
+
+
+class AdminListParams(typing_extensions.TypedDict):
+ """
+ A list of admins associated with a given workspace.
+ """
+
+ type: typing.Literal["admin.list"]
+ """
+ String representing the object's type. Always has the value `admin.list`.
+ """
+
+ admins: typing.Sequence[AdminParams]
+ """
+ A list of admins associated with a given workspace.
+ """
diff --git a/src/intercom/requests/admin_priority_level.py b/src/intercom/requests/admin_priority_level.py
new file mode 100644
index 0000000..54991ef
--- /dev/null
+++ b/src/intercom/requests/admin_priority_level.py
@@ -0,0 +1,21 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing
+
+import typing_extensions
+
+
+class AdminPriorityLevelParams(typing_extensions.TypedDict):
+ """
+ Admin priority levels for the team
+ """
+
+ primary_admin_ids: typing_extensions.NotRequired[typing.Sequence[int]]
+ """
+ The primary admin ids for the team
+ """
+
+ secondary_admin_ids: typing_extensions.NotRequired[typing.Sequence[int]]
+ """
+ The secondary admin ids for the team
+ """
diff --git a/src/intercom/requests/admin_reply_conversation_request.py b/src/intercom/requests/admin_reply_conversation_request.py
new file mode 100644
index 0000000..9969b00
--- /dev/null
+++ b/src/intercom/requests/admin_reply_conversation_request.py
@@ -0,0 +1,40 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing
+
+import typing_extensions
+from ..types.admin_reply_conversation_request_message_type import AdminReplyConversationRequestMessageType
+from .conversation_attachment_files import ConversationAttachmentFilesParams
+
+
+class AdminReplyConversationRequestParams(typing_extensions.TypedDict):
+ """
+ Payload of the request to reply on behalf of an admin
+ """
+
+ message_type: AdminReplyConversationRequestMessageType
+ type: typing.Literal["admin"]
+ body: typing_extensions.NotRequired[str]
+ """
+ The text body of the reply. Notes accept some HTML formatting. Must be present for comment and note message types.
+ """
+
+ admin_id: str
+ """
+ The id of the admin who is authoring the comment.
+ """
+
+ created_at: typing_extensions.NotRequired[int]
+ """
+ The time the reply was created. If not provided, the current time will be used.
+ """
+
+ attachment_urls: typing_extensions.NotRequired[typing.Sequence[str]]
+ """
+ A list of image URLs that will be added as attachments. You can include up to 10 URLs.
+ """
+
+ attachment_files: typing_extensions.NotRequired[typing.Sequence[ConversationAttachmentFilesParams]]
+ """
+ A list of files that will be added as attachments. You can include up to 10 files
+ """
diff --git a/src/intercom/requests/admin_reply_ticket_request.py b/src/intercom/requests/admin_reply_ticket_request.py
new file mode 100644
index 0000000..f0d3fc0
--- /dev/null
+++ b/src/intercom/requests/admin_reply_ticket_request.py
@@ -0,0 +1,40 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing
+
+import typing_extensions
+from ..types.admin_reply_ticket_request_message_type import AdminReplyTicketRequestMessageType
+from .admin_reply_ticket_request_reply_options_item import AdminReplyTicketRequestReplyOptionsItemParams
+
+
+class AdminReplyTicketRequestParams(typing_extensions.TypedDict):
+ """
+ Payload of the request to reply on behalf of an admin
+ """
+
+ message_type: AdminReplyTicketRequestMessageType
+ type: typing.Literal["admin"]
+ body: typing_extensions.NotRequired[str]
+ """
+ The text body of the reply. Notes accept some HTML formatting. Must be present for comment and note message types.
+ """
+
+ admin_id: str
+ """
+ The id of the admin who is authoring the comment.
+ """
+
+ created_at: typing_extensions.NotRequired[int]
+ """
+ The time the reply was created. If not provided, the current time will be used.
+ """
+
+ reply_options: typing_extensions.NotRequired[typing.Sequence[AdminReplyTicketRequestReplyOptionsItemParams]]
+ """
+ The quick reply options to display. Must be present for quick_reply message types.
+ """
+
+ attachment_urls: typing_extensions.NotRequired[typing.Sequence[str]]
+ """
+ A list of image URLs that will be added as attachments. You can include up to 10 URLs.
+ """
diff --git a/src/intercom/requests/admin_reply_ticket_request_reply_options_item.py b/src/intercom/requests/admin_reply_ticket_request_reply_options_item.py
new file mode 100644
index 0000000..ebb953e
--- /dev/null
+++ b/src/intercom/requests/admin_reply_ticket_request_reply_options_item.py
@@ -0,0 +1,16 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing_extensions
+from ..core.serialization import FieldMetadata
+
+
+class AdminReplyTicketRequestReplyOptionsItemParams(typing_extensions.TypedDict):
+ text: str
+ """
+ The text to display in this quick reply option.
+ """
+
+ uuid_: typing_extensions.Annotated[str, FieldMetadata(alias="uuid")]
+ """
+ A unique identifier for this quick reply option. This value will be available within the metadata of the comment ticket part that is created when a user clicks on this reply option.
+ """
diff --git a/src/intercom/requests/admin_with_app.py b/src/intercom/requests/admin_with_app.py
new file mode 100644
index 0000000..8fc8721
--- /dev/null
+++ b/src/intercom/requests/admin_with_app.py
@@ -0,0 +1,73 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing
+
+import typing_extensions
+from .admin_with_app_avatar import AdminWithAppAvatarParams
+from .app import AppParams
+
+
+class AdminWithAppParams(typing_extensions.TypedDict):
+ """
+ Admins are the teammate accounts that have access to a workspace
+ """
+
+ type: typing.Literal["admin"]
+ """
+ String representing the object's type. Always has the value `admin`.
+ """
+
+ id: str
+ """
+ The id representing the admin.
+ """
+
+ name: str
+ """
+ The name of the admin.
+ """
+
+ email: str
+ """
+ The email of the admin.
+ """
+
+ job_title: str
+ """
+ The job title of the admin.
+ """
+
+ away_mode_enabled: bool
+ """
+ Identifies if this admin is currently set in away mode.
+ """
+
+ away_mode_reassign: bool
+ """
+ Identifies if this admin is set to automatically reassign new conversations to the apps default inbox.
+ """
+
+ has_inbox_seat: bool
+ """
+ Identifies if this admin has a paid inbox seat to restrict/allow features that require them.
+ """
+
+ team_ids: typing.Sequence[int]
+ """
+ This is a list of ids of the teams that this admin is part of.
+ """
+
+ avatar: typing_extensions.NotRequired[AdminWithAppAvatarParams]
+ """
+ This object represents the avatar associated with the admin.
+ """
+
+ email_verified: typing_extensions.NotRequired[bool]
+ """
+ Identifies if this admin's email is verified.
+ """
+
+ app: typing_extensions.NotRequired[AppParams]
+ """
+ App that the admin belongs to.
+ """
diff --git a/src/intercom/requests/admin_with_app_avatar.py b/src/intercom/requests/admin_with_app_avatar.py
new file mode 100644
index 0000000..a0c0ad0
--- /dev/null
+++ b/src/intercom/requests/admin_with_app_avatar.py
@@ -0,0 +1,21 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing
+
+import typing_extensions
+
+
+class AdminWithAppAvatarParams(typing_extensions.TypedDict):
+ """
+ This object represents the avatar associated with the admin.
+ """
+
+ type: typing_extensions.NotRequired[typing.Literal["avatar"]]
+ """
+ This is a string that identifies the type of the object. It will always have the value `avatar`.
+ """
+
+ image_url: typing_extensions.NotRequired[str]
+ """
+ This object represents the avatar associated with the admin.
+ """
diff --git a/src/intercom/requests/app.py b/src/intercom/requests/app.py
new file mode 100644
index 0000000..1ab19e0
--- /dev/null
+++ b/src/intercom/requests/app.py
@@ -0,0 +1,44 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing_extensions
+
+
+class AppParams(typing_extensions.TypedDict):
+ """
+ App is a workspace on Intercom
+ """
+
+ type: str
+ """
+
+ """
+
+ id_code: str
+ """
+ The id of the app.
+ """
+
+ name: str
+ """
+ The name of the app.
+ """
+
+ region: str
+ """
+ The Intercom region the app is located in.
+ """
+
+ timezone: str
+ """
+ The timezone of the region where the app is located.
+ """
+
+ created_at: int
+ """
+ When the app was created.
+ """
+
+ identity_verification: bool
+ """
+ Whether or not the app uses identity verification.
+ """
diff --git a/src/intercom/requests/article_content.py b/src/intercom/requests/article_content.py
new file mode 100644
index 0000000..9150435
--- /dev/null
+++ b/src/intercom/requests/article_content.py
@@ -0,0 +1,57 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing
+
+import typing_extensions
+from ..types.article_content_state import ArticleContentState
+
+
+class ArticleContentParams(typing_extensions.TypedDict):
+ """
+ The Content of an Article.
+ """
+
+ type: typing.Literal["article_content"]
+ """
+ The type of object - `article_content` .
+ """
+
+ title: str
+ """
+ The title of the article.
+ """
+
+ description: str
+ """
+ The description of the article.
+ """
+
+ body: str
+ """
+ The body of the article.
+ """
+
+ author_id: int
+ """
+ The ID of the author of the article.
+ """
+
+ state: ArticleContentState
+ """
+ Whether the article is `published` or is a `draft` .
+ """
+
+ created_at: typing_extensions.NotRequired[int]
+ """
+ The time when the article was created (seconds).
+ """
+
+ updated_at: typing_extensions.NotRequired[int]
+ """
+ The time when the article was last updated (seconds).
+ """
+
+ url: typing_extensions.NotRequired[str]
+ """
+ The URL of the article.
+ """
diff --git a/src/intercom/requests/article_list.py b/src/intercom/requests/article_list.py
new file mode 100644
index 0000000..605d39a
--- /dev/null
+++ b/src/intercom/requests/article_list.py
@@ -0,0 +1,28 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing
+
+import typing_extensions
+from ..articles.requests.article_list_item import ArticleListItemParams
+
+
+class ArticleListParams(typing_extensions.TypedDict):
+ """
+ This will return a list of articles for the App.
+ """
+
+ type: typing.Literal["list"]
+ """
+ The type of the object - `list`.
+ """
+
+ pages: typing_extensions.NotRequired[typing.Optional[typing.Any]]
+ total_count: int
+ """
+ A count of the total number of articles.
+ """
+
+ data: typing.Sequence[ArticleListItemParams]
+ """
+ An array of Article objects
+ """
diff --git a/src/intercom/requests/article_statistics.py b/src/intercom/requests/article_statistics.py
new file mode 100644
index 0000000..f785c23
--- /dev/null
+++ b/src/intercom/requests/article_statistics.py
@@ -0,0 +1,46 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing
+
+import typing_extensions
+
+
+class ArticleStatisticsParams(typing_extensions.TypedDict):
+ """
+ The statistics of an article.
+ """
+
+ type: typing.Literal["article_statistics"]
+ """
+ The type of object - `article_statistics`.
+ """
+
+ views: int
+ """
+ The number of total views the article has received.
+ """
+
+ conversions: typing_extensions.NotRequired[int]
+ """
+ The number of conversations started from the article.
+ """
+
+ reactions: int
+ """
+ The number of total reactions the article has received.
+ """
+
+ happy_reaction_percentage: float
+ """
+ The percentage of happy reactions the article has received against other types of reaction.
+ """
+
+ neutral_reaction_percentage: float
+ """
+ The percentage of neutral reactions the article has received against other types of reaction.
+ """
+
+ sad_reaction_percentage: float
+ """
+ The percentage of sad reactions the article has received against other types of reaction.
+ """
diff --git a/src/intercom/requests/article_translated_content.py b/src/intercom/requests/article_translated_content.py
new file mode 100644
index 0000000..235c8b3
--- /dev/null
+++ b/src/intercom/requests/article_translated_content.py
@@ -0,0 +1,209 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing
+
+import typing_extensions
+from ..core.serialization import FieldMetadata
+from .article_content import ArticleContentParams
+
+
+class ArticleTranslatedContentParams(typing_extensions.TypedDict):
+ """
+ The Translated Content of an Article. The keys are the locale codes and the values are the translated content of the article.
+ """
+
+ type: typing_extensions.NotRequired[typing.Literal["article_translated_content"]]
+ """
+ The type of object - article_translated_content.
+ """
+
+ ar: typing_extensions.NotRequired[ArticleContentParams]
+ """
+ The content of the article in Arabic
+ """
+
+ bg: typing_extensions.NotRequired[ArticleContentParams]
+ """
+ The content of the article in Bulgarian
+ """
+
+ bs: typing_extensions.NotRequired[ArticleContentParams]
+ """
+ The content of the article in Bosnian
+ """
+
+ ca: typing_extensions.NotRequired[ArticleContentParams]
+ """
+ The content of the article in Catalan
+ """
+
+ cs: typing_extensions.NotRequired[ArticleContentParams]
+ """
+ The content of the article in Czech
+ """
+
+ da: typing_extensions.NotRequired[ArticleContentParams]
+ """
+ The content of the article in Danish
+ """
+
+ de: typing_extensions.NotRequired[ArticleContentParams]
+ """
+ The content of the article in German
+ """
+
+ el: typing_extensions.NotRequired[ArticleContentParams]
+ """
+ The content of the article in Greek
+ """
+
+ en: typing_extensions.NotRequired[ArticleContentParams]
+ """
+ The content of the article in English
+ """
+
+ es: typing_extensions.NotRequired[ArticleContentParams]
+ """
+ The content of the article in Spanish
+ """
+
+ et: typing_extensions.NotRequired[ArticleContentParams]
+ """
+ The content of the article in Estonian
+ """
+
+ fi: typing_extensions.NotRequired[ArticleContentParams]
+ """
+ The content of the article in Finnish
+ """
+
+ fr: typing_extensions.NotRequired[ArticleContentParams]
+ """
+ The content of the article in French
+ """
+
+ he: typing_extensions.NotRequired[ArticleContentParams]
+ """
+ The content of the article in Hebrew
+ """
+
+ hr: typing_extensions.NotRequired[ArticleContentParams]
+ """
+ The content of the article in Croatian
+ """
+
+ hu: typing_extensions.NotRequired[ArticleContentParams]
+ """
+ The content of the article in Hungarian
+ """
+
+ id: typing_extensions.NotRequired[ArticleContentParams]
+ """
+ The content of the article in Indonesian
+ """
+
+ it: typing_extensions.NotRequired[ArticleContentParams]
+ """
+ The content of the article in Italian
+ """
+
+ ja: typing_extensions.NotRequired[ArticleContentParams]
+ """
+ The content of the article in Japanese
+ """
+
+ ko: typing_extensions.NotRequired[ArticleContentParams]
+ """
+ The content of the article in Korean
+ """
+
+ lt: typing_extensions.NotRequired[ArticleContentParams]
+ """
+ The content of the article in Lithuanian
+ """
+
+ lv: typing_extensions.NotRequired[ArticleContentParams]
+ """
+ The content of the article in Latvian
+ """
+
+ mn: typing_extensions.NotRequired[ArticleContentParams]
+ """
+ The content of the article in Mongolian
+ """
+
+ nb: typing_extensions.NotRequired[ArticleContentParams]
+ """
+ The content of the article in Norwegian
+ """
+
+ nl: typing_extensions.NotRequired[ArticleContentParams]
+ """
+ The content of the article in Dutch
+ """
+
+ pl: typing_extensions.NotRequired[ArticleContentParams]
+ """
+ The content of the article in Polish
+ """
+
+ pt: typing_extensions.NotRequired[ArticleContentParams]
+ """
+ The content of the article in Portuguese (Portugal)
+ """
+
+ ro: typing_extensions.NotRequired[ArticleContentParams]
+ """
+ The content of the article in Romanian
+ """
+
+ ru: typing_extensions.NotRequired[ArticleContentParams]
+ """
+ The content of the article in Russian
+ """
+
+ sl: typing_extensions.NotRequired[ArticleContentParams]
+ """
+ The content of the article in Slovenian
+ """
+
+ sr: typing_extensions.NotRequired[ArticleContentParams]
+ """
+ The content of the article in Serbian
+ """
+
+ sv: typing_extensions.NotRequired[ArticleContentParams]
+ """
+ The content of the article in Swedish
+ """
+
+ tr: typing_extensions.NotRequired[ArticleContentParams]
+ """
+ The content of the article in Turkish
+ """
+
+ vi: typing_extensions.NotRequired[ArticleContentParams]
+ """
+ The content of the article in Vietnamese
+ """
+
+ pt_br: typing_extensions.NotRequired[
+ typing_extensions.Annotated[ArticleContentParams, FieldMetadata(alias="pt-BR")]
+ ]
+ """
+ The content of the article in Portuguese (Brazil)
+ """
+
+ zh_cn: typing_extensions.NotRequired[
+ typing_extensions.Annotated[ArticleContentParams, FieldMetadata(alias="zh-CN")]
+ ]
+ """
+ The content of the article in Chinese (China)
+ """
+
+ zh_tw: typing_extensions.NotRequired[
+ typing_extensions.Annotated[ArticleContentParams, FieldMetadata(alias="zh-TW")]
+ ]
+ """
+ The content of the article in Chinese (Taiwan)
+ """
diff --git a/src/intercom/requests/assign_conversation_request.py b/src/intercom/requests/assign_conversation_request.py
new file mode 100644
index 0000000..9608a43
--- /dev/null
+++ b/src/intercom/requests/assign_conversation_request.py
@@ -0,0 +1,26 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing_extensions
+from ..types.assign_conversation_request_type import AssignConversationRequestType
+
+
+class AssignConversationRequestParams(typing_extensions.TypedDict):
+ """
+ Payload of the request to assign a conversation
+ """
+
+ type: AssignConversationRequestType
+ admin_id: str
+ """
+ The id of the admin who is performing the action.
+ """
+
+ assignee_id: str
+ """
+ The `id` of the `admin` or `team` which will be assigned the conversation. A conversation can be assigned both an admin and a team.\nSet `0` if you want this assign to no admin or team (ie. Unassigned).
+ """
+
+ body: typing_extensions.NotRequired[str]
+ """
+ Optionally you can send a response in the conversation when it is assigned.
+ """
diff --git a/src/intercom/requests/button_component.py b/src/intercom/requests/button_component.py
new file mode 100644
index 0000000..5b62e9d
--- /dev/null
+++ b/src/intercom/requests/button_component.py
@@ -0,0 +1,39 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing_extensions
+from ..types.button_component_style import ButtonComponentStyle
+from .action_component import ActionComponentParams
+
+
+class ButtonComponentParams(typing_extensions.TypedDict):
+ """
+ A button component is used to take an action by clicking a button. This can either:
+ - [Trigger a submit request to be sent](https://developers.intercom.com/docs/references/canvas-kit/actioncomponents/submit-action) Inbox Messenger
+ - [Open a link in a new page](https://developers.intercom.com/docs/references/canvas-kit/actioncomponents/url-action) Inbox Messenger
+ - [Open a sheet](https://developers.intercom.com/docs/references/canvas-kit/actioncomponents/sheets-action) Messenger
+ """
+
+ id: str
+ """
+ A unique identifier for the component.
+ """
+
+ label: str
+ """
+ The text that will be rendered inside the button.
+ """
+
+ action: ActionComponentParams
+ """
+ This can be a Submit Action, URL Action, or Sheets Action.
+ """
+
+ style: typing_extensions.NotRequired[ButtonComponentStyle]
+ """
+ Styles the button. Default is 'primary'.
+ """
+
+ disabled: typing_extensions.NotRequired[bool]
+ """
+ Styles the button and prevents the action. Default is false.
+ """
diff --git a/src/intercom/requests/canvas_object.py b/src/intercom/requests/canvas_object.py
new file mode 100644
index 0000000..845ba37
--- /dev/null
+++ b/src/intercom/requests/canvas_object.py
@@ -0,0 +1,32 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing
+
+import typing_extensions
+from .content_object import ContentObjectParams
+
+
+class CanvasObjectParams(typing_extensions.TypedDict):
+ """
+ You have to respond to the majority of requests with a canvas object. This will tell us what UI to show for your app.
+
+ A canvas can either be static (meaning we send you the next request only when an action takes place) or live (meaning we send you the next request when someone views the app).
+
+ - A static canvas needs a ContentObject which will contain the components to show.
+ - A live canvas needs a `content_url` which we we will make the Live Canvas requests to when the app is viewed. This is only possible for apps viewed or used in the Messenger.
+ """
+
+ content: ContentObjectParams
+ """
+ The content object that will be shown as the UI of the app. Max Size is 64KB.
+ """
+
+ content_url: typing_extensions.NotRequired[str]
+ """
+ The URL which we make Live Canvas requests to. You must respond to these with a content object. Max size is 64KB.
+ """
+
+ stored_data: typing_extensions.NotRequired[typing.Dict[str, typing.Optional[typing.Any]]]
+ """
+ Optional Stored Data that you want to be returned in the next sent request. Max Size is 64KB.
+ """
diff --git a/src/intercom/requests/checkbox_component.py b/src/intercom/requests/checkbox_component.py
new file mode 100644
index 0000000..fb446a7
--- /dev/null
+++ b/src/intercom/requests/checkbox_component.py
@@ -0,0 +1,47 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing
+
+import typing_extensions
+from ..types.checkbox_component_save_state import CheckboxComponentSaveState
+from .checkbox_option import CheckboxOptionParams
+
+
+class CheckboxComponentParams(typing_extensions.TypedDict):
+ """
+ A checkbox component is used to capture multiple choices from as many options as you want to provide. You can submit the options by:
+
+ - Using a ButtonComponent (which will submit all interactive components in the canvas)
+
+ When a submit action takes place, the results are given in a hash with the `id` from the checkbox component used as the key and an array containing the `id` of each chosen option as the value.
+ """
+
+ id: str
+ """
+ A unique identifier for the component.
+ """
+
+ option: typing.Sequence[CheckboxOptionParams]
+ """
+ The list of options. Minimum of 1.
+ """
+
+ label: str
+ """
+ The text shown above the options.
+ """
+
+ value: typing_extensions.NotRequired[typing.Sequence[str]]
+ """
+ The option's that are selected by default.
+ """
+
+ save_state: typing_extensions.NotRequired[CheckboxComponentSaveState]
+ """
+ Styles the input. Default is `unsaved`. Prevent action with `saved`.
+ """
+
+ disabled: typing_extensions.NotRequired[bool]
+ """
+ Styles all options and prevents the action. Default is false. Will be overridden if save_state is saved.
+ """
diff --git a/src/intercom/requests/checkbox_option.py b/src/intercom/requests/checkbox_option.py
new file mode 100644
index 0000000..ea4a4a2
--- /dev/null
+++ b/src/intercom/requests/checkbox_option.py
@@ -0,0 +1,31 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing
+
+import typing_extensions
+
+
+class CheckboxOptionParams(typing_extensions.TypedDict):
+ """
+ A checkbox option component that can be selected.
+ """
+
+ type: typing.Literal["option"]
+ """
+ The type of component you are rendering.
+ """
+
+ id: str
+ """
+ A unique identifier for the option.
+ """
+
+ text: str
+ """
+ The text shown next to the checkbox.
+ """
+
+ disabled: typing_extensions.NotRequired[bool]
+ """
+ Styles the option and prevents the action. Default is false.
+ """
diff --git a/src/intercom/requests/close_conversation_request.py b/src/intercom/requests/close_conversation_request.py
new file mode 100644
index 0000000..e864733
--- /dev/null
+++ b/src/intercom/requests/close_conversation_request.py
@@ -0,0 +1,22 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing
+
+import typing_extensions
+
+
+class CloseConversationRequestParams(typing_extensions.TypedDict):
+ """
+ Payload of the request to close a conversation
+ """
+
+ type: typing.Literal["admin"]
+ admin_id: str
+ """
+ The id of the admin who is performing the action.
+ """
+
+ body: typing_extensions.NotRequired[str]
+ """
+ Optionally you can leave a message in the conversation to provide additional context to the user and other teammates.
+ """
diff --git a/src/intercom/requests/collection_list.py b/src/intercom/requests/collection_list.py
new file mode 100644
index 0000000..79c2cfa
--- /dev/null
+++ b/src/intercom/requests/collection_list.py
@@ -0,0 +1,29 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing
+
+import typing_extensions
+from ..help_center.requests.collection import CollectionParams
+from .offset_pages import OffsetPagesParams
+
+
+class CollectionListParams(typing_extensions.TypedDict):
+ """
+ This will return a list of Collections for the App.
+ """
+
+ type: typing.Literal["list"]
+ """
+ The type of the object - `list`.
+ """
+
+ pages: typing_extensions.NotRequired[OffsetPagesParams]
+ total_count: int
+ """
+ A count of the total number of collections.
+ """
+
+ data: typing.Sequence[CollectionParams]
+ """
+ An array of collection objects
+ """
diff --git a/src/intercom/requests/company_attached_contacts.py b/src/intercom/requests/company_attached_contacts.py
new file mode 100644
index 0000000..c749c18
--- /dev/null
+++ b/src/intercom/requests/company_attached_contacts.py
@@ -0,0 +1,30 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing
+
+import typing_extensions
+from ..contacts.requests.contact import ContactParams
+from .cursor_pages import CursorPagesParams
+
+
+class CompanyAttachedContactsParams(typing_extensions.TypedDict):
+ """
+ A list of Contact Objects
+ """
+
+ type: typing.Literal["list"]
+ """
+ The type of object - `list`
+ """
+
+ data: typing.Sequence[ContactParams]
+ """
+ An array containing Contact Objects
+ """
+
+ total_count: int
+ """
+ The total number of contacts
+ """
+
+ pages: typing_extensions.NotRequired[CursorPagesParams]
diff --git a/src/intercom/requests/company_attached_segments.py b/src/intercom/requests/company_attached_segments.py
new file mode 100644
index 0000000..59d734f
--- /dev/null
+++ b/src/intercom/requests/company_attached_segments.py
@@ -0,0 +1,22 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing
+
+import typing_extensions
+from ..segments.requests.segment import SegmentParams
+
+
+class CompanyAttachedSegmentsParams(typing_extensions.TypedDict):
+ """
+ A list of Segment Objects
+ """
+
+ type: typing.Literal["list"]
+ """
+ The type of object - `list`
+ """
+
+ data: typing.Sequence[SegmentParams]
+ """
+ An array containing Segment Objects
+ """
diff --git a/src/intercom/requests/company_list.py b/src/intercom/requests/company_list.py
new file mode 100644
index 0000000..c357792
--- /dev/null
+++ b/src/intercom/requests/company_list.py
@@ -0,0 +1,24 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing
+
+import typing_extensions
+from ..companies.requests.company import CompanyParams
+from .offset_pages import OffsetPagesParams
+
+
+class CompanyListParams(typing_extensions.TypedDict):
+ """
+ This will return a list of companies for the App.
+ """
+
+ pages: typing_extensions.NotRequired[OffsetPagesParams]
+ total_count: int
+ """
+ The total number of companies.
+ """
+
+ data: typing.Sequence[CompanyParams]
+ """
+ An array containing Company Objects.
+ """
diff --git a/src/intercom/requests/company_scroll.py b/src/intercom/requests/company_scroll.py
new file mode 100644
index 0000000..e33024c
--- /dev/null
+++ b/src/intercom/requests/company_scroll.py
@@ -0,0 +1,30 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing
+
+import typing_extensions
+from ..companies.requests.company import CompanyParams
+from .cursor_pages import CursorPagesParams
+
+
+class CompanyScrollParams(typing_extensions.TypedDict):
+ """
+ Companies allow you to represent organizations using your product. Each company will have its own description and be associated with contacts. You can fetch, create, update and list companies.
+ """
+
+ type: typing.Literal["list"]
+ """
+ The type of object - `list`
+ """
+
+ data: typing.Sequence[CompanyParams]
+ pages: typing_extensions.NotRequired[CursorPagesParams]
+ total_count: typing_extensions.NotRequired[int]
+ """
+ The total number of companies
+ """
+
+ scroll_param: typing_extensions.NotRequired[str]
+ """
+ The scroll parameter to use in the next request to fetch the next page of results.
+ """
diff --git a/src/intercom/requests/component.py b/src/intercom/requests/component.py
new file mode 100644
index 0000000..d640497
--- /dev/null
+++ b/src/intercom/requests/component.py
@@ -0,0 +1,144 @@
+# This file was auto-generated by Fern from our API Definition.
+
+from __future__ import annotations
+
+import typing
+
+import typing_extensions
+from ..types.button_component_style import ButtonComponentStyle
+from ..types.checkbox_component_save_state import CheckboxComponentSaveState
+from ..types.dropdown_component_save_state import DropdownComponentSaveState
+from ..types.image_component_align import ImageComponentAlign
+from ..types.input_component_save_state import InputComponentSaveState
+from ..types.single_select_component_save_state import SingleSelectComponentSaveState
+from ..types.spacer_component_size import SpacerComponentSize
+from ..types.text_component_align import TextComponentAlign
+from ..types.text_component_style import TextComponentStyle
+from .action_component import ActionComponentParams
+from .checkbox_option import CheckboxOptionParams
+from .data_table_item import DataTableItemParams
+from .dropdown_option import DropdownOptionParams
+from .list_component_items_item import ListComponentItemsItemParams
+from .single_select_option import SingleSelectOptionParams
+from .url_action_component import UrlActionComponentParams
+
+
+class Component_ButtonParams(typing_extensions.TypedDict):
+ type: typing.Literal["button"]
+ id: str
+ label: str
+ action: ActionComponentParams
+ style: typing_extensions.NotRequired[ButtonComponentStyle]
+ disabled: typing_extensions.NotRequired[bool]
+
+
+class Component_CheckboxParams(typing_extensions.TypedDict):
+ type: typing.Literal["checkbox"]
+ id: str
+ option: typing.Sequence[CheckboxOptionParams]
+ label: str
+ value: typing_extensions.NotRequired[typing.Sequence[str]]
+ save_state: typing_extensions.NotRequired[CheckboxComponentSaveState]
+ disabled: typing_extensions.NotRequired[bool]
+
+
+class Component_DropdownParams(typing_extensions.TypedDict):
+ type: typing.Literal["dropdown"]
+ id: str
+ options: typing.Sequence[DropdownOptionParams]
+ label: typing_extensions.NotRequired[str]
+ value: typing_extensions.NotRequired[str]
+ save_state: typing_extensions.NotRequired[DropdownComponentSaveState]
+ disabled: typing_extensions.NotRequired[bool]
+
+
+class Component_InputParams(typing_extensions.TypedDict):
+ type: typing.Literal["input"]
+ id: str
+ label: typing_extensions.NotRequired[str]
+ placeholder: typing_extensions.NotRequired[str]
+ value: typing_extensions.NotRequired[str]
+ action: typing_extensions.NotRequired[ActionComponentParams]
+ save_state: typing_extensions.NotRequired[InputComponentSaveState]
+ disabled: typing_extensions.NotRequired[bool]
+
+
+class Component_ListParams(typing_extensions.TypedDict):
+ type: typing.Literal["list"]
+ items: typing.Sequence[ListComponentItemsItemParams]
+ disabled: typing_extensions.NotRequired[bool]
+
+
+class Component_SingleSelectParams(typing_extensions.TypedDict):
+ type: typing.Literal["single-select"]
+ id: str
+ options: typing.Sequence[SingleSelectOptionParams]
+ label: typing_extensions.NotRequired[str]
+ value: typing_extensions.NotRequired[str]
+ save_state: typing_extensions.NotRequired[SingleSelectComponentSaveState]
+ disabled: typing_extensions.NotRequired[bool]
+ action: typing_extensions.NotRequired[ActionComponentParams]
+
+
+class Component_TextareaParams(typing_extensions.TypedDict):
+ type: typing.Literal["textarea"]
+ id: str
+ label: typing_extensions.NotRequired[str]
+ placeholder: typing_extensions.NotRequired[str]
+ value: typing_extensions.NotRequired[str]
+ error: typing_extensions.NotRequired[bool]
+ disabled: typing_extensions.NotRequired[bool]
+
+
+class Component_DataTableParams(typing_extensions.TypedDict):
+ type: typing.Literal["data-table"]
+ items: typing.Sequence[DataTableItemParams]
+
+
+class Component_DividerParams(typing_extensions.TypedDict):
+ type: typing.Literal["divider"]
+ id: typing_extensions.NotRequired[str]
+ bottom_margin: typing_extensions.NotRequired[typing.Literal["none"]]
+
+
+class Component_ImageParams(typing_extensions.TypedDict):
+ type: typing.Literal["image"]
+ id: typing_extensions.NotRequired[str]
+ url: str
+ align: typing_extensions.NotRequired[ImageComponentAlign]
+ width: int
+ height: int
+ rounded: typing_extensions.NotRequired[bool]
+ bottom_margin: typing_extensions.NotRequired[typing.Literal["none"]]
+ action: typing_extensions.NotRequired[UrlActionComponentParams]
+
+
+class Component_SpacerParams(typing_extensions.TypedDict):
+ type: typing.Literal["spacer"]
+ id: typing_extensions.NotRequired[str]
+ size: typing_extensions.NotRequired[SpacerComponentSize]
+
+
+class Component_TextParams(typing_extensions.TypedDict):
+ type: typing.Literal["text"]
+ id: typing_extensions.NotRequired[str]
+ text: str
+ align: typing_extensions.NotRequired[TextComponentAlign]
+ style: typing_extensions.NotRequired[TextComponentStyle]
+ bottom_margin: typing_extensions.NotRequired[typing.Literal["none"]]
+
+
+ComponentParams = typing.Union[
+ Component_ButtonParams,
+ Component_CheckboxParams,
+ Component_DropdownParams,
+ Component_InputParams,
+ Component_ListParams,
+ Component_SingleSelectParams,
+ Component_TextareaParams,
+ Component_DataTableParams,
+ Component_DividerParams,
+ Component_ImageParams,
+ Component_SpacerParams,
+ Component_TextParams,
+]
diff --git a/src/intercom/requests/configure_request.py b/src/intercom/requests/configure_request.py
new file mode 100644
index 0000000..f6830c5
--- /dev/null
+++ b/src/intercom/requests/configure_request.py
@@ -0,0 +1,8 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing
+
+from .configure_request_component_id import ConfigureRequestComponentIdParams
+from .configure_request_zero import ConfigureRequestZeroParams
+
+ConfigureRequestParams = typing.Union[ConfigureRequestZeroParams, ConfigureRequestComponentIdParams]
diff --git a/src/intercom/requests/configure_request_component_id.py b/src/intercom/requests/configure_request_component_id.py
new file mode 100644
index 0000000..27633c6
--- /dev/null
+++ b/src/intercom/requests/configure_request_component_id.py
@@ -0,0 +1,45 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing
+
+import typing_extensions
+from ..admins.requests.admin import AdminParams
+from .canvas_object import CanvasObjectParams
+from .context import ContextParams
+
+
+class ConfigureRequestComponentIdParams(typing_extensions.TypedDict):
+ workspace_id: str
+ """
+ The workspace ID of the teammate. Attribute is app_id for V1.2 and below.
+ """
+
+ workspace_region: str
+ """
+ The Intercom hosted region that this app is located in.
+ """
+
+ component_id: str
+ """
+ The id of the component clicked by the teammate to trigger the request.
+ """
+
+ admin: AdminParams
+ """
+ The Intercom teammate configuring the app.
+ """
+
+ context: ContextParams
+ """
+ The context of where the app is added, where the user last visited, and information on the Messenger settings.
+ """
+
+ current_canvas: CanvasObjectParams
+ """
+ The current canvas the teammate can see.
+ """
+
+ input_values: typing.Dict[str, typing.Optional[typing.Any]]
+ """
+ A list of key/value pairs of data, inputted by the teammate on the current canvas.
+ """
diff --git a/src/intercom/requests/configure_request_zero.py b/src/intercom/requests/configure_request_zero.py
new file mode 100644
index 0000000..158d7b3
--- /dev/null
+++ b/src/intercom/requests/configure_request_zero.py
@@ -0,0 +1,22 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing_extensions
+from ..admins.requests.admin import AdminParams
+from .context import ContextParams
+
+
+class ConfigureRequestZeroParams(typing_extensions.TypedDict):
+ workspace_id: str
+ """
+ The workspace ID of the teammate. Attribute is app_id for V1.2 and below.
+ """
+
+ admin: AdminParams
+ """
+ The Intercom teammate configuring the app.
+ """
+
+ context: ContextParams
+ """
+ The context of where the app is added, where the user last visited, and information on the Messenger settings.
+ """
diff --git a/src/intercom/requests/configure_response.py b/src/intercom/requests/configure_response.py
new file mode 100644
index 0000000..c571504
--- /dev/null
+++ b/src/intercom/requests/configure_response.py
@@ -0,0 +1,8 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing
+
+from .configure_response_canvas import ConfigureResponseCanvasParams
+from .results_response import ResultsResponseParams
+
+ConfigureResponseParams = typing.Union[ResultsResponseParams, ConfigureResponseCanvasParams]
diff --git a/src/intercom/requests/configure_response_canvas.py b/src/intercom/requests/configure_response_canvas.py
new file mode 100644
index 0000000..d7fc1d4
--- /dev/null
+++ b/src/intercom/requests/configure_response_canvas.py
@@ -0,0 +1,11 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing_extensions
+from .canvas_object import CanvasObjectParams
+
+
+class ConfigureResponseCanvasParams(typing_extensions.TypedDict):
+ canvas: CanvasObjectParams
+ """
+ The canvas object that defines the new UI to be shown. This will replace the previous canvas that was visible until the teammate interacted with your app.
+ """
diff --git a/src/intercom/requests/contact_archived.py b/src/intercom/requests/contact_archived.py
new file mode 100644
index 0000000..3cc34ab
--- /dev/null
+++ b/src/intercom/requests/contact_archived.py
@@ -0,0 +1,31 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing
+
+import typing_extensions
+
+
+class ContactArchivedParams(typing_extensions.TypedDict):
+ """
+ archived contact object
+ """
+
+ type: typing.Literal["contact"]
+ """
+ always contact
+ """
+
+ id: str
+ """
+ The unique identifier for the contact which is given by Intercom.
+ """
+
+ external_id: typing_extensions.NotRequired[str]
+ """
+ The unique identifier for the contact which is provided by the Client.
+ """
+
+ archived: bool
+ """
+ Whether the contact is archived or not.
+ """
diff --git a/src/intercom/requests/contact_attached_companies.py b/src/intercom/requests/contact_attached_companies.py
new file mode 100644
index 0000000..c5d12e2
--- /dev/null
+++ b/src/intercom/requests/contact_attached_companies.py
@@ -0,0 +1,30 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing
+
+import typing_extensions
+from ..companies.requests.company import CompanyParams
+from .pages_link import PagesLinkParams
+
+
+class ContactAttachedCompaniesParams(typing_extensions.TypedDict):
+ """
+ A list of Company Objects
+ """
+
+ type: typing.Literal["list"]
+ """
+ The type of object
+ """
+
+ companies: typing.Sequence[CompanyParams]
+ """
+ An array containing Company Objects
+ """
+
+ total_count: int
+ """
+ The total number of companies associated to this contact
+ """
+
+ pages: typing_extensions.NotRequired[PagesLinkParams]
diff --git a/src/intercom/requests/contact_companies.py b/src/intercom/requests/contact_companies.py
new file mode 100644
index 0000000..8dcd142
--- /dev/null
+++ b/src/intercom/requests/contact_companies.py
@@ -0,0 +1,37 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing
+
+import typing_extensions
+from .contact_company import ContactCompanyParams
+
+
+class ContactCompaniesParams(typing_extensions.TypedDict):
+ """
+ An object containing companies meta data about the companies that a contact has. Up to 10 will be displayed here. Use the url to get more.
+ """
+
+ type: typing_extensions.NotRequired[typing.Literal["list"]]
+ """
+ The type of object
+ """
+
+ data: typing_extensions.NotRequired[typing.Sequence[ContactCompanyParams]]
+ """
+ An array containing Company Objects
+ """
+
+ url: str
+ """
+ Url to get more company resources for this contact
+ """
+
+ total_count: int
+ """
+ Int representing the total number of companyies attached to this contact
+ """
+
+ has_more: bool
+ """
+ Whether there's more Addressable Objects to be viewed. If true, use the url to view all
+ """
diff --git a/src/intercom/requests/contact_company.py b/src/intercom/requests/contact_company.py
new file mode 100644
index 0000000..075306f
--- /dev/null
+++ b/src/intercom/requests/contact_company.py
@@ -0,0 +1,26 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing
+
+import typing_extensions
+
+
+class ContactCompanyParams(typing_extensions.TypedDict):
+ """
+ A reference to a company associated with a contact
+ """
+
+ id: str
+ """
+ The unique identifier for the company
+ """
+
+ type: typing.Literal["company"]
+ """
+ The type of the object
+ """
+
+ url: str
+ """
+ URL to get the full company resource
+ """
diff --git a/src/intercom/requests/contact_deleted.py b/src/intercom/requests/contact_deleted.py
new file mode 100644
index 0000000..bc65c57
--- /dev/null
+++ b/src/intercom/requests/contact_deleted.py
@@ -0,0 +1,31 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing
+
+import typing_extensions
+
+
+class ContactDeletedParams(typing_extensions.TypedDict):
+ """
+ deleted contact object
+ """
+
+ type: typing.Literal["contact"]
+ """
+ always contact
+ """
+
+ id: str
+ """
+ The unique identifier for the contact which is given by Intercom.
+ """
+
+ external_id: typing_extensions.NotRequired[str]
+ """
+ The unique identifier for the contact which is provided by the Client.
+ """
+
+ deleted: bool
+ """
+ Whether the contact is deleted or not.
+ """
diff --git a/src/intercom/requests/contact_list.py b/src/intercom/requests/contact_list.py
new file mode 100644
index 0000000..07c8273
--- /dev/null
+++ b/src/intercom/requests/contact_list.py
@@ -0,0 +1,30 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing
+
+import typing_extensions
+from ..contacts.requests.contact import ContactParams
+from .cursor_pages import CursorPagesParams
+
+
+class ContactListParams(typing_extensions.TypedDict):
+ """
+ Contacts are your users in Intercom.
+ """
+
+ type: typing.Literal["list"]
+ """
+ Always list
+ """
+
+ data: typing.Sequence[ContactParams]
+ """
+ The list of contact objects
+ """
+
+ total_count: int
+ """
+ A count of the total number of objects.
+ """
+
+ pages: typing_extensions.NotRequired[CursorPagesParams]
diff --git a/src/intercom/requests/contact_location.py b/src/intercom/requests/contact_location.py
new file mode 100644
index 0000000..19471ac
--- /dev/null
+++ b/src/intercom/requests/contact_location.py
@@ -0,0 +1,31 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing
+
+import typing_extensions
+
+
+class ContactLocationParams(typing_extensions.TypedDict):
+ """
+ An object containing location meta data about a Intercom contact.
+ """
+
+ type: typing.Literal["location"]
+ """
+ Always location
+ """
+
+ country: typing_extensions.NotRequired[str]
+ """
+ The country that the contact is located in
+ """
+
+ region: typing_extensions.NotRequired[str]
+ """
+ The overal region that the contact is located in
+ """
+
+ city: typing_extensions.NotRequired[str]
+ """
+ The city that the contact is located in
+ """
diff --git a/src/intercom/requests/contact_notes.py b/src/intercom/requests/contact_notes.py
new file mode 100644
index 0000000..ac4cfd2
--- /dev/null
+++ b/src/intercom/requests/contact_notes.py
@@ -0,0 +1,32 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing
+
+import typing_extensions
+from .addressable_list import AddressableListParams
+
+
+class ContactNotesParams(typing_extensions.TypedDict):
+ """
+ An object containing notes meta data about the notes that a contact has. Up to 10 will be displayed here. Use the url to get more.
+ """
+
+ data: typing.Sequence[AddressableListParams]
+ """
+ This object represents the notes attached to a contact.
+ """
+
+ url: str
+ """
+ Url to get more company resources for this contact
+ """
+
+ total_count: int
+ """
+ Int representing the total number of companyies attached to this contact
+ """
+
+ has_more: bool
+ """
+ Whether there's more Addressable Objects to be viewed. If true, use the url to view all
+ """
diff --git a/src/intercom/requests/contact_reference.py b/src/intercom/requests/contact_reference.py
new file mode 100644
index 0000000..2fbdb72
--- /dev/null
+++ b/src/intercom/requests/contact_reference.py
@@ -0,0 +1,26 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing
+
+import typing_extensions
+
+
+class ContactReferenceParams(typing_extensions.TypedDict):
+ """
+ reference to contact object
+ """
+
+ type: typing.Literal["contact"]
+ """
+ always contact
+ """
+
+ id: str
+ """
+ The unique identifier for the contact which is given by Intercom.
+ """
+
+ external_id: typing_extensions.NotRequired[str]
+ """
+ The unique identifier for the contact which is provided by the Client.
+ """
diff --git a/src/intercom/requests/contact_reply_base_request.py b/src/intercom/requests/contact_reply_base_request.py
new file mode 100644
index 0000000..8115a6f
--- /dev/null
+++ b/src/intercom/requests/contact_reply_base_request.py
@@ -0,0 +1,24 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing
+
+import typing_extensions
+
+
+class ContactReplyBaseRequestParams(typing_extensions.TypedDict):
+ message_type: typing.Literal["comment"]
+ type: typing.Literal["user"]
+ body: str
+ """
+ The text body of the comment.
+ """
+
+ created_at: typing_extensions.NotRequired[int]
+ """
+ The time the reply was created. If not provided, the current time will be used.
+ """
+
+ attachment_urls: typing_extensions.NotRequired[typing.Sequence[str]]
+ """
+ A list of image URLs that will be added as attachments. You can include up to 10 URLs.
+ """
diff --git a/src/intercom/requests/contact_reply_conversation_request.py b/src/intercom/requests/contact_reply_conversation_request.py
new file mode 100644
index 0000000..cfcec03
--- /dev/null
+++ b/src/intercom/requests/contact_reply_conversation_request.py
@@ -0,0 +1,11 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing
+
+from .contact_reply_email_request import ContactReplyEmailRequestParams
+from .contact_reply_intercom_user_id_request import ContactReplyIntercomUserIdRequestParams
+from .contact_reply_user_id_request import ContactReplyUserIdRequestParams
+
+ContactReplyConversationRequestParams = typing.Union[
+ ContactReplyIntercomUserIdRequestParams, ContactReplyEmailRequestParams, ContactReplyUserIdRequestParams
+]
diff --git a/src/intercom/requests/contact_reply_email_request.py b/src/intercom/requests/contact_reply_email_request.py
new file mode 100644
index 0000000..7f46ba8
--- /dev/null
+++ b/src/intercom/requests/contact_reply_email_request.py
@@ -0,0 +1,23 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing
+
+import typing_extensions
+from .contact_reply_base_request import ContactReplyBaseRequestParams
+from .conversation_attachment_files import ConversationAttachmentFilesParams
+
+
+class ContactReplyEmailRequestParams(ContactReplyBaseRequestParams):
+ """
+ Payload of the request to reply on behalf of a contact using their `email`
+ """
+
+ email: str
+ """
+ The email you have defined for the user.
+ """
+
+ attachment_files: typing_extensions.NotRequired[typing.Sequence[ConversationAttachmentFilesParams]]
+ """
+ A list of files that will be added as attachments.
+ """
diff --git a/src/intercom/requests/contact_reply_intercom_user_id_request.py b/src/intercom/requests/contact_reply_intercom_user_id_request.py
new file mode 100644
index 0000000..31c505d
--- /dev/null
+++ b/src/intercom/requests/contact_reply_intercom_user_id_request.py
@@ -0,0 +1,23 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing
+
+import typing_extensions
+from .contact_reply_base_request import ContactReplyBaseRequestParams
+from .conversation_attachment_files import ConversationAttachmentFilesParams
+
+
+class ContactReplyIntercomUserIdRequestParams(ContactReplyBaseRequestParams):
+ """
+ Payload of the request to reply on behalf of a contact using their `intercom_user_id`
+ """
+
+ intercom_user_id: str
+ """
+ The identifier for the contact as given by Intercom.
+ """
+
+ attachment_files: typing_extensions.NotRequired[typing.Sequence[ConversationAttachmentFilesParams]]
+ """
+ A list of files that will be added as attachments.
+ """
diff --git a/src/intercom/requests/contact_reply_ticket_email_request.py b/src/intercom/requests/contact_reply_ticket_email_request.py
new file mode 100644
index 0000000..2094596
--- /dev/null
+++ b/src/intercom/requests/contact_reply_ticket_email_request.py
@@ -0,0 +1,14 @@
+# This file was auto-generated by Fern from our API Definition.
+
+from .contact_reply_base_request import ContactReplyBaseRequestParams
+
+
+class ContactReplyTicketEmailRequestParams(ContactReplyBaseRequestParams):
+ """
+ Payload of the request to reply on behalf of a contact using their `email`
+ """
+
+ email: str
+ """
+ The email you have defined for the user.
+ """
diff --git a/src/intercom/requests/contact_reply_ticket_intercom_user_id_request.py b/src/intercom/requests/contact_reply_ticket_intercom_user_id_request.py
new file mode 100644
index 0000000..9f1679c
--- /dev/null
+++ b/src/intercom/requests/contact_reply_ticket_intercom_user_id_request.py
@@ -0,0 +1,14 @@
+# This file was auto-generated by Fern from our API Definition.
+
+from .contact_reply_base_request import ContactReplyBaseRequestParams
+
+
+class ContactReplyTicketIntercomUserIdRequestParams(ContactReplyBaseRequestParams):
+ """
+ Payload of the request to reply on behalf of a contact using their `intercom_user_id`
+ """
+
+ intercom_user_id: str
+ """
+ The identifier for the contact as given by Intercom.
+ """
diff --git a/src/intercom/requests/contact_reply_ticket_request.py b/src/intercom/requests/contact_reply_ticket_request.py
new file mode 100644
index 0000000..52fa246
--- /dev/null
+++ b/src/intercom/requests/contact_reply_ticket_request.py
@@ -0,0 +1,13 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing
+
+from .contact_reply_ticket_email_request import ContactReplyTicketEmailRequestParams
+from .contact_reply_ticket_intercom_user_id_request import ContactReplyTicketIntercomUserIdRequestParams
+from .contact_reply_ticket_user_id_request import ContactReplyTicketUserIdRequestParams
+
+ContactReplyTicketRequestParams = typing.Union[
+ ContactReplyTicketIntercomUserIdRequestParams,
+ ContactReplyTicketUserIdRequestParams,
+ ContactReplyTicketEmailRequestParams,
+]
diff --git a/src/intercom/requests/contact_reply_ticket_user_id_request.py b/src/intercom/requests/contact_reply_ticket_user_id_request.py
new file mode 100644
index 0000000..d2e5224
--- /dev/null
+++ b/src/intercom/requests/contact_reply_ticket_user_id_request.py
@@ -0,0 +1,14 @@
+# This file was auto-generated by Fern from our API Definition.
+
+from .contact_reply_base_request import ContactReplyBaseRequestParams
+
+
+class ContactReplyTicketUserIdRequestParams(ContactReplyBaseRequestParams):
+ """
+ Payload of the request to reply on behalf of a contact using their `user_id`
+ """
+
+ user_id: str
+ """
+ The external_id you have defined for the contact.
+ """
diff --git a/src/intercom/requests/contact_reply_user_id_request.py b/src/intercom/requests/contact_reply_user_id_request.py
new file mode 100644
index 0000000..7f06d4e
--- /dev/null
+++ b/src/intercom/requests/contact_reply_user_id_request.py
@@ -0,0 +1,23 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing
+
+import typing_extensions
+from .contact_reply_base_request import ContactReplyBaseRequestParams
+from .conversation_attachment_files import ConversationAttachmentFilesParams
+
+
+class ContactReplyUserIdRequestParams(ContactReplyBaseRequestParams):
+ """
+ Payload of the request to reply on behalf of a contact using their `user_id`
+ """
+
+ user_id: str
+ """
+ The external_id you have defined for the contact.
+ """
+
+ attachment_files: typing_extensions.NotRequired[typing.Sequence[ConversationAttachmentFilesParams]]
+ """
+ A list of files that will be added as attachments. You can include up to 10 files.
+ """
diff --git a/src/intercom/requests/contact_segments.py b/src/intercom/requests/contact_segments.py
new file mode 100644
index 0000000..10f4e0d
--- /dev/null
+++ b/src/intercom/requests/contact_segments.py
@@ -0,0 +1,22 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing
+
+import typing_extensions
+from ..segments.requests.segment import SegmentParams
+
+
+class ContactSegmentsParams(typing_extensions.TypedDict):
+ """
+ A list of segments objects attached to a specific contact.
+ """
+
+ type: typing.Literal["list"]
+ """
+ The type of the object
+ """
+
+ data: typing.Sequence[SegmentParams]
+ """
+ Segment objects associated with the contact.
+ """
diff --git a/src/intercom/requests/contact_social_profiles.py b/src/intercom/requests/contact_social_profiles.py
new file mode 100644
index 0000000..2384e50
--- /dev/null
+++ b/src/intercom/requests/contact_social_profiles.py
@@ -0,0 +1,17 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing
+
+import typing_extensions
+from .social_profile import SocialProfileParams
+
+
+class ContactSocialProfilesParams(typing_extensions.TypedDict):
+ """
+ An object containing social profiles that a contact has.
+ """
+
+ data: typing.Sequence[SocialProfileParams]
+ """
+ A list of social profiles objects associated with the contact.
+ """
diff --git a/src/intercom/requests/contact_subscription_types.py b/src/intercom/requests/contact_subscription_types.py
new file mode 100644
index 0000000..e83fe54
--- /dev/null
+++ b/src/intercom/requests/contact_subscription_types.py
@@ -0,0 +1,32 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing
+
+import typing_extensions
+from .addressable_list import AddressableListParams
+
+
+class ContactSubscriptionTypesParams(typing_extensions.TypedDict):
+ """
+ An object containing Subscription Types meta data about the SubscriptionTypes that a contact has.
+ """
+
+ data: typing.Sequence[AddressableListParams]
+ """
+ This object represents the subscriptions attached to a contact.
+ """
+
+ url: str
+ """
+ Url to get more subscription type resources for this contact
+ """
+
+ total_count: int
+ """
+ Int representing the total number of subscription types attached to this contact
+ """
+
+ has_more: bool
+ """
+ Whether there's more Addressable Objects to be viewed. If true, use the url to view all
+ """
diff --git a/src/intercom/requests/contact_tags.py b/src/intercom/requests/contact_tags.py
new file mode 100644
index 0000000..9584ec3
--- /dev/null
+++ b/src/intercom/requests/contact_tags.py
@@ -0,0 +1,32 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing
+
+import typing_extensions
+from .addressable_list import AddressableListParams
+
+
+class ContactTagsParams(typing_extensions.TypedDict):
+ """
+ An object containing tags meta data about the tags that a contact has. Up to 10 will be displayed here. Use the url to get more.
+ """
+
+ data: typing.Sequence[AddressableListParams]
+ """
+ This object represents the tags attached to a contact.
+ """
+
+ url: str
+ """
+ url to get more tag resources for this contact
+ """
+
+ total_count: int
+ """
+ Int representing the total number of tags attached to this contact
+ """
+
+ has_more: bool
+ """
+ Whether there's more Addressable Objects to be viewed. If true, use the url to view all
+ """
diff --git a/src/intercom/requests/contact_unarchived.py b/src/intercom/requests/contact_unarchived.py
new file mode 100644
index 0000000..c7b3e19
--- /dev/null
+++ b/src/intercom/requests/contact_unarchived.py
@@ -0,0 +1,31 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing
+
+import typing_extensions
+
+
+class ContactUnarchivedParams(typing_extensions.TypedDict):
+ """
+ unarchived contact object
+ """
+
+ type: typing.Literal["contact"]
+ """
+ always contact
+ """
+
+ id: str
+ """
+ The unique identifier for the contact which is given by Intercom.
+ """
+
+ external_id: typing_extensions.NotRequired[str]
+ """
+ The unique identifier for the contact which is provided by the Client.
+ """
+
+ archived: bool
+ """
+ Whether the contact is archived or not.
+ """
diff --git a/src/intercom/requests/content_object.py b/src/intercom/requests/content_object.py
new file mode 100644
index 0000000..6ed1e66
--- /dev/null
+++ b/src/intercom/requests/content_object.py
@@ -0,0 +1,19 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing
+
+import typing_extensions
+from .component import ComponentParams
+
+
+class ContentObjectParams(typing_extensions.TypedDict):
+ """
+ The content object is where you specify the UI of your app. You provide us with a set of `components` in a components array that we then render.
+
+ The content object should usually be returned within the [canvas object](https://developers.intercom.com/docs/references/canvas-kit/responseobjects/canvas). If you're responding to a Live Canvas request however, then you should only respond with the content object.
+ """
+
+ components: typing.Sequence[ComponentParams]
+ """
+ The list of components to be rendered.
+ """
diff --git a/src/intercom/requests/content_sources_list.py b/src/intercom/requests/content_sources_list.py
new file mode 100644
index 0000000..5d7734a
--- /dev/null
+++ b/src/intercom/requests/content_sources_list.py
@@ -0,0 +1,19 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing
+
+import typing_extensions
+from ..ai_content_source.requests.content_source import ContentSourceParams
+
+
+class ContentSourcesListParams(typing_extensions.TypedDict):
+ type: typing.Literal["content_source.list"]
+ total_count: int
+ """
+ The total number of content sources used by AI Agent in the conversation.
+ """
+
+ content_sources: typing.Sequence[ContentSourceParams]
+ """
+ The content sources used by AI Agent in the conversation.
+ """
diff --git a/src/intercom/requests/context.py b/src/intercom/requests/context.py
new file mode 100644
index 0000000..d1f7ba4
--- /dev/null
+++ b/src/intercom/requests/context.py
@@ -0,0 +1,42 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing_extensions
+from ..types.context_location import ContextLocation
+
+
+class ContextParams(typing_extensions.TypedDict):
+ """
+ The context object provides additional details on where the app has been added (or is currently being used), what page the app is being used on, and information on the Messenger settings. This is in order for you give a fully customised experience based on the customers use case.
+
+ If the `location` is `conversation` then you will also be given a `conversation_id`. If you need to use details about the conversation, then you have to use the `conversation_id` to [make a call to our Conversations API and retrieve the conversation object](https://developers.intercom.com/intercom-api-reference/reference#get-a-single-conversation).
+ """
+
+ conversation_id: typing_extensions.NotRequired[int]
+ """
+ The id of the conversation where the app is added or being used.
+ """
+
+ location: typing_extensions.NotRequired[ContextLocation]
+ """
+ Where the app is added or the action took place. Can be either 'conversation', 'home', 'message', or 'operator'.
+ """
+
+ locale: typing_extensions.NotRequired[str]
+ """
+ The default end-user language of the Messenger. Use to localise Messenger App content.
+ """
+
+ messenger_action_colour: typing_extensions.NotRequired[str]
+ """
+ The messengers action colour. Use in Sheets and Icons to make a Messenger App experience feel part of the host Messenger.
+ """
+
+ messenger_background_colour: typing_extensions.NotRequired[str]
+ """
+ The messengers background colour. Use in Sheets and Icons to make a Messenger App experience feel part of the host Messenger.
+ """
+
+ referrer: typing_extensions.NotRequired[str]
+ """
+ The current page URL where the app is being used.
+ """
diff --git a/src/intercom/requests/conversation_attachment_files.py b/src/intercom/requests/conversation_attachment_files.py
new file mode 100644
index 0000000..4e48c48
--- /dev/null
+++ b/src/intercom/requests/conversation_attachment_files.py
@@ -0,0 +1,24 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing_extensions
+
+
+class ConversationAttachmentFilesParams(typing_extensions.TypedDict):
+ """
+ Properties of the attachment files in a conversation part
+ """
+
+ content_type: str
+ """
+ The content type of the file
+ """
+
+ data: str
+ """
+ The base64 encoded file data.
+ """
+
+ name: str
+ """
+ The name of the file.
+ """
diff --git a/src/intercom/requests/conversation_contacts.py b/src/intercom/requests/conversation_contacts.py
new file mode 100644
index 0000000..605d03c
--- /dev/null
+++ b/src/intercom/requests/conversation_contacts.py
@@ -0,0 +1,18 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing
+
+import typing_extensions
+from .contact_reference import ContactReferenceParams
+
+
+class ConversationContactsParams(typing_extensions.TypedDict):
+ """
+ The list of contacts (users or leads) involved in this conversation. This will only contain one customer unless more were added via the group conversation feature.
+ """
+
+ type: typing.Literal["contact.list"]
+ contacts: typing.Sequence[ContactReferenceParams]
+ """
+ The list of contacts (users or leads) involved in this conversation. This will only contain one customer unless more were added via the group conversation feature.
+ """
diff --git a/src/intercom/requests/conversation_first_contact_reply.py b/src/intercom/requests/conversation_first_contact_reply.py
new file mode 100644
index 0000000..c11e1b1
--- /dev/null
+++ b/src/intercom/requests/conversation_first_contact_reply.py
@@ -0,0 +1,24 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing_extensions
+
+
+class ConversationFirstContactReplyParams(typing_extensions.TypedDict):
+ """
+ An object containing information on the first users message. For a contact initiated message this will represent the users original message.
+ """
+
+ created_at: int
+ """
+
+ """
+
+ type: str
+ """
+
+ """
+
+ url: typing_extensions.NotRequired[str]
+ """
+
+ """
diff --git a/src/intercom/requests/conversation_part.py b/src/intercom/requests/conversation_part.py
new file mode 100644
index 0000000..a68a70f
--- /dev/null
+++ b/src/intercom/requests/conversation_part.py
@@ -0,0 +1,70 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing
+
+import typing_extensions
+from .conversation_part_author import ConversationPartAuthorParams
+from .part_attachment import PartAttachmentParams
+from .reference import ReferenceParams
+
+
+class ConversationPartParams(typing_extensions.TypedDict):
+ """
+ A Conversation Part represents a message in the conversation.
+ """
+
+ type: typing.Literal["conversation_part"]
+ """
+ Always conversation_part
+ """
+
+ id: str
+ """
+ The id representing the conversation part.
+ """
+
+ part_type: str
+ """
+ The type of conversation part.
+ """
+
+ body: typing_extensions.NotRequired[str]
+ """
+ The message body, which may contain HTML. For Twitter, this will show a generic message regarding why the body is obscured.
+ """
+
+ created_at: int
+ """
+ The time the conversation part was created.
+ """
+
+ updated_at: typing_extensions.NotRequired[int]
+ """
+ The last time the conversation part was updated.
+ """
+
+ notified_at: int
+ """
+ The time the user was notified with the conversation part.
+ """
+
+ assigned_to: typing_extensions.NotRequired[ReferenceParams]
+ """
+ The id of the admin that was assigned the conversation by this conversation_part (null if there has been no change in assignment.)
+ """
+
+ author: ConversationPartAuthorParams
+ attachments: typing_extensions.NotRequired[typing.Sequence[PartAttachmentParams]]
+ """
+ A list of attachments for the part.
+ """
+
+ external_id: typing_extensions.NotRequired[str]
+ """
+ The external id of the conversation part
+ """
+
+ redacted: bool
+ """
+ Whether or not the conversation part has been redacted.
+ """
diff --git a/src/intercom/requests/conversation_part_author.py b/src/intercom/requests/conversation_part_author.py
new file mode 100644
index 0000000..76dc483
--- /dev/null
+++ b/src/intercom/requests/conversation_part_author.py
@@ -0,0 +1,29 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing_extensions
+
+
+class ConversationPartAuthorParams(typing_extensions.TypedDict):
+ """
+ The object who initiated the conversation, which can be a Contact, Admin or Team. Bots and campaigns send messages on behalf of Admins or Teams. For Twitter, this will be blank.
+ """
+
+ type: str
+ """
+ The type of the author
+ """
+
+ id: str
+ """
+ The id of the author
+ """
+
+ name: str
+ """
+ The name of the author
+ """
+
+ email: str
+ """
+ The email of the author
+ """
diff --git a/src/intercom/requests/conversation_parts.py b/src/intercom/requests/conversation_parts.py
new file mode 100644
index 0000000..afdbe57
--- /dev/null
+++ b/src/intercom/requests/conversation_parts.py
@@ -0,0 +1,27 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing
+
+import typing_extensions
+from .conversation_part import ConversationPartParams
+
+
+class ConversationPartsParams(typing_extensions.TypedDict):
+ """
+ A list of Conversation Part objects for each part message in the conversation. This is only returned when Retrieving a Conversation, and ignored when Listing all Conversations. There is a limit of 500 parts.
+ """
+
+ type: typing.Literal["conversation_part.list"]
+ """
+
+ """
+
+ conversation_parts: typing.Sequence[ConversationPartParams]
+ """
+ A list of Conversation Part objects for each part message in the conversation. This is only returned when Retrieving a Conversation, and ignored when Listing all Conversations. There is a limit of 500 parts.
+ """
+
+ total_count: int
+ """
+
+ """
diff --git a/src/intercom/requests/conversation_rating.py b/src/intercom/requests/conversation_rating.py
new file mode 100644
index 0000000..806965c
--- /dev/null
+++ b/src/intercom/requests/conversation_rating.py
@@ -0,0 +1,29 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing_extensions
+from .contact_reference import ContactReferenceParams
+from .reference import ReferenceParams
+
+
+class ConversationRatingParams(typing_extensions.TypedDict):
+ """
+ The Conversation Rating object which contains information on the rating and/or remark added by a Contact and the Admin assigned to the conversation.
+ """
+
+ rating: int
+ """
+ The rating, between 1 and 5, for the conversation.
+ """
+
+ remark: str
+ """
+ An optional field to add a remark to correspond to the number rating
+ """
+
+ created_at: int
+ """
+ The time the rating was requested in the conversation being rated.
+ """
+
+ contact: ContactReferenceParams
+ teammate: ReferenceParams
diff --git a/src/intercom/requests/conversation_source.py b/src/intercom/requests/conversation_source.py
new file mode 100644
index 0000000..0fc6553
--- /dev/null
+++ b/src/intercom/requests/conversation_source.py
@@ -0,0 +1,55 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing
+
+import typing_extensions
+from ..types.conversation_source_type import ConversationSourceType
+from .conversation_part_author import ConversationPartAuthorParams
+from .part_attachment import PartAttachmentParams
+
+
+class ConversationSourceParams(typing_extensions.TypedDict):
+ """
+ The Conversation Part that originated this conversation, which can be Contact, Admin, Campaign, Automated or Operator initiated.
+ """
+
+ type: ConversationSourceType
+ """
+ This includes conversation, email, facebook, instagram, phone_call, phone_switch, push, sms, twitter and whatsapp.
+ """
+
+ id: str
+ """
+ The id representing the message.
+ """
+
+ delivered_as: str
+ """
+ The conversation's initiation type. Possible values are customer_initiated, campaigns_initiated (legacy campaigns), operator_initiated (Custom bot), automated (Series and other outbounds with dynamic audience message) and admin_initiated (fixed audience message, ticket initiated by an admin, group email).
+ """
+
+ subject: str
+ """
+ Optional. The message subject. For Twitter, this will show a generic message regarding why the subject is obscured.
+ """
+
+ body: typing_extensions.NotRequired[str]
+ """
+ The message body, which may contain HTML. For Twitter, this will show a generic message regarding why the body is obscured.
+ """
+
+ author: ConversationPartAuthorParams
+ attachments: typing_extensions.NotRequired[typing.Sequence[PartAttachmentParams]]
+ """
+ A list of attachments for the part.
+ """
+
+ url: typing_extensions.NotRequired[str]
+ """
+ The URL where the conversation was started. For Twitter, Email, and Bots, this will be blank.
+ """
+
+ redacted: bool
+ """
+ Whether or not the source message has been redacted. Only applicable for contact initiated messages.
+ """
diff --git a/src/intercom/requests/conversation_statistics.py b/src/intercom/requests/conversation_statistics.py
new file mode 100644
index 0000000..5a9f2a8
--- /dev/null
+++ b/src/intercom/requests/conversation_statistics.py
@@ -0,0 +1,106 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing
+
+import typing_extensions
+
+
+class ConversationStatisticsParams(typing_extensions.TypedDict):
+ """
+ A Statistics object containing all information required for reporting, with timestamps and calculated metrics.
+ """
+
+ type: typing.Literal["conversation_statistics"]
+ """
+
+ """
+
+ time_to_assignment: typing_extensions.NotRequired[int]
+ """
+ Duration until last assignment before first admin reply. In seconds.
+ """
+
+ time_to_admin_reply: typing_extensions.NotRequired[int]
+ """
+ Duration until first admin reply. Subtracts out of business hours. In seconds.
+ """
+
+ time_to_first_close: typing_extensions.NotRequired[int]
+ """
+ Duration until conversation was closed first time. Subtracts out of business hours. In seconds.
+ """
+
+ time_to_last_close: typing_extensions.NotRequired[int]
+ """
+ Duration until conversation was closed last time. Subtracts out of business hours. In seconds.
+ """
+
+ median_time_to_reply: typing_extensions.NotRequired[int]
+ """
+ Median based on all admin replies after a contact reply. Subtracts out of business hours. In seconds.
+ """
+
+ first_contact_reply_at: typing_extensions.NotRequired[int]
+ """
+ Time of first text conversation part from a contact.
+ """
+
+ first_assignment_at: typing_extensions.NotRequired[int]
+ """
+ Time of first assignment after first_contact_reply_at.
+ """
+
+ first_admin_reply_at: typing_extensions.NotRequired[int]
+ """
+ Time of first admin reply after first_contact_reply_at.
+ """
+
+ first_close_at: typing_extensions.NotRequired[int]
+ """
+ Time of first close after first_contact_reply_at.
+ """
+
+ last_assignment_at: typing_extensions.NotRequired[int]
+ """
+ Time of last assignment after first_contact_reply_at.
+ """
+
+ last_assignment_admin_reply_at: typing_extensions.NotRequired[int]
+ """
+ Time of first admin reply since most recent assignment.
+ """
+
+ last_contact_reply_at: typing_extensions.NotRequired[int]
+ """
+ Time of the last conversation part from a contact.
+ """
+
+ last_admin_reply_at: typing_extensions.NotRequired[int]
+ """
+ Time of the last conversation part from an admin.
+ """
+
+ last_close_at: typing_extensions.NotRequired[int]
+ """
+ Time of the last conversation close.
+ """
+
+ last_closed_by_id: typing_extensions.NotRequired[str]
+ """
+ The last admin who closed the conversation. Returns a reference to an Admin object.
+ """
+
+ count_reopens: typing_extensions.NotRequired[int]
+ """
+ Number of reopens after first_contact_reply_at.
+ """
+
+ count_assignments: typing_extensions.NotRequired[int]
+ """
+ Number of assignments after first_contact_reply_at.
+ """
+
+ count_conversation_parts: typing_extensions.NotRequired[int]
+ """
+ Total number of conversation parts.
+ """
diff --git a/src/intercom/requests/conversation_teammates.py b/src/intercom/requests/conversation_teammates.py
new file mode 100644
index 0000000..4797c80
--- /dev/null
+++ b/src/intercom/requests/conversation_teammates.py
@@ -0,0 +1,22 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing
+
+import typing_extensions
+from .reference import ReferenceParams
+
+
+class ConversationTeammatesParams(typing_extensions.TypedDict):
+ """
+ The list of teammates who participated in the conversation (wrote at least one conversation part).
+ """
+
+ type: typing.Literal["admin.list"]
+ """
+ The type of the object - `admin.list`.
+ """
+
+ admins: typing.Sequence[ReferenceParams]
+ """
+ The list of teammates who participated in the conversation (wrote at least one conversation part).
+ """
diff --git a/src/intercom/requests/create_contact_request.py b/src/intercom/requests/create_contact_request.py
new file mode 100644
index 0000000..81e67b2
--- /dev/null
+++ b/src/intercom/requests/create_contact_request.py
@@ -0,0 +1,11 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing
+
+from .create_contact_request_with_email import CreateContactRequestWithEmailParams
+from .create_contact_request_with_external_id import CreateContactRequestWithExternalIdParams
+from .create_contact_request_with_role import CreateContactRequestWithRoleParams
+
+CreateContactRequestParams = typing.Union[
+ CreateContactRequestWithEmailParams, CreateContactRequestWithExternalIdParams, CreateContactRequestWithRoleParams
+]
diff --git a/src/intercom/requests/create_contact_request_with_email.py b/src/intercom/requests/create_contact_request_with_email.py
new file mode 100644
index 0000000..e35e03d
--- /dev/null
+++ b/src/intercom/requests/create_contact_request_with_email.py
@@ -0,0 +1,52 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing
+
+import typing_extensions
+
+
+class CreateContactRequestWithEmailParams(typing_extensions.TypedDict):
+ email: str
+ """
+ The contacts email
+ """
+
+ phone: typing_extensions.NotRequired[str]
+ """
+ The contacts phone
+ """
+
+ name: typing_extensions.NotRequired[str]
+ """
+ The contacts name
+ """
+
+ avatar: typing_extensions.NotRequired[str]
+ """
+ An image URL containing the avatar of a contact
+ """
+
+ signed_up_at: typing_extensions.NotRequired[int]
+ """
+ The time specified for when a contact signed up
+ """
+
+ last_seen_at: typing_extensions.NotRequired[int]
+ """
+ The time when the contact was last seen (either where the Intercom Messenger was installed or when specified manually)
+ """
+
+ owner_id: typing_extensions.NotRequired[int]
+ """
+ The id of an admin that has been assigned account ownership of the contact
+ """
+
+ unsubscribed_from_emails: typing_extensions.NotRequired[bool]
+ """
+ Whether the contact is unsubscribed from emails
+ """
+
+ custom_attributes: typing_extensions.NotRequired[typing.Dict[str, typing.Optional[typing.Any]]]
+ """
+ The custom attributes which are set for the contact
+ """
diff --git a/src/intercom/requests/create_contact_request_with_external_id.py b/src/intercom/requests/create_contact_request_with_external_id.py
new file mode 100644
index 0000000..5a670a3
--- /dev/null
+++ b/src/intercom/requests/create_contact_request_with_external_id.py
@@ -0,0 +1,52 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing
+
+import typing_extensions
+
+
+class CreateContactRequestWithExternalIdParams(typing_extensions.TypedDict):
+ external_id: str
+ """
+ A unique identifier for the contact which is given to Intercom
+ """
+
+ phone: typing_extensions.NotRequired[str]
+ """
+ The contacts phone
+ """
+
+ name: typing_extensions.NotRequired[str]
+ """
+ The contacts name
+ """
+
+ avatar: typing_extensions.NotRequired[str]
+ """
+ An image URL containing the avatar of a contact
+ """
+
+ signed_up_at: typing_extensions.NotRequired[int]
+ """
+ The time specified for when a contact signed up
+ """
+
+ last_seen_at: typing_extensions.NotRequired[int]
+ """
+ The time when the contact was last seen (either where the Intercom Messenger was installed or when specified manually)
+ """
+
+ owner_id: typing_extensions.NotRequired[int]
+ """
+ The id of an admin that has been assigned account ownership of the contact
+ """
+
+ unsubscribed_from_emails: typing_extensions.NotRequired[bool]
+ """
+ Whether the contact is unsubscribed from emails
+ """
+
+ custom_attributes: typing_extensions.NotRequired[typing.Dict[str, typing.Optional[typing.Any]]]
+ """
+ The custom attributes which are set for the contact
+ """
diff --git a/src/intercom/requests/create_contact_request_with_role.py b/src/intercom/requests/create_contact_request_with_role.py
new file mode 100644
index 0000000..14bbab5
--- /dev/null
+++ b/src/intercom/requests/create_contact_request_with_role.py
@@ -0,0 +1,52 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing
+
+import typing_extensions
+
+
+class CreateContactRequestWithRoleParams(typing_extensions.TypedDict):
+ role: str
+ """
+ The role of the contact.
+ """
+
+ phone: typing_extensions.NotRequired[str]
+ """
+ The contacts phone
+ """
+
+ name: typing_extensions.NotRequired[str]
+ """
+ The contacts name
+ """
+
+ avatar: typing_extensions.NotRequired[str]
+ """
+ An image URL containing the avatar of a contact
+ """
+
+ signed_up_at: typing_extensions.NotRequired[int]
+ """
+ The time specified for when a contact signed up
+ """
+
+ last_seen_at: typing_extensions.NotRequired[int]
+ """
+ The time when the contact was last seen (either where the Intercom Messenger was installed or when specified manually)
+ """
+
+ owner_id: typing_extensions.NotRequired[int]
+ """
+ The id of an admin that has been assigned account ownership of the contact
+ """
+
+ unsubscribed_from_emails: typing_extensions.NotRequired[bool]
+ """
+ Whether the contact is unsubscribed from emails
+ """
+
+ custom_attributes: typing_extensions.NotRequired[typing.Dict[str, typing.Optional[typing.Any]]]
+ """
+ The custom attributes which are set for the contact
+ """
diff --git a/src/intercom/requests/create_data_event_request.py b/src/intercom/requests/create_data_event_request.py
new file mode 100644
index 0000000..e2b8bad
--- /dev/null
+++ b/src/intercom/requests/create_data_event_request.py
@@ -0,0 +1,11 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing
+
+from .create_data_event_request_with_email import CreateDataEventRequestWithEmailParams
+from .create_data_event_request_with_id import CreateDataEventRequestWithIdParams
+from .create_data_event_request_with_user_id import CreateDataEventRequestWithUserIdParams
+
+CreateDataEventRequestParams = typing.Union[
+ CreateDataEventRequestWithIdParams, CreateDataEventRequestWithUserIdParams, CreateDataEventRequestWithEmailParams
+]
diff --git a/src/intercom/requests/create_data_event_request_with_email.py b/src/intercom/requests/create_data_event_request_with_email.py
new file mode 100644
index 0000000..a894f2b
--- /dev/null
+++ b/src/intercom/requests/create_data_event_request_with_email.py
@@ -0,0 +1,27 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing
+
+import typing_extensions
+
+
+class CreateDataEventRequestWithEmailParams(typing_extensions.TypedDict):
+ email: str
+ """
+ An email address for your user. An email should only be used where your application uses email to uniquely identify users.
+ """
+
+ event_name: str
+ """
+ The name of the event that occurred. This is presented to your App's admins when filtering and creating segments - a good event name is typically a past tense 'verb-noun' combination, to improve readability, for example `updated-plan`.
+ """
+
+ created_at: int
+ """
+ The time the event occurred as a UTC Unix timestamp
+ """
+
+ metadata: typing_extensions.NotRequired[typing.Dict[str, str]]
+ """
+ Optional metadata about the event.
+ """
diff --git a/src/intercom/requests/create_data_event_request_with_id.py b/src/intercom/requests/create_data_event_request_with_id.py
new file mode 100644
index 0000000..b9b1651
--- /dev/null
+++ b/src/intercom/requests/create_data_event_request_with_id.py
@@ -0,0 +1,27 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing
+
+import typing_extensions
+
+
+class CreateDataEventRequestWithIdParams(typing_extensions.TypedDict):
+ id: str
+ """
+ The unique identifier for the contact (lead or user) which is given by Intercom.
+ """
+
+ event_name: str
+ """
+ The name of the event that occurred. This is presented to your App's admins when filtering and creating segments - a good event name is typically a past tense 'verb-noun' combination, to improve readability, for example `updated-plan`.
+ """
+
+ created_at: int
+ """
+ The time the event occurred as a UTC Unix timestamp
+ """
+
+ metadata: typing_extensions.NotRequired[typing.Dict[str, str]]
+ """
+ Optional metadata about the event.
+ """
diff --git a/src/intercom/requests/create_data_event_request_with_user_id.py b/src/intercom/requests/create_data_event_request_with_user_id.py
new file mode 100644
index 0000000..23a3224
--- /dev/null
+++ b/src/intercom/requests/create_data_event_request_with_user_id.py
@@ -0,0 +1,27 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing
+
+import typing_extensions
+
+
+class CreateDataEventRequestWithUserIdParams(typing_extensions.TypedDict):
+ user_id: str
+ """
+ Your identifier for the user.
+ """
+
+ event_name: str
+ """
+ The name of the event that occurred. This is presented to your App's admins when filtering and creating segments - a good event name is typically a past tense 'verb-noun' combination, to improve readability, for example `updated-plan`.
+ """
+
+ created_at: int
+ """
+ The time the event occurred as a UTC Unix timestamp
+ """
+
+ metadata: typing_extensions.NotRequired[typing.Dict[str, str]]
+ """
+ Optional metadata about the event.
+ """
diff --git a/src/intercom/requests/create_message_request.py b/src/intercom/requests/create_message_request.py
new file mode 100644
index 0000000..90738ea
--- /dev/null
+++ b/src/intercom/requests/create_message_request.py
@@ -0,0 +1,35 @@
+# This file was auto-generated by Fern from our API Definition.
+
+from __future__ import annotations
+
+import typing
+
+import typing_extensions
+from ..core.serialization import FieldMetadata
+from .create_message_request_from import CreateMessageRequestFromParams
+from .create_message_request_to import CreateMessageRequestToParams
+
+
+class CreateMessageRequest_EmailParams(typing_extensions.TypedDict):
+ message_type: typing.Literal["email"]
+ subject: str
+ body: str
+ template: str
+ from_: typing_extensions.Annotated[CreateMessageRequestFromParams, FieldMetadata(alias="from")]
+ to: CreateMessageRequestToParams
+ created_at: typing_extensions.NotRequired[int]
+ create_conversation_without_contact_reply: typing_extensions.NotRequired[bool]
+
+
+class CreateMessageRequest_InappParams(typing_extensions.TypedDict):
+ message_type: typing.Literal["inapp"]
+ subject: typing_extensions.NotRequired[str]
+ body: str
+ template: typing_extensions.NotRequired[str]
+ from_: typing_extensions.Annotated[CreateMessageRequestFromParams, FieldMetadata(alias="from")]
+ to: CreateMessageRequestToParams
+ created_at: typing_extensions.NotRequired[int]
+ create_conversation_without_contact_reply: typing_extensions.NotRequired[bool]
+
+
+CreateMessageRequestParams = typing.Union[CreateMessageRequest_EmailParams, CreateMessageRequest_InappParams]
diff --git a/src/intercom/requests/create_message_request_from.py b/src/intercom/requests/create_message_request_from.py
new file mode 100644
index 0000000..90d6c2d
--- /dev/null
+++ b/src/intercom/requests/create_message_request_from.py
@@ -0,0 +1,21 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing
+
+import typing_extensions
+
+
+class CreateMessageRequestFromParams(typing_extensions.TypedDict):
+ """
+ The sender of the message. If not provided, the default sender will be used.
+ """
+
+ type: typing.Literal["admin"]
+ """
+ Always `admin`.
+ """
+
+ id: int
+ """
+ The identifier for the admin which is given by Intercom.
+ """
diff --git a/src/intercom/requests/create_message_request_to.py b/src/intercom/requests/create_message_request_to.py
new file mode 100644
index 0000000..fc6fe94
--- /dev/null
+++ b/src/intercom/requests/create_message_request_to.py
@@ -0,0 +1,20 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing_extensions
+from ..types.create_message_request_type import CreateMessageRequestType
+
+
+class CreateMessageRequestToParams(typing_extensions.TypedDict):
+ """
+ The sender of the message. If not provided, the default sender will be used.
+ """
+
+ type: CreateMessageRequestType
+ """
+ The role associated to the contact - `user` or `lead`.
+ """
+
+ id: str
+ """
+ The identifier for the contact which is given by Intercom.
+ """
diff --git a/src/intercom/requests/create_message_request_with_email.py b/src/intercom/requests/create_message_request_with_email.py
new file mode 100644
index 0000000..f56dfa2
--- /dev/null
+++ b/src/intercom/requests/create_message_request_with_email.py
@@ -0,0 +1,43 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing_extensions
+from ..core.serialization import FieldMetadata
+from .create_message_request_from import CreateMessageRequestFromParams
+from .create_message_request_to import CreateMessageRequestToParams
+
+
+class CreateMessageRequestWithEmailParams(typing_extensions.TypedDict):
+ subject: str
+ """
+ The title of the email.
+ """
+
+ body: str
+ """
+ The content of the message. HTML and plaintext are supported.
+ """
+
+ template: str
+ """
+ The style of the outgoing message. Possible values `plain` or `personal`.
+ """
+
+ from_: typing_extensions.Annotated[CreateMessageRequestFromParams, FieldMetadata(alias="from")]
+ """
+ The sender of the message. If not provided, the default sender will be used.
+ """
+
+ to: CreateMessageRequestToParams
+ """
+ The sender of the message. If not provided, the default sender will be used.
+ """
+
+ created_at: typing_extensions.NotRequired[int]
+ """
+ The time the message was created. If not provided, the current time will be used.
+ """
+
+ create_conversation_without_contact_reply: typing_extensions.NotRequired[bool]
+ """
+ Whether a conversation should be opened in the inbox for the message without the contact replying. Defaults to false if not provided.
+ """
diff --git a/src/intercom/requests/create_message_request_with_inapp.py b/src/intercom/requests/create_message_request_with_inapp.py
new file mode 100644
index 0000000..cd7cc67
--- /dev/null
+++ b/src/intercom/requests/create_message_request_with_inapp.py
@@ -0,0 +1,43 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing_extensions
+from ..core.serialization import FieldMetadata
+from .create_message_request_from import CreateMessageRequestFromParams
+from .create_message_request_to import CreateMessageRequestToParams
+
+
+class CreateMessageRequestWithInappParams(typing_extensions.TypedDict):
+ subject: typing_extensions.NotRequired[str]
+ """
+ The title of the email.
+ """
+
+ body: str
+ """
+ The content of the message. HTML and plaintext are supported.
+ """
+
+ template: typing_extensions.NotRequired[str]
+ """
+ The style of the outgoing message. Possible values `plain` or `personal`.
+ """
+
+ from_: typing_extensions.Annotated[CreateMessageRequestFromParams, FieldMetadata(alias="from")]
+ """
+ The sender of the message. If not provided, the default sender will be used.
+ """
+
+ to: CreateMessageRequestToParams
+ """
+ The sender of the message. If not provided, the default sender will be used.
+ """
+
+ created_at: typing_extensions.NotRequired[int]
+ """
+ The time the message was created. If not provided, the current time will be used.
+ """
+
+ create_conversation_without_contact_reply: typing_extensions.NotRequired[bool]
+ """
+ Whether a conversation should be opened in the inbox for the message without the contact replying. Defaults to false if not provided.
+ """
diff --git a/src/intercom/requests/create_or_update_tag_request.py b/src/intercom/requests/create_or_update_tag_request.py
new file mode 100644
index 0000000..2d24c67
--- /dev/null
+++ b/src/intercom/requests/create_or_update_tag_request.py
@@ -0,0 +1,19 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing_extensions
+
+
+class CreateOrUpdateTagRequestParams(typing_extensions.TypedDict):
+ """
+ You can create or update an existing tag.
+ """
+
+ name: str
+ """
+ The name of the tag, which will be created if not found, or the new name for the tag if this is an update request. Names are case insensitive.
+ """
+
+ id: typing_extensions.NotRequired[str]
+ """
+ The id of tag to updates.
+ """
diff --git a/src/intercom/requests/create_ticket_reply_with_comment_request.py b/src/intercom/requests/create_ticket_reply_with_comment_request.py
new file mode 100644
index 0000000..2944ed2
--- /dev/null
+++ b/src/intercom/requests/create_ticket_reply_with_comment_request.py
@@ -0,0 +1,8 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing
+
+from .admin_reply_ticket_request import AdminReplyTicketRequestParams
+from .contact_reply_ticket_request import ContactReplyTicketRequestParams
+
+CreateTicketReplyWithCommentRequestParams = typing.Union[ContactReplyTicketRequestParams, AdminReplyTicketRequestParams]
diff --git a/src/intercom/requests/create_ticket_request.py b/src/intercom/requests/create_ticket_request.py
new file mode 100644
index 0000000..306caf8
--- /dev/null
+++ b/src/intercom/requests/create_ticket_request.py
@@ -0,0 +1,35 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing
+
+import typing_extensions
+from ..types.ticket_request_custom_attributes import TicketRequestCustomAttributes
+from .create_ticket_request_contacts_item import CreateTicketRequestContactsItemParams
+
+
+class CreateTicketRequestParams(typing_extensions.TypedDict):
+ """
+ You can create a Ticket
+ """
+
+ ticket_type_id: str
+ """
+ The ID of the type of ticket you want to create
+ """
+
+ contacts: typing.Sequence[CreateTicketRequestContactsItemParams]
+ """
+ The list of contacts (users or leads) affected by this ticket. Currently only one is allowed
+ """
+
+ company_id: typing_extensions.NotRequired[str]
+ """
+ The ID of the company that the ticket is associated with. The ID that you set upon company creation.
+ """
+
+ created_at: typing_extensions.NotRequired[int]
+ """
+ The time the ticket was created. If not provided, the current time will be used.
+ """
+
+ ticket_attributes: typing_extensions.NotRequired[TicketRequestCustomAttributes]
diff --git a/src/intercom/requests/create_ticket_request_contacts_item.py b/src/intercom/requests/create_ticket_request_contacts_item.py
new file mode 100644
index 0000000..c6a4617
--- /dev/null
+++ b/src/intercom/requests/create_ticket_request_contacts_item.py
@@ -0,0 +1,13 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing
+
+from .create_ticket_request_contacts_item_email import CreateTicketRequestContactsItemEmailParams
+from .create_ticket_request_contacts_item_external_id import CreateTicketRequestContactsItemExternalIdParams
+from .create_ticket_request_contacts_item_id import CreateTicketRequestContactsItemIdParams
+
+CreateTicketRequestContactsItemParams = typing.Union[
+ CreateTicketRequestContactsItemIdParams,
+ CreateTicketRequestContactsItemExternalIdParams,
+ CreateTicketRequestContactsItemEmailParams,
+]
diff --git a/src/intercom/requests/create_ticket_request_contacts_item_email.py b/src/intercom/requests/create_ticket_request_contacts_item_email.py
new file mode 100644
index 0000000..f0553c7
--- /dev/null
+++ b/src/intercom/requests/create_ticket_request_contacts_item_email.py
@@ -0,0 +1,10 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing_extensions
+
+
+class CreateTicketRequestContactsItemEmailParams(typing_extensions.TypedDict):
+ email: str
+ """
+ The email you have defined for the contact who is being added as a participant. If a contact with this email does not exist, one will be created.
+ """
diff --git a/src/intercom/requests/create_ticket_request_contacts_item_external_id.py b/src/intercom/requests/create_ticket_request_contacts_item_external_id.py
new file mode 100644
index 0000000..cd652dc
--- /dev/null
+++ b/src/intercom/requests/create_ticket_request_contacts_item_external_id.py
@@ -0,0 +1,10 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing_extensions
+
+
+class CreateTicketRequestContactsItemExternalIdParams(typing_extensions.TypedDict):
+ external_id: str
+ """
+ The external_id you have defined for the contact who is being added as a participant.
+ """
diff --git a/src/intercom/requests/create_ticket_request_contacts_item_id.py b/src/intercom/requests/create_ticket_request_contacts_item_id.py
new file mode 100644
index 0000000..b41f4f1
--- /dev/null
+++ b/src/intercom/requests/create_ticket_request_contacts_item_id.py
@@ -0,0 +1,10 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing_extensions
+
+
+class CreateTicketRequestContactsItemIdParams(typing_extensions.TypedDict):
+ id: str
+ """
+ The identifier for the contact as given by Intercom.
+ """
diff --git a/src/intercom/requests/current_canvas.py b/src/intercom/requests/current_canvas.py
new file mode 100644
index 0000000..695b1e7
--- /dev/null
+++ b/src/intercom/requests/current_canvas.py
@@ -0,0 +1,15 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing_extensions
+from .canvas_object import CanvasObjectParams
+
+
+class CurrentCanvasParams(typing_extensions.TypedDict):
+ """
+ The current canvas that was most recently showing before the request was sent. This object mirrors the same format as the Canvas Object.
+ """
+
+ current_canvas: CanvasObjectParams
+ """
+ The canvas object representing the current canvas state.
+ """
diff --git a/src/intercom/requests/cursor_pages.py b/src/intercom/requests/cursor_pages.py
new file mode 100644
index 0000000..d730c4c
--- /dev/null
+++ b/src/intercom/requests/cursor_pages.py
@@ -0,0 +1,34 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing
+
+import typing_extensions
+from .starting_after_paging import StartingAfterPagingParams
+
+
+class CursorPagesParams(typing_extensions.TypedDict):
+ """
+ Cursor-based pagination is a technique used in the Intercom API to navigate through large amounts of data.
+ A "cursor" or pointer is used to keep track of the current position in the result set, allowing the API to return the data in small chunks or "pages" as needed.
+ """
+
+ type: typing.Literal["pages"]
+ """
+ the type of object `pages`.
+ """
+
+ page: typing_extensions.NotRequired[int]
+ """
+ The current page
+ """
+
+ next: typing_extensions.NotRequired[StartingAfterPagingParams]
+ per_page: typing_extensions.NotRequired[int]
+ """
+ Number of results per page
+ """
+
+ total_pages: typing_extensions.NotRequired[int]
+ """
+ Total number of pages
+ """
diff --git a/src/intercom/requests/customer_request.py b/src/intercom/requests/customer_request.py
new file mode 100644
index 0000000..2960d8f
--- /dev/null
+++ b/src/intercom/requests/customer_request.py
@@ -0,0 +1,11 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing
+
+from .customer_request_email import CustomerRequestEmailParams
+from .customer_request_intercom_user_id import CustomerRequestIntercomUserIdParams
+from .customer_request_user_id import CustomerRequestUserIdParams
+
+CustomerRequestParams = typing.Union[
+ CustomerRequestIntercomUserIdParams, CustomerRequestUserIdParams, CustomerRequestEmailParams
+]
diff --git a/src/intercom/requests/customer_request_email.py b/src/intercom/requests/customer_request_email.py
new file mode 100644
index 0000000..7e1a1ab
--- /dev/null
+++ b/src/intercom/requests/customer_request_email.py
@@ -0,0 +1,10 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing_extensions
+
+
+class CustomerRequestEmailParams(typing_extensions.TypedDict):
+ email: str
+ """
+ The email you have defined for the contact who is being added as a participant.
+ """
diff --git a/src/intercom/requests/customer_request_intercom_user_id.py b/src/intercom/requests/customer_request_intercom_user_id.py
new file mode 100644
index 0000000..6faff0b
--- /dev/null
+++ b/src/intercom/requests/customer_request_intercom_user_id.py
@@ -0,0 +1,10 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing_extensions
+
+
+class CustomerRequestIntercomUserIdParams(typing_extensions.TypedDict):
+ intercom_user_id: str
+ """
+ The identifier for the contact as given by Intercom.
+ """
diff --git a/src/intercom/requests/customer_request_user_id.py b/src/intercom/requests/customer_request_user_id.py
new file mode 100644
index 0000000..cc216aa
--- /dev/null
+++ b/src/intercom/requests/customer_request_user_id.py
@@ -0,0 +1,10 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing_extensions
+
+
+class CustomerRequestUserIdParams(typing_extensions.TypedDict):
+ user_id: str
+ """
+ The external_id you have defined for the contact who is being added as a participant.
+ """
diff --git a/src/intercom/requests/data_attribute_list.py b/src/intercom/requests/data_attribute_list.py
new file mode 100644
index 0000000..f1d493c
--- /dev/null
+++ b/src/intercom/requests/data_attribute_list.py
@@ -0,0 +1,22 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing
+
+import typing_extensions
+from ..data_attributes.requests.data_attribute import DataAttributeParams
+
+
+class DataAttributeListParams(typing_extensions.TypedDict):
+ """
+ A list of all data attributes belonging to a workspace for contacts, companies or conversations.
+ """
+
+ type: typing.Literal["list"]
+ """
+ The type of the object
+ """
+
+ data: typing.Sequence[DataAttributeParams]
+ """
+ A list of data attributes
+ """
diff --git a/src/intercom/requests/data_event_list.py b/src/intercom/requests/data_event_list.py
new file mode 100644
index 0000000..a071e7d
--- /dev/null
+++ b/src/intercom/requests/data_event_list.py
@@ -0,0 +1,28 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing
+
+import typing_extensions
+from ..data_events.requests.data_event import DataEventParams
+from .data_event_list_pages import DataEventListPagesParams
+
+
+class DataEventListParams(typing_extensions.TypedDict):
+ """
+ This will return a list of data events for the App.
+ """
+
+ type: typing.Literal["event.list"]
+ """
+ The type of the object
+ """
+
+ events: typing.Sequence[DataEventParams]
+ """
+ A list of data events
+ """
+
+ pages: typing_extensions.NotRequired[DataEventListPagesParams]
+ """
+ Pagination
+ """
diff --git a/src/intercom/requests/data_event_list_pages.py b/src/intercom/requests/data_event_list_pages.py
new file mode 100644
index 0000000..ede9cf4
--- /dev/null
+++ b/src/intercom/requests/data_event_list_pages.py
@@ -0,0 +1,12 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing_extensions
+
+
+class DataEventListPagesParams(typing_extensions.TypedDict):
+ """
+ Pagination
+ """
+
+ next: typing_extensions.NotRequired[str]
+ since: typing_extensions.NotRequired[str]
diff --git a/src/intercom/requests/data_event_summary.py b/src/intercom/requests/data_event_summary.py
new file mode 100644
index 0000000..6a6221f
--- /dev/null
+++ b/src/intercom/requests/data_event_summary.py
@@ -0,0 +1,37 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing
+
+import typing_extensions
+from .data_event_summary_item import DataEventSummaryItemParams
+
+
+class DataEventSummaryParams(typing_extensions.TypedDict):
+ """
+ This will return a summary of data events for the App.
+ """
+
+ type: typing_extensions.NotRequired[typing.Literal["event.summary"]]
+ """
+ The type of the object
+ """
+
+ email: typing_extensions.NotRequired[str]
+ """
+ The email address of the user
+ """
+
+ intercom_user_id: typing_extensions.NotRequired[str]
+ """
+ The Intercom user ID of the user
+ """
+
+ user_id: typing_extensions.NotRequired[str]
+ """
+ The user ID of the user
+ """
+
+ events: typing.Sequence[DataEventSummaryItemParams]
+ """
+ A summary of data events
+ """
diff --git a/src/intercom/requests/data_event_summary_item.py b/src/intercom/requests/data_event_summary_item.py
new file mode 100644
index 0000000..fbecd7a
--- /dev/null
+++ b/src/intercom/requests/data_event_summary_item.py
@@ -0,0 +1,34 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing_extensions
+
+
+class DataEventSummaryItemParams(typing_extensions.TypedDict):
+ """
+ This will return a summary of a data event for the App.
+ """
+
+ name: str
+ """
+ The name of the event
+ """
+
+ first: str
+ """
+ The first time the event was sent
+ """
+
+ last: str
+ """
+ The last time the event was sent
+ """
+
+ count: int
+ """
+ The number of times the event was sent
+ """
+
+ description: typing_extensions.NotRequired[str]
+ """
+ The description of the event
+ """
diff --git a/src/intercom/requests/data_export_csv.py b/src/intercom/requests/data_export_csv.py
new file mode 100644
index 0000000..f67551c
--- /dev/null
+++ b/src/intercom/requests/data_export_csv.py
@@ -0,0 +1,139 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing_extensions
+
+
+class DataExportCsvParams(typing_extensions.TypedDict):
+ """
+ A CSV output file
+ """
+
+ user_id: str
+ """
+ The user_id of the user who was sent the message.
+ """
+
+ user_external_id: typing_extensions.NotRequired[str]
+ """
+ The external_user_id of the user who was sent the message
+ """
+
+ company_id: str
+ """
+ The company ID of the user in relation to the message that was sent. Will return -1 if no company is present.
+ """
+
+ email: str
+ """
+ The users email who was sent the message.
+ """
+
+ name: str
+ """
+ The full name of the user receiving the message
+ """
+
+ ruleset_id: str
+ """
+ The id of the message.
+ """
+
+ content_id: str
+ """
+ The specific content that was received. In an A/B test each version has its own Content ID.
+ """
+
+ content_type: str
+ """
+ Email, Chat, Post etc.
+ """
+
+ content_title: str
+ """
+ The title of the content you see in your Intercom workspace.
+ """
+
+ ruleset_version_id: typing_extensions.NotRequired[str]
+ """
+ As you edit content we record new versions. This ID can help you determine which version of a piece of content that was received.
+ """
+
+ receipt_id: typing_extensions.NotRequired[str]
+ """
+ ID for this receipt. Will be included with any related stats in other files to identify this specific delivery of a message.
+ """
+
+ received_at: typing_extensions.NotRequired[int]
+ """
+ Timestamp for when the receipt was recorded.
+ """
+
+ series_id: typing_extensions.NotRequired[str]
+ """
+ The id of the series that this content is part of. Will return -1 if not part of a series.
+ """
+
+ series_title: typing_extensions.NotRequired[str]
+ """
+ The title of the series that this content is part of.
+ """
+
+ node_id: typing_extensions.NotRequired[str]
+ """
+ The id of the series node that this ruleset is associated with. Each block in a series has a corresponding node_id.
+ """
+
+ first_reply: typing_extensions.NotRequired[int]
+ """
+ The first time a user replied to this message if the content was able to receive replies.
+ """
+
+ first_completion: typing_extensions.NotRequired[int]
+ """
+ The first time a user completed this message if the content was able to be completed e.g. Tours, Surveys.
+ """
+
+ first_series_completion: typing_extensions.NotRequired[int]
+ """
+ The first time the series this message was a part of was completed by the user.
+ """
+
+ first_series_disengagement: typing_extensions.NotRequired[int]
+ """
+ The first time the series this message was a part of was disengaged by the user.
+ """
+
+ first_series_exit: typing_extensions.NotRequired[int]
+ """
+ The first time the series this message was a part of was exited by the user.
+ """
+
+ first_goal_success: typing_extensions.NotRequired[int]
+ """
+ The first time the user met this messages associated goal if one exists.
+ """
+
+ first_open: typing_extensions.NotRequired[int]
+ """
+ The first time the user opened this message.
+ """
+
+ first_click: typing_extensions.NotRequired[int]
+ """
+ The first time the series the user clicked on a link within this message.
+ """
+
+ first_dismisall: typing_extensions.NotRequired[int]
+ """
+ The first time the series the user dismissed this message.
+ """
+
+ first_unsubscribe: typing_extensions.NotRequired[int]
+ """
+ The first time the user unsubscribed from this message.
+ """
+
+ first_hard_bounce: typing_extensions.NotRequired[int]
+ """
+ The first time this message hard bounced for this user
+ """
diff --git a/src/intercom/requests/data_table_component.py b/src/intercom/requests/data_table_component.py
new file mode 100644
index 0000000..4169ed6
--- /dev/null
+++ b/src/intercom/requests/data_table_component.py
@@ -0,0 +1,17 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing
+
+import typing_extensions
+from .data_table_item import DataTableItemParams
+
+
+class DataTableComponentParams(typing_extensions.TypedDict):
+ """
+ A data-table component is used for rendering a table of key-value pairs. For Messenger, text will wrap around on multiple lines. For Inbox and Frame (ie. Configure) views, we will truncate and use tooltips on hover if the text overflows.
+ """
+
+ items: typing.Sequence[DataTableItemParams]
+ """
+ The items that will be rendered in the data-table.
+ """
diff --git a/src/intercom/requests/data_table_item.py b/src/intercom/requests/data_table_item.py
new file mode 100644
index 0000000..f760ca4
--- /dev/null
+++ b/src/intercom/requests/data_table_item.py
@@ -0,0 +1,26 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing
+
+import typing_extensions
+
+
+class DataTableItemParams(typing_extensions.TypedDict):
+ """
+ A field-value pair component for use in a data table.
+ """
+
+ type: typing.Literal["field-value"]
+ """
+ The type of component you are rendering.
+ """
+
+ field: str
+ """
+ The text of the key in your key-value pair.
+ """
+
+ value: str
+ """
+ The text of the value in your key-value pair.
+ """
diff --git a/src/intercom/requests/deleted_article_object.py b/src/intercom/requests/deleted_article_object.py
new file mode 100644
index 0000000..afc6f49
--- /dev/null
+++ b/src/intercom/requests/deleted_article_object.py
@@ -0,0 +1,26 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing
+
+import typing_extensions
+
+
+class DeletedArticleObjectParams(typing_extensions.TypedDict):
+ """
+ Response returned when an object is deleted
+ """
+
+ id: str
+ """
+ The unique identifier for the article which you provided in the URL.
+ """
+
+ object: typing.Literal["article"]
+ """
+ The type of object which was deleted. - article
+ """
+
+ deleted: bool
+ """
+ Whether the article was deleted successfully or not.
+ """
diff --git a/src/intercom/requests/deleted_collection_object.py b/src/intercom/requests/deleted_collection_object.py
new file mode 100644
index 0000000..73afcd9
--- /dev/null
+++ b/src/intercom/requests/deleted_collection_object.py
@@ -0,0 +1,26 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing
+
+import typing_extensions
+
+
+class DeletedCollectionObjectParams(typing_extensions.TypedDict):
+ """
+ Response returned when an object is deleted
+ """
+
+ id: str
+ """
+ The unique identifier for the collection which you provided in the URL.
+ """
+
+ object: typing.Literal["collection"]
+ """
+ The type of object which was deleted. - `collection`
+ """
+
+ deleted: bool
+ """
+ Whether the collection was deleted successfully or not.
+ """
diff --git a/src/intercom/requests/deleted_company_object.py b/src/intercom/requests/deleted_company_object.py
new file mode 100644
index 0000000..4bbed00
--- /dev/null
+++ b/src/intercom/requests/deleted_company_object.py
@@ -0,0 +1,26 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing
+
+import typing_extensions
+
+
+class DeletedCompanyObjectParams(typing_extensions.TypedDict):
+ """
+ Response returned when an object is deleted
+ """
+
+ id: str
+ """
+ The unique identifier for the company which is given by Intercom.
+ """
+
+ object: typing.Literal["company"]
+ """
+ The type of object which was deleted. - `company`
+ """
+
+ deleted: bool
+ """
+ Whether the company was deleted successfully or not.
+ """
diff --git a/src/intercom/requests/deleted_object.py b/src/intercom/requests/deleted_object.py
new file mode 100644
index 0000000..29b9046
--- /dev/null
+++ b/src/intercom/requests/deleted_object.py
@@ -0,0 +1,26 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing
+
+import typing_extensions
+
+
+class DeletedObjectParams(typing_extensions.TypedDict):
+ """
+ Response returned when an object is deleted
+ """
+
+ id: str
+ """
+ The unique identifier for the news item which you provided in the URL.
+ """
+
+ object: typing.Literal["news-item"]
+ """
+ The type of object which was deleted - news-item.
+ """
+
+ deleted: bool
+ """
+ Whether the news item was deleted successfully or not.
+ """
diff --git a/src/intercom/requests/divider_component.py b/src/intercom/requests/divider_component.py
new file mode 100644
index 0000000..390ee73
--- /dev/null
+++ b/src/intercom/requests/divider_component.py
@@ -0,0 +1,21 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing
+
+import typing_extensions
+
+
+class DividerComponentParams(typing_extensions.TypedDict):
+ """
+ A divider component is used to separate components with a line.
+ """
+
+ id: typing_extensions.NotRequired[str]
+ """
+ A unique identifier for the component.
+ """
+
+ bottom_margin: typing_extensions.NotRequired[typing.Literal["none"]]
+ """
+ Disables a component's margin-bottom of 10px.
+ """
diff --git a/src/intercom/requests/dropdown_component.py b/src/intercom/requests/dropdown_component.py
new file mode 100644
index 0000000..24eec81
--- /dev/null
+++ b/src/intercom/requests/dropdown_component.py
@@ -0,0 +1,45 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing
+
+import typing_extensions
+from ..types.dropdown_component_save_state import DropdownComponentSaveState
+from .dropdown_option import DropdownOptionParams
+
+
+class DropdownComponentParams(typing_extensions.TypedDict):
+ """
+ A dropdown component is used to capture a choice from the options that you provide.
+
+ When submitted, the dropdown choices are returned in a hash with the id from the dropdown component used as the key and the id from the chosen option as the value.
+ """
+
+ id: str
+ """
+ A unique identifier for the component.
+ """
+
+ options: typing.Sequence[DropdownOptionParams]
+ """
+ The list of options. Can provide 2 to 10.
+ """
+
+ label: typing_extensions.NotRequired[str]
+ """
+ The text shown above the dropdown.
+ """
+
+ value: typing_extensions.NotRequired[str]
+ """
+ The option that is selected by default.
+ """
+
+ save_state: typing_extensions.NotRequired[DropdownComponentSaveState]
+ """
+ Styles all options and prevents the action. Default is `unsaved`. Will be overridden if `save_state` is `saved`.
+ """
+
+ disabled: typing_extensions.NotRequired[bool]
+ """
+ Styles all options and prevents the action. Default is false. Will be overridden if save_state is saved.
+ """
diff --git a/src/intercom/requests/dropdown_option.py b/src/intercom/requests/dropdown_option.py
new file mode 100644
index 0000000..1d80120
--- /dev/null
+++ b/src/intercom/requests/dropdown_option.py
@@ -0,0 +1,31 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing
+
+import typing_extensions
+
+
+class DropdownOptionParams(typing_extensions.TypedDict):
+ """
+ A dropdown option component that can be selected.
+ """
+
+ type: typing.Literal["option"]
+ """
+ The type of component you are rendering.
+ """
+
+ id: str
+ """
+ A unique identifier for the option.
+ """
+
+ text: str
+ """
+ The text shown within this option.
+ """
+
+ disabled: typing_extensions.NotRequired[bool]
+ """
+ Styles the option and prevents the action. Default is false.
+ """
diff --git a/src/intercom/requests/error.py b/src/intercom/requests/error.py
new file mode 100644
index 0000000..91d8fac
--- /dev/null
+++ b/src/intercom/requests/error.py
@@ -0,0 +1,27 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing
+
+import typing_extensions
+from .error_errors_item import ErrorErrorsItemParams
+
+
+class ErrorParams(typing_extensions.TypedDict):
+ """
+ The API will return an Error List for a failed request, which will contain one or more Error objects.
+ """
+
+ type: typing.Literal["error.list"]
+ """
+ The type is error.list
+ """
+
+ request_id: typing_extensions.NotRequired[str]
+ """
+
+ """
+
+ errors: typing.Sequence[ErrorErrorsItemParams]
+ """
+ An array of one or more error objects
+ """
diff --git a/src/intercom/requests/error_errors_item.py b/src/intercom/requests/error_errors_item.py
new file mode 100644
index 0000000..4730c1c
--- /dev/null
+++ b/src/intercom/requests/error_errors_item.py
@@ -0,0 +1,20 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing_extensions
+
+
+class ErrorErrorsItemParams(typing_extensions.TypedDict):
+ code: str
+ """
+ A string indicating the kind of error, used to further qualify the HTTP response code
+ """
+
+ message: typing_extensions.NotRequired[str]
+ """
+ Optional. Human readable description of the error.
+ """
+
+ field: typing_extensions.NotRequired[str]
+ """
+ Optional. Used to identify a particular field or query parameter that was in error.
+ """
diff --git a/src/intercom/requests/event.py b/src/intercom/requests/event.py
new file mode 100644
index 0000000..a10b467
--- /dev/null
+++ b/src/intercom/requests/event.py
@@ -0,0 +1,16 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing
+
+import typing_extensions
+
+
+class EventParams(typing_extensions.TypedDict):
+ """
+ The event object enables Intercom to know more about the actions that took place in your app. Currently, you can only tell us when an app's flow has been completed.
+ """
+
+ type: typing.Literal["completed"]
+ """
+ What action took place. The only value currently accepted is `completed`.
+ """
diff --git a/src/intercom/requests/file_attribute.py b/src/intercom/requests/file_attribute.py
new file mode 100644
index 0000000..5356291
--- /dev/null
+++ b/src/intercom/requests/file_attribute.py
@@ -0,0 +1,40 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing_extensions
+
+
+class FileAttributeParams(typing_extensions.TypedDict):
+ """
+ The value describing a file upload set for a custom attribute
+ """
+
+ type: str
+ name: str
+ """
+ The name of the file
+ """
+
+ url: str
+ """
+ The url of the file. This is a temporary URL and will expire after 30 minutes.
+ """
+
+ content_type: str
+ """
+ The type of file
+ """
+
+ filesize: int
+ """
+ The size of the file in bytes
+ """
+
+ width: int
+ """
+ The width of the file in pixels, if applicable
+ """
+
+ height: int
+ """
+ The height of the file in pixels, if applicable
+ """
diff --git a/src/intercom/requests/group_content.py b/src/intercom/requests/group_content.py
new file mode 100644
index 0000000..310145a
--- /dev/null
+++ b/src/intercom/requests/group_content.py
@@ -0,0 +1,26 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing
+
+import typing_extensions
+
+
+class GroupContentParams(typing_extensions.TypedDict):
+ """
+ The Content of a Group.
+ """
+
+ type: typing.Literal["group_content"]
+ """
+ The type of object - `group_content` .
+ """
+
+ name: str
+ """
+ The name of the collection or section.
+ """
+
+ description: str
+ """
+ The description of the collection. Only available for collections.
+ """
diff --git a/src/intercom/requests/group_translated_content.py b/src/intercom/requests/group_translated_content.py
new file mode 100644
index 0000000..8e9f78c
--- /dev/null
+++ b/src/intercom/requests/group_translated_content.py
@@ -0,0 +1,203 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing
+
+import typing_extensions
+from ..core.serialization import FieldMetadata
+from .group_content import GroupContentParams
+
+
+class GroupTranslatedContentParams(typing_extensions.TypedDict):
+ """
+ The Translated Content of an Group. The keys are the locale codes and the values are the translated content of the Group.
+ """
+
+ type: typing.Literal["group_translated_content"]
+ """
+ The type of object - group_translated_content.
+ """
+
+ ar: typing_extensions.NotRequired[GroupContentParams]
+ """
+ The content of the group in Arabic
+ """
+
+ bg: typing_extensions.NotRequired[GroupContentParams]
+ """
+ The content of the group in Bulgarian
+ """
+
+ bs: typing_extensions.NotRequired[GroupContentParams]
+ """
+ The content of the group in Bosnian
+ """
+
+ ca: typing_extensions.NotRequired[GroupContentParams]
+ """
+ The content of the group in Catalan
+ """
+
+ cs: typing_extensions.NotRequired[GroupContentParams]
+ """
+ The content of the group in Czech
+ """
+
+ da: typing_extensions.NotRequired[GroupContentParams]
+ """
+ The content of the group in Danish
+ """
+
+ de: typing_extensions.NotRequired[GroupContentParams]
+ """
+ The content of the group in German
+ """
+
+ el: typing_extensions.NotRequired[GroupContentParams]
+ """
+ The content of the group in Greek
+ """
+
+ en: typing_extensions.NotRequired[GroupContentParams]
+ """
+ The content of the group in English
+ """
+
+ es: typing_extensions.NotRequired[GroupContentParams]
+ """
+ The content of the group in Spanish
+ """
+
+ et: typing_extensions.NotRequired[GroupContentParams]
+ """
+ The content of the group in Estonian
+ """
+
+ fi: typing_extensions.NotRequired[GroupContentParams]
+ """
+ The content of the group in Finnish
+ """
+
+ fr: typing_extensions.NotRequired[GroupContentParams]
+ """
+ The content of the group in French
+ """
+
+ he: typing_extensions.NotRequired[GroupContentParams]
+ """
+ The content of the group in Hebrew
+ """
+
+ hr: typing_extensions.NotRequired[GroupContentParams]
+ """
+ The content of the group in Croatian
+ """
+
+ hu: typing_extensions.NotRequired[GroupContentParams]
+ """
+ The content of the group in Hungarian
+ """
+
+ id: typing_extensions.NotRequired[GroupContentParams]
+ """
+ The content of the group in Indonesian
+ """
+
+ it: typing_extensions.NotRequired[GroupContentParams]
+ """
+ The content of the group in Italian
+ """
+
+ ja: typing_extensions.NotRequired[GroupContentParams]
+ """
+ The content of the group in Japanese
+ """
+
+ ko: typing_extensions.NotRequired[GroupContentParams]
+ """
+ The content of the group in Korean
+ """
+
+ lt: typing_extensions.NotRequired[GroupContentParams]
+ """
+ The content of the group in Lithuanian
+ """
+
+ lv: typing_extensions.NotRequired[GroupContentParams]
+ """
+ The content of the group in Latvian
+ """
+
+ mn: typing_extensions.NotRequired[GroupContentParams]
+ """
+ The content of the group in Mongolian
+ """
+
+ nb: typing_extensions.NotRequired[GroupContentParams]
+ """
+ The content of the group in Norwegian
+ """
+
+ nl: typing_extensions.NotRequired[GroupContentParams]
+ """
+ The content of the group in Dutch
+ """
+
+ pl: typing_extensions.NotRequired[GroupContentParams]
+ """
+ The content of the group in Polish
+ """
+
+ pt: typing_extensions.NotRequired[GroupContentParams]
+ """
+ The content of the group in Portuguese (Portugal)
+ """
+
+ ro: typing_extensions.NotRequired[GroupContentParams]
+ """
+ The content of the group in Romanian
+ """
+
+ ru: typing_extensions.NotRequired[GroupContentParams]
+ """
+ The content of the group in Russian
+ """
+
+ sl: typing_extensions.NotRequired[GroupContentParams]
+ """
+ The content of the group in Slovenian
+ """
+
+ sr: typing_extensions.NotRequired[GroupContentParams]
+ """
+ The content of the group in Serbian
+ """
+
+ sv: typing_extensions.NotRequired[GroupContentParams]
+ """
+ The content of the group in Swedish
+ """
+
+ tr: typing_extensions.NotRequired[GroupContentParams]
+ """
+ The content of the group in Turkish
+ """
+
+ vi: typing_extensions.NotRequired[GroupContentParams]
+ """
+ The content of the group in Vietnamese
+ """
+
+ pt_br: typing_extensions.NotRequired[typing_extensions.Annotated[GroupContentParams, FieldMetadata(alias="pt-BR")]]
+ """
+ The content of the group in Portuguese (Brazil)
+ """
+
+ zh_cn: typing_extensions.NotRequired[typing_extensions.Annotated[GroupContentParams, FieldMetadata(alias="zh-CN")]]
+ """
+ The content of the group in Chinese (China)
+ """
+
+ zh_tw: typing_extensions.NotRequired[typing_extensions.Annotated[GroupContentParams, FieldMetadata(alias="zh-TW")]]
+ """
+ The content of the group in Chinese (Taiwan)
+ """
diff --git a/src/intercom/requests/image_component.py b/src/intercom/requests/image_component.py
new file mode 100644
index 0000000..8380cb4
--- /dev/null
+++ b/src/intercom/requests/image_component.py
@@ -0,0 +1,56 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing
+
+import typing_extensions
+from ..types.image_component_align import ImageComponentAlign
+from .url_action_component import UrlActionComponentParams
+
+
+class ImageComponentParams(typing_extensions.TypedDict):
+ """
+ An image component is used to display an image.
+
+ HTTPS Images:
+ If your request URLs (or website URLs) are over HTTPS, you will need to ensure that images are loaded over HTTPS likewise. Otherwise, they will not work.
+ """
+
+ id: typing_extensions.NotRequired[str]
+ """
+ A unique identifier for the component.
+ """
+
+ url: str
+ """
+ The URL where the image is located.
+ """
+
+ align: typing_extensions.NotRequired[ImageComponentAlign]
+ """
+ Aligns the image inside the component. Default is `left`.
+ """
+
+ width: int
+ """
+ The exact width of the image in pixels.
+ """
+
+ height: int
+ """
+ The exact height of the image in pixels.
+ """
+
+ rounded: typing_extensions.NotRequired[bool]
+ """
+ Rounds the corners of the image. Default is `false`.
+ """
+
+ bottom_margin: typing_extensions.NotRequired[typing.Literal["none"]]
+ """
+ Disables a component's margin-bottom of 10px.
+ """
+
+ action: typing_extensions.NotRequired[UrlActionComponentParams]
+ """
+ This can be a URL Action only.
+ """
diff --git a/src/intercom/requests/initialize_request.py b/src/intercom/requests/initialize_request.py
new file mode 100644
index 0000000..3eb25a7
--- /dev/null
+++ b/src/intercom/requests/initialize_request.py
@@ -0,0 +1,50 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing
+
+import typing_extensions
+from ..admins.requests.admin import AdminParams
+from ..contacts.requests.contact import ContactParams
+from ..conversations.requests.conversation import ConversationParams
+from .context import ContextParams
+
+
+class InitializeRequestParams(typing_extensions.TypedDict):
+ """
+ The request payload will have all the data needed for you to understand who is using your app, where they are using it, and how you should respond. There are different request payloads for Messenger capabilities and Inbox capabilities.
+ """
+
+ workspace_id: str
+ """
+ The workspace ID of the teammate. Attribute is `app_id` for V1.2 and below.
+ """
+
+ workspace_region: str
+ """
+ The Intercom hosted region that this app is located in.
+ """
+
+ admin: AdminParams
+ """
+ The Intercom teammate viewing the conversation.
+ """
+
+ card_creation_options: typing.Dict[str, typing.Optional[typing.Any]]
+ """
+ Key-value pairs which were given as results in response to the Configure request.
+ """
+
+ context: ContextParams
+ """
+ The context of where the app is added, where the user last visited, and information on the Messenger settings.
+ """
+
+ conversation: ConversationParams
+ """
+ The conversation your app is being shown for.
+ """
+
+ contact: ContactParams
+ """
+ The contact which is currently being viewed by the teammate in the conversation details panel. We send an individual initialize request for each customer when it's a group conversation.
+ """
diff --git a/src/intercom/requests/initialize_response.py b/src/intercom/requests/initialize_response.py
new file mode 100644
index 0000000..6fe8cd5
--- /dev/null
+++ b/src/intercom/requests/initialize_response.py
@@ -0,0 +1,15 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing_extensions
+from .canvas_object import CanvasObjectParams
+
+
+class InitializeResponseParams(typing_extensions.TypedDict):
+ """
+ The response object returned when initializing an app, specifying the UI for the first screen using components.
+ """
+
+ canvas: CanvasObjectParams
+ """
+ The canvas object that defines the UI to be shown for the app.
+ """
diff --git a/src/intercom/requests/input_component.py b/src/intercom/requests/input_component.py
new file mode 100644
index 0000000..bd38542
--- /dev/null
+++ b/src/intercom/requests/input_component.py
@@ -0,0 +1,49 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing_extensions
+from ..types.input_component_save_state import InputComponentSaveState
+from .action_component import ActionComponentParams
+
+
+class InputComponentParams(typing_extensions.TypedDict):
+ """
+ An input component is used to capture text input from the end user. You can submit the value of the input by:
+
+ - Adding an `action` to the input component (which will render an inline button)
+ - Using a ButtonComponent (which will submit all interactive components in the canvas)
+ """
+
+ id: str
+ """
+ A unique identifier for the component.
+ """
+
+ label: typing_extensions.NotRequired[str]
+ """
+ The text shown above the input.
+ """
+
+ placeholder: typing_extensions.NotRequired[str]
+ """
+ An example value shown inside the component when it's empty.
+ """
+
+ value: typing_extensions.NotRequired[str]
+ """
+ An entered value which is already inside the component.
+ """
+
+ action: typing_extensions.NotRequired[ActionComponentParams]
+ """
+ This can be a Submit Action, URL Action, or Sheets Action.
+ """
+
+ save_state: typing_extensions.NotRequired[InputComponentSaveState]
+ """
+ Styles the input. Default is `unsaved`. Prevent action with `saved`.
+ """
+
+ disabled: typing_extensions.NotRequired[bool]
+ """
+ Styles the input and prevents the action. Default is false. Will be overridden if save_state is saved.
+ """
diff --git a/src/intercom/requests/linked_object.py b/src/intercom/requests/linked_object.py
new file mode 100644
index 0000000..96da481
--- /dev/null
+++ b/src/intercom/requests/linked_object.py
@@ -0,0 +1,25 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing_extensions
+from ..types.linked_object_type import LinkedObjectType
+
+
+class LinkedObjectParams(typing_extensions.TypedDict):
+ """
+ A linked conversation or ticket.
+ """
+
+ type: LinkedObjectType
+ """
+ ticket or conversation
+ """
+
+ id: str
+ """
+ The ID of the linked object
+ """
+
+ category: typing_extensions.NotRequired[str]
+ """
+ Category of the Linked Ticket Object.
+ """
diff --git a/src/intercom/requests/linked_object_list.py b/src/intercom/requests/linked_object_list.py
new file mode 100644
index 0000000..48ea527
--- /dev/null
+++ b/src/intercom/requests/linked_object_list.py
@@ -0,0 +1,32 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing
+
+import typing_extensions
+from .linked_object import LinkedObjectParams
+
+
+class LinkedObjectListParams(typing_extensions.TypedDict):
+ """
+ An object containing metadata about linked conversations and linked tickets. Up to 1000 can be returned.
+ """
+
+ type: typing.Literal["list"]
+ """
+ Always list.
+ """
+
+ total_count: int
+ """
+ The total number of linked objects.
+ """
+
+ has_more: bool
+ """
+ Whether or not there are more linked objects than returned.
+ """
+
+ data: typing.Sequence[LinkedObjectParams]
+ """
+ An array containing the linked conversations and linked tickets.
+ """
diff --git a/src/intercom/requests/list_component.py b/src/intercom/requests/list_component.py
new file mode 100644
index 0000000..c72d63a
--- /dev/null
+++ b/src/intercom/requests/list_component.py
@@ -0,0 +1,26 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing
+
+import typing_extensions
+from .list_component_items_item import ListComponentItemsItemParams
+
+
+class ListComponentParams(typing_extensions.TypedDict):
+ """
+ A list component renders a list of items which you provide in an array. You can make each list item take an action by adding the relevant action object to the item:
+
+ - [Trigger a submit request to be sent](https://developers.intercom.com/docs/references/canvas-kit/actioncomponents/submit-action) Inbox Messenger
+ - [Open a link in a new page](https://developers.intercom.com/docs/references/canvas-kit/actioncomponents/url-action) Inbox Messenger
+ - [Open a sheet](https://developers.intercom.com/docs/references/canvas-kit/actioncomponents/sheets-action) Messenger
+ """
+
+ items: typing.Sequence[ListComponentItemsItemParams]
+ """
+ The items that will be rendered in the list.
+ """
+
+ disabled: typing_extensions.NotRequired[bool]
+ """
+ Styles all list items and prevents the action. Default is `false`.
+ """
diff --git a/src/intercom/requests/list_component_items_item.py b/src/intercom/requests/list_component_items_item.py
new file mode 100644
index 0000000..6b08989
--- /dev/null
+++ b/src/intercom/requests/list_component_items_item.py
@@ -0,0 +1,8 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing
+
+from .list_item_with_image import ListItemWithImageParams
+from .list_item_without_image import ListItemWithoutImageParams
+
+ListComponentItemsItemParams = typing.Union[ListItemWithImageParams, ListItemWithoutImageParams]
diff --git a/src/intercom/requests/list_item.py b/src/intercom/requests/list_item.py
new file mode 100644
index 0000000..0a8d37e
--- /dev/null
+++ b/src/intercom/requests/list_item.py
@@ -0,0 +1,52 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing
+
+import typing_extensions
+from .action_component import ActionComponentParams
+
+
+class ListItemParams(typing_extensions.TypedDict):
+ """
+ A list item component that can be rendered in a list.
+ """
+
+ type: typing.Literal["item"]
+ """
+ The type of component you are rendering.
+ """
+
+ id: str
+ """
+ A unique identifier for the item.
+ """
+
+ title: str
+ """
+ The text shown as the title for the item.
+ """
+
+ subtitle: typing_extensions.NotRequired[str]
+ """
+ The text shown underneath the item's title.
+ """
+
+ tertiary_text: typing_extensions.NotRequired[str]
+ """
+ The text shown next to the subtitle, separates by a bullet.
+ """
+
+ rounded_image: typing_extensions.NotRequired[bool]
+ """
+ Rounds the corners of the image. Default is `false`.
+ """
+
+ disabled: typing_extensions.NotRequired[bool]
+ """
+ Styles all list items and prevents the action. Default is `false`.
+ """
+
+ action: typing_extensions.NotRequired[ActionComponentParams]
+ """
+ This can be a Submit Action, URL Action, or Sheets Action.
+ """
diff --git a/src/intercom/requests/list_item_with_image.py b/src/intercom/requests/list_item_with_image.py
new file mode 100644
index 0000000..f0f6cec
--- /dev/null
+++ b/src/intercom/requests/list_item_with_image.py
@@ -0,0 +1,20 @@
+# This file was auto-generated by Fern from our API Definition.
+
+from .list_item import ListItemParams
+
+
+class ListItemWithImageParams(ListItemParams):
+ image: str
+ """
+ An image that will be displayed to the left of the item.
+ """
+
+ image_width: int
+ """
+ The exact width of the image in pixels.
+ """
+
+ image_height: int
+ """
+ The exact height of the image in pixels.
+ """
diff --git a/src/intercom/requests/list_item_without_image.py b/src/intercom/requests/list_item_without_image.py
new file mode 100644
index 0000000..c1bfead
--- /dev/null
+++ b/src/intercom/requests/list_item_without_image.py
@@ -0,0 +1,21 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing_extensions
+from .list_item import ListItemParams
+
+
+class ListItemWithoutImageParams(ListItemParams):
+ image: typing_extensions.NotRequired[str]
+ """
+ An image that will be displayed to the left of the item.
+ """
+
+ image_width: typing_extensions.NotRequired[int]
+ """
+ The exact width of the image in pixels.
+ """
+
+ image_height: typing_extensions.NotRequired[int]
+ """
+ The exact height of the image in pixels.
+ """
diff --git a/src/intercom/requests/live_canvas_request.py b/src/intercom/requests/live_canvas_request.py
new file mode 100644
index 0000000..fe1791d
--- /dev/null
+++ b/src/intercom/requests/live_canvas_request.py
@@ -0,0 +1,39 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing_extensions
+from ..contacts.requests.contact import ContactParams
+from .canvas_object import CanvasObjectParams
+from .context import ContextParams
+
+
+class LiveCanvasRequestParams(typing_extensions.TypedDict):
+ """
+ Canvases are static by default and require a new request to come through in order to update them. Live canvases however will make requests every time the card is viewed without any interaction needed, meaning the canvas can be kept up-to-date with no action from the user.
+
+ This works for every Messenger request that you can respond with a canvas object to. Instead of returning the content object within the canvas object, you should provide a `content_url` attribute instead with the value being the URL you want us to send a POST request to when someone views the app.
+ """
+
+ workspace_id: str
+ """
+ The workspace ID of the teammate. Attribute is `app_id` for V1.2 and below.
+ """
+
+ workspace_region: str
+ """
+ The Intercom hosted region that this app is located in.
+ """
+
+ canvas: CanvasObjectParams
+ """
+ The current_canvas the teammate can see.
+ """
+
+ context: ContextParams
+ """
+ The context of where the app is added, where the user last visited, and information on the Messenger settings.
+ """
+
+ contact: ContactParams
+ """
+ The contact who viewed the card.
+ """
diff --git a/src/intercom/requests/live_canvas_response.py b/src/intercom/requests/live_canvas_response.py
new file mode 100644
index 0000000..b861a03
--- /dev/null
+++ b/src/intercom/requests/live_canvas_response.py
@@ -0,0 +1,15 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing_extensions
+from .content_object import ContentObjectParams
+
+
+class LiveCanvasResponseParams(typing_extensions.TypedDict):
+ """
+ The response object returned when responding to a Live Canvas request. This contains the components you want to show.
+ """
+
+ content: ContentObjectParams
+ """
+ The content object that defines the components to be shown.
+ """
diff --git a/src/intercom/requests/metadata.py b/src/intercom/requests/metadata.py
new file mode 100644
index 0000000..cff0ecc
--- /dev/null
+++ b/src/intercom/requests/metadata.py
@@ -0,0 +1,5 @@
+# This file was auto-generated by Fern from our API Definition.
+
+from ..unstable.types.conversation_part_metadata import ConversationPartMetadata
+
+MetadataParams = ConversationPartMetadata
diff --git a/src/intercom/requests/multiple_filter_search_request.py b/src/intercom/requests/multiple_filter_search_request.py
new file mode 100644
index 0000000..5d3c400
--- /dev/null
+++ b/src/intercom/requests/multiple_filter_search_request.py
@@ -0,0 +1,24 @@
+# This file was auto-generated by Fern from our API Definition.
+
+from __future__ import annotations
+
+import typing
+
+import typing_extensions
+from ..types.multiple_filter_search_request_operator import MultipleFilterSearchRequestOperator
+
+if typing.TYPE_CHECKING:
+ from .multiple_or_single_filter_search_request import MultipleOrSingleFilterSearchRequestParams
+
+
+class MultipleFilterSearchRequestParams(typing_extensions.TypedDict):
+ """
+ Search using Intercoms Search APIs with more than one filter.
+ """
+
+ operator: typing_extensions.NotRequired[MultipleFilterSearchRequestOperator]
+ """
+ An operator to allow boolean inspection between multiple fields.
+ """
+
+ value: typing_extensions.NotRequired[typing.Sequence["MultipleOrSingleFilterSearchRequestParams"]]
diff --git a/src/intercom/requests/multiple_or_single_filter_search_request.py b/src/intercom/requests/multiple_or_single_filter_search_request.py
new file mode 100644
index 0000000..dffee65
--- /dev/null
+++ b/src/intercom/requests/multiple_or_single_filter_search_request.py
@@ -0,0 +1,13 @@
+# This file was auto-generated by Fern from our API Definition.
+
+from __future__ import annotations
+
+import typing
+
+from .single_filter_search_request import SingleFilterSearchRequestParams
+
+if typing.TYPE_CHECKING:
+ from .multiple_filter_search_request import MultipleFilterSearchRequestParams
+MultipleOrSingleFilterSearchRequestParams = typing.Union[
+ "MultipleFilterSearchRequestParams", SingleFilterSearchRequestParams
+]
diff --git a/src/intercom/requests/news_item_request.py b/src/intercom/requests/news_item_request.py
new file mode 100644
index 0000000..5821ffd
--- /dev/null
+++ b/src/intercom/requests/news_item_request.py
@@ -0,0 +1,53 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing
+
+import typing_extensions
+from ..news.requests.newsfeed_assignment import NewsfeedAssignmentParams
+from ..types.news_item_request_state import NewsItemRequestState
+
+
+class NewsItemRequestParams(typing_extensions.TypedDict):
+ """
+ A News Item is a content type in Intercom enabling you to announce product updates, company news, promotions, events and more with your customers.
+ """
+
+ title: str
+ """
+ The title of the news item.
+ """
+
+ body: typing_extensions.NotRequired[str]
+ """
+ The news item body, which may contain HTML.
+ """
+
+ sender_id: int
+ """
+ The id of the sender of the news item. Must be a teammate on the workspace.
+ """
+
+ state: typing_extensions.NotRequired[NewsItemRequestState]
+ """
+ News items will not be visible to your users in the assigned newsfeeds until they are set live.
+ """
+
+ deliver_silently: typing_extensions.NotRequired[bool]
+ """
+ When set to `true`, the news item will appear in the messenger newsfeed without showing a notification badge.
+ """
+
+ labels: typing_extensions.NotRequired[typing.Sequence[str]]
+ """
+ Label names displayed to users to categorize the news item.
+ """
+
+ reactions: typing_extensions.NotRequired[typing.Sequence[typing.Optional[str]]]
+ """
+ Ordered list of emoji reactions to the news item. When empty, reactions are disabled.
+ """
+
+ newsfeed_assignments: typing_extensions.NotRequired[typing.Sequence[NewsfeedAssignmentParams]]
+ """
+ A list of newsfeed_assignments to assign to the specified newsfeed.
+ """
diff --git a/src/intercom/requests/note_list.py b/src/intercom/requests/note_list.py
new file mode 100644
index 0000000..8728e5d
--- /dev/null
+++ b/src/intercom/requests/note_list.py
@@ -0,0 +1,27 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing
+
+import typing_extensions
+from ..notes.requests.note import NoteParams
+
+
+class NoteListParams(typing_extensions.TypedDict):
+ """
+ A paginated list of notes associated with a contact.
+ """
+
+ type: typing.Literal["list"]
+ """
+ String representing the object's type. Always has the value `list`.
+ """
+
+ data: typing.Sequence[NoteParams]
+ """
+ An array of notes.
+ """
+
+ total_count: int
+ """
+ A count of the total number of notes.
+ """
diff --git a/src/intercom/requests/offset_pages.py b/src/intercom/requests/offset_pages.py
new file mode 100644
index 0000000..74076b6
--- /dev/null
+++ b/src/intercom/requests/offset_pages.py
@@ -0,0 +1,28 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing
+
+import typing_extensions
+
+
+class OffsetPagesParams(typing_extensions.TypedDict):
+ type: typing.Literal["offset_pages"]
+ """
+ the type of object `offset_pages`
+ """
+
+ page: typing_extensions.NotRequired[int]
+ """
+ The current offset
+ """
+
+ next: typing_extensions.NotRequired[str]
+ per_page: typing_extensions.NotRequired[int]
+ """
+ Number of results per page
+ """
+
+ total_pages: typing_extensions.NotRequired[int]
+ """
+ Total number of pages
+ """
diff --git a/src/intercom/requests/open_conversation_request.py b/src/intercom/requests/open_conversation_request.py
new file mode 100644
index 0000000..02bbfaa
--- /dev/null
+++ b/src/intercom/requests/open_conversation_request.py
@@ -0,0 +1,14 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing_extensions
+
+
+class OpenConversationRequestParams(typing_extensions.TypedDict):
+ """
+ Payload of the request to open a conversation
+ """
+
+ admin_id: str
+ """
+ The id of the admin who is performing the action.
+ """
diff --git a/src/intercom/requests/pages_link.py b/src/intercom/requests/pages_link.py
new file mode 100644
index 0000000..19c1d0f
--- /dev/null
+++ b/src/intercom/requests/pages_link.py
@@ -0,0 +1,23 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing
+
+import typing_extensions
+
+
+class PagesLinkParams(typing_extensions.TypedDict):
+ """
+ The majority of list resources in the API are paginated to allow clients to traverse data over multiple requests.
+
+ Their responses are likely to contain a pages object that hosts pagination links which a client can use to paginate through the data without having to construct a query. The link relations for the pages field are as follows.
+ """
+
+ type: typing.Literal["pages"]
+ page: int
+ next: typing_extensions.NotRequired[str]
+ """
+ A link to the next page of results. A response that does not contain a next link does not have further data to fetch.
+ """
+
+ per_page: int
+ total_pages: int
diff --git a/src/intercom/requests/paginated_conversation_response.py b/src/intercom/requests/paginated_conversation_response.py
new file mode 100644
index 0000000..a937f91
--- /dev/null
+++ b/src/intercom/requests/paginated_conversation_response.py
@@ -0,0 +1,30 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing
+
+import typing_extensions
+from ..conversations.requests.conversation import ConversationParams
+from .cursor_pages import CursorPagesParams
+
+
+class PaginatedConversationResponseParams(typing_extensions.TypedDict):
+ """
+ Conversations are how you can communicate with users in Intercom. They are created when a contact replies to an outbound message, or when one admin directly sends a message to a single contact.
+ """
+
+ type: typing.Literal["conversation.list"]
+ """
+ Always conversation.list
+ """
+
+ conversations: typing.Sequence[ConversationParams]
+ """
+ The list of conversation objects
+ """
+
+ total_count: int
+ """
+ A count of the total number of objects.
+ """
+
+ pages: typing_extensions.NotRequired[CursorPagesParams]
diff --git a/src/intercom/requests/paginated_news_item_response.py b/src/intercom/requests/paginated_news_item_response.py
new file mode 100644
index 0000000..aebd69e
--- /dev/null
+++ b/src/intercom/requests/paginated_news_item_response.py
@@ -0,0 +1,29 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing
+
+import typing_extensions
+from ..news.requests.news_item import NewsItemParams
+from .cursor_pages import CursorPagesParams
+
+
+class PaginatedNewsItemResponseParams(typing_extensions.TypedDict):
+ """
+ Paginated News Item Response
+ """
+
+ type: typing.Literal["list"]
+ """
+ The type of object
+ """
+
+ pages: typing_extensions.NotRequired[CursorPagesParams]
+ total_count: int
+ """
+ A count of the total number of News Items.
+ """
+
+ data: typing.Sequence[NewsItemParams]
+ """
+ An array of News Items
+ """
diff --git a/src/intercom/requests/paginated_newsfeed_response.py b/src/intercom/requests/paginated_newsfeed_response.py
new file mode 100644
index 0000000..56e57db
--- /dev/null
+++ b/src/intercom/requests/paginated_newsfeed_response.py
@@ -0,0 +1,29 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing
+
+import typing_extensions
+from ..news.requests.newsfeed import NewsfeedParams
+from .cursor_pages import CursorPagesParams
+
+
+class PaginatedNewsfeedResponseParams(typing_extensions.TypedDict):
+ """
+ Paginated Newsfeed Response
+ """
+
+ type: typing.Literal["list"]
+ """
+ The type of object
+ """
+
+ pages: typing_extensions.NotRequired[CursorPagesParams]
+ total_count: int
+ """
+ A count of the total number of Newsfeeds.
+ """
+
+ data: typing.Sequence[NewsfeedParams]
+ """
+ An array of Newsfeeds
+ """
diff --git a/src/intercom/requests/part_attachment.py b/src/intercom/requests/part_attachment.py
new file mode 100644
index 0000000..9ae9c87
--- /dev/null
+++ b/src/intercom/requests/part_attachment.py
@@ -0,0 +1,44 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing_extensions
+
+
+class PartAttachmentParams(typing_extensions.TypedDict):
+ """
+ The file attached to a part
+ """
+
+ type: str
+ """
+ The type of attachment
+ """
+
+ name: str
+ """
+ The name of the attachment
+ """
+
+ url: str
+ """
+ The URL of the attachment
+ """
+
+ content_type: str
+ """
+ The content type of the attachment
+ """
+
+ filesize: int
+ """
+ The size of the attachment
+ """
+
+ width: int
+ """
+ The width of the attachment
+ """
+
+ height: int
+ """
+ The height of the attachment
+ """
diff --git a/src/intercom/requests/phone_switch.py b/src/intercom/requests/phone_switch.py
new file mode 100644
index 0000000..1acb554
--- /dev/null
+++ b/src/intercom/requests/phone_switch.py
@@ -0,0 +1,21 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing
+
+import typing_extensions
+
+
+class PhoneSwitchParams(typing_extensions.TypedDict):
+ """
+ Phone Switch Response
+ """
+
+ type: typing.Literal["phone_call_redirect"]
+ """
+
+ """
+
+ phone: str
+ """
+ Phone number in E.164 format, that has received the SMS to continue the conversation in the Messenger.
+ """
diff --git a/src/intercom/requests/redact_conversation_request.py b/src/intercom/requests/redact_conversation_request.py
new file mode 100644
index 0000000..8ac7200
--- /dev/null
+++ b/src/intercom/requests/redact_conversation_request.py
@@ -0,0 +1,24 @@
+# This file was auto-generated by Fern from our API Definition.
+
+from __future__ import annotations
+
+import typing
+
+import typing_extensions
+
+
+class RedactConversationRequest_ConversationPartParams(typing_extensions.TypedDict):
+ type: typing.Literal["conversation_part"]
+ conversation_id: str
+ conversation_part_id: str
+
+
+class RedactConversationRequest_SourceParams(typing_extensions.TypedDict):
+ type: typing.Literal["source"]
+ conversation_id: str
+ source_id: str
+
+
+RedactConversationRequestParams = typing.Union[
+ RedactConversationRequest_ConversationPartParams, RedactConversationRequest_SourceParams
+]
diff --git a/src/intercom/requests/redact_conversation_request_conversation_part.py b/src/intercom/requests/redact_conversation_request_conversation_part.py
new file mode 100644
index 0000000..202514e
--- /dev/null
+++ b/src/intercom/requests/redact_conversation_request_conversation_part.py
@@ -0,0 +1,19 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing_extensions
+
+
+class RedactConversationRequestConversationPartParams(typing_extensions.TypedDict):
+ """
+ Payload of the request to redact a conversation part
+ """
+
+ conversation_id: str
+ """
+ The id of the conversation.
+ """
+
+ conversation_part_id: str
+ """
+ The id of the conversation_part.
+ """
diff --git a/src/intercom/requests/redact_conversation_request_source.py b/src/intercom/requests/redact_conversation_request_source.py
new file mode 100644
index 0000000..b204587
--- /dev/null
+++ b/src/intercom/requests/redact_conversation_request_source.py
@@ -0,0 +1,19 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing_extensions
+
+
+class RedactConversationRequestSourceParams(typing_extensions.TypedDict):
+ """
+ Payload of the request to redact a conversation source
+ """
+
+ conversation_id: str
+ """
+ The id of the conversation.
+ """
+
+ source_id: str
+ """
+ The id of the source.
+ """
diff --git a/src/intercom/requests/reference.py b/src/intercom/requests/reference.py
new file mode 100644
index 0000000..c41bcb2
--- /dev/null
+++ b/src/intercom/requests/reference.py
@@ -0,0 +1,19 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing_extensions
+
+
+class ReferenceParams(typing_extensions.TypedDict):
+ """
+ reference to another object
+ """
+
+ type: str
+ """
+
+ """
+
+ id: typing_extensions.NotRequired[str]
+ """
+
+ """
diff --git a/src/intercom/requests/reply_conversation_request.py b/src/intercom/requests/reply_conversation_request.py
new file mode 100644
index 0000000..2f359e4
--- /dev/null
+++ b/src/intercom/requests/reply_conversation_request.py
@@ -0,0 +1,10 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing
+
+from .admin_reply_conversation_request import AdminReplyConversationRequestParams
+from .contact_reply_conversation_request import ContactReplyConversationRequestParams
+
+ReplyConversationRequestParams = typing.Union[
+ ContactReplyConversationRequestParams, AdminReplyConversationRequestParams
+]
diff --git a/src/intercom/requests/results_response.py b/src/intercom/requests/results_response.py
new file mode 100644
index 0000000..8a89d7e
--- /dev/null
+++ b/src/intercom/requests/results_response.py
@@ -0,0 +1,16 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing
+
+import typing_extensions
+
+
+class ResultsResponseParams(typing_extensions.TypedDict):
+ """
+ The results object should be sent when you want to end configuration of the app and trigger the [Initialize request](https://developers.intercom.com/docs/canvas-kit/#initialize) to be sent. You provide the key-value pairs of data you want access to and we will send these in the Initialize request within a [card_creation_options object](https://developers.intercom.com/docs/references/canvas-kit/requestobjects/card-creation-options/#card-creation-options).
+ """
+
+ results: typing.Dict[str, typing.Optional[typing.Any]]
+ """
+ Key-value pairs of data you want access to in the Initialize request
+ """
diff --git a/src/intercom/requests/search_request.py b/src/intercom/requests/search_request.py
new file mode 100644
index 0000000..e9b2005
--- /dev/null
+++ b/src/intercom/requests/search_request.py
@@ -0,0 +1,14 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing_extensions
+from .search_request_query import SearchRequestQueryParams
+from .starting_after_paging import StartingAfterPagingParams
+
+
+class SearchRequestParams(typing_extensions.TypedDict):
+ """
+ Search using Intercoms Search APIs.
+ """
+
+ query: SearchRequestQueryParams
+ pagination: typing_extensions.NotRequired[StartingAfterPagingParams]
diff --git a/src/intercom/requests/search_request_query.py b/src/intercom/requests/search_request_query.py
new file mode 100644
index 0000000..20b3941
--- /dev/null
+++ b/src/intercom/requests/search_request_query.py
@@ -0,0 +1,8 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing
+
+from .multiple_filter_search_request import MultipleFilterSearchRequestParams
+from .single_filter_search_request import SingleFilterSearchRequestParams
+
+SearchRequestQueryParams = typing.Union[SingleFilterSearchRequestParams, MultipleFilterSearchRequestParams]
diff --git a/src/intercom/requests/segment_list.py b/src/intercom/requests/segment_list.py
new file mode 100644
index 0000000..73f59ae
--- /dev/null
+++ b/src/intercom/requests/segment_list.py
@@ -0,0 +1,27 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing
+
+import typing_extensions
+from ..segments.requests.segment import SegmentParams
+
+
+class SegmentListParams(typing_extensions.TypedDict):
+ """
+ This will return a list of Segment Objects. The result may also have a pages object if the response is paginated.
+ """
+
+ type: typing.Literal["segment.list"]
+ """
+ The type of the object
+ """
+
+ segments: typing.Sequence[SegmentParams]
+ """
+ A list of Segment objects
+ """
+
+ pages: typing_extensions.NotRequired[typing.Dict[str, typing.Optional[typing.Any]]]
+ """
+ A pagination object, which may be empty, indicating no further pages to fetch.
+ """
diff --git a/src/intercom/requests/sheet_action_component.py b/src/intercom/requests/sheet_action_component.py
new file mode 100644
index 0000000..966b9d9
--- /dev/null
+++ b/src/intercom/requests/sheet_action_component.py
@@ -0,0 +1,16 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing_extensions
+
+
+class SheetActionComponentParams(typing_extensions.TypedDict):
+ """
+ A sheet action opens the link you give within the Messenger as an embedded iframe.
+
+ [More on how Sheets work is in our Canvas Kit documentation.](https://developers.intercom.com/docs/canvas-kit#sheets-optional)
+ """
+
+ url: str
+ """
+ The link which hosts your sheet.
+ """
diff --git a/src/intercom/requests/single_filter_search_request.py b/src/intercom/requests/single_filter_search_request.py
new file mode 100644
index 0000000..3feb1db
--- /dev/null
+++ b/src/intercom/requests/single_filter_search_request.py
@@ -0,0 +1,26 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing_extensions
+from ..types.single_filter_search_request_operator import SingleFilterSearchRequestOperator
+from .single_filter_search_request_value import SingleFilterSearchRequestValueParams
+
+
+class SingleFilterSearchRequestParams(typing_extensions.TypedDict):
+ """
+ Search using Intercoms Search APIs with a single filter.
+ """
+
+ field: typing_extensions.NotRequired[str]
+ """
+ The accepted field that you want to search on.
+ """
+
+ operator: typing_extensions.NotRequired[SingleFilterSearchRequestOperator]
+ """
+ The accepted operators you can use to define how you want to search for the value.
+ """
+
+ value: typing_extensions.NotRequired[SingleFilterSearchRequestValueParams]
+ """
+ The value that you want to search on.
+ """
diff --git a/src/intercom/requests/single_filter_search_request_value.py b/src/intercom/requests/single_filter_search_request_value.py
new file mode 100644
index 0000000..2a7ab52
--- /dev/null
+++ b/src/intercom/requests/single_filter_search_request_value.py
@@ -0,0 +1,5 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing
+
+SingleFilterSearchRequestValueParams = typing.Union[str, int, typing.Sequence[str], typing.Sequence[int]]
diff --git a/src/intercom/requests/single_select_component.py b/src/intercom/requests/single_select_component.py
new file mode 100644
index 0000000..63a5260
--- /dev/null
+++ b/src/intercom/requests/single_select_component.py
@@ -0,0 +1,54 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing
+
+import typing_extensions
+from ..types.single_select_component_save_state import SingleSelectComponentSaveState
+from .action_component import ActionComponentParams
+from .single_select_option import SingleSelectOptionParams
+
+
+class SingleSelectComponentParams(typing_extensions.TypedDict):
+ """
+ A single-select component is used to capture a choice from up to 10 options that you provide. You can submit the value of the select option by:
+
+ - Adding an `action` to the single-select component
+ - Using a ButtonComponent (which will submit all interactive components in the canvas)
+
+ When a submit action takes place, the results are given in a hash with the `id` from the single-select component used as the key and the `id` from the chosen option as the value.
+ """
+
+ id: str
+ """
+ A unique identifier for the component.
+ """
+
+ options: typing.Sequence[SingleSelectOptionParams]
+ """
+ The list of options. Can provide 2 to 10.
+ """
+
+ label: typing_extensions.NotRequired[str]
+ """
+ The text shown above the options.
+ """
+
+ value: typing_extensions.NotRequired[str]
+ """
+ The option that is selected by default.
+ """
+
+ save_state: typing_extensions.NotRequired[SingleSelectComponentSaveState]
+ """
+ Styles the input. Default is `unsaved`. Prevent action with `saved`.
+ """
+
+ disabled: typing_extensions.NotRequired[bool]
+ """
+ Styles all options and prevents the action. Default is false. Will be overridden if save_state is saved.
+ """
+
+ action: typing_extensions.NotRequired[ActionComponentParams]
+ """
+ This can be a Submit Action, URL Action, or Sheets Action.
+ """
diff --git a/src/intercom/requests/single_select_option.py b/src/intercom/requests/single_select_option.py
new file mode 100644
index 0000000..e1a9715
--- /dev/null
+++ b/src/intercom/requests/single_select_option.py
@@ -0,0 +1,31 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing
+
+import typing_extensions
+
+
+class SingleSelectOptionParams(typing_extensions.TypedDict):
+ """
+ A single select option component that can be selected.
+ """
+
+ type: typing.Literal["option"]
+ """
+ The type of component you are rendering.
+ """
+
+ id: str
+ """
+ A unique identifier for the option.
+ """
+
+ text: str
+ """
+ The text shown within this option.
+ """
+
+ disabled: typing_extensions.NotRequired[bool]
+ """
+ Styles the option and prevents the action. Default is false.
+ """
diff --git a/src/intercom/requests/sla_applied.py b/src/intercom/requests/sla_applied.py
new file mode 100644
index 0000000..8abb075
--- /dev/null
+++ b/src/intercom/requests/sla_applied.py
@@ -0,0 +1,29 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing_extensions
+from ..types.sla_applied_sla_status import SlaAppliedSlaStatus
+
+
+class SlaAppliedParams(typing_extensions.TypedDict):
+ """
+ The SLA Applied object contains the details for which SLA has been applied to this conversation.
+ Important: if there are any canceled sla_events for the conversation - meaning an SLA has been manually removed from a conversation, the sla_status will always be returned as null.
+ """
+
+ type: str
+ """
+ object type
+ """
+
+ sla_name: str
+ """
+ The name of the SLA as given by the teammate when it was created.
+ """
+
+ sla_status: SlaAppliedSlaStatus
+ """
+ SLA statuses:
+ - `hit`: If there’s at least one hit event in the underlying sla_events table, and no “missed” or “canceled” events for the conversation.
+ - `missed`: If there are any missed sla_events for the conversation and no canceled events. If there’s even a single missed sla event, the status will always be missed. A missed status is not applied when the SLA expires, only the next time a teammate replies.
+ - `active`: An SLA has been applied to a conversation, but has not yet been fulfilled. SLA status is active only if there are no “hit, “missed”, or “canceled” events.
+ """
diff --git a/src/intercom/requests/snooze_conversation_request.py b/src/intercom/requests/snooze_conversation_request.py
new file mode 100644
index 0000000..89e73dd
--- /dev/null
+++ b/src/intercom/requests/snooze_conversation_request.py
@@ -0,0 +1,19 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing_extensions
+
+
+class SnoozeConversationRequestParams(typing_extensions.TypedDict):
+ """
+ Payload of the request to snooze a conversation
+ """
+
+ admin_id: str
+ """
+ The id of the admin who is performing the action.
+ """
+
+ snoozed_until: int
+ """
+ The time you want the conversation to reopen.
+ """
diff --git a/src/intercom/requests/social_profile.py b/src/intercom/requests/social_profile.py
new file mode 100644
index 0000000..eddb9c4
--- /dev/null
+++ b/src/intercom/requests/social_profile.py
@@ -0,0 +1,26 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing
+
+import typing_extensions
+
+
+class SocialProfileParams(typing_extensions.TypedDict):
+ """
+ A Social Profile allows you to label your contacts, companies, and conversations and list them using that Social Profile.
+ """
+
+ type: typing.Literal["social_profile"]
+ """
+ value is "social_profile"
+ """
+
+ name: str
+ """
+ The name of the Social media profile
+ """
+
+ url: str
+ """
+ The name of the Social media profile
+ """
diff --git a/src/intercom/requests/spacer_component.py b/src/intercom/requests/spacer_component.py
new file mode 100644
index 0000000..31c2868
--- /dev/null
+++ b/src/intercom/requests/spacer_component.py
@@ -0,0 +1,20 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing_extensions
+from ..types.spacer_component_size import SpacerComponentSize
+
+
+class SpacerComponentParams(typing_extensions.TypedDict):
+ """
+ A spacer component is used to create empty space between components.
+ """
+
+ id: typing_extensions.NotRequired[str]
+ """
+ A unique identifier for the component.
+ """
+
+ size: typing_extensions.NotRequired[SpacerComponentSize]
+ """
+ The amount of space between components. Default is `s`.
+ """
diff --git a/src/intercom/requests/starting_after_paging.py b/src/intercom/requests/starting_after_paging.py
new file mode 100644
index 0000000..63320f8
--- /dev/null
+++ b/src/intercom/requests/starting_after_paging.py
@@ -0,0 +1,15 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing_extensions
+
+
+class StartingAfterPagingParams(typing_extensions.TypedDict):
+ per_page: int
+ """
+ The number of results to fetch per page.
+ """
+
+ starting_after: typing_extensions.NotRequired[str]
+ """
+ The cursor to use in the next request to get the next page of results.
+ """
diff --git a/src/intercom/requests/submit_action_component.py b/src/intercom/requests/submit_action_component.py
new file mode 100644
index 0000000..92810ca
--- /dev/null
+++ b/src/intercom/requests/submit_action_component.py
@@ -0,0 +1,11 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing_extensions
+
+
+class SubmitActionComponentParams(typing_extensions.TypedDict):
+ """
+ A submit action triggers a [Submit Request](https://developers.intercom.com/docs/canvas-kit#submit-request) to be sent. This request will include all values which have been entered into all the interactive components on the current canvas.
+ """
+
+ pass
diff --git a/src/intercom/requests/submit_request.py b/src/intercom/requests/submit_request.py
new file mode 100644
index 0000000..95ced46
--- /dev/null
+++ b/src/intercom/requests/submit_request.py
@@ -0,0 +1,66 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing
+
+import typing_extensions
+from ..admins.requests.admin import AdminParams
+from ..contacts.requests.contact import ContactParams
+from ..conversations.requests.conversation import ConversationParams
+from .context import ContextParams
+from .current_canvas import CurrentCanvasParams
+
+
+class SubmitRequestParams(typing_extensions.TypedDict):
+ """
+ The Submit request is triggered when a component with a submit action is interacted with in Messenger Inbox.
+ """
+
+ workspace_id: str
+ """
+ The workspace ID of the teammate. Attribute is `app_id` for V1.2 and below.
+ """
+
+ workspace_region: str
+ """
+ The Intercom hosted region that this app is located in.
+ """
+
+ admin: AdminParams
+ """
+ The Intercom teammate viewing the conversation.
+ """
+
+ component_id: str
+ """
+ The id of the component clicked by the teammate to trigger the request.
+ """
+
+ context: ContextParams
+ """
+ The context of where the app is added, where the user last visited, and information on the Messenger settings.
+ """
+
+ conversation: ConversationParams
+ """
+ The conversation where your app is being shown.
+ """
+
+ current_canvas: CurrentCanvasParams
+ """
+ The current canvas the teammate can see.
+ """
+
+ contact: ContactParams
+ """
+ The contact which is currently being viewed by the teammate in the conversation details panel.
+ """
+
+ input_values: typing.Dict[str, typing.Optional[typing.Any]]
+ """
+ A list of key/value pairs of data, inputted by the teammate on the current canvas.
+ """
+
+ user: ContactParams
+ """
+ The user who took the action.
+ """
diff --git a/src/intercom/requests/submit_response.py b/src/intercom/requests/submit_response.py
new file mode 100644
index 0000000..aea460b
--- /dev/null
+++ b/src/intercom/requests/submit_response.py
@@ -0,0 +1,36 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing
+
+import typing_extensions
+from .canvas_object import CanvasObjectParams
+from .event import EventParams
+
+
+class SubmitResponseParams(typing_extensions.TypedDict):
+ """
+ The response object returned when submitting an app interaction. This will replace the previous canvas that was visible until the app was interacted with.
+
+ You can optionally provide an event object with the attribute `type` given as `completed` to tell us if the app has completed its purpose. For example, an email collector app would be complete when the end-user submits their email address.
+
+ Apps in conversation details can also optionally insert an app into the conversation reply:
+
+ 1. You respond with a card_creation_options object (https://developers.intercom.com/canvas-kit-reference/reference/card-creation-options)
+ 2. We send a request to the initialize URL for Messenger capabilities (https://developers.intercom.com/docs/build-an-integration/getting-started/build-an-app-for-your-messenger/request-flows) with the card_creation_options object present
+ 3. You respond with a canvas object with the components you want to insert into the conversation reply
+ """
+
+ canvas: CanvasObjectParams
+ """
+ The canvas object that defines the new UI to be shown.
+ """
+
+ card_creation_options: typing_extensions.NotRequired[typing.Dict[str, typing.Optional[typing.Any]]]
+ """
+ Optional. Key-value pairs that will be sent in the initialize request to insert an app into the conversation reply.
+ """
+
+ event: typing_extensions.NotRequired[EventParams]
+ """
+ Optional. Indicates if the app has completed its purpose.
+ """
diff --git a/src/intercom/requests/subscription_type_list.py b/src/intercom/requests/subscription_type_list.py
new file mode 100644
index 0000000..57e2f53
--- /dev/null
+++ b/src/intercom/requests/subscription_type_list.py
@@ -0,0 +1,22 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing
+
+import typing_extensions
+from ..subscription_types.requests.subscription_type import SubscriptionTypeParams
+
+
+class SubscriptionTypeListParams(typing_extensions.TypedDict):
+ """
+ A list of subscription type objects.
+ """
+
+ type: typing.Literal["list"]
+ """
+ The type of the object
+ """
+
+ data: typing.Sequence[SubscriptionTypeParams]
+ """
+ A list of subscription type objects associated with the workspace .
+ """
diff --git a/src/intercom/requests/tag_company_request.py b/src/intercom/requests/tag_company_request.py
new file mode 100644
index 0000000..b822260
--- /dev/null
+++ b/src/intercom/requests/tag_company_request.py
@@ -0,0 +1,22 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing
+
+import typing_extensions
+from .tag_company_request_companies_item import TagCompanyRequestCompaniesItemParams
+
+
+class TagCompanyRequestParams(typing_extensions.TypedDict):
+ """
+ You can tag a single company or a list of companies.
+ """
+
+ name: str
+ """
+ The name of the tag, which will be created if not found.
+ """
+
+ companies: typing.Sequence[TagCompanyRequestCompaniesItemParams]
+ """
+ The id or company_id of the company can be passed as input parameters.
+ """
diff --git a/src/intercom/requests/tag_company_request_companies_item.py b/src/intercom/requests/tag_company_request_companies_item.py
new file mode 100644
index 0000000..ee104a5
--- /dev/null
+++ b/src/intercom/requests/tag_company_request_companies_item.py
@@ -0,0 +1,15 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing_extensions
+
+
+class TagCompanyRequestCompaniesItemParams(typing_extensions.TypedDict):
+ id: typing_extensions.NotRequired[str]
+ """
+ The Intercom defined id representing the company.
+ """
+
+ company_id: typing_extensions.NotRequired[str]
+ """
+ The company id you have defined for the company.
+ """
diff --git a/src/intercom/requests/tag_list.py b/src/intercom/requests/tag_list.py
new file mode 100644
index 0000000..126c4d0
--- /dev/null
+++ b/src/intercom/requests/tag_list.py
@@ -0,0 +1,22 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing
+
+import typing_extensions
+from ..tags.requests.tag import TagParams
+
+
+class TagListParams(typing_extensions.TypedDict):
+ """
+ A list of tags objects in the workspace.
+ """
+
+ type: typing.Literal["list"]
+ """
+ The type of the object
+ """
+
+ data: typing.Sequence[TagParams]
+ """
+ A list of tags objects associated with the workspace .
+ """
diff --git a/src/intercom/requests/tag_multiple_users_request.py b/src/intercom/requests/tag_multiple_users_request.py
new file mode 100644
index 0000000..69edb1e
--- /dev/null
+++ b/src/intercom/requests/tag_multiple_users_request.py
@@ -0,0 +1,19 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing
+
+import typing_extensions
+from .tag_multiple_users_request_users_item import TagMultipleUsersRequestUsersItemParams
+
+
+class TagMultipleUsersRequestParams(typing_extensions.TypedDict):
+ """
+ You can tag a list of users.
+ """
+
+ name: str
+ """
+ The name of the tag, which will be created if not found.
+ """
+
+ users: typing.Sequence[TagMultipleUsersRequestUsersItemParams]
diff --git a/src/intercom/requests/tag_multiple_users_request_users_item.py b/src/intercom/requests/tag_multiple_users_request_users_item.py
new file mode 100644
index 0000000..f320094
--- /dev/null
+++ b/src/intercom/requests/tag_multiple_users_request_users_item.py
@@ -0,0 +1,10 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing_extensions
+
+
+class TagMultipleUsersRequestUsersItemParams(typing_extensions.TypedDict):
+ id: typing_extensions.NotRequired[str]
+ """
+ The Intercom defined id representing the user.
+ """
diff --git a/src/intercom/requests/tags.py b/src/intercom/requests/tags.py
new file mode 100644
index 0000000..c2a2140
--- /dev/null
+++ b/src/intercom/requests/tags.py
@@ -0,0 +1,22 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing
+
+import typing_extensions
+from ..tags.requests.tag import TagParams
+
+
+class TagsParams(typing_extensions.TypedDict):
+ """
+ A list of tags objects associated with a conversation
+ """
+
+ type: typing.Literal["tag.list"]
+ """
+ The type of the object
+ """
+
+ tags: typing.Sequence[TagParams]
+ """
+ A list of tags objects associated with the conversation.
+ """
diff --git a/src/intercom/requests/team_list.py b/src/intercom/requests/team_list.py
new file mode 100644
index 0000000..67f6349
--- /dev/null
+++ b/src/intercom/requests/team_list.py
@@ -0,0 +1,22 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing
+
+import typing_extensions
+from ..teams.requests.team import TeamParams
+
+
+class TeamListParams(typing_extensions.TypedDict):
+ """
+ This will return a list of team objects for the App.
+ """
+
+ type: typing.Literal["team.list"]
+ """
+ The type of the object
+ """
+
+ teams: typing.Sequence[TeamParams]
+ """
+ A list of team objects
+ """
diff --git a/src/intercom/requests/team_priority_level.py b/src/intercom/requests/team_priority_level.py
new file mode 100644
index 0000000..75599c1
--- /dev/null
+++ b/src/intercom/requests/team_priority_level.py
@@ -0,0 +1,21 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing
+
+import typing_extensions
+
+
+class TeamPriorityLevelParams(typing_extensions.TypedDict):
+ """
+ Admin priority levels for teams
+ """
+
+ primary_team_ids: typing_extensions.NotRequired[typing.Sequence[int]]
+ """
+ The primary team ids for the team
+ """
+
+ secondary_team_ids: typing_extensions.NotRequired[typing.Sequence[int]]
+ """
+ The secondary team ids for the team
+ """
diff --git a/src/intercom/requests/text_area_component.py b/src/intercom/requests/text_area_component.py
new file mode 100644
index 0000000..878befc
--- /dev/null
+++ b/src/intercom/requests/text_area_component.py
@@ -0,0 +1,41 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing_extensions
+
+
+class TextAreaComponentParams(typing_extensions.TypedDict):
+ """
+ A text area component is used to capture a large amount of text as input with a multi-line text box. You can submit the value of the text area by:
+
+ - Using a ButtonComponent (which will submit all interactive components in the canvas)
+ """
+
+ id: str
+ """
+ A unique identifier for the component.
+ """
+
+ label: typing_extensions.NotRequired[str]
+ """
+ The text shown above the text area.
+ """
+
+ placeholder: typing_extensions.NotRequired[str]
+ """
+ An example value shown inside the component when it's empty.
+ """
+
+ value: typing_extensions.NotRequired[str]
+ """
+ An entered value which is already inside the component.
+ """
+
+ error: typing_extensions.NotRequired[bool]
+ """
+ Styles the input as failed. Default is false.
+ """
+
+ disabled: typing_extensions.NotRequired[bool]
+ """
+ Styles the input and prevents the action. Default is false.
+ """
diff --git a/src/intercom/requests/text_component.py b/src/intercom/requests/text_component.py
new file mode 100644
index 0000000..acd0439
--- /dev/null
+++ b/src/intercom/requests/text_component.py
@@ -0,0 +1,38 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing
+
+import typing_extensions
+from ..types.text_component_align import TextComponentAlign
+from ..types.text_component_style import TextComponentStyle
+
+
+class TextComponentParams(typing_extensions.TypedDict):
+ """
+ A text component is used for rendering blocks of text. Links and bold font can be rendered through Markdown. There are different styles provided which edit the color, weight, and font size. These cannot be edited through Markdown.
+ """
+
+ id: typing_extensions.NotRequired[str]
+ """
+ A unique identifier for the component.
+ """
+
+ text: str
+ """
+ The text that will be rendered.
+ """
+
+ align: typing_extensions.NotRequired[TextComponentAlign]
+ """
+ Aligns the text. Default is `left`.
+ """
+
+ style: typing_extensions.NotRequired[TextComponentStyle]
+ """
+ Styles the text. Default is `paragraph`.
+ """
+
+ bottom_margin: typing_extensions.NotRequired[typing.Literal["none"]]
+ """
+ Disables a component's margin-bottom of 10px.
+ """
diff --git a/src/intercom/requests/ticket_list.py b/src/intercom/requests/ticket_list.py
new file mode 100644
index 0000000..3b64337
--- /dev/null
+++ b/src/intercom/requests/ticket_list.py
@@ -0,0 +1,30 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing
+
+import typing_extensions
+from ..tickets.requests.ticket import TicketParams
+from .cursor_pages import CursorPagesParams
+
+
+class TicketListParams(typing_extensions.TypedDict):
+ """
+ Tickets are how you track requests from your users.
+ """
+
+ type: typing.Literal["ticket.list"]
+ """
+ Always ticket.list
+ """
+
+ tickets: typing.Sequence[TicketParams]
+ """
+ The list of ticket objects
+ """
+
+ total_count: int
+ """
+ A count of the total number of objects.
+ """
+
+ pages: typing_extensions.NotRequired[CursorPagesParams]
diff --git a/src/intercom/requests/ticket_part_author.py b/src/intercom/requests/ticket_part_author.py
new file mode 100644
index 0000000..48feec1
--- /dev/null
+++ b/src/intercom/requests/ticket_part_author.py
@@ -0,0 +1,30 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing_extensions
+from ..types.ticket_part_author_type import TicketPartAuthorType
+
+
+class TicketPartAuthorParams(typing_extensions.TypedDict):
+ """
+ The author that wrote or triggered the part. Can be a bot, admin, team or user.
+ """
+
+ type: TicketPartAuthorType
+ """
+ The type of the author
+ """
+
+ id: str
+ """
+ The id of the author
+ """
+
+ name: typing_extensions.NotRequired[str]
+ """
+ The name of the author
+ """
+
+ email: str
+ """
+ The email of the author
+ """
diff --git a/src/intercom/requests/ticket_parts.py b/src/intercom/requests/ticket_parts.py
new file mode 100644
index 0000000..1f175bc
--- /dev/null
+++ b/src/intercom/requests/ticket_parts.py
@@ -0,0 +1,27 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing
+
+import typing_extensions
+from ..tickets.requests.ticket_part import TicketPartParams
+
+
+class TicketPartsParams(typing_extensions.TypedDict):
+ """
+ A list of Ticket Part objects for each note and event in the ticket. There is a limit of 500 parts.
+ """
+
+ type: typing.Literal["ticket_part.list"]
+ """
+
+ """
+
+ ticket_parts: typing.Sequence[TicketPartParams]
+ """
+ A list of Ticket Part objects for each ticket. There is a limit of 500 parts.
+ """
+
+ total_count: int
+ """
+
+ """
diff --git a/src/intercom/requests/ticket_reply.py b/src/intercom/requests/ticket_reply.py
new file mode 100644
index 0000000..4e2aedb
--- /dev/null
+++ b/src/intercom/requests/ticket_reply.py
@@ -0,0 +1,55 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing
+
+import typing_extensions
+from ..types.ticket_reply_part_type import TicketReplyPartType
+from .part_attachment import PartAttachmentParams
+from .ticket_part_author import TicketPartAuthorParams
+
+
+class TicketReplyParams(typing_extensions.TypedDict):
+ """
+ A Ticket Part representing a note, comment, or quick_reply on a ticket
+ """
+
+ type: typing.Literal["ticket_part"]
+ """
+ Always ticket_part
+ """
+
+ id: str
+ """
+ The id representing the part.
+ """
+
+ part_type: TicketReplyPartType
+ """
+ Type of the part
+ """
+
+ body: typing_extensions.NotRequired[str]
+ """
+ The message body, which may contain HTML.
+ """
+
+ created_at: int
+ """
+ The time the note was created.
+ """
+
+ updated_at: typing_extensions.NotRequired[int]
+ """
+ The last time the note was updated.
+ """
+
+ author: typing_extensions.NotRequired[TicketPartAuthorParams]
+ attachments: typing_extensions.NotRequired[typing.Sequence[PartAttachmentParams]]
+ """
+ A list of attachments for the part.
+ """
+
+ redacted: typing_extensions.NotRequired[bool]
+ """
+ Whether or not the ticket part has been redacted.
+ """
diff --git a/src/intercom/requests/ticket_type_attribute.py b/src/intercom/requests/ticket_type_attribute.py
new file mode 100644
index 0000000..cd90080
--- /dev/null
+++ b/src/intercom/requests/ticket_type_attribute.py
@@ -0,0 +1,97 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing
+
+import typing_extensions
+from ..types.ticket_type_attribute_data_type import TicketTypeAttributeDataType
+
+
+class TicketTypeAttributeParams(typing_extensions.TypedDict):
+ """
+ Ticket type attribute, used to define each data field to be captured in a ticket.
+ """
+
+ type: typing.Literal["ticket_type_attribute"]
+ """
+ String representing the object's type. Always has the value `ticket_type_attribute`.
+ """
+
+ id: str
+ """
+ The id representing the ticket type attribute.
+ """
+
+ workspace_id: str
+ """
+ The id of the workspace that the ticket type attribute belongs to.
+ """
+
+ name: str
+ """
+ The name of the ticket type attribute
+ """
+
+ description: str
+ """
+ The description of the ticket type attribute
+ """
+
+ data_type: TicketTypeAttributeDataType
+ """
+ The type of the data attribute (allowed values: "string list integer decimal boolean datetime files")
+ """
+
+ input_options: typing.Dict[str, typing.Optional[typing.Any]]
+ """
+ Input options for the attribute
+ """
+
+ order: int
+ """
+ The order of the attribute against other attributes
+ """
+
+ required_to_create: bool
+ """
+ Whether the attribute is required or not for teammates.
+ """
+
+ required_to_create_for_contacts: bool
+ """
+ Whether the attribute is required or not for contacts.
+ """
+
+ visible_on_create: bool
+ """
+ Whether the attribute is visible or not to teammates.
+ """
+
+ visible_to_contacts: bool
+ """
+ Whether the attribute is visible or not to contacts.
+ """
+
+ default: bool
+ """
+ Whether the attribute is built in or not.
+ """
+
+ ticket_type_id: int
+ """
+ The id of the ticket type that the attribute belongs to.
+ """
+
+ archived: bool
+ """
+ Whether the ticket type attribute is archived or not.
+ """
+
+ created_at: int
+ """
+ The date and time the ticket type attribute was created.
+ """
+
+ updated_at: typing_extensions.NotRequired[int]
+ """
+ The date and time the ticket type attribute was last updated.
+ """
diff --git a/src/intercom/requests/ticket_type_attribute_list.py b/src/intercom/requests/ticket_type_attribute_list.py
new file mode 100644
index 0000000..603f57b
--- /dev/null
+++ b/src/intercom/requests/ticket_type_attribute_list.py
@@ -0,0 +1,22 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing
+
+import typing_extensions
+from .ticket_type_attribute import TicketTypeAttributeParams
+
+
+class TicketTypeAttributeListParams(typing_extensions.TypedDict):
+ """
+ A list of attributes associated with a given ticket type.
+ """
+
+ type: typing.Literal["ticket_type_attributes.list"]
+ """
+ String representing the object's type. Always has the value `ticket_type_attributes.list`.
+ """
+
+ ticket_type_attributes: typing.Sequence[TicketTypeAttributeParams]
+ """
+ A list of ticket type attributes associated with a given ticket type.
+ """
diff --git a/src/intercom/requests/ticket_type_list.py b/src/intercom/requests/ticket_type_list.py
new file mode 100644
index 0000000..a52dad8
--- /dev/null
+++ b/src/intercom/requests/ticket_type_list.py
@@ -0,0 +1,22 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing
+
+import typing_extensions
+from ..tickets.requests.ticket_type import TicketTypeParams
+
+
+class TicketTypeListParams(typing_extensions.TypedDict):
+ """
+ A list of ticket types associated with a given workspace.
+ """
+
+ type: typing.Literal["ticket_type_attributes.list"]
+ """
+ String representing the object's type. Always has the value `ticket_type.list`.
+ """
+
+ ticket_types: typing.Sequence[TicketTypeParams]
+ """
+ A list of ticket_types associated with a given workspace.
+ """
diff --git a/src/intercom/requests/translation.py b/src/intercom/requests/translation.py
new file mode 100644
index 0000000..2700679
--- /dev/null
+++ b/src/intercom/requests/translation.py
@@ -0,0 +1,24 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing_extensions
+
+
+class TranslationParams(typing_extensions.TypedDict):
+ """
+ A translation object contains the localised details of a subscription type.
+ """
+
+ name: str
+ """
+ The localised name of the subscription type.
+ """
+
+ description: str
+ """
+ The localised description of the subscription type.
+ """
+
+ locale: str
+ """
+ The two character identifier for the language of the translation object.
+ """
diff --git a/src/intercom/requests/untag_company_request.py b/src/intercom/requests/untag_company_request.py
new file mode 100644
index 0000000..46f9c9a
--- /dev/null
+++ b/src/intercom/requests/untag_company_request.py
@@ -0,0 +1,22 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing
+
+import typing_extensions
+from .untag_company_request_companies_item import UntagCompanyRequestCompaniesItemParams
+
+
+class UntagCompanyRequestParams(typing_extensions.TypedDict):
+ """
+ You can tag a single company or a list of companies.
+ """
+
+ name: str
+ """
+ The name of the tag which will be untagged from the company
+ """
+
+ companies: typing.Sequence[UntagCompanyRequestCompaniesItemParams]
+ """
+ The id or company_id of the company can be passed as input parameters.
+ """
diff --git a/src/intercom/requests/untag_company_request_companies_item.py b/src/intercom/requests/untag_company_request_companies_item.py
new file mode 100644
index 0000000..e555913
--- /dev/null
+++ b/src/intercom/requests/untag_company_request_companies_item.py
@@ -0,0 +1,22 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing
+
+import typing_extensions
+
+
+class UntagCompanyRequestCompaniesItemParams(typing_extensions.TypedDict):
+ id: str
+ """
+ The Intercom defined id representing the company.
+ """
+
+ company_id: str
+ """
+ The company id you have defined for the company.
+ """
+
+ untag: typing.Literal[True]
+ """
+ Always set to true
+ """
diff --git a/src/intercom/requests/update_visitor_request.py b/src/intercom/requests/update_visitor_request.py
new file mode 100644
index 0000000..9720df7
--- /dev/null
+++ b/src/intercom/requests/update_visitor_request.py
@@ -0,0 +1,8 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing
+
+from .update_visitor_request_with_id import UpdateVisitorRequestWithIdParams
+from .update_visitor_request_with_user_id import UpdateVisitorRequestWithUserIdParams
+
+UpdateVisitorRequestParams = typing.Union[UpdateVisitorRequestWithIdParams, UpdateVisitorRequestWithUserIdParams]
diff --git a/src/intercom/requests/update_visitor_request_with_id.py b/src/intercom/requests/update_visitor_request_with_id.py
new file mode 100644
index 0000000..a2d860b
--- /dev/null
+++ b/src/intercom/requests/update_visitor_request_with_id.py
@@ -0,0 +1,22 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing
+
+import typing_extensions
+
+
+class UpdateVisitorRequestWithIdParams(typing_extensions.TypedDict):
+ id: str
+ """
+ A unique identified for the visitor which is given by Intercom.
+ """
+
+ name: typing_extensions.NotRequired[str]
+ """
+ The visitor's name.
+ """
+
+ custom_attributes: typing_extensions.NotRequired[typing.Dict[str, str]]
+ """
+ The custom attributes which are set for the visitor.
+ """
diff --git a/src/intercom/requests/update_visitor_request_with_user_id.py b/src/intercom/requests/update_visitor_request_with_user_id.py
new file mode 100644
index 0000000..f1b85e4
--- /dev/null
+++ b/src/intercom/requests/update_visitor_request_with_user_id.py
@@ -0,0 +1,22 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing
+
+import typing_extensions
+
+
+class UpdateVisitorRequestWithUserIdParams(typing_extensions.TypedDict):
+ user_id: str
+ """
+ A unique identified for the visitor which is given by you.
+ """
+
+ name: typing_extensions.NotRequired[str]
+ """
+ The visitor's name.
+ """
+
+ custom_attributes: typing_extensions.NotRequired[typing.Dict[str, str]]
+ """
+ The custom attributes which are set for the visitor.
+ """
diff --git a/src/intercom/requests/url_action_component.py b/src/intercom/requests/url_action_component.py
new file mode 100644
index 0000000..51c077d
--- /dev/null
+++ b/src/intercom/requests/url_action_component.py
@@ -0,0 +1,14 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing_extensions
+
+
+class UrlActionComponentParams(typing_extensions.TypedDict):
+ """
+ A URL action opens a given link in a new browser tab.
+ """
+
+ url: str
+ """
+ The link you want to open.
+ """
diff --git a/src/intercom/requests/visitor.py b/src/intercom/requests/visitor.py
new file mode 100644
index 0000000..91b0cd5
--- /dev/null
+++ b/src/intercom/requests/visitor.py
@@ -0,0 +1,158 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing
+
+import typing_extensions
+from .visitor_avatar import VisitorAvatarParams
+from .visitor_companies import VisitorCompaniesParams
+from .visitor_location_data import VisitorLocationDataParams
+from .visitor_segments import VisitorSegmentsParams
+from .visitor_social_profiles import VisitorSocialProfilesParams
+from .visitor_tags import VisitorTagsParams
+
+
+class VisitorParams(typing_extensions.TypedDict):
+ """
+ Visitors are useful for representing anonymous people that have not yet been identified. They usually represent website visitors. Visitors are not visible in Intercom platform. The Visitors resource provides methods to fetch, update, convert and delete.
+ """
+
+ type: typing.Literal["visitor"]
+ """
+ Value is 'visitor'
+ """
+
+ id: str
+ """
+ The Intercom defined id representing the Visitor.
+ """
+
+ user_id: str
+ """
+ Automatically generated identifier for the Visitor.
+ """
+
+ anonymous: bool
+ """
+ Identifies if this visitor is anonymous.
+ """
+
+ email: str
+ """
+ The email of the visitor.
+ """
+
+ phone: typing_extensions.NotRequired[str]
+ """
+ The phone number of the visitor.
+ """
+
+ name: typing_extensions.NotRequired[str]
+ """
+ The name of the visitor.
+ """
+
+ pseudonym: typing_extensions.NotRequired[str]
+ """
+ The pseudonym of the visitor.
+ """
+
+ avatar: typing_extensions.NotRequired[VisitorAvatarParams]
+ app_id: str
+ """
+ The id of the app the visitor is associated with.
+ """
+
+ companies: typing_extensions.NotRequired[VisitorCompaniesParams]
+ location_data: typing_extensions.NotRequired[VisitorLocationDataParams]
+ las_request_at: typing_extensions.NotRequired[int]
+ """
+ The time the Lead last recorded making a request.
+ """
+
+ created_at: int
+ """
+ The time the Visitor was added to Intercom.
+ """
+
+ remote_created_at: typing_extensions.NotRequired[int]
+ """
+ The time the Visitor was added to Intercom.
+ """
+
+ signed_up_at: int
+ """
+ The time the Visitor signed up for your product.
+ """
+
+ updated_at: typing_extensions.NotRequired[int]
+ """
+ The last time the Visitor was updated.
+ """
+
+ session_count: typing_extensions.NotRequired[int]
+ """
+ The number of sessions the Visitor has had.
+ """
+
+ social_profiles: typing_extensions.NotRequired[VisitorSocialProfilesParams]
+ owner_id: typing_extensions.NotRequired[str]
+ """
+ The id of the admin that owns the Visitor.
+ """
+
+ unsubscribed_from_emails: typing_extensions.NotRequired[bool]
+ """
+ Whether the Visitor is unsubscribed from emails.
+ """
+
+ marked_email_as_spam: typing_extensions.NotRequired[bool]
+ """
+ Identifies if this visitor has marked an email as spam.
+ """
+
+ has_hard_bounced: typing_extensions.NotRequired[bool]
+ """
+ Identifies if this visitor has had a hard bounce.
+ """
+
+ tags: typing_extensions.NotRequired[VisitorTagsParams]
+ segments: typing_extensions.NotRequired[VisitorSegmentsParams]
+ custom_attributes: typing_extensions.NotRequired[typing.Dict[str, typing.Optional[typing.Any]]]
+ """
+ The custom attributes you have set on the Visitor.
+ """
+
+ referrer: typing_extensions.NotRequired[str]
+ """
+ The referer of the visitor.
+ """
+
+ utm_campaign: typing_extensions.NotRequired[str]
+ """
+ The utm_campaign of the visitor.
+ """
+
+ utm_content: typing_extensions.NotRequired[str]
+ """
+ The utm_content of the visitor.
+ """
+
+ utm_medium: typing_extensions.NotRequired[str]
+ """
+ The utm_medium of the visitor.
+ """
+
+ utm_source: typing_extensions.NotRequired[str]
+ """
+ The utm_source of the visitor.
+ """
+
+ utm_term: typing_extensions.NotRequired[str]
+ """
+ The utm_term of the visitor.
+ """
+
+ do_not_track: typing_extensions.NotRequired[bool]
+ """
+ Identifies if this visitor has do not track enabled.
+ """
diff --git a/src/intercom/requests/visitor_avatar.py b/src/intercom/requests/visitor_avatar.py
new file mode 100644
index 0000000..e24260f
--- /dev/null
+++ b/src/intercom/requests/visitor_avatar.py
@@ -0,0 +1,15 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing_extensions
+
+
+class VisitorAvatarParams(typing_extensions.TypedDict):
+ type: typing_extensions.NotRequired[str]
+ """
+
+ """
+
+ image_url: typing_extensions.NotRequired[str]
+ """
+ This object represents the avatar associated with the visitor.
+ """
diff --git a/src/intercom/requests/visitor_companies.py b/src/intercom/requests/visitor_companies.py
new file mode 100644
index 0000000..4c872c2
--- /dev/null
+++ b/src/intercom/requests/visitor_companies.py
@@ -0,0 +1,15 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing
+
+import typing_extensions
+from ..companies.requests.company import CompanyParams
+
+
+class VisitorCompaniesParams(typing_extensions.TypedDict):
+ type: typing_extensions.NotRequired[typing.Literal["company.list"]]
+ """
+ The type of the object
+ """
+
+ companies: typing_extensions.NotRequired[typing.Sequence[CompanyParams]]
diff --git a/src/intercom/requests/visitor_deleted_object.py b/src/intercom/requests/visitor_deleted_object.py
new file mode 100644
index 0000000..7273a52
--- /dev/null
+++ b/src/intercom/requests/visitor_deleted_object.py
@@ -0,0 +1,26 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing
+
+import typing_extensions
+
+
+class VisitorDeletedObjectParams(typing_extensions.TypedDict):
+ """
+ Response returned when an object is deleted
+ """
+
+ id: str
+ """
+ The unique identifier for the visitor which is given by Intercom.
+ """
+
+ type: typing.Literal["visitor"]
+ """
+ The type of object which was deleted
+ """
+
+ user_id: str
+ """
+ Automatically generated identifier for the Visitor.
+ """
diff --git a/src/intercom/requests/visitor_location_data.py b/src/intercom/requests/visitor_location_data.py
new file mode 100644
index 0000000..6713331
--- /dev/null
+++ b/src/intercom/requests/visitor_location_data.py
@@ -0,0 +1,45 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing_extensions
+
+
+class VisitorLocationDataParams(typing_extensions.TypedDict):
+ type: typing_extensions.NotRequired[str]
+ """
+
+ """
+
+ city_name: typing_extensions.NotRequired[str]
+ """
+ The city name of the visitor.
+ """
+
+ continent_code: typing_extensions.NotRequired[str]
+ """
+ The continent code of the visitor.
+ """
+
+ country_code: typing_extensions.NotRequired[str]
+ """
+ The country code of the visitor.
+ """
+
+ country_name: typing_extensions.NotRequired[str]
+ """
+ The country name of the visitor.
+ """
+
+ postal_code: typing_extensions.NotRequired[str]
+ """
+ The postal code of the visitor.
+ """
+
+ region_name: typing_extensions.NotRequired[str]
+ """
+ The region name of the visitor.
+ """
+
+ timezone: typing_extensions.NotRequired[str]
+ """
+ The timezone of the visitor.
+ """
diff --git a/src/intercom/requests/visitor_segments.py b/src/intercom/requests/visitor_segments.py
new file mode 100644
index 0000000..ef64845
--- /dev/null
+++ b/src/intercom/requests/visitor_segments.py
@@ -0,0 +1,14 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing
+
+import typing_extensions
+
+
+class VisitorSegmentsParams(typing_extensions.TypedDict):
+ type: typing_extensions.NotRequired[typing.Literal["segment.list"]]
+ """
+ The type of the object
+ """
+
+ segments: typing_extensions.NotRequired[typing.Sequence[str]]
diff --git a/src/intercom/requests/visitor_social_profiles.py b/src/intercom/requests/visitor_social_profiles.py
new file mode 100644
index 0000000..b9284ea
--- /dev/null
+++ b/src/intercom/requests/visitor_social_profiles.py
@@ -0,0 +1,14 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing
+
+import typing_extensions
+
+
+class VisitorSocialProfilesParams(typing_extensions.TypedDict):
+ type: typing_extensions.NotRequired[typing.Literal["social_profile.list"]]
+ """
+ The type of the object
+ """
+
+ social_profiles: typing_extensions.NotRequired[typing.Sequence[str]]
diff --git a/src/intercom/requests/visitor_tags.py b/src/intercom/requests/visitor_tags.py
new file mode 100644
index 0000000..95c634a
--- /dev/null
+++ b/src/intercom/requests/visitor_tags.py
@@ -0,0 +1,15 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing
+
+import typing_extensions
+from .visitor_tags_tags_item import VisitorTagsTagsItemParams
+
+
+class VisitorTagsParams(typing_extensions.TypedDict):
+ type: typing_extensions.NotRequired[typing.Literal["tag.list"]]
+ """
+ The type of the object
+ """
+
+ tags: typing_extensions.NotRequired[typing.Sequence[VisitorTagsTagsItemParams]]
diff --git a/src/intercom/requests/visitor_tags_tags_item.py b/src/intercom/requests/visitor_tags_tags_item.py
new file mode 100644
index 0000000..cd15fe6
--- /dev/null
+++ b/src/intercom/requests/visitor_tags_tags_item.py
@@ -0,0 +1,22 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing
+
+import typing_extensions
+
+
+class VisitorTagsTagsItemParams(typing_extensions.TypedDict):
+ type: typing_extensions.NotRequired[typing.Literal["tag"]]
+ """
+ The type of the object
+ """
+
+ id: typing_extensions.NotRequired[str]
+ """
+ The id of the tag.
+ """
+
+ name: typing_extensions.NotRequired[str]
+ """
+ The name of the tag.
+ """
diff --git a/src/intercom/segments/__init__.py b/src/intercom/segments/__init__.py
index de85632..4d1d68a 100644
--- a/src/intercom/segments/__init__.py
+++ b/src/intercom/segments/__init__.py
@@ -3,5 +3,6 @@
# isort: skip_file
from .types import Segment, SegmentPersonType
+from .requests import SegmentParams
-__all__ = ["Segment", "SegmentPersonType"]
+__all__ = ["Segment", "SegmentParams", "SegmentPersonType"]
diff --git a/src/intercom/segments/requests/__init__.py b/src/intercom/segments/requests/__init__.py
new file mode 100644
index 0000000..2d598b6
--- /dev/null
+++ b/src/intercom/segments/requests/__init__.py
@@ -0,0 +1,7 @@
+# This file was auto-generated by Fern from our API Definition.
+
+# isort: skip_file
+
+from .segment import SegmentParams
+
+__all__ = ["SegmentParams"]
diff --git a/src/intercom/segments/requests/segment.py b/src/intercom/segments/requests/segment.py
new file mode 100644
index 0000000..d1e5b2a
--- /dev/null
+++ b/src/intercom/segments/requests/segment.py
@@ -0,0 +1,47 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing
+
+import typing_extensions
+from ..types.segment_person_type import SegmentPersonType
+
+
+class SegmentParams(typing_extensions.TypedDict):
+ """
+ A segment is a group of your contacts defined by the rules that you set.
+ """
+
+ type: typing.Literal["segment"]
+ """
+ The type of object.
+ """
+
+ id: str
+ """
+ The unique identifier representing the segment.
+ """
+
+ name: str
+ """
+ The name of the segment.
+ """
+
+ created_at: int
+ """
+ The time the segment was created.
+ """
+
+ updated_at: typing_extensions.NotRequired[int]
+ """
+ The time the segment was updated.
+ """
+
+ person_type: SegmentPersonType
+ """
+ Type of the contact: contact (lead) or user.
+ """
+
+ count: typing_extensions.NotRequired[int]
+ """
+ The number of items in the user segment. It's returned when `include_count=true` is included in the request.
+ """
diff --git a/src/intercom/subscription_types/__init__.py b/src/intercom/subscription_types/__init__.py
index a43a24a..4cbc88a 100644
--- a/src/intercom/subscription_types/__init__.py
+++ b/src/intercom/subscription_types/__init__.py
@@ -8,10 +8,12 @@
SubscriptionTypeContentTypesItem,
SubscriptionTypeState,
)
+from .requests import SubscriptionTypeParams
__all__ = [
"SubscriptionType",
"SubscriptionTypeConsentType",
"SubscriptionTypeContentTypesItem",
+ "SubscriptionTypeParams",
"SubscriptionTypeState",
]
diff --git a/src/intercom/subscription_types/requests/__init__.py b/src/intercom/subscription_types/requests/__init__.py
new file mode 100644
index 0000000..078e34b
--- /dev/null
+++ b/src/intercom/subscription_types/requests/__init__.py
@@ -0,0 +1,7 @@
+# This file was auto-generated by Fern from our API Definition.
+
+# isort: skip_file
+
+from .subscription_type import SubscriptionTypeParams
+
+__all__ = ["SubscriptionTypeParams"]
diff --git a/src/intercom/subscription_types/requests/subscription_type.py b/src/intercom/subscription_types/requests/subscription_type.py
new file mode 100644
index 0000000..1ba11d4
--- /dev/null
+++ b/src/intercom/subscription_types/requests/subscription_type.py
@@ -0,0 +1,46 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing
+
+import typing_extensions
+from ...requests.translation import TranslationParams
+from ..types.subscription_type_consent_type import SubscriptionTypeConsentType
+from ..types.subscription_type_content_types_item import SubscriptionTypeContentTypesItem
+from ..types.subscription_type_state import SubscriptionTypeState
+
+
+class SubscriptionTypeParams(typing_extensions.TypedDict):
+ """
+ A subscription type lets customers easily opt out of non-essential communications without missing what's important to them.
+ """
+
+ type: typing.Literal["subscription"]
+ """
+ The type of the object - subscription
+ """
+
+ id: str
+ """
+ The unique identifier representing the subscription type.
+ """
+
+ state: SubscriptionTypeState
+ """
+ The state of the subscription type.
+ """
+
+ default_translation: TranslationParams
+ translations: typing.Sequence[TranslationParams]
+ """
+ An array of translations objects with the localised version of the subscription type in each available locale within your translation settings.
+ """
+
+ consent_type: SubscriptionTypeConsentType
+ """
+ Describes the type of consent.
+ """
+
+ content_types: typing.Sequence[SubscriptionTypeContentTypesItem]
+ """
+ The message types that this subscription supports - can contain `email` or `sms_message`.
+ """
diff --git a/src/intercom/tags/__init__.py b/src/intercom/tags/__init__.py
index fc57985..81bdf20 100644
--- a/src/intercom/tags/__init__.py
+++ b/src/intercom/tags/__init__.py
@@ -3,5 +3,6 @@
# isort: skip_file
from .types import Tag, TagsCreateRequestBody
+from .requests import TagParams, TagsCreateRequestBodyParams
-__all__ = ["Tag", "TagsCreateRequestBody"]
+__all__ = ["Tag", "TagParams", "TagsCreateRequestBody", "TagsCreateRequestBodyParams"]
diff --git a/src/intercom/tags/client.py b/src/intercom/tags/client.py
index 0a0579c..008e2b6 100644
--- a/src/intercom/tags/client.py
+++ b/src/intercom/tags/client.py
@@ -6,8 +6,8 @@
from ..core.request_options import RequestOptions
from ..types.tag_list import TagList
from .raw_client import AsyncRawTagsClient, RawTagsClient
+from .requests.tags_create_request_body import TagsCreateRequestBodyParams
from .types.tag import Tag
-from .types.tags_create_request_body import TagsCreateRequestBody
# this is used as the default value for optional parameters
OMIT = typing.cast(typing.Any, ...)
@@ -224,7 +224,9 @@ def list(self, *, request_options: typing.Optional[RequestOptions] = None) -> Ta
_response = self._raw_client.list(request_options=request_options)
return _response.data
- def create(self, *, request: TagsCreateRequestBody, request_options: typing.Optional[RequestOptions] = None) -> Tag:
+ def create(
+ self, *, request: TagsCreateRequestBodyParams, request_options: typing.Optional[RequestOptions] = None
+ ) -> Tag:
"""
You can use this endpoint to perform the following operations:
@@ -242,7 +244,7 @@ def create(self, *, request: TagsCreateRequestBody, request_options: typing.Opti
Parameters
----------
- request : TagsCreateRequestBody
+ request : TagsCreateRequestBodyParams
request_options : typing.Optional[RequestOptions]
Request-specific configuration.
@@ -254,15 +256,13 @@ def create(self, *, request: TagsCreateRequestBody, request_options: typing.Opti
Examples
--------
- from intercom import CreateOrUpdateTagRequest, Intercom
+ from intercom import Intercom
client = Intercom(
token="YOUR_TOKEN",
)
client.tags.create(
- request=CreateOrUpdateTagRequest(
- name="test",
- ),
+ request={"name": "test"},
)
"""
_response = self._raw_client.create(request=request, request_options=request_options)
@@ -667,7 +667,7 @@ async def main() -> None:
return _response.data
async def create(
- self, *, request: TagsCreateRequestBody, request_options: typing.Optional[RequestOptions] = None
+ self, *, request: TagsCreateRequestBodyParams, request_options: typing.Optional[RequestOptions] = None
) -> Tag:
"""
You can use this endpoint to perform the following operations:
@@ -686,7 +686,7 @@ async def create(
Parameters
----------
- request : TagsCreateRequestBody
+ request : TagsCreateRequestBodyParams
request_options : typing.Optional[RequestOptions]
Request-specific configuration.
@@ -700,7 +700,7 @@ async def create(
--------
import asyncio
- from intercom import AsyncIntercom, CreateOrUpdateTagRequest
+ from intercom import AsyncIntercom
client = AsyncIntercom(
token="YOUR_TOKEN",
@@ -709,9 +709,7 @@ async def create(
async def main() -> None:
await client.tags.create(
- request=CreateOrUpdateTagRequest(
- name="test",
- ),
+ request={"name": "test"},
)
diff --git a/src/intercom/tags/raw_client.py b/src/intercom/tags/raw_client.py
index e54869d..d3fb14e 100644
--- a/src/intercom/tags/raw_client.py
+++ b/src/intercom/tags/raw_client.py
@@ -15,8 +15,8 @@
from ..errors.unauthorized_error import UnauthorizedError
from ..types.error import Error
from ..types.tag_list import TagList
+from .requests.tags_create_request_body import TagsCreateRequestBodyParams
from .types.tag import Tag
-from .types.tags_create_request_body import TagsCreateRequestBody
# this is used as the default value for optional parameters
OMIT = typing.cast(typing.Any, ...)
@@ -366,7 +366,7 @@ def list(self, *, request_options: typing.Optional[RequestOptions] = None) -> Ht
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
def create(
- self, *, request: TagsCreateRequestBody, request_options: typing.Optional[RequestOptions] = None
+ self, *, request: TagsCreateRequestBodyParams, request_options: typing.Optional[RequestOptions] = None
) -> HttpResponse[Tag]:
"""
You can use this endpoint to perform the following operations:
@@ -385,7 +385,7 @@ def create(
Parameters
----------
- request : TagsCreateRequestBody
+ request : TagsCreateRequestBodyParams
request_options : typing.Optional[RequestOptions]
Request-specific configuration.
@@ -399,7 +399,7 @@ def create(
"tags",
method="POST",
json=convert_and_respect_annotation_metadata(
- object_=request, annotation=TagsCreateRequestBody, direction="write"
+ object_=request, annotation=TagsCreateRequestBodyParams, direction="write"
),
headers={
"content-type": "application/json",
@@ -1071,7 +1071,7 @@ async def list(self, *, request_options: typing.Optional[RequestOptions] = None)
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
async def create(
- self, *, request: TagsCreateRequestBody, request_options: typing.Optional[RequestOptions] = None
+ self, *, request: TagsCreateRequestBodyParams, request_options: typing.Optional[RequestOptions] = None
) -> AsyncHttpResponse[Tag]:
"""
You can use this endpoint to perform the following operations:
@@ -1090,7 +1090,7 @@ async def create(
Parameters
----------
- request : TagsCreateRequestBody
+ request : TagsCreateRequestBodyParams
request_options : typing.Optional[RequestOptions]
Request-specific configuration.
@@ -1104,7 +1104,7 @@ async def create(
"tags",
method="POST",
json=convert_and_respect_annotation_metadata(
- object_=request, annotation=TagsCreateRequestBody, direction="write"
+ object_=request, annotation=TagsCreateRequestBodyParams, direction="write"
),
headers={
"content-type": "application/json",
diff --git a/src/intercom/tags/requests/__init__.py b/src/intercom/tags/requests/__init__.py
new file mode 100644
index 0000000..c1bf2e8
--- /dev/null
+++ b/src/intercom/tags/requests/__init__.py
@@ -0,0 +1,8 @@
+# This file was auto-generated by Fern from our API Definition.
+
+# isort: skip_file
+
+from .tag import TagParams
+from .tags_create_request_body import TagsCreateRequestBodyParams
+
+__all__ = ["TagParams", "TagsCreateRequestBodyParams"]
diff --git a/src/intercom/tags/requests/tag.py b/src/intercom/tags/requests/tag.py
new file mode 100644
index 0000000..e84ba40
--- /dev/null
+++ b/src/intercom/tags/requests/tag.py
@@ -0,0 +1,34 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing
+
+import typing_extensions
+from ...requests.reference import ReferenceParams
+
+
+class TagParams(typing_extensions.TypedDict):
+ """
+ A tag allows you to label your contacts, companies, and conversations and list them using that tag.
+ """
+
+ type: typing.Literal["tag"]
+ """
+ value is "tag"
+ """
+
+ id: str
+ """
+ The id of the tag
+ """
+
+ name: str
+ """
+ The name of the tag
+ """
+
+ applied_at: typing_extensions.NotRequired[int]
+ """
+ The time when the tag was applied to the object
+ """
+
+ applied_by: typing_extensions.NotRequired[ReferenceParams]
diff --git a/src/intercom/tags/requests/tags_create_request_body.py b/src/intercom/tags/requests/tags_create_request_body.py
new file mode 100644
index 0000000..c9b494f
--- /dev/null
+++ b/src/intercom/tags/requests/tags_create_request_body.py
@@ -0,0 +1,12 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing
+
+from ...requests.create_or_update_tag_request import CreateOrUpdateTagRequestParams
+from ...requests.tag_company_request import TagCompanyRequestParams
+from ...requests.tag_multiple_users_request import TagMultipleUsersRequestParams
+from ...requests.untag_company_request import UntagCompanyRequestParams
+
+TagsCreateRequestBodyParams = typing.Union[
+ CreateOrUpdateTagRequestParams, TagCompanyRequestParams, UntagCompanyRequestParams, TagMultipleUsersRequestParams
+]
diff --git a/src/intercom/teams/__init__.py b/src/intercom/teams/__init__.py
index fed79d9..38b9a16 100644
--- a/src/intercom/teams/__init__.py
+++ b/src/intercom/teams/__init__.py
@@ -3,5 +3,6 @@
# isort: skip_file
from .types import Team
+from .requests import TeamParams
-__all__ = ["Team"]
+__all__ = ["Team", "TeamParams"]
diff --git a/src/intercom/teams/requests/__init__.py b/src/intercom/teams/requests/__init__.py
new file mode 100644
index 0000000..37db84e
--- /dev/null
+++ b/src/intercom/teams/requests/__init__.py
@@ -0,0 +1,7 @@
+# This file was auto-generated by Fern from our API Definition.
+
+# isort: skip_file
+
+from .team import TeamParams
+
+__all__ = ["TeamParams"]
diff --git a/src/intercom/teams/requests/team.py b/src/intercom/teams/requests/team.py
new file mode 100644
index 0000000..104d57a
--- /dev/null
+++ b/src/intercom/teams/requests/team.py
@@ -0,0 +1,34 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing
+
+import typing_extensions
+from ...requests.admin_priority_level import AdminPriorityLevelParams
+
+
+class TeamParams(typing_extensions.TypedDict):
+ """
+ Teams are groups of admins in Intercom.
+ """
+
+ type: typing.Literal["team"]
+ """
+ Value is always "team"
+ """
+
+ id: str
+ """
+ The id of the team
+ """
+
+ name: str
+ """
+ The name of the team
+ """
+
+ admin_ids: typing.Sequence[int]
+ """
+ The list of admin IDs that are a part of the team.
+ """
+
+ admin_priority_level: typing_extensions.NotRequired[AdminPriorityLevelParams]
diff --git a/src/intercom/tickets/__init__.py b/src/intercom/tickets/__init__.py
index 2b84247..0e9b43d 100644
--- a/src/intercom/tickets/__init__.py
+++ b/src/intercom/tickets/__init__.py
@@ -16,18 +16,32 @@
UpdateTicketRequestAssignment,
UpdateTicketRequestState,
)
+from .requests import (
+ TicketContactsParams,
+ TicketParams,
+ TicketPartParams,
+ TicketTypeParams,
+ TicketsReplyRequestBodyParams,
+ UpdateTicketRequestAssignmentParams,
+)
__all__ = [
"Ticket",
"TicketCategory",
"TicketContacts",
+ "TicketContactsParams",
+ "TicketParams",
"TicketPart",
+ "TicketPartParams",
"TicketPartPreviousTicketState",
"TicketPartTicketState",
"TicketTicketState",
"TicketType",
"TicketTypeCategory",
+ "TicketTypeParams",
"TicketsReplyRequestBody",
+ "TicketsReplyRequestBodyParams",
"UpdateTicketRequestAssignment",
+ "UpdateTicketRequestAssignmentParams",
"UpdateTicketRequestState",
]
diff --git a/src/intercom/tickets/client.py b/src/intercom/tickets/client.py
index 03cb766..f457c9f 100644
--- a/src/intercom/tickets/client.py
+++ b/src/intercom/tickets/client.py
@@ -5,15 +5,15 @@
from ..core.client_wrapper import AsyncClientWrapper, SyncClientWrapper
from ..core.pagination import AsyncPager, SyncPager
from ..core.request_options import RequestOptions
-from ..types.create_ticket_request_contacts_item import CreateTicketRequestContactsItem
-from ..types.search_request_query import SearchRequestQuery
-from ..types.starting_after_paging import StartingAfterPaging
+from ..requests.create_ticket_request_contacts_item import CreateTicketRequestContactsItemParams
+from ..requests.search_request_query import SearchRequestQueryParams
+from ..requests.starting_after_paging import StartingAfterPagingParams
from ..types.ticket_reply import TicketReply
from ..types.ticket_request_custom_attributes import TicketRequestCustomAttributes
from .raw_client import AsyncRawTicketsClient, RawTicketsClient
+from .requests.tickets_reply_request_body import TicketsReplyRequestBodyParams
+from .requests.update_ticket_request_assignment import UpdateTicketRequestAssignmentParams
from .types.ticket import Ticket
-from .types.tickets_reply_request_body import TicketsReplyRequestBody
-from .types.update_ticket_request_assignment import UpdateTicketRequestAssignment
from .types.update_ticket_request_state import UpdateTicketRequestState
# this is used as the default value for optional parameters
@@ -39,7 +39,7 @@ def reply(
self,
ticket_id: str,
*,
- request: TicketsReplyRequestBody,
+ request: TicketsReplyRequestBodyParams,
request_options: typing.Optional[RequestOptions] = None,
) -> TicketReply:
"""
@@ -49,7 +49,7 @@ def reply(
----------
ticket_id : str
- request : TicketsReplyRequestBody
+ request : TicketsReplyRequestBodyParams
request_options : typing.Optional[RequestOptions]
Request-specific configuration.
@@ -61,17 +61,19 @@ def reply(
Examples
--------
- from intercom import ContactReplyTicketIntercomUserIdRequest, Intercom
+ from intercom import Intercom
client = Intercom(
token="YOUR_TOKEN",
)
client.tickets.reply(
ticket_id="123",
- request=ContactReplyTicketIntercomUserIdRequest(
- body="Thanks again :)",
- intercom_user_id="667d619d8a68186f43bafe82",
- ),
+ request={
+ "message_type": "comment",
+ "type": "user",
+ "body": "Thanks again :)",
+ "intercom_user_id": "667d619d8a68186f43bafe82",
+ },
)
"""
_response = self._raw_client.reply(ticket_id, request=request, request_options=request_options)
@@ -81,7 +83,7 @@ def create(
self,
*,
ticket_type_id: str,
- contacts: typing.Sequence[CreateTicketRequestContactsItem],
+ contacts: typing.Sequence[CreateTicketRequestContactsItemParams],
company_id: typing.Optional[str] = OMIT,
created_at: typing.Optional[int] = OMIT,
ticket_attributes: typing.Optional[TicketRequestCustomAttributes] = OMIT,
@@ -95,7 +97,7 @@ def create(
ticket_type_id : str
The ID of the type of ticket you want to create
- contacts : typing.Sequence[CreateTicketRequestContactsItem]
+ contacts : typing.Sequence[CreateTicketRequestContactsItemParams]
The list of contacts (users or leads) affected by this ticket. Currently only one is allowed
company_id : typing.Optional[str]
@@ -116,18 +118,14 @@ def create(
Examples
--------
- from intercom import CreateTicketRequestContactsItemId, Intercom
+ from intercom import Intercom
client = Intercom(
token="YOUR_TOKEN",
)
client.tickets.create(
ticket_type_id="1234",
- contacts=[
- CreateTicketRequestContactsItemId(
- id="667d61b78a68186f43bafe8d",
- )
- ],
+ contacts=[{"id": "667d61b78a68186f43bafe8d"}],
ticket_attributes={
"_default_title_": "example",
"_default_description_": "there is a problem",
@@ -184,7 +182,7 @@ def update(
open: typing.Optional[bool] = OMIT,
is_shared: typing.Optional[bool] = OMIT,
snoozed_until: typing.Optional[int] = OMIT,
- assignment: typing.Optional[UpdateTicketRequestAssignment] = OMIT,
+ assignment: typing.Optional[UpdateTicketRequestAssignmentParams] = OMIT,
request_options: typing.Optional[RequestOptions] = None,
) -> Ticket:
"""
@@ -210,7 +208,7 @@ def update(
snoozed_until : typing.Optional[int]
The time you want the ticket to reopen.
- assignment : typing.Optional[UpdateTicketRequestAssignment]
+ assignment : typing.Optional[UpdateTicketRequestAssignmentParams]
request_options : typing.Optional[RequestOptions]
Request-specific configuration.
@@ -223,7 +221,6 @@ def update(
Examples
--------
from intercom import Intercom
- from intercom.tickets import UpdateTicketRequestAssignment
client = Intercom(
token="YOUR_TOKEN",
@@ -237,10 +234,7 @@ def update(
state="in_progress",
open=True,
snoozed_until=1673609604,
- assignment=UpdateTicketRequestAssignment(
- admin_id="991267883",
- assignee_id="991267885",
- ),
+ assignment={"admin_id": "991267883", "assignee_id": "991267885"},
)
"""
_response = self._raw_client.update(
@@ -258,8 +252,8 @@ def update(
def search(
self,
*,
- query: SearchRequestQuery,
- pagination: typing.Optional[StartingAfterPaging] = OMIT,
+ query: SearchRequestQueryParams,
+ pagination: typing.Optional[StartingAfterPagingParams] = OMIT,
request_options: typing.Optional[RequestOptions] = None,
) -> SyncPager[Ticket]:
"""
@@ -327,9 +321,9 @@ def search(
Parameters
----------
- query : SearchRequestQuery
+ query : SearchRequestQueryParams
- pagination : typing.Optional[StartingAfterPaging]
+ pagination : typing.Optional[StartingAfterPagingParams]
request_options : typing.Optional[RequestOptions]
Request-specific configuration.
@@ -341,30 +335,19 @@ def search(
Examples
--------
- from intercom import (
- Intercom,
- MultipleFilterSearchRequest,
- SingleFilterSearchRequest,
- StartingAfterPaging,
- )
+ from intercom import Intercom
client = Intercom(
token="YOUR_TOKEN",
)
response = client.tickets.search(
- query=MultipleFilterSearchRequest(
- operator="AND",
- value=[
- SingleFilterSearchRequest(
- field="created_at",
- operator=">",
- value="1306054154",
- )
+ query={
+ "operator": "AND",
+ "value": [
+ {"field": "created_at", "operator": ">", "value": "1306054154"}
],
- ),
- pagination=StartingAfterPaging(
- per_page=5,
- ),
+ },
+ pagination={"per_page": 5},
)
for item in response:
yield item
@@ -394,7 +377,7 @@ async def reply(
self,
ticket_id: str,
*,
- request: TicketsReplyRequestBody,
+ request: TicketsReplyRequestBodyParams,
request_options: typing.Optional[RequestOptions] = None,
) -> TicketReply:
"""
@@ -404,7 +387,7 @@ async def reply(
----------
ticket_id : str
- request : TicketsReplyRequestBody
+ request : TicketsReplyRequestBodyParams
request_options : typing.Optional[RequestOptions]
Request-specific configuration.
@@ -418,7 +401,7 @@ async def reply(
--------
import asyncio
- from intercom import AsyncIntercom, ContactReplyTicketIntercomUserIdRequest
+ from intercom import AsyncIntercom
client = AsyncIntercom(
token="YOUR_TOKEN",
@@ -428,10 +411,12 @@ async def reply(
async def main() -> None:
await client.tickets.reply(
ticket_id="123",
- request=ContactReplyTicketIntercomUserIdRequest(
- body="Thanks again :)",
- intercom_user_id="667d619d8a68186f43bafe82",
- ),
+ request={
+ "message_type": "comment",
+ "type": "user",
+ "body": "Thanks again :)",
+ "intercom_user_id": "667d619d8a68186f43bafe82",
+ },
)
@@ -444,7 +429,7 @@ async def create(
self,
*,
ticket_type_id: str,
- contacts: typing.Sequence[CreateTicketRequestContactsItem],
+ contacts: typing.Sequence[CreateTicketRequestContactsItemParams],
company_id: typing.Optional[str] = OMIT,
created_at: typing.Optional[int] = OMIT,
ticket_attributes: typing.Optional[TicketRequestCustomAttributes] = OMIT,
@@ -458,7 +443,7 @@ async def create(
ticket_type_id : str
The ID of the type of ticket you want to create
- contacts : typing.Sequence[CreateTicketRequestContactsItem]
+ contacts : typing.Sequence[CreateTicketRequestContactsItemParams]
The list of contacts (users or leads) affected by this ticket. Currently only one is allowed
company_id : typing.Optional[str]
@@ -481,7 +466,7 @@ async def create(
--------
import asyncio
- from intercom import AsyncIntercom, CreateTicketRequestContactsItemId
+ from intercom import AsyncIntercom
client = AsyncIntercom(
token="YOUR_TOKEN",
@@ -491,11 +476,7 @@ async def create(
async def main() -> None:
await client.tickets.create(
ticket_type_id="1234",
- contacts=[
- CreateTicketRequestContactsItemId(
- id="667d61b78a68186f43bafe8d",
- )
- ],
+ contacts=[{"id": "667d61b78a68186f43bafe8d"}],
ticket_attributes={
"_default_title_": "example",
"_default_description_": "there is a problem",
@@ -563,7 +544,7 @@ async def update(
open: typing.Optional[bool] = OMIT,
is_shared: typing.Optional[bool] = OMIT,
snoozed_until: typing.Optional[int] = OMIT,
- assignment: typing.Optional[UpdateTicketRequestAssignment] = OMIT,
+ assignment: typing.Optional[UpdateTicketRequestAssignmentParams] = OMIT,
request_options: typing.Optional[RequestOptions] = None,
) -> Ticket:
"""
@@ -589,7 +570,7 @@ async def update(
snoozed_until : typing.Optional[int]
The time you want the ticket to reopen.
- assignment : typing.Optional[UpdateTicketRequestAssignment]
+ assignment : typing.Optional[UpdateTicketRequestAssignmentParams]
request_options : typing.Optional[RequestOptions]
Request-specific configuration.
@@ -604,7 +585,6 @@ async def update(
import asyncio
from intercom import AsyncIntercom
- from intercom.tickets import UpdateTicketRequestAssignment
client = AsyncIntercom(
token="YOUR_TOKEN",
@@ -621,10 +601,7 @@ async def main() -> None:
state="in_progress",
open=True,
snoozed_until=1673609604,
- assignment=UpdateTicketRequestAssignment(
- admin_id="991267883",
- assignee_id="991267885",
- ),
+ assignment={"admin_id": "991267883", "assignee_id": "991267885"},
)
@@ -645,8 +622,8 @@ async def main() -> None:
async def search(
self,
*,
- query: SearchRequestQuery,
- pagination: typing.Optional[StartingAfterPaging] = OMIT,
+ query: SearchRequestQueryParams,
+ pagination: typing.Optional[StartingAfterPagingParams] = OMIT,
request_options: typing.Optional[RequestOptions] = None,
) -> AsyncPager[Ticket]:
"""
@@ -714,9 +691,9 @@ async def search(
Parameters
----------
- query : SearchRequestQuery
+ query : SearchRequestQueryParams
- pagination : typing.Optional[StartingAfterPaging]
+ pagination : typing.Optional[StartingAfterPagingParams]
request_options : typing.Optional[RequestOptions]
Request-specific configuration.
@@ -730,12 +707,7 @@ async def search(
--------
import asyncio
- from intercom import (
- AsyncIntercom,
- MultipleFilterSearchRequest,
- SingleFilterSearchRequest,
- StartingAfterPaging,
- )
+ from intercom import AsyncIntercom
client = AsyncIntercom(
token="YOUR_TOKEN",
@@ -744,19 +716,13 @@ async def search(
async def main() -> None:
response = await client.tickets.search(
- query=MultipleFilterSearchRequest(
- operator="AND",
- value=[
- SingleFilterSearchRequest(
- field="created_at",
- operator=">",
- value="1306054154",
- )
+ query={
+ "operator": "AND",
+ "value": [
+ {"field": "created_at", "operator": ">", "value": "1306054154"}
],
- ),
- pagination=StartingAfterPaging(
- per_page=5,
- ),
+ },
+ pagination={"per_page": 5},
)
async for item in response:
yield item
diff --git a/src/intercom/tickets/raw_client.py b/src/intercom/tickets/raw_client.py
index 1a604dc..a796db6 100644
--- a/src/intercom/tickets/raw_client.py
+++ b/src/intercom/tickets/raw_client.py
@@ -14,16 +14,16 @@
from ..errors.bad_request_error import BadRequestError
from ..errors.not_found_error import NotFoundError
from ..errors.unauthorized_error import UnauthorizedError
-from ..types.create_ticket_request_contacts_item import CreateTicketRequestContactsItem
+from ..requests.create_ticket_request_contacts_item import CreateTicketRequestContactsItemParams
+from ..requests.search_request_query import SearchRequestQueryParams
+from ..requests.starting_after_paging import StartingAfterPagingParams
from ..types.error import Error
-from ..types.search_request_query import SearchRequestQuery
-from ..types.starting_after_paging import StartingAfterPaging
from ..types.ticket_list import TicketList
from ..types.ticket_reply import TicketReply
from ..types.ticket_request_custom_attributes import TicketRequestCustomAttributes
+from .requests.tickets_reply_request_body import TicketsReplyRequestBodyParams
+from .requests.update_ticket_request_assignment import UpdateTicketRequestAssignmentParams
from .types.ticket import Ticket
-from .types.tickets_reply_request_body import TicketsReplyRequestBody
-from .types.update_ticket_request_assignment import UpdateTicketRequestAssignment
from .types.update_ticket_request_state import UpdateTicketRequestState
# this is used as the default value for optional parameters
@@ -38,7 +38,7 @@ def reply(
self,
ticket_id: str,
*,
- request: TicketsReplyRequestBody,
+ request: TicketsReplyRequestBodyParams,
request_options: typing.Optional[RequestOptions] = None,
) -> HttpResponse[TicketReply]:
"""
@@ -48,7 +48,7 @@ def reply(
----------
ticket_id : str
- request : TicketsReplyRequestBody
+ request : TicketsReplyRequestBodyParams
request_options : typing.Optional[RequestOptions]
Request-specific configuration.
@@ -62,7 +62,7 @@ def reply(
f"tickets/{jsonable_encoder(ticket_id)}/reply",
method="POST",
json=convert_and_respect_annotation_metadata(
- object_=request, annotation=TicketsReplyRequestBody, direction="write"
+ object_=request, annotation=TicketsReplyRequestBodyParams, direction="write"
),
headers={
"content-type": "application/json",
@@ -122,7 +122,7 @@ def create(
self,
*,
ticket_type_id: str,
- contacts: typing.Sequence[CreateTicketRequestContactsItem],
+ contacts: typing.Sequence[CreateTicketRequestContactsItemParams],
company_id: typing.Optional[str] = OMIT,
created_at: typing.Optional[int] = OMIT,
ticket_attributes: typing.Optional[TicketRequestCustomAttributes] = OMIT,
@@ -136,7 +136,7 @@ def create(
ticket_type_id : str
The ID of the type of ticket you want to create
- contacts : typing.Sequence[CreateTicketRequestContactsItem]
+ contacts : typing.Sequence[CreateTicketRequestContactsItemParams]
The list of contacts (users or leads) affected by this ticket. Currently only one is allowed
company_id : typing.Optional[str]
@@ -161,7 +161,9 @@ def create(
json={
"ticket_type_id": ticket_type_id,
"contacts": convert_and_respect_annotation_metadata(
- object_=contacts, annotation=typing.Sequence[CreateTicketRequestContactsItem], direction="write"
+ object_=contacts,
+ annotation=typing.Sequence[CreateTicketRequestContactsItemParams],
+ direction="write",
),
"company_id": company_id,
"created_at": created_at,
@@ -256,7 +258,7 @@ def update(
open: typing.Optional[bool] = OMIT,
is_shared: typing.Optional[bool] = OMIT,
snoozed_until: typing.Optional[int] = OMIT,
- assignment: typing.Optional[UpdateTicketRequestAssignment] = OMIT,
+ assignment: typing.Optional[UpdateTicketRequestAssignmentParams] = OMIT,
request_options: typing.Optional[RequestOptions] = None,
) -> HttpResponse[Ticket]:
"""
@@ -282,7 +284,7 @@ def update(
snoozed_until : typing.Optional[int]
The time you want the ticket to reopen.
- assignment : typing.Optional[UpdateTicketRequestAssignment]
+ assignment : typing.Optional[UpdateTicketRequestAssignmentParams]
request_options : typing.Optional[RequestOptions]
Request-specific configuration.
@@ -302,7 +304,7 @@ def update(
"is_shared": is_shared,
"snoozed_until": snoozed_until,
"assignment": convert_and_respect_annotation_metadata(
- object_=assignment, annotation=UpdateTicketRequestAssignment, direction="write"
+ object_=assignment, annotation=UpdateTicketRequestAssignmentParams, direction="write"
),
},
headers={
@@ -351,8 +353,8 @@ def update(
def search(
self,
*,
- query: SearchRequestQuery,
- pagination: typing.Optional[StartingAfterPaging] = OMIT,
+ query: SearchRequestQueryParams,
+ pagination: typing.Optional[StartingAfterPagingParams] = OMIT,
request_options: typing.Optional[RequestOptions] = None,
) -> SyncPager[Ticket]:
"""
@@ -420,9 +422,9 @@ def search(
Parameters
----------
- query : SearchRequestQuery
+ query : SearchRequestQueryParams
- pagination : typing.Optional[StartingAfterPaging]
+ pagination : typing.Optional[StartingAfterPagingParams]
request_options : typing.Optional[RequestOptions]
Request-specific configuration.
@@ -437,10 +439,10 @@ def search(
method="POST",
json={
"query": convert_and_respect_annotation_metadata(
- object_=query, annotation=SearchRequestQuery, direction="write"
+ object_=query, annotation=SearchRequestQueryParams, direction="write"
),
"pagination": convert_and_respect_annotation_metadata(
- object_=pagination, annotation=StartingAfterPaging, direction="write"
+ object_=pagination, annotation=StartingAfterPagingParams, direction="write"
),
},
headers={
@@ -486,7 +488,7 @@ async def reply(
self,
ticket_id: str,
*,
- request: TicketsReplyRequestBody,
+ request: TicketsReplyRequestBodyParams,
request_options: typing.Optional[RequestOptions] = None,
) -> AsyncHttpResponse[TicketReply]:
"""
@@ -496,7 +498,7 @@ async def reply(
----------
ticket_id : str
- request : TicketsReplyRequestBody
+ request : TicketsReplyRequestBodyParams
request_options : typing.Optional[RequestOptions]
Request-specific configuration.
@@ -510,7 +512,7 @@ async def reply(
f"tickets/{jsonable_encoder(ticket_id)}/reply",
method="POST",
json=convert_and_respect_annotation_metadata(
- object_=request, annotation=TicketsReplyRequestBody, direction="write"
+ object_=request, annotation=TicketsReplyRequestBodyParams, direction="write"
),
headers={
"content-type": "application/json",
@@ -570,7 +572,7 @@ async def create(
self,
*,
ticket_type_id: str,
- contacts: typing.Sequence[CreateTicketRequestContactsItem],
+ contacts: typing.Sequence[CreateTicketRequestContactsItemParams],
company_id: typing.Optional[str] = OMIT,
created_at: typing.Optional[int] = OMIT,
ticket_attributes: typing.Optional[TicketRequestCustomAttributes] = OMIT,
@@ -584,7 +586,7 @@ async def create(
ticket_type_id : str
The ID of the type of ticket you want to create
- contacts : typing.Sequence[CreateTicketRequestContactsItem]
+ contacts : typing.Sequence[CreateTicketRequestContactsItemParams]
The list of contacts (users or leads) affected by this ticket. Currently only one is allowed
company_id : typing.Optional[str]
@@ -609,7 +611,9 @@ async def create(
json={
"ticket_type_id": ticket_type_id,
"contacts": convert_and_respect_annotation_metadata(
- object_=contacts, annotation=typing.Sequence[CreateTicketRequestContactsItem], direction="write"
+ object_=contacts,
+ annotation=typing.Sequence[CreateTicketRequestContactsItemParams],
+ direction="write",
),
"company_id": company_id,
"created_at": created_at,
@@ -706,7 +710,7 @@ async def update(
open: typing.Optional[bool] = OMIT,
is_shared: typing.Optional[bool] = OMIT,
snoozed_until: typing.Optional[int] = OMIT,
- assignment: typing.Optional[UpdateTicketRequestAssignment] = OMIT,
+ assignment: typing.Optional[UpdateTicketRequestAssignmentParams] = OMIT,
request_options: typing.Optional[RequestOptions] = None,
) -> AsyncHttpResponse[Ticket]:
"""
@@ -732,7 +736,7 @@ async def update(
snoozed_until : typing.Optional[int]
The time you want the ticket to reopen.
- assignment : typing.Optional[UpdateTicketRequestAssignment]
+ assignment : typing.Optional[UpdateTicketRequestAssignmentParams]
request_options : typing.Optional[RequestOptions]
Request-specific configuration.
@@ -752,7 +756,7 @@ async def update(
"is_shared": is_shared,
"snoozed_until": snoozed_until,
"assignment": convert_and_respect_annotation_metadata(
- object_=assignment, annotation=UpdateTicketRequestAssignment, direction="write"
+ object_=assignment, annotation=UpdateTicketRequestAssignmentParams, direction="write"
),
},
headers={
@@ -801,8 +805,8 @@ async def update(
async def search(
self,
*,
- query: SearchRequestQuery,
- pagination: typing.Optional[StartingAfterPaging] = OMIT,
+ query: SearchRequestQueryParams,
+ pagination: typing.Optional[StartingAfterPagingParams] = OMIT,
request_options: typing.Optional[RequestOptions] = None,
) -> AsyncPager[Ticket]:
"""
@@ -870,9 +874,9 @@ async def search(
Parameters
----------
- query : SearchRequestQuery
+ query : SearchRequestQueryParams
- pagination : typing.Optional[StartingAfterPaging]
+ pagination : typing.Optional[StartingAfterPagingParams]
request_options : typing.Optional[RequestOptions]
Request-specific configuration.
@@ -887,10 +891,10 @@ async def search(
method="POST",
json={
"query": convert_and_respect_annotation_metadata(
- object_=query, annotation=SearchRequestQuery, direction="write"
+ object_=query, annotation=SearchRequestQueryParams, direction="write"
),
"pagination": convert_and_respect_annotation_metadata(
- object_=pagination, annotation=StartingAfterPaging, direction="write"
+ object_=pagination, annotation=StartingAfterPagingParams, direction="write"
),
},
headers={
diff --git a/src/intercom/tickets/requests/__init__.py b/src/intercom/tickets/requests/__init__.py
new file mode 100644
index 0000000..a08edfe
--- /dev/null
+++ b/src/intercom/tickets/requests/__init__.py
@@ -0,0 +1,19 @@
+# This file was auto-generated by Fern from our API Definition.
+
+# isort: skip_file
+
+from .ticket import TicketParams
+from .ticket_contacts import TicketContactsParams
+from .ticket_part import TicketPartParams
+from .ticket_type import TicketTypeParams
+from .tickets_reply_request_body import TicketsReplyRequestBodyParams
+from .update_ticket_request_assignment import UpdateTicketRequestAssignmentParams
+
+__all__ = [
+ "TicketContactsParams",
+ "TicketParams",
+ "TicketPartParams",
+ "TicketTypeParams",
+ "TicketsReplyRequestBodyParams",
+ "UpdateTicketRequestAssignmentParams",
+]
diff --git a/src/intercom/tickets/requests/ticket.py b/src/intercom/tickets/requests/ticket.py
new file mode 100644
index 0000000..8b52d38
--- /dev/null
+++ b/src/intercom/tickets/requests/ticket.py
@@ -0,0 +1,93 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing
+
+import typing_extensions
+from ...requests.linked_object_list import LinkedObjectListParams
+from ...requests.ticket_parts import TicketPartsParams
+from ...types.ticket_custom_attributes import TicketCustomAttributes
+from ..types.ticket_category import TicketCategory
+from ..types.ticket_ticket_state import TicketTicketState
+from .ticket_contacts import TicketContactsParams
+from .ticket_type import TicketTypeParams
+
+
+class TicketParams(typing_extensions.TypedDict):
+ """
+ Tickets are how you track requests from your users.
+ """
+
+ type: typing.Literal["ticket"]
+ """
+ Always ticket
+ """
+
+ id: str
+ """
+ The unique identifier for the ticket which is given by Intercom.
+ """
+
+ ticket_id: str
+ """
+ The ID of the Ticket used in the Intercom Inbox and Messenger. Do not use ticket_id for API queries.
+ """
+
+ category: TicketCategory
+ """
+ Category of the Ticket.
+ """
+
+ ticket_attributes: TicketCustomAttributes
+ ticket_state: TicketTicketState
+ """
+ The state the ticket is currently in
+ """
+
+ ticket_type: TicketTypeParams
+ contacts: TicketContactsParams
+ admin_assignee_id: typing_extensions.NotRequired[str]
+ """
+ The id representing the admin assigned to the ticket.
+ """
+
+ team_assignee_id: typing_extensions.NotRequired[str]
+ """
+ The id representing the team assigned to the ticket.
+ """
+
+ created_at: typing_extensions.NotRequired[int]
+ """
+ The time the ticket was created as a UTC Unix timestamp.
+ """
+
+ updated_at: typing_extensions.NotRequired[int]
+ """
+ The last time the ticket was updated as a UTC Unix timestamp.
+ """
+
+ open: typing_extensions.NotRequired[bool]
+ """
+ Whether or not the ticket is open. If false, the ticket is closed.
+ """
+
+ snoozed_until: typing_extensions.NotRequired[int]
+ """
+ The time the ticket will be snoozed until as a UTC Unix timestamp. If null, the ticket is not currently snoozed.
+ """
+
+ linked_objects: typing_extensions.NotRequired[LinkedObjectListParams]
+ ticket_parts: typing_extensions.NotRequired[TicketPartsParams]
+ is_shared: typing_extensions.NotRequired[bool]
+ """
+ Whether or not the ticket is shared with the customer.
+ """
+
+ ticket_state_internal_label: typing_extensions.NotRequired[str]
+ """
+ The state the ticket is currently in, in a human readable form - visible in Intercom
+ """
+
+ ticket_state_external_label: typing_extensions.NotRequired[str]
+ """
+ The state the ticket is currently in, in a human readable form - visible to customers, in the messenger, email and tickets portal.
+ """
diff --git a/src/intercom/tickets/requests/ticket_contacts.py b/src/intercom/tickets/requests/ticket_contacts.py
new file mode 100644
index 0000000..b6ae95e
--- /dev/null
+++ b/src/intercom/tickets/requests/ticket_contacts.py
@@ -0,0 +1,22 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing
+
+import typing_extensions
+from ...requests.contact_reference import ContactReferenceParams
+
+
+class TicketContactsParams(typing_extensions.TypedDict):
+ """
+ The list of contacts affected by a ticket.
+ """
+
+ type: typing.Literal["contact.list"]
+ """
+ always contact.list
+ """
+
+ contacts: typing.Sequence[ContactReferenceParams]
+ """
+ The list of contacts affected by this ticket.
+ """
diff --git a/src/intercom/tickets/requests/ticket_part.py b/src/intercom/tickets/requests/ticket_part.py
new file mode 100644
index 0000000..782a74e
--- /dev/null
+++ b/src/intercom/tickets/requests/ticket_part.py
@@ -0,0 +1,77 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing
+
+import typing_extensions
+from ...requests.part_attachment import PartAttachmentParams
+from ...requests.reference import ReferenceParams
+from ...requests.ticket_part_author import TicketPartAuthorParams
+from ..types.ticket_part_previous_ticket_state import TicketPartPreviousTicketState
+from ..types.ticket_part_ticket_state import TicketPartTicketState
+
+
+class TicketPartParams(typing_extensions.TypedDict):
+ """
+ A Ticket Part represents a message in the ticket.
+ """
+
+ type: typing.Literal["ticket_part"]
+ """
+ Always ticket_part
+ """
+
+ id: str
+ """
+ The id representing the ticket part.
+ """
+
+ part_type: str
+ """
+ The type of ticket part.
+ """
+
+ body: typing_extensions.NotRequired[str]
+ """
+ The message body, which may contain HTML.
+ """
+
+ previous_ticket_state: typing_extensions.NotRequired[TicketPartPreviousTicketState]
+ """
+ The previous state of the ticket.
+ """
+
+ ticket_state: TicketPartTicketState
+ """
+ The state of the ticket.
+ """
+
+ created_at: int
+ """
+ The time the ticket part was created.
+ """
+
+ updated_at: typing_extensions.NotRequired[int]
+ """
+ The last time the ticket part was updated.
+ """
+
+ assigned_to: typing_extensions.NotRequired[ReferenceParams]
+ """
+ The id of the admin that was assigned the ticket by this ticket_part (null if there has been no change in assignment.)
+ """
+
+ author: typing_extensions.NotRequired[TicketPartAuthorParams]
+ attachments: typing_extensions.NotRequired[typing.Sequence[PartAttachmentParams]]
+ """
+ A list of attachments for the part.
+ """
+
+ external_id: typing_extensions.NotRequired[str]
+ """
+ The external id of the ticket part
+ """
+
+ redacted: typing_extensions.NotRequired[bool]
+ """
+ Whether or not the ticket part has been redacted.
+ """
diff --git a/src/intercom/tickets/requests/ticket_type.py b/src/intercom/tickets/requests/ticket_type.py
new file mode 100644
index 0000000..46289df
--- /dev/null
+++ b/src/intercom/tickets/requests/ticket_type.py
@@ -0,0 +1,64 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing
+
+import typing_extensions
+from ...requests.ticket_type_attribute_list import TicketTypeAttributeListParams
+from ..types.ticket_type_category import TicketTypeCategory
+
+
+class TicketTypeParams(typing_extensions.TypedDict):
+ """
+ A ticket type, used to define the data fields to be captured in a ticket.
+ """
+
+ type: typing.Literal["ticket_type"]
+ """
+ String representing the object's type. Always has the value `ticket_type`.
+ """
+
+ id: str
+ """
+ The id representing the ticket type.
+ """
+
+ category: TicketTypeCategory
+ """
+ Category of the Ticket Type.
+ """
+
+ name: str
+ """
+ The name of the ticket type
+ """
+
+ description: str
+ """
+ The description of the ticket type
+ """
+
+ icon: str
+ """
+ The icon of the ticket type
+ """
+
+ workspace_id: str
+ """
+ The id of the workspace that the ticket type belongs to.
+ """
+
+ ticket_type_attributes: TicketTypeAttributeListParams
+ archived: bool
+ """
+ Whether the ticket type is archived or not.
+ """
+
+ created_at: int
+ """
+ The date and time the ticket type was created.
+ """
+
+ updated_at: typing_extensions.NotRequired[int]
+ """
+ The date and time the ticket type was last updated.
+ """
diff --git a/src/intercom/tickets/requests/tickets_reply_request_body.py b/src/intercom/tickets/requests/tickets_reply_request_body.py
new file mode 100644
index 0000000..aae2d44
--- /dev/null
+++ b/src/intercom/tickets/requests/tickets_reply_request_body.py
@@ -0,0 +1,8 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing
+
+from ...requests.admin_reply_ticket_request import AdminReplyTicketRequestParams
+from ...requests.contact_reply_ticket_request import ContactReplyTicketRequestParams
+
+TicketsReplyRequestBodyParams = typing.Union[ContactReplyTicketRequestParams, AdminReplyTicketRequestParams]
diff --git a/src/intercom/tickets/requests/update_ticket_request_assignment.py b/src/intercom/tickets/requests/update_ticket_request_assignment.py
new file mode 100644
index 0000000..6c25db2
--- /dev/null
+++ b/src/intercom/tickets/requests/update_ticket_request_assignment.py
@@ -0,0 +1,15 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing_extensions
+
+
+class UpdateTicketRequestAssignmentParams(typing_extensions.TypedDict):
+ admin_id: typing_extensions.NotRequired[str]
+ """
+ The ID of the admin performing the action.
+ """
+
+ assignee_id: typing_extensions.NotRequired[str]
+ """
+ The ID of the admin or team to which the ticket is assigned. Set this 0 to unassign it.
+ """
diff --git a/src/intercom/unstable/__init__.py b/src/intercom/unstable/__init__.py
index d7f4dd4..670459b 100644
--- a/src/intercom/unstable/__init__.py
+++ b/src/intercom/unstable/__init__.py
@@ -262,459 +262,1009 @@
tickets,
visitors,
)
-from .admins import Admin
-from .ai_agent import AiAgent, AiAgentSourceType
+from .admins import Admin, AdminParams
+from .ai_agent import AiAgent, AiAgentParams, AiAgentSourceType
from .ai_content import (
ContentImportSource,
+ ContentImportSourceParams,
ContentImportSourceStatus,
ContentImportSourceSyncBehavior,
ContentImportSourcesList,
+ ContentImportSourcesListParams,
CreateContentImportSourceRequestStatus,
ExternalPage,
+ ExternalPageParams,
ExternalPagesList,
+ ExternalPagesListParams,
UpdateContentImportSourceRequestStatus,
UpdateContentImportSourceRequestSyncBehavior,
)
-from .ai_content_source import ContentSource, ContentSourceContentType
+from .ai_content_source import ContentSource, ContentSourceContentType, ContentSourceParams
from .articles import (
Article,
ArticleListItem,
+ ArticleListItemParams,
ArticleListItemState,
+ ArticleParams,
ArticleSearchHighlights,
ArticleSearchHighlightsHighlightedSummaryItemItem,
+ ArticleSearchHighlightsHighlightedSummaryItemItemParams,
ArticleSearchHighlightsHighlightedSummaryItemItemType,
ArticleSearchHighlightsHighlightedTitleItem,
+ ArticleSearchHighlightsHighlightedTitleItemParams,
ArticleSearchHighlightsHighlightedTitleItemType,
+ ArticleSearchHighlightsParams,
ArticleSearchResponse,
ArticleSearchResponseData,
+ ArticleSearchResponseDataParams,
+ ArticleSearchResponseParams,
+)
+from .companies import (
+ Company,
+ CompanyParams,
+ CompanyPlan,
+ CompanyPlanParams,
+ CompanySegments,
+ CompanySegmentsParams,
+ CompanyTags,
+ CompanyTagsParams,
)
-from .companies import Company, CompanyPlan, CompanySegments, CompanyTags
from .contacts import (
Contact,
ContactAvatar,
+ ContactAvatarParams,
+ ContactParams,
CreateContactResponse,
+ CreateContactResponseParams,
MergeContactResponse,
+ MergeContactResponseParams,
ShowContactByExternalIdResponse,
+ ShowContactByExternalIdResponseParams,
ShowContactResponse,
+ ShowContactResponseParams,
UpdateContactResponse,
+ UpdateContactResponseParams,
)
from .conversations import (
AttachContactToConversationRequestCustomer,
AttachContactToConversationRequestCustomerCustomer,
+ AttachContactToConversationRequestCustomerCustomerParams,
AttachContactToConversationRequestCustomerIntercomUserId,
+ AttachContactToConversationRequestCustomerIntercomUserIdParams,
+ AttachContactToConversationRequestCustomerParams,
AttachContactToConversationRequestCustomerUserId,
+ AttachContactToConversationRequestCustomerUserIdParams,
Conversation,
+ ConversationParams,
ConversationPriority,
ConversationState,
CreateConversationRequestFrom,
+ CreateConversationRequestFromParams,
CreateConversationRequestFromType,
ManageConversationRequestBody,
+ ManageConversationRequestBodyParams,
ManageConversationRequestBody_Assignment,
+ ManageConversationRequestBody_AssignmentParams,
ManageConversationRequestBody_Close,
+ ManageConversationRequestBody_CloseParams,
ManageConversationRequestBody_Open,
+ ManageConversationRequestBody_OpenParams,
ManageConversationRequestBody_Snoozed,
+ ManageConversationRequestBody_SnoozedParams,
)
-from .custom_object_instances import CustomObjectInstance
+from .custom_object_instances import CustomObjectInstance, CustomObjectInstanceParams
from .data_attributes import (
CreateDataAttributeRequestDataType,
CreateDataAttributeRequestModel,
DataAttribute,
DataAttributeDataType,
DataAttributeModel,
+ DataAttributeParams,
LisDataAttributesRequestModel,
)
from .data_events import (
CreateDataEventSummariesRequestEventSummaries,
+ CreateDataEventSummariesRequestEventSummariesParams,
DataEvent,
+ DataEventParams,
LisDataEventsRequestFilter,
LisDataEventsRequestFilterEmail,
+ LisDataEventsRequestFilterEmailParams,
LisDataEventsRequestFilterIntercomUserId,
+ LisDataEventsRequestFilterIntercomUserIdParams,
+ LisDataEventsRequestFilterParams,
LisDataEventsRequestFilterUserId,
+ LisDataEventsRequestFilterUserIdParams,
)
-from .data_export import DataExport, DataExportStatus
+from .data_export import DataExport, DataExportParams, DataExportStatus
from .export import (
GetExportReportingDataGetDatasetsResponse,
GetExportReportingDataGetDatasetsResponseDataItem,
GetExportReportingDataGetDatasetsResponseDataItemAttributesItem,
+ GetExportReportingDataGetDatasetsResponseDataItemAttributesItemParams,
+ GetExportReportingDataGetDatasetsResponseDataItemParams,
+ GetExportReportingDataGetDatasetsResponseParams,
PostExportReportingDataEnqueueResponse,
+ PostExportReportingDataEnqueueResponseParams,
+)
+from .help_center import (
+ Collection,
+ CollectionParams,
+ HelpCenter,
+ HelpCenterList,
+ HelpCenterListParams,
+ HelpCenterParams,
+)
+from .jobs import Jobs, JobsParams, JobsStatus
+from .messages import Message, MessageMessageType, MessageParams
+from .news import (
+ NewsItem,
+ NewsItemParams,
+ NewsItemState,
+ Newsfeed,
+ NewsfeedAssignment,
+ NewsfeedAssignmentParams,
+ NewsfeedParams,
+)
+from .notes import Note, NoteContact, NoteContactParams, NoteParams
+from .requests import (
+ ActivityLogListParams,
+ ActivityLogMetadataParams,
+ ActivityLogParams,
+ ActivityLogPerformedByParams,
+ AddressableListParams,
+ AdminListParams,
+ AdminPriorityLevelParams,
+ AdminReplyConversationRequestParams,
+ AdminReplyTicketRequestParams,
+ AdminReplyTicketRequestReplyOptionsItemParams,
+ AdminWithAppAvatarParams,
+ AdminWithAppParams,
+ AppParams,
+ ArticleContentParams,
+ ArticleListParams,
+ ArticleStatisticsParams,
+ ArticleTranslatedContentParams,
+ AssignConversationRequestParams,
+ AwayStatusReasonParams,
+ CloseConversationRequestParams,
+ CollectionListParams,
+ CompanyAttachedContactsParams,
+ CompanyAttachedSegmentsParams,
+ CompanyDataParams,
+ CompanyListParams,
+ CompanyScrollParams,
+ ContactArchivedParams,
+ ContactAttachedCompaniesParams,
+ ContactBlockedParams,
+ ContactCompaniesParams,
+ ContactDeletedParams,
+ ContactListParams,
+ ContactLocationParams,
+ ContactNotesParams,
+ ContactReferenceParams,
+ ContactReplyBaseRequestParams,
+ ContactReplyBaseRequestReplyOptionsItemParams,
+ ContactReplyConversationRequestParams,
+ ContactReplyEmailRequestParams,
+ ContactReplyIntercomUserIdRequestParams,
+ ContactReplyTicketEmailRequestParams,
+ ContactReplyTicketIntercomUserIdRequestParams,
+ ContactReplyTicketRequestParams,
+ ContactReplyTicketUserIdRequestParams,
+ ContactReplyUserIdRequestParams,
+ ContactSegmentsParams,
+ ContactSocialProfilesParams,
+ ContactSubscriptionTypesParams,
+ ContactTagsParams,
+ ContactUnarchivedParams,
+ ContentSourcesListParams,
+ ConversationAttachmentFilesParams,
+ ConversationAttributeUpdatedByAdminAttributeParams,
+ ConversationAttributeUpdatedByAdminParams,
+ ConversationAttributeUpdatedByAdminValueParams,
+ ConversationAttributeUpdatedByWorkflowAttributeParams,
+ ConversationAttributeUpdatedByWorkflowParams,
+ ConversationAttributeUpdatedByWorkflowValueParams,
+ ConversationAttributeUpdatedByWorkflowWorkflowParams,
+ ConversationContactsParams,
+ ConversationDeletedParams,
+ ConversationFirstContactReplyParams,
+ ConversationListParams,
+ ConversationPartAuthorParams,
+ ConversationPartMetadataParams,
+ ConversationPartMetadataQuickReplyOptionsItemParams,
+ ConversationPartParams,
+ ConversationPartsParams,
+ ConversationRatingParams,
+ ConversationResponseTimeParams,
+ ConversationSourceParams,
+ ConversationStatisticsParams,
+ ConversationTeammatesParams,
+ CreateOrUpdateTagRequestParams,
+ CreateTicketReplyWithCommentRequestParams,
+ CreateTicketRequestAssignmentParams,
+ CreateTicketRequestBodyParams,
+ CreateTicketRequestContactsItemEmailParams,
+ CreateTicketRequestContactsItemExternalIdParams,
+ CreateTicketRequestContactsItemIdParams,
+ CreateTicketRequestContactsItemParams,
+ CursorPagesParams,
+ CustomActionFinishedActionParams,
+ CustomActionFinishedParams,
+ CustomActionStartedActionParams,
+ CustomActionStartedParams,
+ CustomAttributesParams,
+ CustomAttributesValueParams,
+ CustomChannelAttributeParams,
+ CustomChannelBaseEventParams,
+ CustomChannelContactParams,
+ CustomChannelNotificationResponseParams,
+ CustomObjectInstanceDeletedParams,
+ CustomObjectInstanceListParams,
+ CustomerRequestEmailParams,
+ CustomerRequestIntercomUserIdParams,
+ CustomerRequestParams,
+ CustomerRequestUserIdParams,
+ DataAttributeListParams,
+ DataEventListPagesParams,
+ DataEventListParams,
+ DataEventSummaryItemParams,
+ DataEventSummaryParams,
+ DataExportCsvParams,
+ DatetimeParams,
+ DeletedArticleObjectParams,
+ DeletedCollectionObjectParams,
+ DeletedCompanyObjectParams,
+ DeletedObjectParams,
+ EmailAddressHeaderParams,
+ EmailMessageMetadataParams,
+ ErrorErrorsItemParams,
+ ErrorParams,
+ EventDetailsParams,
+ FileAttributeParams,
+ GroupContentParams,
+ GroupTranslatedContentParams,
+ LinkedObjectListParams,
+ LinkedObjectParams,
+ MultipleFilterSearchRequestParams,
+ MultipleFilterSearchRequestValueParams,
+ NewsItemRequestParams,
+ NotFoundErrorBodyErrorsItemParams,
+ NotFoundErrorBodyParams,
+ NoteListParams,
+ OpenConversationRequestParams,
+ OperatorWorkflowEventEventParams,
+ OperatorWorkflowEventParams,
+ OperatorWorkflowEventWorkflowParams,
+ PagesLinkParams,
+ PaginatedResponseDataItemParams,
+ PaginatedResponseDataItem_NewsItemParams,
+ PaginatedResponseDataItem_NewsfeedParams,
+ PaginatedResponseParams,
+ PartAttachmentParams,
+ PhoneSwitchParams,
+ QuickReplyOptionParams,
+ RecipientParams,
+ RedactConversationRequestConversationPartParams,
+ RedactConversationRequestParams,
+ RedactConversationRequestSourceParams,
+ RedactConversationRequest_ConversationPartParams,
+ RedactConversationRequest_SourceParams,
+ ReferenceParams,
+ ReplyConversationRequestBodyParams,
+ SearchRequestParams,
+ SearchRequestQueryParams,
+ SegmentListParams,
+ SingleFilterSearchRequestParams,
+ SingleFilterSearchRequestValueItemParams,
+ SingleFilterSearchRequestValueParams,
+ SlaAppliedParams,
+ SnoozeConversationRequestParams,
+ SocialProfileParams,
+ StartingAfterPagingParams,
+ SubscriptionTypeListParams,
+ TagCompanyRequestCompaniesItemParams,
+ TagCompanyRequestParams,
+ TagListParams,
+ TagMultipleUsersRequestParams,
+ TagMultipleUsersRequestUsersItemParams,
+ TagsParams,
+ TeamListParams,
+ TeamPriorityLevelParams,
+ TicketCustomAttributesParams,
+ TicketCustomAttributesValueParams,
+ TicketListParams,
+ TicketPartAuthorParams,
+ TicketPartsParams,
+ TicketReplyParams,
+ TicketRequestCustomAttributesParams,
+ TicketRequestCustomAttributesValueParams,
+ TicketStateListParams,
+ TicketTypeAttributeListParams,
+ TicketTypeAttributeParams,
+ TicketTypeListParams,
+ TranslationParams,
+ UntagCompanyRequestCompaniesItemParams,
+ UntagCompanyRequestParams,
+ UpdateArticleRequestBodyParams,
+ UpdateTicketTypeRequestBodyParams,
+ VisitorAvatarParams,
+ VisitorCompaniesParams,
+ VisitorDeletedObjectParams,
+ VisitorLocationDataParams,
+ VisitorParams,
+ VisitorSegmentsParams,
+ VisitorSocialProfilesParams,
+ VisitorTagsParams,
+ VisitorTagsTagsItemParams,
+ WhatsappMessageStatusListEventsItemParams,
+ WhatsappMessageStatusListPagesNextParams,
+ WhatsappMessageStatusListPagesParams,
+ WhatsappMessageStatusListParams,
)
-from .help_center import Collection, HelpCenter, HelpCenterList
-from .jobs import Jobs, JobsStatus
-from .messages import Message, MessageMessageType
-from .news import NewsItem, NewsItemState, Newsfeed, NewsfeedAssignment
-from .notes import Note, NoteContact
-from .segments import Segment, SegmentPersonType
+from .segments import Segment, SegmentParams, SegmentPersonType
from .subscription_types import (
SubscriptionType,
SubscriptionTypeConsentType,
SubscriptionTypeContentTypesItem,
+ SubscriptionTypeParams,
SubscriptionTypeState,
)
-from .tags import CreateTagRequestBody, Tag, TagBasic
-from .teams import Team
+from .tags import CreateTagRequestBody, CreateTagRequestBodyParams, Tag, TagBasic, TagBasicParams, TagParams
+from .teams import Team, TeamParams
from .ticket_type_attributes import CreateTicketTypeAttributeRequestDataType
from .tickets import (
DeleteTicketResponse,
+ DeleteTicketResponseParams,
ReplyTicketRequestBody,
+ ReplyTicketRequestBodyParams,
Ticket,
TicketCategory,
TicketContacts,
+ TicketContactsParams,
+ TicketParams,
TicketPart,
+ TicketPartParams,
TicketPartPreviousTicketState,
TicketPartTicketState,
TicketPartUpdatedAttributeData,
TicketPartUpdatedAttributeDataAttribute,
+ TicketPartUpdatedAttributeDataAttributeParams,
+ TicketPartUpdatedAttributeDataParams,
TicketPartUpdatedAttributeDataValue,
TicketPartUpdatedAttributeDataValueId,
+ TicketPartUpdatedAttributeDataValueIdParams,
TicketPartUpdatedAttributeDataValueLabel,
+ TicketPartUpdatedAttributeDataValueLabelParams,
+ TicketPartUpdatedAttributeDataValueParams,
TicketState,
TicketStateCategory,
TicketStateDetailed,
TicketStateDetailedCategory,
+ TicketStateDetailedParams,
TicketStateDetailedTicketTypes,
+ TicketStateDetailedTicketTypesParams,
+ TicketStateParams,
TicketType,
TicketTypeCategory,
+ TicketTypeParams,
TicketTypeTicketStates,
+ TicketTypeTicketStatesParams,
)
__all__ = [
"ActivityLog",
"ActivityLogActivityType",
"ActivityLogList",
+ "ActivityLogListParams",
"ActivityLogMetadata",
+ "ActivityLogMetadataParams",
+ "ActivityLogParams",
"ActivityLogPerformedBy",
+ "ActivityLogPerformedByParams",
"AddressableList",
+ "AddressableListParams",
"Admin",
"AdminList",
+ "AdminListParams",
+ "AdminParams",
"AdminPriorityLevel",
+ "AdminPriorityLevelParams",
"AdminReplyConversationRequest",
"AdminReplyConversationRequestMessageType",
+ "AdminReplyConversationRequestParams",
"AdminReplyTicketRequest",
"AdminReplyTicketRequestMessageType",
+ "AdminReplyTicketRequestParams",
"AdminReplyTicketRequestReplyOptionsItem",
+ "AdminReplyTicketRequestReplyOptionsItemParams",
"AdminWithApp",
"AdminWithAppAvatar",
+ "AdminWithAppAvatarParams",
+ "AdminWithAppParams",
"AiAgent",
+ "AiAgentParams",
"AiAgentSourceType",
"App",
+ "AppParams",
"Article",
"ArticleContent",
+ "ArticleContentParams",
"ArticleContentState",
"ArticleList",
"ArticleListItem",
+ "ArticleListItemParams",
"ArticleListItemState",
+ "ArticleListParams",
+ "ArticleParams",
"ArticleSearchHighlights",
"ArticleSearchHighlightsHighlightedSummaryItemItem",
+ "ArticleSearchHighlightsHighlightedSummaryItemItemParams",
"ArticleSearchHighlightsHighlightedSummaryItemItemType",
"ArticleSearchHighlightsHighlightedTitleItem",
+ "ArticleSearchHighlightsHighlightedTitleItemParams",
"ArticleSearchHighlightsHighlightedTitleItemType",
+ "ArticleSearchHighlightsParams",
"ArticleSearchResponse",
"ArticleSearchResponseData",
+ "ArticleSearchResponseDataParams",
+ "ArticleSearchResponseParams",
"ArticleStatistics",
+ "ArticleStatisticsParams",
"ArticleTranslatedContent",
+ "ArticleTranslatedContentParams",
"AssignConversationRequest",
+ "AssignConversationRequestParams",
"AssignConversationRequestType",
"AttachContactToConversationRequestCustomer",
"AttachContactToConversationRequestCustomerCustomer",
+ "AttachContactToConversationRequestCustomerCustomerParams",
"AttachContactToConversationRequestCustomerIntercomUserId",
+ "AttachContactToConversationRequestCustomerIntercomUserIdParams",
+ "AttachContactToConversationRequestCustomerParams",
"AttachContactToConversationRequestCustomerUserId",
+ "AttachContactToConversationRequestCustomerUserIdParams",
"AwayStatusReason",
+ "AwayStatusReasonParams",
"BadRequestError",
"CloseConversationRequest",
+ "CloseConversationRequestParams",
"Collection",
"CollectionList",
+ "CollectionListParams",
+ "CollectionParams",
"Company",
"CompanyAttachedContacts",
+ "CompanyAttachedContactsParams",
"CompanyAttachedSegments",
+ "CompanyAttachedSegmentsParams",
"CompanyData",
+ "CompanyDataParams",
"CompanyList",
+ "CompanyListParams",
+ "CompanyParams",
"CompanyPlan",
+ "CompanyPlanParams",
"CompanyScroll",
+ "CompanyScrollParams",
"CompanySegments",
+ "CompanySegmentsParams",
"CompanyTags",
+ "CompanyTagsParams",
"Contact",
"ContactArchived",
+ "ContactArchivedParams",
"ContactAttachedCompanies",
+ "ContactAttachedCompaniesParams",
"ContactAvatar",
+ "ContactAvatarParams",
"ContactBlocked",
+ "ContactBlockedParams",
"ContactCompanies",
+ "ContactCompaniesParams",
"ContactDeleted",
+ "ContactDeletedParams",
"ContactList",
+ "ContactListParams",
"ContactLocation",
+ "ContactLocationParams",
"ContactNotes",
+ "ContactNotesParams",
+ "ContactParams",
"ContactReference",
+ "ContactReferenceParams",
"ContactReplyBaseRequest",
+ "ContactReplyBaseRequestParams",
"ContactReplyBaseRequestReplyOptionsItem",
+ "ContactReplyBaseRequestReplyOptionsItemParams",
"ContactReplyConversationRequest",
+ "ContactReplyConversationRequestParams",
"ContactReplyEmailRequest",
+ "ContactReplyEmailRequestParams",
"ContactReplyIntercomUserIdRequest",
+ "ContactReplyIntercomUserIdRequestParams",
"ContactReplyTicketEmailRequest",
+ "ContactReplyTicketEmailRequestParams",
"ContactReplyTicketIntercomUserIdRequest",
+ "ContactReplyTicketIntercomUserIdRequestParams",
"ContactReplyTicketRequest",
+ "ContactReplyTicketRequestParams",
"ContactReplyTicketUserIdRequest",
+ "ContactReplyTicketUserIdRequestParams",
"ContactReplyUserIdRequest",
+ "ContactReplyUserIdRequestParams",
"ContactSegments",
+ "ContactSegmentsParams",
"ContactSocialProfiles",
+ "ContactSocialProfilesParams",
"ContactSubscriptionTypes",
+ "ContactSubscriptionTypesParams",
"ContactTags",
+ "ContactTagsParams",
"ContactUnarchived",
+ "ContactUnarchivedParams",
"ContentImportSource",
+ "ContentImportSourceParams",
"ContentImportSourceStatus",
"ContentImportSourceSyncBehavior",
"ContentImportSourcesList",
+ "ContentImportSourcesListParams",
"ContentSource",
"ContentSourceContentType",
+ "ContentSourceParams",
"ContentSourcesList",
+ "ContentSourcesListParams",
"Conversation",
"ConversationAttachmentFiles",
+ "ConversationAttachmentFilesParams",
"ConversationAttributeUpdatedByAdmin",
"ConversationAttributeUpdatedByAdminAttribute",
+ "ConversationAttributeUpdatedByAdminAttributeParams",
+ "ConversationAttributeUpdatedByAdminParams",
"ConversationAttributeUpdatedByAdminValue",
+ "ConversationAttributeUpdatedByAdminValueParams",
"ConversationAttributeUpdatedByWorkflow",
"ConversationAttributeUpdatedByWorkflowAttribute",
+ "ConversationAttributeUpdatedByWorkflowAttributeParams",
+ "ConversationAttributeUpdatedByWorkflowParams",
"ConversationAttributeUpdatedByWorkflowValue",
+ "ConversationAttributeUpdatedByWorkflowValueParams",
"ConversationAttributeUpdatedByWorkflowWorkflow",
+ "ConversationAttributeUpdatedByWorkflowWorkflowParams",
"ConversationContacts",
+ "ConversationContactsParams",
"ConversationDeleted",
+ "ConversationDeletedParams",
"ConversationFirstContactReply",
+ "ConversationFirstContactReplyParams",
"ConversationList",
+ "ConversationListParams",
+ "ConversationParams",
"ConversationPart",
"ConversationPartAuthor",
+ "ConversationPartAuthorParams",
"ConversationPartMetadata",
+ "ConversationPartMetadataParams",
"ConversationPartMetadataQuickReplyOptionsItem",
+ "ConversationPartMetadataQuickReplyOptionsItemParams",
+ "ConversationPartParams",
"ConversationPartState",
"ConversationParts",
+ "ConversationPartsParams",
"ConversationPriority",
"ConversationRating",
+ "ConversationRatingParams",
"ConversationResponseTime",
+ "ConversationResponseTimeParams",
"ConversationSource",
+ "ConversationSourceParams",
"ConversationSourceType",
"ConversationState",
"ConversationStatistics",
+ "ConversationStatisticsParams",
"ConversationTeammates",
+ "ConversationTeammatesParams",
"CreateContactResponse",
+ "CreateContactResponseParams",
"CreateContentImportSourceRequestStatus",
"CreateConversationRequestFrom",
+ "CreateConversationRequestFromParams",
"CreateConversationRequestFromType",
"CreateDataAttributeRequestDataType",
"CreateDataAttributeRequestModel",
"CreateDataEventSummariesRequestEventSummaries",
+ "CreateDataEventSummariesRequestEventSummariesParams",
"CreateOrUpdateTagRequest",
+ "CreateOrUpdateTagRequestParams",
"CreateTagRequestBody",
+ "CreateTagRequestBodyParams",
"CreateTicketReplyWithCommentRequest",
+ "CreateTicketReplyWithCommentRequestParams",
"CreateTicketRequestAssignment",
+ "CreateTicketRequestAssignmentParams",
"CreateTicketRequestBody",
+ "CreateTicketRequestBodyParams",
"CreateTicketRequestContactsItem",
"CreateTicketRequestContactsItemEmail",
+ "CreateTicketRequestContactsItemEmailParams",
"CreateTicketRequestContactsItemExternalId",
+ "CreateTicketRequestContactsItemExternalIdParams",
"CreateTicketRequestContactsItemId",
+ "CreateTicketRequestContactsItemIdParams",
+ "CreateTicketRequestContactsItemParams",
"CreateTicketTypeAttributeRequestDataType",
"CursorPages",
+ "CursorPagesParams",
"CustomActionFinished",
"CustomActionFinishedAction",
+ "CustomActionFinishedActionParams",
"CustomActionFinishedActionResult",
+ "CustomActionFinishedParams",
"CustomActionStarted",
"CustomActionStartedAction",
+ "CustomActionStartedActionParams",
+ "CustomActionStartedParams",
"CustomAttributes",
+ "CustomAttributesParams",
"CustomAttributesValue",
+ "CustomAttributesValueParams",
"CustomChannelAttribute",
+ "CustomChannelAttributeParams",
"CustomChannelBaseEvent",
+ "CustomChannelBaseEventParams",
"CustomChannelContact",
+ "CustomChannelContactParams",
"CustomChannelContactType",
"CustomChannelNotificationResponse",
+ "CustomChannelNotificationResponseParams",
"CustomObjectInstance",
"CustomObjectInstanceDeleted",
+ "CustomObjectInstanceDeletedParams",
"CustomObjectInstanceList",
+ "CustomObjectInstanceListParams",
+ "CustomObjectInstanceParams",
"CustomerRequest",
"CustomerRequestEmail",
+ "CustomerRequestEmailParams",
"CustomerRequestIntercomUserId",
+ "CustomerRequestIntercomUserIdParams",
+ "CustomerRequestParams",
"CustomerRequestUserId",
+ "CustomerRequestUserIdParams",
"DataAttribute",
"DataAttributeDataType",
"DataAttributeList",
+ "DataAttributeListParams",
"DataAttributeModel",
+ "DataAttributeParams",
"DataEvent",
"DataEventList",
"DataEventListPages",
+ "DataEventListPagesParams",
+ "DataEventListParams",
+ "DataEventParams",
"DataEventSummary",
"DataEventSummaryItem",
+ "DataEventSummaryItemParams",
+ "DataEventSummaryParams",
"DataExport",
"DataExportCsv",
+ "DataExportCsvParams",
+ "DataExportParams",
"DataExportStatus",
"Datetime",
+ "DatetimeParams",
"DeleteTicketResponse",
+ "DeleteTicketResponseParams",
"DeletedArticleObject",
+ "DeletedArticleObjectParams",
"DeletedCollectionObject",
+ "DeletedCollectionObjectParams",
"DeletedCompanyObject",
+ "DeletedCompanyObjectParams",
"DeletedObject",
+ "DeletedObjectParams",
"EmailAddressHeader",
+ "EmailAddressHeaderParams",
"EmailMessageMetadata",
+ "EmailMessageMetadataParams",
"Error",
"ErrorErrorsItem",
+ "ErrorErrorsItemParams",
+ "ErrorParams",
"EventDetails",
+ "EventDetailsParams",
"ExternalPage",
+ "ExternalPageParams",
"ExternalPagesList",
+ "ExternalPagesListParams",
"FileAttribute",
+ "FileAttributeParams",
"ForbiddenError",
"GetExportReportingDataGetDatasetsResponse",
"GetExportReportingDataGetDatasetsResponseDataItem",
"GetExportReportingDataGetDatasetsResponseDataItemAttributesItem",
+ "GetExportReportingDataGetDatasetsResponseDataItemAttributesItemParams",
+ "GetExportReportingDataGetDatasetsResponseDataItemParams",
+ "GetExportReportingDataGetDatasetsResponseParams",
"GroupContent",
+ "GroupContentParams",
"GroupTranslatedContent",
+ "GroupTranslatedContentParams",
"HelpCenter",
"HelpCenterList",
+ "HelpCenterListParams",
+ "HelpCenterParams",
"IntercomVersion",
"IntercomVersionUnstable",
"InternalServerError",
"Jobs",
+ "JobsParams",
"JobsStatus",
"LinkedObject",
"LinkedObjectList",
+ "LinkedObjectListParams",
+ "LinkedObjectParams",
"LinkedObjectType",
"LisDataAttributesRequestModel",
"LisDataEventsRequestFilter",
"LisDataEventsRequestFilterEmail",
+ "LisDataEventsRequestFilterEmailParams",
"LisDataEventsRequestFilterIntercomUserId",
+ "LisDataEventsRequestFilterIntercomUserIdParams",
+ "LisDataEventsRequestFilterParams",
"LisDataEventsRequestFilterUserId",
+ "LisDataEventsRequestFilterUserIdParams",
"ManageConversationRequestBody",
+ "ManageConversationRequestBodyParams",
"ManageConversationRequestBody_Assignment",
+ "ManageConversationRequestBody_AssignmentParams",
"ManageConversationRequestBody_Close",
+ "ManageConversationRequestBody_CloseParams",
"ManageConversationRequestBody_Open",
+ "ManageConversationRequestBody_OpenParams",
"ManageConversationRequestBody_Snoozed",
+ "ManageConversationRequestBody_SnoozedParams",
"MergeContactResponse",
+ "MergeContactResponseParams",
"Message",
"MessageMessageType",
+ "MessageParams",
"MultipleFilterSearchRequest",
"MultipleFilterSearchRequestOperator",
+ "MultipleFilterSearchRequestParams",
"MultipleFilterSearchRequestValue",
+ "MultipleFilterSearchRequestValueParams",
"NewsItem",
+ "NewsItemParams",
"NewsItemRequest",
+ "NewsItemRequestParams",
"NewsItemRequestState",
"NewsItemState",
"Newsfeed",
"NewsfeedAssignment",
+ "NewsfeedAssignmentParams",
+ "NewsfeedParams",
"NotFoundError",
"NotFoundErrorBody",
"NotFoundErrorBodyErrorsItem",
+ "NotFoundErrorBodyErrorsItemParams",
+ "NotFoundErrorBodyParams",
"Note",
"NoteContact",
+ "NoteContactParams",
"NoteList",
+ "NoteListParams",
+ "NoteParams",
"OpenConversationRequest",
+ "OpenConversationRequestParams",
"OperatorWorkflowEvent",
"OperatorWorkflowEventEvent",
+ "OperatorWorkflowEventEventParams",
+ "OperatorWorkflowEventParams",
"OperatorWorkflowEventWorkflow",
+ "OperatorWorkflowEventWorkflowParams",
"PagesLink",
+ "PagesLinkParams",
"PaginatedResponse",
"PaginatedResponseDataItem",
+ "PaginatedResponseDataItemParams",
"PaginatedResponseDataItem_NewsItem",
+ "PaginatedResponseDataItem_NewsItemParams",
"PaginatedResponseDataItem_Newsfeed",
+ "PaginatedResponseDataItem_NewsfeedParams",
+ "PaginatedResponseParams",
"PaginatedResponseType",
"PartAttachment",
+ "PartAttachmentParams",
"PhoneSwitch",
+ "PhoneSwitchParams",
"PostExportReportingDataEnqueueResponse",
+ "PostExportReportingDataEnqueueResponseParams",
"QuickReplyOption",
+ "QuickReplyOptionParams",
"Recipient",
+ "RecipientParams",
"RecipientType",
"RedactConversationRequest",
"RedactConversationRequestConversationPart",
+ "RedactConversationRequestConversationPartParams",
+ "RedactConversationRequestParams",
"RedactConversationRequestSource",
+ "RedactConversationRequestSourceParams",
"RedactConversationRequest_ConversationPart",
+ "RedactConversationRequest_ConversationPartParams",
"RedactConversationRequest_Source",
+ "RedactConversationRequest_SourceParams",
"Reference",
+ "ReferenceParams",
"ReplyConversationRequestBody",
+ "ReplyConversationRequestBodyParams",
"ReplyTicketRequestBody",
+ "ReplyTicketRequestBodyParams",
"SearchRequest",
+ "SearchRequestParams",
"SearchRequestQuery",
+ "SearchRequestQueryParams",
"Segment",
"SegmentList",
+ "SegmentListParams",
+ "SegmentParams",
"SegmentPersonType",
"ShowContactByExternalIdResponse",
+ "ShowContactByExternalIdResponseParams",
"ShowContactResponse",
+ "ShowContactResponseParams",
"SingleFilterSearchRequest",
"SingleFilterSearchRequestOperator",
+ "SingleFilterSearchRequestParams",
"SingleFilterSearchRequestValue",
"SingleFilterSearchRequestValueItem",
+ "SingleFilterSearchRequestValueItemParams",
+ "SingleFilterSearchRequestValueParams",
"SlaApplied",
+ "SlaAppliedParams",
"SlaAppliedSlaStatus",
"SnoozeConversationRequest",
+ "SnoozeConversationRequestParams",
"SocialProfile",
+ "SocialProfileParams",
"StartingAfterPaging",
+ "StartingAfterPagingParams",
"SubscriptionType",
"SubscriptionTypeConsentType",
"SubscriptionTypeContentTypesItem",
"SubscriptionTypeList",
+ "SubscriptionTypeListParams",
+ "SubscriptionTypeParams",
"SubscriptionTypeState",
"Tag",
"TagBasic",
+ "TagBasicParams",
"TagCompanyRequest",
"TagCompanyRequestCompaniesItem",
+ "TagCompanyRequestCompaniesItemParams",
+ "TagCompanyRequestParams",
"TagList",
+ "TagListParams",
"TagMultipleUsersRequest",
+ "TagMultipleUsersRequestParams",
"TagMultipleUsersRequestUsersItem",
+ "TagMultipleUsersRequestUsersItemParams",
+ "TagParams",
"Tags",
+ "TagsParams",
"Team",
"TeamList",
+ "TeamListParams",
+ "TeamParams",
"TeamPriorityLevel",
+ "TeamPriorityLevelParams",
"Ticket",
"TicketCategory",
"TicketContacts",
+ "TicketContactsParams",
"TicketCustomAttributes",
+ "TicketCustomAttributesParams",
"TicketCustomAttributesValue",
+ "TicketCustomAttributesValueParams",
"TicketList",
+ "TicketListParams",
+ "TicketParams",
"TicketPart",
"TicketPartAuthor",
+ "TicketPartAuthorParams",
"TicketPartAuthorType",
+ "TicketPartParams",
"TicketPartPreviousTicketState",
"TicketPartTicketState",
"TicketPartUpdatedAttributeData",
"TicketPartUpdatedAttributeDataAttribute",
+ "TicketPartUpdatedAttributeDataAttributeParams",
+ "TicketPartUpdatedAttributeDataParams",
"TicketPartUpdatedAttributeDataValue",
"TicketPartUpdatedAttributeDataValueId",
+ "TicketPartUpdatedAttributeDataValueIdParams",
"TicketPartUpdatedAttributeDataValueLabel",
+ "TicketPartUpdatedAttributeDataValueLabelParams",
+ "TicketPartUpdatedAttributeDataValueParams",
"TicketParts",
+ "TicketPartsParams",
"TicketReply",
+ "TicketReplyParams",
"TicketReplyPartType",
"TicketRequestCustomAttributes",
+ "TicketRequestCustomAttributesParams",
"TicketRequestCustomAttributesValue",
+ "TicketRequestCustomAttributesValueParams",
"TicketState",
"TicketStateCategory",
"TicketStateDetailed",
"TicketStateDetailedCategory",
+ "TicketStateDetailedParams",
"TicketStateDetailedTicketTypes",
+ "TicketStateDetailedTicketTypesParams",
"TicketStateList",
+ "TicketStateListParams",
+ "TicketStateParams",
"TicketType",
"TicketTypeAttribute",
"TicketTypeAttributeList",
+ "TicketTypeAttributeListParams",
+ "TicketTypeAttributeParams",
"TicketTypeCategory",
"TicketTypeList",
+ "TicketTypeListParams",
+ "TicketTypeParams",
"TicketTypeTicketStates",
+ "TicketTypeTicketStatesParams",
"TooManyRequestsError",
"Translation",
+ "TranslationParams",
"UnauthorizedError",
"UnprocessableEntityError",
"UntagCompanyRequest",
"UntagCompanyRequestCompaniesItem",
+ "UntagCompanyRequestCompaniesItemParams",
+ "UntagCompanyRequestParams",
"UpdateArticleRequestBody",
+ "UpdateArticleRequestBodyParams",
"UpdateArticleRequestState",
"UpdateContactResponse",
+ "UpdateContactResponseParams",
"UpdateContentImportSourceRequestStatus",
"UpdateContentImportSourceRequestSyncBehavior",
"UpdateTicketTypeRequestBody",
+ "UpdateTicketTypeRequestBodyParams",
"UpdateTicketTypeRequestCategory",
"Visitor",
"VisitorAvatar",
+ "VisitorAvatarParams",
"VisitorCompanies",
+ "VisitorCompaniesParams",
"VisitorDeletedObject",
+ "VisitorDeletedObjectParams",
"VisitorLocationData",
+ "VisitorLocationDataParams",
+ "VisitorParams",
"VisitorSegments",
+ "VisitorSegmentsParams",
"VisitorSocialProfiles",
+ "VisitorSocialProfilesParams",
"VisitorTags",
+ "VisitorTagsParams",
"VisitorTagsTagsItem",
+ "VisitorTagsTagsItemParams",
"WhatsappMessageStatusList",
"WhatsappMessageStatusListEventsItem",
+ "WhatsappMessageStatusListEventsItemParams",
"WhatsappMessageStatusListEventsItemStatus",
"WhatsappMessageStatusListPages",
"WhatsappMessageStatusListPagesNext",
+ "WhatsappMessageStatusListPagesNextParams",
+ "WhatsappMessageStatusListPagesParams",
+ "WhatsappMessageStatusListParams",
"admins",
"ai_agent",
"ai_content",
diff --git a/src/intercom/unstable/admins/__init__.py b/src/intercom/unstable/admins/__init__.py
index 54c16eb..29f8d44 100644
--- a/src/intercom/unstable/admins/__init__.py
+++ b/src/intercom/unstable/admins/__init__.py
@@ -3,5 +3,6 @@
# isort: skip_file
from .types import Admin
+from .requests import AdminParams
-__all__ = ["Admin"]
+__all__ = ["Admin", "AdminParams"]
diff --git a/src/intercom/unstable/admins/requests/__init__.py b/src/intercom/unstable/admins/requests/__init__.py
new file mode 100644
index 0000000..7e05b88
--- /dev/null
+++ b/src/intercom/unstable/admins/requests/__init__.py
@@ -0,0 +1,7 @@
+# This file was auto-generated by Fern from our API Definition.
+
+# isort: skip_file
+
+from .admin import AdminParams
+
+__all__ = ["AdminParams"]
diff --git a/src/intercom/unstable/admins/requests/admin.py b/src/intercom/unstable/admins/requests/admin.py
new file mode 100644
index 0000000..810f6b7
--- /dev/null
+++ b/src/intercom/unstable/admins/requests/admin.py
@@ -0,0 +1,69 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing
+
+import typing_extensions
+from ...requests.team_priority_level import TeamPriorityLevelParams
+
+
+class AdminParams(typing_extensions.TypedDict):
+ """
+ Admins are teammate accounts that have access to a workspace.
+ """
+
+ type: typing_extensions.NotRequired[str]
+ """
+ String representing the object's type. Always has the value `admin`.
+ """
+
+ id: typing_extensions.NotRequired[str]
+ """
+ The id representing the admin.
+ """
+
+ name: typing_extensions.NotRequired[str]
+ """
+ The name of the admin.
+ """
+
+ email: typing_extensions.NotRequired[str]
+ """
+ The email of the admin.
+ """
+
+ job_title: typing_extensions.NotRequired[str]
+ """
+ The job title of the admin.
+ """
+
+ away_mode_enabled: typing_extensions.NotRequired[bool]
+ """
+ Identifies if this admin is currently set in away mode.
+ """
+
+ away_mode_reassign: typing_extensions.NotRequired[bool]
+ """
+ Identifies if this admin is set to automatically reassign new conversations to the apps default inbox.
+ """
+
+ away_status_reason_id: typing_extensions.NotRequired[int]
+ """
+ The unique identifier of the away status reason
+ """
+
+ has_inbox_seat: typing_extensions.NotRequired[bool]
+ """
+ Identifies if this admin has a paid inbox seat to restrict/allow features that require them.
+ """
+
+ team_ids: typing_extensions.NotRequired[typing.Sequence[int]]
+ """
+ This object represents the avatar associated with the admin.
+ """
+
+ avatar: typing_extensions.NotRequired[str]
+ """
+ Image for the associated team or teammate
+ """
+
+ team_priority_level: typing_extensions.NotRequired[TeamPriorityLevelParams]
diff --git a/src/intercom/unstable/ai_agent/__init__.py b/src/intercom/unstable/ai_agent/__init__.py
index da3b829..d7ad5dc 100644
--- a/src/intercom/unstable/ai_agent/__init__.py
+++ b/src/intercom/unstable/ai_agent/__init__.py
@@ -3,5 +3,6 @@
# isort: skip_file
from .types import AiAgent, AiAgentSourceType
+from .requests import AiAgentParams
-__all__ = ["AiAgent", "AiAgentSourceType"]
+__all__ = ["AiAgent", "AiAgentParams", "AiAgentSourceType"]
diff --git a/src/intercom/unstable/ai_agent/requests/__init__.py b/src/intercom/unstable/ai_agent/requests/__init__.py
new file mode 100644
index 0000000..a4ddb09
--- /dev/null
+++ b/src/intercom/unstable/ai_agent/requests/__init__.py
@@ -0,0 +1,7 @@
+# This file was auto-generated by Fern from our API Definition.
+
+# isort: skip_file
+
+from .ai_agent import AiAgentParams
+
+__all__ = ["AiAgentParams"]
diff --git a/src/intercom/unstable/ai_agent/requests/ai_agent.py b/src/intercom/unstable/ai_agent/requests/ai_agent.py
new file mode 100644
index 0000000..0c71698
--- /dev/null
+++ b/src/intercom/unstable/ai_agent/requests/ai_agent.py
@@ -0,0 +1,43 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing_extensions
+from ...requests.content_sources_list import ContentSourcesListParams
+from ..types.ai_agent_source_type import AiAgentSourceType
+
+
+class AiAgentParams(typing_extensions.TypedDict):
+ """
+ Data related to AI Agent involvement in the conversation.
+ """
+
+ source_type: typing_extensions.NotRequired[AiAgentSourceType]
+ """
+ The type of the source that triggered AI Agent involvement in the conversation.
+ """
+
+ source_title: typing_extensions.NotRequired[str]
+ """
+ The title of the source that triggered AI Agent involvement in the conversation. If this is `essentials_plan_setup` then it will return `null`.
+ """
+
+ last_answer_type: typing_extensions.NotRequired[str]
+ """
+ The type of the last answer delivered by AI Agent. If no answer was delivered then this will return `null`
+ """
+
+ resolution_state: typing_extensions.NotRequired[str]
+ """
+ The resolution state of AI Agent. If no AI or custom answer has been delivered then this will return `null`.
+ """
+
+ rating: typing_extensions.NotRequired[int]
+ """
+ The customer satisfaction rating given to AI Agent, from 1-5.
+ """
+
+ rating_remark: typing_extensions.NotRequired[str]
+ """
+ The customer satisfaction rating remark given to AI Agent.
+ """
+
+ content_sources: typing_extensions.NotRequired[ContentSourcesListParams]
diff --git a/src/intercom/unstable/ai_content/__init__.py b/src/intercom/unstable/ai_content/__init__.py
index 80c5656..511d4cc 100644
--- a/src/intercom/unstable/ai_content/__init__.py
+++ b/src/intercom/unstable/ai_content/__init__.py
@@ -13,15 +13,25 @@
UpdateContentImportSourceRequestStatus,
UpdateContentImportSourceRequestSyncBehavior,
)
+from .requests import (
+ ContentImportSourceParams,
+ ContentImportSourcesListParams,
+ ExternalPageParams,
+ ExternalPagesListParams,
+)
__all__ = [
"ContentImportSource",
+ "ContentImportSourceParams",
"ContentImportSourceStatus",
"ContentImportSourceSyncBehavior",
"ContentImportSourcesList",
+ "ContentImportSourcesListParams",
"CreateContentImportSourceRequestStatus",
"ExternalPage",
+ "ExternalPageParams",
"ExternalPagesList",
+ "ExternalPagesListParams",
"UpdateContentImportSourceRequestStatus",
"UpdateContentImportSourceRequestSyncBehavior",
]
diff --git a/src/intercom/unstable/ai_content/requests/__init__.py b/src/intercom/unstable/ai_content/requests/__init__.py
new file mode 100644
index 0000000..ff7f5ff
--- /dev/null
+++ b/src/intercom/unstable/ai_content/requests/__init__.py
@@ -0,0 +1,15 @@
+# This file was auto-generated by Fern from our API Definition.
+
+# isort: skip_file
+
+from .content_import_source import ContentImportSourceParams
+from .content_import_sources_list import ContentImportSourcesListParams
+from .external_page import ExternalPageParams
+from .external_pages_list import ExternalPagesListParams
+
+__all__ = [
+ "ContentImportSourceParams",
+ "ContentImportSourcesListParams",
+ "ExternalPageParams",
+ "ExternalPagesListParams",
+]
diff --git a/src/intercom/unstable/ai_content/requests/content_import_source.py b/src/intercom/unstable/ai_content/requests/content_import_source.py
new file mode 100644
index 0000000..31eba6e
--- /dev/null
+++ b/src/intercom/unstable/ai_content/requests/content_import_source.py
@@ -0,0 +1,53 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing
+
+import typing_extensions
+from ..types.content_import_source_status import ContentImportSourceStatus
+from ..types.content_import_source_sync_behavior import ContentImportSourceSyncBehavior
+
+
+class ContentImportSourceParams(typing_extensions.TypedDict):
+ """
+ An external source for External Pages that you add to your Fin Content Library.
+ """
+
+ type: typing.Literal["content_import_source"]
+ """
+ Always external_page
+ """
+
+ id: int
+ """
+ The unique identifier for the content import source which is given by Intercom.
+ """
+
+ last_synced_at: int
+ """
+ The time when the content import source was last synced.
+ """
+
+ sync_behavior: ContentImportSourceSyncBehavior
+ """
+ If you intend to create or update External Pages via the API, this should be set to `api`.
+ """
+
+ status: ContentImportSourceStatus
+ """
+ The status of the content import source.
+ """
+
+ url: str
+ """
+ The URL of the root of the external source.
+ """
+
+ created_at: int
+ """
+ The time when the content import source was created.
+ """
+
+ updated_at: int
+ """
+ The time when the content import source was last updated.
+ """
diff --git a/src/intercom/unstable/ai_content/requests/content_import_sources_list.py b/src/intercom/unstable/ai_content/requests/content_import_sources_list.py
new file mode 100644
index 0000000..da7184d
--- /dev/null
+++ b/src/intercom/unstable/ai_content/requests/content_import_sources_list.py
@@ -0,0 +1,29 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing
+
+import typing_extensions
+from ...requests.pages_link import PagesLinkParams
+from .content_import_source import ContentImportSourceParams
+
+
+class ContentImportSourcesListParams(typing_extensions.TypedDict):
+ """
+ This will return a list of the content import sources for the App.
+ """
+
+ type: typing_extensions.NotRequired[typing.Literal["list"]]
+ """
+ The type of the object - `list`.
+ """
+
+ pages: typing_extensions.NotRequired[PagesLinkParams]
+ total_count: typing_extensions.NotRequired[int]
+ """
+ A count of the total number of content import sources.
+ """
+
+ data: typing_extensions.NotRequired[typing.Sequence[ContentImportSourceParams]]
+ """
+ An array of Content Import Source objects
+ """
diff --git a/src/intercom/unstable/ai_content/requests/external_page.py b/src/intercom/unstable/ai_content/requests/external_page.py
new file mode 100644
index 0000000..48b844d
--- /dev/null
+++ b/src/intercom/unstable/ai_content/requests/external_page.py
@@ -0,0 +1,81 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing
+
+import typing_extensions
+
+
+class ExternalPageParams(typing_extensions.TypedDict):
+ """
+ External pages that you have added to your Fin Content Library.
+ """
+
+ type: typing.Literal["external_page"]
+ """
+ Always external_page
+ """
+
+ id: str
+ """
+ The unique identifier for the external page which is given by Intercom.
+ """
+
+ title: str
+ """
+ The title of the external page.
+ """
+
+ html: str
+ """
+ The body of the external page in HTML.
+ """
+
+ url: typing_extensions.NotRequired[str]
+ """
+ The URL of the external page. This will be used by Fin to link end users to the page it based its answer on.
+ """
+
+ ai_agent_availability: bool
+ """
+ Whether the external page should be used to answer questions by AI Agent.
+ """
+
+ ai_copilot_availability: bool
+ """
+ Whether the external page should be used to answer questions by AI Copilot.
+ """
+
+ fin_availability: typing_extensions.NotRequired[bool]
+ """
+ Deprecated. Use ai_agent_availability and ai_copilot_availability instead.
+ """
+
+ locale: typing.Literal["en"]
+ """
+ Always en
+ """
+
+ source_id: int
+ """
+ The unique identifier for the source of the external page which was given by Intercom. Every external page must be associated with a Content Import Source which represents the place it comes from and from which it inherits a default audience (configured in the UI). For a new source, make a POST request to the Content Import Source endpoint and an ID for the source will be returned in the response.
+ """
+
+ external_id: str
+ """
+ The identifier for the external page which was given by the source. Must be unique for the source.
+ """
+
+ created_at: int
+ """
+ The time when the external page was created.
+ """
+
+ updated_at: int
+ """
+ The time when the external page was last updated.
+ """
+
+ last_ingested_at: int
+ """
+ The time when the external page was last ingested.
+ """
diff --git a/src/intercom/unstable/ai_content/requests/external_pages_list.py b/src/intercom/unstable/ai_content/requests/external_pages_list.py
new file mode 100644
index 0000000..4695181
--- /dev/null
+++ b/src/intercom/unstable/ai_content/requests/external_pages_list.py
@@ -0,0 +1,29 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing
+
+import typing_extensions
+from ...requests.pages_link import PagesLinkParams
+from .external_page import ExternalPageParams
+
+
+class ExternalPagesListParams(typing_extensions.TypedDict):
+ """
+ This will return a list of external pages for the App.
+ """
+
+ type: typing_extensions.NotRequired[typing.Literal["list"]]
+ """
+ The type of the object - `list`.
+ """
+
+ pages: typing_extensions.NotRequired[PagesLinkParams]
+ total_count: typing_extensions.NotRequired[int]
+ """
+ A count of the total number of external pages.
+ """
+
+ data: typing_extensions.NotRequired[typing.Sequence[ExternalPageParams]]
+ """
+ An array of External Page objects
+ """
diff --git a/src/intercom/unstable/ai_content_source/__init__.py b/src/intercom/unstable/ai_content_source/__init__.py
index 45f4a10..b3846de 100644
--- a/src/intercom/unstable/ai_content_source/__init__.py
+++ b/src/intercom/unstable/ai_content_source/__init__.py
@@ -3,5 +3,6 @@
# isort: skip_file
from .types import ContentSource, ContentSourceContentType
+from .requests import ContentSourceParams
-__all__ = ["ContentSource", "ContentSourceContentType"]
+__all__ = ["ContentSource", "ContentSourceContentType", "ContentSourceParams"]
diff --git a/src/intercom/unstable/ai_content_source/requests/__init__.py b/src/intercom/unstable/ai_content_source/requests/__init__.py
new file mode 100644
index 0000000..e8fc199
--- /dev/null
+++ b/src/intercom/unstable/ai_content_source/requests/__init__.py
@@ -0,0 +1,7 @@
+# This file was auto-generated by Fern from our API Definition.
+
+# isort: skip_file
+
+from .content_source import ContentSourceParams
+
+__all__ = ["ContentSourceParams"]
diff --git a/src/intercom/unstable/ai_content_source/requests/content_source.py b/src/intercom/unstable/ai_content_source/requests/content_source.py
new file mode 100644
index 0000000..f2e8e69
--- /dev/null
+++ b/src/intercom/unstable/ai_content_source/requests/content_source.py
@@ -0,0 +1,30 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing_extensions
+from ..types.content_source_content_type import ContentSourceContentType
+
+
+class ContentSourceParams(typing_extensions.TypedDict):
+ """
+ The content source used by AI Agent in the conversation.
+ """
+
+ content_type: typing_extensions.NotRequired[ContentSourceContentType]
+ """
+ The type of the content source.
+ """
+
+ url: typing_extensions.NotRequired[str]
+ """
+ The internal URL linking to the content source for teammates.
+ """
+
+ title: typing_extensions.NotRequired[str]
+ """
+ The title of the content source.
+ """
+
+ locale: typing_extensions.NotRequired[str]
+ """
+ The ISO 639 language code of the content source.
+ """
diff --git a/src/intercom/unstable/articles/__init__.py b/src/intercom/unstable/articles/__init__.py
index f8adce5..2979d74 100644
--- a/src/intercom/unstable/articles/__init__.py
+++ b/src/intercom/unstable/articles/__init__.py
@@ -14,16 +14,32 @@
ArticleSearchResponse,
ArticleSearchResponseData,
)
+from .requests import (
+ ArticleListItemParams,
+ ArticleParams,
+ ArticleSearchHighlightsHighlightedSummaryItemItemParams,
+ ArticleSearchHighlightsHighlightedTitleItemParams,
+ ArticleSearchHighlightsParams,
+ ArticleSearchResponseDataParams,
+ ArticleSearchResponseParams,
+)
__all__ = [
"Article",
"ArticleListItem",
+ "ArticleListItemParams",
"ArticleListItemState",
+ "ArticleParams",
"ArticleSearchHighlights",
"ArticleSearchHighlightsHighlightedSummaryItemItem",
+ "ArticleSearchHighlightsHighlightedSummaryItemItemParams",
"ArticleSearchHighlightsHighlightedSummaryItemItemType",
"ArticleSearchHighlightsHighlightedTitleItem",
+ "ArticleSearchHighlightsHighlightedTitleItemParams",
"ArticleSearchHighlightsHighlightedTitleItemType",
+ "ArticleSearchHighlightsParams",
"ArticleSearchResponse",
"ArticleSearchResponseData",
+ "ArticleSearchResponseDataParams",
+ "ArticleSearchResponseParams",
]
diff --git a/src/intercom/unstable/articles/requests/__init__.py b/src/intercom/unstable/articles/requests/__init__.py
new file mode 100644
index 0000000..d74415a
--- /dev/null
+++ b/src/intercom/unstable/articles/requests/__init__.py
@@ -0,0 +1,23 @@
+# This file was auto-generated by Fern from our API Definition.
+
+# isort: skip_file
+
+from .article import ArticleParams
+from .article_list_item import ArticleListItemParams
+from .article_search_highlights import ArticleSearchHighlightsParams
+from .article_search_highlights_highlighted_summary_item_item import (
+ ArticleSearchHighlightsHighlightedSummaryItemItemParams,
+)
+from .article_search_highlights_highlighted_title_item import ArticleSearchHighlightsHighlightedTitleItemParams
+from .article_search_response import ArticleSearchResponseParams
+from .article_search_response_data import ArticleSearchResponseDataParams
+
+__all__ = [
+ "ArticleListItemParams",
+ "ArticleParams",
+ "ArticleSearchHighlightsHighlightedSummaryItemItemParams",
+ "ArticleSearchHighlightsHighlightedTitleItemParams",
+ "ArticleSearchHighlightsParams",
+ "ArticleSearchResponseDataParams",
+ "ArticleSearchResponseParams",
+]
diff --git a/src/intercom/unstable/articles/requests/article.py b/src/intercom/unstable/articles/requests/article.py
new file mode 100644
index 0000000..636c57e
--- /dev/null
+++ b/src/intercom/unstable/articles/requests/article.py
@@ -0,0 +1,13 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing_extensions
+from ...requests.article_statistics import ArticleStatisticsParams
+from .article_list_item import ArticleListItemParams
+
+
+class ArticleParams(ArticleListItemParams):
+ """
+ The Articles API is a central place to gather all information and take actions on your articles. Articles can live within collections and sections, or alternatively they can stand alone.
+ """
+
+ statistics: typing_extensions.NotRequired[ArticleStatisticsParams]
diff --git a/src/intercom/unstable/articles/requests/article_list_item.py b/src/intercom/unstable/articles/requests/article_list_item.py
new file mode 100644
index 0000000..0c6b757
--- /dev/null
+++ b/src/intercom/unstable/articles/requests/article_list_item.py
@@ -0,0 +1,90 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing
+
+import typing_extensions
+from ...requests.article_translated_content import ArticleTranslatedContentParams
+from ..types.article_list_item_state import ArticleListItemState
+
+
+class ArticleListItemParams(typing_extensions.TypedDict):
+ """
+ The data returned about your articles when you list them.
+ """
+
+ type: typing_extensions.NotRequired[typing.Literal["article"]]
+ """
+ The type of object - `article`.
+ """
+
+ id: typing_extensions.NotRequired[str]
+ """
+ The unique identifier for the article which is given by Intercom.
+ """
+
+ workspace_id: typing_extensions.NotRequired[str]
+ """
+ The id of the workspace which the article belongs to.
+ """
+
+ title: typing_extensions.NotRequired[str]
+ """
+ The title of the article. For multilingual articles, this will be the title of the default language's content.
+ """
+
+ description: typing_extensions.NotRequired[str]
+ """
+ The description of the article. For multilingual articles, this will be the description of the default language's content.
+ """
+
+ body: typing_extensions.NotRequired[str]
+ """
+ The body of the article in HTML. For multilingual articles, this will be the body of the default language's content.
+ """
+
+ author_id: typing_extensions.NotRequired[int]
+ """
+ The id of the author of the article. For multilingual articles, this will be the id of the author of the default language's content. Must be a teammate on the help center's workspace.
+ """
+
+ state: typing_extensions.NotRequired[ArticleListItemState]
+ """
+ Whether the article is `published` or is a `draft`. For multilingual articles, this will be the state of the default language's content.
+ """
+
+ created_at: typing_extensions.NotRequired[int]
+ """
+ The time when the article was created. For multilingual articles, this will be the timestamp of creation of the default language's content in seconds.
+ """
+
+ updated_at: typing_extensions.NotRequired[int]
+ """
+ The time when the article was last updated. For multilingual articles, this will be the timestamp of last update of the default language's content in seconds.
+ """
+
+ url: typing_extensions.NotRequired[str]
+ """
+ The URL of the article. For multilingual articles, this will be the URL of the default language's content.
+ """
+
+ parent_id: typing_extensions.NotRequired[int]
+ """
+ The id of the article's parent collection or section. An article without this field stands alone.
+ """
+
+ parent_ids: typing_extensions.NotRequired[typing.Sequence[int]]
+ """
+ The ids of the article's parent collections or sections. An article without this field stands alone.
+ """
+
+ parent_type: typing_extensions.NotRequired[str]
+ """
+ The type of parent, which can either be a `collection` or `section`.
+ """
+
+ default_locale: typing_extensions.NotRequired[str]
+ """
+ The default locale of the help center. This field is only returned for multilingual help centers.
+ """
+
+ translated_content: typing_extensions.NotRequired[ArticleTranslatedContentParams]
diff --git a/src/intercom/unstable/articles/requests/article_search_highlights.py b/src/intercom/unstable/articles/requests/article_search_highlights.py
new file mode 100644
index 0000000..fcb5435
--- /dev/null
+++ b/src/intercom/unstable/articles/requests/article_search_highlights.py
@@ -0,0 +1,32 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing
+
+import typing_extensions
+from .article_search_highlights_highlighted_summary_item_item import (
+ ArticleSearchHighlightsHighlightedSummaryItemItemParams,
+)
+from .article_search_highlights_highlighted_title_item import ArticleSearchHighlightsHighlightedTitleItemParams
+
+
+class ArticleSearchHighlightsParams(typing_extensions.TypedDict):
+ """
+ The highlighted results of an Article search. In the examples provided my search query is always "my query".
+ """
+
+ article_id: typing_extensions.NotRequired[str]
+ """
+ The ID of the corresponding article.
+ """
+
+ highlighted_title: typing_extensions.NotRequired[typing.Sequence[ArticleSearchHighlightsHighlightedTitleItemParams]]
+ """
+ An Article title highlighted.
+ """
+
+ highlighted_summary: typing_extensions.NotRequired[
+ typing.Sequence[typing.Sequence[ArticleSearchHighlightsHighlightedSummaryItemItemParams]]
+ ]
+ """
+ An Article description and body text highlighted.
+ """
diff --git a/src/intercom/unstable/articles/requests/article_search_highlights_highlighted_summary_item_item.py b/src/intercom/unstable/articles/requests/article_search_highlights_highlighted_summary_item_item.py
new file mode 100644
index 0000000..c19f00d
--- /dev/null
+++ b/src/intercom/unstable/articles/requests/article_search_highlights_highlighted_summary_item_item.py
@@ -0,0 +1,22 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing_extensions
+from ..types.article_search_highlights_highlighted_summary_item_item_type import (
+ ArticleSearchHighlightsHighlightedSummaryItemItemType,
+)
+
+
+class ArticleSearchHighlightsHighlightedSummaryItemItemParams(typing_extensions.TypedDict):
+ """
+ An instance of highlighted summary text.
+ """
+
+ type: typing_extensions.NotRequired[ArticleSearchHighlightsHighlightedSummaryItemItemType]
+ """
+ The type of text - `highlight` or `plain`.
+ """
+
+ text: typing_extensions.NotRequired[str]
+ """
+ The text of the title.
+ """
diff --git a/src/intercom/unstable/articles/requests/article_search_highlights_highlighted_title_item.py b/src/intercom/unstable/articles/requests/article_search_highlights_highlighted_title_item.py
new file mode 100644
index 0000000..ee57af8
--- /dev/null
+++ b/src/intercom/unstable/articles/requests/article_search_highlights_highlighted_title_item.py
@@ -0,0 +1,22 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing_extensions
+from ..types.article_search_highlights_highlighted_title_item_type import (
+ ArticleSearchHighlightsHighlightedTitleItemType,
+)
+
+
+class ArticleSearchHighlightsHighlightedTitleItemParams(typing_extensions.TypedDict):
+ """
+ A highlighted article title.
+ """
+
+ type: typing_extensions.NotRequired[ArticleSearchHighlightsHighlightedTitleItemType]
+ """
+ The type of text - `highlight` or `plain`.
+ """
+
+ text: typing_extensions.NotRequired[str]
+ """
+ The text of the title.
+ """
diff --git a/src/intercom/unstable/articles/requests/article_search_response.py b/src/intercom/unstable/articles/requests/article_search_response.py
new file mode 100644
index 0000000..73c9ffc
--- /dev/null
+++ b/src/intercom/unstable/articles/requests/article_search_response.py
@@ -0,0 +1,30 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing
+
+import typing_extensions
+from ...requests.cursor_pages import CursorPagesParams
+from .article_search_response_data import ArticleSearchResponseDataParams
+
+
+class ArticleSearchResponseParams(typing_extensions.TypedDict):
+ """
+ The results of an Article search
+ """
+
+ type: typing_extensions.NotRequired[typing.Literal["list"]]
+ """
+ The type of the object - `list`.
+ """
+
+ total_count: typing_extensions.NotRequired[int]
+ """
+ The total number of Articles matching the search query
+ """
+
+ data: typing_extensions.NotRequired[ArticleSearchResponseDataParams]
+ """
+ An object containing the results of the search.
+ """
+
+ pages: typing_extensions.NotRequired[CursorPagesParams]
diff --git a/src/intercom/unstable/articles/requests/article_search_response_data.py b/src/intercom/unstable/articles/requests/article_search_response_data.py
new file mode 100644
index 0000000..c8d89ac
--- /dev/null
+++ b/src/intercom/unstable/articles/requests/article_search_response_data.py
@@ -0,0 +1,23 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing
+
+import typing_extensions
+from .article import ArticleParams
+from .article_search_highlights import ArticleSearchHighlightsParams
+
+
+class ArticleSearchResponseDataParams(typing_extensions.TypedDict):
+ """
+ An object containing the results of the search.
+ """
+
+ articles: typing_extensions.NotRequired[typing.Sequence[ArticleParams]]
+ """
+ An array of Article objects
+ """
+
+ highlights: typing_extensions.NotRequired[typing.Sequence[ArticleSearchHighlightsParams]]
+ """
+ A corresponding array of highlighted Article content
+ """
diff --git a/src/intercom/unstable/companies/__init__.py b/src/intercom/unstable/companies/__init__.py
index ff1aa06..98e5cbf 100644
--- a/src/intercom/unstable/companies/__init__.py
+++ b/src/intercom/unstable/companies/__init__.py
@@ -3,5 +3,15 @@
# isort: skip_file
from .types import Company, CompanyPlan, CompanySegments, CompanyTags
+from .requests import CompanyParams, CompanyPlanParams, CompanySegmentsParams, CompanyTagsParams
-__all__ = ["Company", "CompanyPlan", "CompanySegments", "CompanyTags"]
+__all__ = [
+ "Company",
+ "CompanyParams",
+ "CompanyPlan",
+ "CompanyPlanParams",
+ "CompanySegments",
+ "CompanySegmentsParams",
+ "CompanyTags",
+ "CompanyTagsParams",
+]
diff --git a/src/intercom/unstable/companies/requests/__init__.py b/src/intercom/unstable/companies/requests/__init__.py
new file mode 100644
index 0000000..1c20984
--- /dev/null
+++ b/src/intercom/unstable/companies/requests/__init__.py
@@ -0,0 +1,10 @@
+# This file was auto-generated by Fern from our API Definition.
+
+# isort: skip_file
+
+from .company import CompanyParams
+from .company_plan import CompanyPlanParams
+from .company_segments import CompanySegmentsParams
+from .company_tags import CompanyTagsParams
+
+__all__ = ["CompanyParams", "CompanyPlanParams", "CompanySegmentsParams", "CompanyTagsParams"]
diff --git a/src/intercom/unstable/companies/requests/company.py b/src/intercom/unstable/companies/requests/company.py
new file mode 100644
index 0000000..0b6566c
--- /dev/null
+++ b/src/intercom/unstable/companies/requests/company.py
@@ -0,0 +1,105 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing
+
+import typing_extensions
+from .company_plan import CompanyPlanParams
+from .company_segments import CompanySegmentsParams
+from .company_tags import CompanyTagsParams
+
+
+class CompanyParams(typing_extensions.TypedDict):
+ """
+ Companies allow you to represent organizations using your product. Each company will have its own description and be associated with contacts. You can fetch, create, update and list companies.
+ """
+
+ type: typing_extensions.NotRequired[typing.Literal["company"]]
+ """
+ Value is `company`
+ """
+
+ id: typing_extensions.NotRequired[str]
+ """
+ The Intercom defined id representing the company.
+ """
+
+ name: typing_extensions.NotRequired[str]
+ """
+ The name of the company.
+ """
+
+ app_id: typing_extensions.NotRequired[str]
+ """
+ The Intercom defined code of the workspace the company is associated to.
+ """
+
+ plan: typing_extensions.NotRequired[CompanyPlanParams]
+ company_id: typing_extensions.NotRequired[str]
+ """
+ The company id you have defined for the company.
+ """
+
+ remote_created_at: typing_extensions.NotRequired[int]
+ """
+ The time the company was created by you.
+ """
+
+ created_at: typing_extensions.NotRequired[int]
+ """
+ The time the company was added in Intercom.
+ """
+
+ updated_at: typing_extensions.NotRequired[int]
+ """
+ The last time the company was updated.
+ """
+
+ last_request_at: typing_extensions.NotRequired[int]
+ """
+ The time the company last recorded making a request.
+ """
+
+ size: typing_extensions.NotRequired[int]
+ """
+ The number of employees in the company.
+ """
+
+ website: typing_extensions.NotRequired[str]
+ """
+ The URL for the company website.
+ """
+
+ industry: typing_extensions.NotRequired[str]
+ """
+ The industry that the company operates in.
+ """
+
+ monthly_spend: typing_extensions.NotRequired[int]
+ """
+ How much revenue the company generates for your business.
+ """
+
+ session_count: typing_extensions.NotRequired[int]
+ """
+ How many sessions the company has recorded.
+ """
+
+ user_count: typing_extensions.NotRequired[int]
+ """
+ The number of users in the company.
+ """
+
+ custom_attributes: typing_extensions.NotRequired[typing.Dict[str, str]]
+ """
+ The custom attributes you have set on the company.
+ """
+
+ tags: typing_extensions.NotRequired[CompanyTagsParams]
+ """
+ The list of tags associated with the company
+ """
+
+ segments: typing_extensions.NotRequired[CompanySegmentsParams]
+ """
+ The list of segments associated with the company
+ """
diff --git a/src/intercom/unstable/companies/requests/company_plan.py b/src/intercom/unstable/companies/requests/company_plan.py
new file mode 100644
index 0000000..918a5e1
--- /dev/null
+++ b/src/intercom/unstable/companies/requests/company_plan.py
@@ -0,0 +1,20 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing_extensions
+
+
+class CompanyPlanParams(typing_extensions.TypedDict):
+ type: typing_extensions.NotRequired[str]
+ """
+ Value is always "plan"
+ """
+
+ id: typing_extensions.NotRequired[str]
+ """
+ The id of the plan
+ """
+
+ name: typing_extensions.NotRequired[str]
+ """
+ The name of the plan
+ """
diff --git a/src/intercom/unstable/companies/requests/company_segments.py b/src/intercom/unstable/companies/requests/company_segments.py
new file mode 100644
index 0000000..31befe7
--- /dev/null
+++ b/src/intercom/unstable/companies/requests/company_segments.py
@@ -0,0 +1,19 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing
+
+import typing_extensions
+from ...segments.requests.segment import SegmentParams
+
+
+class CompanySegmentsParams(typing_extensions.TypedDict):
+ """
+ The list of segments associated with the company
+ """
+
+ type: typing_extensions.NotRequired[typing.Literal["segment.list"]]
+ """
+ The type of the object
+ """
+
+ segments: typing_extensions.NotRequired[typing.Sequence[SegmentParams]]
diff --git a/src/intercom/unstable/companies/requests/company_tags.py b/src/intercom/unstable/companies/requests/company_tags.py
new file mode 100644
index 0000000..70d4e88
--- /dev/null
+++ b/src/intercom/unstable/companies/requests/company_tags.py
@@ -0,0 +1,18 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing
+
+import typing_extensions
+
+
+class CompanyTagsParams(typing_extensions.TypedDict):
+ """
+ The list of tags associated with the company
+ """
+
+ type: typing_extensions.NotRequired[typing.Literal["tag.list"]]
+ """
+ The type of the object
+ """
+
+ tags: typing_extensions.NotRequired[typing.Sequence[typing.Optional[typing.Any]]]
diff --git a/src/intercom/unstable/contacts/__init__.py b/src/intercom/unstable/contacts/__init__.py
index 275cabe..620b454 100644
--- a/src/intercom/unstable/contacts/__init__.py
+++ b/src/intercom/unstable/contacts/__init__.py
@@ -11,13 +11,29 @@
ShowContactResponse,
UpdateContactResponse,
)
+from .requests import (
+ ContactAvatarParams,
+ ContactParams,
+ CreateContactResponseParams,
+ MergeContactResponseParams,
+ ShowContactByExternalIdResponseParams,
+ ShowContactResponseParams,
+ UpdateContactResponseParams,
+)
__all__ = [
"Contact",
"ContactAvatar",
+ "ContactAvatarParams",
+ "ContactParams",
"CreateContactResponse",
+ "CreateContactResponseParams",
"MergeContactResponse",
+ "MergeContactResponseParams",
"ShowContactByExternalIdResponse",
+ "ShowContactByExternalIdResponseParams",
"ShowContactResponse",
+ "ShowContactResponseParams",
"UpdateContactResponse",
+ "UpdateContactResponseParams",
]
diff --git a/src/intercom/unstable/contacts/client.py b/src/intercom/unstable/contacts/client.py
index 99db1ac..b1af90d 100644
--- a/src/intercom/unstable/contacts/client.py
+++ b/src/intercom/unstable/contacts/client.py
@@ -5,6 +5,8 @@
from ...core.client_wrapper import AsyncClientWrapper, SyncClientWrapper
from ...core.request_options import RequestOptions
from ...types.create_contact_request_two import CreateContactRequestTwo
+from ..requests.search_request_query import SearchRequestQueryParams
+from ..requests.starting_after_paging import StartingAfterPagingParams
from ..types.contact_archived import ContactArchived
from ..types.contact_attached_companies import ContactAttachedCompanies
from ..types.contact_blocked import ContactBlocked
@@ -12,8 +14,6 @@
from ..types.contact_list import ContactList
from ..types.contact_segments import ContactSegments
from ..types.contact_unarchived import ContactUnarchived
-from ..types.search_request_query import SearchRequestQuery
-from ..types.starting_after_paging import StartingAfterPaging
from ..types.subscription_type_list import SubscriptionTypeList
from ..types.tag_list import TagList
from .raw_client import AsyncRawContactsClient, RawContactsClient
@@ -388,8 +388,8 @@ def merge_contact(
def search_contacts(
self,
*,
- query: SearchRequestQuery,
- pagination: typing.Optional[StartingAfterPaging] = OMIT,
+ query: SearchRequestQueryParams,
+ pagination: typing.Optional[StartingAfterPagingParams] = OMIT,
request_options: typing.Optional[RequestOptions] = None,
) -> ContactList:
"""
@@ -496,9 +496,9 @@ def search_contacts(
Parameters
----------
- query : SearchRequestQuery
+ query : SearchRequestQueryParams
- pagination : typing.Optional[StartingAfterPaging]
+ pagination : typing.Optional[StartingAfterPagingParams]
request_options : typing.Optional[RequestOptions]
Request-specific configuration.
@@ -511,29 +511,18 @@ def search_contacts(
Examples
--------
from intercom import Intercom
- from intercom.unstable import (
- MultipleFilterSearchRequest,
- SingleFilterSearchRequest,
- StartingAfterPaging,
- )
client = Intercom(
token="YOUR_TOKEN",
)
client.unstable.contacts.search_contacts(
- query=MultipleFilterSearchRequest(
- operator="AND",
- value=[
- SingleFilterSearchRequest(
- field="created_at",
- operator=">",
- value="1306054154",
- )
+ query={
+ "operator": "AND",
+ "value": [
+ {"field": "created_at", "operator": ">", "value": "1306054154"}
],
- ),
- pagination=StartingAfterPaging(
- per_page=5,
- ),
+ },
+ pagination={"per_page": 5},
)
"""
_response = self._raw_client.search_contacts(
@@ -1161,8 +1150,8 @@ async def main() -> None:
async def search_contacts(
self,
*,
- query: SearchRequestQuery,
- pagination: typing.Optional[StartingAfterPaging] = OMIT,
+ query: SearchRequestQueryParams,
+ pagination: typing.Optional[StartingAfterPagingParams] = OMIT,
request_options: typing.Optional[RequestOptions] = None,
) -> ContactList:
"""
@@ -1269,9 +1258,9 @@ async def search_contacts(
Parameters
----------
- query : SearchRequestQuery
+ query : SearchRequestQueryParams
- pagination : typing.Optional[StartingAfterPaging]
+ pagination : typing.Optional[StartingAfterPagingParams]
request_options : typing.Optional[RequestOptions]
Request-specific configuration.
@@ -1286,11 +1275,6 @@ async def search_contacts(
import asyncio
from intercom import AsyncIntercom
- from intercom.unstable import (
- MultipleFilterSearchRequest,
- SingleFilterSearchRequest,
- StartingAfterPaging,
- )
client = AsyncIntercom(
token="YOUR_TOKEN",
@@ -1299,19 +1283,13 @@ async def search_contacts(
async def main() -> None:
await client.unstable.contacts.search_contacts(
- query=MultipleFilterSearchRequest(
- operator="AND",
- value=[
- SingleFilterSearchRequest(
- field="created_at",
- operator=">",
- value="1306054154",
- )
+ query={
+ "operator": "AND",
+ "value": [
+ {"field": "created_at", "operator": ">", "value": "1306054154"}
],
- ),
- pagination=StartingAfterPaging(
- per_page=5,
- ),
+ },
+ pagination={"per_page": 5},
)
diff --git a/src/intercom/unstable/contacts/raw_client.py b/src/intercom/unstable/contacts/raw_client.py
index a86c4b8..54bb3db 100644
--- a/src/intercom/unstable/contacts/raw_client.py
+++ b/src/intercom/unstable/contacts/raw_client.py
@@ -13,6 +13,8 @@
from ...types.create_contact_request_two import CreateContactRequestTwo
from ..errors.not_found_error import NotFoundError
from ..errors.unauthorized_error import UnauthorizedError
+from ..requests.search_request_query import SearchRequestQueryParams
+from ..requests.starting_after_paging import StartingAfterPagingParams
from ..types.contact_archived import ContactArchived
from ..types.contact_attached_companies import ContactAttachedCompanies
from ..types.contact_blocked import ContactBlocked
@@ -21,8 +23,6 @@
from ..types.contact_segments import ContactSegments
from ..types.contact_unarchived import ContactUnarchived
from ..types.error import Error
-from ..types.search_request_query import SearchRequestQuery
-from ..types.starting_after_paging import StartingAfterPaging
from ..types.subscription_type_list import SubscriptionTypeList
from ..types.tag_list import TagList
from .types.create_contact_response import CreateContactResponse
@@ -577,8 +577,8 @@ def merge_contact(
def search_contacts(
self,
*,
- query: SearchRequestQuery,
- pagination: typing.Optional[StartingAfterPaging] = OMIT,
+ query: SearchRequestQueryParams,
+ pagination: typing.Optional[StartingAfterPagingParams] = OMIT,
request_options: typing.Optional[RequestOptions] = None,
) -> HttpResponse[ContactList]:
"""
@@ -685,9 +685,9 @@ def search_contacts(
Parameters
----------
- query : SearchRequestQuery
+ query : SearchRequestQueryParams
- pagination : typing.Optional[StartingAfterPaging]
+ pagination : typing.Optional[StartingAfterPagingParams]
request_options : typing.Optional[RequestOptions]
Request-specific configuration.
@@ -702,10 +702,10 @@ def search_contacts(
method="POST",
json={
"query": convert_and_respect_annotation_metadata(
- object_=query, annotation=SearchRequestQuery, direction="write"
+ object_=query, annotation=SearchRequestQueryParams, direction="write"
),
"pagination": convert_and_respect_annotation_metadata(
- object_=pagination, annotation=StartingAfterPaging, direction="write"
+ object_=pagination, annotation=StartingAfterPagingParams, direction="write"
),
},
headers={
@@ -1553,8 +1553,8 @@ async def merge_contact(
async def search_contacts(
self,
*,
- query: SearchRequestQuery,
- pagination: typing.Optional[StartingAfterPaging] = OMIT,
+ query: SearchRequestQueryParams,
+ pagination: typing.Optional[StartingAfterPagingParams] = OMIT,
request_options: typing.Optional[RequestOptions] = None,
) -> AsyncHttpResponse[ContactList]:
"""
@@ -1661,9 +1661,9 @@ async def search_contacts(
Parameters
----------
- query : SearchRequestQuery
+ query : SearchRequestQueryParams
- pagination : typing.Optional[StartingAfterPaging]
+ pagination : typing.Optional[StartingAfterPagingParams]
request_options : typing.Optional[RequestOptions]
Request-specific configuration.
@@ -1678,10 +1678,10 @@ async def search_contacts(
method="POST",
json={
"query": convert_and_respect_annotation_metadata(
- object_=query, annotation=SearchRequestQuery, direction="write"
+ object_=query, annotation=SearchRequestQueryParams, direction="write"
),
"pagination": convert_and_respect_annotation_metadata(
- object_=pagination, annotation=StartingAfterPaging, direction="write"
+ object_=pagination, annotation=StartingAfterPagingParams, direction="write"
),
},
headers={
diff --git a/src/intercom/unstable/contacts/requests/__init__.py b/src/intercom/unstable/contacts/requests/__init__.py
new file mode 100644
index 0000000..fee05e1
--- /dev/null
+++ b/src/intercom/unstable/contacts/requests/__init__.py
@@ -0,0 +1,21 @@
+# This file was auto-generated by Fern from our API Definition.
+
+# isort: skip_file
+
+from .contact import ContactParams
+from .contact_avatar import ContactAvatarParams
+from .create_contact_response import CreateContactResponseParams
+from .merge_contact_response import MergeContactResponseParams
+from .show_contact_by_external_id_response import ShowContactByExternalIdResponseParams
+from .show_contact_response import ShowContactResponseParams
+from .update_contact_response import UpdateContactResponseParams
+
+__all__ = [
+ "ContactAvatarParams",
+ "ContactParams",
+ "CreateContactResponseParams",
+ "MergeContactResponseParams",
+ "ShowContactByExternalIdResponseParams",
+ "ShowContactResponseParams",
+ "UpdateContactResponseParams",
+]
diff --git a/src/intercom/unstable/contacts/requests/contact.py b/src/intercom/unstable/contacts/requests/contact.py
new file mode 100644
index 0000000..2c60d6e
--- /dev/null
+++ b/src/intercom/unstable/contacts/requests/contact.py
@@ -0,0 +1,224 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing
+
+import typing_extensions
+from ...requests.contact_companies import ContactCompaniesParams
+from ...requests.contact_location import ContactLocationParams
+from ...requests.contact_notes import ContactNotesParams
+from ...requests.contact_social_profiles import ContactSocialProfilesParams
+from ...requests.contact_tags import ContactTagsParams
+from .contact_avatar import ContactAvatarParams
+
+
+class ContactParams(typing_extensions.TypedDict):
+ """
+ Contacts represent your leads and users in Intercom.
+ """
+
+ type: typing_extensions.NotRequired[str]
+ """
+ The type of object.
+ """
+
+ id: typing_extensions.NotRequired[str]
+ """
+ The unique identifier for the contact which is given by Intercom.
+ """
+
+ external_id: typing_extensions.NotRequired[str]
+ """
+ The unique identifier for the contact which is provided by the Client.
+ """
+
+ workspace_id: typing_extensions.NotRequired[str]
+ """
+ The id of the workspace which the contact belongs to.
+ """
+
+ role: typing_extensions.NotRequired[str]
+ """
+ The role of the contact.
+ """
+
+ email: typing_extensions.NotRequired[str]
+ """
+ The contact's email.
+ """
+
+ email_domain: typing_extensions.NotRequired[str]
+ """
+ The contact's email domain.
+ """
+
+ phone: typing_extensions.NotRequired[str]
+ """
+ The contacts phone.
+ """
+
+ formatted_phone: typing_extensions.NotRequired[str]
+ """
+ The contacts phone number normalized to the E164 format
+ """
+
+ name: typing_extensions.NotRequired[str]
+ """
+ The contacts name.
+ """
+
+ owner_id: typing_extensions.NotRequired[int]
+ """
+ The id of an admin that has been assigned account ownership of the contact.
+ """
+
+ has_hard_bounced: typing_extensions.NotRequired[bool]
+ """
+ Whether the contact has had an email sent to them hard bounce.
+ """
+
+ marked_email_as_spam: typing_extensions.NotRequired[bool]
+ """
+ Whether the contact has marked an email sent to them as spam.
+ """
+
+ unsubscribed_from_emails: typing_extensions.NotRequired[bool]
+ """
+ Whether the contact is unsubscribed from emails.
+ """
+
+ created_at: typing_extensions.NotRequired[int]
+ """
+ (UNIX timestamp) The time when the contact was created.
+ """
+
+ updated_at: typing_extensions.NotRequired[int]
+ """
+ (UNIX timestamp) The time when the contact was last updated.
+ """
+
+ signed_up_at: typing_extensions.NotRequired[int]
+ """
+ (UNIX timestamp) The time specified for when a contact signed up.
+ """
+
+ last_seen_at: typing_extensions.NotRequired[int]
+ """
+ (UNIX timestamp) The time when the contact was last seen (either where the Intercom Messenger was installed or when specified manually).
+ """
+
+ last_replied_at: typing_extensions.NotRequired[int]
+ """
+ (UNIX timestamp) The time when the contact last messaged in.
+ """
+
+ last_contacted_at: typing_extensions.NotRequired[int]
+ """
+ (UNIX timestamp) The time when the contact was last messaged.
+ """
+
+ last_email_opened_at: typing_extensions.NotRequired[int]
+ """
+ (UNIX timestamp) The time when the contact last opened an email.
+ """
+
+ last_email_clicked_at: typing_extensions.NotRequired[int]
+ """
+ (UNIX timestamp) The time when the contact last clicked a link in an email.
+ """
+
+ language_override: typing_extensions.NotRequired[str]
+ """
+ A preferred language setting for the contact, used by the Intercom Messenger even if their browser settings change.
+ """
+
+ browser: typing_extensions.NotRequired[str]
+ """
+ The name of the browser which the contact is using.
+ """
+
+ browser_version: typing_extensions.NotRequired[str]
+ """
+ The version of the browser which the contact is using.
+ """
+
+ browser_language: typing_extensions.NotRequired[str]
+ """
+ The language set by the browser which the contact is using.
+ """
+
+ os: typing_extensions.NotRequired[str]
+ """
+ The operating system which the contact is using.
+ """
+
+ android_app_name: typing_extensions.NotRequired[str]
+ """
+ The name of the Android app which the contact is using.
+ """
+
+ android_app_version: typing_extensions.NotRequired[str]
+ """
+ The version of the Android app which the contact is using.
+ """
+
+ android_device: typing_extensions.NotRequired[str]
+ """
+ The Android device which the contact is using.
+ """
+
+ android_os_version: typing_extensions.NotRequired[str]
+ """
+ The version of the Android OS which the contact is using.
+ """
+
+ android_sdk_version: typing_extensions.NotRequired[str]
+ """
+ The version of the Android SDK which the contact is using.
+ """
+
+ android_last_seen_at: typing_extensions.NotRequired[int]
+ """
+ (UNIX timestamp) The time when the contact was last seen on an Android device.
+ """
+
+ ios_app_name: typing_extensions.NotRequired[str]
+ """
+ The name of the iOS app which the contact is using.
+ """
+
+ ios_app_version: typing_extensions.NotRequired[str]
+ """
+ The version of the iOS app which the contact is using.
+ """
+
+ ios_device: typing_extensions.NotRequired[str]
+ """
+ The iOS device which the contact is using.
+ """
+
+ ios_os_version: typing_extensions.NotRequired[str]
+ """
+ The version of iOS which the contact is using.
+ """
+
+ ios_sdk_version: typing_extensions.NotRequired[str]
+ """
+ The version of the iOS SDK which the contact is using.
+ """
+
+ ios_last_seen_at: typing_extensions.NotRequired[int]
+ """
+ (UNIX timestamp) The last time the contact used the iOS app.
+ """
+
+ custom_attributes: typing_extensions.NotRequired[typing.Dict[str, typing.Optional[typing.Any]]]
+ """
+ The custom attributes which are set for the contact.
+ """
+
+ avatar: typing_extensions.NotRequired[ContactAvatarParams]
+ tags: typing_extensions.NotRequired[ContactTagsParams]
+ notes: typing_extensions.NotRequired[ContactNotesParams]
+ companies: typing_extensions.NotRequired[ContactCompaniesParams]
+ location: typing_extensions.NotRequired[ContactLocationParams]
+ social_profiles: typing_extensions.NotRequired[ContactSocialProfilesParams]
diff --git a/src/intercom/unstable/contacts/requests/contact_avatar.py b/src/intercom/unstable/contacts/requests/contact_avatar.py
new file mode 100644
index 0000000..a760614
--- /dev/null
+++ b/src/intercom/unstable/contacts/requests/contact_avatar.py
@@ -0,0 +1,15 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing_extensions
+
+
+class ContactAvatarParams(typing_extensions.TypedDict):
+ type: typing_extensions.NotRequired[str]
+ """
+ The type of object
+ """
+
+ image_url: typing_extensions.NotRequired[str]
+ """
+ An image URL containing the avatar of a contact.
+ """
diff --git a/src/intercom/unstable/contacts/requests/create_contact_response.py b/src/intercom/unstable/contacts/requests/create_contact_response.py
new file mode 100644
index 0000000..7fd919e
--- /dev/null
+++ b/src/intercom/unstable/contacts/requests/create_contact_response.py
@@ -0,0 +1,11 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing_extensions
+from .contact import ContactParams
+
+
+class CreateContactResponseParams(ContactParams):
+ enabled_push_messaging: typing_extensions.NotRequired[bool]
+ """
+ If the user has enabled push messaging.
+ """
diff --git a/src/intercom/unstable/contacts/requests/merge_contact_response.py b/src/intercom/unstable/contacts/requests/merge_contact_response.py
new file mode 100644
index 0000000..d42d4da
--- /dev/null
+++ b/src/intercom/unstable/contacts/requests/merge_contact_response.py
@@ -0,0 +1,11 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing_extensions
+from .contact import ContactParams
+
+
+class MergeContactResponseParams(ContactParams):
+ enabled_push_messaging: typing_extensions.NotRequired[bool]
+ """
+ If the user has enabled push messaging.
+ """
diff --git a/src/intercom/unstable/contacts/requests/show_contact_by_external_id_response.py b/src/intercom/unstable/contacts/requests/show_contact_by_external_id_response.py
new file mode 100644
index 0000000..419d1eb
--- /dev/null
+++ b/src/intercom/unstable/contacts/requests/show_contact_by_external_id_response.py
@@ -0,0 +1,11 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing_extensions
+from .contact import ContactParams
+
+
+class ShowContactByExternalIdResponseParams(ContactParams):
+ enabled_push_messaging: typing_extensions.NotRequired[bool]
+ """
+ If the user has enabled push messaging.
+ """
diff --git a/src/intercom/unstable/contacts/requests/show_contact_response.py b/src/intercom/unstable/contacts/requests/show_contact_response.py
new file mode 100644
index 0000000..dbc7a72
--- /dev/null
+++ b/src/intercom/unstable/contacts/requests/show_contact_response.py
@@ -0,0 +1,11 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing_extensions
+from .contact import ContactParams
+
+
+class ShowContactResponseParams(ContactParams):
+ enabled_push_messaging: typing_extensions.NotRequired[bool]
+ """
+ If the user has enabled push messaging.
+ """
diff --git a/src/intercom/unstable/contacts/requests/update_contact_response.py b/src/intercom/unstable/contacts/requests/update_contact_response.py
new file mode 100644
index 0000000..9b7b1a7
--- /dev/null
+++ b/src/intercom/unstable/contacts/requests/update_contact_response.py
@@ -0,0 +1,11 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing_extensions
+from .contact import ContactParams
+
+
+class UpdateContactResponseParams(ContactParams):
+ enabled_push_messaging: typing_extensions.NotRequired[bool]
+ """
+ If the user has enabled push messaging.
+ """
diff --git a/src/intercom/unstable/conversations/__init__.py b/src/intercom/unstable/conversations/__init__.py
index 996981b..0737357 100644
--- a/src/intercom/unstable/conversations/__init__.py
+++ b/src/intercom/unstable/conversations/__init__.py
@@ -18,20 +18,44 @@
ManageConversationRequestBody_Open,
ManageConversationRequestBody_Snoozed,
)
+from .requests import (
+ AttachContactToConversationRequestCustomerCustomerParams,
+ AttachContactToConversationRequestCustomerIntercomUserIdParams,
+ AttachContactToConversationRequestCustomerParams,
+ AttachContactToConversationRequestCustomerUserIdParams,
+ ConversationParams,
+ CreateConversationRequestFromParams,
+ ManageConversationRequestBodyParams,
+ ManageConversationRequestBody_AssignmentParams,
+ ManageConversationRequestBody_CloseParams,
+ ManageConversationRequestBody_OpenParams,
+ ManageConversationRequestBody_SnoozedParams,
+)
__all__ = [
"AttachContactToConversationRequestCustomer",
"AttachContactToConversationRequestCustomerCustomer",
+ "AttachContactToConversationRequestCustomerCustomerParams",
"AttachContactToConversationRequestCustomerIntercomUserId",
+ "AttachContactToConversationRequestCustomerIntercomUserIdParams",
+ "AttachContactToConversationRequestCustomerParams",
"AttachContactToConversationRequestCustomerUserId",
+ "AttachContactToConversationRequestCustomerUserIdParams",
"Conversation",
+ "ConversationParams",
"ConversationPriority",
"ConversationState",
"CreateConversationRequestFrom",
+ "CreateConversationRequestFromParams",
"CreateConversationRequestFromType",
"ManageConversationRequestBody",
+ "ManageConversationRequestBodyParams",
"ManageConversationRequestBody_Assignment",
+ "ManageConversationRequestBody_AssignmentParams",
"ManageConversationRequestBody_Close",
+ "ManageConversationRequestBody_CloseParams",
"ManageConversationRequestBody_Open",
+ "ManageConversationRequestBody_OpenParams",
"ManageConversationRequestBody_Snoozed",
+ "ManageConversationRequestBody_SnoozedParams",
]
diff --git a/src/intercom/unstable/conversations/client.py b/src/intercom/unstable/conversations/client.py
index 793fb32..cf0f61f 100644
--- a/src/intercom/unstable/conversations/client.py
+++ b/src/intercom/unstable/conversations/client.py
@@ -5,20 +5,20 @@
from ...core.client_wrapper import AsyncClientWrapper, SyncClientWrapper
from ...core.request_options import RequestOptions
from ..messages.types.message import Message
+from ..requests.custom_attributes import CustomAttributesParams
+from ..requests.redact_conversation_request import RedactConversationRequestParams
+from ..requests.reply_conversation_request_body import ReplyConversationRequestBodyParams
+from ..requests.search_request_query import SearchRequestQueryParams
+from ..requests.starting_after_paging import StartingAfterPagingParams
+from ..requests.ticket_request_custom_attributes import TicketRequestCustomAttributesParams
from ..tickets.types.ticket import Ticket
from ..types.conversation_deleted import ConversationDeleted
from ..types.conversation_list import ConversationList
-from ..types.custom_attributes import CustomAttributes
-from ..types.redact_conversation_request import RedactConversationRequest
-from ..types.reply_conversation_request_body import ReplyConversationRequestBody
-from ..types.search_request_query import SearchRequestQuery
-from ..types.starting_after_paging import StartingAfterPaging
-from ..types.ticket_request_custom_attributes import TicketRequestCustomAttributes
from .raw_client import AsyncRawConversationsClient, RawConversationsClient
-from .types.attach_contact_to_conversation_request_customer import AttachContactToConversationRequestCustomer
+from .requests.attach_contact_to_conversation_request_customer import AttachContactToConversationRequestCustomerParams
+from .requests.create_conversation_request_from import CreateConversationRequestFromParams
+from .requests.manage_conversation_request_body import ManageConversationRequestBodyParams
from .types.conversation import Conversation
-from .types.create_conversation_request_from import CreateConversationRequestFrom
-from .types.manage_conversation_request_body import ManageConversationRequestBody
# this is used as the default value for optional parameters
OMIT = typing.cast(typing.Any, ...)
@@ -88,7 +88,7 @@ def list_conversations(
def create_conversation(
self,
*,
- from_: CreateConversationRequestFrom,
+ from_: CreateConversationRequestFromParams,
body: str,
created_at: typing.Optional[int] = OMIT,
request_options: typing.Optional[RequestOptions] = None,
@@ -106,7 +106,7 @@ def create_conversation(
Parameters
----------
- from_ : CreateConversationRequestFrom
+ from_ : CreateConversationRequestFromParams
body : str
The content of the message. HTML is not supported.
@@ -125,16 +125,12 @@ def create_conversation(
Examples
--------
from intercom import Intercom
- from intercom.unstable.conversations import CreateConversationRequestFrom
client = Intercom(
token="YOUR_TOKEN",
)
client.unstable.conversations.create_conversation(
- from_=CreateConversationRequestFrom(
- type="user",
- id="6762f11b1bb69f9f2193bba3",
- ),
+ from_={"type": "user", "id": "6762f11b1bb69f9f2193bba3"},
body="Hello there",
)
"""
@@ -200,7 +196,7 @@ def update_conversation(
display_as: typing.Optional[str] = None,
read: typing.Optional[bool] = OMIT,
title: typing.Optional[str] = OMIT,
- custom_attributes: typing.Optional[CustomAttributes] = OMIT,
+ custom_attributes: typing.Optional[CustomAttributesParams] = OMIT,
company_id: typing.Optional[str] = OMIT,
request_options: typing.Optional[RequestOptions] = None,
) -> Conversation:
@@ -232,7 +228,7 @@ def update_conversation(
title : typing.Optional[str]
The title given to the conversation
- custom_attributes : typing.Optional[CustomAttributes]
+ custom_attributes : typing.Optional[CustomAttributesParams]
company_id : typing.Optional[str]
The ID of the company that the conversation is associated with. The unique identifier for the company which is given by Intercom. Set to nil to remove company.
@@ -307,8 +303,8 @@ def delete_conversation(
def search_conversations(
self,
*,
- query: SearchRequestQuery,
- pagination: typing.Optional[StartingAfterPaging] = OMIT,
+ query: SearchRequestQueryParams,
+ pagination: typing.Optional[StartingAfterPagingParams] = OMIT,
request_options: typing.Optional[RequestOptions] = None,
) -> ConversationList:
"""
@@ -414,9 +410,9 @@ def search_conversations(
Parameters
----------
- query : SearchRequestQuery
+ query : SearchRequestQueryParams
- pagination : typing.Optional[StartingAfterPaging]
+ pagination : typing.Optional[StartingAfterPagingParams]
request_options : typing.Optional[RequestOptions]
Request-specific configuration.
@@ -429,29 +425,18 @@ def search_conversations(
Examples
--------
from intercom import Intercom
- from intercom.unstable import (
- MultipleFilterSearchRequest,
- SingleFilterSearchRequest,
- StartingAfterPaging,
- )
client = Intercom(
token="YOUR_TOKEN",
)
client.unstable.conversations.search_conversations(
- query=MultipleFilterSearchRequest(
- operator="AND",
- value=[
- SingleFilterSearchRequest(
- field="created_at",
- operator=">",
- value="1306054154",
- )
+ query={
+ "operator": "AND",
+ "value": [
+ {"field": "created_at", "operator": ">", "value": "1306054154"}
],
- ),
- pagination=StartingAfterPaging(
- per_page=5,
- ),
+ },
+ pagination={"per_page": 5},
)
"""
_response = self._raw_client.search_conversations(
@@ -460,7 +445,11 @@ def search_conversations(
return _response.data
def reply_conversation(
- self, id: str, *, request: ReplyConversationRequestBody, request_options: typing.Optional[RequestOptions] = None
+ self,
+ id: str,
+ *,
+ request: ReplyConversationRequestBodyParams,
+ request_options: typing.Optional[RequestOptions] = None,
) -> Conversation:
"""
You can reply to a conversation with a message from an admin or on behalf of a contact, or with a note for admins.
@@ -470,7 +459,7 @@ def reply_conversation(
id : str
The Intercom provisioned identifier for the conversation or the string "last" to reply to the last part of the conversation
- request : ReplyConversationRequestBody
+ request : ReplyConversationRequestBodyParams
request_options : typing.Optional[RequestOptions]
Request-specific configuration.
@@ -483,17 +472,18 @@ def reply_conversation(
Examples
--------
from intercom import Intercom
- from intercom.unstable import ContactReplyIntercomUserIdRequest
client = Intercom(
token="YOUR_TOKEN",
)
client.unstable.conversations.reply_conversation(
id='123 or "last"',
- request=ContactReplyIntercomUserIdRequest(
- body="Thanks again :)",
- intercom_user_id="6762f1571bb69f9f2193bbbb",
- ),
+ request={
+ "message_type": "comment",
+ "type": "user",
+ "body": "Thanks again :)",
+ "intercom_user_id": "6762f1571bb69f9f2193bbbb",
+ },
)
"""
_response = self._raw_client.reply_conversation(id, request=request, request_options=request_options)
@@ -503,7 +493,7 @@ def manage_conversation(
self,
id: str,
*,
- request: ManageConversationRequestBody,
+ request: ManageConversationRequestBodyParams,
request_options: typing.Optional[RequestOptions] = None,
) -> Conversation:
"""
@@ -518,7 +508,7 @@ def manage_conversation(
id : str
The identifier for the conversation as given by Intercom.
- request : ManageConversationRequestBody
+ request : ManageConversationRequestBodyParams
request_options : typing.Optional[RequestOptions]
Request-specific configuration.
@@ -531,16 +521,13 @@ def manage_conversation(
Examples
--------
from intercom import Intercom
- from intercom.unstable.conversations import ManageConversationRequestBody_Close
client = Intercom(
token="YOUR_TOKEN",
)
client.unstable.conversations.manage_conversation(
id="123",
- request=ManageConversationRequestBody_Close(
- admin_id="12345",
- ),
+ request={"type": "admin", "admin_id": "12345", "message_type": "close"},
)
"""
_response = self._raw_client.manage_conversation(id, request=request, request_options=request_options)
@@ -551,7 +538,7 @@ def attach_contact_to_conversation(
id: str,
*,
admin_id: typing.Optional[str] = OMIT,
- customer: typing.Optional[AttachContactToConversationRequestCustomer] = OMIT,
+ customer: typing.Optional[AttachContactToConversationRequestCustomerParams] = OMIT,
request_options: typing.Optional[RequestOptions] = None,
) -> Conversation:
"""
@@ -569,7 +556,7 @@ def attach_contact_to_conversation(
admin_id : typing.Optional[str]
The `id` of the admin who is adding the new participant.
- customer : typing.Optional[AttachContactToConversationRequestCustomer]
+ customer : typing.Optional[AttachContactToConversationRequestCustomerParams]
request_options : typing.Optional[RequestOptions]
Request-specific configuration.
@@ -582,9 +569,6 @@ def attach_contact_to_conversation(
Examples
--------
from intercom import Intercom
- from intercom.unstable.conversations import (
- AttachContactToConversationRequestCustomerIntercomUserId,
- )
client = Intercom(
token="YOUR_TOKEN",
@@ -592,9 +576,7 @@ def attach_contact_to_conversation(
client.unstable.conversations.attach_contact_to_conversation(
id="123",
admin_id="12345",
- customer=AttachContactToConversationRequestCustomerIntercomUserId(
- intercom_user_id="6762f19b1bb69f9f2193bbd4",
- ),
+ customer={"intercom_user_id": "6762f19b1bb69f9f2193bbd4"},
)
"""
_response = self._raw_client.attach_contact_to_conversation(
@@ -655,7 +637,7 @@ def detach_contact_from_conversation(
return _response.data
def redact_conversation(
- self, *, request: RedactConversationRequest, request_options: typing.Optional[RequestOptions] = None
+ self, *, request: RedactConversationRequestParams, request_options: typing.Optional[RequestOptions] = None
) -> Conversation:
"""
You can redact a conversation part or the source message of a conversation (as seen in the source object).
@@ -666,7 +648,7 @@ def redact_conversation(
Parameters
----------
- request : RedactConversationRequest
+ request : RedactConversationRequestParams
request_options : typing.Optional[RequestOptions]
Request-specific configuration.
@@ -679,16 +661,16 @@ def redact_conversation(
Examples
--------
from intercom import Intercom
- from intercom.unstable import RedactConversationRequest_ConversationPart
client = Intercom(
token="YOUR_TOKEN",
)
client.unstable.conversations.redact_conversation(
- request=RedactConversationRequest_ConversationPart(
- conversation_id="19894788788",
- conversation_part_id="19381789428",
- ),
+ request={
+ "conversation_id": "19894788788",
+ "conversation_part_id": "19381789428",
+ "type": "conversation_part",
+ },
)
"""
_response = self._raw_client.redact_conversation(request=request, request_options=request_options)
@@ -699,7 +681,7 @@ def convert_conversation_to_ticket(
id: int,
*,
ticket_type_id: str,
- attributes: typing.Optional[TicketRequestCustomAttributes] = OMIT,
+ attributes: typing.Optional[TicketRequestCustomAttributesParams] = OMIT,
request_options: typing.Optional[RequestOptions] = None,
) -> typing.Optional[Ticket]:
"""
@@ -713,7 +695,7 @@ def convert_conversation_to_ticket(
ticket_type_id : str
The ID of the type of ticket you want to convert the conversation to
- attributes : typing.Optional[TicketRequestCustomAttributes]
+ attributes : typing.Optional[TicketRequestCustomAttributesParams]
request_options : typing.Optional[RequestOptions]
Request-specific configuration.
@@ -813,7 +795,7 @@ async def main() -> None:
async def create_conversation(
self,
*,
- from_: CreateConversationRequestFrom,
+ from_: CreateConversationRequestFromParams,
body: str,
created_at: typing.Optional[int] = OMIT,
request_options: typing.Optional[RequestOptions] = None,
@@ -831,7 +813,7 @@ async def create_conversation(
Parameters
----------
- from_ : CreateConversationRequestFrom
+ from_ : CreateConversationRequestFromParams
body : str
The content of the message. HTML is not supported.
@@ -852,7 +834,6 @@ async def create_conversation(
import asyncio
from intercom import AsyncIntercom
- from intercom.unstable.conversations import CreateConversationRequestFrom
client = AsyncIntercom(
token="YOUR_TOKEN",
@@ -861,10 +842,7 @@ async def create_conversation(
async def main() -> None:
await client.unstable.conversations.create_conversation(
- from_=CreateConversationRequestFrom(
- type="user",
- id="6762f11b1bb69f9f2193bba3",
- ),
+ from_={"type": "user", "id": "6762f11b1bb69f9f2193bba3"},
body="Hello there",
)
@@ -943,7 +921,7 @@ async def update_conversation(
display_as: typing.Optional[str] = None,
read: typing.Optional[bool] = OMIT,
title: typing.Optional[str] = OMIT,
- custom_attributes: typing.Optional[CustomAttributes] = OMIT,
+ custom_attributes: typing.Optional[CustomAttributesParams] = OMIT,
company_id: typing.Optional[str] = OMIT,
request_options: typing.Optional[RequestOptions] = None,
) -> Conversation:
@@ -975,7 +953,7 @@ async def update_conversation(
title : typing.Optional[str]
The title given to the conversation
- custom_attributes : typing.Optional[CustomAttributes]
+ custom_attributes : typing.Optional[CustomAttributesParams]
company_id : typing.Optional[str]
The ID of the company that the conversation is associated with. The unique identifier for the company which is given by Intercom. Set to nil to remove company.
@@ -1066,8 +1044,8 @@ async def main() -> None:
async def search_conversations(
self,
*,
- query: SearchRequestQuery,
- pagination: typing.Optional[StartingAfterPaging] = OMIT,
+ query: SearchRequestQueryParams,
+ pagination: typing.Optional[StartingAfterPagingParams] = OMIT,
request_options: typing.Optional[RequestOptions] = None,
) -> ConversationList:
"""
@@ -1173,9 +1151,9 @@ async def search_conversations(
Parameters
----------
- query : SearchRequestQuery
+ query : SearchRequestQueryParams
- pagination : typing.Optional[StartingAfterPaging]
+ pagination : typing.Optional[StartingAfterPagingParams]
request_options : typing.Optional[RequestOptions]
Request-specific configuration.
@@ -1190,11 +1168,6 @@ async def search_conversations(
import asyncio
from intercom import AsyncIntercom
- from intercom.unstable import (
- MultipleFilterSearchRequest,
- SingleFilterSearchRequest,
- StartingAfterPaging,
- )
client = AsyncIntercom(
token="YOUR_TOKEN",
@@ -1203,19 +1176,13 @@ async def search_conversations(
async def main() -> None:
await client.unstable.conversations.search_conversations(
- query=MultipleFilterSearchRequest(
- operator="AND",
- value=[
- SingleFilterSearchRequest(
- field="created_at",
- operator=">",
- value="1306054154",
- )
+ query={
+ "operator": "AND",
+ "value": [
+ {"field": "created_at", "operator": ">", "value": "1306054154"}
],
- ),
- pagination=StartingAfterPaging(
- per_page=5,
- ),
+ },
+ pagination={"per_page": 5},
)
@@ -1227,7 +1194,11 @@ async def main() -> None:
return _response.data
async def reply_conversation(
- self, id: str, *, request: ReplyConversationRequestBody, request_options: typing.Optional[RequestOptions] = None
+ self,
+ id: str,
+ *,
+ request: ReplyConversationRequestBodyParams,
+ request_options: typing.Optional[RequestOptions] = None,
) -> Conversation:
"""
You can reply to a conversation with a message from an admin or on behalf of a contact, or with a note for admins.
@@ -1237,7 +1208,7 @@ async def reply_conversation(
id : str
The Intercom provisioned identifier for the conversation or the string "last" to reply to the last part of the conversation
- request : ReplyConversationRequestBody
+ request : ReplyConversationRequestBodyParams
request_options : typing.Optional[RequestOptions]
Request-specific configuration.
@@ -1252,7 +1223,6 @@ async def reply_conversation(
import asyncio
from intercom import AsyncIntercom
- from intercom.unstable import ContactReplyIntercomUserIdRequest
client = AsyncIntercom(
token="YOUR_TOKEN",
@@ -1262,10 +1232,12 @@ async def reply_conversation(
async def main() -> None:
await client.unstable.conversations.reply_conversation(
id='123 or "last"',
- request=ContactReplyIntercomUserIdRequest(
- body="Thanks again :)",
- intercom_user_id="6762f1571bb69f9f2193bbbb",
- ),
+ request={
+ "message_type": "comment",
+ "type": "user",
+ "body": "Thanks again :)",
+ "intercom_user_id": "6762f1571bb69f9f2193bbbb",
+ },
)
@@ -1278,7 +1250,7 @@ async def manage_conversation(
self,
id: str,
*,
- request: ManageConversationRequestBody,
+ request: ManageConversationRequestBodyParams,
request_options: typing.Optional[RequestOptions] = None,
) -> Conversation:
"""
@@ -1293,7 +1265,7 @@ async def manage_conversation(
id : str
The identifier for the conversation as given by Intercom.
- request : ManageConversationRequestBody
+ request : ManageConversationRequestBodyParams
request_options : typing.Optional[RequestOptions]
Request-specific configuration.
@@ -1308,7 +1280,6 @@ async def manage_conversation(
import asyncio
from intercom import AsyncIntercom
- from intercom.unstable.conversations import ManageConversationRequestBody_Close
client = AsyncIntercom(
token="YOUR_TOKEN",
@@ -1318,9 +1289,7 @@ async def manage_conversation(
async def main() -> None:
await client.unstable.conversations.manage_conversation(
id="123",
- request=ManageConversationRequestBody_Close(
- admin_id="12345",
- ),
+ request={"type": "admin", "admin_id": "12345", "message_type": "close"},
)
@@ -1334,7 +1303,7 @@ async def attach_contact_to_conversation(
id: str,
*,
admin_id: typing.Optional[str] = OMIT,
- customer: typing.Optional[AttachContactToConversationRequestCustomer] = OMIT,
+ customer: typing.Optional[AttachContactToConversationRequestCustomerParams] = OMIT,
request_options: typing.Optional[RequestOptions] = None,
) -> Conversation:
"""
@@ -1352,7 +1321,7 @@ async def attach_contact_to_conversation(
admin_id : typing.Optional[str]
The `id` of the admin who is adding the new participant.
- customer : typing.Optional[AttachContactToConversationRequestCustomer]
+ customer : typing.Optional[AttachContactToConversationRequestCustomerParams]
request_options : typing.Optional[RequestOptions]
Request-specific configuration.
@@ -1367,9 +1336,6 @@ async def attach_contact_to_conversation(
import asyncio
from intercom import AsyncIntercom
- from intercom.unstable.conversations import (
- AttachContactToConversationRequestCustomerIntercomUserId,
- )
client = AsyncIntercom(
token="YOUR_TOKEN",
@@ -1380,9 +1346,7 @@ async def main() -> None:
await client.unstable.conversations.attach_contact_to_conversation(
id="123",
admin_id="12345",
- customer=AttachContactToConversationRequestCustomerIntercomUserId(
- intercom_user_id="6762f19b1bb69f9f2193bbd4",
- ),
+ customer={"intercom_user_id": "6762f19b1bb69f9f2193bbd4"},
)
@@ -1454,7 +1418,7 @@ async def main() -> None:
return _response.data
async def redact_conversation(
- self, *, request: RedactConversationRequest, request_options: typing.Optional[RequestOptions] = None
+ self, *, request: RedactConversationRequestParams, request_options: typing.Optional[RequestOptions] = None
) -> Conversation:
"""
You can redact a conversation part or the source message of a conversation (as seen in the source object).
@@ -1465,7 +1429,7 @@ async def redact_conversation(
Parameters
----------
- request : RedactConversationRequest
+ request : RedactConversationRequestParams
request_options : typing.Optional[RequestOptions]
Request-specific configuration.
@@ -1480,7 +1444,6 @@ async def redact_conversation(
import asyncio
from intercom import AsyncIntercom
- from intercom.unstable import RedactConversationRequest_ConversationPart
client = AsyncIntercom(
token="YOUR_TOKEN",
@@ -1489,10 +1452,11 @@ async def redact_conversation(
async def main() -> None:
await client.unstable.conversations.redact_conversation(
- request=RedactConversationRequest_ConversationPart(
- conversation_id="19894788788",
- conversation_part_id="19381789428",
- ),
+ request={
+ "conversation_id": "19894788788",
+ "conversation_part_id": "19381789428",
+ "type": "conversation_part",
+ },
)
@@ -1506,7 +1470,7 @@ async def convert_conversation_to_ticket(
id: int,
*,
ticket_type_id: str,
- attributes: typing.Optional[TicketRequestCustomAttributes] = OMIT,
+ attributes: typing.Optional[TicketRequestCustomAttributesParams] = OMIT,
request_options: typing.Optional[RequestOptions] = None,
) -> typing.Optional[Ticket]:
"""
@@ -1520,7 +1484,7 @@ async def convert_conversation_to_ticket(
ticket_type_id : str
The ID of the type of ticket you want to convert the conversation to
- attributes : typing.Optional[TicketRequestCustomAttributes]
+ attributes : typing.Optional[TicketRequestCustomAttributesParams]
request_options : typing.Optional[RequestOptions]
Request-specific configuration.
diff --git a/src/intercom/unstable/conversations/raw_client.py b/src/intercom/unstable/conversations/raw_client.py
index 5c4343a..e9fc9b4 100644
--- a/src/intercom/unstable/conversations/raw_client.py
+++ b/src/intercom/unstable/conversations/raw_client.py
@@ -16,20 +16,20 @@
from ..errors.unauthorized_error import UnauthorizedError
from ..errors.unprocessable_entity_error import UnprocessableEntityError
from ..messages.types.message import Message
+from ..requests.custom_attributes import CustomAttributesParams
+from ..requests.redact_conversation_request import RedactConversationRequestParams
+from ..requests.reply_conversation_request_body import ReplyConversationRequestBodyParams
+from ..requests.search_request_query import SearchRequestQueryParams
+from ..requests.starting_after_paging import StartingAfterPagingParams
+from ..requests.ticket_request_custom_attributes import TicketRequestCustomAttributesParams
from ..tickets.types.ticket import Ticket
from ..types.conversation_deleted import ConversationDeleted
from ..types.conversation_list import ConversationList
-from ..types.custom_attributes import CustomAttributes
from ..types.error import Error
-from ..types.redact_conversation_request import RedactConversationRequest
-from ..types.reply_conversation_request_body import ReplyConversationRequestBody
-from ..types.search_request_query import SearchRequestQuery
-from ..types.starting_after_paging import StartingAfterPaging
-from ..types.ticket_request_custom_attributes import TicketRequestCustomAttributes
-from .types.attach_contact_to_conversation_request_customer import AttachContactToConversationRequestCustomer
+from .requests.attach_contact_to_conversation_request_customer import AttachContactToConversationRequestCustomerParams
+from .requests.create_conversation_request_from import CreateConversationRequestFromParams
+from .requests.manage_conversation_request_body import ManageConversationRequestBodyParams
from .types.conversation import Conversation
-from .types.create_conversation_request_from import CreateConversationRequestFrom
-from .types.manage_conversation_request_body import ManageConversationRequestBody
# this is used as the default value for optional parameters
OMIT = typing.cast(typing.Any, ...)
@@ -120,7 +120,7 @@ def list_conversations(
def create_conversation(
self,
*,
- from_: CreateConversationRequestFrom,
+ from_: CreateConversationRequestFromParams,
body: str,
created_at: typing.Optional[int] = OMIT,
request_options: typing.Optional[RequestOptions] = None,
@@ -138,7 +138,7 @@ def create_conversation(
Parameters
----------
- from_ : CreateConversationRequestFrom
+ from_ : CreateConversationRequestFromParams
body : str
The content of the message. HTML is not supported.
@@ -159,7 +159,7 @@ def create_conversation(
method="POST",
json={
"from": convert_and_respect_annotation_metadata(
- object_=from_, annotation=CreateConversationRequestFrom, direction="write"
+ object_=from_, annotation=CreateConversationRequestFromParams, direction="write"
),
"body": body,
"created_at": created_at,
@@ -316,7 +316,7 @@ def update_conversation(
display_as: typing.Optional[str] = None,
read: typing.Optional[bool] = OMIT,
title: typing.Optional[str] = OMIT,
- custom_attributes: typing.Optional[CustomAttributes] = OMIT,
+ custom_attributes: typing.Optional[CustomAttributesParams] = OMIT,
company_id: typing.Optional[str] = OMIT,
request_options: typing.Optional[RequestOptions] = None,
) -> HttpResponse[Conversation]:
@@ -348,7 +348,7 @@ def update_conversation(
title : typing.Optional[str]
The title given to the conversation
- custom_attributes : typing.Optional[CustomAttributes]
+ custom_attributes : typing.Optional[CustomAttributesParams]
company_id : typing.Optional[str]
The ID of the company that the conversation is associated with. The unique identifier for the company which is given by Intercom. Set to nil to remove company.
@@ -371,7 +371,7 @@ def update_conversation(
"read": read,
"title": title,
"custom_attributes": convert_and_respect_annotation_metadata(
- object_=custom_attributes, annotation=CustomAttributes, direction="write"
+ object_=custom_attributes, annotation=CustomAttributesParams, direction="write"
),
"company_id": company_id,
},
@@ -493,8 +493,8 @@ def delete_conversation(
def search_conversations(
self,
*,
- query: SearchRequestQuery,
- pagination: typing.Optional[StartingAfterPaging] = OMIT,
+ query: SearchRequestQueryParams,
+ pagination: typing.Optional[StartingAfterPagingParams] = OMIT,
request_options: typing.Optional[RequestOptions] = None,
) -> HttpResponse[ConversationList]:
"""
@@ -600,9 +600,9 @@ def search_conversations(
Parameters
----------
- query : SearchRequestQuery
+ query : SearchRequestQueryParams
- pagination : typing.Optional[StartingAfterPaging]
+ pagination : typing.Optional[StartingAfterPagingParams]
request_options : typing.Optional[RequestOptions]
Request-specific configuration.
@@ -617,10 +617,10 @@ def search_conversations(
method="POST",
json={
"query": convert_and_respect_annotation_metadata(
- object_=query, annotation=SearchRequestQuery, direction="write"
+ object_=query, annotation=SearchRequestQueryParams, direction="write"
),
"pagination": convert_and_respect_annotation_metadata(
- object_=pagination, annotation=StartingAfterPaging, direction="write"
+ object_=pagination, annotation=StartingAfterPagingParams, direction="write"
),
},
headers={
@@ -645,7 +645,11 @@ def search_conversations(
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
def reply_conversation(
- self, id: str, *, request: ReplyConversationRequestBody, request_options: typing.Optional[RequestOptions] = None
+ self,
+ id: str,
+ *,
+ request: ReplyConversationRequestBodyParams,
+ request_options: typing.Optional[RequestOptions] = None,
) -> HttpResponse[Conversation]:
"""
You can reply to a conversation with a message from an admin or on behalf of a contact, or with a note for admins.
@@ -655,7 +659,7 @@ def reply_conversation(
id : str
The Intercom provisioned identifier for the conversation or the string "last" to reply to the last part of the conversation
- request : ReplyConversationRequestBody
+ request : ReplyConversationRequestBodyParams
request_options : typing.Optional[RequestOptions]
Request-specific configuration.
@@ -669,7 +673,7 @@ def reply_conversation(
f"conversations/{jsonable_encoder(id)}/reply",
method="POST",
json=convert_and_respect_annotation_metadata(
- object_=request, annotation=ReplyConversationRequestBody, direction="write"
+ object_=request, annotation=ReplyConversationRequestBodyParams, direction="write"
),
headers={
"content-type": "application/json",
@@ -729,7 +733,7 @@ def manage_conversation(
self,
id: str,
*,
- request: ManageConversationRequestBody,
+ request: ManageConversationRequestBodyParams,
request_options: typing.Optional[RequestOptions] = None,
) -> HttpResponse[Conversation]:
"""
@@ -744,7 +748,7 @@ def manage_conversation(
id : str
The identifier for the conversation as given by Intercom.
- request : ManageConversationRequestBody
+ request : ManageConversationRequestBodyParams
request_options : typing.Optional[RequestOptions]
Request-specific configuration.
@@ -758,7 +762,7 @@ def manage_conversation(
f"conversations/{jsonable_encoder(id)}/parts",
method="POST",
json=convert_and_respect_annotation_metadata(
- object_=request, annotation=ManageConversationRequestBody, direction="write"
+ object_=request, annotation=ManageConversationRequestBodyParams, direction="write"
),
headers={
"content-type": "application/json",
@@ -819,7 +823,7 @@ def attach_contact_to_conversation(
id: str,
*,
admin_id: typing.Optional[str] = OMIT,
- customer: typing.Optional[AttachContactToConversationRequestCustomer] = OMIT,
+ customer: typing.Optional[AttachContactToConversationRequestCustomerParams] = OMIT,
request_options: typing.Optional[RequestOptions] = None,
) -> HttpResponse[Conversation]:
"""
@@ -837,7 +841,7 @@ def attach_contact_to_conversation(
admin_id : typing.Optional[str]
The `id` of the admin who is adding the new participant.
- customer : typing.Optional[AttachContactToConversationRequestCustomer]
+ customer : typing.Optional[AttachContactToConversationRequestCustomerParams]
request_options : typing.Optional[RequestOptions]
Request-specific configuration.
@@ -853,7 +857,7 @@ def attach_contact_to_conversation(
json={
"admin_id": admin_id,
"customer": convert_and_respect_annotation_metadata(
- object_=customer, annotation=AttachContactToConversationRequestCustomer, direction="write"
+ object_=customer, annotation=AttachContactToConversationRequestCustomerParams, direction="write"
),
},
headers={
@@ -1016,7 +1020,7 @@ def detach_contact_from_conversation(
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
def redact_conversation(
- self, *, request: RedactConversationRequest, request_options: typing.Optional[RequestOptions] = None
+ self, *, request: RedactConversationRequestParams, request_options: typing.Optional[RequestOptions] = None
) -> HttpResponse[Conversation]:
"""
You can redact a conversation part or the source message of a conversation (as seen in the source object).
@@ -1027,7 +1031,7 @@ def redact_conversation(
Parameters
----------
- request : RedactConversationRequest
+ request : RedactConversationRequestParams
request_options : typing.Optional[RequestOptions]
Request-specific configuration.
@@ -1041,7 +1045,7 @@ def redact_conversation(
"conversations/redact",
method="POST",
json=convert_and_respect_annotation_metadata(
- object_=request, annotation=RedactConversationRequest, direction="write"
+ object_=request, annotation=RedactConversationRequestParams, direction="write"
),
headers={
"content-type": "application/json",
@@ -1091,7 +1095,7 @@ def convert_conversation_to_ticket(
id: int,
*,
ticket_type_id: str,
- attributes: typing.Optional[TicketRequestCustomAttributes] = OMIT,
+ attributes: typing.Optional[TicketRequestCustomAttributesParams] = OMIT,
request_options: typing.Optional[RequestOptions] = None,
) -> HttpResponse[typing.Optional[Ticket]]:
"""
@@ -1105,7 +1109,7 @@ def convert_conversation_to_ticket(
ticket_type_id : str
The ID of the type of ticket you want to convert the conversation to
- attributes : typing.Optional[TicketRequestCustomAttributes]
+ attributes : typing.Optional[TicketRequestCustomAttributesParams]
request_options : typing.Optional[RequestOptions]
Request-specific configuration.
@@ -1121,7 +1125,7 @@ def convert_conversation_to_ticket(
json={
"ticket_type_id": ticket_type_id,
"attributes": convert_and_respect_annotation_metadata(
- object_=attributes, annotation=TicketRequestCustomAttributes, direction="write"
+ object_=attributes, annotation=TicketRequestCustomAttributesParams, direction="write"
),
},
headers={
@@ -1244,7 +1248,7 @@ async def list_conversations(
async def create_conversation(
self,
*,
- from_: CreateConversationRequestFrom,
+ from_: CreateConversationRequestFromParams,
body: str,
created_at: typing.Optional[int] = OMIT,
request_options: typing.Optional[RequestOptions] = None,
@@ -1262,7 +1266,7 @@ async def create_conversation(
Parameters
----------
- from_ : CreateConversationRequestFrom
+ from_ : CreateConversationRequestFromParams
body : str
The content of the message. HTML is not supported.
@@ -1283,7 +1287,7 @@ async def create_conversation(
method="POST",
json={
"from": convert_and_respect_annotation_metadata(
- object_=from_, annotation=CreateConversationRequestFrom, direction="write"
+ object_=from_, annotation=CreateConversationRequestFromParams, direction="write"
),
"body": body,
"created_at": created_at,
@@ -1440,7 +1444,7 @@ async def update_conversation(
display_as: typing.Optional[str] = None,
read: typing.Optional[bool] = OMIT,
title: typing.Optional[str] = OMIT,
- custom_attributes: typing.Optional[CustomAttributes] = OMIT,
+ custom_attributes: typing.Optional[CustomAttributesParams] = OMIT,
company_id: typing.Optional[str] = OMIT,
request_options: typing.Optional[RequestOptions] = None,
) -> AsyncHttpResponse[Conversation]:
@@ -1472,7 +1476,7 @@ async def update_conversation(
title : typing.Optional[str]
The title given to the conversation
- custom_attributes : typing.Optional[CustomAttributes]
+ custom_attributes : typing.Optional[CustomAttributesParams]
company_id : typing.Optional[str]
The ID of the company that the conversation is associated with. The unique identifier for the company which is given by Intercom. Set to nil to remove company.
@@ -1495,7 +1499,7 @@ async def update_conversation(
"read": read,
"title": title,
"custom_attributes": convert_and_respect_annotation_metadata(
- object_=custom_attributes, annotation=CustomAttributes, direction="write"
+ object_=custom_attributes, annotation=CustomAttributesParams, direction="write"
),
"company_id": company_id,
},
@@ -1617,8 +1621,8 @@ async def delete_conversation(
async def search_conversations(
self,
*,
- query: SearchRequestQuery,
- pagination: typing.Optional[StartingAfterPaging] = OMIT,
+ query: SearchRequestQueryParams,
+ pagination: typing.Optional[StartingAfterPagingParams] = OMIT,
request_options: typing.Optional[RequestOptions] = None,
) -> AsyncHttpResponse[ConversationList]:
"""
@@ -1724,9 +1728,9 @@ async def search_conversations(
Parameters
----------
- query : SearchRequestQuery
+ query : SearchRequestQueryParams
- pagination : typing.Optional[StartingAfterPaging]
+ pagination : typing.Optional[StartingAfterPagingParams]
request_options : typing.Optional[RequestOptions]
Request-specific configuration.
@@ -1741,10 +1745,10 @@ async def search_conversations(
method="POST",
json={
"query": convert_and_respect_annotation_metadata(
- object_=query, annotation=SearchRequestQuery, direction="write"
+ object_=query, annotation=SearchRequestQueryParams, direction="write"
),
"pagination": convert_and_respect_annotation_metadata(
- object_=pagination, annotation=StartingAfterPaging, direction="write"
+ object_=pagination, annotation=StartingAfterPagingParams, direction="write"
),
},
headers={
@@ -1769,7 +1773,11 @@ async def search_conversations(
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
async def reply_conversation(
- self, id: str, *, request: ReplyConversationRequestBody, request_options: typing.Optional[RequestOptions] = None
+ self,
+ id: str,
+ *,
+ request: ReplyConversationRequestBodyParams,
+ request_options: typing.Optional[RequestOptions] = None,
) -> AsyncHttpResponse[Conversation]:
"""
You can reply to a conversation with a message from an admin or on behalf of a contact, or with a note for admins.
@@ -1779,7 +1787,7 @@ async def reply_conversation(
id : str
The Intercom provisioned identifier for the conversation or the string "last" to reply to the last part of the conversation
- request : ReplyConversationRequestBody
+ request : ReplyConversationRequestBodyParams
request_options : typing.Optional[RequestOptions]
Request-specific configuration.
@@ -1793,7 +1801,7 @@ async def reply_conversation(
f"conversations/{jsonable_encoder(id)}/reply",
method="POST",
json=convert_and_respect_annotation_metadata(
- object_=request, annotation=ReplyConversationRequestBody, direction="write"
+ object_=request, annotation=ReplyConversationRequestBodyParams, direction="write"
),
headers={
"content-type": "application/json",
@@ -1853,7 +1861,7 @@ async def manage_conversation(
self,
id: str,
*,
- request: ManageConversationRequestBody,
+ request: ManageConversationRequestBodyParams,
request_options: typing.Optional[RequestOptions] = None,
) -> AsyncHttpResponse[Conversation]:
"""
@@ -1868,7 +1876,7 @@ async def manage_conversation(
id : str
The identifier for the conversation as given by Intercom.
- request : ManageConversationRequestBody
+ request : ManageConversationRequestBodyParams
request_options : typing.Optional[RequestOptions]
Request-specific configuration.
@@ -1882,7 +1890,7 @@ async def manage_conversation(
f"conversations/{jsonable_encoder(id)}/parts",
method="POST",
json=convert_and_respect_annotation_metadata(
- object_=request, annotation=ManageConversationRequestBody, direction="write"
+ object_=request, annotation=ManageConversationRequestBodyParams, direction="write"
),
headers={
"content-type": "application/json",
@@ -1943,7 +1951,7 @@ async def attach_contact_to_conversation(
id: str,
*,
admin_id: typing.Optional[str] = OMIT,
- customer: typing.Optional[AttachContactToConversationRequestCustomer] = OMIT,
+ customer: typing.Optional[AttachContactToConversationRequestCustomerParams] = OMIT,
request_options: typing.Optional[RequestOptions] = None,
) -> AsyncHttpResponse[Conversation]:
"""
@@ -1961,7 +1969,7 @@ async def attach_contact_to_conversation(
admin_id : typing.Optional[str]
The `id` of the admin who is adding the new participant.
- customer : typing.Optional[AttachContactToConversationRequestCustomer]
+ customer : typing.Optional[AttachContactToConversationRequestCustomerParams]
request_options : typing.Optional[RequestOptions]
Request-specific configuration.
@@ -1977,7 +1985,7 @@ async def attach_contact_to_conversation(
json={
"admin_id": admin_id,
"customer": convert_and_respect_annotation_metadata(
- object_=customer, annotation=AttachContactToConversationRequestCustomer, direction="write"
+ object_=customer, annotation=AttachContactToConversationRequestCustomerParams, direction="write"
),
},
headers={
@@ -2140,7 +2148,7 @@ async def detach_contact_from_conversation(
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
async def redact_conversation(
- self, *, request: RedactConversationRequest, request_options: typing.Optional[RequestOptions] = None
+ self, *, request: RedactConversationRequestParams, request_options: typing.Optional[RequestOptions] = None
) -> AsyncHttpResponse[Conversation]:
"""
You can redact a conversation part or the source message of a conversation (as seen in the source object).
@@ -2151,7 +2159,7 @@ async def redact_conversation(
Parameters
----------
- request : RedactConversationRequest
+ request : RedactConversationRequestParams
request_options : typing.Optional[RequestOptions]
Request-specific configuration.
@@ -2165,7 +2173,7 @@ async def redact_conversation(
"conversations/redact",
method="POST",
json=convert_and_respect_annotation_metadata(
- object_=request, annotation=RedactConversationRequest, direction="write"
+ object_=request, annotation=RedactConversationRequestParams, direction="write"
),
headers={
"content-type": "application/json",
@@ -2215,7 +2223,7 @@ async def convert_conversation_to_ticket(
id: int,
*,
ticket_type_id: str,
- attributes: typing.Optional[TicketRequestCustomAttributes] = OMIT,
+ attributes: typing.Optional[TicketRequestCustomAttributesParams] = OMIT,
request_options: typing.Optional[RequestOptions] = None,
) -> AsyncHttpResponse[typing.Optional[Ticket]]:
"""
@@ -2229,7 +2237,7 @@ async def convert_conversation_to_ticket(
ticket_type_id : str
The ID of the type of ticket you want to convert the conversation to
- attributes : typing.Optional[TicketRequestCustomAttributes]
+ attributes : typing.Optional[TicketRequestCustomAttributesParams]
request_options : typing.Optional[RequestOptions]
Request-specific configuration.
@@ -2245,7 +2253,7 @@ async def convert_conversation_to_ticket(
json={
"ticket_type_id": ticket_type_id,
"attributes": convert_and_respect_annotation_metadata(
- object_=attributes, annotation=TicketRequestCustomAttributes, direction="write"
+ object_=attributes, annotation=TicketRequestCustomAttributesParams, direction="write"
),
},
headers={
diff --git a/src/intercom/unstable/conversations/requests/__init__.py b/src/intercom/unstable/conversations/requests/__init__.py
new file mode 100644
index 0000000..80c5c46
--- /dev/null
+++ b/src/intercom/unstable/conversations/requests/__init__.py
@@ -0,0 +1,37 @@
+# This file was auto-generated by Fern from our API Definition.
+
+# isort: skip_file
+
+from .attach_contact_to_conversation_request_customer import AttachContactToConversationRequestCustomerParams
+from .attach_contact_to_conversation_request_customer_customer import (
+ AttachContactToConversationRequestCustomerCustomerParams,
+)
+from .attach_contact_to_conversation_request_customer_intercom_user_id import (
+ AttachContactToConversationRequestCustomerIntercomUserIdParams,
+)
+from .attach_contact_to_conversation_request_customer_user_id import (
+ AttachContactToConversationRequestCustomerUserIdParams,
+)
+from .conversation import ConversationParams
+from .create_conversation_request_from import CreateConversationRequestFromParams
+from .manage_conversation_request_body import (
+ ManageConversationRequestBodyParams,
+ ManageConversationRequestBody_AssignmentParams,
+ ManageConversationRequestBody_CloseParams,
+ ManageConversationRequestBody_OpenParams,
+ ManageConversationRequestBody_SnoozedParams,
+)
+
+__all__ = [
+ "AttachContactToConversationRequestCustomerCustomerParams",
+ "AttachContactToConversationRequestCustomerIntercomUserIdParams",
+ "AttachContactToConversationRequestCustomerParams",
+ "AttachContactToConversationRequestCustomerUserIdParams",
+ "ConversationParams",
+ "CreateConversationRequestFromParams",
+ "ManageConversationRequestBodyParams",
+ "ManageConversationRequestBody_AssignmentParams",
+ "ManageConversationRequestBody_CloseParams",
+ "ManageConversationRequestBody_OpenParams",
+ "ManageConversationRequestBody_SnoozedParams",
+]
diff --git a/src/intercom/unstable/conversations/requests/attach_contact_to_conversation_request_customer.py b/src/intercom/unstable/conversations/requests/attach_contact_to_conversation_request_customer.py
new file mode 100644
index 0000000..b91bf22
--- /dev/null
+++ b/src/intercom/unstable/conversations/requests/attach_contact_to_conversation_request_customer.py
@@ -0,0 +1,19 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing
+
+from .attach_contact_to_conversation_request_customer_customer import (
+ AttachContactToConversationRequestCustomerCustomerParams,
+)
+from .attach_contact_to_conversation_request_customer_intercom_user_id import (
+ AttachContactToConversationRequestCustomerIntercomUserIdParams,
+)
+from .attach_contact_to_conversation_request_customer_user_id import (
+ AttachContactToConversationRequestCustomerUserIdParams,
+)
+
+AttachContactToConversationRequestCustomerParams = typing.Union[
+ AttachContactToConversationRequestCustomerIntercomUserIdParams,
+ AttachContactToConversationRequestCustomerUserIdParams,
+ AttachContactToConversationRequestCustomerCustomerParams,
+]
diff --git a/src/intercom/unstable/conversations/requests/attach_contact_to_conversation_request_customer_customer.py b/src/intercom/unstable/conversations/requests/attach_contact_to_conversation_request_customer_customer.py
new file mode 100644
index 0000000..14582f0
--- /dev/null
+++ b/src/intercom/unstable/conversations/requests/attach_contact_to_conversation_request_customer_customer.py
@@ -0,0 +1,13 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing_extensions
+from ...requests.customer_request import CustomerRequestParams
+
+
+class AttachContactToConversationRequestCustomerCustomerParams(typing_extensions.TypedDict):
+ email: str
+ """
+ The email you have defined for the contact who is being added as a participant.
+ """
+
+ customer: typing_extensions.NotRequired[CustomerRequestParams]
diff --git a/src/intercom/unstable/conversations/requests/attach_contact_to_conversation_request_customer_intercom_user_id.py b/src/intercom/unstable/conversations/requests/attach_contact_to_conversation_request_customer_intercom_user_id.py
new file mode 100644
index 0000000..0f63806
--- /dev/null
+++ b/src/intercom/unstable/conversations/requests/attach_contact_to_conversation_request_customer_intercom_user_id.py
@@ -0,0 +1,13 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing_extensions
+from ...requests.customer_request import CustomerRequestParams
+
+
+class AttachContactToConversationRequestCustomerIntercomUserIdParams(typing_extensions.TypedDict):
+ intercom_user_id: str
+ """
+ The identifier for the contact as given by Intercom.
+ """
+
+ customer: typing_extensions.NotRequired[CustomerRequestParams]
diff --git a/src/intercom/unstable/conversations/requests/attach_contact_to_conversation_request_customer_user_id.py b/src/intercom/unstable/conversations/requests/attach_contact_to_conversation_request_customer_user_id.py
new file mode 100644
index 0000000..4cff5fb
--- /dev/null
+++ b/src/intercom/unstable/conversations/requests/attach_contact_to_conversation_request_customer_user_id.py
@@ -0,0 +1,13 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing_extensions
+from ...requests.customer_request import CustomerRequestParams
+
+
+class AttachContactToConversationRequestCustomerUserIdParams(typing_extensions.TypedDict):
+ user_id: str
+ """
+ The external_id you have defined for the contact who is being added as a participant.
+ """
+
+ customer: typing_extensions.NotRequired[CustomerRequestParams]
diff --git a/src/intercom/unstable/conversations/requests/conversation.py b/src/intercom/unstable/conversations/requests/conversation.py
new file mode 100644
index 0000000..3290c90
--- /dev/null
+++ b/src/intercom/unstable/conversations/requests/conversation.py
@@ -0,0 +1,111 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing_extensions
+from ...ai_agent.requests.ai_agent import AiAgentParams
+from ...requests.conversation_contacts import ConversationContactsParams
+from ...requests.conversation_first_contact_reply import ConversationFirstContactReplyParams
+from ...requests.conversation_parts import ConversationPartsParams
+from ...requests.conversation_rating import ConversationRatingParams
+from ...requests.conversation_source import ConversationSourceParams
+from ...requests.conversation_statistics import ConversationStatisticsParams
+from ...requests.conversation_teammates import ConversationTeammatesParams
+from ...requests.custom_attributes import CustomAttributesParams
+from ...requests.linked_object_list import LinkedObjectListParams
+from ...requests.sla_applied import SlaAppliedParams
+from ...requests.tags import TagsParams
+from ..types.conversation_priority import ConversationPriority
+from ..types.conversation_state import ConversationState
+
+
+class ConversationParams(typing_extensions.TypedDict):
+ """
+ Conversations are how you can communicate with users in Intercom. They are created when a contact replies to an outbound message, or when one admin directly sends a message to a single contact.
+ """
+
+ type: typing_extensions.NotRequired[str]
+ """
+ Always conversation.
+ """
+
+ id: typing_extensions.NotRequired[str]
+ """
+ The id representing the conversation.
+ """
+
+ title: typing_extensions.NotRequired[str]
+ """
+ The title given to the conversation.
+ """
+
+ created_at: typing_extensions.NotRequired[int]
+ """
+ The time the conversation was created.
+ """
+
+ updated_at: typing_extensions.NotRequired[int]
+ """
+ The last time the conversation was updated.
+ """
+
+ waiting_since: typing_extensions.NotRequired[int]
+ """
+ The last time a Contact responded to an Admin. In other words, the time a customer started waiting for a response. Set to null if last reply is from an Admin.
+ """
+
+ snoozed_until: typing_extensions.NotRequired[int]
+ """
+ If set this is the time in the future when this conversation will be marked as open. i.e. it will be in a snoozed state until this time. i.e. it will be in a snoozed state until this time.
+ """
+
+ open: typing_extensions.NotRequired[bool]
+ """
+ Indicates whether a conversation is open (true) or closed (false).
+ """
+
+ state: typing_extensions.NotRequired[ConversationState]
+ """
+ Can be set to "open", "closed" or "snoozed".
+ """
+
+ read: typing_extensions.NotRequired[bool]
+ """
+ Indicates whether a conversation has been read.
+ """
+
+ priority: typing_extensions.NotRequired[ConversationPriority]
+ """
+ If marked as priority, it will return priority or else not_priority.
+ """
+
+ admin_assignee_id: typing_extensions.NotRequired[int]
+ """
+ The id of the admin assigned to the conversation. If it's not assigned to an admin it will return null.
+ """
+
+ team_assignee_id: typing_extensions.NotRequired[str]
+ """
+ The id of the team assigned to the conversation. If it's not assigned to a team it will return null.
+ """
+
+ company_id: typing_extensions.NotRequired[str]
+ """
+ The ID of the company that the conversation is associated with. The unique identifier for the company which is given by Intercom.
+ """
+
+ tags: typing_extensions.NotRequired[TagsParams]
+ conversation_rating: typing_extensions.NotRequired[ConversationRatingParams]
+ source: typing_extensions.NotRequired[ConversationSourceParams]
+ contacts: typing_extensions.NotRequired[ConversationContactsParams]
+ teammates: typing_extensions.NotRequired[ConversationTeammatesParams]
+ custom_attributes: typing_extensions.NotRequired[CustomAttributesParams]
+ first_contact_reply: typing_extensions.NotRequired[ConversationFirstContactReplyParams]
+ sla_applied: typing_extensions.NotRequired[SlaAppliedParams]
+ statistics: typing_extensions.NotRequired[ConversationStatisticsParams]
+ conversation_parts: typing_extensions.NotRequired[ConversationPartsParams]
+ linked_objects: typing_extensions.NotRequired[LinkedObjectListParams]
+ ai_agent_participated: typing_extensions.NotRequired[bool]
+ """
+ Indicates whether the AI Agent participated in the conversation.
+ """
+
+ ai_agent: typing_extensions.NotRequired[AiAgentParams]
diff --git a/src/intercom/unstable/conversations/requests/create_conversation_request_from.py b/src/intercom/unstable/conversations/requests/create_conversation_request_from.py
new file mode 100644
index 0000000..922de2e
--- /dev/null
+++ b/src/intercom/unstable/conversations/requests/create_conversation_request_from.py
@@ -0,0 +1,16 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing_extensions
+from ..types.create_conversation_request_from_type import CreateConversationRequestFromType
+
+
+class CreateConversationRequestFromParams(typing_extensions.TypedDict):
+ type: CreateConversationRequestFromType
+ """
+ The role associated to the contact - user or lead.
+ """
+
+ id: str
+ """
+ The identifier for the contact which is given by Intercom.
+ """
diff --git a/src/intercom/unstable/conversations/requests/manage_conversation_request_body.py b/src/intercom/unstable/conversations/requests/manage_conversation_request_body.py
new file mode 100644
index 0000000..a2e6ed8
--- /dev/null
+++ b/src/intercom/unstable/conversations/requests/manage_conversation_request_body.py
@@ -0,0 +1,42 @@
+# This file was auto-generated by Fern from our API Definition.
+
+from __future__ import annotations
+
+import typing
+
+import typing_extensions
+from ...types.assign_conversation_request_type import AssignConversationRequestType
+
+
+class ManageConversationRequestBody_CloseParams(typing_extensions.TypedDict):
+ message_type: typing.Literal["close"]
+ type: typing.Literal["admin"]
+ admin_id: str
+ body: typing_extensions.NotRequired[str]
+
+
+class ManageConversationRequestBody_SnoozedParams(typing_extensions.TypedDict):
+ message_type: typing.Literal["snoozed"]
+ admin_id: str
+ snoozed_until: int
+
+
+class ManageConversationRequestBody_OpenParams(typing_extensions.TypedDict):
+ message_type: typing.Literal["open"]
+ admin_id: str
+
+
+class ManageConversationRequestBody_AssignmentParams(typing_extensions.TypedDict):
+ message_type: typing.Literal["assignment"]
+ type: AssignConversationRequestType
+ admin_id: str
+ assignee_id: str
+ body: typing_extensions.NotRequired[str]
+
+
+ManageConversationRequestBodyParams = typing.Union[
+ ManageConversationRequestBody_CloseParams,
+ ManageConversationRequestBody_SnoozedParams,
+ ManageConversationRequestBody_OpenParams,
+ ManageConversationRequestBody_AssignmentParams,
+]
diff --git a/src/intercom/unstable/custom_channel_events/client.py b/src/intercom/unstable/custom_channel_events/client.py
index 7ae618d..3ecebd5 100644
--- a/src/intercom/unstable/custom_channel_events/client.py
+++ b/src/intercom/unstable/custom_channel_events/client.py
@@ -4,8 +4,8 @@
from ...core.client_wrapper import AsyncClientWrapper, SyncClientWrapper
from ...core.request_options import RequestOptions
-from ..types.custom_channel_attribute import CustomChannelAttribute
-from ..types.custom_channel_contact import CustomChannelContact
+from ..requests.custom_channel_attribute import CustomChannelAttributeParams
+from ..requests.custom_channel_contact import CustomChannelContactParams
from ..types.custom_channel_notification_response import CustomChannelNotificationResponse
from .raw_client import AsyncRawCustomChannelEventsClient, RawCustomChannelEventsClient
@@ -33,7 +33,7 @@ def notify_new_conversation(
*,
event_id: str,
external_conversation_id: str,
- contact: CustomChannelContact,
+ contact: CustomChannelContactParams,
request_options: typing.Optional[RequestOptions] = None,
) -> CustomChannelNotificationResponse:
"""
@@ -48,7 +48,7 @@ def notify_new_conversation(
external_conversation_id : str
Identifier for the conversation in your application.
- contact : CustomChannelContact
+ contact : CustomChannelContactParams
request_options : typing.Optional[RequestOptions]
Request-specific configuration.
@@ -61,7 +61,6 @@ def notify_new_conversation(
Examples
--------
from intercom import Intercom
- from intercom.unstable import CustomChannelContact
client = Intercom(
token="YOUR_TOKEN",
@@ -69,12 +68,12 @@ def notify_new_conversation(
client.unstable.custom_channel_events.notify_new_conversation(
event_id="evt_12345",
external_conversation_id="conv_67890",
- contact=CustomChannelContact(
- type="user",
- external_id="user_001",
- name="Jane Doe",
- email="jane.doe@example.com",
- ),
+ contact={
+ "type": "user",
+ "external_id": "user_001",
+ "name": "Jane Doe",
+ "email": "jane.doe@example.com",
+ },
)
"""
_response = self._raw_client.notify_new_conversation(
@@ -91,7 +90,7 @@ def notify_new_message(
body: str,
event_id: str,
external_conversation_id: str,
- contact: CustomChannelContact,
+ contact: CustomChannelContactParams,
request_options: typing.Optional[RequestOptions] = None,
) -> CustomChannelNotificationResponse:
"""
@@ -109,7 +108,7 @@ def notify_new_message(
external_conversation_id : str
Identifier for the conversation in your application.
- contact : CustomChannelContact
+ contact : CustomChannelContactParams
request_options : typing.Optional[RequestOptions]
Request-specific configuration.
@@ -122,7 +121,6 @@ def notify_new_message(
Examples
--------
from intercom import Intercom
- from intercom.unstable import CustomChannelContact
client = Intercom(
token="YOUR_TOKEN",
@@ -130,12 +128,12 @@ def notify_new_message(
client.unstable.custom_channel_events.notify_new_message(
event_id="evt_54321",
external_conversation_id="conv_98765",
- contact=CustomChannelContact(
- type="user",
- external_id="user_002",
- name="John Smith",
- email="john.smith@example.com",
- ),
+ contact={
+ "type": "user",
+ "external_id": "user_002",
+ "name": "John Smith",
+ "email": "john.smith@example.com",
+ },
body="Hello, I need help with my order.",
)
"""
@@ -154,7 +152,7 @@ def notify_quick_reply_selected(
quick_reply_option_id: str,
event_id: str,
external_conversation_id: str,
- contact: CustomChannelContact,
+ contact: CustomChannelContactParams,
request_options: typing.Optional[RequestOptions] = None,
) -> CustomChannelNotificationResponse:
"""
@@ -172,7 +170,7 @@ def notify_quick_reply_selected(
external_conversation_id : str
Identifier for the conversation in your application.
- contact : CustomChannelContact
+ contact : CustomChannelContactParams
request_options : typing.Optional[RequestOptions]
Request-specific configuration.
@@ -185,7 +183,6 @@ def notify_quick_reply_selected(
Examples
--------
from intercom import Intercom
- from intercom.unstable import CustomChannelContact
client = Intercom(
token="YOUR_TOKEN",
@@ -193,12 +190,12 @@ def notify_quick_reply_selected(
client.unstable.custom_channel_events.notify_quick_reply_selected(
event_id="evt_67890",
external_conversation_id="conv_13579",
- contact=CustomChannelContact(
- type="user",
- external_id="user_003",
- name="Alice Example",
- email="alice@example.com",
- ),
+ contact={
+ "type": "user",
+ "external_id": "user_003",
+ "name": "Alice Example",
+ "email": "alice@example.com",
+ },
quick_reply_option_id="1234",
)
"""
@@ -214,10 +211,10 @@ def notify_quick_reply_selected(
def notify_attribute_collected(
self,
*,
- attribute: CustomChannelAttribute,
+ attribute: CustomChannelAttributeParams,
event_id: str,
external_conversation_id: str,
- contact: CustomChannelContact,
+ contact: CustomChannelContactParams,
request_options: typing.Optional[RequestOptions] = None,
) -> CustomChannelNotificationResponse:
"""
@@ -226,7 +223,7 @@ def notify_attribute_collected(
Parameters
----------
- attribute : CustomChannelAttribute
+ attribute : CustomChannelAttributeParams
event_id : str
Unique identifier for the event.
@@ -234,7 +231,7 @@ def notify_attribute_collected(
external_conversation_id : str
Identifier for the conversation in your application.
- contact : CustomChannelContact
+ contact : CustomChannelContactParams
request_options : typing.Optional[RequestOptions]
Request-specific configuration.
@@ -247,7 +244,6 @@ def notify_attribute_collected(
Examples
--------
from intercom import Intercom
- from intercom.unstable import CustomChannelAttribute, CustomChannelContact
client = Intercom(
token="YOUR_TOKEN",
@@ -255,16 +251,13 @@ def notify_attribute_collected(
client.unstable.custom_channel_events.notify_attribute_collected(
event_id="evt_24680",
external_conversation_id="conv_11223",
- contact=CustomChannelContact(
- type="user",
- external_id="user_004",
- name="Bob Example",
- email="bob@example.com",
- ),
- attribute=CustomChannelAttribute(
- id="shipping_address",
- value="123 Main St, Springfield",
- ),
+ contact={
+ "type": "user",
+ "external_id": "user_004",
+ "name": "Bob Example",
+ "email": "bob@example.com",
+ },
+ attribute={"id": "shipping_address", "value": "123 Main St, Springfield"},
)
"""
_response = self._raw_client.notify_attribute_collected(
@@ -297,7 +290,7 @@ async def notify_new_conversation(
*,
event_id: str,
external_conversation_id: str,
- contact: CustomChannelContact,
+ contact: CustomChannelContactParams,
request_options: typing.Optional[RequestOptions] = None,
) -> CustomChannelNotificationResponse:
"""
@@ -312,7 +305,7 @@ async def notify_new_conversation(
external_conversation_id : str
Identifier for the conversation in your application.
- contact : CustomChannelContact
+ contact : CustomChannelContactParams
request_options : typing.Optional[RequestOptions]
Request-specific configuration.
@@ -327,7 +320,6 @@ async def notify_new_conversation(
import asyncio
from intercom import AsyncIntercom
- from intercom.unstable import CustomChannelContact
client = AsyncIntercom(
token="YOUR_TOKEN",
@@ -338,12 +330,12 @@ async def main() -> None:
await client.unstable.custom_channel_events.notify_new_conversation(
event_id="evt_12345",
external_conversation_id="conv_67890",
- contact=CustomChannelContact(
- type="user",
- external_id="user_001",
- name="Jane Doe",
- email="jane.doe@example.com",
- ),
+ contact={
+ "type": "user",
+ "external_id": "user_001",
+ "name": "Jane Doe",
+ "email": "jane.doe@example.com",
+ },
)
@@ -363,7 +355,7 @@ async def notify_new_message(
body: str,
event_id: str,
external_conversation_id: str,
- contact: CustomChannelContact,
+ contact: CustomChannelContactParams,
request_options: typing.Optional[RequestOptions] = None,
) -> CustomChannelNotificationResponse:
"""
@@ -381,7 +373,7 @@ async def notify_new_message(
external_conversation_id : str
Identifier for the conversation in your application.
- contact : CustomChannelContact
+ contact : CustomChannelContactParams
request_options : typing.Optional[RequestOptions]
Request-specific configuration.
@@ -396,7 +388,6 @@ async def notify_new_message(
import asyncio
from intercom import AsyncIntercom
- from intercom.unstable import CustomChannelContact
client = AsyncIntercom(
token="YOUR_TOKEN",
@@ -407,12 +398,12 @@ async def main() -> None:
await client.unstable.custom_channel_events.notify_new_message(
event_id="evt_54321",
external_conversation_id="conv_98765",
- contact=CustomChannelContact(
- type="user",
- external_id="user_002",
- name="John Smith",
- email="john.smith@example.com",
- ),
+ contact={
+ "type": "user",
+ "external_id": "user_002",
+ "name": "John Smith",
+ "email": "john.smith@example.com",
+ },
body="Hello, I need help with my order.",
)
@@ -434,7 +425,7 @@ async def notify_quick_reply_selected(
quick_reply_option_id: str,
event_id: str,
external_conversation_id: str,
- contact: CustomChannelContact,
+ contact: CustomChannelContactParams,
request_options: typing.Optional[RequestOptions] = None,
) -> CustomChannelNotificationResponse:
"""
@@ -452,7 +443,7 @@ async def notify_quick_reply_selected(
external_conversation_id : str
Identifier for the conversation in your application.
- contact : CustomChannelContact
+ contact : CustomChannelContactParams
request_options : typing.Optional[RequestOptions]
Request-specific configuration.
@@ -467,7 +458,6 @@ async def notify_quick_reply_selected(
import asyncio
from intercom import AsyncIntercom
- from intercom.unstable import CustomChannelContact
client = AsyncIntercom(
token="YOUR_TOKEN",
@@ -478,12 +468,12 @@ async def main() -> None:
await client.unstable.custom_channel_events.notify_quick_reply_selected(
event_id="evt_67890",
external_conversation_id="conv_13579",
- contact=CustomChannelContact(
- type="user",
- external_id="user_003",
- name="Alice Example",
- email="alice@example.com",
- ),
+ contact={
+ "type": "user",
+ "external_id": "user_003",
+ "name": "Alice Example",
+ "email": "alice@example.com",
+ },
quick_reply_option_id="1234",
)
@@ -502,10 +492,10 @@ async def main() -> None:
async def notify_attribute_collected(
self,
*,
- attribute: CustomChannelAttribute,
+ attribute: CustomChannelAttributeParams,
event_id: str,
external_conversation_id: str,
- contact: CustomChannelContact,
+ contact: CustomChannelContactParams,
request_options: typing.Optional[RequestOptions] = None,
) -> CustomChannelNotificationResponse:
"""
@@ -514,7 +504,7 @@ async def notify_attribute_collected(
Parameters
----------
- attribute : CustomChannelAttribute
+ attribute : CustomChannelAttributeParams
event_id : str
Unique identifier for the event.
@@ -522,7 +512,7 @@ async def notify_attribute_collected(
external_conversation_id : str
Identifier for the conversation in your application.
- contact : CustomChannelContact
+ contact : CustomChannelContactParams
request_options : typing.Optional[RequestOptions]
Request-specific configuration.
@@ -537,7 +527,6 @@ async def notify_attribute_collected(
import asyncio
from intercom import AsyncIntercom
- from intercom.unstable import CustomChannelAttribute, CustomChannelContact
client = AsyncIntercom(
token="YOUR_TOKEN",
@@ -548,16 +537,16 @@ async def main() -> None:
await client.unstable.custom_channel_events.notify_attribute_collected(
event_id="evt_24680",
external_conversation_id="conv_11223",
- contact=CustomChannelContact(
- type="user",
- external_id="user_004",
- name="Bob Example",
- email="bob@example.com",
- ),
- attribute=CustomChannelAttribute(
- id="shipping_address",
- value="123 Main St, Springfield",
- ),
+ contact={
+ "type": "user",
+ "external_id": "user_004",
+ "name": "Bob Example",
+ "email": "bob@example.com",
+ },
+ attribute={
+ "id": "shipping_address",
+ "value": "123 Main St, Springfield",
+ },
)
diff --git a/src/intercom/unstable/custom_channel_events/raw_client.py b/src/intercom/unstable/custom_channel_events/raw_client.py
index 6ddaa90..62405aa 100644
--- a/src/intercom/unstable/custom_channel_events/raw_client.py
+++ b/src/intercom/unstable/custom_channel_events/raw_client.py
@@ -13,8 +13,8 @@
from ..errors.not_found_error import NotFoundError
from ..errors.unauthorized_error import UnauthorizedError
from ..errors.unprocessable_entity_error import UnprocessableEntityError
-from ..types.custom_channel_attribute import CustomChannelAttribute
-from ..types.custom_channel_contact import CustomChannelContact
+from ..requests.custom_channel_attribute import CustomChannelAttributeParams
+from ..requests.custom_channel_contact import CustomChannelContactParams
from ..types.custom_channel_notification_response import CustomChannelNotificationResponse
from ..types.error import Error
@@ -31,7 +31,7 @@ def notify_new_conversation(
*,
event_id: str,
external_conversation_id: str,
- contact: CustomChannelContact,
+ contact: CustomChannelContactParams,
request_options: typing.Optional[RequestOptions] = None,
) -> HttpResponse[CustomChannelNotificationResponse]:
"""
@@ -46,7 +46,7 @@ def notify_new_conversation(
external_conversation_id : str
Identifier for the conversation in your application.
- contact : CustomChannelContact
+ contact : CustomChannelContactParams
request_options : typing.Optional[RequestOptions]
Request-specific configuration.
@@ -63,7 +63,7 @@ def notify_new_conversation(
"event_id": event_id,
"external_conversation_id": external_conversation_id,
"contact": convert_and_respect_annotation_metadata(
- object_=contact, annotation=CustomChannelContact, direction="write"
+ object_=contact, annotation=CustomChannelContactParams, direction="write"
),
},
headers={
@@ -137,7 +137,7 @@ def notify_new_message(
body: str,
event_id: str,
external_conversation_id: str,
- contact: CustomChannelContact,
+ contact: CustomChannelContactParams,
request_options: typing.Optional[RequestOptions] = None,
) -> HttpResponse[CustomChannelNotificationResponse]:
"""
@@ -155,7 +155,7 @@ def notify_new_message(
external_conversation_id : str
Identifier for the conversation in your application.
- contact : CustomChannelContact
+ contact : CustomChannelContactParams
request_options : typing.Optional[RequestOptions]
Request-specific configuration.
@@ -173,7 +173,7 @@ def notify_new_message(
"event_id": event_id,
"external_conversation_id": external_conversation_id,
"contact": convert_and_respect_annotation_metadata(
- object_=contact, annotation=CustomChannelContact, direction="write"
+ object_=contact, annotation=CustomChannelContactParams, direction="write"
),
},
headers={
@@ -247,7 +247,7 @@ def notify_quick_reply_selected(
quick_reply_option_id: str,
event_id: str,
external_conversation_id: str,
- contact: CustomChannelContact,
+ contact: CustomChannelContactParams,
request_options: typing.Optional[RequestOptions] = None,
) -> HttpResponse[CustomChannelNotificationResponse]:
"""
@@ -265,7 +265,7 @@ def notify_quick_reply_selected(
external_conversation_id : str
Identifier for the conversation in your application.
- contact : CustomChannelContact
+ contact : CustomChannelContactParams
request_options : typing.Optional[RequestOptions]
Request-specific configuration.
@@ -283,7 +283,7 @@ def notify_quick_reply_selected(
"event_id": event_id,
"external_conversation_id": external_conversation_id,
"contact": convert_and_respect_annotation_metadata(
- object_=contact, annotation=CustomChannelContact, direction="write"
+ object_=contact, annotation=CustomChannelContactParams, direction="write"
),
},
headers={
@@ -354,10 +354,10 @@ def notify_quick_reply_selected(
def notify_attribute_collected(
self,
*,
- attribute: CustomChannelAttribute,
+ attribute: CustomChannelAttributeParams,
event_id: str,
external_conversation_id: str,
- contact: CustomChannelContact,
+ contact: CustomChannelContactParams,
request_options: typing.Optional[RequestOptions] = None,
) -> HttpResponse[CustomChannelNotificationResponse]:
"""
@@ -366,7 +366,7 @@ def notify_attribute_collected(
Parameters
----------
- attribute : CustomChannelAttribute
+ attribute : CustomChannelAttributeParams
event_id : str
Unique identifier for the event.
@@ -374,7 +374,7 @@ def notify_attribute_collected(
external_conversation_id : str
Identifier for the conversation in your application.
- contact : CustomChannelContact
+ contact : CustomChannelContactParams
request_options : typing.Optional[RequestOptions]
Request-specific configuration.
@@ -389,12 +389,12 @@ def notify_attribute_collected(
method="POST",
json={
"attribute": convert_and_respect_annotation_metadata(
- object_=attribute, annotation=CustomChannelAttribute, direction="write"
+ object_=attribute, annotation=CustomChannelAttributeParams, direction="write"
),
"event_id": event_id,
"external_conversation_id": external_conversation_id,
"contact": convert_and_respect_annotation_metadata(
- object_=contact, annotation=CustomChannelContact, direction="write"
+ object_=contact, annotation=CustomChannelContactParams, direction="write"
),
},
headers={
@@ -472,7 +472,7 @@ async def notify_new_conversation(
*,
event_id: str,
external_conversation_id: str,
- contact: CustomChannelContact,
+ contact: CustomChannelContactParams,
request_options: typing.Optional[RequestOptions] = None,
) -> AsyncHttpResponse[CustomChannelNotificationResponse]:
"""
@@ -487,7 +487,7 @@ async def notify_new_conversation(
external_conversation_id : str
Identifier for the conversation in your application.
- contact : CustomChannelContact
+ contact : CustomChannelContactParams
request_options : typing.Optional[RequestOptions]
Request-specific configuration.
@@ -504,7 +504,7 @@ async def notify_new_conversation(
"event_id": event_id,
"external_conversation_id": external_conversation_id,
"contact": convert_and_respect_annotation_metadata(
- object_=contact, annotation=CustomChannelContact, direction="write"
+ object_=contact, annotation=CustomChannelContactParams, direction="write"
),
},
headers={
@@ -578,7 +578,7 @@ async def notify_new_message(
body: str,
event_id: str,
external_conversation_id: str,
- contact: CustomChannelContact,
+ contact: CustomChannelContactParams,
request_options: typing.Optional[RequestOptions] = None,
) -> AsyncHttpResponse[CustomChannelNotificationResponse]:
"""
@@ -596,7 +596,7 @@ async def notify_new_message(
external_conversation_id : str
Identifier for the conversation in your application.
- contact : CustomChannelContact
+ contact : CustomChannelContactParams
request_options : typing.Optional[RequestOptions]
Request-specific configuration.
@@ -614,7 +614,7 @@ async def notify_new_message(
"event_id": event_id,
"external_conversation_id": external_conversation_id,
"contact": convert_and_respect_annotation_metadata(
- object_=contact, annotation=CustomChannelContact, direction="write"
+ object_=contact, annotation=CustomChannelContactParams, direction="write"
),
},
headers={
@@ -688,7 +688,7 @@ async def notify_quick_reply_selected(
quick_reply_option_id: str,
event_id: str,
external_conversation_id: str,
- contact: CustomChannelContact,
+ contact: CustomChannelContactParams,
request_options: typing.Optional[RequestOptions] = None,
) -> AsyncHttpResponse[CustomChannelNotificationResponse]:
"""
@@ -706,7 +706,7 @@ async def notify_quick_reply_selected(
external_conversation_id : str
Identifier for the conversation in your application.
- contact : CustomChannelContact
+ contact : CustomChannelContactParams
request_options : typing.Optional[RequestOptions]
Request-specific configuration.
@@ -724,7 +724,7 @@ async def notify_quick_reply_selected(
"event_id": event_id,
"external_conversation_id": external_conversation_id,
"contact": convert_and_respect_annotation_metadata(
- object_=contact, annotation=CustomChannelContact, direction="write"
+ object_=contact, annotation=CustomChannelContactParams, direction="write"
),
},
headers={
@@ -795,10 +795,10 @@ async def notify_quick_reply_selected(
async def notify_attribute_collected(
self,
*,
- attribute: CustomChannelAttribute,
+ attribute: CustomChannelAttributeParams,
event_id: str,
external_conversation_id: str,
- contact: CustomChannelContact,
+ contact: CustomChannelContactParams,
request_options: typing.Optional[RequestOptions] = None,
) -> AsyncHttpResponse[CustomChannelNotificationResponse]:
"""
@@ -807,7 +807,7 @@ async def notify_attribute_collected(
Parameters
----------
- attribute : CustomChannelAttribute
+ attribute : CustomChannelAttributeParams
event_id : str
Unique identifier for the event.
@@ -815,7 +815,7 @@ async def notify_attribute_collected(
external_conversation_id : str
Identifier for the conversation in your application.
- contact : CustomChannelContact
+ contact : CustomChannelContactParams
request_options : typing.Optional[RequestOptions]
Request-specific configuration.
@@ -830,12 +830,12 @@ async def notify_attribute_collected(
method="POST",
json={
"attribute": convert_and_respect_annotation_metadata(
- object_=attribute, annotation=CustomChannelAttribute, direction="write"
+ object_=attribute, annotation=CustomChannelAttributeParams, direction="write"
),
"event_id": event_id,
"external_conversation_id": external_conversation_id,
"contact": convert_and_respect_annotation_metadata(
- object_=contact, annotation=CustomChannelContact, direction="write"
+ object_=contact, annotation=CustomChannelContactParams, direction="write"
),
},
headers={
diff --git a/src/intercom/unstable/custom_object_instances/__init__.py b/src/intercom/unstable/custom_object_instances/__init__.py
index 84e0f61..072e394 100644
--- a/src/intercom/unstable/custom_object_instances/__init__.py
+++ b/src/intercom/unstable/custom_object_instances/__init__.py
@@ -3,5 +3,6 @@
# isort: skip_file
from .types import CustomObjectInstance
+from .requests import CustomObjectInstanceParams
-__all__ = ["CustomObjectInstance"]
+__all__ = ["CustomObjectInstance", "CustomObjectInstanceParams"]
diff --git a/src/intercom/unstable/custom_object_instances/requests/__init__.py b/src/intercom/unstable/custom_object_instances/requests/__init__.py
new file mode 100644
index 0000000..32411bf
--- /dev/null
+++ b/src/intercom/unstable/custom_object_instances/requests/__init__.py
@@ -0,0 +1,7 @@
+# This file was auto-generated by Fern from our API Definition.
+
+# isort: skip_file
+
+from .custom_object_instance import CustomObjectInstanceParams
+
+__all__ = ["CustomObjectInstanceParams"]
diff --git a/src/intercom/unstable/custom_object_instances/requests/custom_object_instance.py b/src/intercom/unstable/custom_object_instances/requests/custom_object_instance.py
new file mode 100644
index 0000000..4ad190d
--- /dev/null
+++ b/src/intercom/unstable/custom_object_instances/requests/custom_object_instance.py
@@ -0,0 +1,51 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing
+
+import typing_extensions
+
+
+class CustomObjectInstanceParams(typing_extensions.TypedDict):
+ """
+ A Custom Object Instance represents an instance of a custom object type. This allows you to create and set custom attributes to store data about your customers that is not already captured by Intercom. The parent object includes recommended default attributes and you can add your own custom attributes.
+ """
+
+ id: typing_extensions.NotRequired[str]
+ """
+ The Intercom defined id representing the custom object instance.
+ """
+
+ external_id: typing_extensions.NotRequired[str]
+ """
+ The id you have defined for the custom object instance.
+ """
+
+ external_created_at: typing_extensions.NotRequired[int]
+ """
+ The time when the Custom Object instance was created in the external system it originated from.
+ """
+
+ external_updated_at: typing_extensions.NotRequired[int]
+ """
+ The time when the Custom Object instance was last updated in the external system it originated from.
+ """
+
+ created_at: typing_extensions.NotRequired[int]
+ """
+ The time the attribute was created as a UTC Unix timestamp
+ """
+
+ updated_at: typing_extensions.NotRequired[int]
+ """
+ The time the attribute was last updated as a UTC Unix timestamp
+ """
+
+ type: typing_extensions.NotRequired[str]
+ """
+ The identifier of the custom object type that defines the structure of the custom object instance.
+ """
+
+ custom_attributes: typing_extensions.NotRequired[typing.Dict[str, str]]
+ """
+ The custom attributes you have set on the custom object instance.
+ """
diff --git a/src/intercom/unstable/data_attributes/__init__.py b/src/intercom/unstable/data_attributes/__init__.py
index de4ec31..3b249ff 100644
--- a/src/intercom/unstable/data_attributes/__init__.py
+++ b/src/intercom/unstable/data_attributes/__init__.py
@@ -10,6 +10,7 @@
DataAttributeModel,
LisDataAttributesRequestModel,
)
+from .requests import DataAttributeParams
__all__ = [
"CreateDataAttributeRequestDataType",
@@ -17,5 +18,6 @@
"DataAttribute",
"DataAttributeDataType",
"DataAttributeModel",
+ "DataAttributeParams",
"LisDataAttributesRequestModel",
]
diff --git a/src/intercom/unstable/data_attributes/requests/__init__.py b/src/intercom/unstable/data_attributes/requests/__init__.py
new file mode 100644
index 0000000..bf6b49b
--- /dev/null
+++ b/src/intercom/unstable/data_attributes/requests/__init__.py
@@ -0,0 +1,7 @@
+# This file was auto-generated by Fern from our API Definition.
+
+# isort: skip_file
+
+from .data_attribute import DataAttributeParams
+
+__all__ = ["DataAttributeParams"]
diff --git a/src/intercom/unstable/data_attributes/requests/data_attribute.py b/src/intercom/unstable/data_attributes/requests/data_attribute.py
new file mode 100644
index 0000000..25236f2
--- /dev/null
+++ b/src/intercom/unstable/data_attributes/requests/data_attribute.py
@@ -0,0 +1,98 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing
+
+import typing_extensions
+from ..types.data_attribute_data_type import DataAttributeDataType
+from ..types.data_attribute_model import DataAttributeModel
+
+
+class DataAttributeParams(typing_extensions.TypedDict):
+ """
+ Data Attributes are metadata used to describe your contact, company and conversation models. These include standard and custom attributes. By using the data attributes endpoint, you can get the global list of attributes for your workspace, as well as create and archive custom attributes.
+ """
+
+ type: typing_extensions.NotRequired[typing.Literal["data_attribute"]]
+ """
+ Value is `data_attribute`.
+ """
+
+ id: typing_extensions.NotRequired[int]
+ """
+ The unique identifier for the data attribute which is given by Intercom. Only available for custom attributes.
+ """
+
+ model: typing_extensions.NotRequired[DataAttributeModel]
+ """
+ Value is `contact` for user/lead attributes and `company` for company attributes.
+ """
+
+ name: typing_extensions.NotRequired[str]
+ """
+ Name of the attribute.
+ """
+
+ full_name: typing_extensions.NotRequired[str]
+ """
+ Full name of the attribute. Should match the name unless it's a nested attribute. We can split full_name on `.` to access nested user object values.
+ """
+
+ label: typing_extensions.NotRequired[str]
+ """
+ Readable name of the attribute (i.e. name you see in the UI)
+ """
+
+ description: typing_extensions.NotRequired[str]
+ """
+ Readable description of the attribute.
+ """
+
+ data_type: typing_extensions.NotRequired[DataAttributeDataType]
+ """
+ The data type of the attribute.
+ """
+
+ options: typing_extensions.NotRequired[typing.Sequence[str]]
+ """
+ List of predefined options for attribute value.
+ """
+
+ api_writable: typing_extensions.NotRequired[bool]
+ """
+ Can this attribute be updated through API
+ """
+
+ messenger_writable: typing_extensions.NotRequired[bool]
+ """
+ Can this attribute be updated by the Messenger
+ """
+
+ ui_writable: typing_extensions.NotRequired[bool]
+ """
+ Can this attribute be updated in the UI
+ """
+
+ custom: typing_extensions.NotRequired[bool]
+ """
+ Set to true if this is a CDA
+ """
+
+ archived: typing_extensions.NotRequired[bool]
+ """
+ Is this attribute archived. (Only applicable to CDAs)
+ """
+
+ created_at: typing_extensions.NotRequired[int]
+ """
+ The time the attribute was created as a UTC Unix timestamp
+ """
+
+ updated_at: typing_extensions.NotRequired[int]
+ """
+ The time the attribute was last updated as a UTC Unix timestamp
+ """
+
+ admin_id: typing_extensions.NotRequired[str]
+ """
+ Teammate who created the attribute. Only applicable to CDAs
+ """
diff --git a/src/intercom/unstable/data_events/__init__.py b/src/intercom/unstable/data_events/__init__.py
index ff9f993..c14786b 100644
--- a/src/intercom/unstable/data_events/__init__.py
+++ b/src/intercom/unstable/data_events/__init__.py
@@ -10,12 +10,26 @@
LisDataEventsRequestFilterIntercomUserId,
LisDataEventsRequestFilterUserId,
)
+from .requests import (
+ CreateDataEventSummariesRequestEventSummariesParams,
+ DataEventParams,
+ LisDataEventsRequestFilterEmailParams,
+ LisDataEventsRequestFilterIntercomUserIdParams,
+ LisDataEventsRequestFilterParams,
+ LisDataEventsRequestFilterUserIdParams,
+)
__all__ = [
"CreateDataEventSummariesRequestEventSummaries",
+ "CreateDataEventSummariesRequestEventSummariesParams",
"DataEvent",
+ "DataEventParams",
"LisDataEventsRequestFilter",
"LisDataEventsRequestFilterEmail",
+ "LisDataEventsRequestFilterEmailParams",
"LisDataEventsRequestFilterIntercomUserId",
+ "LisDataEventsRequestFilterIntercomUserIdParams",
+ "LisDataEventsRequestFilterParams",
"LisDataEventsRequestFilterUserId",
+ "LisDataEventsRequestFilterUserIdParams",
]
diff --git a/src/intercom/unstable/data_events/client.py b/src/intercom/unstable/data_events/client.py
index 99500eb..de65c81 100644
--- a/src/intercom/unstable/data_events/client.py
+++ b/src/intercom/unstable/data_events/client.py
@@ -7,8 +7,10 @@
from ...types.create_data_event_request_two import CreateDataEventRequestTwo
from ..types.data_event_summary import DataEventSummary
from .raw_client import AsyncRawDataEventsClient, RawDataEventsClient
-from .types.create_data_event_summaries_request_event_summaries import CreateDataEventSummariesRequestEventSummaries
-from .types.lis_data_events_request_filter import LisDataEventsRequestFilter
+from .requests.create_data_event_summaries_request_event_summaries import (
+ CreateDataEventSummariesRequestEventSummariesParams,
+)
+from .requests.lis_data_events_request_filter import LisDataEventsRequestFilterParams
# this is used as the default value for optional parameters
OMIT = typing.cast(typing.Any, ...)
@@ -32,7 +34,7 @@ def with_raw_response(self) -> RawDataEventsClient:
def lis_data_events(
self,
*,
- filter: LisDataEventsRequestFilter,
+ filter: LisDataEventsRequestFilterParams,
type: str,
summary: typing.Optional[bool] = None,
request_options: typing.Optional[RequestOptions] = None,
@@ -55,7 +57,7 @@ def lis_data_events(
Parameters
----------
- filter : LisDataEventsRequestFilter
+ filter : LisDataEventsRequestFilterParams
type : str
The value must be user
@@ -74,15 +76,12 @@ def lis_data_events(
Examples
--------
from intercom import Intercom
- from intercom.unstable.data_events import LisDataEventsRequestFilterUserId
client = Intercom(
token="YOUR_TOKEN",
)
client.unstable.data_events.lis_data_events(
- filter=LisDataEventsRequestFilterUserId(
- user_id="user_id",
- ),
+ filter={"user_id": "user_id"},
type="type",
)
"""
@@ -166,7 +165,7 @@ def data_event_summaries(
self,
*,
user_id: typing.Optional[str] = OMIT,
- event_summaries: typing.Optional[CreateDataEventSummariesRequestEventSummaries] = OMIT,
+ event_summaries: typing.Optional[CreateDataEventSummariesRequestEventSummariesParams] = OMIT,
request_options: typing.Optional[RequestOptions] = None,
) -> None:
"""
@@ -177,7 +176,7 @@ def data_event_summaries(
user_id : typing.Optional[str]
Your identifier for the user.
- event_summaries : typing.Optional[CreateDataEventSummariesRequestEventSummaries]
+ event_summaries : typing.Optional[CreateDataEventSummariesRequestEventSummariesParams]
A list of event summaries for the user. Each event summary should contain the event name, the time the event occurred, and the number of times the event occurred. The event name should be a past tense 'verb-noun' combination, to improve readability, for example `updated-plan`.
request_options : typing.Optional[RequestOptions]
@@ -220,7 +219,7 @@ def with_raw_response(self) -> AsyncRawDataEventsClient:
async def lis_data_events(
self,
*,
- filter: LisDataEventsRequestFilter,
+ filter: LisDataEventsRequestFilterParams,
type: str,
summary: typing.Optional[bool] = None,
request_options: typing.Optional[RequestOptions] = None,
@@ -243,7 +242,7 @@ async def lis_data_events(
Parameters
----------
- filter : LisDataEventsRequestFilter
+ filter : LisDataEventsRequestFilterParams
type : str
The value must be user
@@ -264,7 +263,6 @@ async def lis_data_events(
import asyncio
from intercom import AsyncIntercom
- from intercom.unstable.data_events import LisDataEventsRequestFilterUserId
client = AsyncIntercom(
token="YOUR_TOKEN",
@@ -273,9 +271,7 @@ async def lis_data_events(
async def main() -> None:
await client.unstable.data_events.lis_data_events(
- filter=LisDataEventsRequestFilterUserId(
- user_id="user_id",
- ),
+ filter={"user_id": "user_id"},
type="type",
)
@@ -370,7 +366,7 @@ async def data_event_summaries(
self,
*,
user_id: typing.Optional[str] = OMIT,
- event_summaries: typing.Optional[CreateDataEventSummariesRequestEventSummaries] = OMIT,
+ event_summaries: typing.Optional[CreateDataEventSummariesRequestEventSummariesParams] = OMIT,
request_options: typing.Optional[RequestOptions] = None,
) -> None:
"""
@@ -381,7 +377,7 @@ async def data_event_summaries(
user_id : typing.Optional[str]
Your identifier for the user.
- event_summaries : typing.Optional[CreateDataEventSummariesRequestEventSummaries]
+ event_summaries : typing.Optional[CreateDataEventSummariesRequestEventSummariesParams]
A list of event summaries for the user. Each event summary should contain the event name, the time the event occurred, and the number of times the event occurred. The event name should be a past tense 'verb-noun' combination, to improve readability, for example `updated-plan`.
request_options : typing.Optional[RequestOptions]
diff --git a/src/intercom/unstable/data_events/raw_client.py b/src/intercom/unstable/data_events/raw_client.py
index 8cb28e7..1cc0cd3 100644
--- a/src/intercom/unstable/data_events/raw_client.py
+++ b/src/intercom/unstable/data_events/raw_client.py
@@ -13,8 +13,10 @@
from ..errors.unauthorized_error import UnauthorizedError
from ..types.data_event_summary import DataEventSummary
from ..types.error import Error
-from .types.create_data_event_summaries_request_event_summaries import CreateDataEventSummariesRequestEventSummaries
-from .types.lis_data_events_request_filter import LisDataEventsRequestFilter
+from .requests.create_data_event_summaries_request_event_summaries import (
+ CreateDataEventSummariesRequestEventSummariesParams,
+)
+from .requests.lis_data_events_request_filter import LisDataEventsRequestFilterParams
# this is used as the default value for optional parameters
OMIT = typing.cast(typing.Any, ...)
@@ -27,7 +29,7 @@ def __init__(self, *, client_wrapper: SyncClientWrapper):
def lis_data_events(
self,
*,
- filter: LisDataEventsRequestFilter,
+ filter: LisDataEventsRequestFilterParams,
type: str,
summary: typing.Optional[bool] = None,
request_options: typing.Optional[RequestOptions] = None,
@@ -50,7 +52,7 @@ def lis_data_events(
Parameters
----------
- filter : LisDataEventsRequestFilter
+ filter : LisDataEventsRequestFilterParams
type : str
The value must be user
@@ -71,7 +73,11 @@ def lis_data_events(
method="GET",
params={
"filter": convert_and_respect_annotation_metadata(
- object_=filter, annotation=LisDataEventsRequestFilter, direction="write"
+ object_=convert_and_respect_annotation_metadata(
+ object_=filter, annotation=LisDataEventsRequestFilterParams, direction="write"
+ ),
+ annotation=LisDataEventsRequestFilterParams,
+ direction="write",
),
"type": type,
"summary": summary,
@@ -194,7 +200,7 @@ def data_event_summaries(
self,
*,
user_id: typing.Optional[str] = OMIT,
- event_summaries: typing.Optional[CreateDataEventSummariesRequestEventSummaries] = OMIT,
+ event_summaries: typing.Optional[CreateDataEventSummariesRequestEventSummariesParams] = OMIT,
request_options: typing.Optional[RequestOptions] = None,
) -> HttpResponse[None]:
"""
@@ -205,7 +211,7 @@ def data_event_summaries(
user_id : typing.Optional[str]
Your identifier for the user.
- event_summaries : typing.Optional[CreateDataEventSummariesRequestEventSummaries]
+ event_summaries : typing.Optional[CreateDataEventSummariesRequestEventSummariesParams]
A list of event summaries for the user. Each event summary should contain the event name, the time the event occurred, and the number of times the event occurred. The event name should be a past tense 'verb-noun' combination, to improve readability, for example `updated-plan`.
request_options : typing.Optional[RequestOptions]
@@ -221,7 +227,9 @@ def data_event_summaries(
json={
"user_id": user_id,
"event_summaries": convert_and_respect_annotation_metadata(
- object_=event_summaries, annotation=CreateDataEventSummariesRequestEventSummaries, direction="write"
+ object_=event_summaries,
+ annotation=CreateDataEventSummariesRequestEventSummariesParams,
+ direction="write",
),
},
headers={
@@ -257,7 +265,7 @@ def __init__(self, *, client_wrapper: AsyncClientWrapper):
async def lis_data_events(
self,
*,
- filter: LisDataEventsRequestFilter,
+ filter: LisDataEventsRequestFilterParams,
type: str,
summary: typing.Optional[bool] = None,
request_options: typing.Optional[RequestOptions] = None,
@@ -280,7 +288,7 @@ async def lis_data_events(
Parameters
----------
- filter : LisDataEventsRequestFilter
+ filter : LisDataEventsRequestFilterParams
type : str
The value must be user
@@ -301,7 +309,11 @@ async def lis_data_events(
method="GET",
params={
"filter": convert_and_respect_annotation_metadata(
- object_=filter, annotation=LisDataEventsRequestFilter, direction="write"
+ object_=convert_and_respect_annotation_metadata(
+ object_=filter, annotation=LisDataEventsRequestFilterParams, direction="write"
+ ),
+ annotation=LisDataEventsRequestFilterParams,
+ direction="write",
),
"type": type,
"summary": summary,
@@ -424,7 +436,7 @@ async def data_event_summaries(
self,
*,
user_id: typing.Optional[str] = OMIT,
- event_summaries: typing.Optional[CreateDataEventSummariesRequestEventSummaries] = OMIT,
+ event_summaries: typing.Optional[CreateDataEventSummariesRequestEventSummariesParams] = OMIT,
request_options: typing.Optional[RequestOptions] = None,
) -> AsyncHttpResponse[None]:
"""
@@ -435,7 +447,7 @@ async def data_event_summaries(
user_id : typing.Optional[str]
Your identifier for the user.
- event_summaries : typing.Optional[CreateDataEventSummariesRequestEventSummaries]
+ event_summaries : typing.Optional[CreateDataEventSummariesRequestEventSummariesParams]
A list of event summaries for the user. Each event summary should contain the event name, the time the event occurred, and the number of times the event occurred. The event name should be a past tense 'verb-noun' combination, to improve readability, for example `updated-plan`.
request_options : typing.Optional[RequestOptions]
@@ -451,7 +463,9 @@ async def data_event_summaries(
json={
"user_id": user_id,
"event_summaries": convert_and_respect_annotation_metadata(
- object_=event_summaries, annotation=CreateDataEventSummariesRequestEventSummaries, direction="write"
+ object_=event_summaries,
+ annotation=CreateDataEventSummariesRequestEventSummariesParams,
+ direction="write",
),
},
headers={
diff --git a/src/intercom/unstable/data_events/requests/__init__.py b/src/intercom/unstable/data_events/requests/__init__.py
new file mode 100644
index 0000000..b167f76
--- /dev/null
+++ b/src/intercom/unstable/data_events/requests/__init__.py
@@ -0,0 +1,19 @@
+# This file was auto-generated by Fern from our API Definition.
+
+# isort: skip_file
+
+from .create_data_event_summaries_request_event_summaries import CreateDataEventSummariesRequestEventSummariesParams
+from .data_event import DataEventParams
+from .lis_data_events_request_filter import LisDataEventsRequestFilterParams
+from .lis_data_events_request_filter_email import LisDataEventsRequestFilterEmailParams
+from .lis_data_events_request_filter_intercom_user_id import LisDataEventsRequestFilterIntercomUserIdParams
+from .lis_data_events_request_filter_user_id import LisDataEventsRequestFilterUserIdParams
+
+__all__ = [
+ "CreateDataEventSummariesRequestEventSummariesParams",
+ "DataEventParams",
+ "LisDataEventsRequestFilterEmailParams",
+ "LisDataEventsRequestFilterIntercomUserIdParams",
+ "LisDataEventsRequestFilterParams",
+ "LisDataEventsRequestFilterUserIdParams",
+]
diff --git a/src/intercom/unstable/data_events/requests/create_data_event_summaries_request_event_summaries.py b/src/intercom/unstable/data_events/requests/create_data_event_summaries_request_event_summaries.py
new file mode 100644
index 0000000..c775b88
--- /dev/null
+++ b/src/intercom/unstable/data_events/requests/create_data_event_summaries_request_event_summaries.py
@@ -0,0 +1,29 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing_extensions
+
+
+class CreateDataEventSummariesRequestEventSummariesParams(typing_extensions.TypedDict):
+ """
+ A list of event summaries for the user. Each event summary should contain the event name, the time the event occurred, and the number of times the event occurred. The event name should be a past tense 'verb-noun' combination, to improve readability, for example `updated-plan`.
+ """
+
+ event_name: typing_extensions.NotRequired[str]
+ """
+ The name of the event that occurred. A good event name is typically a past tense 'verb-noun' combination, to improve readability, for example `updated-plan`.
+ """
+
+ count: typing_extensions.NotRequired[int]
+ """
+ The number of times the event occurred.
+ """
+
+ first: typing_extensions.NotRequired[int]
+ """
+ The first time the event was sent
+ """
+
+ last: typing_extensions.NotRequired[int]
+ """
+ The last time the event was sent
+ """
diff --git a/src/intercom/unstable/data_events/requests/data_event.py b/src/intercom/unstable/data_events/requests/data_event.py
new file mode 100644
index 0000000..81af024
--- /dev/null
+++ b/src/intercom/unstable/data_events/requests/data_event.py
@@ -0,0 +1,51 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing
+
+import typing_extensions
+
+
+class DataEventParams(typing_extensions.TypedDict):
+ """
+ Data events are used to notify Intercom of changes to your data.
+ """
+
+ type: typing_extensions.NotRequired[typing.Literal["event"]]
+ """
+ The type of the object
+ """
+
+ event_name: str
+ """
+ The name of the event that occurred. This is presented to your App's admins when filtering and creating segments - a good event name is typically a past tense 'verb-noun' combination, to improve readability, for example `updated-plan`.
+ """
+
+ created_at: int
+ """
+ The time the event occurred as a UTC Unix timestamp
+ """
+
+ user_id: typing_extensions.NotRequired[str]
+ """
+ Your identifier for the user.
+ """
+
+ id: typing_extensions.NotRequired[str]
+ """
+ Your identifier for a lead or a user.
+ """
+
+ intercom_user_id: typing_extensions.NotRequired[str]
+ """
+ The Intercom identifier for the user.
+ """
+
+ email: typing_extensions.NotRequired[str]
+ """
+ An email address for your user. An email should only be used where your application uses email to uniquely identify users.
+ """
+
+ metadata: typing_extensions.NotRequired[typing.Dict[str, str]]
+ """
+ Optional metadata about the event.
+ """
diff --git a/src/intercom/unstable/data_events/requests/lis_data_events_request_filter.py b/src/intercom/unstable/data_events/requests/lis_data_events_request_filter.py
new file mode 100644
index 0000000..bf6199a
--- /dev/null
+++ b/src/intercom/unstable/data_events/requests/lis_data_events_request_filter.py
@@ -0,0 +1,13 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing
+
+from .lis_data_events_request_filter_email import LisDataEventsRequestFilterEmailParams
+from .lis_data_events_request_filter_intercom_user_id import LisDataEventsRequestFilterIntercomUserIdParams
+from .lis_data_events_request_filter_user_id import LisDataEventsRequestFilterUserIdParams
+
+LisDataEventsRequestFilterParams = typing.Union[
+ LisDataEventsRequestFilterUserIdParams,
+ LisDataEventsRequestFilterIntercomUserIdParams,
+ LisDataEventsRequestFilterEmailParams,
+]
diff --git a/src/intercom/unstable/data_events/requests/lis_data_events_request_filter_email.py b/src/intercom/unstable/data_events/requests/lis_data_events_request_filter_email.py
new file mode 100644
index 0000000..c19a01c
--- /dev/null
+++ b/src/intercom/unstable/data_events/requests/lis_data_events_request_filter_email.py
@@ -0,0 +1,7 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing_extensions
+
+
+class LisDataEventsRequestFilterEmailParams(typing_extensions.TypedDict):
+ email: str
diff --git a/src/intercom/unstable/data_events/requests/lis_data_events_request_filter_intercom_user_id.py b/src/intercom/unstable/data_events/requests/lis_data_events_request_filter_intercom_user_id.py
new file mode 100644
index 0000000..c71867c
--- /dev/null
+++ b/src/intercom/unstable/data_events/requests/lis_data_events_request_filter_intercom_user_id.py
@@ -0,0 +1,7 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing_extensions
+
+
+class LisDataEventsRequestFilterIntercomUserIdParams(typing_extensions.TypedDict):
+ intercom_user_id: str
diff --git a/src/intercom/unstable/data_events/requests/lis_data_events_request_filter_user_id.py b/src/intercom/unstable/data_events/requests/lis_data_events_request_filter_user_id.py
new file mode 100644
index 0000000..606e615
--- /dev/null
+++ b/src/intercom/unstable/data_events/requests/lis_data_events_request_filter_user_id.py
@@ -0,0 +1,7 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing_extensions
+
+
+class LisDataEventsRequestFilterUserIdParams(typing_extensions.TypedDict):
+ user_id: str
diff --git a/src/intercom/unstable/data_export/__init__.py b/src/intercom/unstable/data_export/__init__.py
index 0b3cdcb..08e44ac 100644
--- a/src/intercom/unstable/data_export/__init__.py
+++ b/src/intercom/unstable/data_export/__init__.py
@@ -3,5 +3,6 @@
# isort: skip_file
from .types import DataExport, DataExportStatus
+from .requests import DataExportParams
-__all__ = ["DataExport", "DataExportStatus"]
+__all__ = ["DataExport", "DataExportParams", "DataExportStatus"]
diff --git a/src/intercom/unstable/data_export/requests/__init__.py b/src/intercom/unstable/data_export/requests/__init__.py
new file mode 100644
index 0000000..0c18d5a
--- /dev/null
+++ b/src/intercom/unstable/data_export/requests/__init__.py
@@ -0,0 +1,7 @@
+# This file was auto-generated by Fern from our API Definition.
+
+# isort: skip_file
+
+from .data_export import DataExportParams
+
+__all__ = ["DataExportParams"]
diff --git a/src/intercom/unstable/data_export/requests/data_export.py b/src/intercom/unstable/data_export/requests/data_export.py
new file mode 100644
index 0000000..5b42849
--- /dev/null
+++ b/src/intercom/unstable/data_export/requests/data_export.py
@@ -0,0 +1,30 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing_extensions
+from ..types.data_export_status import DataExportStatus
+
+
+class DataExportParams(typing_extensions.TypedDict):
+ """
+ The data export api is used to view all message sent & viewed in a given timeframe.
+ """
+
+ job_identfier: typing_extensions.NotRequired[str]
+ """
+ The identifier for your job.
+ """
+
+ status: typing_extensions.NotRequired[DataExportStatus]
+ """
+ The current state of your job.
+ """
+
+ download_expires_at: typing_extensions.NotRequired[str]
+ """
+ The time after which you will not be able to access the data.
+ """
+
+ download_url: typing_extensions.NotRequired[str]
+ """
+ The location where you can download your data.
+ """
diff --git a/src/intercom/unstable/export/__init__.py b/src/intercom/unstable/export/__init__.py
index ae35bc3..2ba35e2 100644
--- a/src/intercom/unstable/export/__init__.py
+++ b/src/intercom/unstable/export/__init__.py
@@ -8,10 +8,20 @@
GetExportReportingDataGetDatasetsResponseDataItemAttributesItem,
PostExportReportingDataEnqueueResponse,
)
+from .requests import (
+ GetExportReportingDataGetDatasetsResponseDataItemAttributesItemParams,
+ GetExportReportingDataGetDatasetsResponseDataItemParams,
+ GetExportReportingDataGetDatasetsResponseParams,
+ PostExportReportingDataEnqueueResponseParams,
+)
__all__ = [
"GetExportReportingDataGetDatasetsResponse",
"GetExportReportingDataGetDatasetsResponseDataItem",
"GetExportReportingDataGetDatasetsResponseDataItemAttributesItem",
+ "GetExportReportingDataGetDatasetsResponseDataItemAttributesItemParams",
+ "GetExportReportingDataGetDatasetsResponseDataItemParams",
+ "GetExportReportingDataGetDatasetsResponseParams",
"PostExportReportingDataEnqueueResponse",
+ "PostExportReportingDataEnqueueResponseParams",
]
diff --git a/src/intercom/unstable/export/requests/__init__.py b/src/intercom/unstable/export/requests/__init__.py
new file mode 100644
index 0000000..14c02a8
--- /dev/null
+++ b/src/intercom/unstable/export/requests/__init__.py
@@ -0,0 +1,19 @@
+# This file was auto-generated by Fern from our API Definition.
+
+# isort: skip_file
+
+from .get_export_reporting_data_get_datasets_response import GetExportReportingDataGetDatasetsResponseParams
+from .get_export_reporting_data_get_datasets_response_data_item import (
+ GetExportReportingDataGetDatasetsResponseDataItemParams,
+)
+from .get_export_reporting_data_get_datasets_response_data_item_attributes_item import (
+ GetExportReportingDataGetDatasetsResponseDataItemAttributesItemParams,
+)
+from .post_export_reporting_data_enqueue_response import PostExportReportingDataEnqueueResponseParams
+
+__all__ = [
+ "GetExportReportingDataGetDatasetsResponseDataItemAttributesItemParams",
+ "GetExportReportingDataGetDatasetsResponseDataItemParams",
+ "GetExportReportingDataGetDatasetsResponseParams",
+ "PostExportReportingDataEnqueueResponseParams",
+]
diff --git a/src/intercom/unstable/export/requests/get_export_reporting_data_get_datasets_response.py b/src/intercom/unstable/export/requests/get_export_reporting_data_get_datasets_response.py
new file mode 100644
index 0000000..7bee4f3
--- /dev/null
+++ b/src/intercom/unstable/export/requests/get_export_reporting_data_get_datasets_response.py
@@ -0,0 +1,13 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing
+
+import typing_extensions
+from .get_export_reporting_data_get_datasets_response_data_item import (
+ GetExportReportingDataGetDatasetsResponseDataItemParams,
+)
+
+
+class GetExportReportingDataGetDatasetsResponseParams(typing_extensions.TypedDict):
+ type: typing_extensions.NotRequired[str]
+ data: typing_extensions.NotRequired[typing.Sequence[GetExportReportingDataGetDatasetsResponseDataItemParams]]
diff --git a/src/intercom/unstable/export/requests/get_export_reporting_data_get_datasets_response_data_item.py b/src/intercom/unstable/export/requests/get_export_reporting_data_get_datasets_response_data_item.py
new file mode 100644
index 0000000..4877a14
--- /dev/null
+++ b/src/intercom/unstable/export/requests/get_export_reporting_data_get_datasets_response_data_item.py
@@ -0,0 +1,18 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing
+
+import typing_extensions
+from .get_export_reporting_data_get_datasets_response_data_item_attributes_item import (
+ GetExportReportingDataGetDatasetsResponseDataItemAttributesItemParams,
+)
+
+
+class GetExportReportingDataGetDatasetsResponseDataItemParams(typing_extensions.TypedDict):
+ id: typing_extensions.NotRequired[str]
+ name: typing_extensions.NotRequired[str]
+ description: typing_extensions.NotRequired[str]
+ default_time_attribute_id: typing_extensions.NotRequired[str]
+ attributes: typing_extensions.NotRequired[
+ typing.Sequence[GetExportReportingDataGetDatasetsResponseDataItemAttributesItemParams]
+ ]
diff --git a/src/intercom/unstable/export/requests/get_export_reporting_data_get_datasets_response_data_item_attributes_item.py b/src/intercom/unstable/export/requests/get_export_reporting_data_get_datasets_response_data_item_attributes_item.py
new file mode 100644
index 0000000..e3d4bef
--- /dev/null
+++ b/src/intercom/unstable/export/requests/get_export_reporting_data_get_datasets_response_data_item_attributes_item.py
@@ -0,0 +1,8 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing_extensions
+
+
+class GetExportReportingDataGetDatasetsResponseDataItemAttributesItemParams(typing_extensions.TypedDict):
+ id: typing_extensions.NotRequired[str]
+ name: typing_extensions.NotRequired[str]
diff --git a/src/intercom/unstable/export/requests/post_export_reporting_data_enqueue_response.py b/src/intercom/unstable/export/requests/post_export_reporting_data_enqueue_response.py
new file mode 100644
index 0000000..7b6b5a2
--- /dev/null
+++ b/src/intercom/unstable/export/requests/post_export_reporting_data_enqueue_response.py
@@ -0,0 +1,10 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing_extensions
+
+
+class PostExportReportingDataEnqueueResponseParams(typing_extensions.TypedDict):
+ job_identifier: typing_extensions.NotRequired[str]
+ status: typing_extensions.NotRequired[str]
+ download_url: typing_extensions.NotRequired[str]
+ download_expires_at: typing_extensions.NotRequired[str]
diff --git a/src/intercom/unstable/help_center/__init__.py b/src/intercom/unstable/help_center/__init__.py
index 5b02d75..4e5d5ff 100644
--- a/src/intercom/unstable/help_center/__init__.py
+++ b/src/intercom/unstable/help_center/__init__.py
@@ -3,5 +3,6 @@
# isort: skip_file
from .types import Collection, HelpCenter, HelpCenterList
+from .requests import CollectionParams, HelpCenterListParams, HelpCenterParams
-__all__ = ["Collection", "HelpCenter", "HelpCenterList"]
+__all__ = ["Collection", "CollectionParams", "HelpCenter", "HelpCenterList", "HelpCenterListParams", "HelpCenterParams"]
diff --git a/src/intercom/unstable/help_center/client.py b/src/intercom/unstable/help_center/client.py
index c2535e9..728456f 100644
--- a/src/intercom/unstable/help_center/client.py
+++ b/src/intercom/unstable/help_center/client.py
@@ -4,9 +4,9 @@
from ...core.client_wrapper import AsyncClientWrapper, SyncClientWrapper
from ...core.request_options import RequestOptions
+from ..requests.group_translated_content import GroupTranslatedContentParams
from ..types.collection_list import CollectionList
from ..types.deleted_collection_object import DeletedCollectionObject
-from ..types.group_translated_content import GroupTranslatedContent
from .raw_client import AsyncRawHelpCenterClient, RawHelpCenterClient
from .types.collection import Collection
from .types.help_center import HelpCenter
@@ -64,7 +64,7 @@ def create_collection(
*,
name: str,
description: typing.Optional[str] = OMIT,
- translated_content: typing.Optional[GroupTranslatedContent] = OMIT,
+ translated_content: typing.Optional[GroupTranslatedContentParams] = OMIT,
parent_id: typing.Optional[str] = OMIT,
help_center_id: typing.Optional[int] = OMIT,
request_options: typing.Optional[RequestOptions] = None,
@@ -80,7 +80,7 @@ def create_collection(
description : typing.Optional[str]
The description of the collection. For multilingual collections, this will be the description of the default language's content.
- translated_content : typing.Optional[GroupTranslatedContent]
+ translated_content : typing.Optional[GroupTranslatedContentParams]
parent_id : typing.Optional[str]
The id of the parent collection. If `null` then it will be created as the first level collection.
@@ -154,7 +154,7 @@ def update_collection(
*,
name: typing.Optional[str] = OMIT,
description: typing.Optional[str] = OMIT,
- translated_content: typing.Optional[GroupTranslatedContent] = OMIT,
+ translated_content: typing.Optional[GroupTranslatedContentParams] = OMIT,
parent_id: typing.Optional[str] = OMIT,
request_options: typing.Optional[RequestOptions] = None,
) -> Collection:
@@ -172,7 +172,7 @@ def update_collection(
description : typing.Optional[str]
The description of the collection. For multilingual collections, this will be the description of the default language's content.
- translated_content : typing.Optional[GroupTranslatedContent]
+ translated_content : typing.Optional[GroupTranslatedContentParams]
parent_id : typing.Optional[str]
The id of the parent collection. If `null` then it will be updated as the first level collection.
@@ -354,7 +354,7 @@ async def create_collection(
*,
name: str,
description: typing.Optional[str] = OMIT,
- translated_content: typing.Optional[GroupTranslatedContent] = OMIT,
+ translated_content: typing.Optional[GroupTranslatedContentParams] = OMIT,
parent_id: typing.Optional[str] = OMIT,
help_center_id: typing.Optional[int] = OMIT,
request_options: typing.Optional[RequestOptions] = None,
@@ -370,7 +370,7 @@ async def create_collection(
description : typing.Optional[str]
The description of the collection. For multilingual collections, this will be the description of the default language's content.
- translated_content : typing.Optional[GroupTranslatedContent]
+ translated_content : typing.Optional[GroupTranslatedContentParams]
parent_id : typing.Optional[str]
The id of the parent collection. If `null` then it will be created as the first level collection.
@@ -462,7 +462,7 @@ async def update_collection(
*,
name: typing.Optional[str] = OMIT,
description: typing.Optional[str] = OMIT,
- translated_content: typing.Optional[GroupTranslatedContent] = OMIT,
+ translated_content: typing.Optional[GroupTranslatedContentParams] = OMIT,
parent_id: typing.Optional[str] = OMIT,
request_options: typing.Optional[RequestOptions] = None,
) -> Collection:
@@ -480,7 +480,7 @@ async def update_collection(
description : typing.Optional[str]
The description of the collection. For multilingual collections, this will be the description of the default language's content.
- translated_content : typing.Optional[GroupTranslatedContent]
+ translated_content : typing.Optional[GroupTranslatedContentParams]
parent_id : typing.Optional[str]
The id of the parent collection. If `null` then it will be updated as the first level collection.
diff --git a/src/intercom/unstable/help_center/raw_client.py b/src/intercom/unstable/help_center/raw_client.py
index ab1136e..f006455 100644
--- a/src/intercom/unstable/help_center/raw_client.py
+++ b/src/intercom/unstable/help_center/raw_client.py
@@ -13,10 +13,10 @@
from ..errors.bad_request_error import BadRequestError
from ..errors.not_found_error import NotFoundError
from ..errors.unauthorized_error import UnauthorizedError
+from ..requests.group_translated_content import GroupTranslatedContentParams
from ..types.collection_list import CollectionList
from ..types.deleted_collection_object import DeletedCollectionObject
from ..types.error import Error
-from ..types.group_translated_content import GroupTranslatedContent
from .types.collection import Collection
from .types.help_center import HelpCenter
from .types.help_center_list import HelpCenterList
@@ -83,7 +83,7 @@ def create_collection(
*,
name: str,
description: typing.Optional[str] = OMIT,
- translated_content: typing.Optional[GroupTranslatedContent] = OMIT,
+ translated_content: typing.Optional[GroupTranslatedContentParams] = OMIT,
parent_id: typing.Optional[str] = OMIT,
help_center_id: typing.Optional[int] = OMIT,
request_options: typing.Optional[RequestOptions] = None,
@@ -99,7 +99,7 @@ def create_collection(
description : typing.Optional[str]
The description of the collection. For multilingual collections, this will be the description of the default language's content.
- translated_content : typing.Optional[GroupTranslatedContent]
+ translated_content : typing.Optional[GroupTranslatedContentParams]
parent_id : typing.Optional[str]
The id of the parent collection. If `null` then it will be created as the first level collection.
@@ -122,7 +122,7 @@ def create_collection(
"name": name,
"description": description,
"translated_content": convert_and_respect_annotation_metadata(
- object_=translated_content, annotation=GroupTranslatedContent, direction="write"
+ object_=translated_content, annotation=GroupTranslatedContentParams, direction="write"
),
"parent_id": parent_id,
"help_center_id": help_center_id,
@@ -237,7 +237,7 @@ def update_collection(
*,
name: typing.Optional[str] = OMIT,
description: typing.Optional[str] = OMIT,
- translated_content: typing.Optional[GroupTranslatedContent] = OMIT,
+ translated_content: typing.Optional[GroupTranslatedContentParams] = OMIT,
parent_id: typing.Optional[str] = OMIT,
request_options: typing.Optional[RequestOptions] = None,
) -> HttpResponse[Collection]:
@@ -255,7 +255,7 @@ def update_collection(
description : typing.Optional[str]
The description of the collection. For multilingual collections, this will be the description of the default language's content.
- translated_content : typing.Optional[GroupTranslatedContent]
+ translated_content : typing.Optional[GroupTranslatedContentParams]
parent_id : typing.Optional[str]
The id of the parent collection. If `null` then it will be updated as the first level collection.
@@ -275,7 +275,7 @@ def update_collection(
"name": name,
"description": description,
"translated_content": convert_and_respect_annotation_metadata(
- object_=translated_content, annotation=GroupTranslatedContent, direction="write"
+ object_=translated_content, annotation=GroupTranslatedContentParams, direction="write"
),
"parent_id": parent_id,
},
@@ -550,7 +550,7 @@ async def create_collection(
*,
name: str,
description: typing.Optional[str] = OMIT,
- translated_content: typing.Optional[GroupTranslatedContent] = OMIT,
+ translated_content: typing.Optional[GroupTranslatedContentParams] = OMIT,
parent_id: typing.Optional[str] = OMIT,
help_center_id: typing.Optional[int] = OMIT,
request_options: typing.Optional[RequestOptions] = None,
@@ -566,7 +566,7 @@ async def create_collection(
description : typing.Optional[str]
The description of the collection. For multilingual collections, this will be the description of the default language's content.
- translated_content : typing.Optional[GroupTranslatedContent]
+ translated_content : typing.Optional[GroupTranslatedContentParams]
parent_id : typing.Optional[str]
The id of the parent collection. If `null` then it will be created as the first level collection.
@@ -589,7 +589,7 @@ async def create_collection(
"name": name,
"description": description,
"translated_content": convert_and_respect_annotation_metadata(
- object_=translated_content, annotation=GroupTranslatedContent, direction="write"
+ object_=translated_content, annotation=GroupTranslatedContentParams, direction="write"
),
"parent_id": parent_id,
"help_center_id": help_center_id,
@@ -704,7 +704,7 @@ async def update_collection(
*,
name: typing.Optional[str] = OMIT,
description: typing.Optional[str] = OMIT,
- translated_content: typing.Optional[GroupTranslatedContent] = OMIT,
+ translated_content: typing.Optional[GroupTranslatedContentParams] = OMIT,
parent_id: typing.Optional[str] = OMIT,
request_options: typing.Optional[RequestOptions] = None,
) -> AsyncHttpResponse[Collection]:
@@ -722,7 +722,7 @@ async def update_collection(
description : typing.Optional[str]
The description of the collection. For multilingual collections, this will be the description of the default language's content.
- translated_content : typing.Optional[GroupTranslatedContent]
+ translated_content : typing.Optional[GroupTranslatedContentParams]
parent_id : typing.Optional[str]
The id of the parent collection. If `null` then it will be updated as the first level collection.
@@ -742,7 +742,7 @@ async def update_collection(
"name": name,
"description": description,
"translated_content": convert_and_respect_annotation_metadata(
- object_=translated_content, annotation=GroupTranslatedContent, direction="write"
+ object_=translated_content, annotation=GroupTranslatedContentParams, direction="write"
),
"parent_id": parent_id,
},
diff --git a/src/intercom/unstable/help_center/requests/__init__.py b/src/intercom/unstable/help_center/requests/__init__.py
new file mode 100644
index 0000000..2faddfe
--- /dev/null
+++ b/src/intercom/unstable/help_center/requests/__init__.py
@@ -0,0 +1,9 @@
+# This file was auto-generated by Fern from our API Definition.
+
+# isort: skip_file
+
+from .collection import CollectionParams
+from .help_center import HelpCenterParams
+from .help_center_list import HelpCenterListParams
+
+__all__ = ["CollectionParams", "HelpCenterListParams", "HelpCenterParams"]
diff --git a/src/intercom/unstable/help_center/requests/collection.py b/src/intercom/unstable/help_center/requests/collection.py
new file mode 100644
index 0000000..7c3a587
--- /dev/null
+++ b/src/intercom/unstable/help_center/requests/collection.py
@@ -0,0 +1,71 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing_extensions
+from ...requests.group_translated_content import GroupTranslatedContentParams
+
+
+class CollectionParams(typing_extensions.TypedDict):
+ """
+ Collections are top level containers for Articles within the Help Center.
+ """
+
+ id: typing_extensions.NotRequired[str]
+ """
+ The unique identifier for the collection which is given by Intercom.
+ """
+
+ workspace_id: typing_extensions.NotRequired[str]
+ """
+ The id of the workspace which the collection belongs to.
+ """
+
+ name: typing_extensions.NotRequired[str]
+ """
+ The name of the collection. For multilingual collections, this will be the name of the default language's content.
+ """
+
+ description: typing_extensions.NotRequired[str]
+ """
+ The description of the collection. For multilingual help centers, this will be the description of the collection for the default language.
+ """
+
+ created_at: typing_extensions.NotRequired[int]
+ """
+ The time when the article was created (seconds). For multilingual articles, this will be the timestamp of creation of the default language's content.
+ """
+
+ updated_at: typing_extensions.NotRequired[int]
+ """
+ The time when the article was last updated (seconds). For multilingual articles, this will be the timestamp of last update of the default language's content.
+ """
+
+ url: typing_extensions.NotRequired[str]
+ """
+ The URL of the collection. For multilingual help centers, this will be the URL of the collection for the default language.
+ """
+
+ icon: typing_extensions.NotRequired[str]
+ """
+ The icon of the collection.
+ """
+
+ order: typing_extensions.NotRequired[int]
+ """
+ The order of the section in relation to others sections within a collection. Values go from `0` upwards. `0` is the default if there's no order.
+ """
+
+ default_locale: typing_extensions.NotRequired[str]
+ """
+ The default locale of the help center. This field is only returned for multilingual help centers.
+ """
+
+ translated_content: typing_extensions.NotRequired[GroupTranslatedContentParams]
+ parent_id: typing_extensions.NotRequired[str]
+ """
+ The id of the parent collection. If `null` then it is the first level collection.
+ """
+
+ help_center_id: typing_extensions.NotRequired[int]
+ """
+ The id of the help center the collection is in.
+ """
diff --git a/src/intercom/unstable/help_center/requests/help_center.py b/src/intercom/unstable/help_center/requests/help_center.py
new file mode 100644
index 0000000..6870988
--- /dev/null
+++ b/src/intercom/unstable/help_center/requests/help_center.py
@@ -0,0 +1,44 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing_extensions
+
+
+class HelpCenterParams(typing_extensions.TypedDict):
+ """
+ Help Centers contain collections
+ """
+
+ id: typing_extensions.NotRequired[str]
+ """
+ The unique identifier for the Help Center which is given by Intercom.
+ """
+
+ workspace_id: typing_extensions.NotRequired[str]
+ """
+ The id of the workspace which the Help Center belongs to.
+ """
+
+ created_at: typing_extensions.NotRequired[int]
+ """
+ The time when the Help Center was created.
+ """
+
+ updated_at: typing_extensions.NotRequired[int]
+ """
+ The time when the Help Center was last updated.
+ """
+
+ identifier: typing_extensions.NotRequired[str]
+ """
+ The identifier of the Help Center. This is used in the URL of the Help Center.
+ """
+
+ website_turned_on: typing_extensions.NotRequired[bool]
+ """
+ Whether the Help Center is turned on or not. This is controlled in your Help Center settings.
+ """
+
+ display_name: typing_extensions.NotRequired[str]
+ """
+ The display name of the Help Center only seen by teammates.
+ """
diff --git a/src/intercom/unstable/help_center/requests/help_center_list.py b/src/intercom/unstable/help_center/requests/help_center_list.py
new file mode 100644
index 0000000..85a4621
--- /dev/null
+++ b/src/intercom/unstable/help_center/requests/help_center_list.py
@@ -0,0 +1,22 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing
+
+import typing_extensions
+from .help_center import HelpCenterParams
+
+
+class HelpCenterListParams(typing_extensions.TypedDict):
+ """
+ A list of Help Centers belonging to the App
+ """
+
+ type: typing_extensions.NotRequired[typing.Literal["list"]]
+ """
+ The type of the object - `list`.
+ """
+
+ data: typing_extensions.NotRequired[typing.Sequence[HelpCenterParams]]
+ """
+ An array of Help Center objects
+ """
diff --git a/src/intercom/unstable/jobs/__init__.py b/src/intercom/unstable/jobs/__init__.py
index f921dea..eb58664 100644
--- a/src/intercom/unstable/jobs/__init__.py
+++ b/src/intercom/unstable/jobs/__init__.py
@@ -3,5 +3,6 @@
# isort: skip_file
from .types import Jobs, JobsStatus
+from .requests import JobsParams
-__all__ = ["Jobs", "JobsStatus"]
+__all__ = ["Jobs", "JobsParams", "JobsStatus"]
diff --git a/src/intercom/unstable/jobs/requests/__init__.py b/src/intercom/unstable/jobs/requests/__init__.py
new file mode 100644
index 0000000..048d2e4
--- /dev/null
+++ b/src/intercom/unstable/jobs/requests/__init__.py
@@ -0,0 +1,7 @@
+# This file was auto-generated by Fern from our API Definition.
+
+# isort: skip_file
+
+from .jobs import JobsParams
+
+__all__ = ["JobsParams"]
diff --git a/src/intercom/unstable/jobs/requests/jobs.py b/src/intercom/unstable/jobs/requests/jobs.py
new file mode 100644
index 0000000..0359e7c
--- /dev/null
+++ b/src/intercom/unstable/jobs/requests/jobs.py
@@ -0,0 +1,47 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing
+
+import typing_extensions
+from ..types.jobs_status import JobsStatus
+
+
+class JobsParams(typing_extensions.TypedDict):
+ """
+ Jobs are tasks that are processed asynchronously by the Intercom system after being enqueued via the API. This allows for efficient handling of operations that may take time to complete, such as data imports or exports. You can check the status of your jobs to monitor their progress and ensure they are completed successfully.
+ """
+
+ type: typing_extensions.NotRequired[typing.Literal["job"]]
+ """
+ The type of the object
+ """
+
+ id: str
+ """
+ The id of the job that's currently being processed or has completed.
+ """
+
+ url: typing_extensions.NotRequired[str]
+ """
+ API endpoint URL to check the job status.
+ """
+
+ status: typing_extensions.NotRequired[JobsStatus]
+ """
+ The status of the job execution.
+ """
+
+ resource_type: typing_extensions.NotRequired[str]
+ """
+ The type of resource created during job execution.
+ """
+
+ resource_id: typing_extensions.NotRequired[str]
+ """
+ The id of the resource created during job execution (e.g. ticket id)
+ """
+
+ resource_url: typing_extensions.NotRequired[str]
+ """
+ The url of the resource created during job exeuction. Use this url to fetch the resource.
+ """
diff --git a/src/intercom/unstable/messages/__init__.py b/src/intercom/unstable/messages/__init__.py
index 08e9449..8be2551 100644
--- a/src/intercom/unstable/messages/__init__.py
+++ b/src/intercom/unstable/messages/__init__.py
@@ -3,5 +3,6 @@
# isort: skip_file
from .types import Message, MessageMessageType
+from .requests import MessageParams
-__all__ = ["Message", "MessageMessageType"]
+__all__ = ["Message", "MessageMessageType", "MessageParams"]
diff --git a/src/intercom/unstable/messages/requests/__init__.py b/src/intercom/unstable/messages/requests/__init__.py
new file mode 100644
index 0000000..b95d6af
--- /dev/null
+++ b/src/intercom/unstable/messages/requests/__init__.py
@@ -0,0 +1,7 @@
+# This file was auto-generated by Fern from our API Definition.
+
+# isort: skip_file
+
+from .message import MessageParams
+
+__all__ = ["MessageParams"]
diff --git a/src/intercom/unstable/messages/requests/message.py b/src/intercom/unstable/messages/requests/message.py
new file mode 100644
index 0000000..a19bd3f
--- /dev/null
+++ b/src/intercom/unstable/messages/requests/message.py
@@ -0,0 +1,45 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing_extensions
+from ..types.message_message_type import MessageMessageType
+
+
+class MessageParams(typing_extensions.TypedDict):
+ """
+ Message are how you reach out to contacts in Intercom. They are created when an admin sends an outbound message to a contact.
+ """
+
+ type: str
+ """
+ The type of the message
+ """
+
+ id: str
+ """
+ The id representing the message.
+ """
+
+ created_at: int
+ """
+ The time the conversation was created.
+ """
+
+ subject: typing_extensions.NotRequired[str]
+ """
+ The subject of the message. Only present if message_type: email.
+ """
+
+ body: str
+ """
+ The message body, which may contain HTML.
+ """
+
+ message_type: MessageMessageType
+ """
+ The type of message that was sent. Can be email, inapp, facebook, twitter, sms or whatsapp.
+ """
+
+ conversation_id: typing_extensions.NotRequired[str]
+ """
+ The associated conversation_id
+ """
diff --git a/src/intercom/unstable/news/__init__.py b/src/intercom/unstable/news/__init__.py
index 5997525..43f6da0 100644
--- a/src/intercom/unstable/news/__init__.py
+++ b/src/intercom/unstable/news/__init__.py
@@ -3,5 +3,14 @@
# isort: skip_file
from .types import NewsItem, NewsItemState, Newsfeed, NewsfeedAssignment
+from .requests import NewsItemParams, NewsfeedAssignmentParams, NewsfeedParams
-__all__ = ["NewsItem", "NewsItemState", "Newsfeed", "NewsfeedAssignment"]
+__all__ = [
+ "NewsItem",
+ "NewsItemParams",
+ "NewsItemState",
+ "Newsfeed",
+ "NewsfeedAssignment",
+ "NewsfeedAssignmentParams",
+ "NewsfeedParams",
+]
diff --git a/src/intercom/unstable/news/client.py b/src/intercom/unstable/news/client.py
index 9fa6db6..3f63194 100644
--- a/src/intercom/unstable/news/client.py
+++ b/src/intercom/unstable/news/client.py
@@ -8,9 +8,9 @@
from ..types.news_item_request_state import NewsItemRequestState
from ..types.paginated_response import PaginatedResponse
from .raw_client import AsyncRawNewsClient, RawNewsClient
+from .requests.newsfeed_assignment import NewsfeedAssignmentParams
from .types.news_item import NewsItem
from .types.newsfeed import Newsfeed
-from .types.newsfeed_assignment import NewsfeedAssignment
# this is used as the default value for optional parameters
OMIT = typing.cast(typing.Any, ...)
@@ -67,7 +67,7 @@ def create_news_item(
deliver_silently: typing.Optional[bool] = OMIT,
labels: typing.Optional[typing.Sequence[str]] = OMIT,
reactions: typing.Optional[typing.Sequence[typing.Optional[str]]] = OMIT,
- newsfeed_assignments: typing.Optional[typing.Sequence[NewsfeedAssignment]] = OMIT,
+ newsfeed_assignments: typing.Optional[typing.Sequence[NewsfeedAssignmentParams]] = OMIT,
request_options: typing.Optional[RequestOptions] = None,
) -> NewsItem:
"""
@@ -96,7 +96,7 @@ def create_news_item(
reactions : typing.Optional[typing.Sequence[typing.Optional[str]]]
Ordered list of emoji reactions to the news item. When empty, reactions are disabled.
- newsfeed_assignments : typing.Optional[typing.Sequence[NewsfeedAssignment]]
+ newsfeed_assignments : typing.Optional[typing.Sequence[NewsfeedAssignmentParams]]
A list of newsfeed_assignments to assign to the specified newsfeed.
request_options : typing.Optional[RequestOptions]
@@ -110,7 +110,6 @@ def create_news_item(
Examples
--------
from intercom import Intercom
- from intercom.unstable.news import NewsfeedAssignment
client = Intercom(
token="YOUR_TOKEN",
@@ -123,12 +122,7 @@ def create_news_item(
deliver_silently=True,
labels=["Product", "Update", "New"],
reactions=["😆", "😅"],
- newsfeed_assignments=[
- NewsfeedAssignment(
- newsfeed_id=53,
- published_at=1664638214,
- )
- ],
+ newsfeed_assignments=[{"newsfeed_id": 53, "published_at": 1664638214}],
)
"""
_response = self._raw_client.create_news_item(
@@ -186,7 +180,7 @@ def update_news_item(
deliver_silently: typing.Optional[bool] = OMIT,
labels: typing.Optional[typing.Sequence[str]] = OMIT,
reactions: typing.Optional[typing.Sequence[typing.Optional[str]]] = OMIT,
- newsfeed_assignments: typing.Optional[typing.Sequence[NewsfeedAssignment]] = OMIT,
+ newsfeed_assignments: typing.Optional[typing.Sequence[NewsfeedAssignmentParams]] = OMIT,
request_options: typing.Optional[RequestOptions] = None,
) -> NewsItem:
"""
@@ -216,7 +210,7 @@ def update_news_item(
reactions : typing.Optional[typing.Sequence[typing.Optional[str]]]
Ordered list of emoji reactions to the news item. When empty, reactions are disabled.
- newsfeed_assignments : typing.Optional[typing.Sequence[NewsfeedAssignment]]
+ newsfeed_assignments : typing.Optional[typing.Sequence[NewsfeedAssignmentParams]]
A list of newsfeed_assignments to assign to the specified newsfeed.
request_options : typing.Optional[RequestOptions]
@@ -437,7 +431,7 @@ async def create_news_item(
deliver_silently: typing.Optional[bool] = OMIT,
labels: typing.Optional[typing.Sequence[str]] = OMIT,
reactions: typing.Optional[typing.Sequence[typing.Optional[str]]] = OMIT,
- newsfeed_assignments: typing.Optional[typing.Sequence[NewsfeedAssignment]] = OMIT,
+ newsfeed_assignments: typing.Optional[typing.Sequence[NewsfeedAssignmentParams]] = OMIT,
request_options: typing.Optional[RequestOptions] = None,
) -> NewsItem:
"""
@@ -466,7 +460,7 @@ async def create_news_item(
reactions : typing.Optional[typing.Sequence[typing.Optional[str]]]
Ordered list of emoji reactions to the news item. When empty, reactions are disabled.
- newsfeed_assignments : typing.Optional[typing.Sequence[NewsfeedAssignment]]
+ newsfeed_assignments : typing.Optional[typing.Sequence[NewsfeedAssignmentParams]]
A list of newsfeed_assignments to assign to the specified newsfeed.
request_options : typing.Optional[RequestOptions]
@@ -482,7 +476,6 @@ async def create_news_item(
import asyncio
from intercom import AsyncIntercom
- from intercom.unstable.news import NewsfeedAssignment
client = AsyncIntercom(
token="YOUR_TOKEN",
@@ -498,12 +491,7 @@ async def main() -> None:
deliver_silently=True,
labels=["Product", "Update", "New"],
reactions=["😆", "😅"],
- newsfeed_assignments=[
- NewsfeedAssignment(
- newsfeed_id=53,
- published_at=1664638214,
- )
- ],
+ newsfeed_assignments=[{"newsfeed_id": 53, "published_at": 1664638214}],
)
@@ -572,7 +560,7 @@ async def update_news_item(
deliver_silently: typing.Optional[bool] = OMIT,
labels: typing.Optional[typing.Sequence[str]] = OMIT,
reactions: typing.Optional[typing.Sequence[typing.Optional[str]]] = OMIT,
- newsfeed_assignments: typing.Optional[typing.Sequence[NewsfeedAssignment]] = OMIT,
+ newsfeed_assignments: typing.Optional[typing.Sequence[NewsfeedAssignmentParams]] = OMIT,
request_options: typing.Optional[RequestOptions] = None,
) -> NewsItem:
"""
@@ -602,7 +590,7 @@ async def update_news_item(
reactions : typing.Optional[typing.Sequence[typing.Optional[str]]]
Ordered list of emoji reactions to the news item. When empty, reactions are disabled.
- newsfeed_assignments : typing.Optional[typing.Sequence[NewsfeedAssignment]]
+ newsfeed_assignments : typing.Optional[typing.Sequence[NewsfeedAssignmentParams]]
A list of newsfeed_assignments to assign to the specified newsfeed.
request_options : typing.Optional[RequestOptions]
diff --git a/src/intercom/unstable/news/raw_client.py b/src/intercom/unstable/news/raw_client.py
index b02fc9c..1bf711e 100644
--- a/src/intercom/unstable/news/raw_client.py
+++ b/src/intercom/unstable/news/raw_client.py
@@ -16,9 +16,9 @@
from ..types.error import Error
from ..types.news_item_request_state import NewsItemRequestState
from ..types.paginated_response import PaginatedResponse
+from .requests.newsfeed_assignment import NewsfeedAssignmentParams
from .types.news_item import NewsItem
from .types.newsfeed import Newsfeed
-from .types.newsfeed_assignment import NewsfeedAssignment
# this is used as the default value for optional parameters
OMIT = typing.cast(typing.Any, ...)
@@ -85,7 +85,7 @@ def create_news_item(
deliver_silently: typing.Optional[bool] = OMIT,
labels: typing.Optional[typing.Sequence[str]] = OMIT,
reactions: typing.Optional[typing.Sequence[typing.Optional[str]]] = OMIT,
- newsfeed_assignments: typing.Optional[typing.Sequence[NewsfeedAssignment]] = OMIT,
+ newsfeed_assignments: typing.Optional[typing.Sequence[NewsfeedAssignmentParams]] = OMIT,
request_options: typing.Optional[RequestOptions] = None,
) -> HttpResponse[NewsItem]:
"""
@@ -114,7 +114,7 @@ def create_news_item(
reactions : typing.Optional[typing.Sequence[typing.Optional[str]]]
Ordered list of emoji reactions to the news item. When empty, reactions are disabled.
- newsfeed_assignments : typing.Optional[typing.Sequence[NewsfeedAssignment]]
+ newsfeed_assignments : typing.Optional[typing.Sequence[NewsfeedAssignmentParams]]
A list of newsfeed_assignments to assign to the specified newsfeed.
request_options : typing.Optional[RequestOptions]
@@ -137,7 +137,9 @@ def create_news_item(
"labels": labels,
"reactions": reactions,
"newsfeed_assignments": convert_and_respect_annotation_metadata(
- object_=newsfeed_assignments, annotation=typing.Sequence[NewsfeedAssignment], direction="write"
+ object_=newsfeed_assignments,
+ annotation=typing.Sequence[NewsfeedAssignmentParams],
+ direction="write",
),
},
headers={
@@ -244,7 +246,7 @@ def update_news_item(
deliver_silently: typing.Optional[bool] = OMIT,
labels: typing.Optional[typing.Sequence[str]] = OMIT,
reactions: typing.Optional[typing.Sequence[typing.Optional[str]]] = OMIT,
- newsfeed_assignments: typing.Optional[typing.Sequence[NewsfeedAssignment]] = OMIT,
+ newsfeed_assignments: typing.Optional[typing.Sequence[NewsfeedAssignmentParams]] = OMIT,
request_options: typing.Optional[RequestOptions] = None,
) -> HttpResponse[NewsItem]:
"""
@@ -274,7 +276,7 @@ def update_news_item(
reactions : typing.Optional[typing.Sequence[typing.Optional[str]]]
Ordered list of emoji reactions to the news item. When empty, reactions are disabled.
- newsfeed_assignments : typing.Optional[typing.Sequence[NewsfeedAssignment]]
+ newsfeed_assignments : typing.Optional[typing.Sequence[NewsfeedAssignmentParams]]
A list of newsfeed_assignments to assign to the specified newsfeed.
request_options : typing.Optional[RequestOptions]
@@ -297,7 +299,9 @@ def update_news_item(
"labels": labels,
"reactions": reactions,
"newsfeed_assignments": convert_and_respect_annotation_metadata(
- object_=newsfeed_assignments, annotation=typing.Sequence[NewsfeedAssignment], direction="write"
+ object_=newsfeed_assignments,
+ annotation=typing.Sequence[NewsfeedAssignmentParams],
+ direction="write",
),
},
headers={
@@ -613,7 +617,7 @@ async def create_news_item(
deliver_silently: typing.Optional[bool] = OMIT,
labels: typing.Optional[typing.Sequence[str]] = OMIT,
reactions: typing.Optional[typing.Sequence[typing.Optional[str]]] = OMIT,
- newsfeed_assignments: typing.Optional[typing.Sequence[NewsfeedAssignment]] = OMIT,
+ newsfeed_assignments: typing.Optional[typing.Sequence[NewsfeedAssignmentParams]] = OMIT,
request_options: typing.Optional[RequestOptions] = None,
) -> AsyncHttpResponse[NewsItem]:
"""
@@ -642,7 +646,7 @@ async def create_news_item(
reactions : typing.Optional[typing.Sequence[typing.Optional[str]]]
Ordered list of emoji reactions to the news item. When empty, reactions are disabled.
- newsfeed_assignments : typing.Optional[typing.Sequence[NewsfeedAssignment]]
+ newsfeed_assignments : typing.Optional[typing.Sequence[NewsfeedAssignmentParams]]
A list of newsfeed_assignments to assign to the specified newsfeed.
request_options : typing.Optional[RequestOptions]
@@ -665,7 +669,9 @@ async def create_news_item(
"labels": labels,
"reactions": reactions,
"newsfeed_assignments": convert_and_respect_annotation_metadata(
- object_=newsfeed_assignments, annotation=typing.Sequence[NewsfeedAssignment], direction="write"
+ object_=newsfeed_assignments,
+ annotation=typing.Sequence[NewsfeedAssignmentParams],
+ direction="write",
),
},
headers={
@@ -772,7 +778,7 @@ async def update_news_item(
deliver_silently: typing.Optional[bool] = OMIT,
labels: typing.Optional[typing.Sequence[str]] = OMIT,
reactions: typing.Optional[typing.Sequence[typing.Optional[str]]] = OMIT,
- newsfeed_assignments: typing.Optional[typing.Sequence[NewsfeedAssignment]] = OMIT,
+ newsfeed_assignments: typing.Optional[typing.Sequence[NewsfeedAssignmentParams]] = OMIT,
request_options: typing.Optional[RequestOptions] = None,
) -> AsyncHttpResponse[NewsItem]:
"""
@@ -802,7 +808,7 @@ async def update_news_item(
reactions : typing.Optional[typing.Sequence[typing.Optional[str]]]
Ordered list of emoji reactions to the news item. When empty, reactions are disabled.
- newsfeed_assignments : typing.Optional[typing.Sequence[NewsfeedAssignment]]
+ newsfeed_assignments : typing.Optional[typing.Sequence[NewsfeedAssignmentParams]]
A list of newsfeed_assignments to assign to the specified newsfeed.
request_options : typing.Optional[RequestOptions]
@@ -825,7 +831,9 @@ async def update_news_item(
"labels": labels,
"reactions": reactions,
"newsfeed_assignments": convert_and_respect_annotation_metadata(
- object_=newsfeed_assignments, annotation=typing.Sequence[NewsfeedAssignment], direction="write"
+ object_=newsfeed_assignments,
+ annotation=typing.Sequence[NewsfeedAssignmentParams],
+ direction="write",
),
},
headers={
diff --git a/src/intercom/unstable/news/requests/__init__.py b/src/intercom/unstable/news/requests/__init__.py
new file mode 100644
index 0000000..0b4965d
--- /dev/null
+++ b/src/intercom/unstable/news/requests/__init__.py
@@ -0,0 +1,9 @@
+# This file was auto-generated by Fern from our API Definition.
+
+# isort: skip_file
+
+from .news_item import NewsItemParams
+from .newsfeed import NewsfeedParams
+from .newsfeed_assignment import NewsfeedAssignmentParams
+
+__all__ = ["NewsItemParams", "NewsfeedAssignmentParams", "NewsfeedParams"]
diff --git a/src/intercom/unstable/news/requests/news_item.py b/src/intercom/unstable/news/requests/news_item.py
new file mode 100644
index 0000000..a5a1149
--- /dev/null
+++ b/src/intercom/unstable/news/requests/news_item.py
@@ -0,0 +1,78 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing
+
+import typing_extensions
+from ..types.news_item_state import NewsItemState
+from .newsfeed_assignment import NewsfeedAssignmentParams
+
+
+class NewsItemParams(typing_extensions.TypedDict):
+ """
+ A News Item is a content type in Intercom enabling you to announce product updates, company news, promotions, events and more with your customers.
+ """
+
+ id: typing_extensions.NotRequired[str]
+ """
+ The unique identifier for the news item which is given by Intercom.
+ """
+
+ workspace_id: typing_extensions.NotRequired[str]
+ """
+ The id of the workspace which the news item belongs to.
+ """
+
+ title: typing_extensions.NotRequired[str]
+ """
+ The title of the news item.
+ """
+
+ body: typing_extensions.NotRequired[str]
+ """
+ The news item body, which may contain HTML.
+ """
+
+ sender_id: typing_extensions.NotRequired[int]
+ """
+ The id of the sender of the news item. Must be a teammate on the workspace.
+ """
+
+ state: typing_extensions.NotRequired[NewsItemState]
+ """
+ News items will not be visible to your users in the assigned newsfeeds until they are set live.
+ """
+
+ newsfeed_assignments: typing_extensions.NotRequired[typing.Sequence[NewsfeedAssignmentParams]]
+ """
+ A list of newsfeed_assignments to assign to the specified newsfeed.
+ """
+
+ labels: typing_extensions.NotRequired[typing.Sequence[typing.Optional[str]]]
+ """
+ Label names displayed to users to categorize the news item.
+ """
+
+ cover_image_url: typing_extensions.NotRequired[str]
+ """
+ URL of the image used as cover. Must have .jpg or .png extension.
+ """
+
+ reactions: typing_extensions.NotRequired[typing.Sequence[typing.Optional[str]]]
+ """
+ Ordered list of emoji reactions to the news item. When empty, reactions are disabled.
+ """
+
+ deliver_silently: typing_extensions.NotRequired[bool]
+ """
+ When set to true, the news item will appear in the messenger newsfeed without showing a notification badge.
+ """
+
+ created_at: typing_extensions.NotRequired[int]
+ """
+ Timestamp for when the news item was created.
+ """
+
+ updated_at: typing_extensions.NotRequired[int]
+ """
+ Timestamp for when the news item was last updated.
+ """
diff --git a/src/intercom/unstable/news/requests/newsfeed.py b/src/intercom/unstable/news/requests/newsfeed.py
new file mode 100644
index 0000000..7143dc0
--- /dev/null
+++ b/src/intercom/unstable/news/requests/newsfeed.py
@@ -0,0 +1,31 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing_extensions
+
+
+class NewsfeedParams(typing_extensions.TypedDict):
+ """
+ A newsfeed is a collection of news items, targeted to a specific audience.
+
+ Newsfeeds currently cannot be edited through the API, please refer to [this article](https://www.intercom.com/help/en/articles/6362267-getting-started-with-news) to set up your newsfeeds in Intercom.
+ """
+
+ id: typing_extensions.NotRequired[str]
+ """
+ The unique identifier for the newsfeed which is given by Intercom.
+ """
+
+ name: typing_extensions.NotRequired[str]
+ """
+ The name of the newsfeed. This name will never be visible to your users.
+ """
+
+ created_at: typing_extensions.NotRequired[int]
+ """
+ Timestamp for when the newsfeed was created.
+ """
+
+ updated_at: typing_extensions.NotRequired[int]
+ """
+ Timestamp for when the newsfeed was last updated.
+ """
diff --git a/src/intercom/unstable/news/requests/newsfeed_assignment.py b/src/intercom/unstable/news/requests/newsfeed_assignment.py
new file mode 100644
index 0000000..454ef30
--- /dev/null
+++ b/src/intercom/unstable/news/requests/newsfeed_assignment.py
@@ -0,0 +1,19 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing_extensions
+
+
+class NewsfeedAssignmentParams(typing_extensions.TypedDict):
+ """
+ Assigns a news item to a newsfeed.
+ """
+
+ newsfeed_id: typing_extensions.NotRequired[int]
+ """
+ The unique identifier for the newsfeed which is given by Intercom. Publish dates cannot be in the future, to schedule news items use the dedicated feature in app (see this article).
+ """
+
+ published_at: typing_extensions.NotRequired[int]
+ """
+ Publish date of the news item on the newsfeed, use this field if you want to set a publish date in the past (e.g. when importing existing news items). On write, this field will be ignored if the news item state is "draft".
+ """
diff --git a/src/intercom/unstable/notes/__init__.py b/src/intercom/unstable/notes/__init__.py
index f4f2a2b..a4f5fea 100644
--- a/src/intercom/unstable/notes/__init__.py
+++ b/src/intercom/unstable/notes/__init__.py
@@ -3,5 +3,6 @@
# isort: skip_file
from .types import Note, NoteContact
+from .requests import NoteContactParams, NoteParams
-__all__ = ["Note", "NoteContact"]
+__all__ = ["Note", "NoteContact", "NoteContactParams", "NoteParams"]
diff --git a/src/intercom/unstable/notes/requests/__init__.py b/src/intercom/unstable/notes/requests/__init__.py
new file mode 100644
index 0000000..c54d718
--- /dev/null
+++ b/src/intercom/unstable/notes/requests/__init__.py
@@ -0,0 +1,8 @@
+# This file was auto-generated by Fern from our API Definition.
+
+# isort: skip_file
+
+from .note import NoteParams
+from .note_contact import NoteContactParams
+
+__all__ = ["NoteContactParams", "NoteParams"]
diff --git a/src/intercom/unstable/notes/requests/note.py b/src/intercom/unstable/notes/requests/note.py
new file mode 100644
index 0000000..c40b34d
--- /dev/null
+++ b/src/intercom/unstable/notes/requests/note.py
@@ -0,0 +1,41 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing_extensions
+from ...admins.requests.admin import AdminParams
+from .note_contact import NoteContactParams
+
+
+class NoteParams(typing_extensions.TypedDict):
+ """
+ Notes allow you to annotate and comment on your contacts.
+ """
+
+ type: typing_extensions.NotRequired[str]
+ """
+ String representing the object's type. Always has the value `note`.
+ """
+
+ id: typing_extensions.NotRequired[str]
+ """
+ The id of the note.
+ """
+
+ created_at: typing_extensions.NotRequired[int]
+ """
+ The time the note was created.
+ """
+
+ contact: typing_extensions.NotRequired[NoteContactParams]
+ """
+ Represents the contact that the note was created about.
+ """
+
+ author: typing_extensions.NotRequired[AdminParams]
+ """
+ Optional. Represents the Admin that created the note.
+ """
+
+ body: typing_extensions.NotRequired[str]
+ """
+ The body text of the note.
+ """
diff --git a/src/intercom/unstable/notes/requests/note_contact.py b/src/intercom/unstable/notes/requests/note_contact.py
new file mode 100644
index 0000000..0683610
--- /dev/null
+++ b/src/intercom/unstable/notes/requests/note_contact.py
@@ -0,0 +1,19 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing_extensions
+
+
+class NoteContactParams(typing_extensions.TypedDict):
+ """
+ Represents the contact that the note was created about.
+ """
+
+ type: typing_extensions.NotRequired[str]
+ """
+ String representing the object's type. Always has the value `contact`.
+ """
+
+ id: typing_extensions.NotRequired[str]
+ """
+ The id of the contact.
+ """
diff --git a/src/intercom/unstable/requests/__init__.py b/src/intercom/unstable/requests/__init__.py
new file mode 100644
index 0000000..1feb69d
--- /dev/null
+++ b/src/intercom/unstable/requests/__init__.py
@@ -0,0 +1,399 @@
+# This file was auto-generated by Fern from our API Definition.
+
+# isort: skip_file
+
+from .activity_log import ActivityLogParams
+from .activity_log_list import ActivityLogListParams
+from .activity_log_metadata import ActivityLogMetadataParams
+from .activity_log_performed_by import ActivityLogPerformedByParams
+from .addressable_list import AddressableListParams
+from .admin_list import AdminListParams
+from .admin_priority_level import AdminPriorityLevelParams
+from .admin_reply_conversation_request import AdminReplyConversationRequestParams
+from .admin_reply_ticket_request import AdminReplyTicketRequestParams
+from .admin_reply_ticket_request_reply_options_item import AdminReplyTicketRequestReplyOptionsItemParams
+from .admin_with_app import AdminWithAppParams
+from .admin_with_app_avatar import AdminWithAppAvatarParams
+from .app import AppParams
+from .article_content import ArticleContentParams
+from .article_list import ArticleListParams
+from .article_statistics import ArticleStatisticsParams
+from .article_translated_content import ArticleTranslatedContentParams
+from .assign_conversation_request import AssignConversationRequestParams
+from .away_status_reason import AwayStatusReasonParams
+from .close_conversation_request import CloseConversationRequestParams
+from .collection_list import CollectionListParams
+from .company_attached_contacts import CompanyAttachedContactsParams
+from .company_attached_segments import CompanyAttachedSegmentsParams
+from .company_data import CompanyDataParams
+from .company_list import CompanyListParams
+from .company_scroll import CompanyScrollParams
+from .contact_archived import ContactArchivedParams
+from .contact_attached_companies import ContactAttachedCompaniesParams
+from .contact_blocked import ContactBlockedParams
+from .contact_companies import ContactCompaniesParams
+from .contact_deleted import ContactDeletedParams
+from .contact_list import ContactListParams
+from .contact_location import ContactLocationParams
+from .contact_notes import ContactNotesParams
+from .contact_reference import ContactReferenceParams
+from .contact_reply_base_request import ContactReplyBaseRequestParams
+from .contact_reply_base_request_reply_options_item import ContactReplyBaseRequestReplyOptionsItemParams
+from .contact_reply_conversation_request import ContactReplyConversationRequestParams
+from .contact_reply_email_request import ContactReplyEmailRequestParams
+from .contact_reply_intercom_user_id_request import ContactReplyIntercomUserIdRequestParams
+from .contact_reply_ticket_email_request import ContactReplyTicketEmailRequestParams
+from .contact_reply_ticket_intercom_user_id_request import ContactReplyTicketIntercomUserIdRequestParams
+from .contact_reply_ticket_request import ContactReplyTicketRequestParams
+from .contact_reply_ticket_user_id_request import ContactReplyTicketUserIdRequestParams
+from .contact_reply_user_id_request import ContactReplyUserIdRequestParams
+from .contact_segments import ContactSegmentsParams
+from .contact_social_profiles import ContactSocialProfilesParams
+from .contact_subscription_types import ContactSubscriptionTypesParams
+from .contact_tags import ContactTagsParams
+from .contact_unarchived import ContactUnarchivedParams
+from .content_sources_list import ContentSourcesListParams
+from .conversation_attachment_files import ConversationAttachmentFilesParams
+from .conversation_attribute_updated_by_admin import ConversationAttributeUpdatedByAdminParams
+from .conversation_attribute_updated_by_admin_attribute import ConversationAttributeUpdatedByAdminAttributeParams
+from .conversation_attribute_updated_by_admin_value import ConversationAttributeUpdatedByAdminValueParams
+from .conversation_attribute_updated_by_workflow import ConversationAttributeUpdatedByWorkflowParams
+from .conversation_attribute_updated_by_workflow_attribute import ConversationAttributeUpdatedByWorkflowAttributeParams
+from .conversation_attribute_updated_by_workflow_value import ConversationAttributeUpdatedByWorkflowValueParams
+from .conversation_attribute_updated_by_workflow_workflow import ConversationAttributeUpdatedByWorkflowWorkflowParams
+from .conversation_contacts import ConversationContactsParams
+from .conversation_deleted import ConversationDeletedParams
+from .conversation_first_contact_reply import ConversationFirstContactReplyParams
+from .conversation_list import ConversationListParams
+from .conversation_part import ConversationPartParams
+from .conversation_part_author import ConversationPartAuthorParams
+from .conversation_part_metadata import ConversationPartMetadataParams
+from .conversation_part_metadata_quick_reply_options_item import ConversationPartMetadataQuickReplyOptionsItemParams
+from .conversation_parts import ConversationPartsParams
+from .conversation_rating import ConversationRatingParams
+from .conversation_response_time import ConversationResponseTimeParams
+from .conversation_source import ConversationSourceParams
+from .conversation_statistics import ConversationStatisticsParams
+from .conversation_teammates import ConversationTeammatesParams
+from .create_or_update_tag_request import CreateOrUpdateTagRequestParams
+from .create_ticket_reply_with_comment_request import CreateTicketReplyWithCommentRequestParams
+from .create_ticket_request_assignment import CreateTicketRequestAssignmentParams
+from .create_ticket_request_body import CreateTicketRequestBodyParams
+from .create_ticket_request_contacts_item import CreateTicketRequestContactsItemParams
+from .create_ticket_request_contacts_item_email import CreateTicketRequestContactsItemEmailParams
+from .create_ticket_request_contacts_item_external_id import CreateTicketRequestContactsItemExternalIdParams
+from .create_ticket_request_contacts_item_id import CreateTicketRequestContactsItemIdParams
+from .cursor_pages import CursorPagesParams
+from .custom_action_finished import CustomActionFinishedParams
+from .custom_action_finished_action import CustomActionFinishedActionParams
+from .custom_action_started import CustomActionStartedParams
+from .custom_action_started_action import CustomActionStartedActionParams
+from .custom_attributes import CustomAttributesParams
+from .custom_attributes_value import CustomAttributesValueParams
+from .custom_channel_attribute import CustomChannelAttributeParams
+from .custom_channel_base_event import CustomChannelBaseEventParams
+from .custom_channel_contact import CustomChannelContactParams
+from .custom_channel_notification_response import CustomChannelNotificationResponseParams
+from .custom_object_instance_deleted import CustomObjectInstanceDeletedParams
+from .custom_object_instance_list import CustomObjectInstanceListParams
+from .customer_request import CustomerRequestParams
+from .customer_request_email import CustomerRequestEmailParams
+from .customer_request_intercom_user_id import CustomerRequestIntercomUserIdParams
+from .customer_request_user_id import CustomerRequestUserIdParams
+from .data_attribute_list import DataAttributeListParams
+from .data_event_list import DataEventListParams
+from .data_event_list_pages import DataEventListPagesParams
+from .data_event_summary import DataEventSummaryParams
+from .data_event_summary_item import DataEventSummaryItemParams
+from .data_export_csv import DataExportCsvParams
+from .datetime import DatetimeParams
+from .deleted_article_object import DeletedArticleObjectParams
+from .deleted_collection_object import DeletedCollectionObjectParams
+from .deleted_company_object import DeletedCompanyObjectParams
+from .deleted_object import DeletedObjectParams
+from .email_address_header import EmailAddressHeaderParams
+from .email_message_metadata import EmailMessageMetadataParams
+from .error import ErrorParams
+from .error_errors_item import ErrorErrorsItemParams
+from .event_details import EventDetailsParams
+from .file_attribute import FileAttributeParams
+from .group_content import GroupContentParams
+from .group_translated_content import GroupTranslatedContentParams
+from .linked_object import LinkedObjectParams
+from .linked_object_list import LinkedObjectListParams
+from .multiple_filter_search_request import MultipleFilterSearchRequestParams
+from .multiple_filter_search_request_value import MultipleFilterSearchRequestValueParams
+from .news_item_request import NewsItemRequestParams
+from .not_found_error_body import NotFoundErrorBodyParams
+from .not_found_error_body_errors_item import NotFoundErrorBodyErrorsItemParams
+from .note_list import NoteListParams
+from .open_conversation_request import OpenConversationRequestParams
+from .operator_workflow_event import OperatorWorkflowEventParams
+from .operator_workflow_event_event import OperatorWorkflowEventEventParams
+from .operator_workflow_event_workflow import OperatorWorkflowEventWorkflowParams
+from .pages_link import PagesLinkParams
+from .paginated_response import PaginatedResponseParams
+from .paginated_response_data_item import (
+ PaginatedResponseDataItemParams,
+ PaginatedResponseDataItem_NewsItemParams,
+ PaginatedResponseDataItem_NewsfeedParams,
+)
+from .part_attachment import PartAttachmentParams
+from .phone_switch import PhoneSwitchParams
+from .quick_reply_option import QuickReplyOptionParams
+from .recipient import RecipientParams
+from .redact_conversation_request import (
+ RedactConversationRequestParams,
+ RedactConversationRequest_ConversationPartParams,
+ RedactConversationRequest_SourceParams,
+)
+from .redact_conversation_request_conversation_part import RedactConversationRequestConversationPartParams
+from .redact_conversation_request_source import RedactConversationRequestSourceParams
+from .reference import ReferenceParams
+from .reply_conversation_request_body import ReplyConversationRequestBodyParams
+from .search_request import SearchRequestParams
+from .search_request_query import SearchRequestQueryParams
+from .segment_list import SegmentListParams
+from .single_filter_search_request import SingleFilterSearchRequestParams
+from .single_filter_search_request_value import SingleFilterSearchRequestValueParams
+from .single_filter_search_request_value_item import SingleFilterSearchRequestValueItemParams
+from .sla_applied import SlaAppliedParams
+from .snooze_conversation_request import SnoozeConversationRequestParams
+from .social_profile import SocialProfileParams
+from .starting_after_paging import StartingAfterPagingParams
+from .subscription_type_list import SubscriptionTypeListParams
+from .tag_company_request import TagCompanyRequestParams
+from .tag_company_request_companies_item import TagCompanyRequestCompaniesItemParams
+from .tag_list import TagListParams
+from .tag_multiple_users_request import TagMultipleUsersRequestParams
+from .tag_multiple_users_request_users_item import TagMultipleUsersRequestUsersItemParams
+from .tags import TagsParams
+from .team_list import TeamListParams
+from .team_priority_level import TeamPriorityLevelParams
+from .ticket_custom_attributes import TicketCustomAttributesParams
+from .ticket_custom_attributes_value import TicketCustomAttributesValueParams
+from .ticket_list import TicketListParams
+from .ticket_part_author import TicketPartAuthorParams
+from .ticket_parts import TicketPartsParams
+from .ticket_reply import TicketReplyParams
+from .ticket_request_custom_attributes import TicketRequestCustomAttributesParams
+from .ticket_request_custom_attributes_value import TicketRequestCustomAttributesValueParams
+from .ticket_state_list import TicketStateListParams
+from .ticket_type_attribute import TicketTypeAttributeParams
+from .ticket_type_attribute_list import TicketTypeAttributeListParams
+from .ticket_type_list import TicketTypeListParams
+from .translation import TranslationParams
+from .untag_company_request import UntagCompanyRequestParams
+from .untag_company_request_companies_item import UntagCompanyRequestCompaniesItemParams
+from .update_article_request_body import UpdateArticleRequestBodyParams
+from .update_ticket_type_request_body import UpdateTicketTypeRequestBodyParams
+from .visitor import VisitorParams
+from .visitor_avatar import VisitorAvatarParams
+from .visitor_companies import VisitorCompaniesParams
+from .visitor_deleted_object import VisitorDeletedObjectParams
+from .visitor_location_data import VisitorLocationDataParams
+from .visitor_segments import VisitorSegmentsParams
+from .visitor_social_profiles import VisitorSocialProfilesParams
+from .visitor_tags import VisitorTagsParams
+from .visitor_tags_tags_item import VisitorTagsTagsItemParams
+from .whatsapp_message_status_list import WhatsappMessageStatusListParams
+from .whatsapp_message_status_list_events_item import WhatsappMessageStatusListEventsItemParams
+from .whatsapp_message_status_list_pages import WhatsappMessageStatusListPagesParams
+from .whatsapp_message_status_list_pages_next import WhatsappMessageStatusListPagesNextParams
+
+__all__ = [
+ "ActivityLogListParams",
+ "ActivityLogMetadataParams",
+ "ActivityLogParams",
+ "ActivityLogPerformedByParams",
+ "AddressableListParams",
+ "AdminListParams",
+ "AdminPriorityLevelParams",
+ "AdminReplyConversationRequestParams",
+ "AdminReplyTicketRequestParams",
+ "AdminReplyTicketRequestReplyOptionsItemParams",
+ "AdminWithAppAvatarParams",
+ "AdminWithAppParams",
+ "AppParams",
+ "ArticleContentParams",
+ "ArticleListParams",
+ "ArticleStatisticsParams",
+ "ArticleTranslatedContentParams",
+ "AssignConversationRequestParams",
+ "AwayStatusReasonParams",
+ "CloseConversationRequestParams",
+ "CollectionListParams",
+ "CompanyAttachedContactsParams",
+ "CompanyAttachedSegmentsParams",
+ "CompanyDataParams",
+ "CompanyListParams",
+ "CompanyScrollParams",
+ "ContactArchivedParams",
+ "ContactAttachedCompaniesParams",
+ "ContactBlockedParams",
+ "ContactCompaniesParams",
+ "ContactDeletedParams",
+ "ContactListParams",
+ "ContactLocationParams",
+ "ContactNotesParams",
+ "ContactReferenceParams",
+ "ContactReplyBaseRequestParams",
+ "ContactReplyBaseRequestReplyOptionsItemParams",
+ "ContactReplyConversationRequestParams",
+ "ContactReplyEmailRequestParams",
+ "ContactReplyIntercomUserIdRequestParams",
+ "ContactReplyTicketEmailRequestParams",
+ "ContactReplyTicketIntercomUserIdRequestParams",
+ "ContactReplyTicketRequestParams",
+ "ContactReplyTicketUserIdRequestParams",
+ "ContactReplyUserIdRequestParams",
+ "ContactSegmentsParams",
+ "ContactSocialProfilesParams",
+ "ContactSubscriptionTypesParams",
+ "ContactTagsParams",
+ "ContactUnarchivedParams",
+ "ContentSourcesListParams",
+ "ConversationAttachmentFilesParams",
+ "ConversationAttributeUpdatedByAdminAttributeParams",
+ "ConversationAttributeUpdatedByAdminParams",
+ "ConversationAttributeUpdatedByAdminValueParams",
+ "ConversationAttributeUpdatedByWorkflowAttributeParams",
+ "ConversationAttributeUpdatedByWorkflowParams",
+ "ConversationAttributeUpdatedByWorkflowValueParams",
+ "ConversationAttributeUpdatedByWorkflowWorkflowParams",
+ "ConversationContactsParams",
+ "ConversationDeletedParams",
+ "ConversationFirstContactReplyParams",
+ "ConversationListParams",
+ "ConversationPartAuthorParams",
+ "ConversationPartMetadataParams",
+ "ConversationPartMetadataQuickReplyOptionsItemParams",
+ "ConversationPartParams",
+ "ConversationPartsParams",
+ "ConversationRatingParams",
+ "ConversationResponseTimeParams",
+ "ConversationSourceParams",
+ "ConversationStatisticsParams",
+ "ConversationTeammatesParams",
+ "CreateOrUpdateTagRequestParams",
+ "CreateTicketReplyWithCommentRequestParams",
+ "CreateTicketRequestAssignmentParams",
+ "CreateTicketRequestBodyParams",
+ "CreateTicketRequestContactsItemEmailParams",
+ "CreateTicketRequestContactsItemExternalIdParams",
+ "CreateTicketRequestContactsItemIdParams",
+ "CreateTicketRequestContactsItemParams",
+ "CursorPagesParams",
+ "CustomActionFinishedActionParams",
+ "CustomActionFinishedParams",
+ "CustomActionStartedActionParams",
+ "CustomActionStartedParams",
+ "CustomAttributesParams",
+ "CustomAttributesValueParams",
+ "CustomChannelAttributeParams",
+ "CustomChannelBaseEventParams",
+ "CustomChannelContactParams",
+ "CustomChannelNotificationResponseParams",
+ "CustomObjectInstanceDeletedParams",
+ "CustomObjectInstanceListParams",
+ "CustomerRequestEmailParams",
+ "CustomerRequestIntercomUserIdParams",
+ "CustomerRequestParams",
+ "CustomerRequestUserIdParams",
+ "DataAttributeListParams",
+ "DataEventListPagesParams",
+ "DataEventListParams",
+ "DataEventSummaryItemParams",
+ "DataEventSummaryParams",
+ "DataExportCsvParams",
+ "DatetimeParams",
+ "DeletedArticleObjectParams",
+ "DeletedCollectionObjectParams",
+ "DeletedCompanyObjectParams",
+ "DeletedObjectParams",
+ "EmailAddressHeaderParams",
+ "EmailMessageMetadataParams",
+ "ErrorErrorsItemParams",
+ "ErrorParams",
+ "EventDetailsParams",
+ "FileAttributeParams",
+ "GroupContentParams",
+ "GroupTranslatedContentParams",
+ "LinkedObjectListParams",
+ "LinkedObjectParams",
+ "MultipleFilterSearchRequestParams",
+ "MultipleFilterSearchRequestValueParams",
+ "NewsItemRequestParams",
+ "NotFoundErrorBodyErrorsItemParams",
+ "NotFoundErrorBodyParams",
+ "NoteListParams",
+ "OpenConversationRequestParams",
+ "OperatorWorkflowEventEventParams",
+ "OperatorWorkflowEventParams",
+ "OperatorWorkflowEventWorkflowParams",
+ "PagesLinkParams",
+ "PaginatedResponseDataItemParams",
+ "PaginatedResponseDataItem_NewsItemParams",
+ "PaginatedResponseDataItem_NewsfeedParams",
+ "PaginatedResponseParams",
+ "PartAttachmentParams",
+ "PhoneSwitchParams",
+ "QuickReplyOptionParams",
+ "RecipientParams",
+ "RedactConversationRequestConversationPartParams",
+ "RedactConversationRequestParams",
+ "RedactConversationRequestSourceParams",
+ "RedactConversationRequest_ConversationPartParams",
+ "RedactConversationRequest_SourceParams",
+ "ReferenceParams",
+ "ReplyConversationRequestBodyParams",
+ "SearchRequestParams",
+ "SearchRequestQueryParams",
+ "SegmentListParams",
+ "SingleFilterSearchRequestParams",
+ "SingleFilterSearchRequestValueItemParams",
+ "SingleFilterSearchRequestValueParams",
+ "SlaAppliedParams",
+ "SnoozeConversationRequestParams",
+ "SocialProfileParams",
+ "StartingAfterPagingParams",
+ "SubscriptionTypeListParams",
+ "TagCompanyRequestCompaniesItemParams",
+ "TagCompanyRequestParams",
+ "TagListParams",
+ "TagMultipleUsersRequestParams",
+ "TagMultipleUsersRequestUsersItemParams",
+ "TagsParams",
+ "TeamListParams",
+ "TeamPriorityLevelParams",
+ "TicketCustomAttributesParams",
+ "TicketCustomAttributesValueParams",
+ "TicketListParams",
+ "TicketPartAuthorParams",
+ "TicketPartsParams",
+ "TicketReplyParams",
+ "TicketRequestCustomAttributesParams",
+ "TicketRequestCustomAttributesValueParams",
+ "TicketStateListParams",
+ "TicketTypeAttributeListParams",
+ "TicketTypeAttributeParams",
+ "TicketTypeListParams",
+ "TranslationParams",
+ "UntagCompanyRequestCompaniesItemParams",
+ "UntagCompanyRequestParams",
+ "UpdateArticleRequestBodyParams",
+ "UpdateTicketTypeRequestBodyParams",
+ "VisitorAvatarParams",
+ "VisitorCompaniesParams",
+ "VisitorDeletedObjectParams",
+ "VisitorLocationDataParams",
+ "VisitorParams",
+ "VisitorSegmentsParams",
+ "VisitorSocialProfilesParams",
+ "VisitorTagsParams",
+ "VisitorTagsTagsItemParams",
+ "WhatsappMessageStatusListEventsItemParams",
+ "WhatsappMessageStatusListPagesNextParams",
+ "WhatsappMessageStatusListPagesParams",
+ "WhatsappMessageStatusListParams",
+]
diff --git a/src/intercom/unstable/requests/activity_log.py b/src/intercom/unstable/requests/activity_log.py
new file mode 100644
index 0000000..289e73a
--- /dev/null
+++ b/src/intercom/unstable/requests/activity_log.py
@@ -0,0 +1,34 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing_extensions
+from ..types.activity_log_activity_type import ActivityLogActivityType
+from .activity_log_metadata import ActivityLogMetadataParams
+from .activity_log_performed_by import ActivityLogPerformedByParams
+
+
+class ActivityLogParams(typing_extensions.TypedDict):
+ """
+ Activities performed by Admins.
+ """
+
+ id: typing_extensions.NotRequired[str]
+ """
+ The id representing the activity.
+ """
+
+ performed_by: typing_extensions.NotRequired[ActivityLogPerformedByParams]
+ """
+ Details about the Admin involved in the activity.
+ """
+
+ metadata: typing_extensions.NotRequired[ActivityLogMetadataParams]
+ created_at: typing_extensions.NotRequired[int]
+ """
+ The time the activity was created.
+ """
+
+ activity_type: typing_extensions.NotRequired[ActivityLogActivityType]
+ activity_description: typing_extensions.NotRequired[str]
+ """
+ A sentence or two describing the activity.
+ """
diff --git a/src/intercom/unstable/requests/activity_log_list.py b/src/intercom/unstable/requests/activity_log_list.py
new file mode 100644
index 0000000..b70909d
--- /dev/null
+++ b/src/intercom/unstable/requests/activity_log_list.py
@@ -0,0 +1,24 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing
+
+import typing_extensions
+from .activity_log import ActivityLogParams
+from .cursor_pages import CursorPagesParams
+
+
+class ActivityLogListParams(typing_extensions.TypedDict):
+ """
+ A paginated list of activity logs.
+ """
+
+ type: typing_extensions.NotRequired[str]
+ """
+ String representing the object's type. Always has the value `activity_log.list`.
+ """
+
+ pages: typing_extensions.NotRequired[CursorPagesParams]
+ activity_logs: typing_extensions.NotRequired[typing.Sequence[typing.Optional[ActivityLogParams]]]
+ """
+ An array of activity logs
+ """
diff --git a/src/intercom/unstable/requests/activity_log_metadata.py b/src/intercom/unstable/requests/activity_log_metadata.py
new file mode 100644
index 0000000..aba14d3
--- /dev/null
+++ b/src/intercom/unstable/requests/activity_log_metadata.py
@@ -0,0 +1,54 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing_extensions
+
+
+class ActivityLogMetadataParams(typing_extensions.TypedDict):
+ """
+ Additional data provided about Admin activity.
+ """
+
+ sign_in_method: typing_extensions.NotRequired[str]
+ """
+ The way the admin signed in.
+ """
+
+ external_id: typing_extensions.NotRequired[str]
+ """
+ The unique identifier for the contact which is provided by the Client.
+ """
+
+ away_mode: typing_extensions.NotRequired[bool]
+ """
+ The away mode status which is set to true when away and false when returned.
+ """
+
+ away_status_reason: typing_extensions.NotRequired[str]
+ """
+ The reason the Admin is away.
+ """
+
+ reassign_conversations: typing_extensions.NotRequired[bool]
+ """
+ Indicates if conversations should be reassigned while an Admin is away.
+ """
+
+ source: typing_extensions.NotRequired[str]
+ """
+ The action that initiated the status change.
+ """
+
+ auto_changed: typing_extensions.NotRequired[str]
+ """
+ Indicates if the status was changed automatically or manually.
+ """
+
+ update_by: typing_extensions.NotRequired[int]
+ """
+ The ID of the Admin who initiated the activity.
+ """
+
+ update_by_name: typing_extensions.NotRequired[str]
+ """
+ The name of the Admin who initiated the activity.
+ """
diff --git a/src/intercom/unstable/requests/activity_log_performed_by.py b/src/intercom/unstable/requests/activity_log_performed_by.py
new file mode 100644
index 0000000..9807dbc
--- /dev/null
+++ b/src/intercom/unstable/requests/activity_log_performed_by.py
@@ -0,0 +1,29 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing_extensions
+
+
+class ActivityLogPerformedByParams(typing_extensions.TypedDict):
+ """
+ Details about the Admin involved in the activity.
+ """
+
+ type: typing_extensions.NotRequired[str]
+ """
+ String representing the object's type. Always has the value `admin`.
+ """
+
+ id: typing_extensions.NotRequired[str]
+ """
+ The id representing the admin.
+ """
+
+ email: typing_extensions.NotRequired[str]
+ """
+ The email of the admin.
+ """
+
+ ip: typing_extensions.NotRequired[str]
+ """
+ The IP address of the admin.
+ """
diff --git a/src/intercom/unstable/requests/addressable_list.py b/src/intercom/unstable/requests/addressable_list.py
new file mode 100644
index 0000000..a5f8d53
--- /dev/null
+++ b/src/intercom/unstable/requests/addressable_list.py
@@ -0,0 +1,24 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing_extensions
+
+
+class AddressableListParams(typing_extensions.TypedDict):
+ """
+ A list used to access other resources from a parent model.
+ """
+
+ type: typing_extensions.NotRequired[str]
+ """
+ The addressable object type
+ """
+
+ id: typing_extensions.NotRequired[str]
+ """
+ The id of the addressable object
+ """
+
+ url: typing_extensions.NotRequired[str]
+ """
+ Url to get more company resources for this contact
+ """
diff --git a/src/intercom/unstable/requests/admin_list.py b/src/intercom/unstable/requests/admin_list.py
new file mode 100644
index 0000000..39e4c2b
--- /dev/null
+++ b/src/intercom/unstable/requests/admin_list.py
@@ -0,0 +1,22 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing
+
+import typing_extensions
+from ..admins.requests.admin import AdminParams
+
+
+class AdminListParams(typing_extensions.TypedDict):
+ """
+ A list of admins associated with a given workspace.
+ """
+
+ type: typing_extensions.NotRequired[str]
+ """
+ String representing the object's type. Always has the value `admin.list`.
+ """
+
+ admins: typing_extensions.NotRequired[typing.Sequence[typing.Optional[AdminParams]]]
+ """
+ A list of admins associated with a given workspace.
+ """
diff --git a/src/intercom/unstable/requests/admin_priority_level.py b/src/intercom/unstable/requests/admin_priority_level.py
new file mode 100644
index 0000000..54991ef
--- /dev/null
+++ b/src/intercom/unstable/requests/admin_priority_level.py
@@ -0,0 +1,21 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing
+
+import typing_extensions
+
+
+class AdminPriorityLevelParams(typing_extensions.TypedDict):
+ """
+ Admin priority levels for the team
+ """
+
+ primary_admin_ids: typing_extensions.NotRequired[typing.Sequence[int]]
+ """
+ The primary admin ids for the team
+ """
+
+ secondary_admin_ids: typing_extensions.NotRequired[typing.Sequence[int]]
+ """
+ The secondary admin ids for the team
+ """
diff --git a/src/intercom/unstable/requests/admin_reply_conversation_request.py b/src/intercom/unstable/requests/admin_reply_conversation_request.py
new file mode 100644
index 0000000..a7d9402
--- /dev/null
+++ b/src/intercom/unstable/requests/admin_reply_conversation_request.py
@@ -0,0 +1,46 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing
+
+import typing_extensions
+from ..types.admin_reply_conversation_request_message_type import AdminReplyConversationRequestMessageType
+from .conversation_attachment_files import ConversationAttachmentFilesParams
+from .quick_reply_option import QuickReplyOptionParams
+
+
+class AdminReplyConversationRequestParams(typing_extensions.TypedDict):
+ """
+ Payload of the request to reply on behalf of an admin
+ """
+
+ message_type: AdminReplyConversationRequestMessageType
+ type: typing.Literal["admin"]
+ body: typing_extensions.NotRequired[str]
+ """
+ The text body of the reply. Notes accept some HTML formatting. Must be present for comment and note message types.
+ """
+
+ admin_id: str
+ """
+ The id of the admin who is authoring the comment.
+ """
+
+ created_at: typing_extensions.NotRequired[int]
+ """
+ The time the reply was created. If not provided, the current time will be used.
+ """
+
+ reply_options: typing_extensions.NotRequired[typing.Sequence[QuickReplyOptionParams]]
+ """
+ The quick reply options to display to the end user. Must be present for quick_reply message types.
+ """
+
+ attachment_urls: typing_extensions.NotRequired[typing.Sequence[str]]
+ """
+ A list of image URLs that will be added as attachments. You can include up to 10 URLs.
+ """
+
+ attachment_files: typing_extensions.NotRequired[typing.Sequence[ConversationAttachmentFilesParams]]
+ """
+ A list of files that will be added as attachments. You can include up to 10 files
+ """
diff --git a/src/intercom/unstable/requests/admin_reply_ticket_request.py b/src/intercom/unstable/requests/admin_reply_ticket_request.py
new file mode 100644
index 0000000..f0d3fc0
--- /dev/null
+++ b/src/intercom/unstable/requests/admin_reply_ticket_request.py
@@ -0,0 +1,40 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing
+
+import typing_extensions
+from ..types.admin_reply_ticket_request_message_type import AdminReplyTicketRequestMessageType
+from .admin_reply_ticket_request_reply_options_item import AdminReplyTicketRequestReplyOptionsItemParams
+
+
+class AdminReplyTicketRequestParams(typing_extensions.TypedDict):
+ """
+ Payload of the request to reply on behalf of an admin
+ """
+
+ message_type: AdminReplyTicketRequestMessageType
+ type: typing.Literal["admin"]
+ body: typing_extensions.NotRequired[str]
+ """
+ The text body of the reply. Notes accept some HTML formatting. Must be present for comment and note message types.
+ """
+
+ admin_id: str
+ """
+ The id of the admin who is authoring the comment.
+ """
+
+ created_at: typing_extensions.NotRequired[int]
+ """
+ The time the reply was created. If not provided, the current time will be used.
+ """
+
+ reply_options: typing_extensions.NotRequired[typing.Sequence[AdminReplyTicketRequestReplyOptionsItemParams]]
+ """
+ The quick reply options to display. Must be present for quick_reply message types.
+ """
+
+ attachment_urls: typing_extensions.NotRequired[typing.Sequence[str]]
+ """
+ A list of image URLs that will be added as attachments. You can include up to 10 URLs.
+ """
diff --git a/src/intercom/unstable/requests/admin_reply_ticket_request_reply_options_item.py b/src/intercom/unstable/requests/admin_reply_ticket_request_reply_options_item.py
new file mode 100644
index 0000000..d6a2e42
--- /dev/null
+++ b/src/intercom/unstable/requests/admin_reply_ticket_request_reply_options_item.py
@@ -0,0 +1,16 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing_extensions
+from ...core.serialization import FieldMetadata
+
+
+class AdminReplyTicketRequestReplyOptionsItemParams(typing_extensions.TypedDict):
+ text: str
+ """
+ The text to display in this quick reply option.
+ """
+
+ uuid_: typing_extensions.Annotated[str, FieldMetadata(alias="uuid")]
+ """
+ A unique identifier for this quick reply option. This value will be available within the metadata of the comment ticket part that is created when a user clicks on this reply option.
+ """
diff --git a/src/intercom/unstable/requests/admin_with_app.py b/src/intercom/unstable/requests/admin_with_app.py
new file mode 100644
index 0000000..dbff158
--- /dev/null
+++ b/src/intercom/unstable/requests/admin_with_app.py
@@ -0,0 +1,73 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing
+
+import typing_extensions
+from .admin_with_app_avatar import AdminWithAppAvatarParams
+from .app import AppParams
+
+
+class AdminWithAppParams(typing_extensions.TypedDict):
+ """
+ Admins are the teammate accounts that have access to a workspace
+ """
+
+ type: typing_extensions.NotRequired[str]
+ """
+ String representing the object's type. Always has the value `admin`.
+ """
+
+ id: typing_extensions.NotRequired[str]
+ """
+ The id representing the admin.
+ """
+
+ name: typing_extensions.NotRequired[str]
+ """
+ The name of the admin.
+ """
+
+ email: typing_extensions.NotRequired[str]
+ """
+ The email of the admin.
+ """
+
+ job_title: typing_extensions.NotRequired[str]
+ """
+ The job title of the admin.
+ """
+
+ away_mode_enabled: typing_extensions.NotRequired[bool]
+ """
+ Identifies if this admin is currently set in away mode.
+ """
+
+ away_mode_reassign: typing_extensions.NotRequired[bool]
+ """
+ Identifies if this admin is set to automatically reassign new conversations to the apps default inbox.
+ """
+
+ has_inbox_seat: typing_extensions.NotRequired[bool]
+ """
+ Identifies if this admin has a paid inbox seat to restrict/allow features that require them.
+ """
+
+ team_ids: typing_extensions.NotRequired[typing.Sequence[int]]
+ """
+ This is a list of ids of the teams that this admin is part of.
+ """
+
+ avatar: typing_extensions.NotRequired[AdminWithAppAvatarParams]
+ """
+ This object represents the avatar associated with the admin.
+ """
+
+ email_verified: typing_extensions.NotRequired[bool]
+ """
+ Identifies if this admin's email is verified.
+ """
+
+ app: typing_extensions.NotRequired[AppParams]
+ """
+ App that the admin belongs to.
+ """
diff --git a/src/intercom/unstable/requests/admin_with_app_avatar.py b/src/intercom/unstable/requests/admin_with_app_avatar.py
new file mode 100644
index 0000000..ec55b1b
--- /dev/null
+++ b/src/intercom/unstable/requests/admin_with_app_avatar.py
@@ -0,0 +1,19 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing_extensions
+
+
+class AdminWithAppAvatarParams(typing_extensions.TypedDict):
+ """
+ This object represents the avatar associated with the admin.
+ """
+
+ type: typing_extensions.NotRequired[str]
+ """
+ This is a string that identifies the type of the object. It will always have the value `avatar`.
+ """
+
+ image_url: typing_extensions.NotRequired[str]
+ """
+ This object represents the avatar associated with the admin.
+ """
diff --git a/src/intercom/unstable/requests/app.py b/src/intercom/unstable/requests/app.py
new file mode 100644
index 0000000..7be3bef
--- /dev/null
+++ b/src/intercom/unstable/requests/app.py
@@ -0,0 +1,44 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing_extensions
+
+
+class AppParams(typing_extensions.TypedDict):
+ """
+ App is a workspace on Intercom
+ """
+
+ type: typing_extensions.NotRequired[str]
+ """
+
+ """
+
+ id_code: typing_extensions.NotRequired[str]
+ """
+ The id of the app.
+ """
+
+ name: typing_extensions.NotRequired[str]
+ """
+ The name of the app.
+ """
+
+ region: typing_extensions.NotRequired[str]
+ """
+ The Intercom region the app is located in.
+ """
+
+ timezone: typing_extensions.NotRequired[str]
+ """
+ The timezone of the region where the app is located.
+ """
+
+ created_at: typing_extensions.NotRequired[int]
+ """
+ When the app was created.
+ """
+
+ identity_verification: typing_extensions.NotRequired[bool]
+ """
+ Whether or not the app uses identity verification.
+ """
diff --git a/src/intercom/unstable/requests/article_content.py b/src/intercom/unstable/requests/article_content.py
new file mode 100644
index 0000000..f5486ce
--- /dev/null
+++ b/src/intercom/unstable/requests/article_content.py
@@ -0,0 +1,55 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing_extensions
+from ..types.article_content_state import ArticleContentState
+
+
+class ArticleContentParams(typing_extensions.TypedDict):
+ """
+ The Content of an Article.
+ """
+
+ type: typing_extensions.NotRequired[str]
+ """
+ The type of object - `article_content` .
+ """
+
+ title: typing_extensions.NotRequired[str]
+ """
+ The title of the article.
+ """
+
+ description: typing_extensions.NotRequired[str]
+ """
+ The description of the article.
+ """
+
+ body: typing_extensions.NotRequired[str]
+ """
+ The body of the article.
+ """
+
+ author_id: typing_extensions.NotRequired[int]
+ """
+ The ID of the author of the article.
+ """
+
+ state: typing_extensions.NotRequired[ArticleContentState]
+ """
+ Whether the article is `published` or is a `draft` .
+ """
+
+ created_at: typing_extensions.NotRequired[int]
+ """
+ The time when the article was created (seconds).
+ """
+
+ updated_at: typing_extensions.NotRequired[int]
+ """
+ The time when the article was last updated (seconds).
+ """
+
+ url: typing_extensions.NotRequired[str]
+ """
+ The URL of the article.
+ """
diff --git a/src/intercom/unstable/requests/article_list.py b/src/intercom/unstable/requests/article_list.py
new file mode 100644
index 0000000..08b3768
--- /dev/null
+++ b/src/intercom/unstable/requests/article_list.py
@@ -0,0 +1,29 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing
+
+import typing_extensions
+from ..articles.requests.article_list_item import ArticleListItemParams
+from .cursor_pages import CursorPagesParams
+
+
+class ArticleListParams(typing_extensions.TypedDict):
+ """
+ This will return a list of articles for the App.
+ """
+
+ type: typing_extensions.NotRequired[typing.Literal["list"]]
+ """
+ The type of the object - `list`.
+ """
+
+ pages: typing_extensions.NotRequired[CursorPagesParams]
+ total_count: typing_extensions.NotRequired[int]
+ """
+ A count of the total number of articles.
+ """
+
+ data: typing_extensions.NotRequired[typing.Sequence[ArticleListItemParams]]
+ """
+ An array of Article objects
+ """
diff --git a/src/intercom/unstable/requests/article_statistics.py b/src/intercom/unstable/requests/article_statistics.py
new file mode 100644
index 0000000..9c8c211
--- /dev/null
+++ b/src/intercom/unstable/requests/article_statistics.py
@@ -0,0 +1,46 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing
+
+import typing_extensions
+
+
+class ArticleStatisticsParams(typing_extensions.TypedDict):
+ """
+ The statistics of an article.
+ """
+
+ type: typing_extensions.NotRequired[typing.Literal["article_statistics"]]
+ """
+ The type of object - `article_statistics`.
+ """
+
+ views: typing_extensions.NotRequired[int]
+ """
+ The number of total views the article has received.
+ """
+
+ conversions: typing_extensions.NotRequired[int]
+ """
+ The number of conversations started from the article.
+ """
+
+ reactions: typing_extensions.NotRequired[int]
+ """
+ The number of total reactions the article has received.
+ """
+
+ happy_reaction_percentage: typing_extensions.NotRequired[float]
+ """
+ The percentage of happy reactions the article has received against other types of reaction.
+ """
+
+ neutral_reaction_percentage: typing_extensions.NotRequired[float]
+ """
+ The percentage of neutral reactions the article has received against other types of reaction.
+ """
+
+ sad_reaction_percentage: typing_extensions.NotRequired[float]
+ """
+ The percentage of sad reactions the article has received against other types of reaction.
+ """
diff --git a/src/intercom/unstable/requests/article_translated_content.py b/src/intercom/unstable/requests/article_translated_content.py
new file mode 100644
index 0000000..0adfebf
--- /dev/null
+++ b/src/intercom/unstable/requests/article_translated_content.py
@@ -0,0 +1,207 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing_extensions
+from ...core.serialization import FieldMetadata
+from .article_content import ArticleContentParams
+
+
+class ArticleTranslatedContentParams(typing_extensions.TypedDict):
+ """
+ The Translated Content of an Article. The keys are the locale codes and the values are the translated content of the article.
+ """
+
+ type: typing_extensions.NotRequired[str]
+ """
+ The type of object - article_translated_content.
+ """
+
+ ar: typing_extensions.NotRequired[ArticleContentParams]
+ """
+ The content of the article in Arabic
+ """
+
+ bg: typing_extensions.NotRequired[ArticleContentParams]
+ """
+ The content of the article in Bulgarian
+ """
+
+ bs: typing_extensions.NotRequired[ArticleContentParams]
+ """
+ The content of the article in Bosnian
+ """
+
+ ca: typing_extensions.NotRequired[ArticleContentParams]
+ """
+ The content of the article in Catalan
+ """
+
+ cs: typing_extensions.NotRequired[ArticleContentParams]
+ """
+ The content of the article in Czech
+ """
+
+ da: typing_extensions.NotRequired[ArticleContentParams]
+ """
+ The content of the article in Danish
+ """
+
+ de: typing_extensions.NotRequired[ArticleContentParams]
+ """
+ The content of the article in German
+ """
+
+ el: typing_extensions.NotRequired[ArticleContentParams]
+ """
+ The content of the article in Greek
+ """
+
+ en: typing_extensions.NotRequired[ArticleContentParams]
+ """
+ The content of the article in English
+ """
+
+ es: typing_extensions.NotRequired[ArticleContentParams]
+ """
+ The content of the article in Spanish
+ """
+
+ et: typing_extensions.NotRequired[ArticleContentParams]
+ """
+ The content of the article in Estonian
+ """
+
+ fi: typing_extensions.NotRequired[ArticleContentParams]
+ """
+ The content of the article in Finnish
+ """
+
+ fr: typing_extensions.NotRequired[ArticleContentParams]
+ """
+ The content of the article in French
+ """
+
+ he: typing_extensions.NotRequired[ArticleContentParams]
+ """
+ The content of the article in Hebrew
+ """
+
+ hr: typing_extensions.NotRequired[ArticleContentParams]
+ """
+ The content of the article in Croatian
+ """
+
+ hu: typing_extensions.NotRequired[ArticleContentParams]
+ """
+ The content of the article in Hungarian
+ """
+
+ id: typing_extensions.NotRequired[ArticleContentParams]
+ """
+ The content of the article in Indonesian
+ """
+
+ it: typing_extensions.NotRequired[ArticleContentParams]
+ """
+ The content of the article in Italian
+ """
+
+ ja: typing_extensions.NotRequired[ArticleContentParams]
+ """
+ The content of the article in Japanese
+ """
+
+ ko: typing_extensions.NotRequired[ArticleContentParams]
+ """
+ The content of the article in Korean
+ """
+
+ lt: typing_extensions.NotRequired[ArticleContentParams]
+ """
+ The content of the article in Lithuanian
+ """
+
+ lv: typing_extensions.NotRequired[ArticleContentParams]
+ """
+ The content of the article in Latvian
+ """
+
+ mn: typing_extensions.NotRequired[ArticleContentParams]
+ """
+ The content of the article in Mongolian
+ """
+
+ nb: typing_extensions.NotRequired[ArticleContentParams]
+ """
+ The content of the article in Norwegian
+ """
+
+ nl: typing_extensions.NotRequired[ArticleContentParams]
+ """
+ The content of the article in Dutch
+ """
+
+ pl: typing_extensions.NotRequired[ArticleContentParams]
+ """
+ The content of the article in Polish
+ """
+
+ pt: typing_extensions.NotRequired[ArticleContentParams]
+ """
+ The content of the article in Portuguese (Portugal)
+ """
+
+ ro: typing_extensions.NotRequired[ArticleContentParams]
+ """
+ The content of the article in Romanian
+ """
+
+ ru: typing_extensions.NotRequired[ArticleContentParams]
+ """
+ The content of the article in Russian
+ """
+
+ sl: typing_extensions.NotRequired[ArticleContentParams]
+ """
+ The content of the article in Slovenian
+ """
+
+ sr: typing_extensions.NotRequired[ArticleContentParams]
+ """
+ The content of the article in Serbian
+ """
+
+ sv: typing_extensions.NotRequired[ArticleContentParams]
+ """
+ The content of the article in Swedish
+ """
+
+ tr: typing_extensions.NotRequired[ArticleContentParams]
+ """
+ The content of the article in Turkish
+ """
+
+ vi: typing_extensions.NotRequired[ArticleContentParams]
+ """
+ The content of the article in Vietnamese
+ """
+
+ pt_br: typing_extensions.NotRequired[
+ typing_extensions.Annotated[ArticleContentParams, FieldMetadata(alias="pt-BR")]
+ ]
+ """
+ The content of the article in Portuguese (Brazil)
+ """
+
+ zh_cn: typing_extensions.NotRequired[
+ typing_extensions.Annotated[ArticleContentParams, FieldMetadata(alias="zh-CN")]
+ ]
+ """
+ The content of the article in Chinese (China)
+ """
+
+ zh_tw: typing_extensions.NotRequired[
+ typing_extensions.Annotated[ArticleContentParams, FieldMetadata(alias="zh-TW")]
+ ]
+ """
+ The content of the article in Chinese (Taiwan)
+ """
diff --git a/src/intercom/unstable/requests/assign_conversation_request.py b/src/intercom/unstable/requests/assign_conversation_request.py
new file mode 100644
index 0000000..9608a43
--- /dev/null
+++ b/src/intercom/unstable/requests/assign_conversation_request.py
@@ -0,0 +1,26 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing_extensions
+from ..types.assign_conversation_request_type import AssignConversationRequestType
+
+
+class AssignConversationRequestParams(typing_extensions.TypedDict):
+ """
+ Payload of the request to assign a conversation
+ """
+
+ type: AssignConversationRequestType
+ admin_id: str
+ """
+ The id of the admin who is performing the action.
+ """
+
+ assignee_id: str
+ """
+ The `id` of the `admin` or `team` which will be assigned the conversation. A conversation can be assigned both an admin and a team.\nSet `0` if you want this assign to no admin or team (ie. Unassigned).
+ """
+
+ body: typing_extensions.NotRequired[str]
+ """
+ Optionally you can send a response in the conversation when it is assigned.
+ """
diff --git a/src/intercom/unstable/requests/away_status_reason.py b/src/intercom/unstable/requests/away_status_reason.py
new file mode 100644
index 0000000..b239463
--- /dev/null
+++ b/src/intercom/unstable/requests/away_status_reason.py
@@ -0,0 +1,41 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing_extensions
+
+
+class AwayStatusReasonParams(typing_extensions.TypedDict):
+ type: typing_extensions.NotRequired[str]
+ id: typing_extensions.NotRequired[str]
+ """
+ The unique identifier for the away status reason
+ """
+
+ label: typing_extensions.NotRequired[str]
+ """
+ The display text for the away status reason
+ """
+
+ emoji: typing_extensions.NotRequired[str]
+ """
+ The emoji associated with the status reason
+ """
+
+ order: typing_extensions.NotRequired[int]
+ """
+ The display order of the status reason
+ """
+
+ deleted: typing_extensions.NotRequired[bool]
+ """
+ Whether the status reason has been soft deleted
+ """
+
+ created_at: typing_extensions.NotRequired[int]
+ """
+ The Unix timestamp when the status reason was created
+ """
+
+ updated_at: typing_extensions.NotRequired[int]
+ """
+ The Unix timestamp when the status reason was last updated
+ """
diff --git a/src/intercom/unstable/requests/close_conversation_request.py b/src/intercom/unstable/requests/close_conversation_request.py
new file mode 100644
index 0000000..e864733
--- /dev/null
+++ b/src/intercom/unstable/requests/close_conversation_request.py
@@ -0,0 +1,22 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing
+
+import typing_extensions
+
+
+class CloseConversationRequestParams(typing_extensions.TypedDict):
+ """
+ Payload of the request to close a conversation
+ """
+
+ type: typing.Literal["admin"]
+ admin_id: str
+ """
+ The id of the admin who is performing the action.
+ """
+
+ body: typing_extensions.NotRequired[str]
+ """
+ Optionally you can leave a message in the conversation to provide additional context to the user and other teammates.
+ """
diff --git a/src/intercom/unstable/requests/collection_list.py b/src/intercom/unstable/requests/collection_list.py
new file mode 100644
index 0000000..7078251
--- /dev/null
+++ b/src/intercom/unstable/requests/collection_list.py
@@ -0,0 +1,29 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing
+
+import typing_extensions
+from ..help_center.requests.collection import CollectionParams
+from .cursor_pages import CursorPagesParams
+
+
+class CollectionListParams(typing_extensions.TypedDict):
+ """
+ This will return a list of Collections for the App.
+ """
+
+ type: typing_extensions.NotRequired[typing.Literal["list"]]
+ """
+ The type of the object - `list`.
+ """
+
+ pages: typing_extensions.NotRequired[CursorPagesParams]
+ total_count: typing_extensions.NotRequired[int]
+ """
+ A count of the total number of collections.
+ """
+
+ data: typing_extensions.NotRequired[typing.Sequence[CollectionParams]]
+ """
+ An array of collection objects
+ """
diff --git a/src/intercom/unstable/requests/company_attached_contacts.py b/src/intercom/unstable/requests/company_attached_contacts.py
new file mode 100644
index 0000000..0a35a8e
--- /dev/null
+++ b/src/intercom/unstable/requests/company_attached_contacts.py
@@ -0,0 +1,30 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing
+
+import typing_extensions
+from ..contacts.requests.contact import ContactParams
+from .cursor_pages import CursorPagesParams
+
+
+class CompanyAttachedContactsParams(typing_extensions.TypedDict):
+ """
+ A list of Contact Objects
+ """
+
+ type: typing_extensions.NotRequired[typing.Literal["list"]]
+ """
+ The type of object - `list`
+ """
+
+ data: typing_extensions.NotRequired[typing.Sequence[ContactParams]]
+ """
+ An array containing Contact Objects
+ """
+
+ total_count: typing_extensions.NotRequired[int]
+ """
+ The total number of contacts
+ """
+
+ pages: typing_extensions.NotRequired[CursorPagesParams]
diff --git a/src/intercom/unstable/requests/company_attached_segments.py b/src/intercom/unstable/requests/company_attached_segments.py
new file mode 100644
index 0000000..5e30776
--- /dev/null
+++ b/src/intercom/unstable/requests/company_attached_segments.py
@@ -0,0 +1,22 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing
+
+import typing_extensions
+from ..segments.requests.segment import SegmentParams
+
+
+class CompanyAttachedSegmentsParams(typing_extensions.TypedDict):
+ """
+ A list of Segment Objects
+ """
+
+ type: typing_extensions.NotRequired[typing.Literal["list"]]
+ """
+ The type of object - `list`
+ """
+
+ data: typing_extensions.NotRequired[typing.Sequence[SegmentParams]]
+ """
+ An array containing Segment Objects
+ """
diff --git a/src/intercom/unstable/requests/company_data.py b/src/intercom/unstable/requests/company_data.py
new file mode 100644
index 0000000..5df4c03
--- /dev/null
+++ b/src/intercom/unstable/requests/company_data.py
@@ -0,0 +1,26 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing
+
+import typing_extensions
+
+
+class CompanyDataParams(typing_extensions.TypedDict):
+ """
+ An object containing data about the companies that a contact is associated with.
+ """
+
+ id: typing_extensions.NotRequired[str]
+ """
+ The unique identifier for the company which is given by Intercom.
+ """
+
+ type: typing_extensions.NotRequired[typing.Literal["company"]]
+ """
+ The type of the object. Always company.
+ """
+
+ url: typing_extensions.NotRequired[str]
+ """
+ The relative URL of the company.
+ """
diff --git a/src/intercom/unstable/requests/company_list.py b/src/intercom/unstable/requests/company_list.py
new file mode 100644
index 0000000..b3521b2
--- /dev/null
+++ b/src/intercom/unstable/requests/company_list.py
@@ -0,0 +1,29 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing
+
+import typing_extensions
+from ..companies.requests.company import CompanyParams
+from .cursor_pages import CursorPagesParams
+
+
+class CompanyListParams(typing_extensions.TypedDict):
+ """
+ This will return a list of companies for the App.
+ """
+
+ type: typing_extensions.NotRequired[typing.Literal["list"]]
+ """
+ The type of object - `list`.
+ """
+
+ pages: typing_extensions.NotRequired[CursorPagesParams]
+ total_count: typing_extensions.NotRequired[int]
+ """
+ The total number of companies.
+ """
+
+ data: typing_extensions.NotRequired[typing.Sequence[CompanyParams]]
+ """
+ An array containing Company Objects.
+ """
diff --git a/src/intercom/unstable/requests/company_scroll.py b/src/intercom/unstable/requests/company_scroll.py
new file mode 100644
index 0000000..cdea28c
--- /dev/null
+++ b/src/intercom/unstable/requests/company_scroll.py
@@ -0,0 +1,30 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing
+
+import typing_extensions
+from ..companies.requests.company import CompanyParams
+from .cursor_pages import CursorPagesParams
+
+
+class CompanyScrollParams(typing_extensions.TypedDict):
+ """
+ Companies allow you to represent organizations using your product. Each company will have its own description and be associated with contacts. You can fetch, create, update and list companies.
+ """
+
+ type: typing_extensions.NotRequired[typing.Literal["list"]]
+ """
+ The type of object - `list`
+ """
+
+ data: typing_extensions.NotRequired[typing.Sequence[CompanyParams]]
+ pages: typing_extensions.NotRequired[CursorPagesParams]
+ total_count: typing_extensions.NotRequired[int]
+ """
+ The total number of companies
+ """
+
+ scroll_param: typing_extensions.NotRequired[str]
+ """
+ The scroll parameter to use in the next request to fetch the next page of results.
+ """
diff --git a/src/intercom/unstable/requests/contact_archived.py b/src/intercom/unstable/requests/contact_archived.py
new file mode 100644
index 0000000..9eca80e
--- /dev/null
+++ b/src/intercom/unstable/requests/contact_archived.py
@@ -0,0 +1,15 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing_extensions
+from .contact_reference import ContactReferenceParams
+
+
+class ContactArchivedParams(ContactReferenceParams):
+ """
+ archived contact object
+ """
+
+ archived: typing_extensions.NotRequired[bool]
+ """
+ Whether the contact is archived or not.
+ """
diff --git a/src/intercom/unstable/requests/contact_attached_companies.py b/src/intercom/unstable/requests/contact_attached_companies.py
new file mode 100644
index 0000000..6711bd2
--- /dev/null
+++ b/src/intercom/unstable/requests/contact_attached_companies.py
@@ -0,0 +1,30 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing
+
+import typing_extensions
+from ..companies.requests.company import CompanyParams
+from .pages_link import PagesLinkParams
+
+
+class ContactAttachedCompaniesParams(typing_extensions.TypedDict):
+ """
+ A list of Company Objects
+ """
+
+ type: typing_extensions.NotRequired[typing.Literal["list"]]
+ """
+ The type of object
+ """
+
+ companies: typing_extensions.NotRequired[typing.Sequence[CompanyParams]]
+ """
+ An array containing Company Objects
+ """
+
+ total_count: typing_extensions.NotRequired[int]
+ """
+ The total number of companies associated to this contact
+ """
+
+ pages: typing_extensions.NotRequired[PagesLinkParams]
diff --git a/src/intercom/unstable/requests/contact_blocked.py b/src/intercom/unstable/requests/contact_blocked.py
new file mode 100644
index 0000000..2a4d7da
--- /dev/null
+++ b/src/intercom/unstable/requests/contact_blocked.py
@@ -0,0 +1,15 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing_extensions
+from .contact_reference import ContactReferenceParams
+
+
+class ContactBlockedParams(ContactReferenceParams):
+ """
+ blocked contact object
+ """
+
+ blocked: typing_extensions.NotRequired[bool]
+ """
+ Always true.
+ """
diff --git a/src/intercom/unstable/requests/contact_companies.py b/src/intercom/unstable/requests/contact_companies.py
new file mode 100644
index 0000000..3599f0f
--- /dev/null
+++ b/src/intercom/unstable/requests/contact_companies.py
@@ -0,0 +1,32 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing
+
+import typing_extensions
+from .company_data import CompanyDataParams
+
+
+class ContactCompaniesParams(typing_extensions.TypedDict):
+ """
+ An object with metadata about companies attached to a contact . Up to 10 will be displayed here. Use the url to get more.
+ """
+
+ data: typing_extensions.NotRequired[typing.Sequence[CompanyDataParams]]
+ """
+ An array of company data objects attached to the contact.
+ """
+
+ url: typing_extensions.NotRequired[str]
+ """
+ Url to get more company resources for this contact
+ """
+
+ total_count: typing_extensions.NotRequired[int]
+ """
+ Integer representing the total number of companies attached to this contact
+ """
+
+ has_more: typing_extensions.NotRequired[bool]
+ """
+ Whether there's more Addressable Objects to be viewed. If true, use the url to view all
+ """
diff --git a/src/intercom/unstable/requests/contact_deleted.py b/src/intercom/unstable/requests/contact_deleted.py
new file mode 100644
index 0000000..0fe68f4
--- /dev/null
+++ b/src/intercom/unstable/requests/contact_deleted.py
@@ -0,0 +1,15 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing_extensions
+from .contact_reference import ContactReferenceParams
+
+
+class ContactDeletedParams(ContactReferenceParams):
+ """
+ deleted contact object
+ """
+
+ deleted: typing_extensions.NotRequired[bool]
+ """
+ Whether the contact is deleted or not.
+ """
diff --git a/src/intercom/unstable/requests/contact_list.py b/src/intercom/unstable/requests/contact_list.py
new file mode 100644
index 0000000..098f44e
--- /dev/null
+++ b/src/intercom/unstable/requests/contact_list.py
@@ -0,0 +1,30 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing
+
+import typing_extensions
+from ..contacts.requests.contact import ContactParams
+from .cursor_pages import CursorPagesParams
+
+
+class ContactListParams(typing_extensions.TypedDict):
+ """
+ Contacts are your users in Intercom.
+ """
+
+ type: typing_extensions.NotRequired[typing.Literal["list"]]
+ """
+ Always list
+ """
+
+ data: typing_extensions.NotRequired[typing.Sequence[ContactParams]]
+ """
+ The list of contact objects
+ """
+
+ total_count: typing_extensions.NotRequired[int]
+ """
+ A count of the total number of objects.
+ """
+
+ pages: typing_extensions.NotRequired[CursorPagesParams]
diff --git a/src/intercom/unstable/requests/contact_location.py b/src/intercom/unstable/requests/contact_location.py
new file mode 100644
index 0000000..88e36fb
--- /dev/null
+++ b/src/intercom/unstable/requests/contact_location.py
@@ -0,0 +1,29 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing_extensions
+
+
+class ContactLocationParams(typing_extensions.TypedDict):
+ """
+ An object containing location meta data about a Intercom contact.
+ """
+
+ type: typing_extensions.NotRequired[str]
+ """
+ Always location
+ """
+
+ country: typing_extensions.NotRequired[str]
+ """
+ The country that the contact is located in
+ """
+
+ region: typing_extensions.NotRequired[str]
+ """
+ The overal region that the contact is located in
+ """
+
+ city: typing_extensions.NotRequired[str]
+ """
+ The city that the contact is located in
+ """
diff --git a/src/intercom/unstable/requests/contact_notes.py b/src/intercom/unstable/requests/contact_notes.py
new file mode 100644
index 0000000..06491ba
--- /dev/null
+++ b/src/intercom/unstable/requests/contact_notes.py
@@ -0,0 +1,32 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing
+
+import typing_extensions
+from .addressable_list import AddressableListParams
+
+
+class ContactNotesParams(typing_extensions.TypedDict):
+ """
+ An object containing notes meta data about the notes that a contact has. Up to 10 will be displayed here. Use the url to get more.
+ """
+
+ data: typing_extensions.NotRequired[typing.Sequence[AddressableListParams]]
+ """
+ This object represents the notes attached to a contact.
+ """
+
+ url: typing_extensions.NotRequired[str]
+ """
+ Url to get more company resources for this contact
+ """
+
+ total_count: typing_extensions.NotRequired[int]
+ """
+ Int representing the total number of companyies attached to this contact
+ """
+
+ has_more: typing_extensions.NotRequired[bool]
+ """
+ Whether there's more Addressable Objects to be viewed. If true, use the url to view all
+ """
diff --git a/src/intercom/unstable/requests/contact_reference.py b/src/intercom/unstable/requests/contact_reference.py
new file mode 100644
index 0000000..3603e2a
--- /dev/null
+++ b/src/intercom/unstable/requests/contact_reference.py
@@ -0,0 +1,26 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing
+
+import typing_extensions
+
+
+class ContactReferenceParams(typing_extensions.TypedDict):
+ """
+ reference to contact object
+ """
+
+ type: typing_extensions.NotRequired[typing.Literal["contact"]]
+ """
+ always contact
+ """
+
+ id: typing_extensions.NotRequired[str]
+ """
+ The unique identifier for the contact which is given by Intercom.
+ """
+
+ external_id: typing_extensions.NotRequired[str]
+ """
+ The unique identifier for the contact which is provided by the Client.
+ """
diff --git a/src/intercom/unstable/requests/contact_reply_base_request.py b/src/intercom/unstable/requests/contact_reply_base_request.py
new file mode 100644
index 0000000..ee4c1ed
--- /dev/null
+++ b/src/intercom/unstable/requests/contact_reply_base_request.py
@@ -0,0 +1,30 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing
+
+import typing_extensions
+from .contact_reply_base_request_reply_options_item import ContactReplyBaseRequestReplyOptionsItemParams
+
+
+class ContactReplyBaseRequestParams(typing_extensions.TypedDict):
+ message_type: typing.Literal["comment"]
+ type: typing.Literal["user"]
+ body: str
+ """
+ The text body of the comment.
+ """
+
+ created_at: typing_extensions.NotRequired[int]
+ """
+ The time the reply was created. If not provided, the current time will be used.
+ """
+
+ attachment_urls: typing_extensions.NotRequired[typing.Sequence[str]]
+ """
+ A list of image URLs that will be added as attachments. You can include up to 10 URLs.
+ """
+
+ reply_options: typing_extensions.NotRequired[typing.Sequence[ContactReplyBaseRequestReplyOptionsItemParams]]
+ """
+ The quick reply selection the contact wishes to respond with. These map to buttons displayed in the Messenger UI if sent by a bot, or the reply options sent by an Admin via the API.
+ """
diff --git a/src/intercom/unstable/requests/contact_reply_base_request_reply_options_item.py b/src/intercom/unstable/requests/contact_reply_base_request_reply_options_item.py
new file mode 100644
index 0000000..c534def
--- /dev/null
+++ b/src/intercom/unstable/requests/contact_reply_base_request_reply_options_item.py
@@ -0,0 +1,16 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing_extensions
+from ...core.serialization import FieldMetadata
+
+
+class ContactReplyBaseRequestReplyOptionsItemParams(typing_extensions.TypedDict):
+ text: str
+ """
+ The text of the chosen reply option.
+ """
+
+ uuid_: typing_extensions.Annotated[str, FieldMetadata(alias="uuid")]
+ """
+ The unique identifier for the quick reply option selected.
+ """
diff --git a/src/intercom/unstable/requests/contact_reply_conversation_request.py b/src/intercom/unstable/requests/contact_reply_conversation_request.py
new file mode 100644
index 0000000..cfcec03
--- /dev/null
+++ b/src/intercom/unstable/requests/contact_reply_conversation_request.py
@@ -0,0 +1,11 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing
+
+from .contact_reply_email_request import ContactReplyEmailRequestParams
+from .contact_reply_intercom_user_id_request import ContactReplyIntercomUserIdRequestParams
+from .contact_reply_user_id_request import ContactReplyUserIdRequestParams
+
+ContactReplyConversationRequestParams = typing.Union[
+ ContactReplyIntercomUserIdRequestParams, ContactReplyEmailRequestParams, ContactReplyUserIdRequestParams
+]
diff --git a/src/intercom/unstable/requests/contact_reply_email_request.py b/src/intercom/unstable/requests/contact_reply_email_request.py
new file mode 100644
index 0000000..7f46ba8
--- /dev/null
+++ b/src/intercom/unstable/requests/contact_reply_email_request.py
@@ -0,0 +1,23 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing
+
+import typing_extensions
+from .contact_reply_base_request import ContactReplyBaseRequestParams
+from .conversation_attachment_files import ConversationAttachmentFilesParams
+
+
+class ContactReplyEmailRequestParams(ContactReplyBaseRequestParams):
+ """
+ Payload of the request to reply on behalf of a contact using their `email`
+ """
+
+ email: str
+ """
+ The email you have defined for the user.
+ """
+
+ attachment_files: typing_extensions.NotRequired[typing.Sequence[ConversationAttachmentFilesParams]]
+ """
+ A list of files that will be added as attachments.
+ """
diff --git a/src/intercom/unstable/requests/contact_reply_intercom_user_id_request.py b/src/intercom/unstable/requests/contact_reply_intercom_user_id_request.py
new file mode 100644
index 0000000..31c505d
--- /dev/null
+++ b/src/intercom/unstable/requests/contact_reply_intercom_user_id_request.py
@@ -0,0 +1,23 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing
+
+import typing_extensions
+from .contact_reply_base_request import ContactReplyBaseRequestParams
+from .conversation_attachment_files import ConversationAttachmentFilesParams
+
+
+class ContactReplyIntercomUserIdRequestParams(ContactReplyBaseRequestParams):
+ """
+ Payload of the request to reply on behalf of a contact using their `intercom_user_id`
+ """
+
+ intercom_user_id: str
+ """
+ The identifier for the contact as given by Intercom.
+ """
+
+ attachment_files: typing_extensions.NotRequired[typing.Sequence[ConversationAttachmentFilesParams]]
+ """
+ A list of files that will be added as attachments.
+ """
diff --git a/src/intercom/unstable/requests/contact_reply_ticket_email_request.py b/src/intercom/unstable/requests/contact_reply_ticket_email_request.py
new file mode 100644
index 0000000..2094596
--- /dev/null
+++ b/src/intercom/unstable/requests/contact_reply_ticket_email_request.py
@@ -0,0 +1,14 @@
+# This file was auto-generated by Fern from our API Definition.
+
+from .contact_reply_base_request import ContactReplyBaseRequestParams
+
+
+class ContactReplyTicketEmailRequestParams(ContactReplyBaseRequestParams):
+ """
+ Payload of the request to reply on behalf of a contact using their `email`
+ """
+
+ email: str
+ """
+ The email you have defined for the user.
+ """
diff --git a/src/intercom/unstable/requests/contact_reply_ticket_intercom_user_id_request.py b/src/intercom/unstable/requests/contact_reply_ticket_intercom_user_id_request.py
new file mode 100644
index 0000000..9f1679c
--- /dev/null
+++ b/src/intercom/unstable/requests/contact_reply_ticket_intercom_user_id_request.py
@@ -0,0 +1,14 @@
+# This file was auto-generated by Fern from our API Definition.
+
+from .contact_reply_base_request import ContactReplyBaseRequestParams
+
+
+class ContactReplyTicketIntercomUserIdRequestParams(ContactReplyBaseRequestParams):
+ """
+ Payload of the request to reply on behalf of a contact using their `intercom_user_id`
+ """
+
+ intercom_user_id: str
+ """
+ The identifier for the contact as given by Intercom.
+ """
diff --git a/src/intercom/unstable/requests/contact_reply_ticket_request.py b/src/intercom/unstable/requests/contact_reply_ticket_request.py
new file mode 100644
index 0000000..52fa246
--- /dev/null
+++ b/src/intercom/unstable/requests/contact_reply_ticket_request.py
@@ -0,0 +1,13 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing
+
+from .contact_reply_ticket_email_request import ContactReplyTicketEmailRequestParams
+from .contact_reply_ticket_intercom_user_id_request import ContactReplyTicketIntercomUserIdRequestParams
+from .contact_reply_ticket_user_id_request import ContactReplyTicketUserIdRequestParams
+
+ContactReplyTicketRequestParams = typing.Union[
+ ContactReplyTicketIntercomUserIdRequestParams,
+ ContactReplyTicketUserIdRequestParams,
+ ContactReplyTicketEmailRequestParams,
+]
diff --git a/src/intercom/unstable/requests/contact_reply_ticket_user_id_request.py b/src/intercom/unstable/requests/contact_reply_ticket_user_id_request.py
new file mode 100644
index 0000000..d2e5224
--- /dev/null
+++ b/src/intercom/unstable/requests/contact_reply_ticket_user_id_request.py
@@ -0,0 +1,14 @@
+# This file was auto-generated by Fern from our API Definition.
+
+from .contact_reply_base_request import ContactReplyBaseRequestParams
+
+
+class ContactReplyTicketUserIdRequestParams(ContactReplyBaseRequestParams):
+ """
+ Payload of the request to reply on behalf of a contact using their `user_id`
+ """
+
+ user_id: str
+ """
+ The external_id you have defined for the contact.
+ """
diff --git a/src/intercom/unstable/requests/contact_reply_user_id_request.py b/src/intercom/unstable/requests/contact_reply_user_id_request.py
new file mode 100644
index 0000000..7f06d4e
--- /dev/null
+++ b/src/intercom/unstable/requests/contact_reply_user_id_request.py
@@ -0,0 +1,23 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing
+
+import typing_extensions
+from .contact_reply_base_request import ContactReplyBaseRequestParams
+from .conversation_attachment_files import ConversationAttachmentFilesParams
+
+
+class ContactReplyUserIdRequestParams(ContactReplyBaseRequestParams):
+ """
+ Payload of the request to reply on behalf of a contact using their `user_id`
+ """
+
+ user_id: str
+ """
+ The external_id you have defined for the contact.
+ """
+
+ attachment_files: typing_extensions.NotRequired[typing.Sequence[ConversationAttachmentFilesParams]]
+ """
+ A list of files that will be added as attachments. You can include up to 10 files.
+ """
diff --git a/src/intercom/unstable/requests/contact_segments.py b/src/intercom/unstable/requests/contact_segments.py
new file mode 100644
index 0000000..228c56a
--- /dev/null
+++ b/src/intercom/unstable/requests/contact_segments.py
@@ -0,0 +1,22 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing
+
+import typing_extensions
+from ..segments.requests.segment import SegmentParams
+
+
+class ContactSegmentsParams(typing_extensions.TypedDict):
+ """
+ A list of segments objects attached to a specific contact.
+ """
+
+ type: typing_extensions.NotRequired[typing.Literal["list"]]
+ """
+ The type of the object
+ """
+
+ data: typing_extensions.NotRequired[typing.Sequence[SegmentParams]]
+ """
+ Segment objects associated with the contact.
+ """
diff --git a/src/intercom/unstable/requests/contact_social_profiles.py b/src/intercom/unstable/requests/contact_social_profiles.py
new file mode 100644
index 0000000..9aacf2e
--- /dev/null
+++ b/src/intercom/unstable/requests/contact_social_profiles.py
@@ -0,0 +1,17 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing
+
+import typing_extensions
+from .social_profile import SocialProfileParams
+
+
+class ContactSocialProfilesParams(typing_extensions.TypedDict):
+ """
+ An object containing social profiles that a contact has.
+ """
+
+ data: typing_extensions.NotRequired[typing.Sequence[SocialProfileParams]]
+ """
+ A list of social profiles objects associated with the contact.
+ """
diff --git a/src/intercom/unstable/requests/contact_subscription_types.py b/src/intercom/unstable/requests/contact_subscription_types.py
new file mode 100644
index 0000000..4ba05da
--- /dev/null
+++ b/src/intercom/unstable/requests/contact_subscription_types.py
@@ -0,0 +1,32 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing
+
+import typing_extensions
+from .addressable_list import AddressableListParams
+
+
+class ContactSubscriptionTypesParams(typing_extensions.TypedDict):
+ """
+ An object containing Subscription Types meta data about the SubscriptionTypes that a contact has.
+ """
+
+ data: typing_extensions.NotRequired[typing.Sequence[AddressableListParams]]
+ """
+ This object represents the subscriptions attached to a contact.
+ """
+
+ url: typing_extensions.NotRequired[str]
+ """
+ Url to get more subscription type resources for this contact
+ """
+
+ total_count: typing_extensions.NotRequired[int]
+ """
+ Int representing the total number of subscription types attached to this contact
+ """
+
+ has_more: typing_extensions.NotRequired[bool]
+ """
+ Whether there's more Addressable Objects to be viewed. If true, use the url to view all
+ """
diff --git a/src/intercom/unstable/requests/contact_tags.py b/src/intercom/unstable/requests/contact_tags.py
new file mode 100644
index 0000000..6118365
--- /dev/null
+++ b/src/intercom/unstable/requests/contact_tags.py
@@ -0,0 +1,32 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing
+
+import typing_extensions
+from .addressable_list import AddressableListParams
+
+
+class ContactTagsParams(typing_extensions.TypedDict):
+ """
+ An object containing tags meta data about the tags that a contact has. Up to 10 will be displayed here. Use the url to get more.
+ """
+
+ data: typing_extensions.NotRequired[typing.Sequence[AddressableListParams]]
+ """
+ This object represents the tags attached to a contact.
+ """
+
+ url: typing_extensions.NotRequired[str]
+ """
+ url to get more tag resources for this contact
+ """
+
+ total_count: typing_extensions.NotRequired[int]
+ """
+ Int representing the total number of tags attached to this contact
+ """
+
+ has_more: typing_extensions.NotRequired[bool]
+ """
+ Whether there's more Addressable Objects to be viewed. If true, use the url to view all
+ """
diff --git a/src/intercom/unstable/requests/contact_unarchived.py b/src/intercom/unstable/requests/contact_unarchived.py
new file mode 100644
index 0000000..79bae47
--- /dev/null
+++ b/src/intercom/unstable/requests/contact_unarchived.py
@@ -0,0 +1,15 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing_extensions
+from .contact_reference import ContactReferenceParams
+
+
+class ContactUnarchivedParams(ContactReferenceParams):
+ """
+ unarchived contact object
+ """
+
+ archived: typing_extensions.NotRequired[bool]
+ """
+ Whether the contact is archived or not.
+ """
diff --git a/src/intercom/unstable/requests/content_sources_list.py b/src/intercom/unstable/requests/content_sources_list.py
new file mode 100644
index 0000000..3704f47
--- /dev/null
+++ b/src/intercom/unstable/requests/content_sources_list.py
@@ -0,0 +1,19 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing
+
+import typing_extensions
+from ..ai_content_source.requests.content_source import ContentSourceParams
+
+
+class ContentSourcesListParams(typing_extensions.TypedDict):
+ type: typing_extensions.NotRequired[typing.Literal["content_source.list"]]
+ total_count: typing_extensions.NotRequired[int]
+ """
+ The total number of content sources used by AI Agent in the conversation.
+ """
+
+ content_sources: typing_extensions.NotRequired[typing.Sequence[ContentSourceParams]]
+ """
+ The content sources used by AI Agent in the conversation.
+ """
diff --git a/src/intercom/unstable/requests/conversation_attachment_files.py b/src/intercom/unstable/requests/conversation_attachment_files.py
new file mode 100644
index 0000000..64e56dd
--- /dev/null
+++ b/src/intercom/unstable/requests/conversation_attachment_files.py
@@ -0,0 +1,24 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing_extensions
+
+
+class ConversationAttachmentFilesParams(typing_extensions.TypedDict):
+ """
+ Properties of the attachment files in a conversation part
+ """
+
+ content_type: typing_extensions.NotRequired[str]
+ """
+ The content type of the file
+ """
+
+ data: typing_extensions.NotRequired[str]
+ """
+ The base64 encoded file data.
+ """
+
+ name: typing_extensions.NotRequired[str]
+ """
+ The name of the file.
+ """
diff --git a/src/intercom/unstable/requests/conversation_attribute_updated_by_admin.py b/src/intercom/unstable/requests/conversation_attribute_updated_by_admin.py
new file mode 100644
index 0000000..f32b934
--- /dev/null
+++ b/src/intercom/unstable/requests/conversation_attribute_updated_by_admin.py
@@ -0,0 +1,14 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing_extensions
+from .conversation_attribute_updated_by_admin_attribute import ConversationAttributeUpdatedByAdminAttributeParams
+from .conversation_attribute_updated_by_admin_value import ConversationAttributeUpdatedByAdminValueParams
+
+
+class ConversationAttributeUpdatedByAdminParams(typing_extensions.TypedDict):
+ """
+ Contains details about Custom Data Attributes (CDAs) that were modified by an admin (operator) for conversation part type conversation_attribute_updated_by_admin.
+ """
+
+ attribute: typing_extensions.NotRequired[ConversationAttributeUpdatedByAdminAttributeParams]
+ value: typing_extensions.NotRequired[ConversationAttributeUpdatedByAdminValueParams]
diff --git a/src/intercom/unstable/requests/conversation_attribute_updated_by_admin_attribute.py b/src/intercom/unstable/requests/conversation_attribute_updated_by_admin_attribute.py
new file mode 100644
index 0000000..7162373
--- /dev/null
+++ b/src/intercom/unstable/requests/conversation_attribute_updated_by_admin_attribute.py
@@ -0,0 +1,10 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing_extensions
+
+
+class ConversationAttributeUpdatedByAdminAttributeParams(typing_extensions.TypedDict):
+ name: typing_extensions.NotRequired[str]
+ """
+ Name of the CDA updated
+ """
diff --git a/src/intercom/unstable/requests/conversation_attribute_updated_by_admin_value.py b/src/intercom/unstable/requests/conversation_attribute_updated_by_admin_value.py
new file mode 100644
index 0000000..34b7fa3
--- /dev/null
+++ b/src/intercom/unstable/requests/conversation_attribute_updated_by_admin_value.py
@@ -0,0 +1,10 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing_extensions
+
+
+class ConversationAttributeUpdatedByAdminValueParams(typing_extensions.TypedDict):
+ name: typing_extensions.NotRequired[str]
+ """
+ Value of the CDA updated
+ """
diff --git a/src/intercom/unstable/requests/conversation_attribute_updated_by_workflow.py b/src/intercom/unstable/requests/conversation_attribute_updated_by_workflow.py
new file mode 100644
index 0000000..8bdbbe5
--- /dev/null
+++ b/src/intercom/unstable/requests/conversation_attribute_updated_by_workflow.py
@@ -0,0 +1,16 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing_extensions
+from .conversation_attribute_updated_by_workflow_attribute import ConversationAttributeUpdatedByWorkflowAttributeParams
+from .conversation_attribute_updated_by_workflow_value import ConversationAttributeUpdatedByWorkflowValueParams
+from .conversation_attribute_updated_by_workflow_workflow import ConversationAttributeUpdatedByWorkflowWorkflowParams
+
+
+class ConversationAttributeUpdatedByWorkflowParams(typing_extensions.TypedDict):
+ """
+ Contains details about the workflow that was triggered and any Custom Data Attributes (CDAs) that were modified during the workflow execution for conversation part type conversation_attribute_updated_by_workflow.
+ """
+
+ workflow: typing_extensions.NotRequired[ConversationAttributeUpdatedByWorkflowWorkflowParams]
+ attribute: typing_extensions.NotRequired[ConversationAttributeUpdatedByWorkflowAttributeParams]
+ value: typing_extensions.NotRequired[ConversationAttributeUpdatedByWorkflowValueParams]
diff --git a/src/intercom/unstable/requests/conversation_attribute_updated_by_workflow_attribute.py b/src/intercom/unstable/requests/conversation_attribute_updated_by_workflow_attribute.py
new file mode 100644
index 0000000..0b77bf0
--- /dev/null
+++ b/src/intercom/unstable/requests/conversation_attribute_updated_by_workflow_attribute.py
@@ -0,0 +1,10 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing_extensions
+
+
+class ConversationAttributeUpdatedByWorkflowAttributeParams(typing_extensions.TypedDict):
+ name: typing_extensions.NotRequired[str]
+ """
+ Name of the CDA updated
+ """
diff --git a/src/intercom/unstable/requests/conversation_attribute_updated_by_workflow_value.py b/src/intercom/unstable/requests/conversation_attribute_updated_by_workflow_value.py
new file mode 100644
index 0000000..0c1ebbd
--- /dev/null
+++ b/src/intercom/unstable/requests/conversation_attribute_updated_by_workflow_value.py
@@ -0,0 +1,10 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing_extensions
+
+
+class ConversationAttributeUpdatedByWorkflowValueParams(typing_extensions.TypedDict):
+ name: typing_extensions.NotRequired[str]
+ """
+ Value of the CDA updated
+ """
diff --git a/src/intercom/unstable/requests/conversation_attribute_updated_by_workflow_workflow.py b/src/intercom/unstable/requests/conversation_attribute_updated_by_workflow_workflow.py
new file mode 100644
index 0000000..536ff9e
--- /dev/null
+++ b/src/intercom/unstable/requests/conversation_attribute_updated_by_workflow_workflow.py
@@ -0,0 +1,10 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing_extensions
+
+
+class ConversationAttributeUpdatedByWorkflowWorkflowParams(typing_extensions.TypedDict):
+ name: typing_extensions.NotRequired[str]
+ """
+ Name of the workflow
+ """
diff --git a/src/intercom/unstable/requests/conversation_contacts.py b/src/intercom/unstable/requests/conversation_contacts.py
new file mode 100644
index 0000000..4aeaf68
--- /dev/null
+++ b/src/intercom/unstable/requests/conversation_contacts.py
@@ -0,0 +1,22 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing
+
+import typing_extensions
+from .contact_reference import ContactReferenceParams
+
+
+class ConversationContactsParams(typing_extensions.TypedDict):
+ """
+ The list of contacts (users or leads) involved in this conversation. This will only contain one customer unless more were added via the group conversation feature.
+ """
+
+ type: typing_extensions.NotRequired[typing.Literal["contact.list"]]
+ """
+
+ """
+
+ contacts: typing_extensions.NotRequired[typing.Sequence[ContactReferenceParams]]
+ """
+ The list of contacts (users or leads) involved in this conversation. This will only contain one customer unless more were added via the group conversation feature.
+ """
diff --git a/src/intercom/unstable/requests/conversation_deleted.py b/src/intercom/unstable/requests/conversation_deleted.py
new file mode 100644
index 0000000..700a1d1
--- /dev/null
+++ b/src/intercom/unstable/requests/conversation_deleted.py
@@ -0,0 +1,26 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing
+
+import typing_extensions
+
+
+class ConversationDeletedParams(typing_extensions.TypedDict):
+ """
+ deleted conversation object
+ """
+
+ id: typing_extensions.NotRequired[str]
+ """
+ The unique identifier for the conversation.
+ """
+
+ object: typing_extensions.NotRequired[typing.Literal["conversation"]]
+ """
+ always conversation
+ """
+
+ deleted: typing_extensions.NotRequired[bool]
+ """
+ Whether the conversation is deleted or not.
+ """
diff --git a/src/intercom/unstable/requests/conversation_first_contact_reply.py b/src/intercom/unstable/requests/conversation_first_contact_reply.py
new file mode 100644
index 0000000..bd326a2
--- /dev/null
+++ b/src/intercom/unstable/requests/conversation_first_contact_reply.py
@@ -0,0 +1,24 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing_extensions
+
+
+class ConversationFirstContactReplyParams(typing_extensions.TypedDict):
+ """
+ An object containing information on the first users message. For a contact initiated message this will represent the users original message.
+ """
+
+ created_at: typing_extensions.NotRequired[int]
+ """
+
+ """
+
+ type: typing_extensions.NotRequired[str]
+ """
+
+ """
+
+ url: typing_extensions.NotRequired[str]
+ """
+
+ """
diff --git a/src/intercom/unstable/requests/conversation_list.py b/src/intercom/unstable/requests/conversation_list.py
new file mode 100644
index 0000000..dfe2db8
--- /dev/null
+++ b/src/intercom/unstable/requests/conversation_list.py
@@ -0,0 +1,30 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing
+
+import typing_extensions
+from ..conversations.requests.conversation import ConversationParams
+from .cursor_pages import CursorPagesParams
+
+
+class ConversationListParams(typing_extensions.TypedDict):
+ """
+ Conversations are how you can communicate with users in Intercom. They are created when a contact replies to an outbound message, or when one admin directly sends a message to a single contact.
+ """
+
+ type: typing_extensions.NotRequired[typing.Literal["conversation.list"]]
+ """
+ Always conversation.list
+ """
+
+ conversations: typing_extensions.NotRequired[typing.Sequence[ConversationParams]]
+ """
+ The list of conversation objects
+ """
+
+ total_count: typing_extensions.NotRequired[int]
+ """
+ A count of the total number of objects.
+ """
+
+ pages: typing_extensions.NotRequired[CursorPagesParams]
diff --git a/src/intercom/unstable/requests/conversation_part.py b/src/intercom/unstable/requests/conversation_part.py
new file mode 100644
index 0000000..79023ad
--- /dev/null
+++ b/src/intercom/unstable/requests/conversation_part.py
@@ -0,0 +1,93 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing
+
+import typing_extensions
+from ..tags.requests.tag_basic import TagBasicParams
+from ..types.conversation_part_state import ConversationPartState
+from .conversation_part_author import ConversationPartAuthorParams
+from .conversation_part_metadata import ConversationPartMetadataParams
+from .email_message_metadata import EmailMessageMetadataParams
+from .event_details import EventDetailsParams
+from .part_attachment import PartAttachmentParams
+from .reference import ReferenceParams
+
+
+class ConversationPartParams(typing_extensions.TypedDict):
+ """
+ A Conversation Part represents a message in the conversation.
+ """
+
+ type: typing_extensions.NotRequired[str]
+ """
+ Always conversation_part
+ """
+
+ id: typing_extensions.NotRequired[str]
+ """
+ The id representing the conversation part.
+ """
+
+ part_type: typing_extensions.NotRequired[str]
+ """
+ The type of conversation part.
+ """
+
+ body: typing_extensions.NotRequired[str]
+ """
+ The message body, which may contain HTML. For Twitter, this will show a generic message regarding why the body is obscured.
+ """
+
+ created_at: typing_extensions.NotRequired[int]
+ """
+ The time the conversation part was created.
+ """
+
+ updated_at: typing_extensions.NotRequired[int]
+ """
+ The last time the conversation part was updated.
+ """
+
+ notified_at: typing_extensions.NotRequired[int]
+ """
+ The time the user was notified with the conversation part.
+ """
+
+ assigned_to: typing_extensions.NotRequired[ReferenceParams]
+ """
+ The id of the admin that was assigned the conversation by this conversation_part (null if there has been no change in assignment.)
+ """
+
+ author: typing_extensions.NotRequired[ConversationPartAuthorParams]
+ attachments: typing_extensions.NotRequired[typing.Sequence[PartAttachmentParams]]
+ """
+ A list of attachments for the part.
+ """
+
+ external_id: typing_extensions.NotRequired[str]
+ """
+ The external id of the conversation part
+ """
+
+ redacted: typing_extensions.NotRequired[bool]
+ """
+ Whether or not the conversation part has been redacted.
+ """
+
+ email_message_metadata: typing_extensions.NotRequired[EmailMessageMetadataParams]
+ metadata: typing_extensions.NotRequired[ConversationPartMetadataParams]
+ state: typing_extensions.NotRequired[ConversationPartState]
+ """
+ Indicates the current state of conversation when the conversation part was created.
+ """
+
+ tags: typing_extensions.NotRequired[typing.Sequence[TagBasicParams]]
+ """
+ A list of tags objects associated with the conversation part.
+ """
+
+ event_details: typing_extensions.NotRequired[EventDetailsParams]
+ app_package_code: typing_extensions.NotRequired[str]
+ """
+ The app package code if this part was created via API. null if the part was not created via API.
+ """
diff --git a/src/intercom/unstable/requests/conversation_part_author.py b/src/intercom/unstable/requests/conversation_part_author.py
new file mode 100644
index 0000000..ee73f3b
--- /dev/null
+++ b/src/intercom/unstable/requests/conversation_part_author.py
@@ -0,0 +1,39 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing_extensions
+
+
+class ConversationPartAuthorParams(typing_extensions.TypedDict):
+ """
+ The object who initiated the conversation, which can be a Contact, Admin or Team. Bots and campaigns send messages on behalf of Admins or Teams. For Twitter, this will be blank.
+ """
+
+ type: typing_extensions.NotRequired[str]
+ """
+ The type of the author
+ """
+
+ id: typing_extensions.NotRequired[str]
+ """
+ The id of the author
+ """
+
+ name: typing_extensions.NotRequired[str]
+ """
+ The name of the author
+ """
+
+ email: typing_extensions.NotRequired[str]
+ """
+ The email of the author
+ """
+
+ from_ai_agent: typing_extensions.NotRequired[bool]
+ """
+ If this conversation part was sent by the AI Agent
+ """
+
+ is_ai_answer: typing_extensions.NotRequired[bool]
+ """
+ If this conversation part body was generated by the AI Agent
+ """
diff --git a/src/intercom/unstable/requests/conversation_part_metadata.py b/src/intercom/unstable/requests/conversation_part_metadata.py
new file mode 100644
index 0000000..f327d75
--- /dev/null
+++ b/src/intercom/unstable/requests/conversation_part_metadata.py
@@ -0,0 +1,24 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing
+
+import typing_extensions
+from .conversation_part_metadata_quick_reply_options_item import ConversationPartMetadataQuickReplyOptionsItemParams
+
+
+class ConversationPartMetadataParams(typing_extensions.TypedDict):
+ """
+ Metadata for a conversation part
+ """
+
+ quick_reply_options: typing_extensions.NotRequired[
+ typing.Sequence[ConversationPartMetadataQuickReplyOptionsItemParams]
+ ]
+ """
+ The quick reply options sent by the Admin or bot, presented in this conversation part.
+ """
+
+ quick_reply_uuid: typing_extensions.NotRequired[str]
+ """
+ The unique identifier for the quick reply option that was clicked by the end user.
+ """
diff --git a/src/intercom/unstable/requests/conversation_part_metadata_quick_reply_options_item.py b/src/intercom/unstable/requests/conversation_part_metadata_quick_reply_options_item.py
new file mode 100644
index 0000000..debdd5a
--- /dev/null
+++ b/src/intercom/unstable/requests/conversation_part_metadata_quick_reply_options_item.py
@@ -0,0 +1,13 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing
+
+import typing_extensions
+from .quick_reply_option import QuickReplyOptionParams
+
+
+class ConversationPartMetadataQuickReplyOptionsItemParams(QuickReplyOptionParams):
+ translations: typing_extensions.NotRequired[typing.Dict[str, typing.Optional[typing.Any]]]
+ """
+ The translations for the quick reply option.
+ """
diff --git a/src/intercom/unstable/requests/conversation_parts.py b/src/intercom/unstable/requests/conversation_parts.py
new file mode 100644
index 0000000..2e62ed8
--- /dev/null
+++ b/src/intercom/unstable/requests/conversation_parts.py
@@ -0,0 +1,27 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing
+
+import typing_extensions
+from .conversation_part import ConversationPartParams
+
+
+class ConversationPartsParams(typing_extensions.TypedDict):
+ """
+ A list of Conversation Part objects for each part message in the conversation. This is only returned when Retrieving a Conversation, and ignored when Listing all Conversations. There is a limit of 500 parts.
+ """
+
+ type: typing_extensions.NotRequired[typing.Literal["conversation_part.list"]]
+ """
+
+ """
+
+ conversation_parts: typing_extensions.NotRequired[typing.Sequence[ConversationPartParams]]
+ """
+ A list of Conversation Part objects for each part message in the conversation. This is only returned when Retrieving a Conversation, and ignored when Listing all Conversations. There is a limit of 500 parts.
+ """
+
+ total_count: typing_extensions.NotRequired[int]
+ """
+
+ """
diff --git a/src/intercom/unstable/requests/conversation_rating.py b/src/intercom/unstable/requests/conversation_rating.py
new file mode 100644
index 0000000..8651684
--- /dev/null
+++ b/src/intercom/unstable/requests/conversation_rating.py
@@ -0,0 +1,29 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing_extensions
+from .contact_reference import ContactReferenceParams
+from .reference import ReferenceParams
+
+
+class ConversationRatingParams(typing_extensions.TypedDict):
+ """
+ The Conversation Rating object which contains information on the rating and/or remark added by a Contact and the Admin assigned to the conversation.
+ """
+
+ rating: typing_extensions.NotRequired[int]
+ """
+ The rating, between 1 and 5, for the conversation.
+ """
+
+ remark: typing_extensions.NotRequired[str]
+ """
+ An optional field to add a remark to correspond to the number rating
+ """
+
+ created_at: typing_extensions.NotRequired[int]
+ """
+ The time the rating was requested in the conversation being rated.
+ """
+
+ contact: typing_extensions.NotRequired[ContactReferenceParams]
+ teammate: typing_extensions.NotRequired[ReferenceParams]
diff --git a/src/intercom/unstable/requests/conversation_response_time.py b/src/intercom/unstable/requests/conversation_response_time.py
new file mode 100644
index 0000000..561cd87
--- /dev/null
+++ b/src/intercom/unstable/requests/conversation_response_time.py
@@ -0,0 +1,24 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing_extensions
+
+
+class ConversationResponseTimeParams(typing_extensions.TypedDict):
+ """
+ Details of first response time of assigned team in seconds.
+ """
+
+ team_id: typing_extensions.NotRequired[int]
+ """
+ Id of the assigned team.
+ """
+
+ team_name: typing_extensions.NotRequired[str]
+ """
+ Name of the assigned Team, null if team does not exist, Unassigned if no team is assigned.
+ """
+
+ response_time: typing_extensions.NotRequired[int]
+ """
+ First response time of assigned team in seconds.
+ """
diff --git a/src/intercom/unstable/requests/conversation_source.py b/src/intercom/unstable/requests/conversation_source.py
new file mode 100644
index 0000000..f5f3ff1
--- /dev/null
+++ b/src/intercom/unstable/requests/conversation_source.py
@@ -0,0 +1,55 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing
+
+import typing_extensions
+from ..types.conversation_source_type import ConversationSourceType
+from .conversation_part_author import ConversationPartAuthorParams
+from .part_attachment import PartAttachmentParams
+
+
+class ConversationSourceParams(typing_extensions.TypedDict):
+ """
+ The type of the conversation part that started this conversation. Can be Contact, Admin, Campaign, Automated or Operator initiated.
+ """
+
+ type: typing_extensions.NotRequired[ConversationSourceType]
+ """
+ This includes conversation, email, facebook, instagram, phone_call, phone_switch, push, sms, twitter and whatsapp.
+ """
+
+ id: typing_extensions.NotRequired[str]
+ """
+ The id representing the message.
+ """
+
+ delivered_as: typing_extensions.NotRequired[str]
+ """
+ The conversation's initiation type. Possible values are customer_initiated, campaigns_initiated (legacy campaigns), operator_initiated (Custom bot), automated (Series and other outbounds with dynamic audience message) and admin_initiated (fixed audience message, ticket initiated by an admin, group email).
+ """
+
+ subject: typing_extensions.NotRequired[str]
+ """
+ Optional. The message subject. For Twitter, this will show a generic message regarding why the subject is obscured.
+ """
+
+ body: typing_extensions.NotRequired[str]
+ """
+ The message body, which may contain HTML. For Twitter, this will show a generic message regarding why the body is obscured.
+ """
+
+ author: typing_extensions.NotRequired[ConversationPartAuthorParams]
+ attachments: typing_extensions.NotRequired[typing.Sequence[PartAttachmentParams]]
+ """
+ A list of attachments for the part.
+ """
+
+ url: typing_extensions.NotRequired[str]
+ """
+ The URL where the conversation was started. For Twitter, Email, and Bots, this will be blank.
+ """
+
+ redacted: typing_extensions.NotRequired[bool]
+ """
+ Whether or not the source message has been redacted. Only applicable for contact initiated messages.
+ """
diff --git a/src/intercom/unstable/requests/conversation_statistics.py b/src/intercom/unstable/requests/conversation_statistics.py
new file mode 100644
index 0000000..53e3add
--- /dev/null
+++ b/src/intercom/unstable/requests/conversation_statistics.py
@@ -0,0 +1,126 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing
+
+import typing_extensions
+from .conversation_response_time import ConversationResponseTimeParams
+
+
+class ConversationStatisticsParams(typing_extensions.TypedDict):
+ """
+ A Statistics object containing all information required for reporting, with timestamps and calculated metrics.
+ """
+
+ type: typing_extensions.NotRequired[str]
+ """
+
+ """
+
+ time_to_assignment: typing_extensions.NotRequired[int]
+ """
+ Duration until last assignment before first admin reply. In seconds.
+ """
+
+ time_to_admin_reply: typing_extensions.NotRequired[int]
+ """
+ Duration until first admin reply. Subtracts out of business hours. In seconds.
+ """
+
+ time_to_first_close: typing_extensions.NotRequired[int]
+ """
+ Duration until conversation was closed first time. Subtracts out of business hours. In seconds.
+ """
+
+ time_to_last_close: typing_extensions.NotRequired[int]
+ """
+ Duration until conversation was closed last time. Subtracts out of business hours. In seconds.
+ """
+
+ median_time_to_reply: typing_extensions.NotRequired[int]
+ """
+ Median based on all admin replies after a contact reply. Subtracts out of business hours. In seconds.
+ """
+
+ first_contact_reply_at: typing_extensions.NotRequired[int]
+ """
+ Time of first text conversation part from a contact.
+ """
+
+ first_assignment_at: typing_extensions.NotRequired[int]
+ """
+ Time of first assignment after first_contact_reply_at.
+ """
+
+ first_admin_reply_at: typing_extensions.NotRequired[int]
+ """
+ Time of first admin reply after first_contact_reply_at.
+ """
+
+ first_close_at: typing_extensions.NotRequired[int]
+ """
+ Time of first close after first_contact_reply_at.
+ """
+
+ last_assignment_at: typing_extensions.NotRequired[int]
+ """
+ Time of last assignment after first_contact_reply_at.
+ """
+
+ last_assignment_admin_reply_at: typing_extensions.NotRequired[int]
+ """
+ Time of first admin reply since most recent assignment.
+ """
+
+ last_contact_reply_at: typing_extensions.NotRequired[int]
+ """
+ Time of the last conversation part from a contact.
+ """
+
+ last_admin_reply_at: typing_extensions.NotRequired[int]
+ """
+ Time of the last conversation part from an admin.
+ """
+
+ last_close_at: typing_extensions.NotRequired[int]
+ """
+ Time of the last conversation close.
+ """
+
+ last_closed_by_id: typing_extensions.NotRequired[str]
+ """
+ The last admin who closed the conversation. Returns a reference to an Admin object.
+ """
+
+ count_reopens: typing_extensions.NotRequired[int]
+ """
+ Number of reopens after first_contact_reply_at.
+ """
+
+ count_assignments: typing_extensions.NotRequired[int]
+ """
+ Number of assignments after first_contact_reply_at.
+ """
+
+ count_conversation_parts: typing_extensions.NotRequired[int]
+ """
+ Total number of conversation parts.
+ """
+
+ assigned_team_first_response_time_by_team: typing_extensions.NotRequired[
+ typing.Sequence[ConversationResponseTimeParams]
+ ]
+ """
+ An array of conversation response time objects
+ """
+
+ assigned_team_first_response_time_in_office_hours: typing_extensions.NotRequired[
+ typing.Sequence[ConversationResponseTimeParams]
+ ]
+ """
+ An array of conversation response time objects within office hours
+ """
+
+ handling_time: typing_extensions.NotRequired[int]
+ """
+ Time from conversation assignment to conversation close in seconds.
+ """
diff --git a/src/intercom/unstable/requests/conversation_teammates.py b/src/intercom/unstable/requests/conversation_teammates.py
new file mode 100644
index 0000000..71ff11a
--- /dev/null
+++ b/src/intercom/unstable/requests/conversation_teammates.py
@@ -0,0 +1,22 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing
+
+import typing_extensions
+from .reference import ReferenceParams
+
+
+class ConversationTeammatesParams(typing_extensions.TypedDict):
+ """
+ The list of teammates who participated in the conversation (wrote at least one conversation part).
+ """
+
+ type: typing_extensions.NotRequired[str]
+ """
+ The type of the object - `admin.list`.
+ """
+
+ teammates: typing_extensions.NotRequired[typing.Sequence[ReferenceParams]]
+ """
+ The list of teammates who participated in the conversation (wrote at least one conversation part).
+ """
diff --git a/src/intercom/unstable/requests/create_or_update_tag_request.py b/src/intercom/unstable/requests/create_or_update_tag_request.py
new file mode 100644
index 0000000..2d24c67
--- /dev/null
+++ b/src/intercom/unstable/requests/create_or_update_tag_request.py
@@ -0,0 +1,19 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing_extensions
+
+
+class CreateOrUpdateTagRequestParams(typing_extensions.TypedDict):
+ """
+ You can create or update an existing tag.
+ """
+
+ name: str
+ """
+ The name of the tag, which will be created if not found, or the new name for the tag if this is an update request. Names are case insensitive.
+ """
+
+ id: typing_extensions.NotRequired[str]
+ """
+ The id of tag to updates.
+ """
diff --git a/src/intercom/unstable/requests/create_ticket_reply_with_comment_request.py b/src/intercom/unstable/requests/create_ticket_reply_with_comment_request.py
new file mode 100644
index 0000000..2944ed2
--- /dev/null
+++ b/src/intercom/unstable/requests/create_ticket_reply_with_comment_request.py
@@ -0,0 +1,8 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing
+
+from .admin_reply_ticket_request import AdminReplyTicketRequestParams
+from .contact_reply_ticket_request import ContactReplyTicketRequestParams
+
+CreateTicketReplyWithCommentRequestParams = typing.Union[ContactReplyTicketRequestParams, AdminReplyTicketRequestParams]
diff --git a/src/intercom/unstable/requests/create_ticket_request_assignment.py b/src/intercom/unstable/requests/create_ticket_request_assignment.py
new file mode 100644
index 0000000..b658f7a
--- /dev/null
+++ b/src/intercom/unstable/requests/create_ticket_request_assignment.py
@@ -0,0 +1,15 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing_extensions
+
+
+class CreateTicketRequestAssignmentParams(typing_extensions.TypedDict):
+ admin_assignee_id: typing_extensions.NotRequired[str]
+ """
+ The ID of the admin to which the ticket is assigned. If not provided, the ticket will be unassigned.
+ """
+
+ team_assignee_id: typing_extensions.NotRequired[str]
+ """
+ The ID of the team to which the ticket is assigned. If not provided, the ticket will be unassigned.
+ """
diff --git a/src/intercom/unstable/requests/create_ticket_request_body.py b/src/intercom/unstable/requests/create_ticket_request_body.py
new file mode 100644
index 0000000..30f413e
--- /dev/null
+++ b/src/intercom/unstable/requests/create_ticket_request_body.py
@@ -0,0 +1,44 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing
+
+import typing_extensions
+from .create_ticket_request_assignment import CreateTicketRequestAssignmentParams
+from .create_ticket_request_contacts_item import CreateTicketRequestContactsItemParams
+
+
+class CreateTicketRequestBodyParams(typing_extensions.TypedDict):
+ """
+ You can create a Ticket
+ """
+
+ ticket_type_id: str
+ """
+ The ID of the type of ticket you want to create
+ """
+
+ contacts: typing.Sequence[CreateTicketRequestContactsItemParams]
+ """
+ The list of contacts (users or leads) affected by this ticket. Currently only one is allowed
+ """
+
+ conversation_to_link_id: typing_extensions.NotRequired[str]
+ """
+ The ID of the conversation you want to link to the ticket. Here are the valid ways of linking two tickets:
+ - conversation | back-office ticket
+ - customer tickets | non-shared back-office ticket
+ - conversation | tracker ticket
+ - customer ticket | tracker ticket
+ """
+
+ company_id: typing_extensions.NotRequired[str]
+ """
+ The ID of the company that the ticket is associated with. The unique identifier for the company which is given by Intercom
+ """
+
+ created_at: typing_extensions.NotRequired[int]
+ """
+ The time the ticket was created. If not provided, the current time will be used.
+ """
+
+ assignment: typing_extensions.NotRequired[CreateTicketRequestAssignmentParams]
diff --git a/src/intercom/unstable/requests/create_ticket_request_contacts_item.py b/src/intercom/unstable/requests/create_ticket_request_contacts_item.py
new file mode 100644
index 0000000..c6a4617
--- /dev/null
+++ b/src/intercom/unstable/requests/create_ticket_request_contacts_item.py
@@ -0,0 +1,13 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing
+
+from .create_ticket_request_contacts_item_email import CreateTicketRequestContactsItemEmailParams
+from .create_ticket_request_contacts_item_external_id import CreateTicketRequestContactsItemExternalIdParams
+from .create_ticket_request_contacts_item_id import CreateTicketRequestContactsItemIdParams
+
+CreateTicketRequestContactsItemParams = typing.Union[
+ CreateTicketRequestContactsItemIdParams,
+ CreateTicketRequestContactsItemExternalIdParams,
+ CreateTicketRequestContactsItemEmailParams,
+]
diff --git a/src/intercom/unstable/requests/create_ticket_request_contacts_item_email.py b/src/intercom/unstable/requests/create_ticket_request_contacts_item_email.py
new file mode 100644
index 0000000..f0553c7
--- /dev/null
+++ b/src/intercom/unstable/requests/create_ticket_request_contacts_item_email.py
@@ -0,0 +1,10 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing_extensions
+
+
+class CreateTicketRequestContactsItemEmailParams(typing_extensions.TypedDict):
+ email: str
+ """
+ The email you have defined for the contact who is being added as a participant. If a contact with this email does not exist, one will be created.
+ """
diff --git a/src/intercom/unstable/requests/create_ticket_request_contacts_item_external_id.py b/src/intercom/unstable/requests/create_ticket_request_contacts_item_external_id.py
new file mode 100644
index 0000000..cd652dc
--- /dev/null
+++ b/src/intercom/unstable/requests/create_ticket_request_contacts_item_external_id.py
@@ -0,0 +1,10 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing_extensions
+
+
+class CreateTicketRequestContactsItemExternalIdParams(typing_extensions.TypedDict):
+ external_id: str
+ """
+ The external_id you have defined for the contact who is being added as a participant.
+ """
diff --git a/src/intercom/unstable/requests/create_ticket_request_contacts_item_id.py b/src/intercom/unstable/requests/create_ticket_request_contacts_item_id.py
new file mode 100644
index 0000000..b41f4f1
--- /dev/null
+++ b/src/intercom/unstable/requests/create_ticket_request_contacts_item_id.py
@@ -0,0 +1,10 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing_extensions
+
+
+class CreateTicketRequestContactsItemIdParams(typing_extensions.TypedDict):
+ id: str
+ """
+ The identifier for the contact as given by Intercom.
+ """
diff --git a/src/intercom/unstable/requests/cursor_pages.py b/src/intercom/unstable/requests/cursor_pages.py
new file mode 100644
index 0000000..9c6602d
--- /dev/null
+++ b/src/intercom/unstable/requests/cursor_pages.py
@@ -0,0 +1,34 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing
+
+import typing_extensions
+from .starting_after_paging import StartingAfterPagingParams
+
+
+class CursorPagesParams(typing_extensions.TypedDict):
+ """
+ Cursor-based pagination is a technique used in the Intercom API to navigate through large amounts of data.
+ A "cursor" or pointer is used to keep track of the current position in the result set, allowing the API to return the data in small chunks or "pages" as needed.
+ """
+
+ type: typing_extensions.NotRequired[typing.Literal["pages"]]
+ """
+ the type of object `pages`.
+ """
+
+ page: typing_extensions.NotRequired[int]
+ """
+ The current page
+ """
+
+ next: typing_extensions.NotRequired[StartingAfterPagingParams]
+ per_page: typing_extensions.NotRequired[int]
+ """
+ Number of results per page
+ """
+
+ total_pages: typing_extensions.NotRequired[int]
+ """
+ Total number of pages
+ """
diff --git a/src/intercom/unstable/requests/custom_action_finished.py b/src/intercom/unstable/requests/custom_action_finished.py
new file mode 100644
index 0000000..6b6d42f
--- /dev/null
+++ b/src/intercom/unstable/requests/custom_action_finished.py
@@ -0,0 +1,12 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing_extensions
+from .custom_action_finished_action import CustomActionFinishedActionParams
+
+
+class CustomActionFinishedParams(typing_extensions.TypedDict):
+ """
+ Contains details about final status of the completed action for conversation part type custom_action_finished.
+ """
+
+ action: typing_extensions.NotRequired[CustomActionFinishedActionParams]
diff --git a/src/intercom/unstable/requests/custom_action_finished_action.py b/src/intercom/unstable/requests/custom_action_finished_action.py
new file mode 100644
index 0000000..692271f
--- /dev/null
+++ b/src/intercom/unstable/requests/custom_action_finished_action.py
@@ -0,0 +1,16 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing_extensions
+from ..types.custom_action_finished_action_result import CustomActionFinishedActionResult
+
+
+class CustomActionFinishedActionParams(typing_extensions.TypedDict):
+ name: typing_extensions.NotRequired[str]
+ """
+ Name of the action
+ """
+
+ result: typing_extensions.NotRequired[CustomActionFinishedActionResult]
+ """
+ Status of the action
+ """
diff --git a/src/intercom/unstable/requests/custom_action_started.py b/src/intercom/unstable/requests/custom_action_started.py
new file mode 100644
index 0000000..a8f7b53
--- /dev/null
+++ b/src/intercom/unstable/requests/custom_action_started.py
@@ -0,0 +1,12 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing_extensions
+from .custom_action_started_action import CustomActionStartedActionParams
+
+
+class CustomActionStartedParams(typing_extensions.TypedDict):
+ """
+ Contains details about name of the action that was initiated for conversation part type custom_action_started.
+ """
+
+ action: typing_extensions.NotRequired[CustomActionStartedActionParams]
diff --git a/src/intercom/unstable/requests/custom_action_started_action.py b/src/intercom/unstable/requests/custom_action_started_action.py
new file mode 100644
index 0000000..e1c67a9
--- /dev/null
+++ b/src/intercom/unstable/requests/custom_action_started_action.py
@@ -0,0 +1,10 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing_extensions
+
+
+class CustomActionStartedActionParams(typing_extensions.TypedDict):
+ name: typing_extensions.NotRequired[str]
+ """
+ Name of the action
+ """
diff --git a/src/intercom/unstable/requests/custom_attributes.py b/src/intercom/unstable/requests/custom_attributes.py
new file mode 100644
index 0000000..57f449b
--- /dev/null
+++ b/src/intercom/unstable/requests/custom_attributes.py
@@ -0,0 +1,7 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing
+
+from ..types.custom_attributes_value import CustomAttributesValue
+
+CustomAttributesParams = typing.Dict[str, CustomAttributesValue]
diff --git a/src/intercom/unstable/requests/custom_attributes_value.py b/src/intercom/unstable/requests/custom_attributes_value.py
new file mode 100644
index 0000000..abe6835
--- /dev/null
+++ b/src/intercom/unstable/requests/custom_attributes_value.py
@@ -0,0 +1,8 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing
+
+from .custom_object_instance_list import CustomObjectInstanceListParams
+from .datetime import DatetimeParams
+
+CustomAttributesValueParams = typing.Union[str, int, DatetimeParams, CustomObjectInstanceListParams]
diff --git a/src/intercom/unstable/requests/custom_channel_attribute.py b/src/intercom/unstable/requests/custom_channel_attribute.py
new file mode 100644
index 0000000..13e22aa
--- /dev/null
+++ b/src/intercom/unstable/requests/custom_channel_attribute.py
@@ -0,0 +1,15 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing_extensions
+
+
+class CustomChannelAttributeParams(typing_extensions.TypedDict):
+ id: str
+ """
+ Identifier for the attribute being collected.
+ """
+
+ value: str
+ """
+ Value provided by the user for the attribute.
+ """
diff --git a/src/intercom/unstable/requests/custom_channel_base_event.py b/src/intercom/unstable/requests/custom_channel_base_event.py
new file mode 100644
index 0000000..c490b13
--- /dev/null
+++ b/src/intercom/unstable/requests/custom_channel_base_event.py
@@ -0,0 +1,18 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing_extensions
+from .custom_channel_contact import CustomChannelContactParams
+
+
+class CustomChannelBaseEventParams(typing_extensions.TypedDict):
+ event_id: str
+ """
+ Unique identifier for the event.
+ """
+
+ external_conversation_id: str
+ """
+ Identifier for the conversation in your application.
+ """
+
+ contact: CustomChannelContactParams
diff --git a/src/intercom/unstable/requests/custom_channel_contact.py b/src/intercom/unstable/requests/custom_channel_contact.py
new file mode 100644
index 0000000..a62071c
--- /dev/null
+++ b/src/intercom/unstable/requests/custom_channel_contact.py
@@ -0,0 +1,26 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing_extensions
+from ..types.custom_channel_contact_type import CustomChannelContactType
+
+
+class CustomChannelContactParams(typing_extensions.TypedDict):
+ type: CustomChannelContactType
+ """
+ Type of contact, must be "user" or "lead".
+ """
+
+ external_id: str
+ """
+ External identifier for the contact. Intercom will take care of the mapping of your external_id with our internal ones so you don't have to worry about it.
+ """
+
+ name: typing_extensions.NotRequired[str]
+ """
+ Name of the contact. Required for user type.
+ """
+
+ email: typing_extensions.NotRequired[str]
+ """
+ Email address of the contact. Required for user type.
+ """
diff --git a/src/intercom/unstable/requests/custom_channel_notification_response.py b/src/intercom/unstable/requests/custom_channel_notification_response.py
new file mode 100644
index 0000000..0ce5e88
--- /dev/null
+++ b/src/intercom/unstable/requests/custom_channel_notification_response.py
@@ -0,0 +1,25 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing_extensions
+
+
+class CustomChannelNotificationResponseParams(typing_extensions.TypedDict):
+ external_conversation_id: str
+ """
+ The external conversation ID provided in the notification request
+ """
+
+ conversation_id: str
+ """
+ The Intercom conversation ID mapped to the external conversation ID
+ """
+
+ external_contact_id: str
+ """
+ The external contact ID provided in the notification request
+ """
+
+ contact_id: str
+ """
+ The Intercom contact ID mapped to the external contact ID
+ """
diff --git a/src/intercom/unstable/requests/custom_object_instance_deleted.py b/src/intercom/unstable/requests/custom_object_instance_deleted.py
new file mode 100644
index 0000000..c88acc2
--- /dev/null
+++ b/src/intercom/unstable/requests/custom_object_instance_deleted.py
@@ -0,0 +1,24 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing_extensions
+
+
+class CustomObjectInstanceDeletedParams(typing_extensions.TypedDict):
+ """
+ deleted custom object instance object
+ """
+
+ object: typing_extensions.NotRequired[str]
+ """
+ The unique identifier of the Custom Object type that defines the structure of the Custom Object instance.
+ """
+
+ id: typing_extensions.NotRequired[str]
+ """
+ The Intercom defined id representing the Custom Object instance.
+ """
+
+ deleted: typing_extensions.NotRequired[bool]
+ """
+ Whether the Custom Object instance is deleted or not.
+ """
diff --git a/src/intercom/unstable/requests/custom_object_instance_list.py b/src/intercom/unstable/requests/custom_object_instance_list.py
new file mode 100644
index 0000000..666d3aa
--- /dev/null
+++ b/src/intercom/unstable/requests/custom_object_instance_list.py
@@ -0,0 +1,18 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing
+
+import typing_extensions
+from ..custom_object_instances.requests.custom_object_instance import CustomObjectInstanceParams
+
+
+class CustomObjectInstanceListParams(typing_extensions.TypedDict):
+ """
+ The list of associated custom object instances for a given reference attribute on the parent object.
+ """
+
+ type: typing_extensions.NotRequired[str]
+ instances: typing_extensions.NotRequired[typing.Sequence[typing.Optional[CustomObjectInstanceParams]]]
+ """
+ The list of associated custom object instances for a given reference attribute on the parent object.
+ """
diff --git a/src/intercom/unstable/requests/customer_request.py b/src/intercom/unstable/requests/customer_request.py
new file mode 100644
index 0000000..2960d8f
--- /dev/null
+++ b/src/intercom/unstable/requests/customer_request.py
@@ -0,0 +1,11 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing
+
+from .customer_request_email import CustomerRequestEmailParams
+from .customer_request_intercom_user_id import CustomerRequestIntercomUserIdParams
+from .customer_request_user_id import CustomerRequestUserIdParams
+
+CustomerRequestParams = typing.Union[
+ CustomerRequestIntercomUserIdParams, CustomerRequestUserIdParams, CustomerRequestEmailParams
+]
diff --git a/src/intercom/unstable/requests/customer_request_email.py b/src/intercom/unstable/requests/customer_request_email.py
new file mode 100644
index 0000000..7e1a1ab
--- /dev/null
+++ b/src/intercom/unstable/requests/customer_request_email.py
@@ -0,0 +1,10 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing_extensions
+
+
+class CustomerRequestEmailParams(typing_extensions.TypedDict):
+ email: str
+ """
+ The email you have defined for the contact who is being added as a participant.
+ """
diff --git a/src/intercom/unstable/requests/customer_request_intercom_user_id.py b/src/intercom/unstable/requests/customer_request_intercom_user_id.py
new file mode 100644
index 0000000..6faff0b
--- /dev/null
+++ b/src/intercom/unstable/requests/customer_request_intercom_user_id.py
@@ -0,0 +1,10 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing_extensions
+
+
+class CustomerRequestIntercomUserIdParams(typing_extensions.TypedDict):
+ intercom_user_id: str
+ """
+ The identifier for the contact as given by Intercom.
+ """
diff --git a/src/intercom/unstable/requests/customer_request_user_id.py b/src/intercom/unstable/requests/customer_request_user_id.py
new file mode 100644
index 0000000..cc216aa
--- /dev/null
+++ b/src/intercom/unstable/requests/customer_request_user_id.py
@@ -0,0 +1,10 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing_extensions
+
+
+class CustomerRequestUserIdParams(typing_extensions.TypedDict):
+ user_id: str
+ """
+ The external_id you have defined for the contact who is being added as a participant.
+ """
diff --git a/src/intercom/unstable/requests/data_attribute_list.py b/src/intercom/unstable/requests/data_attribute_list.py
new file mode 100644
index 0000000..62512d2
--- /dev/null
+++ b/src/intercom/unstable/requests/data_attribute_list.py
@@ -0,0 +1,22 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing
+
+import typing_extensions
+from ..data_attributes.requests.data_attribute import DataAttributeParams
+
+
+class DataAttributeListParams(typing_extensions.TypedDict):
+ """
+ A list of all data attributes belonging to a workspace for contacts, companies or conversations.
+ """
+
+ type: typing_extensions.NotRequired[typing.Literal["list"]]
+ """
+ The type of the object
+ """
+
+ data: typing_extensions.NotRequired[typing.Sequence[DataAttributeParams]]
+ """
+ A list of data attributes
+ """
diff --git a/src/intercom/unstable/requests/data_event_list.py b/src/intercom/unstable/requests/data_event_list.py
new file mode 100644
index 0000000..3bfb551
--- /dev/null
+++ b/src/intercom/unstable/requests/data_event_list.py
@@ -0,0 +1,28 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing
+
+import typing_extensions
+from ..data_events.requests.data_event import DataEventParams
+from .data_event_list_pages import DataEventListPagesParams
+
+
+class DataEventListParams(typing_extensions.TypedDict):
+ """
+ This will return a list of data events for the App.
+ """
+
+ type: typing_extensions.NotRequired[typing.Literal["event.list"]]
+ """
+ The type of the object
+ """
+
+ events: typing_extensions.NotRequired[typing.Sequence[DataEventParams]]
+ """
+ A list of data events
+ """
+
+ pages: typing_extensions.NotRequired[DataEventListPagesParams]
+ """
+ Pagination
+ """
diff --git a/src/intercom/unstable/requests/data_event_list_pages.py b/src/intercom/unstable/requests/data_event_list_pages.py
new file mode 100644
index 0000000..ede9cf4
--- /dev/null
+++ b/src/intercom/unstable/requests/data_event_list_pages.py
@@ -0,0 +1,12 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing_extensions
+
+
+class DataEventListPagesParams(typing_extensions.TypedDict):
+ """
+ Pagination
+ """
+
+ next: typing_extensions.NotRequired[str]
+ since: typing_extensions.NotRequired[str]
diff --git a/src/intercom/unstable/requests/data_event_summary.py b/src/intercom/unstable/requests/data_event_summary.py
new file mode 100644
index 0000000..b820eed
--- /dev/null
+++ b/src/intercom/unstable/requests/data_event_summary.py
@@ -0,0 +1,37 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing
+
+import typing_extensions
+from .data_event_summary_item import DataEventSummaryItemParams
+
+
+class DataEventSummaryParams(typing_extensions.TypedDict):
+ """
+ This will return a summary of data events for the App.
+ """
+
+ type: typing_extensions.NotRequired[typing.Literal["event.summary"]]
+ """
+ The type of the object
+ """
+
+ email: typing_extensions.NotRequired[str]
+ """
+ The email address of the user
+ """
+
+ intercom_user_id: typing_extensions.NotRequired[str]
+ """
+ The Intercom user ID of the user
+ """
+
+ user_id: typing_extensions.NotRequired[str]
+ """
+ The user ID of the user
+ """
+
+ events: typing_extensions.NotRequired[typing.Sequence[typing.Optional[DataEventSummaryItemParams]]]
+ """
+ A summary of data events
+ """
diff --git a/src/intercom/unstable/requests/data_event_summary_item.py b/src/intercom/unstable/requests/data_event_summary_item.py
new file mode 100644
index 0000000..355b834
--- /dev/null
+++ b/src/intercom/unstable/requests/data_event_summary_item.py
@@ -0,0 +1,34 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing_extensions
+
+
+class DataEventSummaryItemParams(typing_extensions.TypedDict):
+ """
+ This will return a summary of a data event for the App.
+ """
+
+ name: typing_extensions.NotRequired[str]
+ """
+ The name of the event
+ """
+
+ first: typing_extensions.NotRequired[str]
+ """
+ The first time the event was sent
+ """
+
+ last: typing_extensions.NotRequired[str]
+ """
+ The last time the event was sent
+ """
+
+ count: typing_extensions.NotRequired[int]
+ """
+ The number of times the event was sent
+ """
+
+ description: typing_extensions.NotRequired[str]
+ """
+ The description of the event
+ """
diff --git a/src/intercom/unstable/requests/data_export_csv.py b/src/intercom/unstable/requests/data_export_csv.py
new file mode 100644
index 0000000..b796d6e
--- /dev/null
+++ b/src/intercom/unstable/requests/data_export_csv.py
@@ -0,0 +1,139 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing_extensions
+
+
+class DataExportCsvParams(typing_extensions.TypedDict):
+ """
+ A CSV output file
+ """
+
+ user_id: typing_extensions.NotRequired[str]
+ """
+ The user_id of the user who was sent the message.
+ """
+
+ user_external_id: typing_extensions.NotRequired[str]
+ """
+ The external_user_id of the user who was sent the message
+ """
+
+ company_id: typing_extensions.NotRequired[str]
+ """
+ The company ID of the user in relation to the message that was sent. Will return -1 if no company is present.
+ """
+
+ email: typing_extensions.NotRequired[str]
+ """
+ The users email who was sent the message.
+ """
+
+ name: typing_extensions.NotRequired[str]
+ """
+ The full name of the user receiving the message
+ """
+
+ ruleset_id: typing_extensions.NotRequired[str]
+ """
+ The id of the message.
+ """
+
+ content_id: typing_extensions.NotRequired[str]
+ """
+ The specific content that was received. In an A/B test each version has its own Content ID.
+ """
+
+ content_type: typing_extensions.NotRequired[str]
+ """
+ Email, Chat, Post etc.
+ """
+
+ content_title: typing_extensions.NotRequired[str]
+ """
+ The title of the content you see in your Intercom workspace.
+ """
+
+ ruleset_version_id: typing_extensions.NotRequired[str]
+ """
+ As you edit content we record new versions. This ID can help you determine which version of a piece of content that was received.
+ """
+
+ receipt_id: typing_extensions.NotRequired[str]
+ """
+ ID for this receipt. Will be included with any related stats in other files to identify this specific delivery of a message.
+ """
+
+ received_at: typing_extensions.NotRequired[int]
+ """
+ Timestamp for when the receipt was recorded.
+ """
+
+ series_id: typing_extensions.NotRequired[str]
+ """
+ The id of the series that this content is part of. Will return -1 if not part of a series.
+ """
+
+ series_title: typing_extensions.NotRequired[str]
+ """
+ The title of the series that this content is part of.
+ """
+
+ node_id: typing_extensions.NotRequired[str]
+ """
+ The id of the series node that this ruleset is associated with. Each block in a series has a corresponding node_id.
+ """
+
+ first_reply: typing_extensions.NotRequired[int]
+ """
+ The first time a user replied to this message if the content was able to receive replies.
+ """
+
+ first_completion: typing_extensions.NotRequired[int]
+ """
+ The first time a user completed this message if the content was able to be completed e.g. Tours, Surveys.
+ """
+
+ first_series_completion: typing_extensions.NotRequired[int]
+ """
+ The first time the series this message was a part of was completed by the user.
+ """
+
+ first_series_disengagement: typing_extensions.NotRequired[int]
+ """
+ The first time the series this message was a part of was disengaged by the user.
+ """
+
+ first_series_exit: typing_extensions.NotRequired[int]
+ """
+ The first time the series this message was a part of was exited by the user.
+ """
+
+ first_goal_success: typing_extensions.NotRequired[int]
+ """
+ The first time the user met this messages associated goal if one exists.
+ """
+
+ first_open: typing_extensions.NotRequired[int]
+ """
+ The first time the user opened this message.
+ """
+
+ first_click: typing_extensions.NotRequired[int]
+ """
+ The first time the series the user clicked on a link within this message.
+ """
+
+ first_dismisall: typing_extensions.NotRequired[int]
+ """
+ The first time the series the user dismissed this message.
+ """
+
+ first_unsubscribe: typing_extensions.NotRequired[int]
+ """
+ The first time the user unsubscribed from this message.
+ """
+
+ first_hard_bounce: typing_extensions.NotRequired[int]
+ """
+ The first time this message hard bounced for this user
+ """
diff --git a/src/intercom/unstable/requests/datetime.py b/src/intercom/unstable/requests/datetime.py
new file mode 100644
index 0000000..c530b9e
--- /dev/null
+++ b/src/intercom/unstable/requests/datetime.py
@@ -0,0 +1,6 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import datetime as dt
+import typing
+
+DatetimeParams = typing.Union[dt.datetime, int]
diff --git a/src/intercom/unstable/requests/deleted_article_object.py b/src/intercom/unstable/requests/deleted_article_object.py
new file mode 100644
index 0000000..68a8b37
--- /dev/null
+++ b/src/intercom/unstable/requests/deleted_article_object.py
@@ -0,0 +1,26 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing
+
+import typing_extensions
+
+
+class DeletedArticleObjectParams(typing_extensions.TypedDict):
+ """
+ Response returned when an object is deleted
+ """
+
+ id: typing_extensions.NotRequired[str]
+ """
+ The unique identifier for the article which you provided in the URL.
+ """
+
+ object: typing_extensions.NotRequired[typing.Literal["article"]]
+ """
+ The type of object which was deleted. - article
+ """
+
+ deleted: typing_extensions.NotRequired[bool]
+ """
+ Whether the article was deleted successfully or not.
+ """
diff --git a/src/intercom/unstable/requests/deleted_collection_object.py b/src/intercom/unstable/requests/deleted_collection_object.py
new file mode 100644
index 0000000..faea63c
--- /dev/null
+++ b/src/intercom/unstable/requests/deleted_collection_object.py
@@ -0,0 +1,26 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing
+
+import typing_extensions
+
+
+class DeletedCollectionObjectParams(typing_extensions.TypedDict):
+ """
+ Response returned when an object is deleted
+ """
+
+ id: typing_extensions.NotRequired[str]
+ """
+ The unique identifier for the collection which you provided in the URL.
+ """
+
+ object: typing_extensions.NotRequired[typing.Literal["collection"]]
+ """
+ The type of object which was deleted. - `collection`
+ """
+
+ deleted: typing_extensions.NotRequired[bool]
+ """
+ Whether the collection was deleted successfully or not.
+ """
diff --git a/src/intercom/unstable/requests/deleted_company_object.py b/src/intercom/unstable/requests/deleted_company_object.py
new file mode 100644
index 0000000..53281dc
--- /dev/null
+++ b/src/intercom/unstable/requests/deleted_company_object.py
@@ -0,0 +1,26 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing
+
+import typing_extensions
+
+
+class DeletedCompanyObjectParams(typing_extensions.TypedDict):
+ """
+ Response returned when an object is deleted
+ """
+
+ id: typing_extensions.NotRequired[str]
+ """
+ The unique identifier for the company which is given by Intercom.
+ """
+
+ object: typing_extensions.NotRequired[typing.Literal["company"]]
+ """
+ The type of object which was deleted. - `company`
+ """
+
+ deleted: typing_extensions.NotRequired[bool]
+ """
+ Whether the company was deleted successfully or not.
+ """
diff --git a/src/intercom/unstable/requests/deleted_object.py b/src/intercom/unstable/requests/deleted_object.py
new file mode 100644
index 0000000..8df5d39
--- /dev/null
+++ b/src/intercom/unstable/requests/deleted_object.py
@@ -0,0 +1,26 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing
+
+import typing_extensions
+
+
+class DeletedObjectParams(typing_extensions.TypedDict):
+ """
+ Response returned when an object is deleted
+ """
+
+ id: typing_extensions.NotRequired[str]
+ """
+ The unique identifier for the news item which you provided in the URL.
+ """
+
+ object: typing_extensions.NotRequired[typing.Literal["news-item"]]
+ """
+ The type of object which was deleted - news-item.
+ """
+
+ deleted: typing_extensions.NotRequired[bool]
+ """
+ Whether the news item was deleted successfully or not.
+ """
diff --git a/src/intercom/unstable/requests/email_address_header.py b/src/intercom/unstable/requests/email_address_header.py
new file mode 100644
index 0000000..384d3e4
--- /dev/null
+++ b/src/intercom/unstable/requests/email_address_header.py
@@ -0,0 +1,24 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing_extensions
+
+
+class EmailAddressHeaderParams(typing_extensions.TypedDict):
+ """
+ Contains data for an email address header for a conversation part that was sent as an email.
+ """
+
+ type: typing_extensions.NotRequired[str]
+ """
+ The type of email address header
+ """
+
+ email_address: typing_extensions.NotRequired[str]
+ """
+ The email address
+ """
+
+ name: typing_extensions.NotRequired[str]
+ """
+ The name associated with the email address
+ """
diff --git a/src/intercom/unstable/requests/email_message_metadata.py b/src/intercom/unstable/requests/email_message_metadata.py
new file mode 100644
index 0000000..4a1e7ef
--- /dev/null
+++ b/src/intercom/unstable/requests/email_message_metadata.py
@@ -0,0 +1,22 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing
+
+import typing_extensions
+from .email_address_header import EmailAddressHeaderParams
+
+
+class EmailMessageMetadataParams(typing_extensions.TypedDict):
+ """
+ Contains metadata if the message was sent as an email
+ """
+
+ subject: typing_extensions.NotRequired[str]
+ """
+ The subject of the email
+ """
+
+ email_address_headers: typing_extensions.NotRequired[typing.Sequence[EmailAddressHeaderParams]]
+ """
+ A list of an email address headers.
+ """
diff --git a/src/intercom/unstable/requests/error.py b/src/intercom/unstable/requests/error.py
new file mode 100644
index 0000000..c3a8a11
--- /dev/null
+++ b/src/intercom/unstable/requests/error.py
@@ -0,0 +1,27 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing
+
+import typing_extensions
+from .error_errors_item import ErrorErrorsItemParams
+
+
+class ErrorParams(typing_extensions.TypedDict):
+ """
+ The API will return an Error List for a failed request, which will contain one or more Error objects.
+ """
+
+ type: str
+ """
+ The type is error.list
+ """
+
+ request_id: typing_extensions.NotRequired[str]
+ """
+
+ """
+
+ errors: typing.Sequence[ErrorErrorsItemParams]
+ """
+ An array of one or more error objects
+ """
diff --git a/src/intercom/unstable/requests/error_errors_item.py b/src/intercom/unstable/requests/error_errors_item.py
new file mode 100644
index 0000000..4730c1c
--- /dev/null
+++ b/src/intercom/unstable/requests/error_errors_item.py
@@ -0,0 +1,20 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing_extensions
+
+
+class ErrorErrorsItemParams(typing_extensions.TypedDict):
+ code: str
+ """
+ A string indicating the kind of error, used to further qualify the HTTP response code
+ """
+
+ message: typing_extensions.NotRequired[str]
+ """
+ Optional. Human readable description of the error.
+ """
+
+ field: typing_extensions.NotRequired[str]
+ """
+ Optional. Used to identify a particular field or query parameter that was in error.
+ """
diff --git a/src/intercom/unstable/requests/event_details.py b/src/intercom/unstable/requests/event_details.py
new file mode 100644
index 0000000..6b85fac
--- /dev/null
+++ b/src/intercom/unstable/requests/event_details.py
@@ -0,0 +1,17 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing
+
+from .conversation_attribute_updated_by_admin import ConversationAttributeUpdatedByAdminParams
+from .conversation_attribute_updated_by_workflow import ConversationAttributeUpdatedByWorkflowParams
+from .custom_action_finished import CustomActionFinishedParams
+from .custom_action_started import CustomActionStartedParams
+from .operator_workflow_event import OperatorWorkflowEventParams
+
+EventDetailsParams = typing.Union[
+ ConversationAttributeUpdatedByWorkflowParams,
+ ConversationAttributeUpdatedByAdminParams,
+ CustomActionStartedParams,
+ CustomActionFinishedParams,
+ OperatorWorkflowEventParams,
+]
diff --git a/src/intercom/unstable/requests/file_attribute.py b/src/intercom/unstable/requests/file_attribute.py
new file mode 100644
index 0000000..5dd038c
--- /dev/null
+++ b/src/intercom/unstable/requests/file_attribute.py
@@ -0,0 +1,40 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing_extensions
+
+
+class FileAttributeParams(typing_extensions.TypedDict):
+ """
+ The value describing a file upload set for a custom attribute
+ """
+
+ type: typing_extensions.NotRequired[str]
+ name: typing_extensions.NotRequired[str]
+ """
+ The name of the file
+ """
+
+ url: typing_extensions.NotRequired[str]
+ """
+ The url of the file. This is a temporary URL and will expire after 30 minutes.
+ """
+
+ content_type: typing_extensions.NotRequired[str]
+ """
+ The type of file
+ """
+
+ filesize: typing_extensions.NotRequired[int]
+ """
+ The size of the file in bytes
+ """
+
+ width: typing_extensions.NotRequired[int]
+ """
+ The width of the file in pixels, if applicable
+ """
+
+ height: typing_extensions.NotRequired[int]
+ """
+ The height of the file in pixels, if applicable
+ """
diff --git a/src/intercom/unstable/requests/group_content.py b/src/intercom/unstable/requests/group_content.py
new file mode 100644
index 0000000..718e488
--- /dev/null
+++ b/src/intercom/unstable/requests/group_content.py
@@ -0,0 +1,24 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing_extensions
+
+
+class GroupContentParams(typing_extensions.TypedDict):
+ """
+ The Content of a Group.
+ """
+
+ type: typing_extensions.NotRequired[str]
+ """
+ The type of object - `group_content` .
+ """
+
+ name: typing_extensions.NotRequired[str]
+ """
+ The name of the collection or section.
+ """
+
+ description: typing_extensions.NotRequired[str]
+ """
+ The description of the collection. Only available for collections.
+ """
diff --git a/src/intercom/unstable/requests/group_translated_content.py b/src/intercom/unstable/requests/group_translated_content.py
new file mode 100644
index 0000000..ee50ecc
--- /dev/null
+++ b/src/intercom/unstable/requests/group_translated_content.py
@@ -0,0 +1,201 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing_extensions
+from ...core.serialization import FieldMetadata
+from .group_content import GroupContentParams
+
+
+class GroupTranslatedContentParams(typing_extensions.TypedDict):
+ """
+ The Translated Content of an Group. The keys are the locale codes and the values are the translated content of the Group.
+ """
+
+ type: typing_extensions.NotRequired[str]
+ """
+ The type of object - group_translated_content.
+ """
+
+ ar: typing_extensions.NotRequired[GroupContentParams]
+ """
+ The content of the group in Arabic
+ """
+
+ bg: typing_extensions.NotRequired[GroupContentParams]
+ """
+ The content of the group in Bulgarian
+ """
+
+ bs: typing_extensions.NotRequired[GroupContentParams]
+ """
+ The content of the group in Bosnian
+ """
+
+ ca: typing_extensions.NotRequired[GroupContentParams]
+ """
+ The content of the group in Catalan
+ """
+
+ cs: typing_extensions.NotRequired[GroupContentParams]
+ """
+ The content of the group in Czech
+ """
+
+ da: typing_extensions.NotRequired[GroupContentParams]
+ """
+ The content of the group in Danish
+ """
+
+ de: typing_extensions.NotRequired[GroupContentParams]
+ """
+ The content of the group in German
+ """
+
+ el: typing_extensions.NotRequired[GroupContentParams]
+ """
+ The content of the group in Greek
+ """
+
+ en: typing_extensions.NotRequired[GroupContentParams]
+ """
+ The content of the group in English
+ """
+
+ es: typing_extensions.NotRequired[GroupContentParams]
+ """
+ The content of the group in Spanish
+ """
+
+ et: typing_extensions.NotRequired[GroupContentParams]
+ """
+ The content of the group in Estonian
+ """
+
+ fi: typing_extensions.NotRequired[GroupContentParams]
+ """
+ The content of the group in Finnish
+ """
+
+ fr: typing_extensions.NotRequired[GroupContentParams]
+ """
+ The content of the group in French
+ """
+
+ he: typing_extensions.NotRequired[GroupContentParams]
+ """
+ The content of the group in Hebrew
+ """
+
+ hr: typing_extensions.NotRequired[GroupContentParams]
+ """
+ The content of the group in Croatian
+ """
+
+ hu: typing_extensions.NotRequired[GroupContentParams]
+ """
+ The content of the group in Hungarian
+ """
+
+ id: typing_extensions.NotRequired[GroupContentParams]
+ """
+ The content of the group in Indonesian
+ """
+
+ it: typing_extensions.NotRequired[GroupContentParams]
+ """
+ The content of the group in Italian
+ """
+
+ ja: typing_extensions.NotRequired[GroupContentParams]
+ """
+ The content of the group in Japanese
+ """
+
+ ko: typing_extensions.NotRequired[GroupContentParams]
+ """
+ The content of the group in Korean
+ """
+
+ lt: typing_extensions.NotRequired[GroupContentParams]
+ """
+ The content of the group in Lithuanian
+ """
+
+ lv: typing_extensions.NotRequired[GroupContentParams]
+ """
+ The content of the group in Latvian
+ """
+
+ mn: typing_extensions.NotRequired[GroupContentParams]
+ """
+ The content of the group in Mongolian
+ """
+
+ nb: typing_extensions.NotRequired[GroupContentParams]
+ """
+ The content of the group in Norwegian
+ """
+
+ nl: typing_extensions.NotRequired[GroupContentParams]
+ """
+ The content of the group in Dutch
+ """
+
+ pl: typing_extensions.NotRequired[GroupContentParams]
+ """
+ The content of the group in Polish
+ """
+
+ pt: typing_extensions.NotRequired[GroupContentParams]
+ """
+ The content of the group in Portuguese (Portugal)
+ """
+
+ ro: typing_extensions.NotRequired[GroupContentParams]
+ """
+ The content of the group in Romanian
+ """
+
+ ru: typing_extensions.NotRequired[GroupContentParams]
+ """
+ The content of the group in Russian
+ """
+
+ sl: typing_extensions.NotRequired[GroupContentParams]
+ """
+ The content of the group in Slovenian
+ """
+
+ sr: typing_extensions.NotRequired[GroupContentParams]
+ """
+ The content of the group in Serbian
+ """
+
+ sv: typing_extensions.NotRequired[GroupContentParams]
+ """
+ The content of the group in Swedish
+ """
+
+ tr: typing_extensions.NotRequired[GroupContentParams]
+ """
+ The content of the group in Turkish
+ """
+
+ vi: typing_extensions.NotRequired[GroupContentParams]
+ """
+ The content of the group in Vietnamese
+ """
+
+ pt_br: typing_extensions.NotRequired[typing_extensions.Annotated[GroupContentParams, FieldMetadata(alias="pt-BR")]]
+ """
+ The content of the group in Portuguese (Brazil)
+ """
+
+ zh_cn: typing_extensions.NotRequired[typing_extensions.Annotated[GroupContentParams, FieldMetadata(alias="zh-CN")]]
+ """
+ The content of the group in Chinese (China)
+ """
+
+ zh_tw: typing_extensions.NotRequired[typing_extensions.Annotated[GroupContentParams, FieldMetadata(alias="zh-TW")]]
+ """
+ The content of the group in Chinese (Taiwan)
+ """
diff --git a/src/intercom/unstable/requests/linked_object.py b/src/intercom/unstable/requests/linked_object.py
new file mode 100644
index 0000000..1b71932
--- /dev/null
+++ b/src/intercom/unstable/requests/linked_object.py
@@ -0,0 +1,25 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing_extensions
+from ..types.linked_object_type import LinkedObjectType
+
+
+class LinkedObjectParams(typing_extensions.TypedDict):
+ """
+ A linked conversation or ticket.
+ """
+
+ type: typing_extensions.NotRequired[LinkedObjectType]
+ """
+ ticket or conversation
+ """
+
+ id: typing_extensions.NotRequired[str]
+ """
+ The ID of the linked object
+ """
+
+ category: typing_extensions.NotRequired[str]
+ """
+ Category of the Linked Ticket Object.
+ """
diff --git a/src/intercom/unstable/requests/linked_object_list.py b/src/intercom/unstable/requests/linked_object_list.py
new file mode 100644
index 0000000..135eded
--- /dev/null
+++ b/src/intercom/unstable/requests/linked_object_list.py
@@ -0,0 +1,32 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing
+
+import typing_extensions
+from .linked_object import LinkedObjectParams
+
+
+class LinkedObjectListParams(typing_extensions.TypedDict):
+ """
+ An object containing metadata about linked conversations and linked tickets. Up to 1000 can be returned.
+ """
+
+ type: typing_extensions.NotRequired[typing.Literal["list"]]
+ """
+ Always list.
+ """
+
+ total_count: typing_extensions.NotRequired[int]
+ """
+ The total number of linked objects.
+ """
+
+ has_more: typing_extensions.NotRequired[bool]
+ """
+ Whether or not there are more linked objects than returned.
+ """
+
+ data: typing_extensions.NotRequired[typing.Sequence[LinkedObjectParams]]
+ """
+ An array containing the linked conversations and linked tickets.
+ """
diff --git a/src/intercom/unstable/requests/multiple_filter_search_request.py b/src/intercom/unstable/requests/multiple_filter_search_request.py
new file mode 100644
index 0000000..7113218
--- /dev/null
+++ b/src/intercom/unstable/requests/multiple_filter_search_request.py
@@ -0,0 +1,24 @@
+# This file was auto-generated by Fern from our API Definition.
+
+from __future__ import annotations
+
+import typing
+
+import typing_extensions
+from ..types.multiple_filter_search_request_operator import MultipleFilterSearchRequestOperator
+
+if typing.TYPE_CHECKING:
+ from .multiple_filter_search_request_value import MultipleFilterSearchRequestValueParams
+
+
+class MultipleFilterSearchRequestParams(typing_extensions.TypedDict):
+ """
+ Search using Intercoms Search APIs with more than one filter.
+ """
+
+ operator: typing_extensions.NotRequired[MultipleFilterSearchRequestOperator]
+ """
+ An operator to allow boolean inspection between multiple fields.
+ """
+
+ value: typing_extensions.NotRequired["MultipleFilterSearchRequestValueParams"]
diff --git a/src/intercom/unstable/requests/multiple_filter_search_request_value.py b/src/intercom/unstable/requests/multiple_filter_search_request_value.py
new file mode 100644
index 0000000..fbfee0d
--- /dev/null
+++ b/src/intercom/unstable/requests/multiple_filter_search_request_value.py
@@ -0,0 +1,13 @@
+# This file was auto-generated by Fern from our API Definition.
+
+from __future__ import annotations
+
+import typing
+
+from .single_filter_search_request import SingleFilterSearchRequestParams
+
+if typing.TYPE_CHECKING:
+ from .multiple_filter_search_request import MultipleFilterSearchRequestParams
+MultipleFilterSearchRequestValueParams = typing.Union[
+ typing.Sequence["MultipleFilterSearchRequestParams"], typing.Sequence[SingleFilterSearchRequestParams]
+]
diff --git a/src/intercom/unstable/requests/news_item_request.py b/src/intercom/unstable/requests/news_item_request.py
new file mode 100644
index 0000000..5821ffd
--- /dev/null
+++ b/src/intercom/unstable/requests/news_item_request.py
@@ -0,0 +1,53 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing
+
+import typing_extensions
+from ..news.requests.newsfeed_assignment import NewsfeedAssignmentParams
+from ..types.news_item_request_state import NewsItemRequestState
+
+
+class NewsItemRequestParams(typing_extensions.TypedDict):
+ """
+ A News Item is a content type in Intercom enabling you to announce product updates, company news, promotions, events and more with your customers.
+ """
+
+ title: str
+ """
+ The title of the news item.
+ """
+
+ body: typing_extensions.NotRequired[str]
+ """
+ The news item body, which may contain HTML.
+ """
+
+ sender_id: int
+ """
+ The id of the sender of the news item. Must be a teammate on the workspace.
+ """
+
+ state: typing_extensions.NotRequired[NewsItemRequestState]
+ """
+ News items will not be visible to your users in the assigned newsfeeds until they are set live.
+ """
+
+ deliver_silently: typing_extensions.NotRequired[bool]
+ """
+ When set to `true`, the news item will appear in the messenger newsfeed without showing a notification badge.
+ """
+
+ labels: typing_extensions.NotRequired[typing.Sequence[str]]
+ """
+ Label names displayed to users to categorize the news item.
+ """
+
+ reactions: typing_extensions.NotRequired[typing.Sequence[typing.Optional[str]]]
+ """
+ Ordered list of emoji reactions to the news item. When empty, reactions are disabled.
+ """
+
+ newsfeed_assignments: typing_extensions.NotRequired[typing.Sequence[NewsfeedAssignmentParams]]
+ """
+ A list of newsfeed_assignments to assign to the specified newsfeed.
+ """
diff --git a/src/intercom/unstable/requests/not_found_error_body.py b/src/intercom/unstable/requests/not_found_error_body.py
new file mode 100644
index 0000000..2c79508
--- /dev/null
+++ b/src/intercom/unstable/requests/not_found_error_body.py
@@ -0,0 +1,23 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing
+
+import typing_extensions
+from .not_found_error_body_errors_item import NotFoundErrorBodyErrorsItemParams
+
+
+class NotFoundErrorBodyParams(typing_extensions.TypedDict):
+ type: str
+ """
+ The type is error.list
+ """
+
+ request_id: typing_extensions.NotRequired[str]
+ """
+
+ """
+
+ errors: typing.Sequence[NotFoundErrorBodyErrorsItemParams]
+ """
+ An array of one or more error objects
+ """
diff --git a/src/intercom/unstable/requests/not_found_error_body_errors_item.py b/src/intercom/unstable/requests/not_found_error_body_errors_item.py
new file mode 100644
index 0000000..81087af
--- /dev/null
+++ b/src/intercom/unstable/requests/not_found_error_body_errors_item.py
@@ -0,0 +1,15 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing_extensions
+
+
+class NotFoundErrorBodyErrorsItemParams(typing_extensions.TypedDict):
+ code: str
+ """
+ ticket_not_found
+ """
+
+ message: typing_extensions.NotRequired[str]
+ """
+ Ticket not found
+ """
diff --git a/src/intercom/unstable/requests/note_list.py b/src/intercom/unstable/requests/note_list.py
new file mode 100644
index 0000000..22663f0
--- /dev/null
+++ b/src/intercom/unstable/requests/note_list.py
@@ -0,0 +1,30 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing
+
+import typing_extensions
+from ..notes.requests.note import NoteParams
+from .cursor_pages import CursorPagesParams
+
+
+class NoteListParams(typing_extensions.TypedDict):
+ """
+ A paginated list of notes associated with a contact.
+ """
+
+ type: typing_extensions.NotRequired[str]
+ """
+ String representing the object's type. Always has the value `list`.
+ """
+
+ data: typing_extensions.NotRequired[typing.Sequence[NoteParams]]
+ """
+ An array of notes.
+ """
+
+ total_count: typing_extensions.NotRequired[int]
+ """
+ A count of the total number of notes.
+ """
+
+ pages: typing_extensions.NotRequired[CursorPagesParams]
diff --git a/src/intercom/unstable/requests/open_conversation_request.py b/src/intercom/unstable/requests/open_conversation_request.py
new file mode 100644
index 0000000..02bbfaa
--- /dev/null
+++ b/src/intercom/unstable/requests/open_conversation_request.py
@@ -0,0 +1,14 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing_extensions
+
+
+class OpenConversationRequestParams(typing_extensions.TypedDict):
+ """
+ Payload of the request to open a conversation
+ """
+
+ admin_id: str
+ """
+ The id of the admin who is performing the action.
+ """
diff --git a/src/intercom/unstable/requests/operator_workflow_event.py b/src/intercom/unstable/requests/operator_workflow_event.py
new file mode 100644
index 0000000..d03f67b
--- /dev/null
+++ b/src/intercom/unstable/requests/operator_workflow_event.py
@@ -0,0 +1,14 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing_extensions
+from .operator_workflow_event_event import OperatorWorkflowEventEventParams
+from .operator_workflow_event_workflow import OperatorWorkflowEventWorkflowParams
+
+
+class OperatorWorkflowEventParams(typing_extensions.TypedDict):
+ """
+ Contains details about name of the workflow for conversation part type operator_workflow_event.
+ """
+
+ workflow: typing_extensions.NotRequired[OperatorWorkflowEventWorkflowParams]
+ event: typing_extensions.NotRequired[OperatorWorkflowEventEventParams]
diff --git a/src/intercom/unstable/requests/operator_workflow_event_event.py b/src/intercom/unstable/requests/operator_workflow_event_event.py
new file mode 100644
index 0000000..43be361
--- /dev/null
+++ b/src/intercom/unstable/requests/operator_workflow_event_event.py
@@ -0,0 +1,15 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing_extensions
+
+
+class OperatorWorkflowEventEventParams(typing_extensions.TypedDict):
+ type: typing_extensions.NotRequired[str]
+ """
+ Type of the workflow event initiated
+ """
+
+ result: typing_extensions.NotRequired[str]
+ """
+ Result of the workflow event
+ """
diff --git a/src/intercom/unstable/requests/operator_workflow_event_workflow.py b/src/intercom/unstable/requests/operator_workflow_event_workflow.py
new file mode 100644
index 0000000..d857a0a
--- /dev/null
+++ b/src/intercom/unstable/requests/operator_workflow_event_workflow.py
@@ -0,0 +1,10 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing_extensions
+
+
+class OperatorWorkflowEventWorkflowParams(typing_extensions.TypedDict):
+ name: typing_extensions.NotRequired[str]
+ """
+ The name of the workflow
+ """
diff --git a/src/intercom/unstable/requests/pages_link.py b/src/intercom/unstable/requests/pages_link.py
new file mode 100644
index 0000000..b504b3f
--- /dev/null
+++ b/src/intercom/unstable/requests/pages_link.py
@@ -0,0 +1,23 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing
+
+import typing_extensions
+
+
+class PagesLinkParams(typing_extensions.TypedDict):
+ """
+ The majority of list resources in the API are paginated to allow clients to traverse data over multiple requests.
+
+ Their responses are likely to contain a pages object that hosts pagination links which a client can use to paginate through the data without having to construct a query. The link relations for the pages field are as follows.
+ """
+
+ type: typing_extensions.NotRequired[typing.Literal["pages"]]
+ page: typing_extensions.NotRequired[int]
+ next: typing_extensions.NotRequired[str]
+ """
+ A link to the next page of results. A response that does not contain a next link does not have further data to fetch.
+ """
+
+ per_page: typing_extensions.NotRequired[int]
+ total_pages: typing_extensions.NotRequired[int]
diff --git a/src/intercom/unstable/requests/paginated_response.py b/src/intercom/unstable/requests/paginated_response.py
new file mode 100644
index 0000000..9df8c44
--- /dev/null
+++ b/src/intercom/unstable/requests/paginated_response.py
@@ -0,0 +1,30 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing
+
+import typing_extensions
+from ..types.paginated_response_type import PaginatedResponseType
+from .cursor_pages import CursorPagesParams
+from .paginated_response_data_item import PaginatedResponseDataItemParams
+
+
+class PaginatedResponseParams(typing_extensions.TypedDict):
+ """
+ Paginated Response
+ """
+
+ type: typing_extensions.NotRequired[PaginatedResponseType]
+ """
+ The type of object
+ """
+
+ pages: typing_extensions.NotRequired[CursorPagesParams]
+ total_count: typing_extensions.NotRequired[int]
+ """
+ A count of the total number of objects.
+ """
+
+ data: typing_extensions.NotRequired[typing.Sequence[PaginatedResponseDataItemParams]]
+ """
+ An array of Objects
+ """
diff --git a/src/intercom/unstable/requests/paginated_response_data_item.py b/src/intercom/unstable/requests/paginated_response_data_item.py
new file mode 100644
index 0000000..e6410cd
--- /dev/null
+++ b/src/intercom/unstable/requests/paginated_response_data_item.py
@@ -0,0 +1,39 @@
+# This file was auto-generated by Fern from our API Definition.
+
+from __future__ import annotations
+
+import typing
+
+import typing_extensions
+from ..news.requests.newsfeed_assignment import NewsfeedAssignmentParams
+from ..news.types.news_item_state import NewsItemState
+
+
+class PaginatedResponseDataItem_NewsItemParams(typing_extensions.TypedDict):
+ type: typing.Literal["news-item"]
+ id: typing_extensions.NotRequired[str]
+ workspace_id: typing_extensions.NotRequired[str]
+ title: typing_extensions.NotRequired[str]
+ body: typing_extensions.NotRequired[str]
+ sender_id: typing_extensions.NotRequired[int]
+ state: typing_extensions.NotRequired[NewsItemState]
+ newsfeed_assignments: typing_extensions.NotRequired[typing.Sequence[NewsfeedAssignmentParams]]
+ labels: typing_extensions.NotRequired[typing.Sequence[typing.Optional[str]]]
+ cover_image_url: typing_extensions.NotRequired[str]
+ reactions: typing_extensions.NotRequired[typing.Sequence[typing.Optional[str]]]
+ deliver_silently: typing_extensions.NotRequired[bool]
+ created_at: typing_extensions.NotRequired[int]
+ updated_at: typing_extensions.NotRequired[int]
+
+
+class PaginatedResponseDataItem_NewsfeedParams(typing_extensions.TypedDict):
+ type: typing.Literal["newsfeed"]
+ id: typing_extensions.NotRequired[str]
+ name: typing_extensions.NotRequired[str]
+ created_at: typing_extensions.NotRequired[int]
+ updated_at: typing_extensions.NotRequired[int]
+
+
+PaginatedResponseDataItemParams = typing.Union[
+ PaginatedResponseDataItem_NewsItemParams, PaginatedResponseDataItem_NewsfeedParams
+]
diff --git a/src/intercom/unstable/requests/part_attachment.py b/src/intercom/unstable/requests/part_attachment.py
new file mode 100644
index 0000000..badd84c
--- /dev/null
+++ b/src/intercom/unstable/requests/part_attachment.py
@@ -0,0 +1,44 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing_extensions
+
+
+class PartAttachmentParams(typing_extensions.TypedDict):
+ """
+ The file attached to a part
+ """
+
+ type: typing_extensions.NotRequired[str]
+ """
+ The type of attachment
+ """
+
+ name: typing_extensions.NotRequired[str]
+ """
+ The name of the attachment
+ """
+
+ url: typing_extensions.NotRequired[str]
+ """
+ The URL of the attachment
+ """
+
+ content_type: typing_extensions.NotRequired[str]
+ """
+ The content type of the attachment
+ """
+
+ filesize: typing_extensions.NotRequired[int]
+ """
+ The size of the attachment
+ """
+
+ width: typing_extensions.NotRequired[int]
+ """
+ The width of the attachment
+ """
+
+ height: typing_extensions.NotRequired[int]
+ """
+ The height of the attachment
+ """
diff --git a/src/intercom/unstable/requests/phone_switch.py b/src/intercom/unstable/requests/phone_switch.py
new file mode 100644
index 0000000..262371c
--- /dev/null
+++ b/src/intercom/unstable/requests/phone_switch.py
@@ -0,0 +1,21 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing
+
+import typing_extensions
+
+
+class PhoneSwitchParams(typing_extensions.TypedDict):
+ """
+ Phone Switch Response
+ """
+
+ type: typing_extensions.NotRequired[typing.Literal["phone_call_redirect"]]
+ """
+
+ """
+
+ phone: typing_extensions.NotRequired[str]
+ """
+ Phone number in E.164 format, that has received the SMS to continue the conversation in the Messenger.
+ """
diff --git a/src/intercom/unstable/requests/quick_reply_option.py b/src/intercom/unstable/requests/quick_reply_option.py
new file mode 100644
index 0000000..57261fa
--- /dev/null
+++ b/src/intercom/unstable/requests/quick_reply_option.py
@@ -0,0 +1,16 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing_extensions
+from ...core.serialization import FieldMetadata
+
+
+class QuickReplyOptionParams(typing_extensions.TypedDict):
+ text: str
+ """
+ The text to display in this quick reply option.
+ """
+
+ uuid_: typing_extensions.Annotated[str, FieldMetadata(alias="uuid")]
+ """
+ A unique identifier for this quick reply option. This value will be available within the metadata of the comment conversation part that is created when a user clicks on this reply option.
+ """
diff --git a/src/intercom/unstable/requests/recipient.py b/src/intercom/unstable/requests/recipient.py
new file mode 100644
index 0000000..1f95e0f
--- /dev/null
+++ b/src/intercom/unstable/requests/recipient.py
@@ -0,0 +1,20 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing_extensions
+from ..types.recipient_type import RecipientType
+
+
+class RecipientParams(typing_extensions.TypedDict):
+ """
+ A recipient of a message
+ """
+
+ type: RecipientType
+ """
+ The role associated to the contact - `user` or `lead`.
+ """
+
+ id: str
+ """
+ The identifier for the contact which is given by Intercom.
+ """
diff --git a/src/intercom/unstable/requests/redact_conversation_request.py b/src/intercom/unstable/requests/redact_conversation_request.py
new file mode 100644
index 0000000..8ac7200
--- /dev/null
+++ b/src/intercom/unstable/requests/redact_conversation_request.py
@@ -0,0 +1,24 @@
+# This file was auto-generated by Fern from our API Definition.
+
+from __future__ import annotations
+
+import typing
+
+import typing_extensions
+
+
+class RedactConversationRequest_ConversationPartParams(typing_extensions.TypedDict):
+ type: typing.Literal["conversation_part"]
+ conversation_id: str
+ conversation_part_id: str
+
+
+class RedactConversationRequest_SourceParams(typing_extensions.TypedDict):
+ type: typing.Literal["source"]
+ conversation_id: str
+ source_id: str
+
+
+RedactConversationRequestParams = typing.Union[
+ RedactConversationRequest_ConversationPartParams, RedactConversationRequest_SourceParams
+]
diff --git a/src/intercom/unstable/requests/redact_conversation_request_conversation_part.py b/src/intercom/unstable/requests/redact_conversation_request_conversation_part.py
new file mode 100644
index 0000000..202514e
--- /dev/null
+++ b/src/intercom/unstable/requests/redact_conversation_request_conversation_part.py
@@ -0,0 +1,19 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing_extensions
+
+
+class RedactConversationRequestConversationPartParams(typing_extensions.TypedDict):
+ """
+ Payload of the request to redact a conversation part
+ """
+
+ conversation_id: str
+ """
+ The id of the conversation.
+ """
+
+ conversation_part_id: str
+ """
+ The id of the conversation_part.
+ """
diff --git a/src/intercom/unstable/requests/redact_conversation_request_source.py b/src/intercom/unstable/requests/redact_conversation_request_source.py
new file mode 100644
index 0000000..b204587
--- /dev/null
+++ b/src/intercom/unstable/requests/redact_conversation_request_source.py
@@ -0,0 +1,19 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing_extensions
+
+
+class RedactConversationRequestSourceParams(typing_extensions.TypedDict):
+ """
+ Payload of the request to redact a conversation source
+ """
+
+ conversation_id: str
+ """
+ The id of the conversation.
+ """
+
+ source_id: str
+ """
+ The id of the source.
+ """
diff --git a/src/intercom/unstable/requests/reference.py b/src/intercom/unstable/requests/reference.py
new file mode 100644
index 0000000..e983e3f
--- /dev/null
+++ b/src/intercom/unstable/requests/reference.py
@@ -0,0 +1,19 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing_extensions
+
+
+class ReferenceParams(typing_extensions.TypedDict):
+ """
+ reference to another object
+ """
+
+ type: typing_extensions.NotRequired[str]
+ """
+
+ """
+
+ id: typing_extensions.NotRequired[str]
+ """
+
+ """
diff --git a/src/intercom/unstable/requests/reply_conversation_request_body.py b/src/intercom/unstable/requests/reply_conversation_request_body.py
new file mode 100644
index 0000000..722267d
--- /dev/null
+++ b/src/intercom/unstable/requests/reply_conversation_request_body.py
@@ -0,0 +1,10 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing
+
+from .admin_reply_conversation_request import AdminReplyConversationRequestParams
+from .contact_reply_conversation_request import ContactReplyConversationRequestParams
+
+ReplyConversationRequestBodyParams = typing.Union[
+ ContactReplyConversationRequestParams, AdminReplyConversationRequestParams
+]
diff --git a/src/intercom/unstable/requests/search_request.py b/src/intercom/unstable/requests/search_request.py
new file mode 100644
index 0000000..e9b2005
--- /dev/null
+++ b/src/intercom/unstable/requests/search_request.py
@@ -0,0 +1,14 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing_extensions
+from .search_request_query import SearchRequestQueryParams
+from .starting_after_paging import StartingAfterPagingParams
+
+
+class SearchRequestParams(typing_extensions.TypedDict):
+ """
+ Search using Intercoms Search APIs.
+ """
+
+ query: SearchRequestQueryParams
+ pagination: typing_extensions.NotRequired[StartingAfterPagingParams]
diff --git a/src/intercom/unstable/requests/search_request_query.py b/src/intercom/unstable/requests/search_request_query.py
new file mode 100644
index 0000000..20b3941
--- /dev/null
+++ b/src/intercom/unstable/requests/search_request_query.py
@@ -0,0 +1,8 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing
+
+from .multiple_filter_search_request import MultipleFilterSearchRequestParams
+from .single_filter_search_request import SingleFilterSearchRequestParams
+
+SearchRequestQueryParams = typing.Union[SingleFilterSearchRequestParams, MultipleFilterSearchRequestParams]
diff --git a/src/intercom/unstable/requests/segment_list.py b/src/intercom/unstable/requests/segment_list.py
new file mode 100644
index 0000000..6272bbe
--- /dev/null
+++ b/src/intercom/unstable/requests/segment_list.py
@@ -0,0 +1,27 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing
+
+import typing_extensions
+from ..segments.requests.segment import SegmentParams
+
+
+class SegmentListParams(typing_extensions.TypedDict):
+ """
+ This will return a list of Segment Objects. The result may also have a pages object if the response is paginated.
+ """
+
+ type: typing_extensions.NotRequired[typing.Literal["segment.list"]]
+ """
+ The type of the object
+ """
+
+ segments: typing_extensions.NotRequired[typing.Sequence[SegmentParams]]
+ """
+ A list of Segment objects
+ """
+
+ pages: typing_extensions.NotRequired[typing.Dict[str, typing.Optional[typing.Any]]]
+ """
+ A pagination object, which may be empty, indicating no further pages to fetch.
+ """
diff --git a/src/intercom/unstable/requests/single_filter_search_request.py b/src/intercom/unstable/requests/single_filter_search_request.py
new file mode 100644
index 0000000..3feb1db
--- /dev/null
+++ b/src/intercom/unstable/requests/single_filter_search_request.py
@@ -0,0 +1,26 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing_extensions
+from ..types.single_filter_search_request_operator import SingleFilterSearchRequestOperator
+from .single_filter_search_request_value import SingleFilterSearchRequestValueParams
+
+
+class SingleFilterSearchRequestParams(typing_extensions.TypedDict):
+ """
+ Search using Intercoms Search APIs with a single filter.
+ """
+
+ field: typing_extensions.NotRequired[str]
+ """
+ The accepted field that you want to search on.
+ """
+
+ operator: typing_extensions.NotRequired[SingleFilterSearchRequestOperator]
+ """
+ The accepted operators you can use to define how you want to search for the value.
+ """
+
+ value: typing_extensions.NotRequired[SingleFilterSearchRequestValueParams]
+ """
+ The value that you want to search on.
+ """
diff --git a/src/intercom/unstable/requests/single_filter_search_request_value.py b/src/intercom/unstable/requests/single_filter_search_request_value.py
new file mode 100644
index 0000000..7c07870
--- /dev/null
+++ b/src/intercom/unstable/requests/single_filter_search_request_value.py
@@ -0,0 +1,7 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing
+
+from .single_filter_search_request_value_item import SingleFilterSearchRequestValueItemParams
+
+SingleFilterSearchRequestValueParams = typing.Union[str, int, typing.Sequence[SingleFilterSearchRequestValueItemParams]]
diff --git a/src/intercom/unstable/requests/single_filter_search_request_value_item.py b/src/intercom/unstable/requests/single_filter_search_request_value_item.py
new file mode 100644
index 0000000..13d2df6
--- /dev/null
+++ b/src/intercom/unstable/requests/single_filter_search_request_value_item.py
@@ -0,0 +1,5 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing
+
+SingleFilterSearchRequestValueItemParams = typing.Union[str, int]
diff --git a/src/intercom/unstable/requests/sla_applied.py b/src/intercom/unstable/requests/sla_applied.py
new file mode 100644
index 0000000..6be89e2
--- /dev/null
+++ b/src/intercom/unstable/requests/sla_applied.py
@@ -0,0 +1,29 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing_extensions
+from ..types.sla_applied_sla_status import SlaAppliedSlaStatus
+
+
+class SlaAppliedParams(typing_extensions.TypedDict):
+ """
+ The SLA Applied object contains the details for which SLA has been applied to this conversation.
+ Important: if there are any canceled sla_events for the conversation - meaning an SLA has been manually removed from a conversation, the sla_status will always be returned as null.
+ """
+
+ type: typing_extensions.NotRequired[str]
+ """
+ object type
+ """
+
+ sla_name: typing_extensions.NotRequired[str]
+ """
+ The name of the SLA as given by the teammate when it was created.
+ """
+
+ sla_status: typing_extensions.NotRequired[SlaAppliedSlaStatus]
+ """
+ SLA statuses:
+ - `hit`: If there’s at least one hit event in the underlying sla_events table, and no “missed” or “canceled” events for the conversation.
+ - `missed`: If there are any missed sla_events for the conversation and no canceled events. If there’s even a single missed sla event, the status will always be missed. A missed status is not applied when the SLA expires, only the next time a teammate replies.
+ - `active`: An SLA has been applied to a conversation, but has not yet been fulfilled. SLA status is active only if there are no “hit, “missed”, or “canceled” events.
+ """
diff --git a/src/intercom/unstable/requests/snooze_conversation_request.py b/src/intercom/unstable/requests/snooze_conversation_request.py
new file mode 100644
index 0000000..89e73dd
--- /dev/null
+++ b/src/intercom/unstable/requests/snooze_conversation_request.py
@@ -0,0 +1,19 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing_extensions
+
+
+class SnoozeConversationRequestParams(typing_extensions.TypedDict):
+ """
+ Payload of the request to snooze a conversation
+ """
+
+ admin_id: str
+ """
+ The id of the admin who is performing the action.
+ """
+
+ snoozed_until: int
+ """
+ The time you want the conversation to reopen.
+ """
diff --git a/src/intercom/unstable/requests/social_profile.py b/src/intercom/unstable/requests/social_profile.py
new file mode 100644
index 0000000..999511f
--- /dev/null
+++ b/src/intercom/unstable/requests/social_profile.py
@@ -0,0 +1,24 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing_extensions
+
+
+class SocialProfileParams(typing_extensions.TypedDict):
+ """
+ A Social Profile allows you to label your contacts, companies, and conversations and list them using that Social Profile.
+ """
+
+ type: typing_extensions.NotRequired[str]
+ """
+ value is "social_profile"
+ """
+
+ name: typing_extensions.NotRequired[str]
+ """
+ The name of the Social media profile
+ """
+
+ url: typing_extensions.NotRequired[str]
+ """
+ The name of the Social media profile
+ """
diff --git a/src/intercom/unstable/requests/starting_after_paging.py b/src/intercom/unstable/requests/starting_after_paging.py
new file mode 100644
index 0000000..cc3a182
--- /dev/null
+++ b/src/intercom/unstable/requests/starting_after_paging.py
@@ -0,0 +1,15 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing_extensions
+
+
+class StartingAfterPagingParams(typing_extensions.TypedDict):
+ per_page: typing_extensions.NotRequired[int]
+ """
+ The number of results to fetch per page.
+ """
+
+ starting_after: typing_extensions.NotRequired[str]
+ """
+ The cursor to use in the next request to get the next page of results.
+ """
diff --git a/src/intercom/unstable/requests/subscription_type_list.py b/src/intercom/unstable/requests/subscription_type_list.py
new file mode 100644
index 0000000..4739f1b
--- /dev/null
+++ b/src/intercom/unstable/requests/subscription_type_list.py
@@ -0,0 +1,22 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing
+
+import typing_extensions
+from ..subscription_types.requests.subscription_type import SubscriptionTypeParams
+
+
+class SubscriptionTypeListParams(typing_extensions.TypedDict):
+ """
+ A list of subscription type objects.
+ """
+
+ type: typing_extensions.NotRequired[typing.Literal["list"]]
+ """
+ The type of the object
+ """
+
+ data: typing_extensions.NotRequired[typing.Sequence[SubscriptionTypeParams]]
+ """
+ A list of subscription type objects associated with the workspace .
+ """
diff --git a/src/intercom/unstable/requests/tag_company_request.py b/src/intercom/unstable/requests/tag_company_request.py
new file mode 100644
index 0000000..b822260
--- /dev/null
+++ b/src/intercom/unstable/requests/tag_company_request.py
@@ -0,0 +1,22 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing
+
+import typing_extensions
+from .tag_company_request_companies_item import TagCompanyRequestCompaniesItemParams
+
+
+class TagCompanyRequestParams(typing_extensions.TypedDict):
+ """
+ You can tag a single company or a list of companies.
+ """
+
+ name: str
+ """
+ The name of the tag, which will be created if not found.
+ """
+
+ companies: typing.Sequence[TagCompanyRequestCompaniesItemParams]
+ """
+ The id or company_id of the company can be passed as input parameters.
+ """
diff --git a/src/intercom/unstable/requests/tag_company_request_companies_item.py b/src/intercom/unstable/requests/tag_company_request_companies_item.py
new file mode 100644
index 0000000..ee104a5
--- /dev/null
+++ b/src/intercom/unstable/requests/tag_company_request_companies_item.py
@@ -0,0 +1,15 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing_extensions
+
+
+class TagCompanyRequestCompaniesItemParams(typing_extensions.TypedDict):
+ id: typing_extensions.NotRequired[str]
+ """
+ The Intercom defined id representing the company.
+ """
+
+ company_id: typing_extensions.NotRequired[str]
+ """
+ The company id you have defined for the company.
+ """
diff --git a/src/intercom/unstable/requests/tag_list.py b/src/intercom/unstable/requests/tag_list.py
new file mode 100644
index 0000000..276c750
--- /dev/null
+++ b/src/intercom/unstable/requests/tag_list.py
@@ -0,0 +1,22 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing
+
+import typing_extensions
+from ..tags.requests.tag import TagParams
+
+
+class TagListParams(typing_extensions.TypedDict):
+ """
+ A list of tags objects in the workspace.
+ """
+
+ type: typing_extensions.NotRequired[typing.Literal["list"]]
+ """
+ The type of the object
+ """
+
+ data: typing_extensions.NotRequired[typing.Sequence[TagParams]]
+ """
+ A list of tags objects associated with the workspace .
+ """
diff --git a/src/intercom/unstable/requests/tag_multiple_users_request.py b/src/intercom/unstable/requests/tag_multiple_users_request.py
new file mode 100644
index 0000000..69edb1e
--- /dev/null
+++ b/src/intercom/unstable/requests/tag_multiple_users_request.py
@@ -0,0 +1,19 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing
+
+import typing_extensions
+from .tag_multiple_users_request_users_item import TagMultipleUsersRequestUsersItemParams
+
+
+class TagMultipleUsersRequestParams(typing_extensions.TypedDict):
+ """
+ You can tag a list of users.
+ """
+
+ name: str
+ """
+ The name of the tag, which will be created if not found.
+ """
+
+ users: typing.Sequence[TagMultipleUsersRequestUsersItemParams]
diff --git a/src/intercom/unstable/requests/tag_multiple_users_request_users_item.py b/src/intercom/unstable/requests/tag_multiple_users_request_users_item.py
new file mode 100644
index 0000000..f320094
--- /dev/null
+++ b/src/intercom/unstable/requests/tag_multiple_users_request_users_item.py
@@ -0,0 +1,10 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing_extensions
+
+
+class TagMultipleUsersRequestUsersItemParams(typing_extensions.TypedDict):
+ id: typing_extensions.NotRequired[str]
+ """
+ The Intercom defined id representing the user.
+ """
diff --git a/src/intercom/unstable/requests/tags.py b/src/intercom/unstable/requests/tags.py
new file mode 100644
index 0000000..54459d6
--- /dev/null
+++ b/src/intercom/unstable/requests/tags.py
@@ -0,0 +1,22 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing
+
+import typing_extensions
+from ..tags.requests.tag import TagParams
+
+
+class TagsParams(typing_extensions.TypedDict):
+ """
+ A list of tags objects associated with a conversation
+ """
+
+ type: typing_extensions.NotRequired[typing.Literal["tag.list"]]
+ """
+ The type of the object
+ """
+
+ tags: typing_extensions.NotRequired[typing.Sequence[TagParams]]
+ """
+ A list of tags objects associated with the conversation.
+ """
diff --git a/src/intercom/unstable/requests/team_list.py b/src/intercom/unstable/requests/team_list.py
new file mode 100644
index 0000000..8580c11
--- /dev/null
+++ b/src/intercom/unstable/requests/team_list.py
@@ -0,0 +1,22 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing
+
+import typing_extensions
+from ..teams.requests.team import TeamParams
+
+
+class TeamListParams(typing_extensions.TypedDict):
+ """
+ This will return a list of team objects for the App.
+ """
+
+ type: typing_extensions.NotRequired[typing.Literal["team.list"]]
+ """
+ The type of the object
+ """
+
+ teams: typing_extensions.NotRequired[typing.Sequence[TeamParams]]
+ """
+ A list of team objects
+ """
diff --git a/src/intercom/unstable/requests/team_priority_level.py b/src/intercom/unstable/requests/team_priority_level.py
new file mode 100644
index 0000000..75599c1
--- /dev/null
+++ b/src/intercom/unstable/requests/team_priority_level.py
@@ -0,0 +1,21 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing
+
+import typing_extensions
+
+
+class TeamPriorityLevelParams(typing_extensions.TypedDict):
+ """
+ Admin priority levels for teams
+ """
+
+ primary_team_ids: typing_extensions.NotRequired[typing.Sequence[int]]
+ """
+ The primary team ids for the team
+ """
+
+ secondary_team_ids: typing_extensions.NotRequired[typing.Sequence[int]]
+ """
+ The secondary team ids for the team
+ """
diff --git a/src/intercom/unstable/requests/ticket_custom_attributes.py b/src/intercom/unstable/requests/ticket_custom_attributes.py
new file mode 100644
index 0000000..0cca1b0
--- /dev/null
+++ b/src/intercom/unstable/requests/ticket_custom_attributes.py
@@ -0,0 +1,7 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing
+
+from ..types.ticket_custom_attributes_value import TicketCustomAttributesValue
+
+TicketCustomAttributesParams = typing.Dict[str, TicketCustomAttributesValue]
diff --git a/src/intercom/unstable/requests/ticket_custom_attributes_value.py b/src/intercom/unstable/requests/ticket_custom_attributes_value.py
new file mode 100644
index 0000000..7e43c4a
--- /dev/null
+++ b/src/intercom/unstable/requests/ticket_custom_attributes_value.py
@@ -0,0 +1,9 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing
+
+from .file_attribute import FileAttributeParams
+
+TicketCustomAttributesValueParams = typing.Union[
+ typing.Optional[str], float, bool, typing.Sequence[typing.Optional[typing.Any]], FileAttributeParams
+]
diff --git a/src/intercom/unstable/requests/ticket_list.py b/src/intercom/unstable/requests/ticket_list.py
new file mode 100644
index 0000000..27f3338
--- /dev/null
+++ b/src/intercom/unstable/requests/ticket_list.py
@@ -0,0 +1,30 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing
+
+import typing_extensions
+from ..tickets.requests.ticket import TicketParams
+from .cursor_pages import CursorPagesParams
+
+
+class TicketListParams(typing_extensions.TypedDict):
+ """
+ Tickets are how you track requests from your users.
+ """
+
+ type: typing_extensions.NotRequired[typing.Literal["ticket.list"]]
+ """
+ Always ticket.list
+ """
+
+ tickets: typing_extensions.NotRequired[typing.Sequence[typing.Optional[TicketParams]]]
+ """
+ The list of ticket objects
+ """
+
+ total_count: typing_extensions.NotRequired[int]
+ """
+ A count of the total number of objects.
+ """
+
+ pages: typing_extensions.NotRequired[CursorPagesParams]
diff --git a/src/intercom/unstable/requests/ticket_part_author.py b/src/intercom/unstable/requests/ticket_part_author.py
new file mode 100644
index 0000000..071cc8d
--- /dev/null
+++ b/src/intercom/unstable/requests/ticket_part_author.py
@@ -0,0 +1,30 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing_extensions
+from ..types.ticket_part_author_type import TicketPartAuthorType
+
+
+class TicketPartAuthorParams(typing_extensions.TypedDict):
+ """
+ The author that wrote or triggered the part. Can be a bot, admin, team or user.
+ """
+
+ type: typing_extensions.NotRequired[TicketPartAuthorType]
+ """
+ The type of the author
+ """
+
+ id: typing_extensions.NotRequired[str]
+ """
+ The id of the author
+ """
+
+ name: typing_extensions.NotRequired[str]
+ """
+ The name of the author
+ """
+
+ email: typing_extensions.NotRequired[str]
+ """
+ The email of the author
+ """
diff --git a/src/intercom/unstable/requests/ticket_parts.py b/src/intercom/unstable/requests/ticket_parts.py
new file mode 100644
index 0000000..aa0e0ec
--- /dev/null
+++ b/src/intercom/unstable/requests/ticket_parts.py
@@ -0,0 +1,27 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing
+
+import typing_extensions
+from ..tickets.requests.ticket_part import TicketPartParams
+
+
+class TicketPartsParams(typing_extensions.TypedDict):
+ """
+ A list of Ticket Part objects for each note and event in the ticket. There is a limit of 500 parts.
+ """
+
+ type: typing_extensions.NotRequired[typing.Literal["ticket_part.list"]]
+ """
+
+ """
+
+ ticket_parts: typing_extensions.NotRequired[typing.Sequence[TicketPartParams]]
+ """
+ A list of Ticket Part objects for each ticket. There is a limit of 500 parts.
+ """
+
+ total_count: typing_extensions.NotRequired[int]
+ """
+
+ """
diff --git a/src/intercom/unstable/requests/ticket_reply.py b/src/intercom/unstable/requests/ticket_reply.py
new file mode 100644
index 0000000..9260207
--- /dev/null
+++ b/src/intercom/unstable/requests/ticket_reply.py
@@ -0,0 +1,55 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing
+
+import typing_extensions
+from ..types.ticket_reply_part_type import TicketReplyPartType
+from .part_attachment import PartAttachmentParams
+from .ticket_part_author import TicketPartAuthorParams
+
+
+class TicketReplyParams(typing_extensions.TypedDict):
+ """
+ A Ticket Part representing a note, comment, or quick_reply on a ticket
+ """
+
+ type: typing_extensions.NotRequired[typing.Literal["ticket_part"]]
+ """
+ Always ticket_part
+ """
+
+ id: typing_extensions.NotRequired[str]
+ """
+ The id representing the part.
+ """
+
+ part_type: typing_extensions.NotRequired[TicketReplyPartType]
+ """
+ Type of the part
+ """
+
+ body: typing_extensions.NotRequired[str]
+ """
+ The message body, which may contain HTML.
+ """
+
+ created_at: typing_extensions.NotRequired[int]
+ """
+ The time the note was created.
+ """
+
+ updated_at: typing_extensions.NotRequired[int]
+ """
+ The last time the note was updated.
+ """
+
+ author: typing_extensions.NotRequired[TicketPartAuthorParams]
+ attachments: typing_extensions.NotRequired[typing.Sequence[PartAttachmentParams]]
+ """
+ A list of attachments for the part.
+ """
+
+ redacted: typing_extensions.NotRequired[bool]
+ """
+ Whether or not the ticket part has been redacted.
+ """
diff --git a/src/intercom/unstable/requests/ticket_request_custom_attributes.py b/src/intercom/unstable/requests/ticket_request_custom_attributes.py
new file mode 100644
index 0000000..0a23b8c
--- /dev/null
+++ b/src/intercom/unstable/requests/ticket_request_custom_attributes.py
@@ -0,0 +1,7 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing
+
+from ..types.ticket_request_custom_attributes_value import TicketRequestCustomAttributesValue
+
+TicketRequestCustomAttributesParams = typing.Dict[str, TicketRequestCustomAttributesValue]
diff --git a/src/intercom/unstable/requests/ticket_request_custom_attributes_value.py b/src/intercom/unstable/requests/ticket_request_custom_attributes_value.py
new file mode 100644
index 0000000..a21b62f
--- /dev/null
+++ b/src/intercom/unstable/requests/ticket_request_custom_attributes_value.py
@@ -0,0 +1,7 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing
+
+TicketRequestCustomAttributesValueParams = typing.Union[
+ typing.Optional[str], float, bool, typing.Sequence[typing.Optional[typing.Any]]
+]
diff --git a/src/intercom/unstable/requests/ticket_state_list.py b/src/intercom/unstable/requests/ticket_state_list.py
new file mode 100644
index 0000000..2c31b0e
--- /dev/null
+++ b/src/intercom/unstable/requests/ticket_state_list.py
@@ -0,0 +1,22 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing
+
+import typing_extensions
+from ..tickets.requests.ticket_state_detailed import TicketStateDetailedParams
+
+
+class TicketStateListParams(typing_extensions.TypedDict):
+ """
+ A list of ticket states associated with a given ticket type.
+ """
+
+ type: typing_extensions.NotRequired[str]
+ """
+ String representing the object's type. Always has the value `list`.
+ """
+
+ data: typing_extensions.NotRequired[typing.Sequence[typing.Optional[TicketStateDetailedParams]]]
+ """
+ A list of ticket states associated with a given ticket type.
+ """
diff --git a/src/intercom/unstable/requests/ticket_type_attribute.py b/src/intercom/unstable/requests/ticket_type_attribute.py
new file mode 100644
index 0000000..bffec42
--- /dev/null
+++ b/src/intercom/unstable/requests/ticket_type_attribute.py
@@ -0,0 +1,96 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing
+
+import typing_extensions
+
+
+class TicketTypeAttributeParams(typing_extensions.TypedDict):
+ """
+ Ticket type attribute, used to define each data field to be captured in a ticket.
+ """
+
+ type: typing_extensions.NotRequired[str]
+ """
+ String representing the object's type. Always has the value `ticket_type_attribute`.
+ """
+
+ id: typing_extensions.NotRequired[str]
+ """
+ The id representing the ticket type attribute.
+ """
+
+ workspace_id: typing_extensions.NotRequired[str]
+ """
+ The id of the workspace that the ticket type attribute belongs to.
+ """
+
+ name: typing_extensions.NotRequired[str]
+ """
+ The name of the ticket type attribute
+ """
+
+ description: typing_extensions.NotRequired[str]
+ """
+ The description of the ticket type attribute
+ """
+
+ data_type: typing_extensions.NotRequired[str]
+ """
+ The type of the data attribute (allowed values: "string list integer decimal boolean datetime files")
+ """
+
+ input_options: typing_extensions.NotRequired[typing.Dict[str, typing.Optional[typing.Any]]]
+ """
+ Input options for the attribute
+ """
+
+ order: typing_extensions.NotRequired[int]
+ """
+ The order of the attribute against other attributes
+ """
+
+ required_to_create: typing_extensions.NotRequired[bool]
+ """
+ Whether the attribute is required or not for teammates.
+ """
+
+ required_to_create_for_contacts: typing_extensions.NotRequired[bool]
+ """
+ Whether the attribute is required or not for contacts.
+ """
+
+ visible_on_create: typing_extensions.NotRequired[bool]
+ """
+ Whether the attribute is visible or not to teammates.
+ """
+
+ visible_to_contacts: typing_extensions.NotRequired[bool]
+ """
+ Whether the attribute is visible or not to contacts.
+ """
+
+ default: typing_extensions.NotRequired[bool]
+ """
+ Whether the attribute is built in or not.
+ """
+
+ ticket_type_id: typing_extensions.NotRequired[int]
+ """
+ The id of the ticket type that the attribute belongs to.
+ """
+
+ archived: typing_extensions.NotRequired[bool]
+ """
+ Whether the ticket type attribute is archived or not.
+ """
+
+ created_at: typing_extensions.NotRequired[int]
+ """
+ The date and time the ticket type attribute was created.
+ """
+
+ updated_at: typing_extensions.NotRequired[int]
+ """
+ The date and time the ticket type attribute was last updated.
+ """
diff --git a/src/intercom/unstable/requests/ticket_type_attribute_list.py b/src/intercom/unstable/requests/ticket_type_attribute_list.py
new file mode 100644
index 0000000..4cc4088
--- /dev/null
+++ b/src/intercom/unstable/requests/ticket_type_attribute_list.py
@@ -0,0 +1,22 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing
+
+import typing_extensions
+from .ticket_type_attribute import TicketTypeAttributeParams
+
+
+class TicketTypeAttributeListParams(typing_extensions.TypedDict):
+ """
+ A list of attributes associated with a given ticket type.
+ """
+
+ type: typing_extensions.NotRequired[str]
+ """
+ String representing the object's type. Always has the value `ticket_type_attributes.list`.
+ """
+
+ ticket_type_attributes: typing_extensions.NotRequired[typing.Sequence[typing.Optional[TicketTypeAttributeParams]]]
+ """
+ A list of ticket type attributes associated with a given ticket type.
+ """
diff --git a/src/intercom/unstable/requests/ticket_type_list.py b/src/intercom/unstable/requests/ticket_type_list.py
new file mode 100644
index 0000000..4890639
--- /dev/null
+++ b/src/intercom/unstable/requests/ticket_type_list.py
@@ -0,0 +1,22 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing
+
+import typing_extensions
+from ..tickets.requests.ticket_type import TicketTypeParams
+
+
+class TicketTypeListParams(typing_extensions.TypedDict):
+ """
+ A list of ticket types associated with a given workspace.
+ """
+
+ type: typing_extensions.NotRequired[str]
+ """
+ String representing the object's type. Always has the value `list`.
+ """
+
+ data: typing_extensions.NotRequired[typing.Sequence[typing.Optional[TicketTypeParams]]]
+ """
+ A list of ticket_types associated with a given workspace.
+ """
diff --git a/src/intercom/unstable/requests/translation.py b/src/intercom/unstable/requests/translation.py
new file mode 100644
index 0000000..3c352a6
--- /dev/null
+++ b/src/intercom/unstable/requests/translation.py
@@ -0,0 +1,24 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing_extensions
+
+
+class TranslationParams(typing_extensions.TypedDict):
+ """
+ A translation object contains the localised details of a subscription type.
+ """
+
+ name: typing_extensions.NotRequired[str]
+ """
+ The localised name of the subscription type.
+ """
+
+ description: typing_extensions.NotRequired[str]
+ """
+ The localised description of the subscription type.
+ """
+
+ locale: typing_extensions.NotRequired[str]
+ """
+ The two character identifier for the language of the translation object.
+ """
diff --git a/src/intercom/unstable/requests/untag_company_request.py b/src/intercom/unstable/requests/untag_company_request.py
new file mode 100644
index 0000000..46f9c9a
--- /dev/null
+++ b/src/intercom/unstable/requests/untag_company_request.py
@@ -0,0 +1,22 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing
+
+import typing_extensions
+from .untag_company_request_companies_item import UntagCompanyRequestCompaniesItemParams
+
+
+class UntagCompanyRequestParams(typing_extensions.TypedDict):
+ """
+ You can tag a single company or a list of companies.
+ """
+
+ name: str
+ """
+ The name of the tag which will be untagged from the company
+ """
+
+ companies: typing.Sequence[UntagCompanyRequestCompaniesItemParams]
+ """
+ The id or company_id of the company can be passed as input parameters.
+ """
diff --git a/src/intercom/unstable/requests/untag_company_request_companies_item.py b/src/intercom/unstable/requests/untag_company_request_companies_item.py
new file mode 100644
index 0000000..371c929
--- /dev/null
+++ b/src/intercom/unstable/requests/untag_company_request_companies_item.py
@@ -0,0 +1,20 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing_extensions
+
+
+class UntagCompanyRequestCompaniesItemParams(typing_extensions.TypedDict):
+ id: typing_extensions.NotRequired[str]
+ """
+ The Intercom defined id representing the company.
+ """
+
+ company_id: typing_extensions.NotRequired[str]
+ """
+ The company id you have defined for the company.
+ """
+
+ untag: typing_extensions.NotRequired[bool]
+ """
+ Always set to true
+ """
diff --git a/src/intercom/unstable/requests/update_article_request_body.py b/src/intercom/unstable/requests/update_article_request_body.py
new file mode 100644
index 0000000..9a2d57c
--- /dev/null
+++ b/src/intercom/unstable/requests/update_article_request_body.py
@@ -0,0 +1,48 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing_extensions
+from ..types.update_article_request_state import UpdateArticleRequestState
+from .article_translated_content import ArticleTranslatedContentParams
+
+
+class UpdateArticleRequestBodyParams(typing_extensions.TypedDict):
+ """
+ You can Update an Article
+ """
+
+ title: typing_extensions.NotRequired[str]
+ """
+ The title of the article.For multilingual articles, this will be the title of the default language's content.
+ """
+
+ description: typing_extensions.NotRequired[str]
+ """
+ The description of the article. For multilingual articles, this will be the description of the default language's content.
+ """
+
+ body: typing_extensions.NotRequired[str]
+ """
+ The content of the article. For multilingual articles, this will be the body of the default language's content.
+ """
+
+ author_id: typing_extensions.NotRequired[int]
+ """
+ The id of the author of the article. For multilingual articles, this will be the id of the author of the default language's content. Must be a teammate on the help center's workspace.
+ """
+
+ state: typing_extensions.NotRequired[UpdateArticleRequestState]
+ """
+ Whether the article will be `published` or will be a `draft`. Defaults to draft. For multilingual articles, this will be the state of the default language's content.
+ """
+
+ parent_id: typing_extensions.NotRequired[str]
+ """
+ The id of the article's parent collection or section. An article without this field stands alone.
+ """
+
+ parent_type: typing_extensions.NotRequired[str]
+ """
+ The type of parent, which can either be a `collection` or `section`.
+ """
+
+ translated_content: typing_extensions.NotRequired[ArticleTranslatedContentParams]
diff --git a/src/intercom/unstable/requests/update_ticket_type_request_body.py b/src/intercom/unstable/requests/update_ticket_type_request_body.py
new file mode 100644
index 0000000..1365bbc
--- /dev/null
+++ b/src/intercom/unstable/requests/update_ticket_type_request_body.py
@@ -0,0 +1,41 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing_extensions
+from ..types.update_ticket_type_request_category import UpdateTicketTypeRequestCategory
+
+
+class UpdateTicketTypeRequestBodyParams(typing_extensions.TypedDict):
+ """
+ The request payload for updating a ticket type.
+ You can copy the `icon` property for your ticket type from [Twemoji Cheatsheet](https://twemoji-cheatsheet.vercel.app/)
+ """
+
+ name: typing_extensions.NotRequired[str]
+ """
+ The name of the ticket type.
+ """
+
+ description: typing_extensions.NotRequired[str]
+ """
+ The description of the ticket type.
+ """
+
+ category: typing_extensions.NotRequired[UpdateTicketTypeRequestCategory]
+ """
+ Category of the Ticket Type.
+ """
+
+ icon: typing_extensions.NotRequired[str]
+ """
+ The icon of the ticket type.
+ """
+
+ archived: typing_extensions.NotRequired[bool]
+ """
+ The archived status of the ticket type.
+ """
+
+ is_internal: typing_extensions.NotRequired[bool]
+ """
+ Whether the tickets associated with this ticket type are intended for internal use only or will be shared with customers. This is currently a limited attribute.
+ """
diff --git a/src/intercom/unstable/requests/visitor.py b/src/intercom/unstable/requests/visitor.py
new file mode 100644
index 0000000..8d77041
--- /dev/null
+++ b/src/intercom/unstable/requests/visitor.py
@@ -0,0 +1,158 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing
+
+import typing_extensions
+from .visitor_avatar import VisitorAvatarParams
+from .visitor_companies import VisitorCompaniesParams
+from .visitor_location_data import VisitorLocationDataParams
+from .visitor_segments import VisitorSegmentsParams
+from .visitor_social_profiles import VisitorSocialProfilesParams
+from .visitor_tags import VisitorTagsParams
+
+
+class VisitorParams(typing_extensions.TypedDict):
+ """
+ Visitors are useful for representing anonymous people that have not yet been identified. They usually represent website visitors. Visitors are not visible in Intercom platform. The Visitors resource provides methods to fetch, update, convert and delete.
+ """
+
+ type: typing_extensions.NotRequired[str]
+ """
+ Value is 'visitor'
+ """
+
+ id: typing_extensions.NotRequired[str]
+ """
+ The Intercom defined id representing the Visitor.
+ """
+
+ user_id: typing_extensions.NotRequired[str]
+ """
+ Automatically generated identifier for the Visitor.
+ """
+
+ anonymous: typing_extensions.NotRequired[bool]
+ """
+ Identifies if this visitor is anonymous.
+ """
+
+ email: typing_extensions.NotRequired[str]
+ """
+ The email of the visitor.
+ """
+
+ phone: typing_extensions.NotRequired[str]
+ """
+ The phone number of the visitor.
+ """
+
+ name: typing_extensions.NotRequired[str]
+ """
+ The name of the visitor.
+ """
+
+ pseudonym: typing_extensions.NotRequired[str]
+ """
+ The pseudonym of the visitor.
+ """
+
+ avatar: typing_extensions.NotRequired[VisitorAvatarParams]
+ app_id: typing_extensions.NotRequired[str]
+ """
+ The id of the app the visitor is associated with.
+ """
+
+ companies: typing_extensions.NotRequired[VisitorCompaniesParams]
+ location_data: typing_extensions.NotRequired[VisitorLocationDataParams]
+ las_request_at: typing_extensions.NotRequired[int]
+ """
+ The time the Lead last recorded making a request.
+ """
+
+ created_at: typing_extensions.NotRequired[int]
+ """
+ The time the Visitor was added to Intercom.
+ """
+
+ remote_created_at: typing_extensions.NotRequired[int]
+ """
+ The time the Visitor was added to Intercom.
+ """
+
+ signed_up_at: typing_extensions.NotRequired[int]
+ """
+ The time the Visitor signed up for your product.
+ """
+
+ updated_at: typing_extensions.NotRequired[int]
+ """
+ The last time the Visitor was updated.
+ """
+
+ session_count: typing_extensions.NotRequired[int]
+ """
+ The number of sessions the Visitor has had.
+ """
+
+ social_profiles: typing_extensions.NotRequired[VisitorSocialProfilesParams]
+ owner_id: typing_extensions.NotRequired[str]
+ """
+ The id of the admin that owns the Visitor.
+ """
+
+ unsubscribed_from_emails: typing_extensions.NotRequired[bool]
+ """
+ Whether the Visitor is unsubscribed from emails.
+ """
+
+ marked_email_as_spam: typing_extensions.NotRequired[bool]
+ """
+ Identifies if this visitor has marked an email as spam.
+ """
+
+ has_hard_bounced: typing_extensions.NotRequired[bool]
+ """
+ Identifies if this visitor has had a hard bounce.
+ """
+
+ tags: typing_extensions.NotRequired[VisitorTagsParams]
+ segments: typing_extensions.NotRequired[VisitorSegmentsParams]
+ custom_attributes: typing_extensions.NotRequired[typing.Dict[str, str]]
+ """
+ The custom attributes you have set on the Visitor.
+ """
+
+ referrer: typing_extensions.NotRequired[str]
+ """
+ The referer of the visitor.
+ """
+
+ utm_campaign: typing_extensions.NotRequired[str]
+ """
+ The utm_campaign of the visitor.
+ """
+
+ utm_content: typing_extensions.NotRequired[str]
+ """
+ The utm_content of the visitor.
+ """
+
+ utm_medium: typing_extensions.NotRequired[str]
+ """
+ The utm_medium of the visitor.
+ """
+
+ utm_source: typing_extensions.NotRequired[str]
+ """
+ The utm_source of the visitor.
+ """
+
+ utm_term: typing_extensions.NotRequired[str]
+ """
+ The utm_term of the visitor.
+ """
+
+ do_not_track: typing_extensions.NotRequired[bool]
+ """
+ Identifies if this visitor has do not track enabled.
+ """
diff --git a/src/intercom/unstable/requests/visitor_avatar.py b/src/intercom/unstable/requests/visitor_avatar.py
new file mode 100644
index 0000000..e24260f
--- /dev/null
+++ b/src/intercom/unstable/requests/visitor_avatar.py
@@ -0,0 +1,15 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing_extensions
+
+
+class VisitorAvatarParams(typing_extensions.TypedDict):
+ type: typing_extensions.NotRequired[str]
+ """
+
+ """
+
+ image_url: typing_extensions.NotRequired[str]
+ """
+ This object represents the avatar associated with the visitor.
+ """
diff --git a/src/intercom/unstable/requests/visitor_companies.py b/src/intercom/unstable/requests/visitor_companies.py
new file mode 100644
index 0000000..4c872c2
--- /dev/null
+++ b/src/intercom/unstable/requests/visitor_companies.py
@@ -0,0 +1,15 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing
+
+import typing_extensions
+from ..companies.requests.company import CompanyParams
+
+
+class VisitorCompaniesParams(typing_extensions.TypedDict):
+ type: typing_extensions.NotRequired[typing.Literal["company.list"]]
+ """
+ The type of the object
+ """
+
+ companies: typing_extensions.NotRequired[typing.Sequence[CompanyParams]]
diff --git a/src/intercom/unstable/requests/visitor_deleted_object.py b/src/intercom/unstable/requests/visitor_deleted_object.py
new file mode 100644
index 0000000..1790860
--- /dev/null
+++ b/src/intercom/unstable/requests/visitor_deleted_object.py
@@ -0,0 +1,26 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing
+
+import typing_extensions
+
+
+class VisitorDeletedObjectParams(typing_extensions.TypedDict):
+ """
+ Response returned when an object is deleted
+ """
+
+ id: typing_extensions.NotRequired[str]
+ """
+ The unique identifier for the visitor which is given by Intercom.
+ """
+
+ type: typing_extensions.NotRequired[typing.Literal["visitor"]]
+ """
+ The type of object which was deleted
+ """
+
+ user_id: typing_extensions.NotRequired[str]
+ """
+ Automatically generated identifier for the Visitor.
+ """
diff --git a/src/intercom/unstable/requests/visitor_location_data.py b/src/intercom/unstable/requests/visitor_location_data.py
new file mode 100644
index 0000000..6713331
--- /dev/null
+++ b/src/intercom/unstable/requests/visitor_location_data.py
@@ -0,0 +1,45 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing_extensions
+
+
+class VisitorLocationDataParams(typing_extensions.TypedDict):
+ type: typing_extensions.NotRequired[str]
+ """
+
+ """
+
+ city_name: typing_extensions.NotRequired[str]
+ """
+ The city name of the visitor.
+ """
+
+ continent_code: typing_extensions.NotRequired[str]
+ """
+ The continent code of the visitor.
+ """
+
+ country_code: typing_extensions.NotRequired[str]
+ """
+ The country code of the visitor.
+ """
+
+ country_name: typing_extensions.NotRequired[str]
+ """
+ The country name of the visitor.
+ """
+
+ postal_code: typing_extensions.NotRequired[str]
+ """
+ The postal code of the visitor.
+ """
+
+ region_name: typing_extensions.NotRequired[str]
+ """
+ The region name of the visitor.
+ """
+
+ timezone: typing_extensions.NotRequired[str]
+ """
+ The timezone of the visitor.
+ """
diff --git a/src/intercom/unstable/requests/visitor_segments.py b/src/intercom/unstable/requests/visitor_segments.py
new file mode 100644
index 0000000..ef64845
--- /dev/null
+++ b/src/intercom/unstable/requests/visitor_segments.py
@@ -0,0 +1,14 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing
+
+import typing_extensions
+
+
+class VisitorSegmentsParams(typing_extensions.TypedDict):
+ type: typing_extensions.NotRequired[typing.Literal["segment.list"]]
+ """
+ The type of the object
+ """
+
+ segments: typing_extensions.NotRequired[typing.Sequence[str]]
diff --git a/src/intercom/unstable/requests/visitor_social_profiles.py b/src/intercom/unstable/requests/visitor_social_profiles.py
new file mode 100644
index 0000000..b9284ea
--- /dev/null
+++ b/src/intercom/unstable/requests/visitor_social_profiles.py
@@ -0,0 +1,14 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing
+
+import typing_extensions
+
+
+class VisitorSocialProfilesParams(typing_extensions.TypedDict):
+ type: typing_extensions.NotRequired[typing.Literal["social_profile.list"]]
+ """
+ The type of the object
+ """
+
+ social_profiles: typing_extensions.NotRequired[typing.Sequence[str]]
diff --git a/src/intercom/unstable/requests/visitor_tags.py b/src/intercom/unstable/requests/visitor_tags.py
new file mode 100644
index 0000000..95c634a
--- /dev/null
+++ b/src/intercom/unstable/requests/visitor_tags.py
@@ -0,0 +1,15 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing
+
+import typing_extensions
+from .visitor_tags_tags_item import VisitorTagsTagsItemParams
+
+
+class VisitorTagsParams(typing_extensions.TypedDict):
+ type: typing_extensions.NotRequired[typing.Literal["tag.list"]]
+ """
+ The type of the object
+ """
+
+ tags: typing_extensions.NotRequired[typing.Sequence[VisitorTagsTagsItemParams]]
diff --git a/src/intercom/unstable/requests/visitor_tags_tags_item.py b/src/intercom/unstable/requests/visitor_tags_tags_item.py
new file mode 100644
index 0000000..cd15fe6
--- /dev/null
+++ b/src/intercom/unstable/requests/visitor_tags_tags_item.py
@@ -0,0 +1,22 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing
+
+import typing_extensions
+
+
+class VisitorTagsTagsItemParams(typing_extensions.TypedDict):
+ type: typing_extensions.NotRequired[typing.Literal["tag"]]
+ """
+ The type of the object
+ """
+
+ id: typing_extensions.NotRequired[str]
+ """
+ The id of the tag.
+ """
+
+ name: typing_extensions.NotRequired[str]
+ """
+ The name of the tag.
+ """
diff --git a/src/intercom/unstable/requests/whatsapp_message_status_list.py b/src/intercom/unstable/requests/whatsapp_message_status_list.py
new file mode 100644
index 0000000..a7bd416
--- /dev/null
+++ b/src/intercom/unstable/requests/whatsapp_message_status_list.py
@@ -0,0 +1,23 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing
+
+import typing_extensions
+from .whatsapp_message_status_list_events_item import WhatsappMessageStatusListEventsItemParams
+from .whatsapp_message_status_list_pages import WhatsappMessageStatusListPagesParams
+
+
+class WhatsappMessageStatusListParams(typing_extensions.TypedDict):
+ type: typing.Literal["list"]
+ ruleset_id: str
+ """
+ The provided ruleset ID
+ """
+
+ pages: WhatsappMessageStatusListPagesParams
+ total_count: int
+ """
+ Total number of events
+ """
+
+ events: typing.Sequence[WhatsappMessageStatusListEventsItemParams]
diff --git a/src/intercom/unstable/requests/whatsapp_message_status_list_events_item.py b/src/intercom/unstable/requests/whatsapp_message_status_list_events_item.py
new file mode 100644
index 0000000..0bf15bd
--- /dev/null
+++ b/src/intercom/unstable/requests/whatsapp_message_status_list_events_item.py
@@ -0,0 +1,48 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing
+
+import typing_extensions
+from ..types.whatsapp_message_status_list_events_item_status import WhatsappMessageStatusListEventsItemStatus
+
+
+class WhatsappMessageStatusListEventsItemParams(typing_extensions.TypedDict):
+ id: str
+ """
+ Event ID
+ """
+
+ conversation_id: str
+ """
+ ID of the conversation
+ """
+
+ status: WhatsappMessageStatusListEventsItemStatus
+ """
+ Current status of the message
+ """
+
+ type: typing.Literal["broadcast_outbound"]
+ """
+ Event type
+ """
+
+ created_at: int
+ """
+ Creation timestamp
+ """
+
+ updated_at: int
+ """
+ Last update timestamp
+ """
+
+ whatsapp_message_id: str
+ """
+ WhatsApp's message identifier
+ """
+
+ template_name: typing_extensions.NotRequired[str]
+ """
+ Name of the WhatsApp template used
+ """
diff --git a/src/intercom/unstable/requests/whatsapp_message_status_list_pages.py b/src/intercom/unstable/requests/whatsapp_message_status_list_pages.py
new file mode 100644
index 0000000..9477d3f
--- /dev/null
+++ b/src/intercom/unstable/requests/whatsapp_message_status_list_pages.py
@@ -0,0 +1,24 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing
+
+import typing_extensions
+from .whatsapp_message_status_list_pages_next import WhatsappMessageStatusListPagesNextParams
+
+
+class WhatsappMessageStatusListPagesParams(typing_extensions.TypedDict):
+ type: typing.Literal["pages"]
+ per_page: int
+ """
+ Number of results per page
+ """
+
+ total_pages: int
+ """
+ Total number of pages
+ """
+
+ next: typing_extensions.NotRequired[WhatsappMessageStatusListPagesNextParams]
+ """
+ Information for fetching next page (null if no more pages)
+ """
diff --git a/src/intercom/unstable/requests/whatsapp_message_status_list_pages_next.py b/src/intercom/unstable/requests/whatsapp_message_status_list_pages_next.py
new file mode 100644
index 0000000..9fb9858
--- /dev/null
+++ b/src/intercom/unstable/requests/whatsapp_message_status_list_pages_next.py
@@ -0,0 +1,14 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing_extensions
+
+
+class WhatsappMessageStatusListPagesNextParams(typing_extensions.TypedDict):
+ """
+ Information for fetching next page (null if no more pages)
+ """
+
+ starting_after: typing_extensions.NotRequired[str]
+ """
+ Cursor for the next page
+ """
diff --git a/src/intercom/unstable/segments/__init__.py b/src/intercom/unstable/segments/__init__.py
index de85632..4d1d68a 100644
--- a/src/intercom/unstable/segments/__init__.py
+++ b/src/intercom/unstable/segments/__init__.py
@@ -3,5 +3,6 @@
# isort: skip_file
from .types import Segment, SegmentPersonType
+from .requests import SegmentParams
-__all__ = ["Segment", "SegmentPersonType"]
+__all__ = ["Segment", "SegmentParams", "SegmentPersonType"]
diff --git a/src/intercom/unstable/segments/requests/__init__.py b/src/intercom/unstable/segments/requests/__init__.py
new file mode 100644
index 0000000..2d598b6
--- /dev/null
+++ b/src/intercom/unstable/segments/requests/__init__.py
@@ -0,0 +1,7 @@
+# This file was auto-generated by Fern from our API Definition.
+
+# isort: skip_file
+
+from .segment import SegmentParams
+
+__all__ = ["SegmentParams"]
diff --git a/src/intercom/unstable/segments/requests/segment.py b/src/intercom/unstable/segments/requests/segment.py
new file mode 100644
index 0000000..e5eb84f
--- /dev/null
+++ b/src/intercom/unstable/segments/requests/segment.py
@@ -0,0 +1,47 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing
+
+import typing_extensions
+from ..types.segment_person_type import SegmentPersonType
+
+
+class SegmentParams(typing_extensions.TypedDict):
+ """
+ A segment is a group of your contacts defined by the rules that you set.
+ """
+
+ type: typing_extensions.NotRequired[typing.Literal["segment"]]
+ """
+ The type of object.
+ """
+
+ id: typing_extensions.NotRequired[str]
+ """
+ The unique identifier representing the segment.
+ """
+
+ name: typing_extensions.NotRequired[str]
+ """
+ The name of the segment.
+ """
+
+ created_at: typing_extensions.NotRequired[int]
+ """
+ The time the segment was created.
+ """
+
+ updated_at: typing_extensions.NotRequired[int]
+ """
+ The time the segment was updated.
+ """
+
+ person_type: typing_extensions.NotRequired[SegmentPersonType]
+ """
+ Type of the contact: contact (lead) or user.
+ """
+
+ count: typing_extensions.NotRequired[int]
+ """
+ The number of items in the user segment. It's returned when `include_count=true` is included in the request.
+ """
diff --git a/src/intercom/unstable/subscription_types/__init__.py b/src/intercom/unstable/subscription_types/__init__.py
index a43a24a..4cbc88a 100644
--- a/src/intercom/unstable/subscription_types/__init__.py
+++ b/src/intercom/unstable/subscription_types/__init__.py
@@ -8,10 +8,12 @@
SubscriptionTypeContentTypesItem,
SubscriptionTypeState,
)
+from .requests import SubscriptionTypeParams
__all__ = [
"SubscriptionType",
"SubscriptionTypeConsentType",
"SubscriptionTypeContentTypesItem",
+ "SubscriptionTypeParams",
"SubscriptionTypeState",
]
diff --git a/src/intercom/unstable/subscription_types/requests/__init__.py b/src/intercom/unstable/subscription_types/requests/__init__.py
new file mode 100644
index 0000000..078e34b
--- /dev/null
+++ b/src/intercom/unstable/subscription_types/requests/__init__.py
@@ -0,0 +1,7 @@
+# This file was auto-generated by Fern from our API Definition.
+
+# isort: skip_file
+
+from .subscription_type import SubscriptionTypeParams
+
+__all__ = ["SubscriptionTypeParams"]
diff --git a/src/intercom/unstable/subscription_types/requests/subscription_type.py b/src/intercom/unstable/subscription_types/requests/subscription_type.py
new file mode 100644
index 0000000..5904d19
--- /dev/null
+++ b/src/intercom/unstable/subscription_types/requests/subscription_type.py
@@ -0,0 +1,46 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing
+
+import typing_extensions
+from ...requests.translation import TranslationParams
+from ..types.subscription_type_consent_type import SubscriptionTypeConsentType
+from ..types.subscription_type_content_types_item import SubscriptionTypeContentTypesItem
+from ..types.subscription_type_state import SubscriptionTypeState
+
+
+class SubscriptionTypeParams(typing_extensions.TypedDict):
+ """
+ A subscription type lets customers easily opt out of non-essential communications without missing what's important to them.
+ """
+
+ type: typing_extensions.NotRequired[str]
+ """
+ The type of the object - subscription
+ """
+
+ id: typing_extensions.NotRequired[str]
+ """
+ The unique identifier representing the subscription type.
+ """
+
+ state: typing_extensions.NotRequired[SubscriptionTypeState]
+ """
+ The state of the subscription type.
+ """
+
+ default_translation: typing_extensions.NotRequired[TranslationParams]
+ translations: typing_extensions.NotRequired[typing.Sequence[TranslationParams]]
+ """
+ An array of translations objects with the localised version of the subscription type in each available locale within your translation settings.
+ """
+
+ consent_type: typing_extensions.NotRequired[SubscriptionTypeConsentType]
+ """
+ Describes the type of consent.
+ """
+
+ content_types: typing_extensions.NotRequired[typing.Sequence[SubscriptionTypeContentTypesItem]]
+ """
+ The message types that this subscription supports - can contain `email` or `sms_message`.
+ """
diff --git a/src/intercom/unstable/tags/__init__.py b/src/intercom/unstable/tags/__init__.py
index cb98c64..09d11da 100644
--- a/src/intercom/unstable/tags/__init__.py
+++ b/src/intercom/unstable/tags/__init__.py
@@ -3,5 +3,6 @@
# isort: skip_file
from .types import CreateTagRequestBody, Tag, TagBasic
+from .requests import CreateTagRequestBodyParams, TagBasicParams, TagParams
-__all__ = ["CreateTagRequestBody", "Tag", "TagBasic"]
+__all__ = ["CreateTagRequestBody", "CreateTagRequestBodyParams", "Tag", "TagBasic", "TagBasicParams", "TagParams"]
diff --git a/src/intercom/unstable/tags/client.py b/src/intercom/unstable/tags/client.py
index 30f7d78..3f50946 100644
--- a/src/intercom/unstable/tags/client.py
+++ b/src/intercom/unstable/tags/client.py
@@ -6,7 +6,7 @@
from ...core.request_options import RequestOptions
from ..types.tag_list import TagList
from .raw_client import AsyncRawTagsClient, RawTagsClient
-from .types.create_tag_request_body import CreateTagRequestBody
+from .requests.create_tag_request_body import CreateTagRequestBodyParams
from .types.tag import Tag
# this is used as the default value for optional parameters
@@ -215,7 +215,7 @@ def list_tags(self, *, request_options: typing.Optional[RequestOptions] = None)
return _response.data
def create_tag(
- self, *, request: CreateTagRequestBody, request_options: typing.Optional[RequestOptions] = None
+ self, *, request: CreateTagRequestBodyParams, request_options: typing.Optional[RequestOptions] = None
) -> Tag:
"""
You can use this endpoint to perform the following operations:
@@ -234,7 +234,7 @@ def create_tag(
Parameters
----------
- request : CreateTagRequestBody
+ request : CreateTagRequestBodyParams
request_options : typing.Optional[RequestOptions]
Request-specific configuration.
@@ -247,15 +247,12 @@ def create_tag(
Examples
--------
from intercom import Intercom
- from intercom.unstable import CreateOrUpdateTagRequest
client = Intercom(
token="YOUR_TOKEN",
)
client.unstable.tags.create_tag(
- request=CreateOrUpdateTagRequest(
- name="test",
- ),
+ request={"name": "test"},
)
"""
_response = self._raw_client.create_tag(request=request, request_options=request_options)
@@ -652,7 +649,7 @@ async def main() -> None:
return _response.data
async def create_tag(
- self, *, request: CreateTagRequestBody, request_options: typing.Optional[RequestOptions] = None
+ self, *, request: CreateTagRequestBodyParams, request_options: typing.Optional[RequestOptions] = None
) -> Tag:
"""
You can use this endpoint to perform the following operations:
@@ -671,7 +668,7 @@ async def create_tag(
Parameters
----------
- request : CreateTagRequestBody
+ request : CreateTagRequestBodyParams
request_options : typing.Optional[RequestOptions]
Request-specific configuration.
@@ -686,7 +683,6 @@ async def create_tag(
import asyncio
from intercom import AsyncIntercom
- from intercom.unstable import CreateOrUpdateTagRequest
client = AsyncIntercom(
token="YOUR_TOKEN",
@@ -695,9 +691,7 @@ async def create_tag(
async def main() -> None:
await client.unstable.tags.create_tag(
- request=CreateOrUpdateTagRequest(
- name="test",
- ),
+ request={"name": "test"},
)
diff --git a/src/intercom/unstable/tags/raw_client.py b/src/intercom/unstable/tags/raw_client.py
index a66cddb..bfee26d 100644
--- a/src/intercom/unstable/tags/raw_client.py
+++ b/src/intercom/unstable/tags/raw_client.py
@@ -15,7 +15,7 @@
from ..errors.unauthorized_error import UnauthorizedError
from ..types.error import Error
from ..types.tag_list import TagList
-from .types.create_tag_request_body import CreateTagRequestBody
+from .requests.create_tag_request_body import CreateTagRequestBodyParams
from .types.tag import Tag
# this is used as the default value for optional parameters
@@ -356,7 +356,7 @@ def list_tags(self, *, request_options: typing.Optional[RequestOptions] = None)
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
def create_tag(
- self, *, request: CreateTagRequestBody, request_options: typing.Optional[RequestOptions] = None
+ self, *, request: CreateTagRequestBodyParams, request_options: typing.Optional[RequestOptions] = None
) -> HttpResponse[Tag]:
"""
You can use this endpoint to perform the following operations:
@@ -375,7 +375,7 @@ def create_tag(
Parameters
----------
- request : CreateTagRequestBody
+ request : CreateTagRequestBodyParams
request_options : typing.Optional[RequestOptions]
Request-specific configuration.
@@ -389,7 +389,7 @@ def create_tag(
"tags",
method="POST",
json=convert_and_respect_annotation_metadata(
- object_=request, annotation=CreateTagRequestBody, direction="write"
+ object_=request, annotation=CreateTagRequestBodyParams, direction="write"
),
headers={
"content-type": "application/json",
@@ -1051,7 +1051,7 @@ async def list_tags(self, *, request_options: typing.Optional[RequestOptions] =
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
async def create_tag(
- self, *, request: CreateTagRequestBody, request_options: typing.Optional[RequestOptions] = None
+ self, *, request: CreateTagRequestBodyParams, request_options: typing.Optional[RequestOptions] = None
) -> AsyncHttpResponse[Tag]:
"""
You can use this endpoint to perform the following operations:
@@ -1070,7 +1070,7 @@ async def create_tag(
Parameters
----------
- request : CreateTagRequestBody
+ request : CreateTagRequestBodyParams
request_options : typing.Optional[RequestOptions]
Request-specific configuration.
@@ -1084,7 +1084,7 @@ async def create_tag(
"tags",
method="POST",
json=convert_and_respect_annotation_metadata(
- object_=request, annotation=CreateTagRequestBody, direction="write"
+ object_=request, annotation=CreateTagRequestBodyParams, direction="write"
),
headers={
"content-type": "application/json",
diff --git a/src/intercom/unstable/tags/requests/__init__.py b/src/intercom/unstable/tags/requests/__init__.py
new file mode 100644
index 0000000..a758a29
--- /dev/null
+++ b/src/intercom/unstable/tags/requests/__init__.py
@@ -0,0 +1,9 @@
+# This file was auto-generated by Fern from our API Definition.
+
+# isort: skip_file
+
+from .create_tag_request_body import CreateTagRequestBodyParams
+from .tag import TagParams
+from .tag_basic import TagBasicParams
+
+__all__ = ["CreateTagRequestBodyParams", "TagBasicParams", "TagParams"]
diff --git a/src/intercom/unstable/tags/requests/create_tag_request_body.py b/src/intercom/unstable/tags/requests/create_tag_request_body.py
new file mode 100644
index 0000000..d22c935
--- /dev/null
+++ b/src/intercom/unstable/tags/requests/create_tag_request_body.py
@@ -0,0 +1,12 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing
+
+from ...requests.create_or_update_tag_request import CreateOrUpdateTagRequestParams
+from ...requests.tag_company_request import TagCompanyRequestParams
+from ...requests.tag_multiple_users_request import TagMultipleUsersRequestParams
+from ...requests.untag_company_request import UntagCompanyRequestParams
+
+CreateTagRequestBodyParams = typing.Union[
+ CreateOrUpdateTagRequestParams, TagCompanyRequestParams, UntagCompanyRequestParams, TagMultipleUsersRequestParams
+]
diff --git a/src/intercom/unstable/tags/requests/tag.py b/src/intercom/unstable/tags/requests/tag.py
new file mode 100644
index 0000000..4f7509d
--- /dev/null
+++ b/src/intercom/unstable/tags/requests/tag.py
@@ -0,0 +1,32 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing_extensions
+from ...requests.reference import ReferenceParams
+
+
+class TagParams(typing_extensions.TypedDict):
+ """
+ A tag allows you to label your contacts, companies, and conversations and list them using that tag.
+ """
+
+ type: typing_extensions.NotRequired[str]
+ """
+ value is "tag"
+ """
+
+ id: typing_extensions.NotRequired[str]
+ """
+ The id of the tag
+ """
+
+ name: typing_extensions.NotRequired[str]
+ """
+ The name of the tag
+ """
+
+ applied_at: typing_extensions.NotRequired[int]
+ """
+ The time when the tag was applied to the object
+ """
+
+ applied_by: typing_extensions.NotRequired[ReferenceParams]
diff --git a/src/intercom/unstable/tags/requests/tag_basic.py b/src/intercom/unstable/tags/requests/tag_basic.py
new file mode 100644
index 0000000..003aad0
--- /dev/null
+++ b/src/intercom/unstable/tags/requests/tag_basic.py
@@ -0,0 +1,24 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing_extensions
+
+
+class TagBasicParams(typing_extensions.TypedDict):
+ """
+ A tag allows you to label your contacts, companies, and conversations and list them using that tag.
+ """
+
+ type: typing_extensions.NotRequired[str]
+ """
+ value is "tag"
+ """
+
+ id: typing_extensions.NotRequired[str]
+ """
+ The id of the tag
+ """
+
+ name: typing_extensions.NotRequired[str]
+ """
+ The name of the tag
+ """
diff --git a/src/intercom/unstable/teams/__init__.py b/src/intercom/unstable/teams/__init__.py
index fed79d9..38b9a16 100644
--- a/src/intercom/unstable/teams/__init__.py
+++ b/src/intercom/unstable/teams/__init__.py
@@ -3,5 +3,6 @@
# isort: skip_file
from .types import Team
+from .requests import TeamParams
-__all__ = ["Team"]
+__all__ = ["Team", "TeamParams"]
diff --git a/src/intercom/unstable/teams/requests/__init__.py b/src/intercom/unstable/teams/requests/__init__.py
new file mode 100644
index 0000000..37db84e
--- /dev/null
+++ b/src/intercom/unstable/teams/requests/__init__.py
@@ -0,0 +1,7 @@
+# This file was auto-generated by Fern from our API Definition.
+
+# isort: skip_file
+
+from .team import TeamParams
+
+__all__ = ["TeamParams"]
diff --git a/src/intercom/unstable/teams/requests/team.py b/src/intercom/unstable/teams/requests/team.py
new file mode 100644
index 0000000..f11c370
--- /dev/null
+++ b/src/intercom/unstable/teams/requests/team.py
@@ -0,0 +1,34 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing
+
+import typing_extensions
+from ...requests.admin_priority_level import AdminPriorityLevelParams
+
+
+class TeamParams(typing_extensions.TypedDict):
+ """
+ Teams are groups of admins in Intercom.
+ """
+
+ type: typing_extensions.NotRequired[str]
+ """
+ Value is always "team"
+ """
+
+ id: typing_extensions.NotRequired[str]
+ """
+ The id of the team
+ """
+
+ name: typing_extensions.NotRequired[str]
+ """
+ The name of the team
+ """
+
+ admin_ids: typing_extensions.NotRequired[typing.Sequence[int]]
+ """
+ The list of admin IDs that are a part of the team.
+ """
+
+ admin_priority_level: typing_extensions.NotRequired[AdminPriorityLevelParams]
diff --git a/src/intercom/unstable/tickets/__init__.py b/src/intercom/unstable/tickets/__init__.py
index f19a54d..9179ae7 100644
--- a/src/intercom/unstable/tickets/__init__.py
+++ b/src/intercom/unstable/tickets/__init__.py
@@ -25,27 +25,59 @@
TicketTypeCategory,
TicketTypeTicketStates,
)
+from .requests import (
+ DeleteTicketResponseParams,
+ ReplyTicketRequestBodyParams,
+ TicketContactsParams,
+ TicketParams,
+ TicketPartParams,
+ TicketPartUpdatedAttributeDataAttributeParams,
+ TicketPartUpdatedAttributeDataParams,
+ TicketPartUpdatedAttributeDataValueIdParams,
+ TicketPartUpdatedAttributeDataValueLabelParams,
+ TicketPartUpdatedAttributeDataValueParams,
+ TicketStateDetailedParams,
+ TicketStateDetailedTicketTypesParams,
+ TicketStateParams,
+ TicketTypeParams,
+ TicketTypeTicketStatesParams,
+)
__all__ = [
"DeleteTicketResponse",
+ "DeleteTicketResponseParams",
"ReplyTicketRequestBody",
+ "ReplyTicketRequestBodyParams",
"Ticket",
"TicketCategory",
"TicketContacts",
+ "TicketContactsParams",
+ "TicketParams",
"TicketPart",
+ "TicketPartParams",
"TicketPartPreviousTicketState",
"TicketPartTicketState",
"TicketPartUpdatedAttributeData",
"TicketPartUpdatedAttributeDataAttribute",
+ "TicketPartUpdatedAttributeDataAttributeParams",
+ "TicketPartUpdatedAttributeDataParams",
"TicketPartUpdatedAttributeDataValue",
"TicketPartUpdatedAttributeDataValueId",
+ "TicketPartUpdatedAttributeDataValueIdParams",
"TicketPartUpdatedAttributeDataValueLabel",
+ "TicketPartUpdatedAttributeDataValueLabelParams",
+ "TicketPartUpdatedAttributeDataValueParams",
"TicketState",
"TicketStateCategory",
"TicketStateDetailed",
"TicketStateDetailedCategory",
+ "TicketStateDetailedParams",
"TicketStateDetailedTicketTypes",
+ "TicketStateDetailedTicketTypesParams",
+ "TicketStateParams",
"TicketType",
"TicketTypeCategory",
+ "TicketTypeParams",
"TicketTypeTicketStates",
+ "TicketTypeTicketStatesParams",
]
diff --git a/src/intercom/unstable/tickets/client.py b/src/intercom/unstable/tickets/client.py
index 6641e0e..816c491 100644
--- a/src/intercom/unstable/tickets/client.py
+++ b/src/intercom/unstable/tickets/client.py
@@ -5,15 +5,15 @@
from ...core.client_wrapper import AsyncClientWrapper, SyncClientWrapper
from ...core.request_options import RequestOptions
from ..jobs.types.jobs import Jobs
-from ..types.create_ticket_request_assignment import CreateTicketRequestAssignment
-from ..types.create_ticket_request_contacts_item import CreateTicketRequestContactsItem
-from ..types.search_request_query import SearchRequestQuery
-from ..types.starting_after_paging import StartingAfterPaging
+from ..requests.create_ticket_request_assignment import CreateTicketRequestAssignmentParams
+from ..requests.create_ticket_request_contacts_item import CreateTicketRequestContactsItemParams
+from ..requests.search_request_query import SearchRequestQueryParams
+from ..requests.starting_after_paging import StartingAfterPagingParams
from ..types.ticket_list import TicketList
from ..types.ticket_reply import TicketReply
from .raw_client import AsyncRawTicketsClient, RawTicketsClient
+from .requests.reply_ticket_request_body import ReplyTicketRequestBodyParams
from .types.delete_ticket_response import DeleteTicketResponse
-from .types.reply_ticket_request_body import ReplyTicketRequestBody
from .types.ticket import Ticket
# this is used as the default value for optional parameters
@@ -36,7 +36,7 @@ def with_raw_response(self) -> RawTicketsClient:
return self._raw_client
def reply_ticket(
- self, id: str, *, request: ReplyTicketRequestBody, request_options: typing.Optional[RequestOptions] = None
+ self, id: str, *, request: ReplyTicketRequestBodyParams, request_options: typing.Optional[RequestOptions] = None
) -> TicketReply:
"""
You can reply to a ticket with a message from an admin or on behalf of a contact, or with a note for admins.
@@ -45,7 +45,7 @@ def reply_ticket(
----------
id : str
- request : ReplyTicketRequestBody
+ request : ReplyTicketRequestBodyParams
request_options : typing.Optional[RequestOptions]
Request-specific configuration.
@@ -58,17 +58,18 @@ def reply_ticket(
Examples
--------
from intercom import Intercom
- from intercom.unstable import ContactReplyTicketIntercomUserIdRequest
client = Intercom(
token="YOUR_TOKEN",
)
client.unstable.tickets.reply_ticket(
id="123",
- request=ContactReplyTicketIntercomUserIdRequest(
- body="Thanks again :)",
- intercom_user_id="6762f2971bb69f9f2193bc49",
- ),
+ request={
+ "message_type": "comment",
+ "type": "user",
+ "body": "Thanks again :)",
+ "intercom_user_id": "6762f2971bb69f9f2193bc49",
+ },
)
"""
_response = self._raw_client.reply_ticket(id, request=request, request_options=request_options)
@@ -78,12 +79,12 @@ def enqueue_create_ticket(
self,
*,
ticket_type_id: str,
- contacts: typing.Sequence[CreateTicketRequestContactsItem],
+ contacts: typing.Sequence[CreateTicketRequestContactsItemParams],
skip_notifications: typing.Optional[bool] = OMIT,
conversation_to_link_id: typing.Optional[str] = OMIT,
company_id: typing.Optional[str] = OMIT,
created_at: typing.Optional[int] = OMIT,
- assignment: typing.Optional[CreateTicketRequestAssignment] = OMIT,
+ assignment: typing.Optional[CreateTicketRequestAssignmentParams] = OMIT,
request_options: typing.Optional[RequestOptions] = None,
) -> Jobs:
"""
@@ -94,7 +95,7 @@ def enqueue_create_ticket(
ticket_type_id : str
The ID of the type of ticket you want to create
- contacts : typing.Sequence[CreateTicketRequestContactsItem]
+ contacts : typing.Sequence[CreateTicketRequestContactsItemParams]
The list of contacts (users or leads) affected by this ticket. Currently only one is allowed
skip_notifications : typing.Optional[bool]
@@ -113,7 +114,7 @@ def enqueue_create_ticket(
created_at : typing.Optional[int]
The time the ticket was created. If not provided, the current time will be used.
- assignment : typing.Optional[CreateTicketRequestAssignment]
+ assignment : typing.Optional[CreateTicketRequestAssignmentParams]
request_options : typing.Optional[RequestOptions]
Request-specific configuration.
@@ -126,18 +127,13 @@ def enqueue_create_ticket(
Examples
--------
from intercom import Intercom
- from intercom.unstable import CreateTicketRequestContactsItemId
client = Intercom(
token="YOUR_TOKEN",
)
client.unstable.tickets.enqueue_create_ticket(
ticket_type_id="1234",
- contacts=[
- CreateTicketRequestContactsItemId(
- id="6762f2d81bb69f9f2193bc54",
- )
- ],
+ contacts=[{"id": "6762f2d81bb69f9f2193bc54"}],
)
"""
_response = self._raw_client.enqueue_create_ticket(
@@ -309,8 +305,8 @@ def delete_ticket(
def search_tickets(
self,
*,
- query: SearchRequestQuery,
- pagination: typing.Optional[StartingAfterPaging] = OMIT,
+ query: SearchRequestQueryParams,
+ pagination: typing.Optional[StartingAfterPagingParams] = OMIT,
request_options: typing.Optional[RequestOptions] = None,
) -> TicketList:
"""
@@ -386,9 +382,9 @@ def search_tickets(
Parameters
----------
- query : SearchRequestQuery
+ query : SearchRequestQueryParams
- pagination : typing.Optional[StartingAfterPaging]
+ pagination : typing.Optional[StartingAfterPagingParams]
request_options : typing.Optional[RequestOptions]
Request-specific configuration.
@@ -401,29 +397,18 @@ def search_tickets(
Examples
--------
from intercom import Intercom
- from intercom.unstable import (
- MultipleFilterSearchRequest,
- SingleFilterSearchRequest,
- StartingAfterPaging,
- )
client = Intercom(
token="YOUR_TOKEN",
)
client.unstable.tickets.search_tickets(
- query=MultipleFilterSearchRequest(
- operator="AND",
- value=[
- SingleFilterSearchRequest(
- field="created_at",
- operator=">",
- value="1306054154",
- )
+ query={
+ "operator": "AND",
+ "value": [
+ {"field": "created_at", "operator": ">", "value": "1306054154"}
],
- ),
- pagination=StartingAfterPaging(
- per_page=5,
- ),
+ },
+ pagination={"per_page": 5},
)
"""
_response = self._raw_client.search_tickets(query=query, pagination=pagination, request_options=request_options)
@@ -446,7 +431,7 @@ def with_raw_response(self) -> AsyncRawTicketsClient:
return self._raw_client
async def reply_ticket(
- self, id: str, *, request: ReplyTicketRequestBody, request_options: typing.Optional[RequestOptions] = None
+ self, id: str, *, request: ReplyTicketRequestBodyParams, request_options: typing.Optional[RequestOptions] = None
) -> TicketReply:
"""
You can reply to a ticket with a message from an admin or on behalf of a contact, or with a note for admins.
@@ -455,7 +440,7 @@ async def reply_ticket(
----------
id : str
- request : ReplyTicketRequestBody
+ request : ReplyTicketRequestBodyParams
request_options : typing.Optional[RequestOptions]
Request-specific configuration.
@@ -470,7 +455,6 @@ async def reply_ticket(
import asyncio
from intercom import AsyncIntercom
- from intercom.unstable import ContactReplyTicketIntercomUserIdRequest
client = AsyncIntercom(
token="YOUR_TOKEN",
@@ -480,10 +464,12 @@ async def reply_ticket(
async def main() -> None:
await client.unstable.tickets.reply_ticket(
id="123",
- request=ContactReplyTicketIntercomUserIdRequest(
- body="Thanks again :)",
- intercom_user_id="6762f2971bb69f9f2193bc49",
- ),
+ request={
+ "message_type": "comment",
+ "type": "user",
+ "body": "Thanks again :)",
+ "intercom_user_id": "6762f2971bb69f9f2193bc49",
+ },
)
@@ -496,12 +482,12 @@ async def enqueue_create_ticket(
self,
*,
ticket_type_id: str,
- contacts: typing.Sequence[CreateTicketRequestContactsItem],
+ contacts: typing.Sequence[CreateTicketRequestContactsItemParams],
skip_notifications: typing.Optional[bool] = OMIT,
conversation_to_link_id: typing.Optional[str] = OMIT,
company_id: typing.Optional[str] = OMIT,
created_at: typing.Optional[int] = OMIT,
- assignment: typing.Optional[CreateTicketRequestAssignment] = OMIT,
+ assignment: typing.Optional[CreateTicketRequestAssignmentParams] = OMIT,
request_options: typing.Optional[RequestOptions] = None,
) -> Jobs:
"""
@@ -512,7 +498,7 @@ async def enqueue_create_ticket(
ticket_type_id : str
The ID of the type of ticket you want to create
- contacts : typing.Sequence[CreateTicketRequestContactsItem]
+ contacts : typing.Sequence[CreateTicketRequestContactsItemParams]
The list of contacts (users or leads) affected by this ticket. Currently only one is allowed
skip_notifications : typing.Optional[bool]
@@ -531,7 +517,7 @@ async def enqueue_create_ticket(
created_at : typing.Optional[int]
The time the ticket was created. If not provided, the current time will be used.
- assignment : typing.Optional[CreateTicketRequestAssignment]
+ assignment : typing.Optional[CreateTicketRequestAssignmentParams]
request_options : typing.Optional[RequestOptions]
Request-specific configuration.
@@ -546,7 +532,6 @@ async def enqueue_create_ticket(
import asyncio
from intercom import AsyncIntercom
- from intercom.unstable import CreateTicketRequestContactsItemId
client = AsyncIntercom(
token="YOUR_TOKEN",
@@ -556,11 +541,7 @@ async def enqueue_create_ticket(
async def main() -> None:
await client.unstable.tickets.enqueue_create_ticket(
ticket_type_id="1234",
- contacts=[
- CreateTicketRequestContactsItemId(
- id="6762f2d81bb69f9f2193bc54",
- )
- ],
+ contacts=[{"id": "6762f2d81bb69f9f2193bc54"}],
)
@@ -759,8 +740,8 @@ async def main() -> None:
async def search_tickets(
self,
*,
- query: SearchRequestQuery,
- pagination: typing.Optional[StartingAfterPaging] = OMIT,
+ query: SearchRequestQueryParams,
+ pagination: typing.Optional[StartingAfterPagingParams] = OMIT,
request_options: typing.Optional[RequestOptions] = None,
) -> TicketList:
"""
@@ -836,9 +817,9 @@ async def search_tickets(
Parameters
----------
- query : SearchRequestQuery
+ query : SearchRequestQueryParams
- pagination : typing.Optional[StartingAfterPaging]
+ pagination : typing.Optional[StartingAfterPagingParams]
request_options : typing.Optional[RequestOptions]
Request-specific configuration.
@@ -853,11 +834,6 @@ async def search_tickets(
import asyncio
from intercom import AsyncIntercom
- from intercom.unstable import (
- MultipleFilterSearchRequest,
- SingleFilterSearchRequest,
- StartingAfterPaging,
- )
client = AsyncIntercom(
token="YOUR_TOKEN",
@@ -866,19 +842,13 @@ async def search_tickets(
async def main() -> None:
await client.unstable.tickets.search_tickets(
- query=MultipleFilterSearchRequest(
- operator="AND",
- value=[
- SingleFilterSearchRequest(
- field="created_at",
- operator=">",
- value="1306054154",
- )
+ query={
+ "operator": "AND",
+ "value": [
+ {"field": "created_at", "operator": ">", "value": "1306054154"}
],
- ),
- pagination=StartingAfterPaging(
- per_page=5,
- ),
+ },
+ pagination={"per_page": 5},
)
diff --git a/src/intercom/unstable/tickets/raw_client.py b/src/intercom/unstable/tickets/raw_client.py
index 61c406c..ef7a785 100644
--- a/src/intercom/unstable/tickets/raw_client.py
+++ b/src/intercom/unstable/tickets/raw_client.py
@@ -14,15 +14,15 @@
from ..errors.not_found_error import NotFoundError
from ..errors.unauthorized_error import UnauthorizedError
from ..jobs.types.jobs import Jobs
-from ..types.create_ticket_request_assignment import CreateTicketRequestAssignment
-from ..types.create_ticket_request_contacts_item import CreateTicketRequestContactsItem
+from ..requests.create_ticket_request_assignment import CreateTicketRequestAssignmentParams
+from ..requests.create_ticket_request_contacts_item import CreateTicketRequestContactsItemParams
+from ..requests.search_request_query import SearchRequestQueryParams
+from ..requests.starting_after_paging import StartingAfterPagingParams
from ..types.error import Error
-from ..types.search_request_query import SearchRequestQuery
-from ..types.starting_after_paging import StartingAfterPaging
from ..types.ticket_list import TicketList
from ..types.ticket_reply import TicketReply
+from .requests.reply_ticket_request_body import ReplyTicketRequestBodyParams
from .types.delete_ticket_response import DeleteTicketResponse
-from .types.reply_ticket_request_body import ReplyTicketRequestBody
from .types.ticket import Ticket
# this is used as the default value for optional parameters
@@ -34,7 +34,7 @@ def __init__(self, *, client_wrapper: SyncClientWrapper):
self._client_wrapper = client_wrapper
def reply_ticket(
- self, id: str, *, request: ReplyTicketRequestBody, request_options: typing.Optional[RequestOptions] = None
+ self, id: str, *, request: ReplyTicketRequestBodyParams, request_options: typing.Optional[RequestOptions] = None
) -> HttpResponse[TicketReply]:
"""
You can reply to a ticket with a message from an admin or on behalf of a contact, or with a note for admins.
@@ -43,7 +43,7 @@ def reply_ticket(
----------
id : str
- request : ReplyTicketRequestBody
+ request : ReplyTicketRequestBodyParams
request_options : typing.Optional[RequestOptions]
Request-specific configuration.
@@ -57,7 +57,7 @@ def reply_ticket(
f"tickets/{jsonable_encoder(id)}/reply",
method="POST",
json=convert_and_respect_annotation_metadata(
- object_=request, annotation=ReplyTicketRequestBody, direction="write"
+ object_=request, annotation=ReplyTicketRequestBodyParams, direction="write"
),
headers={
"content-type": "application/json",
@@ -117,12 +117,12 @@ def enqueue_create_ticket(
self,
*,
ticket_type_id: str,
- contacts: typing.Sequence[CreateTicketRequestContactsItem],
+ contacts: typing.Sequence[CreateTicketRequestContactsItemParams],
skip_notifications: typing.Optional[bool] = OMIT,
conversation_to_link_id: typing.Optional[str] = OMIT,
company_id: typing.Optional[str] = OMIT,
created_at: typing.Optional[int] = OMIT,
- assignment: typing.Optional[CreateTicketRequestAssignment] = OMIT,
+ assignment: typing.Optional[CreateTicketRequestAssignmentParams] = OMIT,
request_options: typing.Optional[RequestOptions] = None,
) -> HttpResponse[Jobs]:
"""
@@ -133,7 +133,7 @@ def enqueue_create_ticket(
ticket_type_id : str
The ID of the type of ticket you want to create
- contacts : typing.Sequence[CreateTicketRequestContactsItem]
+ contacts : typing.Sequence[CreateTicketRequestContactsItemParams]
The list of contacts (users or leads) affected by this ticket. Currently only one is allowed
skip_notifications : typing.Optional[bool]
@@ -152,7 +152,7 @@ def enqueue_create_ticket(
created_at : typing.Optional[int]
The time the ticket was created. If not provided, the current time will be used.
- assignment : typing.Optional[CreateTicketRequestAssignment]
+ assignment : typing.Optional[CreateTicketRequestAssignmentParams]
request_options : typing.Optional[RequestOptions]
Request-specific configuration.
@@ -169,13 +169,15 @@ def enqueue_create_ticket(
"skip_notifications": skip_notifications,
"ticket_type_id": ticket_type_id,
"contacts": convert_and_respect_annotation_metadata(
- object_=contacts, annotation=typing.Sequence[CreateTicketRequestContactsItem], direction="write"
+ object_=contacts,
+ annotation=typing.Sequence[CreateTicketRequestContactsItemParams],
+ direction="write",
),
"conversation_to_link_id": conversation_to_link_id,
"company_id": company_id,
"created_at": created_at,
"assignment": convert_and_respect_annotation_metadata(
- object_=assignment, annotation=CreateTicketRequestAssignment, direction="write"
+ object_=assignment, annotation=CreateTicketRequestAssignmentParams, direction="write"
),
},
headers={
@@ -460,8 +462,8 @@ def delete_ticket(
def search_tickets(
self,
*,
- query: SearchRequestQuery,
- pagination: typing.Optional[StartingAfterPaging] = OMIT,
+ query: SearchRequestQueryParams,
+ pagination: typing.Optional[StartingAfterPagingParams] = OMIT,
request_options: typing.Optional[RequestOptions] = None,
) -> HttpResponse[TicketList]:
"""
@@ -537,9 +539,9 @@ def search_tickets(
Parameters
----------
- query : SearchRequestQuery
+ query : SearchRequestQueryParams
- pagination : typing.Optional[StartingAfterPaging]
+ pagination : typing.Optional[StartingAfterPagingParams]
request_options : typing.Optional[RequestOptions]
Request-specific configuration.
@@ -554,10 +556,10 @@ def search_tickets(
method="POST",
json={
"query": convert_and_respect_annotation_metadata(
- object_=query, annotation=SearchRequestQuery, direction="write"
+ object_=query, annotation=SearchRequestQueryParams, direction="write"
),
"pagination": convert_and_respect_annotation_metadata(
- object_=pagination, annotation=StartingAfterPaging, direction="write"
+ object_=pagination, annotation=StartingAfterPagingParams, direction="write"
),
},
headers={
@@ -587,7 +589,7 @@ def __init__(self, *, client_wrapper: AsyncClientWrapper):
self._client_wrapper = client_wrapper
async def reply_ticket(
- self, id: str, *, request: ReplyTicketRequestBody, request_options: typing.Optional[RequestOptions] = None
+ self, id: str, *, request: ReplyTicketRequestBodyParams, request_options: typing.Optional[RequestOptions] = None
) -> AsyncHttpResponse[TicketReply]:
"""
You can reply to a ticket with a message from an admin or on behalf of a contact, or with a note for admins.
@@ -596,7 +598,7 @@ async def reply_ticket(
----------
id : str
- request : ReplyTicketRequestBody
+ request : ReplyTicketRequestBodyParams
request_options : typing.Optional[RequestOptions]
Request-specific configuration.
@@ -610,7 +612,7 @@ async def reply_ticket(
f"tickets/{jsonable_encoder(id)}/reply",
method="POST",
json=convert_and_respect_annotation_metadata(
- object_=request, annotation=ReplyTicketRequestBody, direction="write"
+ object_=request, annotation=ReplyTicketRequestBodyParams, direction="write"
),
headers={
"content-type": "application/json",
@@ -670,12 +672,12 @@ async def enqueue_create_ticket(
self,
*,
ticket_type_id: str,
- contacts: typing.Sequence[CreateTicketRequestContactsItem],
+ contacts: typing.Sequence[CreateTicketRequestContactsItemParams],
skip_notifications: typing.Optional[bool] = OMIT,
conversation_to_link_id: typing.Optional[str] = OMIT,
company_id: typing.Optional[str] = OMIT,
created_at: typing.Optional[int] = OMIT,
- assignment: typing.Optional[CreateTicketRequestAssignment] = OMIT,
+ assignment: typing.Optional[CreateTicketRequestAssignmentParams] = OMIT,
request_options: typing.Optional[RequestOptions] = None,
) -> AsyncHttpResponse[Jobs]:
"""
@@ -686,7 +688,7 @@ async def enqueue_create_ticket(
ticket_type_id : str
The ID of the type of ticket you want to create
- contacts : typing.Sequence[CreateTicketRequestContactsItem]
+ contacts : typing.Sequence[CreateTicketRequestContactsItemParams]
The list of contacts (users or leads) affected by this ticket. Currently only one is allowed
skip_notifications : typing.Optional[bool]
@@ -705,7 +707,7 @@ async def enqueue_create_ticket(
created_at : typing.Optional[int]
The time the ticket was created. If not provided, the current time will be used.
- assignment : typing.Optional[CreateTicketRequestAssignment]
+ assignment : typing.Optional[CreateTicketRequestAssignmentParams]
request_options : typing.Optional[RequestOptions]
Request-specific configuration.
@@ -722,13 +724,15 @@ async def enqueue_create_ticket(
"skip_notifications": skip_notifications,
"ticket_type_id": ticket_type_id,
"contacts": convert_and_respect_annotation_metadata(
- object_=contacts, annotation=typing.Sequence[CreateTicketRequestContactsItem], direction="write"
+ object_=contacts,
+ annotation=typing.Sequence[CreateTicketRequestContactsItemParams],
+ direction="write",
),
"conversation_to_link_id": conversation_to_link_id,
"company_id": company_id,
"created_at": created_at,
"assignment": convert_and_respect_annotation_metadata(
- object_=assignment, annotation=CreateTicketRequestAssignment, direction="write"
+ object_=assignment, annotation=CreateTicketRequestAssignmentParams, direction="write"
),
},
headers={
@@ -1013,8 +1017,8 @@ async def delete_ticket(
async def search_tickets(
self,
*,
- query: SearchRequestQuery,
- pagination: typing.Optional[StartingAfterPaging] = OMIT,
+ query: SearchRequestQueryParams,
+ pagination: typing.Optional[StartingAfterPagingParams] = OMIT,
request_options: typing.Optional[RequestOptions] = None,
) -> AsyncHttpResponse[TicketList]:
"""
@@ -1090,9 +1094,9 @@ async def search_tickets(
Parameters
----------
- query : SearchRequestQuery
+ query : SearchRequestQueryParams
- pagination : typing.Optional[StartingAfterPaging]
+ pagination : typing.Optional[StartingAfterPagingParams]
request_options : typing.Optional[RequestOptions]
Request-specific configuration.
@@ -1107,10 +1111,10 @@ async def search_tickets(
method="POST",
json={
"query": convert_and_respect_annotation_metadata(
- object_=query, annotation=SearchRequestQuery, direction="write"
+ object_=query, annotation=SearchRequestQueryParams, direction="write"
),
"pagination": convert_and_respect_annotation_metadata(
- object_=pagination, annotation=StartingAfterPaging, direction="write"
+ object_=pagination, annotation=StartingAfterPagingParams, direction="write"
),
},
headers={
diff --git a/src/intercom/unstable/tickets/requests/__init__.py b/src/intercom/unstable/tickets/requests/__init__.py
new file mode 100644
index 0000000..96c9cc8
--- /dev/null
+++ b/src/intercom/unstable/tickets/requests/__init__.py
@@ -0,0 +1,37 @@
+# This file was auto-generated by Fern from our API Definition.
+
+# isort: skip_file
+
+from .delete_ticket_response import DeleteTicketResponseParams
+from .reply_ticket_request_body import ReplyTicketRequestBodyParams
+from .ticket import TicketParams
+from .ticket_contacts import TicketContactsParams
+from .ticket_part import TicketPartParams
+from .ticket_part_updated_attribute_data import TicketPartUpdatedAttributeDataParams
+from .ticket_part_updated_attribute_data_attribute import TicketPartUpdatedAttributeDataAttributeParams
+from .ticket_part_updated_attribute_data_value import TicketPartUpdatedAttributeDataValueParams
+from .ticket_part_updated_attribute_data_value_id import TicketPartUpdatedAttributeDataValueIdParams
+from .ticket_part_updated_attribute_data_value_label import TicketPartUpdatedAttributeDataValueLabelParams
+from .ticket_state import TicketStateParams
+from .ticket_state_detailed import TicketStateDetailedParams
+from .ticket_state_detailed_ticket_types import TicketStateDetailedTicketTypesParams
+from .ticket_type import TicketTypeParams
+from .ticket_type_ticket_states import TicketTypeTicketStatesParams
+
+__all__ = [
+ "DeleteTicketResponseParams",
+ "ReplyTicketRequestBodyParams",
+ "TicketContactsParams",
+ "TicketParams",
+ "TicketPartParams",
+ "TicketPartUpdatedAttributeDataAttributeParams",
+ "TicketPartUpdatedAttributeDataParams",
+ "TicketPartUpdatedAttributeDataValueIdParams",
+ "TicketPartUpdatedAttributeDataValueLabelParams",
+ "TicketPartUpdatedAttributeDataValueParams",
+ "TicketStateDetailedParams",
+ "TicketStateDetailedTicketTypesParams",
+ "TicketStateParams",
+ "TicketTypeParams",
+ "TicketTypeTicketStatesParams",
+]
diff --git a/src/intercom/unstable/tickets/requests/delete_ticket_response.py b/src/intercom/unstable/tickets/requests/delete_ticket_response.py
new file mode 100644
index 0000000..ab2ee4b
--- /dev/null
+++ b/src/intercom/unstable/tickets/requests/delete_ticket_response.py
@@ -0,0 +1,26 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing
+
+import typing_extensions
+
+
+class DeleteTicketResponseParams(typing_extensions.TypedDict):
+ """
+ Response when a ticket is deleted.
+ """
+
+ id: typing_extensions.NotRequired[str]
+ """
+ The unique identifier for the ticket.
+ """
+
+ object: typing_extensions.NotRequired[typing.Literal["ticket"]]
+ """
+ always ticket
+ """
+
+ deleted: typing_extensions.NotRequired[bool]
+ """
+ Whether the ticket is deleted or not.
+ """
diff --git a/src/intercom/unstable/tickets/requests/reply_ticket_request_body.py b/src/intercom/unstable/tickets/requests/reply_ticket_request_body.py
new file mode 100644
index 0000000..c9d8d5d
--- /dev/null
+++ b/src/intercom/unstable/tickets/requests/reply_ticket_request_body.py
@@ -0,0 +1,8 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing
+
+from ...requests.admin_reply_ticket_request import AdminReplyTicketRequestParams
+from ...requests.contact_reply_ticket_request import ContactReplyTicketRequestParams
+
+ReplyTicketRequestBodyParams = typing.Union[ContactReplyTicketRequestParams, AdminReplyTicketRequestParams]
diff --git a/src/intercom/unstable/tickets/requests/ticket.py b/src/intercom/unstable/tickets/requests/ticket.py
new file mode 100644
index 0000000..5c8fb55
--- /dev/null
+++ b/src/intercom/unstable/tickets/requests/ticket.py
@@ -0,0 +1,79 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing
+
+import typing_extensions
+from ...requests.linked_object_list import LinkedObjectListParams
+from ...requests.ticket_custom_attributes import TicketCustomAttributesParams
+from ...requests.ticket_parts import TicketPartsParams
+from ..types.ticket_category import TicketCategory
+from .ticket_contacts import TicketContactsParams
+from .ticket_state import TicketStateParams
+from .ticket_type import TicketTypeParams
+
+
+class TicketParams(typing_extensions.TypedDict):
+ """
+ Tickets are how you track requests from your users.
+ """
+
+ type: typing_extensions.NotRequired[typing.Literal["ticket"]]
+ """
+ Always ticket
+ """
+
+ id: typing_extensions.NotRequired[str]
+ """
+ The unique identifier for the ticket which is given by Intercom.
+ """
+
+ ticket_id: typing_extensions.NotRequired[str]
+ """
+ The ID of the Ticket used in the Intercom Inbox and Messenger. Do not use ticket_id for API queries.
+ """
+
+ category: typing_extensions.NotRequired[TicketCategory]
+ """
+ Category of the Ticket.
+ """
+
+ ticket_attributes: typing_extensions.NotRequired[TicketCustomAttributesParams]
+ ticket_state: typing_extensions.NotRequired[TicketStateParams]
+ ticket_type: typing_extensions.NotRequired[TicketTypeParams]
+ contacts: typing_extensions.NotRequired[TicketContactsParams]
+ admin_assignee_id: typing_extensions.NotRequired[str]
+ """
+ The id representing the admin assigned to the ticket.
+ """
+
+ team_assignee_id: typing_extensions.NotRequired[str]
+ """
+ The id representing the team assigned to the ticket.
+ """
+
+ created_at: typing_extensions.NotRequired[int]
+ """
+ The time the ticket was created as a UTC Unix timestamp.
+ """
+
+ updated_at: typing_extensions.NotRequired[int]
+ """
+ The last time the ticket was updated as a UTC Unix timestamp.
+ """
+
+ open: typing_extensions.NotRequired[bool]
+ """
+ Whether or not the ticket is open. If false, the ticket is closed.
+ """
+
+ snoozed_until: typing_extensions.NotRequired[int]
+ """
+ The time the ticket will be snoozed until as a UTC Unix timestamp. If null, the ticket is not currently snoozed.
+ """
+
+ linked_objects: typing_extensions.NotRequired[LinkedObjectListParams]
+ ticket_parts: typing_extensions.NotRequired[TicketPartsParams]
+ is_shared: typing_extensions.NotRequired[bool]
+ """
+ Whether or not the ticket is shared with the customer.
+ """
diff --git a/src/intercom/unstable/tickets/requests/ticket_contacts.py b/src/intercom/unstable/tickets/requests/ticket_contacts.py
new file mode 100644
index 0000000..84edcfa
--- /dev/null
+++ b/src/intercom/unstable/tickets/requests/ticket_contacts.py
@@ -0,0 +1,22 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing
+
+import typing_extensions
+from ...requests.contact_reference import ContactReferenceParams
+
+
+class TicketContactsParams(typing_extensions.TypedDict):
+ """
+ The list of contacts affected by a ticket.
+ """
+
+ type: typing_extensions.NotRequired[typing.Literal["contact.list"]]
+ """
+ always contact.list
+ """
+
+ contacts: typing_extensions.NotRequired[typing.Sequence[ContactReferenceParams]]
+ """
+ The list of contacts affected by this ticket.
+ """
diff --git a/src/intercom/unstable/tickets/requests/ticket_part.py b/src/intercom/unstable/tickets/requests/ticket_part.py
new file mode 100644
index 0000000..0912979
--- /dev/null
+++ b/src/intercom/unstable/tickets/requests/ticket_part.py
@@ -0,0 +1,88 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing
+
+import typing_extensions
+from ...requests.part_attachment import PartAttachmentParams
+from ...requests.reference import ReferenceParams
+from ...requests.ticket_part_author import TicketPartAuthorParams
+from ..types.ticket_part_previous_ticket_state import TicketPartPreviousTicketState
+from ..types.ticket_part_ticket_state import TicketPartTicketState
+from .ticket_part_updated_attribute_data import TicketPartUpdatedAttributeDataParams
+
+
+class TicketPartParams(typing_extensions.TypedDict):
+ """
+ A Ticket Part represents a message in the ticket.
+ """
+
+ type: typing_extensions.NotRequired[str]
+ """
+ Always ticket_part
+ """
+
+ id: typing_extensions.NotRequired[str]
+ """
+ The id representing the ticket part.
+ """
+
+ part_type: typing_extensions.NotRequired[str]
+ """
+ The type of ticket part.
+ """
+
+ body: typing_extensions.NotRequired[str]
+ """
+ The message body, which may contain HTML.
+ """
+
+ previous_ticket_state: typing_extensions.NotRequired[TicketPartPreviousTicketState]
+ """
+ The previous state of the ticket.
+ """
+
+ ticket_state: typing_extensions.NotRequired[TicketPartTicketState]
+ """
+ The state of the ticket.
+ """
+
+ created_at: typing_extensions.NotRequired[int]
+ """
+ The time the ticket part was created.
+ """
+
+ updated_at: typing_extensions.NotRequired[int]
+ """
+ The last time the ticket part was updated.
+ """
+
+ assigned_to: typing_extensions.NotRequired[ReferenceParams]
+ """
+ The id of the admin that was assigned the ticket by this ticket_part (null if there has been no change in assignment.)
+ """
+
+ author: typing_extensions.NotRequired[TicketPartAuthorParams]
+ attachments: typing_extensions.NotRequired[typing.Sequence[PartAttachmentParams]]
+ """
+ A list of attachments for the part.
+ """
+
+ external_id: typing_extensions.NotRequired[str]
+ """
+ The external id of the ticket part
+ """
+
+ redacted: typing_extensions.NotRequired[bool]
+ """
+ Whether or not the ticket part has been redacted.
+ """
+
+ app_package_code: typing_extensions.NotRequired[str]
+ """
+ The app package code if this part was created via API. Note this field won't show if the part was not created via API.
+ """
+
+ updated_attribute_data: typing_extensions.NotRequired[TicketPartUpdatedAttributeDataParams]
+ """
+ The updated attribute data of the ticket part. Only present for attribute update parts.
+ """
diff --git a/src/intercom/unstable/tickets/requests/ticket_part_updated_attribute_data.py b/src/intercom/unstable/tickets/requests/ticket_part_updated_attribute_data.py
new file mode 100644
index 0000000..74941a0
--- /dev/null
+++ b/src/intercom/unstable/tickets/requests/ticket_part_updated_attribute_data.py
@@ -0,0 +1,21 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing_extensions
+from .ticket_part_updated_attribute_data_attribute import TicketPartUpdatedAttributeDataAttributeParams
+from .ticket_part_updated_attribute_data_value import TicketPartUpdatedAttributeDataValueParams
+
+
+class TicketPartUpdatedAttributeDataParams(typing_extensions.TypedDict):
+ """
+ The updated attribute data of the ticket part. Only present for attribute update parts.
+ """
+
+ attribute: TicketPartUpdatedAttributeDataAttributeParams
+ """
+ Information about the attribute that was updated.
+ """
+
+ value: TicketPartUpdatedAttributeDataValueParams
+ """
+ The new value of the attribute.
+ """
diff --git a/src/intercom/unstable/tickets/requests/ticket_part_updated_attribute_data_attribute.py b/src/intercom/unstable/tickets/requests/ticket_part_updated_attribute_data_attribute.py
new file mode 100644
index 0000000..bcd0c8f
--- /dev/null
+++ b/src/intercom/unstable/tickets/requests/ticket_part_updated_attribute_data_attribute.py
@@ -0,0 +1,26 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing
+
+import typing_extensions
+
+
+class TicketPartUpdatedAttributeDataAttributeParams(typing_extensions.TypedDict):
+ """
+ Information about the attribute that was updated.
+ """
+
+ type: typing.Literal["attribute"]
+ """
+ The type of the object. Always 'attribute'.
+ """
+
+ id: str
+ """
+ The unique identifier of the attribute.
+ """
+
+ label: str
+ """
+ The human-readable name of the attribute.
+ """
diff --git a/src/intercom/unstable/tickets/requests/ticket_part_updated_attribute_data_value.py b/src/intercom/unstable/tickets/requests/ticket_part_updated_attribute_data_value.py
new file mode 100644
index 0000000..134dc79
--- /dev/null
+++ b/src/intercom/unstable/tickets/requests/ticket_part_updated_attribute_data_value.py
@@ -0,0 +1,21 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing
+
+import typing_extensions
+from .ticket_part_updated_attribute_data_value_id import TicketPartUpdatedAttributeDataValueIdParams
+from .ticket_part_updated_attribute_data_value_label import TicketPartUpdatedAttributeDataValueLabelParams
+
+
+class TicketPartUpdatedAttributeDataValueParams(typing_extensions.TypedDict):
+ """
+ The new value of the attribute.
+ """
+
+ type: typing.Literal["value"]
+ """
+ The type of the object. Always 'value'.
+ """
+
+ id: TicketPartUpdatedAttributeDataValueIdParams
+ label: TicketPartUpdatedAttributeDataValueLabelParams
diff --git a/src/intercom/unstable/tickets/requests/ticket_part_updated_attribute_data_value_id.py b/src/intercom/unstable/tickets/requests/ticket_part_updated_attribute_data_value_id.py
new file mode 100644
index 0000000..86c2818
--- /dev/null
+++ b/src/intercom/unstable/tickets/requests/ticket_part_updated_attribute_data_value_id.py
@@ -0,0 +1,5 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing
+
+TicketPartUpdatedAttributeDataValueIdParams = typing.Union[typing.Optional[str], typing.Sequence[int]]
diff --git a/src/intercom/unstable/tickets/requests/ticket_part_updated_attribute_data_value_label.py b/src/intercom/unstable/tickets/requests/ticket_part_updated_attribute_data_value_label.py
new file mode 100644
index 0000000..ee825ef
--- /dev/null
+++ b/src/intercom/unstable/tickets/requests/ticket_part_updated_attribute_data_value_label.py
@@ -0,0 +1,5 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing
+
+TicketPartUpdatedAttributeDataValueLabelParams = typing.Union[str, typing.Sequence[str]]
diff --git a/src/intercom/unstable/tickets/requests/ticket_state.py b/src/intercom/unstable/tickets/requests/ticket_state.py
new file mode 100644
index 0000000..b2af302
--- /dev/null
+++ b/src/intercom/unstable/tickets/requests/ticket_state.py
@@ -0,0 +1,35 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing_extensions
+from ..types.ticket_state_category import TicketStateCategory
+
+
+class TicketStateParams(typing_extensions.TypedDict):
+ """
+ A ticket state, used to define the state of a ticket.
+ """
+
+ type: typing_extensions.NotRequired[str]
+ """
+ String representing the object's type. Always has the value `ticket_state`.
+ """
+
+ id: typing_extensions.NotRequired[str]
+ """
+ The id of the ticket state
+ """
+
+ category: typing_extensions.NotRequired[TicketStateCategory]
+ """
+ The category of the ticket state
+ """
+
+ internal_label: typing_extensions.NotRequired[str]
+ """
+ The state the ticket is currently in, in a human readable form - visible in Intercom
+ """
+
+ external_label: typing_extensions.NotRequired[str]
+ """
+ The state the ticket is currently in, in a human readable form - visible to customers, in the messenger, email and tickets portal.
+ """
diff --git a/src/intercom/unstable/tickets/requests/ticket_state_detailed.py b/src/intercom/unstable/tickets/requests/ticket_state_detailed.py
new file mode 100644
index 0000000..42c4089
--- /dev/null
+++ b/src/intercom/unstable/tickets/requests/ticket_state_detailed.py
@@ -0,0 +1,46 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing_extensions
+from ..types.ticket_state_detailed_category import TicketStateDetailedCategory
+from .ticket_state_detailed_ticket_types import TicketStateDetailedTicketTypesParams
+
+
+class TicketStateDetailedParams(typing_extensions.TypedDict):
+ """
+ A ticket state, used to define the state of a ticket.
+ """
+
+ type: typing_extensions.NotRequired[str]
+ """
+ String representing the object's type. Always has the value `ticket_state`.
+ """
+
+ id: typing_extensions.NotRequired[str]
+ """
+ The id of the ticket state
+ """
+
+ category: typing_extensions.NotRequired[TicketStateDetailedCategory]
+ """
+ The category of the ticket state
+ """
+
+ internal_label: typing_extensions.NotRequired[str]
+ """
+ The state the ticket is currently in, in a human readable form - visible in Intercom
+ """
+
+ external_label: typing_extensions.NotRequired[str]
+ """
+ The state the ticket is currently in, in a human readable form - visible to customers, in the messenger, email and tickets portal.
+ """
+
+ archived: typing_extensions.NotRequired[bool]
+ """
+ Whether the ticket state is archived
+ """
+
+ ticket_types: typing_extensions.NotRequired[TicketStateDetailedTicketTypesParams]
+ """
+ A list of ticket types associated with a given ticket state.
+ """
diff --git a/src/intercom/unstable/tickets/requests/ticket_state_detailed_ticket_types.py b/src/intercom/unstable/tickets/requests/ticket_state_detailed_ticket_types.py
new file mode 100644
index 0000000..d06c6d1
--- /dev/null
+++ b/src/intercom/unstable/tickets/requests/ticket_state_detailed_ticket_types.py
@@ -0,0 +1,22 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing
+
+import typing_extensions
+from .ticket_type import TicketTypeParams
+
+
+class TicketStateDetailedTicketTypesParams(typing_extensions.TypedDict):
+ """
+ A list of ticket types associated with a given ticket state.
+ """
+
+ type: typing_extensions.NotRequired[str]
+ """
+ String representing the object's type. Always has the value `list`.
+ """
+
+ data: typing_extensions.NotRequired[typing.Sequence[typing.Optional[TicketTypeParams]]]
+ """
+ A list of ticket type attributes associated with a given ticket type.
+ """
diff --git a/src/intercom/unstable/tickets/requests/ticket_type.py b/src/intercom/unstable/tickets/requests/ticket_type.py
new file mode 100644
index 0000000..8a33c73
--- /dev/null
+++ b/src/intercom/unstable/tickets/requests/ticket_type.py
@@ -0,0 +1,68 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing_extensions
+from ...requests.ticket_type_attribute_list import TicketTypeAttributeListParams
+from ..types.ticket_type_category import TicketTypeCategory
+from .ticket_type_ticket_states import TicketTypeTicketStatesParams
+
+
+class TicketTypeParams(typing_extensions.TypedDict):
+ """
+ A ticket type, used to define the data fields to be captured in a ticket.
+ """
+
+ type: typing_extensions.NotRequired[str]
+ """
+ String representing the object's type. Always has the value `ticket_type`.
+ """
+
+ id: typing_extensions.NotRequired[str]
+ """
+ The id representing the ticket type.
+ """
+
+ category: typing_extensions.NotRequired[TicketTypeCategory]
+ """
+ Category of the Ticket Type.
+ """
+
+ name: typing_extensions.NotRequired[str]
+ """
+ The name of the ticket type
+ """
+
+ description: typing_extensions.NotRequired[str]
+ """
+ The description of the ticket type
+ """
+
+ icon: typing_extensions.NotRequired[str]
+ """
+ The icon of the ticket type
+ """
+
+ workspace_id: typing_extensions.NotRequired[str]
+ """
+ The id of the workspace that the ticket type belongs to.
+ """
+
+ ticket_type_attributes: typing_extensions.NotRequired[TicketTypeAttributeListParams]
+ ticket_states: typing_extensions.NotRequired[TicketTypeTicketStatesParams]
+ """
+ A list of ticket states associated with a given ticket type.
+ """
+
+ archived: typing_extensions.NotRequired[bool]
+ """
+ Whether the ticket type is archived or not.
+ """
+
+ created_at: typing_extensions.NotRequired[int]
+ """
+ The date and time the ticket type was created.
+ """
+
+ updated_at: typing_extensions.NotRequired[int]
+ """
+ The date and time the ticket type was last updated.
+ """
diff --git a/src/intercom/unstable/tickets/requests/ticket_type_ticket_states.py b/src/intercom/unstable/tickets/requests/ticket_type_ticket_states.py
new file mode 100644
index 0000000..fe90df4
--- /dev/null
+++ b/src/intercom/unstable/tickets/requests/ticket_type_ticket_states.py
@@ -0,0 +1,22 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing
+
+import typing_extensions
+from .ticket_state import TicketStateParams
+
+
+class TicketTypeTicketStatesParams(typing_extensions.TypedDict):
+ """
+ A list of ticket states associated with a given ticket type.
+ """
+
+ type: typing_extensions.NotRequired[str]
+ """
+ String representing the object's type. Always has the value `list`.
+ """
+
+ data: typing_extensions.NotRequired[typing.Sequence[typing.Optional[TicketStateParams]]]
+ """
+ A list of ticket states associated with a given ticket type.
+ """
diff --git a/src/intercom/version.py b/src/intercom/version.py
index e2dfd2d..a916f83 100644
--- a/src/intercom/version.py
+++ b/src/intercom/version.py
@@ -1,3 +1,3 @@
from importlib import metadata
-__version__ = metadata.version("intercom-python")
+__version__ = metadata.version("python-intercom")
diff --git a/src/intercom/visitors/__init__.py b/src/intercom/visitors/__init__.py
index c639b64..9b939b5 100644
--- a/src/intercom/visitors/__init__.py
+++ b/src/intercom/visitors/__init__.py
@@ -11,13 +11,29 @@
VisitorWithId,
VisitorWithUserId,
)
+from .requests import (
+ ConvertVisitorRequestUserParams,
+ ConvertVisitorRequestVisitorParams,
+ UserWithIdParams,
+ UserWithUserIdParams,
+ VisitorWithEmailParams,
+ VisitorWithIdParams,
+ VisitorWithUserIdParams,
+)
__all__ = [
"ConvertVisitorRequestUser",
+ "ConvertVisitorRequestUserParams",
"ConvertVisitorRequestVisitor",
+ "ConvertVisitorRequestVisitorParams",
"UserWithId",
+ "UserWithIdParams",
"UserWithUserId",
+ "UserWithUserIdParams",
"VisitorWithEmail",
+ "VisitorWithEmailParams",
"VisitorWithId",
+ "VisitorWithIdParams",
"VisitorWithUserId",
+ "VisitorWithUserIdParams",
]
diff --git a/src/intercom/visitors/client.py b/src/intercom/visitors/client.py
index aca44b6..1fc2821 100644
--- a/src/intercom/visitors/client.py
+++ b/src/intercom/visitors/client.py
@@ -5,11 +5,11 @@
from ..contacts.types.contact import Contact
from ..core.client_wrapper import AsyncClientWrapper, SyncClientWrapper
from ..core.request_options import RequestOptions
-from ..types.update_visitor_request import UpdateVisitorRequest
+from ..requests.update_visitor_request import UpdateVisitorRequestParams
from ..types.visitor import Visitor
from .raw_client import AsyncRawVisitorsClient, RawVisitorsClient
-from .types.convert_visitor_request_user import ConvertVisitorRequestUser
-from .types.convert_visitor_request_visitor import ConvertVisitorRequestVisitor
+from .requests.convert_visitor_request_user import ConvertVisitorRequestUserParams
+from .requests.convert_visitor_request_visitor import ConvertVisitorRequestVisitorParams
# this is used as the default value for optional parameters
OMIT = typing.cast(typing.Any, ...)
@@ -62,7 +62,7 @@ def find(self, *, user_id: str, request_options: typing.Optional[RequestOptions]
return _response.data
def update(
- self, *, request: UpdateVisitorRequest, request_options: typing.Optional[RequestOptions] = None
+ self, *, request: UpdateVisitorRequestParams, request_options: typing.Optional[RequestOptions] = None
) -> Visitor:
"""
Sending a PUT request to `/visitors` will result in an update of an existing Visitor.
@@ -73,7 +73,7 @@ def update(
Parameters
----------
- request : UpdateVisitorRequest
+ request : UpdateVisitorRequestParams
request_options : typing.Optional[RequestOptions]
Request-specific configuration.
@@ -85,16 +85,13 @@ def update(
Examples
--------
- from intercom import Intercom, UpdateVisitorRequestWithId
+ from intercom import Intercom
client = Intercom(
token="YOUR_TOKEN",
)
client.visitors.update(
- request=UpdateVisitorRequestWithId(
- id="667d61cc8a68186f43bafe95",
- name="Gareth Bale",
- ),
+ request={"id": "667d61cc8a68186f43bafe95", "name": "Gareth Bale"},
)
"""
_response = self._raw_client.update(request=request, request_options=request_options)
@@ -104,8 +101,8 @@ def merge_to_contact(
self,
*,
type: str,
- user: ConvertVisitorRequestUser,
- visitor: ConvertVisitorRequestVisitor,
+ user: ConvertVisitorRequestUserParams,
+ visitor: ConvertVisitorRequestVisitorParams,
request_options: typing.Optional[RequestOptions] = None,
) -> Contact:
"""
@@ -120,10 +117,10 @@ def merge_to_contact(
type : str
Represents the role of the Contact model. Accepts `lead` or `user`.
- user : ConvertVisitorRequestUser
+ user : ConvertVisitorRequestUserParams
The unique identifiers retained after converting or merging.
- visitor : ConvertVisitorRequestVisitor
+ visitor : ConvertVisitorRequestVisitorParams
The unique identifiers to convert a single Visitor.
request_options : typing.Optional[RequestOptions]
@@ -137,20 +134,14 @@ def merge_to_contact(
Examples
--------
from intercom import Intercom
- from intercom.visitors import UserWithId, VisitorWithUserId
client = Intercom(
token="YOUR_TOKEN",
)
client.visitors.merge_to_contact(
type="user",
- user=UserWithId(
- id="8a88a590-e1c3-41e2-a502-e0649dbf721c",
- email="foo@bar.com",
- ),
- visitor=VisitorWithUserId(
- user_id="3ecf64d0-9ed1-4e9f-88e1-da7d6e6782f3",
- ),
+ user={"id": "8a88a590-e1c3-41e2-a502-e0649dbf721c", "email": "foo@bar.com"},
+ visitor={"user_id": "3ecf64d0-9ed1-4e9f-88e1-da7d6e6782f3"},
)
"""
_response = self._raw_client.merge_to_contact(
@@ -214,7 +205,7 @@ async def main() -> None:
return _response.data
async def update(
- self, *, request: UpdateVisitorRequest, request_options: typing.Optional[RequestOptions] = None
+ self, *, request: UpdateVisitorRequestParams, request_options: typing.Optional[RequestOptions] = None
) -> Visitor:
"""
Sending a PUT request to `/visitors` will result in an update of an existing Visitor.
@@ -225,7 +216,7 @@ async def update(
Parameters
----------
- request : UpdateVisitorRequest
+ request : UpdateVisitorRequestParams
request_options : typing.Optional[RequestOptions]
Request-specific configuration.
@@ -239,7 +230,7 @@ async def update(
--------
import asyncio
- from intercom import AsyncIntercom, UpdateVisitorRequestWithId
+ from intercom import AsyncIntercom
client = AsyncIntercom(
token="YOUR_TOKEN",
@@ -248,10 +239,7 @@ async def update(
async def main() -> None:
await client.visitors.update(
- request=UpdateVisitorRequestWithId(
- id="667d61cc8a68186f43bafe95",
- name="Gareth Bale",
- ),
+ request={"id": "667d61cc8a68186f43bafe95", "name": "Gareth Bale"},
)
@@ -264,8 +252,8 @@ async def merge_to_contact(
self,
*,
type: str,
- user: ConvertVisitorRequestUser,
- visitor: ConvertVisitorRequestVisitor,
+ user: ConvertVisitorRequestUserParams,
+ visitor: ConvertVisitorRequestVisitorParams,
request_options: typing.Optional[RequestOptions] = None,
) -> Contact:
"""
@@ -280,10 +268,10 @@ async def merge_to_contact(
type : str
Represents the role of the Contact model. Accepts `lead` or `user`.
- user : ConvertVisitorRequestUser
+ user : ConvertVisitorRequestUserParams
The unique identifiers retained after converting or merging.
- visitor : ConvertVisitorRequestVisitor
+ visitor : ConvertVisitorRequestVisitorParams
The unique identifiers to convert a single Visitor.
request_options : typing.Optional[RequestOptions]
@@ -299,7 +287,6 @@ async def merge_to_contact(
import asyncio
from intercom import AsyncIntercom
- from intercom.visitors import UserWithId, VisitorWithUserId
client = AsyncIntercom(
token="YOUR_TOKEN",
@@ -309,13 +296,11 @@ async def merge_to_contact(
async def main() -> None:
await client.visitors.merge_to_contact(
type="user",
- user=UserWithId(
- id="8a88a590-e1c3-41e2-a502-e0649dbf721c",
- email="foo@bar.com",
- ),
- visitor=VisitorWithUserId(
- user_id="3ecf64d0-9ed1-4e9f-88e1-da7d6e6782f3",
- ),
+ user={
+ "id": "8a88a590-e1c3-41e2-a502-e0649dbf721c",
+ "email": "foo@bar.com",
+ },
+ visitor={"user_id": "3ecf64d0-9ed1-4e9f-88e1-da7d6e6782f3"},
)
diff --git a/src/intercom/visitors/raw_client.py b/src/intercom/visitors/raw_client.py
index 03a4bd0..bd37ad0 100644
--- a/src/intercom/visitors/raw_client.py
+++ b/src/intercom/visitors/raw_client.py
@@ -12,11 +12,11 @@
from ..core.unchecked_base_model import construct_type
from ..errors.not_found_error import NotFoundError
from ..errors.unauthorized_error import UnauthorizedError
+from ..requests.update_visitor_request import UpdateVisitorRequestParams
from ..types.error import Error
-from ..types.update_visitor_request import UpdateVisitorRequest
from ..types.visitor import Visitor
-from .types.convert_visitor_request_user import ConvertVisitorRequestUser
-from .types.convert_visitor_request_visitor import ConvertVisitorRequestVisitor
+from .requests.convert_visitor_request_user import ConvertVisitorRequestUserParams
+from .requests.convert_visitor_request_visitor import ConvertVisitorRequestVisitorParams
# this is used as the default value for optional parameters
OMIT = typing.cast(typing.Any, ...)
@@ -89,7 +89,7 @@ def find(self, *, user_id: str, request_options: typing.Optional[RequestOptions]
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
def update(
- self, *, request: UpdateVisitorRequest, request_options: typing.Optional[RequestOptions] = None
+ self, *, request: UpdateVisitorRequestParams, request_options: typing.Optional[RequestOptions] = None
) -> HttpResponse[Visitor]:
"""
Sending a PUT request to `/visitors` will result in an update of an existing Visitor.
@@ -100,7 +100,7 @@ def update(
Parameters
----------
- request : UpdateVisitorRequest
+ request : UpdateVisitorRequestParams
request_options : typing.Optional[RequestOptions]
Request-specific configuration.
@@ -114,7 +114,7 @@ def update(
"visitors",
method="PUT",
json=convert_and_respect_annotation_metadata(
- object_=request, annotation=UpdateVisitorRequest, direction="write"
+ object_=request, annotation=UpdateVisitorRequestParams, direction="write"
),
headers={
"content-type": "application/json",
@@ -163,8 +163,8 @@ def merge_to_contact(
self,
*,
type: str,
- user: ConvertVisitorRequestUser,
- visitor: ConvertVisitorRequestVisitor,
+ user: ConvertVisitorRequestUserParams,
+ visitor: ConvertVisitorRequestVisitorParams,
request_options: typing.Optional[RequestOptions] = None,
) -> HttpResponse[Contact]:
"""
@@ -179,10 +179,10 @@ def merge_to_contact(
type : str
Represents the role of the Contact model. Accepts `lead` or `user`.
- user : ConvertVisitorRequestUser
+ user : ConvertVisitorRequestUserParams
The unique identifiers retained after converting or merging.
- visitor : ConvertVisitorRequestVisitor
+ visitor : ConvertVisitorRequestVisitorParams
The unique identifiers to convert a single Visitor.
request_options : typing.Optional[RequestOptions]
@@ -199,10 +199,10 @@ def merge_to_contact(
json={
"type": type,
"user": convert_and_respect_annotation_metadata(
- object_=user, annotation=ConvertVisitorRequestUser, direction="write"
+ object_=user, annotation=ConvertVisitorRequestUserParams, direction="write"
),
"visitor": convert_and_respect_annotation_metadata(
- object_=visitor, annotation=ConvertVisitorRequestVisitor, direction="write"
+ object_=visitor, annotation=ConvertVisitorRequestVisitorParams, direction="write"
),
},
headers={
@@ -307,7 +307,7 @@ async def find(
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
async def update(
- self, *, request: UpdateVisitorRequest, request_options: typing.Optional[RequestOptions] = None
+ self, *, request: UpdateVisitorRequestParams, request_options: typing.Optional[RequestOptions] = None
) -> AsyncHttpResponse[Visitor]:
"""
Sending a PUT request to `/visitors` will result in an update of an existing Visitor.
@@ -318,7 +318,7 @@ async def update(
Parameters
----------
- request : UpdateVisitorRequest
+ request : UpdateVisitorRequestParams
request_options : typing.Optional[RequestOptions]
Request-specific configuration.
@@ -332,7 +332,7 @@ async def update(
"visitors",
method="PUT",
json=convert_and_respect_annotation_metadata(
- object_=request, annotation=UpdateVisitorRequest, direction="write"
+ object_=request, annotation=UpdateVisitorRequestParams, direction="write"
),
headers={
"content-type": "application/json",
@@ -381,8 +381,8 @@ async def merge_to_contact(
self,
*,
type: str,
- user: ConvertVisitorRequestUser,
- visitor: ConvertVisitorRequestVisitor,
+ user: ConvertVisitorRequestUserParams,
+ visitor: ConvertVisitorRequestVisitorParams,
request_options: typing.Optional[RequestOptions] = None,
) -> AsyncHttpResponse[Contact]:
"""
@@ -397,10 +397,10 @@ async def merge_to_contact(
type : str
Represents the role of the Contact model. Accepts `lead` or `user`.
- user : ConvertVisitorRequestUser
+ user : ConvertVisitorRequestUserParams
The unique identifiers retained after converting or merging.
- visitor : ConvertVisitorRequestVisitor
+ visitor : ConvertVisitorRequestVisitorParams
The unique identifiers to convert a single Visitor.
request_options : typing.Optional[RequestOptions]
@@ -417,10 +417,10 @@ async def merge_to_contact(
json={
"type": type,
"user": convert_and_respect_annotation_metadata(
- object_=user, annotation=ConvertVisitorRequestUser, direction="write"
+ object_=user, annotation=ConvertVisitorRequestUserParams, direction="write"
),
"visitor": convert_and_respect_annotation_metadata(
- object_=visitor, annotation=ConvertVisitorRequestVisitor, direction="write"
+ object_=visitor, annotation=ConvertVisitorRequestVisitorParams, direction="write"
),
},
headers={
diff --git a/src/intercom/visitors/requests/__init__.py b/src/intercom/visitors/requests/__init__.py
new file mode 100644
index 0000000..525d4e7
--- /dev/null
+++ b/src/intercom/visitors/requests/__init__.py
@@ -0,0 +1,21 @@
+# This file was auto-generated by Fern from our API Definition.
+
+# isort: skip_file
+
+from .convert_visitor_request_user import ConvertVisitorRequestUserParams
+from .convert_visitor_request_visitor import ConvertVisitorRequestVisitorParams
+from .user_with_id import UserWithIdParams
+from .user_with_user_id import UserWithUserIdParams
+from .visitor_with_email import VisitorWithEmailParams
+from .visitor_with_id import VisitorWithIdParams
+from .visitor_with_user_id import VisitorWithUserIdParams
+
+__all__ = [
+ "ConvertVisitorRequestUserParams",
+ "ConvertVisitorRequestVisitorParams",
+ "UserWithIdParams",
+ "UserWithUserIdParams",
+ "VisitorWithEmailParams",
+ "VisitorWithIdParams",
+ "VisitorWithUserIdParams",
+]
diff --git a/src/intercom/visitors/requests/convert_visitor_request_user.py b/src/intercom/visitors/requests/convert_visitor_request_user.py
new file mode 100644
index 0000000..054f6ed
--- /dev/null
+++ b/src/intercom/visitors/requests/convert_visitor_request_user.py
@@ -0,0 +1,8 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing
+
+from .user_with_id import UserWithIdParams
+from .user_with_user_id import UserWithUserIdParams
+
+ConvertVisitorRequestUserParams = typing.Union[UserWithIdParams, UserWithUserIdParams]
diff --git a/src/intercom/visitors/requests/convert_visitor_request_visitor.py b/src/intercom/visitors/requests/convert_visitor_request_visitor.py
new file mode 100644
index 0000000..7d59308
--- /dev/null
+++ b/src/intercom/visitors/requests/convert_visitor_request_visitor.py
@@ -0,0 +1,9 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing
+
+from .visitor_with_email import VisitorWithEmailParams
+from .visitor_with_id import VisitorWithIdParams
+from .visitor_with_user_id import VisitorWithUserIdParams
+
+ConvertVisitorRequestVisitorParams = typing.Union[VisitorWithIdParams, VisitorWithUserIdParams, VisitorWithEmailParams]
diff --git a/src/intercom/visitors/requests/user_with_id.py b/src/intercom/visitors/requests/user_with_id.py
new file mode 100644
index 0000000..8590dee
--- /dev/null
+++ b/src/intercom/visitors/requests/user_with_id.py
@@ -0,0 +1,15 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing_extensions
+
+
+class UserWithIdParams(typing_extensions.TypedDict):
+ id: str
+ """
+ The unique identifier for the contact which is given by Intercom.
+ """
+
+ email: typing_extensions.NotRequired[str]
+ """
+ The contact's email, retained by default if one is present.
+ """
diff --git a/src/intercom/visitors/requests/user_with_user_id.py b/src/intercom/visitors/requests/user_with_user_id.py
new file mode 100644
index 0000000..89e1170
--- /dev/null
+++ b/src/intercom/visitors/requests/user_with_user_id.py
@@ -0,0 +1,15 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing_extensions
+
+
+class UserWithUserIdParams(typing_extensions.TypedDict):
+ user_id: str
+ """
+ A unique identifier for the contact which is given to Intercom.
+ """
+
+ email: typing_extensions.NotRequired[str]
+ """
+ The contact's email, retained by default if one is present.
+ """
diff --git a/src/intercom/visitors/requests/visitor_with_email.py b/src/intercom/visitors/requests/visitor_with_email.py
new file mode 100644
index 0000000..cb4b6b5
--- /dev/null
+++ b/src/intercom/visitors/requests/visitor_with_email.py
@@ -0,0 +1,10 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing_extensions
+
+
+class VisitorWithEmailParams(typing_extensions.TypedDict):
+ email: str
+ """
+ The visitor's email.
+ """
diff --git a/src/intercom/visitors/requests/visitor_with_id.py b/src/intercom/visitors/requests/visitor_with_id.py
new file mode 100644
index 0000000..1b0984d
--- /dev/null
+++ b/src/intercom/visitors/requests/visitor_with_id.py
@@ -0,0 +1,10 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing_extensions
+
+
+class VisitorWithIdParams(typing_extensions.TypedDict):
+ id: str
+ """
+ The unique identifier for the contact which is given by Intercom.
+ """
diff --git a/src/intercom/visitors/requests/visitor_with_user_id.py b/src/intercom/visitors/requests/visitor_with_user_id.py
new file mode 100644
index 0000000..cfbb245
--- /dev/null
+++ b/src/intercom/visitors/requests/visitor_with_user_id.py
@@ -0,0 +1,10 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing_extensions
+
+
+class VisitorWithUserIdParams(typing_extensions.TypedDict):
+ user_id: str
+ """
+ A unique identifier for the contact which is given to Intercom.
+ """