knockapi 1.0.0 → 1.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/CHANGELOG.md +61 -0
- data/README.md +101 -49
- data/lib/knockapi/client.rb +4 -4
- data/lib/knockapi/errors.rb +1 -1
- data/lib/knockapi/file_part.rb +2 -2
- data/lib/knockapi/internal/entries_cursor.rb +3 -3
- data/lib/knockapi/internal/items_cursor.rb +3 -3
- data/lib/knockapi/internal/ms_teams_pagination.rb +3 -3
- data/lib/knockapi/internal/slack_channels_cursor.rb +3 -3
- data/lib/knockapi/internal/transport/base_client.rb +79 -7
- data/lib/knockapi/internal/transport/pooled_net_requester.rb +17 -1
- data/lib/knockapi/internal/type/array_of.rb +9 -1
- data/lib/knockapi/internal/type/base_model.rb +78 -39
- data/lib/knockapi/internal/type/boolean.rb +8 -0
- data/lib/knockapi/internal/type/converter.rb +18 -0
- data/lib/knockapi/internal/type/enum.rb +13 -0
- data/lib/knockapi/internal/type/file_input.rb +7 -0
- data/lib/knockapi/internal/type/hash_of.rb +9 -1
- data/lib/knockapi/internal/type/request_parameters.rb +6 -12
- data/lib/knockapi/internal/type/union.rb +16 -3
- data/lib/knockapi/internal/type/unknown.rb +8 -0
- data/lib/knockapi/internal/util.rb +119 -2
- data/lib/knockapi/internal.rb +9 -0
- data/lib/knockapi/models/activity.rb +6 -6
- data/lib/knockapi/models/audience_add_members_params.rb +10 -8
- data/lib/knockapi/models/audience_add_members_response.rb +7 -0
- data/lib/knockapi/models/audience_list_members_response.rb +6 -6
- data/lib/knockapi/models/audience_member.rb +5 -6
- data/lib/knockapi/models/audience_remove_members_params.rb +12 -7
- data/lib/knockapi/models/audience_remove_members_response.rb +7 -0
- data/lib/knockapi/models/bulk_operation.rb +7 -8
- data/lib/knockapi/models/channels/bulk_update_message_status_params.rb +11 -10
- data/lib/knockapi/models/condition.rb +4 -4
- data/lib/knockapi/models/identify_user_request.rb +16 -17
- data/lib/knockapi/models/inline_identify_user_request.rb +64 -7
- data/lib/knockapi/models/inline_object_request.rb +8 -6
- data/lib/knockapi/models/inline_tenant_request.rb +2 -2
- data/lib/knockapi/models/message.rb +19 -23
- data/lib/knockapi/models/message_delivery_log.rb +18 -18
- data/lib/knockapi/models/message_event.rb +9 -10
- data/lib/knockapi/models/message_list_params.rb +14 -15
- data/lib/knockapi/models/messages/batch_archive_response.rb +1 -1
- data/lib/knockapi/models/messages/batch_mark_as_interacted_response.rb +1 -1
- data/lib/knockapi/models/messages/batch_mark_as_read_response.rb +1 -1
- data/lib/knockapi/models/messages/batch_mark_as_seen_response.rb +1 -1
- data/lib/knockapi/models/messages/batch_mark_as_unread_response.rb +1 -1
- data/lib/knockapi/models/messages/batch_mark_as_unseen_response.rb +1 -1
- data/lib/knockapi/models/messages/batch_unarchive_response.rb +1 -1
- data/lib/knockapi/models/object.rb +9 -1
- data/lib/knockapi/models/object_add_subscriptions_params.rb +3 -4
- data/lib/knockapi/models/object_add_subscriptions_response.rb +1 -1
- data/lib/knockapi/models/object_delete_response.rb +7 -0
- data/lib/knockapi/models/object_delete_subscriptions_params.rb +3 -5
- data/lib/knockapi/models/object_delete_subscriptions_response.rb +1 -1
- data/lib/knockapi/models/object_list_messages_params.rb +16 -14
- data/lib/knockapi/models/object_list_params.rb +3 -4
- data/lib/knockapi/models/object_list_preferences_response.rb +1 -1
- data/lib/knockapi/models/object_list_subscriptions_params.rb +14 -14
- data/lib/knockapi/models/object_set_params.rb +15 -13
- data/lib/knockapi/models/object_unset_channel_data_response.rb +7 -0
- data/lib/knockapi/models/objects/bulk_add_subscriptions_params.rb +9 -9
- data/lib/knockapi/models/objects/bulk_set_params.rb +3 -3
- data/lib/knockapi/models/providers/ms_team_list_channels_params.rb +4 -7
- data/lib/knockapi/models/providers/ms_team_list_teams_params.rb +4 -9
- data/lib/knockapi/models/providers/slack_list_channels_params.rb +4 -7
- data/lib/knockapi/models/recipient.rb +3 -3
- data/lib/knockapi/models/recipient_reference.rb +2 -2
- data/lib/knockapi/models/recipient_request.rb +3 -3
- data/lib/knockapi/models/recipients/channel_data.rb +14 -14
- data/lib/knockapi/models/recipients/channel_data_request.rb +10 -10
- data/lib/knockapi/models/recipients/discord_channel_data.rb +16 -10
- data/lib/knockapi/models/recipients/inline_channel_data_request.rb +24 -1
- data/lib/knockapi/models/recipients/inline_preference_set_request.rb +1 -1
- data/lib/knockapi/models/recipients/ms_teams_channel_data.rb +16 -10
- data/lib/knockapi/models/recipients/preference_set.rb +34 -28
- data/lib/knockapi/models/recipients/preference_set_channel_type_setting.rb +3 -3
- data/lib/knockapi/models/recipients/preference_set_channel_types.rb +36 -36
- data/lib/knockapi/models/recipients/preference_set_request.rb +34 -28
- data/lib/knockapi/models/recipients/slack_channel_data.rb +12 -10
- data/lib/knockapi/models/recipients/subscription.rb +6 -6
- data/lib/knockapi/models/schedule.rb +11 -12
- data/lib/knockapi/models/schedule_create_params.rb +10 -15
- data/lib/knockapi/models/schedule_create_response.rb +1 -1
- data/lib/knockapi/models/schedule_delete_response.rb +1 -1
- data/lib/knockapi/models/schedule_repeat_rule.rb +7 -7
- data/lib/knockapi/models/schedule_update_params.rb +9 -10
- data/lib/knockapi/models/schedule_update_response.rb +1 -1
- data/lib/knockapi/models/schedules/bulk_create_params.rb +16 -18
- data/lib/knockapi/models/tenant.rb +13 -16
- data/lib/knockapi/models/tenant_delete_response.rb +7 -0
- data/lib/knockapi/models/tenant_request.rb +20 -20
- data/lib/knockapi/models/tenant_set_params.rb +19 -19
- data/lib/knockapi/models/tenants/bulk_set_params.rb +3 -3
- data/lib/knockapi/models/user.rb +9 -11
- data/lib/knockapi/models/user_delete_response.rb +7 -0
- data/lib/knockapi/models/user_list_messages_params.rb +18 -14
- data/lib/knockapi/models/user_list_params.rb +3 -4
- data/lib/knockapi/models/user_list_preferences_response.rb +1 -1
- data/lib/knockapi/models/user_list_subscriptions_params.rb +3 -3
- data/lib/knockapi/models/user_unset_channel_data_response.rb +7 -0
- data/lib/knockapi/models/users/bulk_identify_params.rb +3 -3
- data/lib/knockapi/models/users/bulk_set_preferences_params.rb +3 -3
- data/lib/knockapi/models/users/feed_list_items_params.rb +6 -6
- data/lib/knockapi/models/users/feed_list_items_response.rb +6 -6
- data/lib/knockapi/models/workflow_cancel_params.rb +3 -5
- data/lib/knockapi/models/workflow_cancel_response.rb +7 -0
- data/lib/knockapi/models/workflow_trigger_params.rb +9 -12
- data/lib/knockapi/models/workflow_trigger_response.rb +0 -1
- data/lib/knockapi/models.rb +213 -0
- data/lib/knockapi/request_options.rb +4 -0
- data/lib/knockapi/resources/audiences.rb +4 -4
- data/lib/knockapi/resources/bulk_operations.rb +2 -2
- data/lib/knockapi/resources/channels/bulk.rb +7 -8
- data/lib/knockapi/resources/integrations/census.rb +1 -1
- data/lib/knockapi/resources/integrations/hightouch.rb +1 -1
- data/lib/knockapi/resources/messages/batch.rb +22 -22
- data/lib/knockapi/resources/messages.rb +32 -39
- data/lib/knockapi/resources/objects/bulk.rb +11 -11
- data/lib/knockapi/resources/objects.rb +52 -62
- data/lib/knockapi/resources/providers/ms_teams.rb +6 -6
- data/lib/knockapi/resources/providers/slack.rb +4 -4
- data/lib/knockapi/resources/schedules/bulk.rb +4 -4
- data/lib/knockapi/resources/schedules.rb +18 -23
- data/lib/knockapi/resources/tenants/bulk.rb +7 -7
- data/lib/knockapi/resources/tenants.rb +11 -11
- data/lib/knockapi/resources/users/bulk.rb +11 -11
- data/lib/knockapi/resources/users/feeds.rb +3 -3
- data/lib/knockapi/resources/users/guides.rb +4 -4
- data/lib/knockapi/resources/users.rb +46 -54
- data/lib/knockapi/resources/workflows.rb +6 -11
- data/lib/knockapi/version.rb +1 -1
- data/lib/knockapi.rb +11 -2
- data/rbi/knockapi/client.rbi +5 -4
- data/rbi/knockapi/errors.rbi +35 -16
- data/rbi/knockapi/file_part.rbi +9 -6
- data/rbi/knockapi/internal/entries_cursor.rbi +9 -4
- data/rbi/knockapi/internal/items_cursor.rbi +9 -4
- data/rbi/knockapi/internal/ms_teams_pagination.rbi +2 -1
- data/rbi/knockapi/internal/slack_channels_cursor.rbi +2 -1
- data/rbi/knockapi/internal/transport/base_client.rbi +158 -78
- data/rbi/knockapi/internal/transport/pooled_net_requester.rbi +32 -13
- data/rbi/knockapi/internal/type/array_of.rbi +40 -24
- data/rbi/knockapi/internal/type/base_model.rbi +156 -73
- data/rbi/knockapi/internal/type/base_page.rbi +12 -8
- data/rbi/knockapi/internal/type/boolean.rbi +22 -14
- data/rbi/knockapi/internal/type/converter.rbi +70 -28
- data/rbi/knockapi/internal/type/enum.rbi +33 -15
- data/rbi/knockapi/internal/type/file_input.rbi +13 -4
- data/rbi/knockapi/internal/type/hash_of.rbi +40 -24
- data/rbi/knockapi/internal/type/request_parameters.rbi +12 -4
- data/rbi/knockapi/internal/type/union.rbi +60 -19
- data/rbi/knockapi/internal/type/unknown.rbi +22 -6
- data/rbi/knockapi/internal/util.rbi +273 -87
- data/rbi/knockapi/internal.rbi +5 -0
- data/rbi/knockapi/models/activity.rbi +28 -22
- data/rbi/knockapi/models/audience_add_members_params.rbi +62 -27
- data/rbi/knockapi/models/audience_add_members_response.rbi +7 -0
- data/rbi/knockapi/models/audience_list_members_params.rbi +16 -5
- data/rbi/knockapi/models/audience_list_members_response.rbi +25 -11
- data/rbi/knockapi/models/audience_member.rbi +23 -11
- data/rbi/knockapi/models/audience_remove_members_params.rbi +65 -28
- data/rbi/knockapi/models/audience_remove_members_response.rbi +7 -0
- data/rbi/knockapi/models/bulk_operation.rbi +70 -42
- data/rbi/knockapi/models/bulk_operation_get_params.rbi +13 -5
- data/rbi/knockapi/models/channels/bulk_update_message_status_params.rbi +224 -79
- data/rbi/knockapi/models/condition.rbi +78 -31
- data/rbi/knockapi/models/identify_user_request.rbi +90 -36
- data/rbi/knockapi/models/inline_identify_user_request.rbi +135 -22
- data/rbi/knockapi/models/inline_object_request.rbi +76 -22
- data/rbi/knockapi/models/inline_tenant_request.rbi +7 -2
- data/rbi/knockapi/models/integrations/census_custom_destination_params.rbi +24 -15
- data/rbi/knockapi/models/integrations/census_custom_destination_response.rbi +21 -4
- data/rbi/knockapi/models/integrations/hightouch_embedded_destination_params.rbi +24 -15
- data/rbi/knockapi/models/integrations/hightouch_embedded_destination_response.rbi +21 -4
- data/rbi/knockapi/models/message.rbi +140 -72
- data/rbi/knockapi/models/message_archive_params.rbi +13 -5
- data/rbi/knockapi/models/message_delivery_log.rbi +175 -72
- data/rbi/knockapi/models/message_event.rbi +83 -37
- data/rbi/knockapi/models/message_get_content_params.rbi +13 -5
- data/rbi/knockapi/models/message_get_content_response.rbi +366 -226
- data/rbi/knockapi/models/message_get_params.rbi +13 -5
- data/rbi/knockapi/models/message_list_activities_params.rbi +24 -15
- data/rbi/knockapi/models/message_list_delivery_logs_params.rbi +23 -12
- data/rbi/knockapi/models/message_list_events_params.rbi +20 -12
- data/rbi/knockapi/models/message_list_params.rbi +162 -58
- data/rbi/knockapi/models/message_mark_as_interacted_params.rbi +21 -6
- data/rbi/knockapi/models/message_mark_as_read_params.rbi +13 -5
- data/rbi/knockapi/models/message_mark_as_seen_params.rbi +13 -5
- data/rbi/knockapi/models/message_mark_as_unread_params.rbi +16 -5
- data/rbi/knockapi/models/message_mark_as_unseen_params.rbi +16 -5
- data/rbi/knockapi/models/message_unarchive_params.rbi +13 -5
- data/rbi/knockapi/models/messages/batch_archive_params.rbi +23 -6
- data/rbi/knockapi/models/messages/batch_archive_response.rbi +4 -1
- data/rbi/knockapi/models/messages/batch_get_content_params.rbi +23 -6
- data/rbi/knockapi/models/messages/batch_get_content_response.rbi +370 -227
- data/rbi/knockapi/models/messages/batch_mark_as_interacted_params.rbi +22 -13
- data/rbi/knockapi/models/messages/batch_mark_as_interacted_response.rbi +4 -1
- data/rbi/knockapi/models/messages/batch_mark_as_read_params.rbi +23 -6
- data/rbi/knockapi/models/messages/batch_mark_as_read_response.rbi +4 -1
- data/rbi/knockapi/models/messages/batch_mark_as_seen_params.rbi +23 -6
- data/rbi/knockapi/models/messages/batch_mark_as_seen_response.rbi +4 -1
- data/rbi/knockapi/models/messages/batch_mark_as_unread_params.rbi +23 -6
- data/rbi/knockapi/models/messages/batch_mark_as_unread_response.rbi +4 -1
- data/rbi/knockapi/models/messages/batch_mark_as_unseen_params.rbi +23 -6
- data/rbi/knockapi/models/messages/batch_mark_as_unseen_response.rbi +4 -1
- data/rbi/knockapi/models/messages/batch_unarchive_params.rbi +23 -6
- data/rbi/knockapi/models/messages/batch_unarchive_response.rbi +4 -1
- data/rbi/knockapi/models/object.rbi +31 -10
- data/rbi/knockapi/models/object_add_subscriptions_params.rbi +44 -22
- data/rbi/knockapi/models/object_add_subscriptions_response.rbi +1 -1
- data/rbi/knockapi/models/object_delete_params.rbi +13 -5
- data/rbi/knockapi/models/object_delete_response.rbi +7 -0
- data/rbi/knockapi/models/object_delete_subscriptions_params.rbi +36 -14
- data/rbi/knockapi/models/object_delete_subscriptions_response.rbi +1 -1
- data/rbi/knockapi/models/object_get_channel_data_params.rbi +16 -5
- data/rbi/knockapi/models/object_get_params.rbi +13 -5
- data/rbi/knockapi/models/object_get_preferences_params.rbi +16 -5
- data/rbi/knockapi/models/object_list_messages_params.rbi +185 -61
- data/rbi/knockapi/models/object_list_params.rbi +43 -22
- data/rbi/knockapi/models/object_list_preferences_params.rbi +16 -5
- data/rbi/knockapi/models/object_list_preferences_response.rbi +1 -1
- data/rbi/knockapi/models/object_list_schedules_params.rbi +25 -16
- data/rbi/knockapi/models/object_list_subscriptions_params.rbi +150 -46
- data/rbi/knockapi/models/object_set_channel_data_params.rbi +16 -5
- data/rbi/knockapi/models/object_set_params.rbi +89 -33
- data/rbi/knockapi/models/object_set_preferences_params.rbi +16 -5
- data/rbi/knockapi/models/object_unset_channel_data_params.rbi +16 -5
- data/rbi/knockapi/models/object_unset_channel_data_response.rbi +7 -0
- data/rbi/knockapi/models/objects/bulk_add_subscriptions_params.rbi +77 -34
- data/rbi/knockapi/models/objects/bulk_delete_params.rbi +23 -6
- data/rbi/knockapi/models/objects/bulk_set_params.rbi +20 -11
- data/rbi/knockapi/models/page_info.rbi +22 -11
- data/rbi/knockapi/models/providers/ms_team_check_auth_params.rbi +23 -6
- data/rbi/knockapi/models/providers/ms_team_check_auth_response.rbi +53 -14
- data/rbi/knockapi/models/providers/ms_team_list_channels_params.rbi +53 -23
- data/rbi/knockapi/models/providers/ms_team_list_channels_response.rbi +57 -30
- data/rbi/knockapi/models/providers/ms_team_list_teams_params.rbi +62 -22
- data/rbi/knockapi/models/providers/ms_team_list_teams_response.rbi +23 -4
- data/rbi/knockapi/models/providers/ms_team_revoke_access_params.rbi +23 -6
- data/rbi/knockapi/models/providers/ms_team_revoke_access_response.rbi +14 -3
- data/rbi/knockapi/models/providers/slack_check_auth_params.rbi +23 -6
- data/rbi/knockapi/models/providers/slack_check_auth_response.rbi +53 -14
- data/rbi/knockapi/models/providers/slack_list_channels_params.rbi +58 -30
- data/rbi/knockapi/models/providers/slack_list_channels_response.rbi +29 -12
- data/rbi/knockapi/models/providers/slack_revoke_access_params.rbi +23 -6
- data/rbi/knockapi/models/providers/slack_revoke_access_response.rbi +14 -3
- data/rbi/knockapi/models/recipient.rbi +5 -2
- data/rbi/knockapi/models/recipient_reference.rbi +22 -5
- data/rbi/knockapi/models/recipient_request.rbi +11 -4
- data/rbi/knockapi/models/recipients/channel_data.rbi +113 -55
- data/rbi/knockapi/models/recipients/channel_data_request.rbi +54 -33
- data/rbi/knockapi/models/recipients/discord_channel_data.rbi +100 -53
- data/rbi/knockapi/models/recipients/inline_channel_data_request.rbi +29 -1
- data/rbi/knockapi/models/recipients/inline_preference_set_request.rbi +3 -1
- data/rbi/knockapi/models/recipients/ms_teams_channel_data.rbi +109 -64
- data/rbi/knockapi/models/recipients/one_signal_channel_data.rbi +14 -3
- data/rbi/knockapi/models/recipients/preference_set.rbi +159 -100
- data/rbi/knockapi/models/recipients/preference_set_channel_type_setting.rbi +18 -6
- data/rbi/knockapi/models/recipients/preference_set_channel_types.rbi +276 -105
- data/rbi/knockapi/models/recipients/preference_set_request.rbi +162 -87
- data/rbi/knockapi/models/recipients/push_channel_data.rbi +14 -3
- data/rbi/knockapi/models/recipients/slack_channel_data.rbi +107 -49
- data/rbi/knockapi/models/recipients/subscription.rbi +29 -20
- data/rbi/knockapi/models/schedule.rbi +32 -27
- data/rbi/knockapi/models/schedule_create_params.rbi +52 -35
- data/rbi/knockapi/models/schedule_create_response.rbi +4 -1
- data/rbi/knockapi/models/schedule_delete_params.rbi +20 -6
- data/rbi/knockapi/models/schedule_delete_response.rbi +4 -1
- data/rbi/knockapi/models/schedule_list_params.rbi +23 -17
- data/rbi/knockapi/models/schedule_repeat_rule.rbi +69 -39
- data/rbi/knockapi/models/schedule_update_params.rbi +48 -27
- data/rbi/knockapi/models/schedule_update_response.rbi +4 -1
- data/rbi/knockapi/models/schedules/bulk_create_params.rbi +102 -61
- data/rbi/knockapi/models/tenant.rbi +71 -45
- data/rbi/knockapi/models/tenant_delete_params.rbi +13 -5
- data/rbi/knockapi/models/tenant_delete_response.rbi +7 -0
- data/rbi/knockapi/models/tenant_get_params.rbi +13 -5
- data/rbi/knockapi/models/tenant_list_params.rbi +22 -16
- data/rbi/knockapi/models/tenant_request.rbi +132 -57
- data/rbi/knockapi/models/tenant_set_params.rbi +134 -59
- data/rbi/knockapi/models/tenants/bulk_delete_params.rbi +23 -6
- data/rbi/knockapi/models/tenants/bulk_set_params.rbi +20 -11
- data/rbi/knockapi/models/user.rbi +32 -28
- data/rbi/knockapi/models/user_delete_params.rbi +13 -5
- data/rbi/knockapi/models/user_delete_response.rbi +7 -0
- data/rbi/knockapi/models/user_get_channel_data_params.rbi +13 -5
- data/rbi/knockapi/models/user_get_params.rbi +13 -5
- data/rbi/knockapi/models/user_get_preferences_params.rbi +19 -5
- data/rbi/knockapi/models/user_list_messages_params.rbi +183 -59
- data/rbi/knockapi/models/user_list_params.rbi +43 -22
- data/rbi/knockapi/models/user_list_preferences_params.rbi +16 -5
- data/rbi/knockapi/models/user_list_preferences_response.rbi +1 -1
- data/rbi/knockapi/models/user_list_schedules_params.rbi +22 -16
- data/rbi/knockapi/models/user_list_subscriptions_params.rbi +61 -23
- data/rbi/knockapi/models/user_merge_params.rbi +17 -6
- data/rbi/knockapi/models/user_set_channel_data_params.rbi +13 -5
- data/rbi/knockapi/models/user_set_preferences_params.rbi +13 -5
- data/rbi/knockapi/models/user_unset_channel_data_params.rbi +16 -5
- data/rbi/knockapi/models/user_unset_channel_data_response.rbi +7 -0
- data/rbi/knockapi/models/user_update_params.rbi +13 -5
- data/rbi/knockapi/models/users/bulk_delete_params.rbi +23 -6
- data/rbi/knockapi/models/users/bulk_identify_params.rbi +23 -11
- data/rbi/knockapi/models/users/bulk_set_preferences_params.rbi +26 -18
- data/rbi/knockapi/models/users/feed_get_settings_params.rbi +16 -5
- data/rbi/knockapi/models/users/feed_get_settings_response.rbi +47 -14
- data/rbi/knockapi/models/users/feed_list_items_params.rbi +119 -41
- data/rbi/knockapi/models/users/feed_list_items_response.rbi +199 -108
- data/rbi/knockapi/models/users/guide_get_channel_params.rbi +15 -5
- data/rbi/knockapi/models/users/guide_get_channel_response.rbi +84 -25
- data/rbi/knockapi/models/users/guide_mark_message_as_archived_params.rbi +29 -20
- data/rbi/knockapi/models/users/guide_mark_message_as_archived_response.rbi +14 -3
- data/rbi/knockapi/models/users/guide_mark_message_as_interacted_params.rbi +29 -20
- data/rbi/knockapi/models/users/guide_mark_message_as_interacted_response.rbi +14 -3
- data/rbi/knockapi/models/users/guide_mark_message_as_seen_params.rbi +29 -20
- data/rbi/knockapi/models/users/guide_mark_message_as_seen_response.rbi +14 -3
- data/rbi/knockapi/models/workflow_cancel_params.rbi +42 -17
- data/rbi/knockapi/models/workflow_cancel_response.rbi +7 -0
- data/rbi/knockapi/models/workflow_trigger_params.rbi +65 -37
- data/rbi/knockapi/models/workflow_trigger_response.rbi +14 -3
- data/rbi/knockapi/models.rbi +179 -0
- data/rbi/knockapi/request_options.rbi +18 -7
- data/rbi/knockapi/resources/audiences.rbi +22 -14
- data/rbi/knockapi/resources/bulk_operations.rbi +11 -3
- data/rbi/knockapi/resources/channels/bulk.rbi +15 -9
- data/rbi/knockapi/resources/channels.rbi +2 -1
- data/rbi/knockapi/resources/integrations/census.rbi +8 -4
- data/rbi/knockapi/resources/integrations/hightouch.rbi +8 -4
- data/rbi/knockapi/resources/integrations.rbi +2 -1
- data/rbi/knockapi/resources/messages/batch.rbi +58 -26
- data/rbi/knockapi/resources/messages.rbi +102 -43
- data/rbi/knockapi/resources/objects/bulk.rbi +25 -14
- data/rbi/knockapi/resources/objects.rbi +177 -107
- data/rbi/knockapi/resources/providers/ms_teams.rbi +35 -16
- data/rbi/knockapi/resources/providers/slack.rbi +28 -11
- data/rbi/knockapi/resources/providers.rbi +2 -1
- data/rbi/knockapi/resources/recipients/channel_data.rbi +2 -1
- data/rbi/knockapi/resources/recipients/preferences.rbi +2 -1
- data/rbi/knockapi/resources/recipients/subscriptions.rbi +2 -1
- data/rbi/knockapi/resources/recipients.rbi +2 -1
- data/rbi/knockapi/resources/schedules/bulk.rbi +9 -6
- data/rbi/knockapi/resources/schedules.rbi +44 -33
- data/rbi/knockapi/resources/shared.rbi +2 -1
- data/rbi/knockapi/resources/tenants/bulk.rbi +15 -9
- data/rbi/knockapi/resources/tenants.rbi +51 -20
- data/rbi/knockapi/resources/users/bulk.rbi +21 -14
- data/rbi/knockapi/resources/users/feeds.rbi +20 -9
- data/rbi/knockapi/resources/users/guides.rbi +23 -16
- data/rbi/knockapi/resources/users.rbi +160 -91
- data/rbi/knockapi/resources/workflows.rbi +38 -29
- data/sig/knockapi/internal/entries_cursor.rbs +0 -2
- data/sig/knockapi/internal/items_cursor.rbs +0 -2
- data/sig/knockapi/internal/transport/base_client.rbs +16 -1
- data/sig/knockapi/internal/transport/pooled_net_requester.rbs +4 -0
- data/sig/knockapi/internal/type/array_of.rbs +3 -0
- data/sig/knockapi/internal/type/base_model.rbs +13 -5
- data/sig/knockapi/internal/type/base_page.rbs +1 -1
- data/sig/knockapi/internal/type/boolean.rbs +3 -0
- data/sig/knockapi/internal/type/converter.rbs +2 -0
- data/sig/knockapi/internal/type/enum.rbs +3 -0
- data/sig/knockapi/internal/type/file_input.rbs +2 -0
- data/sig/knockapi/internal/type/hash_of.rbs +3 -0
- data/sig/knockapi/internal/type/request_parameters.rbs +3 -1
- data/sig/knockapi/internal/type/union.rbs +3 -0
- data/sig/knockapi/internal/type/unknown.rbs +3 -0
- data/sig/knockapi/internal/util.rbs +27 -0
- data/sig/knockapi/internal.rbs +4 -0
- data/sig/knockapi/models/activity.rbs +0 -2
- data/sig/knockapi/models/audience_add_members_params.rbs +6 -12
- data/sig/knockapi/models/audience_add_members_response.rbs +5 -0
- data/sig/knockapi/models/audience_list_members_params.rbs +0 -2
- data/sig/knockapi/models/audience_list_members_response.rbs +6 -8
- data/sig/knockapi/models/audience_member.rbs +3 -5
- data/sig/knockapi/models/audience_remove_members_params.rbs +6 -14
- data/sig/knockapi/models/audience_remove_members_response.rbs +5 -0
- data/sig/knockapi/models/bulk_operation.rbs +9 -13
- data/sig/knockapi/models/bulk_operation_get_params.rbs +0 -2
- data/sig/knockapi/models/channels/bulk_update_message_status_params.rbs +0 -2
- data/sig/knockapi/models/condition.rbs +4 -6
- data/sig/knockapi/models/identify_user_request.rbs +0 -2
- data/sig/knockapi/models/inline_identify_user_request.rbs +26 -4
- data/sig/knockapi/models/inline_object_request.rbs +0 -2
- data/sig/knockapi/models/inline_tenant_request.rbs +2 -2
- data/sig/knockapi/models/integrations/census_custom_destination_params.rbs +0 -2
- data/sig/knockapi/models/integrations/census_custom_destination_response.rbs +0 -2
- data/sig/knockapi/models/integrations/hightouch_embedded_destination_params.rbs +0 -2
- data/sig/knockapi/models/integrations/hightouch_embedded_destination_response.rbs +0 -2
- data/sig/knockapi/models/message.rbs +15 -23
- data/sig/knockapi/models/message_archive_params.rbs +0 -2
- data/sig/knockapi/models/message_delivery_log.rbs +24 -30
- data/sig/knockapi/models/message_event.rbs +4 -6
- data/sig/knockapi/models/message_get_content_params.rbs +0 -2
- data/sig/knockapi/models/message_get_content_response.rbs +2 -24
- data/sig/knockapi/models/message_get_params.rbs +0 -2
- data/sig/knockapi/models/message_list_activities_params.rbs +0 -2
- data/sig/knockapi/models/message_list_delivery_logs_params.rbs +0 -2
- data/sig/knockapi/models/message_list_events_params.rbs +0 -2
- data/sig/knockapi/models/message_list_params.rbs +30 -24
- data/sig/knockapi/models/message_mark_as_interacted_params.rbs +0 -2
- data/sig/knockapi/models/message_mark_as_read_params.rbs +0 -2
- data/sig/knockapi/models/message_mark_as_seen_params.rbs +0 -2
- data/sig/knockapi/models/message_mark_as_unread_params.rbs +0 -2
- data/sig/knockapi/models/message_mark_as_unseen_params.rbs +0 -2
- data/sig/knockapi/models/message_unarchive_params.rbs +0 -2
- data/sig/knockapi/models/messages/batch_archive_params.rbs +0 -2
- data/sig/knockapi/models/messages/batch_archive_response.rbs +1 -1
- data/sig/knockapi/models/messages/batch_get_content_params.rbs +0 -2
- data/sig/knockapi/models/messages/batch_get_content_response.rbs +2 -24
- data/sig/knockapi/models/messages/batch_mark_as_interacted_params.rbs +0 -2
- data/sig/knockapi/models/messages/batch_mark_as_interacted_response.rbs +1 -2
- data/sig/knockapi/models/messages/batch_mark_as_read_params.rbs +0 -2
- data/sig/knockapi/models/messages/batch_mark_as_read_response.rbs +1 -1
- data/sig/knockapi/models/messages/batch_mark_as_seen_params.rbs +0 -2
- data/sig/knockapi/models/messages/batch_mark_as_seen_response.rbs +1 -1
- data/sig/knockapi/models/messages/batch_mark_as_unread_params.rbs +0 -2
- data/sig/knockapi/models/messages/batch_mark_as_unread_response.rbs +1 -1
- data/sig/knockapi/models/messages/batch_mark_as_unseen_params.rbs +0 -2
- data/sig/knockapi/models/messages/batch_mark_as_unseen_response.rbs +1 -1
- data/sig/knockapi/models/messages/batch_unarchive_params.rbs +0 -2
- data/sig/knockapi/models/messages/batch_unarchive_response.rbs +1 -1
- data/sig/knockapi/models/object.rbs +8 -4
- data/sig/knockapi/models/object_add_subscriptions_params.rbs +0 -2
- data/sig/knockapi/models/object_add_subscriptions_response.rbs +1 -1
- data/sig/knockapi/models/object_delete_params.rbs +0 -2
- data/sig/knockapi/models/object_delete_response.rbs +5 -0
- data/sig/knockapi/models/object_delete_subscriptions_params.rbs +0 -2
- data/sig/knockapi/models/object_delete_subscriptions_response.rbs +1 -1
- data/sig/knockapi/models/object_get_channel_data_params.rbs +0 -2
- data/sig/knockapi/models/object_get_params.rbs +0 -2
- data/sig/knockapi/models/object_get_preferences_params.rbs +0 -2
- data/sig/knockapi/models/object_list_messages_params.rbs +30 -24
- data/sig/knockapi/models/object_list_params.rbs +6 -8
- data/sig/knockapi/models/object_list_preferences_params.rbs +0 -2
- data/sig/knockapi/models/object_list_preferences_response.rbs +1 -1
- data/sig/knockapi/models/object_list_schedules_params.rbs +0 -2
- data/sig/knockapi/models/object_list_subscriptions_params.rbs +11 -15
- data/sig/knockapi/models/object_set_channel_data_params.rbs +0 -2
- data/sig/knockapi/models/object_set_params.rbs +0 -2
- data/sig/knockapi/models/object_set_preferences_params.rbs +0 -2
- data/sig/knockapi/models/object_unset_channel_data_params.rbs +0 -2
- data/sig/knockapi/models/object_unset_channel_data_response.rbs +5 -0
- data/sig/knockapi/models/objects/bulk_add_subscriptions_params.rbs +3 -7
- data/sig/knockapi/models/objects/bulk_delete_params.rbs +0 -2
- data/sig/knockapi/models/objects/bulk_set_params.rbs +3 -5
- data/sig/knockapi/models/page_info.rbs +0 -2
- data/sig/knockapi/models/providers/ms_team_check_auth_params.rbs +0 -2
- data/sig/knockapi/models/providers/ms_team_check_auth_response.rbs +0 -4
- data/sig/knockapi/models/providers/ms_team_list_channels_params.rbs +5 -9
- data/sig/knockapi/models/providers/ms_team_list_channels_response.rbs +0 -4
- data/sig/knockapi/models/providers/ms_team_list_teams_params.rbs +5 -9
- data/sig/knockapi/models/providers/ms_team_list_teams_response.rbs +0 -2
- data/sig/knockapi/models/providers/ms_team_revoke_access_params.rbs +0 -2
- data/sig/knockapi/models/providers/ms_team_revoke_access_response.rbs +0 -2
- data/sig/knockapi/models/providers/slack_check_auth_params.rbs +0 -2
- data/sig/knockapi/models/providers/slack_check_auth_response.rbs +0 -4
- data/sig/knockapi/models/providers/slack_list_channels_params.rbs +5 -9
- data/sig/knockapi/models/providers/slack_list_channels_response.rbs +0 -2
- data/sig/knockapi/models/providers/slack_revoke_access_params.rbs +0 -2
- data/sig/knockapi/models/providers/slack_revoke_access_response.rbs +0 -2
- data/sig/knockapi/models/recipient.rbs +2 -2
- data/sig/knockapi/models/recipient_reference.rbs +2 -4
- data/sig/knockapi/models/recipient_request.rbs +3 -3
- data/sig/knockapi/models/recipients/channel_data.rbs +15 -17
- data/sig/knockapi/models/recipients/channel_data_request.rbs +9 -11
- data/sig/knockapi/models/recipients/discord_channel_data.rbs +9 -17
- data/sig/knockapi/models/recipients/inline_channel_data_request.rbs +14 -1
- data/sig/knockapi/models/recipients/inline_preference_set_request.rbs +1 -1
- data/sig/knockapi/models/recipients/ms_teams_channel_data.rbs +9 -17
- data/sig/knockapi/models/recipients/one_signal_channel_data.rbs +0 -2
- data/sig/knockapi/models/recipients/preference_set.rbs +25 -31
- data/sig/knockapi/models/recipients/preference_set_channel_type_setting.rbs +3 -7
- data/sig/knockapi/models/recipients/preference_set_channel_types.rbs +42 -48
- data/sig/knockapi/models/recipients/preference_set_request.rbs +25 -31
- data/sig/knockapi/models/recipients/push_channel_data.rbs +0 -2
- data/sig/knockapi/models/recipients/slack_channel_data.rbs +9 -17
- data/sig/knockapi/models/recipients/subscription.rbs +3 -5
- data/sig/knockapi/models/schedule.rbs +3 -5
- data/sig/knockapi/models/schedule_create_params.rbs +3 -5
- data/sig/knockapi/models/schedule_create_response.rbs +1 -1
- data/sig/knockapi/models/schedule_delete_params.rbs +0 -2
- data/sig/knockapi/models/schedule_delete_response.rbs +1 -1
- data/sig/knockapi/models/schedule_list_params.rbs +0 -2
- data/sig/knockapi/models/schedule_repeat_rule.rbs +8 -10
- data/sig/knockapi/models/schedule_update_params.rbs +5 -7
- data/sig/knockapi/models/schedule_update_response.rbs +1 -1
- data/sig/knockapi/models/schedules/bulk_create_params.rbs +8 -14
- data/sig/knockapi/models/tenant.rbs +9 -15
- data/sig/knockapi/models/tenant_delete_params.rbs +0 -2
- data/sig/knockapi/models/tenant_delete_response.rbs +5 -0
- data/sig/knockapi/models/tenant_get_params.rbs +0 -2
- data/sig/knockapi/models/tenant_list_params.rbs +0 -2
- data/sig/knockapi/models/tenant_request.rbs +13 -19
- data/sig/knockapi/models/tenant_set_params.rbs +13 -19
- data/sig/knockapi/models/tenants/bulk_delete_params.rbs +0 -2
- data/sig/knockapi/models/tenants/bulk_set_params.rbs +0 -2
- data/sig/knockapi/models/user.rbs +0 -2
- data/sig/knockapi/models/user_delete_params.rbs +0 -2
- data/sig/knockapi/models/user_delete_response.rbs +5 -0
- data/sig/knockapi/models/user_get_channel_data_params.rbs +0 -2
- data/sig/knockapi/models/user_get_params.rbs +0 -2
- data/sig/knockapi/models/user_get_preferences_params.rbs +0 -2
- data/sig/knockapi/models/user_list_messages_params.rbs +30 -24
- data/sig/knockapi/models/user_list_params.rbs +6 -8
- data/sig/knockapi/models/user_list_preferences_params.rbs +0 -2
- data/sig/knockapi/models/user_list_preferences_response.rbs +1 -1
- data/sig/knockapi/models/user_list_schedules_params.rbs +0 -2
- data/sig/knockapi/models/user_list_subscriptions_params.rbs +6 -8
- data/sig/knockapi/models/user_merge_params.rbs +0 -2
- data/sig/knockapi/models/user_set_channel_data_params.rbs +0 -2
- data/sig/knockapi/models/user_set_preferences_params.rbs +0 -2
- data/sig/knockapi/models/user_unset_channel_data_params.rbs +0 -2
- data/sig/knockapi/models/user_unset_channel_data_response.rbs +5 -0
- data/sig/knockapi/models/user_update_params.rbs +0 -2
- data/sig/knockapi/models/users/bulk_delete_params.rbs +0 -2
- data/sig/knockapi/models/users/bulk_identify_params.rbs +3 -5
- data/sig/knockapi/models/users/bulk_set_preferences_params.rbs +3 -5
- data/sig/knockapi/models/users/feed_get_settings_params.rbs +0 -2
- data/sig/knockapi/models/users/feed_get_settings_response.rbs +0 -4
- data/sig/knockapi/models/users/feed_list_items_params.rbs +0 -2
- data/sig/knockapi/models/users/feed_list_items_response.rbs +4 -14
- data/sig/knockapi/models/users/guide_get_channel_params.rbs +0 -2
- data/sig/knockapi/models/users/guide_get_channel_response.rbs +0 -6
- data/sig/knockapi/models/users/guide_mark_message_as_archived_params.rbs +0 -2
- data/sig/knockapi/models/users/guide_mark_message_as_archived_response.rbs +0 -2
- data/sig/knockapi/models/users/guide_mark_message_as_interacted_params.rbs +0 -2
- data/sig/knockapi/models/users/guide_mark_message_as_interacted_response.rbs +0 -2
- data/sig/knockapi/models/users/guide_mark_message_as_seen_params.rbs +0 -2
- data/sig/knockapi/models/users/guide_mark_message_as_seen_response.rbs +0 -2
- data/sig/knockapi/models/workflow_cancel_params.rbs +0 -2
- data/sig/knockapi/models/workflow_cancel_response.rbs +5 -0
- data/sig/knockapi/models/workflow_trigger_params.rbs +0 -2
- data/sig/knockapi/models/workflow_trigger_response.rbs +0 -2
- data/sig/knockapi/models.rbs +173 -0
- data/sig/knockapi/request_options.rbs +1 -1
- data/sig/knockapi/resources/audiences.rbs +2 -2
- data/sig/knockapi/resources/bulk_operations.rbs +1 -1
- data/sig/knockapi/resources/channels/bulk.rbs +1 -1
- data/sig/knockapi/resources/messages.rbs +15 -17
- data/sig/knockapi/resources/objects/bulk.rbs +5 -5
- data/sig/knockapi/resources/objects.rbs +19 -19
- data/sig/knockapi/resources/providers/ms_teams.rbs +2 -2
- data/sig/knockapi/resources/providers/slack.rbs +1 -1
- data/sig/knockapi/resources/schedules/bulk.rbs +2 -2
- data/sig/knockapi/resources/schedules.rbs +3 -3
- data/sig/knockapi/resources/tenants/bulk.rbs +2 -2
- data/sig/knockapi/resources/tenants.rbs +4 -4
- data/sig/knockapi/resources/users/bulk.rbs +5 -5
- data/sig/knockapi/resources/users.rbs +19 -19
- metadata +29 -8
- data/lib/knockapi/models/messages/activity_list_params.rb +0 -48
- data/lib/knockapi/resources/messages/activities.rb +0 -47
- data/rbi/knockapi/models/messages/activity_list_params.rbi +0 -75
- data/rbi/knockapi/resources/messages/activities.rbi +0 -38
- data/sig/knockapi/models/messages/activity_list_params.rbs +0 -45
- data/sig/knockapi/resources/messages/activities.rbs +0 -18
@@ -6,6 +6,7 @@ module Knockapi
|
|
6
6
|
# @abstract
|
7
7
|
class BaseModel
|
8
8
|
extend Knockapi::Internal::Type::Converter
|
9
|
+
extend Knockapi::Internal::Util::SorbetRuntimeSupport
|
9
10
|
|
10
11
|
class << self
|
11
12
|
# @api private
|
@@ -13,11 +14,17 @@ module Knockapi
|
|
13
14
|
# Assumes superclass fields are totally defined before fields are accessed /
|
14
15
|
# defined on subclasses.
|
15
16
|
#
|
16
|
-
# @
|
17
|
-
def
|
18
|
-
|
17
|
+
# @param child [Class<Knockapi::Internal::Type::BaseModel>]
|
18
|
+
def inherited(child)
|
19
|
+
super
|
20
|
+
child.known_fields.replace(known_fields.dup)
|
19
21
|
end
|
20
22
|
|
23
|
+
# @api private
|
24
|
+
#
|
25
|
+
# @return [Hash{Symbol=>Hash{Symbol=>Object}}]
|
26
|
+
def known_fields = @known_fields ||= {}
|
27
|
+
|
21
28
|
# @api private
|
22
29
|
#
|
23
30
|
# @return [Hash{Symbol=>Hash{Symbol=>Object}}]
|
@@ -206,7 +213,7 @@ module Knockapi
|
|
206
213
|
#
|
207
214
|
# @option state [Integer] :branched
|
208
215
|
#
|
209
|
-
# @return [
|
216
|
+
# @return [self, Object]
|
210
217
|
def coerce(value, state:)
|
211
218
|
exactness = state.fetch(:exactness)
|
212
219
|
|
@@ -265,7 +272,7 @@ module Knockapi
|
|
265
272
|
|
266
273
|
# @api private
|
267
274
|
#
|
268
|
-
# @param value [
|
275
|
+
# @param value [self, Object]
|
269
276
|
#
|
270
277
|
# @param state [Hash{Symbol=>Object}] .
|
271
278
|
#
|
@@ -304,6 +311,46 @@ module Knockapi
|
|
304
311
|
|
305
312
|
acc
|
306
313
|
end
|
314
|
+
|
315
|
+
# @api private
|
316
|
+
#
|
317
|
+
# @return [Object]
|
318
|
+
def to_sorbet_type
|
319
|
+
self
|
320
|
+
end
|
321
|
+
end
|
322
|
+
|
323
|
+
class << self
|
324
|
+
# @api private
|
325
|
+
#
|
326
|
+
# @param model [Knockapi::Internal::Type::BaseModel]
|
327
|
+
# @param convert [Boolean]
|
328
|
+
#
|
329
|
+
# @return [Hash{Symbol=>Object}]
|
330
|
+
def recursively_to_h(model, convert:)
|
331
|
+
rec = ->(x) do
|
332
|
+
case x
|
333
|
+
in Knockapi::Internal::Type::BaseModel
|
334
|
+
if convert
|
335
|
+
fields = x.class.known_fields
|
336
|
+
x.to_h.to_h do |key, val|
|
337
|
+
[key, rec.call(fields.key?(key) ? x.public_send(key) : val)]
|
338
|
+
rescue Knockapi::Errors::ConversionError
|
339
|
+
[key, rec.call(val)]
|
340
|
+
end
|
341
|
+
else
|
342
|
+
rec.call(x.to_h)
|
343
|
+
end
|
344
|
+
in Hash
|
345
|
+
x.transform_values(&rec)
|
346
|
+
in Array
|
347
|
+
x.map(&rec)
|
348
|
+
else
|
349
|
+
x
|
350
|
+
end
|
351
|
+
end
|
352
|
+
rec.call(model)
|
353
|
+
end
|
307
354
|
end
|
308
355
|
|
309
356
|
# @api public
|
@@ -342,9 +389,25 @@ module Knockapi
|
|
342
389
|
|
343
390
|
alias_method :to_hash, :to_h
|
344
391
|
|
392
|
+
# @api public
|
393
|
+
#
|
394
|
+
# In addition to the behaviour of `#to_h`, this method will recursively call
|
395
|
+
# `#to_h` on nested models.
|
396
|
+
#
|
397
|
+
# @return [Hash{Symbol=>Object}]
|
398
|
+
def deep_to_h = self.class.recursively_to_h(@data, convert: false)
|
399
|
+
|
345
400
|
# @param keys [Array<Symbol>, nil]
|
346
401
|
#
|
347
402
|
# @return [Hash{Symbol=>Object}]
|
403
|
+
#
|
404
|
+
# @example
|
405
|
+
# # `condition` is a `Knockapi::Condition`
|
406
|
+
# condition => {
|
407
|
+
# argument: argument,
|
408
|
+
# operator: operator,
|
409
|
+
# variable: variable
|
410
|
+
# }
|
348
411
|
def deconstruct_keys(keys)
|
349
412
|
(keys || self.class.known_fields.keys)
|
350
413
|
.filter_map do |k|
|
@@ -357,29 +420,6 @@ module Knockapi
|
|
357
420
|
.to_h
|
358
421
|
end
|
359
422
|
|
360
|
-
class << self
|
361
|
-
# @api private
|
362
|
-
#
|
363
|
-
# @param model [Knockapi::Internal::Type::BaseModel]
|
364
|
-
#
|
365
|
-
# @return [Hash{Symbol=>Object}]
|
366
|
-
def walk(model)
|
367
|
-
walk = ->(x) do
|
368
|
-
case x
|
369
|
-
in Knockapi::Internal::Type::BaseModel
|
370
|
-
walk.call(x.to_h)
|
371
|
-
in Hash
|
372
|
-
x.transform_values(&walk)
|
373
|
-
in Array
|
374
|
-
x.map(&walk)
|
375
|
-
else
|
376
|
-
x
|
377
|
-
end
|
378
|
-
end
|
379
|
-
walk.call(model)
|
380
|
-
end
|
381
|
-
end
|
382
|
-
|
383
423
|
# @api public
|
384
424
|
#
|
385
425
|
# @param a [Object]
|
@@ -397,15 +437,7 @@ module Knockapi
|
|
397
437
|
# Create a new instance of a model.
|
398
438
|
#
|
399
439
|
# @param data [Hash{Symbol=>Object}, self]
|
400
|
-
def initialize(data = {})
|
401
|
-
case Knockapi::Internal::Util.coerce_hash(data)
|
402
|
-
in Hash => coerced
|
403
|
-
@data = coerced
|
404
|
-
else
|
405
|
-
message = "Expected a #{Hash} or #{Knockapi::Internal::Type::BaseModel}, got #{data.inspect}"
|
406
|
-
raise ArgumentError.new(message)
|
407
|
-
end
|
408
|
-
end
|
440
|
+
def initialize(data = {}) = (@data = Knockapi::Internal::Util.coerce_hash!(data).to_h)
|
409
441
|
|
410
442
|
class << self
|
411
443
|
# @api private
|
@@ -433,12 +465,19 @@ module Knockapi
|
|
433
465
|
# @api public
|
434
466
|
#
|
435
467
|
# @return [String]
|
436
|
-
def to_s =
|
468
|
+
def to_s = deep_to_h.to_s
|
437
469
|
|
438
470
|
# @api private
|
439
471
|
#
|
440
472
|
# @return [String]
|
441
|
-
def inspect
|
473
|
+
def inspect
|
474
|
+
converted = self.class.recursively_to_h(self, convert: true)
|
475
|
+
"#<#{self.class}:0x#{object_id.to_s(16)} #{converted}>"
|
476
|
+
end
|
477
|
+
|
478
|
+
define_sorbet_constant!(:KnownField) do
|
479
|
+
T.type_alias { {mode: T.nilable(Symbol), required: T::Boolean, nilable: T::Boolean} }
|
480
|
+
end
|
442
481
|
end
|
443
482
|
end
|
444
483
|
end
|
@@ -10,6 +10,7 @@ module Knockapi
|
|
10
10
|
# Ruby has no Boolean class; this is something for models to refer to.
|
11
11
|
class Boolean
|
12
12
|
extend Knockapi::Internal::Type::Converter
|
13
|
+
extend Knockapi::Internal::Util::SorbetRuntimeSupport
|
13
14
|
|
14
15
|
private_class_method :new
|
15
16
|
|
@@ -56,6 +57,13 @@ module Knockapi
|
|
56
57
|
# @option state [Boolean] :can_retry
|
57
58
|
#
|
58
59
|
# @return [Boolean, Object]
|
60
|
+
|
61
|
+
# @api private
|
62
|
+
#
|
63
|
+
# @return [Object]
|
64
|
+
def to_sorbet_type
|
65
|
+
T::Boolean
|
66
|
+
end
|
59
67
|
end
|
60
68
|
end
|
61
69
|
end
|
@@ -5,6 +5,8 @@ module Knockapi
|
|
5
5
|
module Type
|
6
6
|
# @api private
|
7
7
|
module Converter
|
8
|
+
extend Knockapi::Internal::Util::SorbetRuntimeSupport
|
9
|
+
|
8
10
|
# rubocop:disable Lint/UnusedMethodArgument
|
9
11
|
|
10
12
|
# @api private
|
@@ -268,6 +270,22 @@ module Knockapi
|
|
268
270
|
end
|
269
271
|
end
|
270
272
|
end
|
273
|
+
|
274
|
+
define_sorbet_constant!(:Input) do
|
275
|
+
T.type_alias { T.any(Knockapi::Internal::Type::Converter, T::Class[T.anything]) }
|
276
|
+
end
|
277
|
+
define_sorbet_constant!(:CoerceState) do
|
278
|
+
T.type_alias do
|
279
|
+
{
|
280
|
+
strictness: T.any(T::Boolean, Symbol),
|
281
|
+
exactness: {yes: Integer, no: Integer, maybe: Integer},
|
282
|
+
branched: Integer
|
283
|
+
}
|
284
|
+
end
|
285
|
+
end
|
286
|
+
define_sorbet_constant!(:DumpState) do
|
287
|
+
T.type_alias { {can_retry: T::Boolean} }
|
288
|
+
end
|
271
289
|
end
|
272
290
|
end
|
273
291
|
end
|
@@ -17,6 +17,7 @@ module Knockapi
|
|
17
17
|
# values safely.
|
18
18
|
module Enum
|
19
19
|
include Knockapi::Internal::Type::Converter
|
20
|
+
include Knockapi::Internal::Util::SorbetRuntimeSupport
|
20
21
|
|
21
22
|
# All of the valid Symbol values for this enum.
|
22
23
|
#
|
@@ -86,6 +87,18 @@ module Knockapi
|
|
86
87
|
#
|
87
88
|
# @return [Symbol, Object]
|
88
89
|
|
90
|
+
# @api private
|
91
|
+
#
|
92
|
+
# @return [Object]
|
93
|
+
def to_sorbet_type
|
94
|
+
case values
|
95
|
+
in []
|
96
|
+
T.noreturn
|
97
|
+
in [value, *_]
|
98
|
+
T.all(Knockapi::Internal::Util::SorbetRuntimeSupport.to_sorbet_type(value), self)
|
99
|
+
end
|
100
|
+
end
|
101
|
+
|
89
102
|
# @api private
|
90
103
|
#
|
91
104
|
# @param depth [Integer]
|
@@ -12,6 +12,7 @@ module Knockapi
|
|
12
12
|
# Hash of items of a given type.
|
13
13
|
class HashOf
|
14
14
|
include Knockapi::Internal::Type::Converter
|
15
|
+
include Knockapi::Internal::Util::SorbetRuntimeSupport
|
15
16
|
|
16
17
|
private_class_method :new
|
17
18
|
|
@@ -29,7 +30,7 @@ module Knockapi
|
|
29
30
|
#
|
30
31
|
# @option spec [Boolean] :"nil?"
|
31
32
|
#
|
32
|
-
# @return [
|
33
|
+
# @return [self]
|
33
34
|
def self.[](...) = new(...)
|
34
35
|
|
35
36
|
# @api public
|
@@ -130,6 +131,13 @@ module Knockapi
|
|
130
131
|
end
|
131
132
|
end
|
132
133
|
|
134
|
+
# @api private
|
135
|
+
#
|
136
|
+
# @return [Object]
|
137
|
+
def to_sorbet_type
|
138
|
+
T::Hash[Knockapi::Internal::Util::SorbetRuntimeSupport.to_sorbet_type(item_type)]
|
139
|
+
end
|
140
|
+
|
133
141
|
# @api private
|
134
142
|
#
|
135
143
|
# @return [generic<Elem>]
|
@@ -5,10 +5,10 @@ module Knockapi
|
|
5
5
|
module Type
|
6
6
|
# @api private
|
7
7
|
module RequestParameters
|
8
|
-
# @!
|
9
|
-
#
|
10
|
-
#
|
11
|
-
#
|
8
|
+
# @!attribute request_options
|
9
|
+
# Options to specify HTTP behaviour for this request.
|
10
|
+
#
|
11
|
+
# @return [Knockapi::RequestOptions, Hash{Symbol=>Object}]
|
12
12
|
|
13
13
|
# @param mod [Module]
|
14
14
|
def self.included(mod)
|
@@ -28,14 +28,8 @@ module Knockapi
|
|
28
28
|
state = {can_retry: true}
|
29
29
|
case (dumped = dump(params, state: state))
|
30
30
|
in Hash
|
31
|
-
options = Knockapi::Internal::Util.coerce_hash(dumped[:request_options])
|
32
|
-
request_options =
|
33
|
-
case [options, state.fetch(:can_retry)]
|
34
|
-
in [Hash | nil, false]
|
35
|
-
{**options.to_h, max_retries: 0}
|
36
|
-
else
|
37
|
-
options
|
38
|
-
end
|
31
|
+
options = Knockapi::Internal::Util.coerce_hash!(dumped[:request_options]).to_h
|
32
|
+
request_options = state.fetch(:can_retry) ? options : {**options, max_retries: 0}
|
39
33
|
[dumped.except(:request_options), request_options]
|
40
34
|
else
|
41
35
|
[dumped, nil]
|
@@ -6,17 +6,18 @@ module Knockapi
|
|
6
6
|
# @api private
|
7
7
|
#
|
8
8
|
# @example
|
9
|
-
# # `recipient` is a `Knockapi::
|
9
|
+
# # `recipient` is a `Knockapi::Recipient`
|
10
10
|
# case recipient
|
11
|
-
# when Knockapi::
|
11
|
+
# when Knockapi::User
|
12
12
|
# puts(recipient.id)
|
13
|
-
# when Knockapi::
|
13
|
+
# when Knockapi::Object
|
14
14
|
# puts(recipient._typename)
|
15
15
|
# else
|
16
16
|
# puts(recipient)
|
17
17
|
# end
|
18
18
|
module Union
|
19
19
|
include Knockapi::Internal::Type::Converter
|
20
|
+
include Knockapi::Internal::Util::SorbetRuntimeSupport
|
20
21
|
|
21
22
|
# @api private
|
22
23
|
#
|
@@ -201,6 +202,18 @@ module Knockapi
|
|
201
202
|
super
|
202
203
|
end
|
203
204
|
|
205
|
+
# @api private
|
206
|
+
#
|
207
|
+
# @return [Object]
|
208
|
+
def to_sorbet_type
|
209
|
+
case (v = variants)
|
210
|
+
in []
|
211
|
+
T.noreturn
|
212
|
+
else
|
213
|
+
T.any(*v.map { Knockapi::Internal::Util::SorbetRuntimeSupport.to_sorbet_type(_1) })
|
214
|
+
end
|
215
|
+
end
|
216
|
+
|
204
217
|
# rubocop:enable Style/CaseEquality
|
205
218
|
# rubocop:enable Style/HashEachMethods
|
206
219
|
|
@@ -10,6 +10,7 @@ module Knockapi
|
|
10
10
|
# When we don't know what to expect for the value.
|
11
11
|
class Unknown
|
12
12
|
extend Knockapi::Internal::Type::Converter
|
13
|
+
extend Knockapi::Internal::Util::SorbetRuntimeSupport
|
13
14
|
|
14
15
|
# rubocop:disable Lint/UnusedMethodArgument
|
15
16
|
|
@@ -58,6 +59,13 @@ module Knockapi
|
|
58
59
|
# @option state [Boolean] :can_retry
|
59
60
|
#
|
60
61
|
# @return [Object]
|
62
|
+
|
63
|
+
# @api private
|
64
|
+
#
|
65
|
+
# @return [Object]
|
66
|
+
def to_sorbet_type
|
67
|
+
T.anything
|
68
|
+
end
|
61
69
|
end
|
62
70
|
|
63
71
|
# rubocop:enable Lint/UnusedMethodArgument
|
@@ -9,6 +9,23 @@ module Knockapi
|
|
9
9
|
# @return [Float]
|
10
10
|
def self.monotonic_secs = Process.clock_gettime(Process::CLOCK_MONOTONIC)
|
11
11
|
|
12
|
+
# @api private
|
13
|
+
#
|
14
|
+
# @param ns [Module, Class]
|
15
|
+
#
|
16
|
+
# @return [Enumerable<Module, Class>]
|
17
|
+
def self.walk_namespaces(ns)
|
18
|
+
ns.constants(false).lazy.flat_map do
|
19
|
+
case (c = ns.const_get(_1, false))
|
20
|
+
in Module | Class
|
21
|
+
walk_namespaces(c)
|
22
|
+
else
|
23
|
+
[]
|
24
|
+
end
|
25
|
+
end
|
26
|
+
.chain([ns])
|
27
|
+
end
|
28
|
+
|
12
29
|
class << self
|
13
30
|
# @api private
|
14
31
|
#
|
@@ -128,6 +145,22 @@ module Knockapi
|
|
128
145
|
input.respond_to?(:to_h) ? input.to_h : input
|
129
146
|
end
|
130
147
|
end
|
148
|
+
|
149
|
+
# @api private
|
150
|
+
#
|
151
|
+
# @param input [Object]
|
152
|
+
#
|
153
|
+
# @raise [ArgumentError]
|
154
|
+
# @return [Hash{Object=>Object}, nil]
|
155
|
+
def coerce_hash!(input)
|
156
|
+
case coerce_hash(input)
|
157
|
+
in Hash | nil => coerced
|
158
|
+
coerced
|
159
|
+
else
|
160
|
+
message = "Expected a #{Hash} or #{Knockapi::Internal::Type::BaseModel}, got #{data.inspect}"
|
161
|
+
raise ArgumentError.new(message)
|
162
|
+
end
|
163
|
+
end
|
131
164
|
end
|
132
165
|
|
133
166
|
class << self
|
@@ -454,7 +487,7 @@ module Knockapi
|
|
454
487
|
# @type [Regexp]
|
455
488
|
JSON_CONTENT = %r{^application/(?:vnd(?:\.[^.]+)*\+)?json(?!l)}
|
456
489
|
# @type [Regexp]
|
457
|
-
JSONL_CONTENT = %r{^application/(?:x-)?jsonl}
|
490
|
+
JSONL_CONTENT = %r{^application/(:?x-(?:n|l)djson)|(:?(?:x-)?jsonl)}
|
458
491
|
|
459
492
|
class << self
|
460
493
|
# @api private
|
@@ -519,7 +552,7 @@ module Knockapi
|
|
519
552
|
filename = ERB::Util.url_encode(val.filename)
|
520
553
|
y << "; filename=\"#{filename}\""
|
521
554
|
in Pathname | IO
|
522
|
-
filename = ERB::Util.url_encode(File.basename(val.to_path))
|
555
|
+
filename = ERB::Util.url_encode(::File.basename(val.to_path))
|
523
556
|
y << "; filename=\"#{filename}\""
|
524
557
|
else
|
525
558
|
end
|
@@ -785,6 +818,90 @@ module Knockapi
|
|
785
818
|
end
|
786
819
|
end
|
787
820
|
end
|
821
|
+
|
822
|
+
# @api private
|
823
|
+
module SorbetRuntimeSupport
|
824
|
+
class MissingSorbetRuntimeError < ::RuntimeError
|
825
|
+
end
|
826
|
+
|
827
|
+
# @api private
|
828
|
+
#
|
829
|
+
# @return [Hash{Symbol=>Object}]
|
830
|
+
private def sorbet_runtime_constants = @sorbet_runtime_constants ||= {}
|
831
|
+
|
832
|
+
# @api private
|
833
|
+
#
|
834
|
+
# @param name [Symbol]
|
835
|
+
def const_missing(name)
|
836
|
+
super unless sorbet_runtime_constants.key?(name)
|
837
|
+
|
838
|
+
unless Object.const_defined?(:T)
|
839
|
+
message = "Trying to access a Sorbet constant #{name.inspect} without `sorbet-runtime`."
|
840
|
+
raise MissingSorbetRuntimeError.new(message)
|
841
|
+
end
|
842
|
+
|
843
|
+
sorbet_runtime_constants.fetch(name).call
|
844
|
+
end
|
845
|
+
|
846
|
+
# @api private
|
847
|
+
#
|
848
|
+
# @param name [Symbol]
|
849
|
+
#
|
850
|
+
# @return [Boolean]
|
851
|
+
def sorbet_constant_defined?(name) = sorbet_runtime_constants.key?(name)
|
852
|
+
|
853
|
+
# @api private
|
854
|
+
#
|
855
|
+
# @param name [Symbol]
|
856
|
+
# @param blk [Proc]
|
857
|
+
def define_sorbet_constant!(name, &blk) = sorbet_runtime_constants.store(name, blk)
|
858
|
+
|
859
|
+
# @api private
|
860
|
+
#
|
861
|
+
# @return [Object]
|
862
|
+
def to_sorbet_type = raise NotImplementedError
|
863
|
+
|
864
|
+
class << self
|
865
|
+
# @api private
|
866
|
+
#
|
867
|
+
# @param type [Knockapi::Internal::Util::SorbetRuntimeSupport, Object]
|
868
|
+
#
|
869
|
+
# @return [Object]
|
870
|
+
def to_sorbet_type(type)
|
871
|
+
case type
|
872
|
+
in Knockapi::Internal::Util::SorbetRuntimeSupport
|
873
|
+
type.to_sorbet_type
|
874
|
+
else
|
875
|
+
type
|
876
|
+
end
|
877
|
+
end
|
878
|
+
end
|
879
|
+
end
|
880
|
+
|
881
|
+
extend Knockapi::Internal::Util::SorbetRuntimeSupport
|
882
|
+
|
883
|
+
define_sorbet_constant!(:ParsedUri) do
|
884
|
+
T.type_alias do
|
885
|
+
{
|
886
|
+
scheme: T.nilable(String),
|
887
|
+
host: T.nilable(String),
|
888
|
+
port: T.nilable(Integer),
|
889
|
+
path: T.nilable(String),
|
890
|
+
query: T::Hash[String, T::Array[String]]
|
891
|
+
}
|
892
|
+
end
|
893
|
+
end
|
894
|
+
|
895
|
+
define_sorbet_constant!(:ServerSentEvent) do
|
896
|
+
T.type_alias do
|
897
|
+
{
|
898
|
+
event: T.nilable(String),
|
899
|
+
data: T.nilable(String),
|
900
|
+
id: T.nilable(String),
|
901
|
+
retry: T.nilable(Integer)
|
902
|
+
}
|
903
|
+
end
|
904
|
+
end
|
788
905
|
end
|
789
906
|
end
|
790
907
|
end
|
data/lib/knockapi/internal.rb
CHANGED
@@ -2,10 +2,19 @@
|
|
2
2
|
|
3
3
|
module Knockapi
|
4
4
|
module Internal
|
5
|
+
extend Knockapi::Internal::Util::SorbetRuntimeSupport
|
6
|
+
|
5
7
|
OMIT =
|
6
8
|
Object.new.tap do
|
7
9
|
_1.define_singleton_method(:inspect) { "#<#{Knockapi::Internal}::OMIT>" }
|
8
10
|
end
|
9
11
|
.freeze
|
12
|
+
|
13
|
+
define_sorbet_constant!(:AnyHash) do
|
14
|
+
T.type_alias { T::Hash[Symbol, T.anything] }
|
15
|
+
end
|
16
|
+
define_sorbet_constant!(:FileInput) do
|
17
|
+
T.type_alias { T.any(Pathname, StringIO, IO, String, Knockapi::FilePart) }
|
18
|
+
end
|
10
19
|
end
|
11
20
|
end
|
@@ -19,8 +19,8 @@ module Knockapi
|
|
19
19
|
# @!attribute actor
|
20
20
|
# A recipient of a notification, which is either a user or an object.
|
21
21
|
#
|
22
|
-
# @return [Knockapi::
|
23
|
-
optional :actor, union: -> { Knockapi::
|
22
|
+
# @return [Knockapi::User, Knockapi::Object, nil]
|
23
|
+
optional :actor, union: -> { Knockapi::Recipient }, nil?: true
|
24
24
|
|
25
25
|
# @!attribute data
|
26
26
|
# The workflow trigger `data` payload associated with the activity.
|
@@ -37,8 +37,8 @@ module Knockapi
|
|
37
37
|
# @!attribute recipient
|
38
38
|
# A recipient of a notification, which is either a user or an object.
|
39
39
|
#
|
40
|
-
# @return [Knockapi::
|
41
|
-
optional :recipient, union: -> { Knockapi::
|
40
|
+
# @return [Knockapi::User, Knockapi::Object, nil]
|
41
|
+
optional :recipient, union: -> { Knockapi::Recipient }
|
42
42
|
|
43
43
|
# @!attribute updated_at
|
44
44
|
# Timestamp when the activity was last updated.
|
@@ -56,13 +56,13 @@ module Knockapi
|
|
56
56
|
#
|
57
57
|
# @param _typename [String] The typename of the schema.
|
58
58
|
#
|
59
|
-
# @param actor [Knockapi::
|
59
|
+
# @param actor [Knockapi::User, Knockapi::Object, nil] A recipient of a notification, which is either a user or an object.
|
60
60
|
#
|
61
61
|
# @param data [Hash{Symbol=>Object}, nil] The workflow trigger `data` payload associated with the activity.
|
62
62
|
#
|
63
63
|
# @param inserted_at [Time] Timestamp when the activity was created.
|
64
64
|
#
|
65
|
-
# @param recipient [Knockapi::
|
65
|
+
# @param recipient [Knockapi::User, Knockapi::Object] A recipient of a notification, which is either a user or an object.
|
66
66
|
#
|
67
67
|
# @param updated_at [Time] Timestamp when the activity was last updated.
|
68
68
|
end
|
@@ -10,20 +10,20 @@ module Knockapi
|
|
10
10
|
# @!attribute members
|
11
11
|
# A list of audience members to add.
|
12
12
|
#
|
13
|
-
# @return [Array<Knockapi::
|
14
|
-
required :members,
|
15
|
-
-> { Knockapi::Internal::Type::ArrayOf[Knockapi::Models::AudienceAddMembersParams::Member] }
|
13
|
+
# @return [Array<Knockapi::AudienceAddMembersParams::Member>]
|
14
|
+
required :members, -> { Knockapi::Internal::Type::ArrayOf[Knockapi::AudienceAddMembersParams::Member] }
|
16
15
|
|
17
16
|
# @!method initialize(members:, request_options: {})
|
18
|
-
# @param members [Array<Knockapi::
|
17
|
+
# @param members [Array<Knockapi::AudienceAddMembersParams::Member>] A list of audience members to add.
|
19
18
|
#
|
20
19
|
# @param request_options [Knockapi::RequestOptions, Hash{Symbol=>Object}]
|
21
20
|
|
22
21
|
class Member < Knockapi::Internal::Type::BaseModel
|
23
22
|
# @!attribute user
|
23
|
+
# An object containing the user's ID.
|
24
24
|
#
|
25
|
-
# @return [Knockapi::
|
26
|
-
required :user, -> { Knockapi::
|
25
|
+
# @return [Knockapi::AudienceAddMembersParams::Member::User]
|
26
|
+
required :user, -> { Knockapi::AudienceAddMembersParams::Member::User }
|
27
27
|
|
28
28
|
# @!attribute tenant
|
29
29
|
# The unique identifier for the tenant.
|
@@ -34,11 +34,11 @@ module Knockapi
|
|
34
34
|
# @!method initialize(user:, tenant: nil)
|
35
35
|
# An audience member.
|
36
36
|
#
|
37
|
-
# @param user [Knockapi::
|
37
|
+
# @param user [Knockapi::AudienceAddMembersParams::Member::User] An object containing the user's ID.
|
38
38
|
#
|
39
39
|
# @param tenant [String, nil] The unique identifier for the tenant.
|
40
40
|
|
41
|
-
# @see Knockapi::
|
41
|
+
# @see Knockapi::AudienceAddMembersParams::Member#user
|
42
42
|
class User < Knockapi::Internal::Type::BaseModel
|
43
43
|
# @!attribute id
|
44
44
|
# The ID for the user that you set when identifying them in Knock.
|
@@ -47,6 +47,8 @@ module Knockapi
|
|
47
47
|
optional :id, String
|
48
48
|
|
49
49
|
# @!method initialize(id: nil)
|
50
|
+
# An object containing the user's ID.
|
51
|
+
#
|
50
52
|
# @param id [String] The ID for the user that you set when identifying them in Knock.
|
51
53
|
end
|
52
54
|
end
|