notiflows 0.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +7 -0
- data/README.md +305 -0
- data/SECURITY.md +27 -0
- data/lib/notiflows/client.rb +117 -0
- data/lib/notiflows/errors.rb +228 -0
- data/lib/notiflows/file_part.rb +58 -0
- data/lib/notiflows/internal/cursor_page.rb +100 -0
- data/lib/notiflows/internal/transport/base_client.rb +573 -0
- data/lib/notiflows/internal/transport/pooled_net_requester.rb +210 -0
- data/lib/notiflows/internal/type/array_of.rb +168 -0
- data/lib/notiflows/internal/type/base_model.rb +531 -0
- data/lib/notiflows/internal/type/base_page.rb +55 -0
- data/lib/notiflows/internal/type/boolean.rb +77 -0
- data/lib/notiflows/internal/type/converter.rb +327 -0
- data/lib/notiflows/internal/type/enum.rb +131 -0
- data/lib/notiflows/internal/type/file_input.rb +111 -0
- data/lib/notiflows/internal/type/hash_of.rb +188 -0
- data/lib/notiflows/internal/type/request_parameters.rb +42 -0
- data/lib/notiflows/internal/type/union.rb +237 -0
- data/lib/notiflows/internal/type/unknown.rb +81 -0
- data/lib/notiflows/internal/util.rb +920 -0
- data/lib/notiflows/internal.rb +20 -0
- data/lib/notiflows/models/delivery.rb +189 -0
- data/lib/notiflows/models/delivery_list_params.rb +78 -0
- data/lib/notiflows/models/delivery_retrieve_params.rb +14 -0
- data/lib/notiflows/models/notification.rb +151 -0
- data/lib/notiflows/models/notification_list_deliveries_params.rb +78 -0
- data/lib/notiflows/models/notification_list_params.rb +70 -0
- data/lib/notiflows/models/notification_retrieve_params.rb +14 -0
- data/lib/notiflows/models/notiflow_run_params.rb +197 -0
- data/lib/notiflows/models/notiflow_run_response.rb +19 -0
- data/lib/notiflows/models/topic.rb +27 -0
- data/lib/notiflows/models/topic_delete_params.rb +14 -0
- data/lib/notiflows/models/topic_list_params.rb +38 -0
- data/lib/notiflows/models/topic_retrieve_params.rb +14 -0
- data/lib/notiflows/models/topics/bulk_operation_response.rb +51 -0
- data/lib/notiflows/models/topics/bulk_subscribe_request.rb +20 -0
- data/lib/notiflows/models/topics/subscription_list_params.rb +56 -0
- data/lib/notiflows/models/topics/subscription_subscribe_bulk_params.rb +16 -0
- data/lib/notiflows/models/topics/subscription_unsubscribe_bulk_params.rb +16 -0
- data/lib/notiflows/models/user.rb +111 -0
- data/lib/notiflows/models/user_delete_params.rb +14 -0
- data/lib/notiflows/models/user_list_params.rb +54 -0
- data/lib/notiflows/models/user_retrieve_params.rb +14 -0
- data/lib/notiflows/models/user_upsert_params.rb +122 -0
- data/lib/notiflows/models/users/channel_setting_delete_params.rb +22 -0
- data/lib/notiflows/models/users/channel_setting_retrieve_params.rb +22 -0
- data/lib/notiflows/models/users/channel_setting_update_params.rb +45 -0
- data/lib/notiflows/models/users/channel_settings.rb +91 -0
- data/lib/notiflows/models/users/delivery_list_params.rb +80 -0
- data/lib/notiflows/models/users/delivery_retrieve_params.rb +22 -0
- data/lib/notiflows/models/users/mobile_push_settings.rb +20 -0
- data/lib/notiflows/models/users/notification_list_params.rb +72 -0
- data/lib/notiflows/models/users/notification_retrieve_params.rb +22 -0
- data/lib/notiflows/models/users/preference_retrieve_params.rb +16 -0
- data/lib/notiflows/models/users/preference_update_params.rb +16 -0
- data/lib/notiflows/models/users/preferences.rb +116 -0
- data/lib/notiflows/models/users/slack_settings.rb +29 -0
- data/lib/notiflows/models/users/subscription.rb +45 -0
- data/lib/notiflows/models/users/subscription_list_params.rb +56 -0
- data/lib/notiflows/models/users/subscription_retrieve_params.rb +22 -0
- data/lib/notiflows/models/users/subscription_subscribe_params.rb +28 -0
- data/lib/notiflows/models/users/subscription_unsubscribe_params.rb +22 -0
- data/lib/notiflows/models/users/update_preferences_request.rb +45 -0
- data/lib/notiflows/models.rb +79 -0
- data/lib/notiflows/request_options.rb +77 -0
- data/lib/notiflows/resources/deliveries.rb +77 -0
- data/lib/notiflows/resources/notifications.rb +112 -0
- data/lib/notiflows/resources/notiflows.rb +60 -0
- data/lib/notiflows/resources/topics/subscriptions.rb +106 -0
- data/lib/notiflows/resources/topics.rb +91 -0
- data/lib/notiflows/resources/users/channel_settings.rb +132 -0
- data/lib/notiflows/resources/users/deliveries.rb +82 -0
- data/lib/notiflows/resources/users/notifications.rb +80 -0
- data/lib/notiflows/resources/users/preferences.rb +86 -0
- data/lib/notiflows/resources/users/subscriptions.rb +135 -0
- data/lib/notiflows/resources/users.rb +167 -0
- data/lib/notiflows/version.rb +5 -0
- data/lib/notiflows.rb +109 -0
- data/manifest.yaml +17 -0
- data/rbi/notiflows/client.rbi +82 -0
- data/rbi/notiflows/errors.rbi +205 -0
- data/rbi/notiflows/file_part.rbi +37 -0
- data/rbi/notiflows/internal/cursor_page.rbi +37 -0
- data/rbi/notiflows/internal/transport/base_client.rbi +298 -0
- data/rbi/notiflows/internal/transport/pooled_net_requester.rbi +83 -0
- data/rbi/notiflows/internal/type/array_of.rbi +104 -0
- data/rbi/notiflows/internal/type/base_model.rbi +308 -0
- data/rbi/notiflows/internal/type/base_page.rbi +42 -0
- data/rbi/notiflows/internal/type/boolean.rbi +58 -0
- data/rbi/notiflows/internal/type/converter.rbi +216 -0
- data/rbi/notiflows/internal/type/enum.rbi +82 -0
- data/rbi/notiflows/internal/type/file_input.rbi +59 -0
- data/rbi/notiflows/internal/type/hash_of.rbi +104 -0
- data/rbi/notiflows/internal/type/request_parameters.rbi +29 -0
- data/rbi/notiflows/internal/type/union.rbi +128 -0
- data/rbi/notiflows/internal/type/unknown.rbi +58 -0
- data/rbi/notiflows/internal/util.rbi +487 -0
- data/rbi/notiflows/internal.rbi +18 -0
- data/rbi/notiflows/models/delivery.rbi +226 -0
- data/rbi/notiflows/models/delivery_list_params.rbi +123 -0
- data/rbi/notiflows/models/delivery_retrieve_params.rbi +27 -0
- data/rbi/notiflows/models/notification.rbi +190 -0
- data/rbi/notiflows/models/notification_list_deliveries_params.rbi +126 -0
- data/rbi/notiflows/models/notification_list_params.rbi +112 -0
- data/rbi/notiflows/models/notification_retrieve_params.rbi +30 -0
- data/rbi/notiflows/models/notiflow_run_params.rbi +320 -0
- data/rbi/notiflows/models/notiflow_run_response.rbi +31 -0
- data/rbi/notiflows/models/topic.rbi +32 -0
- data/rbi/notiflows/models/topic_delete_params.rbi +27 -0
- data/rbi/notiflows/models/topic_list_params.rbi +68 -0
- data/rbi/notiflows/models/topic_retrieve_params.rbi +27 -0
- data/rbi/notiflows/models/topics/bulk_operation_response.rbi +93 -0
- data/rbi/notiflows/models/topics/bulk_subscribe_request.rbi +35 -0
- data/rbi/notiflows/models/topics/subscription_list_params.rbi +95 -0
- data/rbi/notiflows/models/topics/subscription_subscribe_bulk_params.rbi +32 -0
- data/rbi/notiflows/models/topics/subscription_unsubscribe_bulk_params.rbi +32 -0
- data/rbi/notiflows/models/user.rbi +126 -0
- data/rbi/notiflows/models/user_delete_params.rbi +27 -0
- data/rbi/notiflows/models/user_list_params.rbi +90 -0
- data/rbi/notiflows/models/user_retrieve_params.rbi +27 -0
- data/rbi/notiflows/models/user_upsert_params.rbi +203 -0
- data/rbi/notiflows/models/users/channel_setting_delete_params.rbi +43 -0
- data/rbi/notiflows/models/users/channel_setting_retrieve_params.rbi +43 -0
- data/rbi/notiflows/models/users/channel_setting_update_params.rbi +92 -0
- data/rbi/notiflows/models/users/channel_settings.rbi +156 -0
- data/rbi/notiflows/models/users/delivery_list_params.rbi +128 -0
- data/rbi/notiflows/models/users/delivery_retrieve_params.rbi +43 -0
- data/rbi/notiflows/models/users/mobile_push_settings.rbi +35 -0
- data/rbi/notiflows/models/users/notification_list_params.rbi +117 -0
- data/rbi/notiflows/models/users/notification_retrieve_params.rbi +43 -0
- data/rbi/notiflows/models/users/preference_retrieve_params.rbi +32 -0
- data/rbi/notiflows/models/users/preference_update_params.rbi +34 -0
- data/rbi/notiflows/models/users/preferences.rbi +241 -0
- data/rbi/notiflows/models/users/slack_settings.rbi +49 -0
- data/rbi/notiflows/models/users/subscription.rbi +64 -0
- data/rbi/notiflows/models/users/subscription_list_params.rbi +95 -0
- data/rbi/notiflows/models/users/subscription_retrieve_params.rbi +43 -0
- data/rbi/notiflows/models/users/subscription_subscribe_params.rbi +47 -0
- data/rbi/notiflows/models/users/subscription_unsubscribe_params.rbi +43 -0
- data/rbi/notiflows/models/users/update_preferences_request.rbi +124 -0
- data/rbi/notiflows/models.rbi +42 -0
- data/rbi/notiflows/request_options.rbi +59 -0
- data/rbi/notiflows/resources/deliveries.rbi +67 -0
- data/rbi/notiflows/resources/notifications.rbi +100 -0
- data/rbi/notiflows/resources/notiflows.rbi +52 -0
- data/rbi/notiflows/resources/topics/subscriptions.rbi +88 -0
- data/rbi/notiflows/resources/topics.rbi +69 -0
- data/rbi/notiflows/resources/users/channel_settings.rbi +104 -0
- data/rbi/notiflows/resources/users/deliveries.rbi +69 -0
- data/rbi/notiflows/resources/users/notifications.rbi +66 -0
- data/rbi/notiflows/resources/users/preferences.rbi +76 -0
- data/rbi/notiflows/resources/users/subscriptions.rbi +102 -0
- data/rbi/notiflows/resources/users.rbi +147 -0
- data/rbi/notiflows/version.rbi +5 -0
- data/sig/notiflows/client.rbs +41 -0
- data/sig/notiflows/errors.rbs +117 -0
- data/sig/notiflows/file_part.rbs +21 -0
- data/sig/notiflows/internal/cursor_page.rbs +22 -0
- data/sig/notiflows/internal/transport/base_client.rbs +133 -0
- data/sig/notiflows/internal/transport/pooled_net_requester.rbs +48 -0
- data/sig/notiflows/internal/type/array_of.rbs +48 -0
- data/sig/notiflows/internal/type/base_model.rbs +102 -0
- data/sig/notiflows/internal/type/base_page.rbs +24 -0
- data/sig/notiflows/internal/type/boolean.rbs +26 -0
- data/sig/notiflows/internal/type/converter.rbs +79 -0
- data/sig/notiflows/internal/type/enum.rbs +32 -0
- data/sig/notiflows/internal/type/file_input.rbs +25 -0
- data/sig/notiflows/internal/type/hash_of.rbs +48 -0
- data/sig/notiflows/internal/type/request_parameters.rbs +19 -0
- data/sig/notiflows/internal/type/union.rbs +52 -0
- data/sig/notiflows/internal/type/unknown.rbs +26 -0
- data/sig/notiflows/internal/util.rbs +185 -0
- data/sig/notiflows/internal.rbs +9 -0
- data/sig/notiflows/models/delivery.rbs +130 -0
- data/sig/notiflows/models/delivery_list_params.rbs +77 -0
- data/sig/notiflows/models/delivery_retrieve_params.rbs +15 -0
- data/sig/notiflows/models/notification.rbs +104 -0
- data/sig/notiflows/models/notification_list_deliveries_params.rbs +77 -0
- data/sig/notiflows/models/notification_list_params.rbs +70 -0
- data/sig/notiflows/models/notification_retrieve_params.rbs +15 -0
- data/sig/notiflows/models/notiflow_run_params.rbs +199 -0
- data/sig/notiflows/models/notiflow_run_response.rbs +13 -0
- data/sig/notiflows/models/topic.rbs +15 -0
- data/sig/notiflows/models/topic_delete_params.rbs +15 -0
- data/sig/notiflows/models/topic_list_params.rbs +38 -0
- data/sig/notiflows/models/topic_retrieve_params.rbs +15 -0
- data/sig/notiflows/models/topics/bulk_operation_response.rbs +39 -0
- data/sig/notiflows/models/topics/bulk_subscribe_request.rbs +15 -0
- data/sig/notiflows/models/topics/subscription_list_params.rbs +58 -0
- data/sig/notiflows/models/topics/subscription_subscribe_bulk_params.rbs +17 -0
- data/sig/notiflows/models/topics/subscription_unsubscribe_bulk_params.rbs +17 -0
- data/sig/notiflows/models/user.rbs +75 -0
- data/sig/notiflows/models/user_delete_params.rbs +15 -0
- data/sig/notiflows/models/user_list_params.rbs +56 -0
- data/sig/notiflows/models/user_retrieve_params.rbs +15 -0
- data/sig/notiflows/models/user_upsert_params.rbs +112 -0
- data/sig/notiflows/models/users/channel_setting_delete_params.rbs +26 -0
- data/sig/notiflows/models/users/channel_setting_retrieve_params.rbs +26 -0
- data/sig/notiflows/models/users/channel_setting_update_params.rbs +42 -0
- data/sig/notiflows/models/users/channel_settings.rbs +68 -0
- data/sig/notiflows/models/users/delivery_list_params.rbs +79 -0
- data/sig/notiflows/models/users/delivery_retrieve_params.rbs +26 -0
- data/sig/notiflows/models/users/mobile_push_settings.rbs +15 -0
- data/sig/notiflows/models/users/notification_list_params.rbs +72 -0
- data/sig/notiflows/models/users/notification_retrieve_params.rbs +26 -0
- data/sig/notiflows/models/users/preference_retrieve_params.rbs +17 -0
- data/sig/notiflows/models/users/preference_update_params.rbs +17 -0
- data/sig/notiflows/models/users/preferences.rbs +118 -0
- data/sig/notiflows/models/users/slack_settings.rbs +24 -0
- data/sig/notiflows/models/users/subscription.rbs +32 -0
- data/sig/notiflows/models/users/subscription_list_params.rbs +58 -0
- data/sig/notiflows/models/users/subscription_retrieve_params.rbs +26 -0
- data/sig/notiflows/models/users/subscription_subscribe_params.rbs +25 -0
- data/sig/notiflows/models/users/subscription_unsubscribe_params.rbs +26 -0
- data/sig/notiflows/models/users/update_preferences_request.rbs +52 -0
- data/sig/notiflows/models.rbs +39 -0
- data/sig/notiflows/request_options.rbs +34 -0
- data/sig/notiflows/resources/deliveries.rbs +24 -0
- data/sig/notiflows/resources/notifications.rbs +36 -0
- data/sig/notiflows/resources/notiflows.rbs +16 -0
- data/sig/notiflows/resources/topics/subscriptions.rbs +31 -0
- data/sig/notiflows/resources/topics.rbs +23 -0
- data/sig/notiflows/resources/users/channel_settings.rbs +28 -0
- data/sig/notiflows/resources/users/deliveries.rbs +28 -0
- data/sig/notiflows/resources/users/notifications.rbs +27 -0
- data/sig/notiflows/resources/users/preferences.rbs +21 -0
- data/sig/notiflows/resources/users/subscriptions.rbs +37 -0
- data/sig/notiflows/resources/users.rbs +52 -0
- data/sig/notiflows/version.rbs +3 -0
- metadata +302 -0
|
@@ -0,0 +1,122 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Notiflows
|
|
4
|
+
module Models
|
|
5
|
+
# @see Notiflows::Resources::Users#upsert
|
|
6
|
+
class UserUpsertParams < Notiflows::Internal::Type::BaseModel
|
|
7
|
+
extend Notiflows::Internal::Type::RequestParameters::Converter
|
|
8
|
+
include Notiflows::Internal::Type::RequestParameters
|
|
9
|
+
|
|
10
|
+
# @!attribute external_id
|
|
11
|
+
# Your system's unique identifier for this user. Required for creating new users.
|
|
12
|
+
#
|
|
13
|
+
# @return [String]
|
|
14
|
+
required :external_id, String
|
|
15
|
+
|
|
16
|
+
# @!attribute avatar
|
|
17
|
+
# URL to user's avatar image (must start with http:// or https://)
|
|
18
|
+
#
|
|
19
|
+
# @return [String, nil]
|
|
20
|
+
optional :avatar, String
|
|
21
|
+
|
|
22
|
+
# @!attribute channel_settings
|
|
23
|
+
# Initial channel settings (e.g., device tokens for push)
|
|
24
|
+
#
|
|
25
|
+
# @return [Array<Notiflows::Models::UserUpsertParams::ChannelSetting>, nil]
|
|
26
|
+
optional :channel_settings,
|
|
27
|
+
-> { Notiflows::Internal::Type::ArrayOf[Notiflows::UserUpsertParams::ChannelSetting] }
|
|
28
|
+
|
|
29
|
+
# @!attribute custom_fields
|
|
30
|
+
# Custom attributes. Deep-merged with existing values on update.
|
|
31
|
+
#
|
|
32
|
+
# @return [Object, nil]
|
|
33
|
+
optional :custom_fields, Notiflows::Internal::Type::Unknown
|
|
34
|
+
|
|
35
|
+
# @!attribute email
|
|
36
|
+
# User's email address
|
|
37
|
+
#
|
|
38
|
+
# @return [String, nil]
|
|
39
|
+
optional :email, String
|
|
40
|
+
|
|
41
|
+
# @!attribute first_name
|
|
42
|
+
# User's first name
|
|
43
|
+
#
|
|
44
|
+
# @return [String, nil]
|
|
45
|
+
optional :first_name, String
|
|
46
|
+
|
|
47
|
+
# @!attribute last_name
|
|
48
|
+
# User's last name
|
|
49
|
+
#
|
|
50
|
+
# @return [String, nil]
|
|
51
|
+
optional :last_name, String
|
|
52
|
+
|
|
53
|
+
# @!attribute locale
|
|
54
|
+
# BCP 47 locale code (e.g., en-US, es-ES, fr-FR)
|
|
55
|
+
#
|
|
56
|
+
# @return [String, nil]
|
|
57
|
+
optional :locale, String
|
|
58
|
+
|
|
59
|
+
# @!attribute phone
|
|
60
|
+
# User's phone number in E.164 format
|
|
61
|
+
#
|
|
62
|
+
# @return [String, nil]
|
|
63
|
+
optional :phone, String
|
|
64
|
+
|
|
65
|
+
# @!attribute preferences
|
|
66
|
+
# Request body for updating user preferences. Only provided fields are updated.
|
|
67
|
+
#
|
|
68
|
+
# @return [::Notiflows::Models::Users::UpdatePreferencesRequest, nil]
|
|
69
|
+
optional :preferences, -> { ::Notiflows::Users::UpdatePreferencesRequest }
|
|
70
|
+
|
|
71
|
+
# @!attribute timezone
|
|
72
|
+
# IANA timezone (e.g., America/New_York, Europe/London)
|
|
73
|
+
#
|
|
74
|
+
# @return [String, nil]
|
|
75
|
+
optional :timezone, String
|
|
76
|
+
|
|
77
|
+
# @!method initialize(external_id:, avatar: nil, channel_settings: nil, custom_fields: nil, email: nil, first_name: nil, last_name: nil, locale: nil, phone: nil, preferences: nil, timezone: nil, request_options: {})
|
|
78
|
+
# @param external_id [String] Your system's unique identifier for this user. Required for creating new users.
|
|
79
|
+
#
|
|
80
|
+
# @param avatar [String] URL to user's avatar image (must start with http:// or https://)
|
|
81
|
+
#
|
|
82
|
+
# @param channel_settings [Array<Notiflows::Models::UserUpsertParams::ChannelSetting>] Initial channel settings (e.g., device tokens for push)
|
|
83
|
+
#
|
|
84
|
+
# @param custom_fields [Object] Custom attributes. Deep-merged with existing values on update.
|
|
85
|
+
#
|
|
86
|
+
# @param email [String] User's email address
|
|
87
|
+
#
|
|
88
|
+
# @param first_name [String] User's first name
|
|
89
|
+
#
|
|
90
|
+
# @param last_name [String] User's last name
|
|
91
|
+
#
|
|
92
|
+
# @param locale [String] BCP 47 locale code (e.g., en-US, es-ES, fr-FR)
|
|
93
|
+
#
|
|
94
|
+
# @param phone [String] User's phone number in E.164 format
|
|
95
|
+
#
|
|
96
|
+
# @param preferences [::Notiflows::Models::Users::UpdatePreferencesRequest] Request body for updating user preferences. Only provided fields are updated.
|
|
97
|
+
#
|
|
98
|
+
# @param timezone [String] IANA timezone (e.g., America/New_York, Europe/London)
|
|
99
|
+
#
|
|
100
|
+
# @param request_options [Notiflows::RequestOptions, Hash{Symbol=>Object}]
|
|
101
|
+
|
|
102
|
+
class ChannelSetting < Notiflows::Internal::Type::BaseModel
|
|
103
|
+
# @!attribute channel_id
|
|
104
|
+
# Channel ID
|
|
105
|
+
#
|
|
106
|
+
# @return [String]
|
|
107
|
+
required :channel_id, String
|
|
108
|
+
|
|
109
|
+
# @!attribute settings
|
|
110
|
+
# Provider-specific settings
|
|
111
|
+
#
|
|
112
|
+
# @return [Object]
|
|
113
|
+
required :settings, Notiflows::Internal::Type::Unknown
|
|
114
|
+
|
|
115
|
+
# @!method initialize(channel_id:, settings:)
|
|
116
|
+
# @param channel_id [String] Channel ID
|
|
117
|
+
#
|
|
118
|
+
# @param settings [Object] Provider-specific settings
|
|
119
|
+
end
|
|
120
|
+
end
|
|
121
|
+
end
|
|
122
|
+
end
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Notiflows
|
|
4
|
+
module Models
|
|
5
|
+
module Users
|
|
6
|
+
# @see Notiflows::Resources::Users::ChannelSettings#delete
|
|
7
|
+
class ChannelSettingDeleteParams < Notiflows::Internal::Type::BaseModel
|
|
8
|
+
extend Notiflows::Internal::Type::RequestParameters::Converter
|
|
9
|
+
include Notiflows::Internal::Type::RequestParameters
|
|
10
|
+
|
|
11
|
+
# @!attribute user_external_id
|
|
12
|
+
#
|
|
13
|
+
# @return [String]
|
|
14
|
+
required :user_external_id, String
|
|
15
|
+
|
|
16
|
+
# @!method initialize(user_external_id:, request_options: {})
|
|
17
|
+
# @param user_external_id [String]
|
|
18
|
+
# @param request_options [Notiflows::RequestOptions, Hash{Symbol=>Object}]
|
|
19
|
+
end
|
|
20
|
+
end
|
|
21
|
+
end
|
|
22
|
+
end
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Notiflows
|
|
4
|
+
module Models
|
|
5
|
+
module Users
|
|
6
|
+
# @see Notiflows::Resources::Users::ChannelSettings#retrieve
|
|
7
|
+
class ChannelSettingRetrieveParams < Notiflows::Internal::Type::BaseModel
|
|
8
|
+
extend Notiflows::Internal::Type::RequestParameters::Converter
|
|
9
|
+
include Notiflows::Internal::Type::RequestParameters
|
|
10
|
+
|
|
11
|
+
# @!attribute user_external_id
|
|
12
|
+
#
|
|
13
|
+
# @return [String]
|
|
14
|
+
required :user_external_id, String
|
|
15
|
+
|
|
16
|
+
# @!method initialize(user_external_id:, request_options: {})
|
|
17
|
+
# @param user_external_id [String]
|
|
18
|
+
# @param request_options [Notiflows::RequestOptions, Hash{Symbol=>Object}]
|
|
19
|
+
end
|
|
20
|
+
end
|
|
21
|
+
end
|
|
22
|
+
end
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Notiflows
|
|
4
|
+
module Models
|
|
5
|
+
module Users
|
|
6
|
+
# @see Notiflows::Resources::Users::ChannelSettings#update
|
|
7
|
+
class ChannelSettingUpdateParams < Notiflows::Internal::Type::BaseModel
|
|
8
|
+
extend Notiflows::Internal::Type::RequestParameters::Converter
|
|
9
|
+
include Notiflows::Internal::Type::RequestParameters
|
|
10
|
+
|
|
11
|
+
# @!attribute user_external_id
|
|
12
|
+
#
|
|
13
|
+
# @return [String]
|
|
14
|
+
required :user_external_id, String
|
|
15
|
+
|
|
16
|
+
# @!attribute settings
|
|
17
|
+
# Provider-specific settings. Structure depends on channel provider.
|
|
18
|
+
#
|
|
19
|
+
# @return [Notiflows::Models::Users::MobilePushSettings, Notiflows::Models::Users::SlackSettings]
|
|
20
|
+
required :settings, union: -> { Notiflows::Users::ChannelSettingUpdateParams::Settings }
|
|
21
|
+
|
|
22
|
+
# @!method initialize(user_external_id:, settings:, request_options: {})
|
|
23
|
+
# @param user_external_id [String]
|
|
24
|
+
#
|
|
25
|
+
# @param settings [Notiflows::Models::Users::MobilePushSettings, Notiflows::Models::Users::SlackSettings] Provider-specific settings. Structure depends on channel provider.
|
|
26
|
+
#
|
|
27
|
+
# @param request_options [Notiflows::RequestOptions, Hash{Symbol=>Object}]
|
|
28
|
+
|
|
29
|
+
# Provider-specific settings. Structure depends on channel provider.
|
|
30
|
+
module Settings
|
|
31
|
+
extend Notiflows::Internal::Type::Union
|
|
32
|
+
|
|
33
|
+
# Settings for mobile push notifications (APNS/FCM)
|
|
34
|
+
variant -> { Notiflows::Users::MobilePushSettings }
|
|
35
|
+
|
|
36
|
+
# Settings for Slack notifications. At least one of `slack_channel_id` or `slack_user_id` must be provided.
|
|
37
|
+
variant -> { Notiflows::Users::SlackSettings }
|
|
38
|
+
|
|
39
|
+
# @!method self.variants
|
|
40
|
+
# @return [Array(Notiflows::Models::Users::MobilePushSettings, Notiflows::Models::Users::SlackSettings)]
|
|
41
|
+
end
|
|
42
|
+
end
|
|
43
|
+
end
|
|
44
|
+
end
|
|
45
|
+
end
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Notiflows
|
|
4
|
+
module Models
|
|
5
|
+
module Users
|
|
6
|
+
# @see Notiflows::Resources::Users::ChannelSettings#retrieve
|
|
7
|
+
class UsersChannelSettings < Notiflows::Internal::Type::BaseModel
|
|
8
|
+
# @!attribute channel_id
|
|
9
|
+
# Channel ID
|
|
10
|
+
#
|
|
11
|
+
# @return [String]
|
|
12
|
+
required :channel_id, String
|
|
13
|
+
|
|
14
|
+
# @!attribute created_at
|
|
15
|
+
# When the settings were created
|
|
16
|
+
#
|
|
17
|
+
# @return [Time]
|
|
18
|
+
required :created_at, Time
|
|
19
|
+
|
|
20
|
+
# @!attribute provider
|
|
21
|
+
# The provider type for this channel
|
|
22
|
+
#
|
|
23
|
+
# @return [Symbol, Notiflows::Models::Users::UsersChannelSettings::Provider]
|
|
24
|
+
required :provider, enum: -> { Notiflows::Users::UsersChannelSettings::Provider }
|
|
25
|
+
|
|
26
|
+
# @!attribute settings
|
|
27
|
+
# Provider-specific settings. See MobilePushSettings or SlackSettings schemas.
|
|
28
|
+
#
|
|
29
|
+
# @return [Notiflows::Models::Users::MobilePushSettings, Notiflows::Models::Users::SlackSettings]
|
|
30
|
+
required :settings, union: -> { Notiflows::Users::UsersChannelSettings::Settings }
|
|
31
|
+
|
|
32
|
+
# @!attribute updated_at
|
|
33
|
+
# When the settings were last updated
|
|
34
|
+
#
|
|
35
|
+
# @return [Time]
|
|
36
|
+
required :updated_at, Time
|
|
37
|
+
|
|
38
|
+
# @!attribute user_id
|
|
39
|
+
# Internal user ID
|
|
40
|
+
#
|
|
41
|
+
# @return [String]
|
|
42
|
+
required :user_id, String
|
|
43
|
+
|
|
44
|
+
# @!method initialize(channel_id:, created_at:, provider:, settings:, updated_at:, user_id:)
|
|
45
|
+
# User's settings for a specific channel (e.g., device tokens, Slack credentials)
|
|
46
|
+
#
|
|
47
|
+
# @param channel_id [String] Channel ID
|
|
48
|
+
#
|
|
49
|
+
# @param created_at [Time] When the settings were created
|
|
50
|
+
#
|
|
51
|
+
# @param provider [Symbol, Notiflows::Models::Users::UsersChannelSettings::Provider] The provider type for this channel
|
|
52
|
+
#
|
|
53
|
+
# @param settings [Notiflows::Models::Users::MobilePushSettings, Notiflows::Models::Users::SlackSettings] Provider-specific settings. See MobilePushSettings or SlackSettings schemas.
|
|
54
|
+
#
|
|
55
|
+
# @param updated_at [Time] When the settings were last updated
|
|
56
|
+
#
|
|
57
|
+
# @param user_id [String] Internal user ID
|
|
58
|
+
|
|
59
|
+
# The provider type for this channel
|
|
60
|
+
#
|
|
61
|
+
# @see Notiflows::Models::Users::UsersChannelSettings#provider
|
|
62
|
+
module Provider
|
|
63
|
+
extend Notiflows::Internal::Type::Enum
|
|
64
|
+
|
|
65
|
+
APNS = :apns
|
|
66
|
+
FCM = :fcm
|
|
67
|
+
SLACK = :slack
|
|
68
|
+
|
|
69
|
+
# @!method self.values
|
|
70
|
+
# @return [Array<Symbol>]
|
|
71
|
+
end
|
|
72
|
+
|
|
73
|
+
# Provider-specific settings. See MobilePushSettings or SlackSettings schemas.
|
|
74
|
+
#
|
|
75
|
+
# @see Notiflows::Models::Users::UsersChannelSettings#settings
|
|
76
|
+
module Settings
|
|
77
|
+
extend Notiflows::Internal::Type::Union
|
|
78
|
+
|
|
79
|
+
# Settings for mobile push notifications (APNS/FCM)
|
|
80
|
+
variant -> { Notiflows::Users::MobilePushSettings }
|
|
81
|
+
|
|
82
|
+
# Settings for Slack notifications. At least one of `slack_channel_id` or `slack_user_id` must be provided.
|
|
83
|
+
variant -> { Notiflows::Users::SlackSettings }
|
|
84
|
+
|
|
85
|
+
# @!method self.variants
|
|
86
|
+
# @return [Array(Notiflows::Models::Users::MobilePushSettings, Notiflows::Models::Users::SlackSettings)]
|
|
87
|
+
end
|
|
88
|
+
end
|
|
89
|
+
end
|
|
90
|
+
end
|
|
91
|
+
end
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Notiflows
|
|
4
|
+
module Models
|
|
5
|
+
module Users
|
|
6
|
+
# @see Notiflows::Resources::Users::Deliveries#list
|
|
7
|
+
class DeliveryListParams < Notiflows::Internal::Type::BaseModel
|
|
8
|
+
extend Notiflows::Internal::Type::RequestParameters::Converter
|
|
9
|
+
include Notiflows::Internal::Type::RequestParameters
|
|
10
|
+
|
|
11
|
+
# @!attribute after
|
|
12
|
+
# Cursor for fetching the next page
|
|
13
|
+
#
|
|
14
|
+
# @return [String, nil]
|
|
15
|
+
optional :after, String
|
|
16
|
+
|
|
17
|
+
# @!attribute before
|
|
18
|
+
# Cursor for fetching the previous page
|
|
19
|
+
#
|
|
20
|
+
# @return [String, nil]
|
|
21
|
+
optional :before, String
|
|
22
|
+
|
|
23
|
+
# @!attribute channel_id
|
|
24
|
+
# Filter by channel ID (UUID)
|
|
25
|
+
#
|
|
26
|
+
# @return [String, nil]
|
|
27
|
+
optional :channel_id, String
|
|
28
|
+
|
|
29
|
+
# @!attribute created_after
|
|
30
|
+
# Filter by created after (ISO 8601 datetime)
|
|
31
|
+
#
|
|
32
|
+
# @return [String, nil]
|
|
33
|
+
optional :created_after, String
|
|
34
|
+
|
|
35
|
+
# @!attribute created_before
|
|
36
|
+
# Filter by created before (ISO 8601 datetime)
|
|
37
|
+
#
|
|
38
|
+
# @return [String, nil]
|
|
39
|
+
optional :created_before, String
|
|
40
|
+
|
|
41
|
+
# @!attribute limit
|
|
42
|
+
# Number of items per page (default: 25, max: 1000)
|
|
43
|
+
#
|
|
44
|
+
# @return [Integer, nil]
|
|
45
|
+
optional :limit, Integer
|
|
46
|
+
|
|
47
|
+
# @!attribute status
|
|
48
|
+
# Filter by status (pending, sent, failed)
|
|
49
|
+
#
|
|
50
|
+
# @return [String, nil]
|
|
51
|
+
optional :status, String
|
|
52
|
+
|
|
53
|
+
# @!attribute topic
|
|
54
|
+
# Filter by topic name
|
|
55
|
+
#
|
|
56
|
+
# @return [String, nil]
|
|
57
|
+
optional :topic, String
|
|
58
|
+
|
|
59
|
+
# @!method initialize(after: nil, before: nil, channel_id: nil, created_after: nil, created_before: nil, limit: nil, status: nil, topic: nil, request_options: {})
|
|
60
|
+
# @param after [String] Cursor for fetching the next page
|
|
61
|
+
#
|
|
62
|
+
# @param before [String] Cursor for fetching the previous page
|
|
63
|
+
#
|
|
64
|
+
# @param channel_id [String] Filter by channel ID (UUID)
|
|
65
|
+
#
|
|
66
|
+
# @param created_after [String] Filter by created after (ISO 8601 datetime)
|
|
67
|
+
#
|
|
68
|
+
# @param created_before [String] Filter by created before (ISO 8601 datetime)
|
|
69
|
+
#
|
|
70
|
+
# @param limit [Integer] Number of items per page (default: 25, max: 1000)
|
|
71
|
+
#
|
|
72
|
+
# @param status [String] Filter by status (pending, sent, failed)
|
|
73
|
+
#
|
|
74
|
+
# @param topic [String] Filter by topic name
|
|
75
|
+
#
|
|
76
|
+
# @param request_options [Notiflows::RequestOptions, Hash{Symbol=>Object}]
|
|
77
|
+
end
|
|
78
|
+
end
|
|
79
|
+
end
|
|
80
|
+
end
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Notiflows
|
|
4
|
+
module Models
|
|
5
|
+
module Users
|
|
6
|
+
# @see Notiflows::Resources::Users::Deliveries#retrieve
|
|
7
|
+
class DeliveryRetrieveParams < Notiflows::Internal::Type::BaseModel
|
|
8
|
+
extend Notiflows::Internal::Type::RequestParameters::Converter
|
|
9
|
+
include Notiflows::Internal::Type::RequestParameters
|
|
10
|
+
|
|
11
|
+
# @!attribute user_external_id
|
|
12
|
+
#
|
|
13
|
+
# @return [String]
|
|
14
|
+
required :user_external_id, String
|
|
15
|
+
|
|
16
|
+
# @!method initialize(user_external_id:, request_options: {})
|
|
17
|
+
# @param user_external_id [String]
|
|
18
|
+
# @param request_options [Notiflows::RequestOptions, Hash{Symbol=>Object}]
|
|
19
|
+
end
|
|
20
|
+
end
|
|
21
|
+
end
|
|
22
|
+
end
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Notiflows
|
|
4
|
+
module Models
|
|
5
|
+
module Users
|
|
6
|
+
class MobilePushSettings < Notiflows::Internal::Type::BaseModel
|
|
7
|
+
# @!attribute device_tokens
|
|
8
|
+
# List of device tokens for push notifications. At least one token is required.
|
|
9
|
+
#
|
|
10
|
+
# @return [Array<String>]
|
|
11
|
+
required :device_tokens, Notiflows::Internal::Type::ArrayOf[String]
|
|
12
|
+
|
|
13
|
+
# @!method initialize(device_tokens:)
|
|
14
|
+
# Settings for mobile push notifications (APNS/FCM)
|
|
15
|
+
#
|
|
16
|
+
# @param device_tokens [Array<String>] List of device tokens for push notifications. At least one token is required.
|
|
17
|
+
end
|
|
18
|
+
end
|
|
19
|
+
end
|
|
20
|
+
end
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Notiflows
|
|
4
|
+
module Models
|
|
5
|
+
module Users
|
|
6
|
+
# @see Notiflows::Resources::Users::Notifications#list
|
|
7
|
+
class NotificationListParams < Notiflows::Internal::Type::BaseModel
|
|
8
|
+
extend Notiflows::Internal::Type::RequestParameters::Converter
|
|
9
|
+
include Notiflows::Internal::Type::RequestParameters
|
|
10
|
+
|
|
11
|
+
# @!attribute after
|
|
12
|
+
# Cursor for fetching the next page
|
|
13
|
+
#
|
|
14
|
+
# @return [String, nil]
|
|
15
|
+
optional :after, String
|
|
16
|
+
|
|
17
|
+
# @!attribute before
|
|
18
|
+
# Cursor for fetching the previous page
|
|
19
|
+
#
|
|
20
|
+
# @return [String, nil]
|
|
21
|
+
optional :before, String
|
|
22
|
+
|
|
23
|
+
# @!attribute created_after
|
|
24
|
+
# Filter by created after (ISO 8601 datetime)
|
|
25
|
+
#
|
|
26
|
+
# @return [String, nil]
|
|
27
|
+
optional :created_after, String
|
|
28
|
+
|
|
29
|
+
# @!attribute created_before
|
|
30
|
+
# Filter by created before (ISO 8601 datetime)
|
|
31
|
+
#
|
|
32
|
+
# @return [String, nil]
|
|
33
|
+
optional :created_before, String
|
|
34
|
+
|
|
35
|
+
# @!attribute limit
|
|
36
|
+
# Number of items per page (default: 25, max: 1000)
|
|
37
|
+
#
|
|
38
|
+
# @return [Integer, nil]
|
|
39
|
+
optional :limit, Integer
|
|
40
|
+
|
|
41
|
+
# @!attribute status
|
|
42
|
+
# Filter by status
|
|
43
|
+
#
|
|
44
|
+
# @return [String, nil]
|
|
45
|
+
optional :status, String
|
|
46
|
+
|
|
47
|
+
# @!attribute topic
|
|
48
|
+
# Filter by topic
|
|
49
|
+
#
|
|
50
|
+
# @return [String, nil]
|
|
51
|
+
optional :topic, String
|
|
52
|
+
|
|
53
|
+
# @!method initialize(after: nil, before: nil, created_after: nil, created_before: nil, limit: nil, status: nil, topic: nil, request_options: {})
|
|
54
|
+
# @param after [String] Cursor for fetching the next page
|
|
55
|
+
#
|
|
56
|
+
# @param before [String] Cursor for fetching the previous page
|
|
57
|
+
#
|
|
58
|
+
# @param created_after [String] Filter by created after (ISO 8601 datetime)
|
|
59
|
+
#
|
|
60
|
+
# @param created_before [String] Filter by created before (ISO 8601 datetime)
|
|
61
|
+
#
|
|
62
|
+
# @param limit [Integer] Number of items per page (default: 25, max: 1000)
|
|
63
|
+
#
|
|
64
|
+
# @param status [String] Filter by status
|
|
65
|
+
#
|
|
66
|
+
# @param topic [String] Filter by topic
|
|
67
|
+
#
|
|
68
|
+
# @param request_options [Notiflows::RequestOptions, Hash{Symbol=>Object}]
|
|
69
|
+
end
|
|
70
|
+
end
|
|
71
|
+
end
|
|
72
|
+
end
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Notiflows
|
|
4
|
+
module Models
|
|
5
|
+
module Users
|
|
6
|
+
# @see Notiflows::Resources::Users::Notifications#retrieve
|
|
7
|
+
class NotificationRetrieveParams < Notiflows::Internal::Type::BaseModel
|
|
8
|
+
extend Notiflows::Internal::Type::RequestParameters::Converter
|
|
9
|
+
include Notiflows::Internal::Type::RequestParameters
|
|
10
|
+
|
|
11
|
+
# @!attribute user_external_id
|
|
12
|
+
#
|
|
13
|
+
# @return [String]
|
|
14
|
+
required :user_external_id, String
|
|
15
|
+
|
|
16
|
+
# @!method initialize(user_external_id:, request_options: {})
|
|
17
|
+
# @param user_external_id [String]
|
|
18
|
+
# @param request_options [Notiflows::RequestOptions, Hash{Symbol=>Object}]
|
|
19
|
+
end
|
|
20
|
+
end
|
|
21
|
+
end
|
|
22
|
+
end
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Notiflows
|
|
4
|
+
module Models
|
|
5
|
+
module Users
|
|
6
|
+
# @see Notiflows::Resources::Users::Preferences#retrieve
|
|
7
|
+
class PreferenceRetrieveParams < Notiflows::Internal::Type::BaseModel
|
|
8
|
+
extend Notiflows::Internal::Type::RequestParameters::Converter
|
|
9
|
+
include Notiflows::Internal::Type::RequestParameters
|
|
10
|
+
|
|
11
|
+
# @!method initialize(request_options: {})
|
|
12
|
+
# @param request_options [Notiflows::RequestOptions, Hash{Symbol=>Object}]
|
|
13
|
+
end
|
|
14
|
+
end
|
|
15
|
+
end
|
|
16
|
+
end
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Notiflows
|
|
4
|
+
module Models
|
|
5
|
+
module Users
|
|
6
|
+
# @see Notiflows::Resources::Users::Preferences#update
|
|
7
|
+
class PreferenceUpdateParams < ::Notiflows::Models::Users::UpdatePreferencesRequest
|
|
8
|
+
extend ::Notiflows::Internal::Type::RequestParameters::Converter
|
|
9
|
+
include ::Notiflows::Internal::Type::RequestParameters
|
|
10
|
+
|
|
11
|
+
# @!method initialize(request_options: {})
|
|
12
|
+
# @param request_options [Notiflows::RequestOptions, Hash{Symbol=>Object}]
|
|
13
|
+
end
|
|
14
|
+
end
|
|
15
|
+
end
|
|
16
|
+
end
|
|
@@ -0,0 +1,116 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Notiflows
|
|
4
|
+
module Models
|
|
5
|
+
module Users
|
|
6
|
+
# @see Notiflows::Resources::Users::Preferences#retrieve
|
|
7
|
+
class UsersPreferences < ::Notiflows::Internal::Type::BaseModel
|
|
8
|
+
# @!attribute channel_types
|
|
9
|
+
# Global opt-in/opt-out settings per channel type. `true` = enabled, `false` =
|
|
10
|
+
# opted out.
|
|
11
|
+
#
|
|
12
|
+
# @return [::Notiflows::Models::Users::UsersPreferences::ChannelTypes, nil]
|
|
13
|
+
optional :channel_types, -> { ::Notiflows::Users::UsersPreferences::ChannelTypes }
|
|
14
|
+
|
|
15
|
+
# @!attribute notiflows
|
|
16
|
+
# Per-notiflow preferences. Keys are notiflow IDs (UUIDs).
|
|
17
|
+
#
|
|
18
|
+
# @return [Hash{Symbol=>::Notiflows::Models::Users::UsersPreferences::Notiflow}, nil]
|
|
19
|
+
optional :notiflows,
|
|
20
|
+
-> { ::Notiflows::Internal::Type::HashOf[::Notiflows::Users::UsersPreferences::Notiflow] }
|
|
21
|
+
|
|
22
|
+
# @!method initialize(channel_types: nil, notiflows: nil)
|
|
23
|
+
# Some parameter documentations has been truncated, see
|
|
24
|
+
# {::Notiflows::Models::Users::UsersPreferences} for more details.
|
|
25
|
+
#
|
|
26
|
+
# User notification preferences
|
|
27
|
+
#
|
|
28
|
+
# @param channel_types [::Notiflows::Models::Users::UsersPreferences::ChannelTypes] Global opt-in/opt-out settings per channel type. `true` = enabled, `false` = opt
|
|
29
|
+
#
|
|
30
|
+
# @param notiflows [Hash{Symbol=>::Notiflows::Models::Users::UsersPreferences::Notiflow}] Per-notiflow preferences. Keys are notiflow IDs (UUIDs).
|
|
31
|
+
|
|
32
|
+
# @see Notiflows::Models::Users::UsersPreferences#channel_types
|
|
33
|
+
class ChannelTypes < ::Notiflows::Internal::Type::BaseModel
|
|
34
|
+
# @!attribute chat
|
|
35
|
+
# Chat notifications (Slack, etc.)
|
|
36
|
+
#
|
|
37
|
+
# @return [Boolean, nil]
|
|
38
|
+
optional :chat, ::Notiflows::Internal::Type::Boolean
|
|
39
|
+
|
|
40
|
+
# @!attribute email
|
|
41
|
+
# Email notifications
|
|
42
|
+
#
|
|
43
|
+
# @return [Boolean, nil]
|
|
44
|
+
optional :email, ::Notiflows::Internal::Type::Boolean
|
|
45
|
+
|
|
46
|
+
# @!attribute in_app
|
|
47
|
+
# In-app feed notifications
|
|
48
|
+
#
|
|
49
|
+
# @return [Boolean, nil]
|
|
50
|
+
optional :in_app, ::Notiflows::Internal::Type::Boolean
|
|
51
|
+
|
|
52
|
+
# @!attribute mobile_push
|
|
53
|
+
# Mobile push notifications (iOS/Android)
|
|
54
|
+
#
|
|
55
|
+
# @return [Boolean, nil]
|
|
56
|
+
optional :mobile_push, ::Notiflows::Internal::Type::Boolean
|
|
57
|
+
|
|
58
|
+
# @!attribute sms
|
|
59
|
+
# SMS notifications
|
|
60
|
+
#
|
|
61
|
+
# @return [Boolean, nil]
|
|
62
|
+
optional :sms, ::Notiflows::Internal::Type::Boolean
|
|
63
|
+
|
|
64
|
+
# @!attribute web_push
|
|
65
|
+
# Web push notifications
|
|
66
|
+
#
|
|
67
|
+
# @return [Boolean, nil]
|
|
68
|
+
optional :web_push, ::Notiflows::Internal::Type::Boolean
|
|
69
|
+
|
|
70
|
+
# @!method initialize(chat: nil, email: nil, in_app: nil, mobile_push: nil, sms: nil, web_push: nil)
|
|
71
|
+
# Global opt-in/opt-out settings per channel type. `true` = enabled, `false` =
|
|
72
|
+
# opted out.
|
|
73
|
+
#
|
|
74
|
+
# @param chat [Boolean] Chat notifications (Slack, etc.)
|
|
75
|
+
#
|
|
76
|
+
# @param email [Boolean] Email notifications
|
|
77
|
+
#
|
|
78
|
+
# @param in_app [Boolean] In-app feed notifications
|
|
79
|
+
#
|
|
80
|
+
# @param mobile_push [Boolean] Mobile push notifications (iOS/Android)
|
|
81
|
+
#
|
|
82
|
+
# @param sms [Boolean] SMS notifications
|
|
83
|
+
#
|
|
84
|
+
# @param web_push [Boolean] Web push notifications
|
|
85
|
+
end
|
|
86
|
+
|
|
87
|
+
class Notiflow < ::Notiflows::Internal::Type::BaseModel
|
|
88
|
+
# @!attribute channel_types
|
|
89
|
+
# Channel-specific overrides for this notiflow
|
|
90
|
+
#
|
|
91
|
+
# @return [Hash{Symbol=>Boolean}, nil]
|
|
92
|
+
optional :channel_types, ::Notiflows::Internal::Type::HashOf[::Notiflows::Internal::Type::Boolean]
|
|
93
|
+
|
|
94
|
+
# @!attribute enabled
|
|
95
|
+
# Whether this notiflow is enabled for the user
|
|
96
|
+
#
|
|
97
|
+
# @return [Boolean, nil]
|
|
98
|
+
optional :enabled, ::Notiflows::Internal::Type::Boolean
|
|
99
|
+
|
|
100
|
+
# @!attribute name
|
|
101
|
+
# Notiflow name (read-only, for display)
|
|
102
|
+
#
|
|
103
|
+
# @return [String, nil]
|
|
104
|
+
optional :name, String
|
|
105
|
+
|
|
106
|
+
# @!method initialize(channel_types: nil, enabled: nil, name: nil)
|
|
107
|
+
# @param channel_types [Hash{Symbol=>Boolean}] Channel-specific overrides for this notiflow
|
|
108
|
+
#
|
|
109
|
+
# @param enabled [Boolean] Whether this notiflow is enabled for the user
|
|
110
|
+
#
|
|
111
|
+
# @param name [String] Notiflow name (read-only, for display)
|
|
112
|
+
end
|
|
113
|
+
end
|
|
114
|
+
end
|
|
115
|
+
end
|
|
116
|
+
end
|