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.
Files changed (231) hide show
  1. checksums.yaml +7 -0
  2. data/README.md +305 -0
  3. data/SECURITY.md +27 -0
  4. data/lib/notiflows/client.rb +117 -0
  5. data/lib/notiflows/errors.rb +228 -0
  6. data/lib/notiflows/file_part.rb +58 -0
  7. data/lib/notiflows/internal/cursor_page.rb +100 -0
  8. data/lib/notiflows/internal/transport/base_client.rb +573 -0
  9. data/lib/notiflows/internal/transport/pooled_net_requester.rb +210 -0
  10. data/lib/notiflows/internal/type/array_of.rb +168 -0
  11. data/lib/notiflows/internal/type/base_model.rb +531 -0
  12. data/lib/notiflows/internal/type/base_page.rb +55 -0
  13. data/lib/notiflows/internal/type/boolean.rb +77 -0
  14. data/lib/notiflows/internal/type/converter.rb +327 -0
  15. data/lib/notiflows/internal/type/enum.rb +131 -0
  16. data/lib/notiflows/internal/type/file_input.rb +111 -0
  17. data/lib/notiflows/internal/type/hash_of.rb +188 -0
  18. data/lib/notiflows/internal/type/request_parameters.rb +42 -0
  19. data/lib/notiflows/internal/type/union.rb +237 -0
  20. data/lib/notiflows/internal/type/unknown.rb +81 -0
  21. data/lib/notiflows/internal/util.rb +920 -0
  22. data/lib/notiflows/internal.rb +20 -0
  23. data/lib/notiflows/models/delivery.rb +189 -0
  24. data/lib/notiflows/models/delivery_list_params.rb +78 -0
  25. data/lib/notiflows/models/delivery_retrieve_params.rb +14 -0
  26. data/lib/notiflows/models/notification.rb +151 -0
  27. data/lib/notiflows/models/notification_list_deliveries_params.rb +78 -0
  28. data/lib/notiflows/models/notification_list_params.rb +70 -0
  29. data/lib/notiflows/models/notification_retrieve_params.rb +14 -0
  30. data/lib/notiflows/models/notiflow_run_params.rb +197 -0
  31. data/lib/notiflows/models/notiflow_run_response.rb +19 -0
  32. data/lib/notiflows/models/topic.rb +27 -0
  33. data/lib/notiflows/models/topic_delete_params.rb +14 -0
  34. data/lib/notiflows/models/topic_list_params.rb +38 -0
  35. data/lib/notiflows/models/topic_retrieve_params.rb +14 -0
  36. data/lib/notiflows/models/topics/bulk_operation_response.rb +51 -0
  37. data/lib/notiflows/models/topics/bulk_subscribe_request.rb +20 -0
  38. data/lib/notiflows/models/topics/subscription_list_params.rb +56 -0
  39. data/lib/notiflows/models/topics/subscription_subscribe_bulk_params.rb +16 -0
  40. data/lib/notiflows/models/topics/subscription_unsubscribe_bulk_params.rb +16 -0
  41. data/lib/notiflows/models/user.rb +111 -0
  42. data/lib/notiflows/models/user_delete_params.rb +14 -0
  43. data/lib/notiflows/models/user_list_params.rb +54 -0
  44. data/lib/notiflows/models/user_retrieve_params.rb +14 -0
  45. data/lib/notiflows/models/user_upsert_params.rb +122 -0
  46. data/lib/notiflows/models/users/channel_setting_delete_params.rb +22 -0
  47. data/lib/notiflows/models/users/channel_setting_retrieve_params.rb +22 -0
  48. data/lib/notiflows/models/users/channel_setting_update_params.rb +45 -0
  49. data/lib/notiflows/models/users/channel_settings.rb +91 -0
  50. data/lib/notiflows/models/users/delivery_list_params.rb +80 -0
  51. data/lib/notiflows/models/users/delivery_retrieve_params.rb +22 -0
  52. data/lib/notiflows/models/users/mobile_push_settings.rb +20 -0
  53. data/lib/notiflows/models/users/notification_list_params.rb +72 -0
  54. data/lib/notiflows/models/users/notification_retrieve_params.rb +22 -0
  55. data/lib/notiflows/models/users/preference_retrieve_params.rb +16 -0
  56. data/lib/notiflows/models/users/preference_update_params.rb +16 -0
  57. data/lib/notiflows/models/users/preferences.rb +116 -0
  58. data/lib/notiflows/models/users/slack_settings.rb +29 -0
  59. data/lib/notiflows/models/users/subscription.rb +45 -0
  60. data/lib/notiflows/models/users/subscription_list_params.rb +56 -0
  61. data/lib/notiflows/models/users/subscription_retrieve_params.rb +22 -0
  62. data/lib/notiflows/models/users/subscription_subscribe_params.rb +28 -0
  63. data/lib/notiflows/models/users/subscription_unsubscribe_params.rb +22 -0
  64. data/lib/notiflows/models/users/update_preferences_request.rb +45 -0
  65. data/lib/notiflows/models.rb +79 -0
  66. data/lib/notiflows/request_options.rb +77 -0
  67. data/lib/notiflows/resources/deliveries.rb +77 -0
  68. data/lib/notiflows/resources/notifications.rb +112 -0
  69. data/lib/notiflows/resources/notiflows.rb +60 -0
  70. data/lib/notiflows/resources/topics/subscriptions.rb +106 -0
  71. data/lib/notiflows/resources/topics.rb +91 -0
  72. data/lib/notiflows/resources/users/channel_settings.rb +132 -0
  73. data/lib/notiflows/resources/users/deliveries.rb +82 -0
  74. data/lib/notiflows/resources/users/notifications.rb +80 -0
  75. data/lib/notiflows/resources/users/preferences.rb +86 -0
  76. data/lib/notiflows/resources/users/subscriptions.rb +135 -0
  77. data/lib/notiflows/resources/users.rb +167 -0
  78. data/lib/notiflows/version.rb +5 -0
  79. data/lib/notiflows.rb +109 -0
  80. data/manifest.yaml +17 -0
  81. data/rbi/notiflows/client.rbi +82 -0
  82. data/rbi/notiflows/errors.rbi +205 -0
  83. data/rbi/notiflows/file_part.rbi +37 -0
  84. data/rbi/notiflows/internal/cursor_page.rbi +37 -0
  85. data/rbi/notiflows/internal/transport/base_client.rbi +298 -0
  86. data/rbi/notiflows/internal/transport/pooled_net_requester.rbi +83 -0
  87. data/rbi/notiflows/internal/type/array_of.rbi +104 -0
  88. data/rbi/notiflows/internal/type/base_model.rbi +308 -0
  89. data/rbi/notiflows/internal/type/base_page.rbi +42 -0
  90. data/rbi/notiflows/internal/type/boolean.rbi +58 -0
  91. data/rbi/notiflows/internal/type/converter.rbi +216 -0
  92. data/rbi/notiflows/internal/type/enum.rbi +82 -0
  93. data/rbi/notiflows/internal/type/file_input.rbi +59 -0
  94. data/rbi/notiflows/internal/type/hash_of.rbi +104 -0
  95. data/rbi/notiflows/internal/type/request_parameters.rbi +29 -0
  96. data/rbi/notiflows/internal/type/union.rbi +128 -0
  97. data/rbi/notiflows/internal/type/unknown.rbi +58 -0
  98. data/rbi/notiflows/internal/util.rbi +487 -0
  99. data/rbi/notiflows/internal.rbi +18 -0
  100. data/rbi/notiflows/models/delivery.rbi +226 -0
  101. data/rbi/notiflows/models/delivery_list_params.rbi +123 -0
  102. data/rbi/notiflows/models/delivery_retrieve_params.rbi +27 -0
  103. data/rbi/notiflows/models/notification.rbi +190 -0
  104. data/rbi/notiflows/models/notification_list_deliveries_params.rbi +126 -0
  105. data/rbi/notiflows/models/notification_list_params.rbi +112 -0
  106. data/rbi/notiflows/models/notification_retrieve_params.rbi +30 -0
  107. data/rbi/notiflows/models/notiflow_run_params.rbi +320 -0
  108. data/rbi/notiflows/models/notiflow_run_response.rbi +31 -0
  109. data/rbi/notiflows/models/topic.rbi +32 -0
  110. data/rbi/notiflows/models/topic_delete_params.rbi +27 -0
  111. data/rbi/notiflows/models/topic_list_params.rbi +68 -0
  112. data/rbi/notiflows/models/topic_retrieve_params.rbi +27 -0
  113. data/rbi/notiflows/models/topics/bulk_operation_response.rbi +93 -0
  114. data/rbi/notiflows/models/topics/bulk_subscribe_request.rbi +35 -0
  115. data/rbi/notiflows/models/topics/subscription_list_params.rbi +95 -0
  116. data/rbi/notiflows/models/topics/subscription_subscribe_bulk_params.rbi +32 -0
  117. data/rbi/notiflows/models/topics/subscription_unsubscribe_bulk_params.rbi +32 -0
  118. data/rbi/notiflows/models/user.rbi +126 -0
  119. data/rbi/notiflows/models/user_delete_params.rbi +27 -0
  120. data/rbi/notiflows/models/user_list_params.rbi +90 -0
  121. data/rbi/notiflows/models/user_retrieve_params.rbi +27 -0
  122. data/rbi/notiflows/models/user_upsert_params.rbi +203 -0
  123. data/rbi/notiflows/models/users/channel_setting_delete_params.rbi +43 -0
  124. data/rbi/notiflows/models/users/channel_setting_retrieve_params.rbi +43 -0
  125. data/rbi/notiflows/models/users/channel_setting_update_params.rbi +92 -0
  126. data/rbi/notiflows/models/users/channel_settings.rbi +156 -0
  127. data/rbi/notiflows/models/users/delivery_list_params.rbi +128 -0
  128. data/rbi/notiflows/models/users/delivery_retrieve_params.rbi +43 -0
  129. data/rbi/notiflows/models/users/mobile_push_settings.rbi +35 -0
  130. data/rbi/notiflows/models/users/notification_list_params.rbi +117 -0
  131. data/rbi/notiflows/models/users/notification_retrieve_params.rbi +43 -0
  132. data/rbi/notiflows/models/users/preference_retrieve_params.rbi +32 -0
  133. data/rbi/notiflows/models/users/preference_update_params.rbi +34 -0
  134. data/rbi/notiflows/models/users/preferences.rbi +241 -0
  135. data/rbi/notiflows/models/users/slack_settings.rbi +49 -0
  136. data/rbi/notiflows/models/users/subscription.rbi +64 -0
  137. data/rbi/notiflows/models/users/subscription_list_params.rbi +95 -0
  138. data/rbi/notiflows/models/users/subscription_retrieve_params.rbi +43 -0
  139. data/rbi/notiflows/models/users/subscription_subscribe_params.rbi +47 -0
  140. data/rbi/notiflows/models/users/subscription_unsubscribe_params.rbi +43 -0
  141. data/rbi/notiflows/models/users/update_preferences_request.rbi +124 -0
  142. data/rbi/notiflows/models.rbi +42 -0
  143. data/rbi/notiflows/request_options.rbi +59 -0
  144. data/rbi/notiflows/resources/deliveries.rbi +67 -0
  145. data/rbi/notiflows/resources/notifications.rbi +100 -0
  146. data/rbi/notiflows/resources/notiflows.rbi +52 -0
  147. data/rbi/notiflows/resources/topics/subscriptions.rbi +88 -0
  148. data/rbi/notiflows/resources/topics.rbi +69 -0
  149. data/rbi/notiflows/resources/users/channel_settings.rbi +104 -0
  150. data/rbi/notiflows/resources/users/deliveries.rbi +69 -0
  151. data/rbi/notiflows/resources/users/notifications.rbi +66 -0
  152. data/rbi/notiflows/resources/users/preferences.rbi +76 -0
  153. data/rbi/notiflows/resources/users/subscriptions.rbi +102 -0
  154. data/rbi/notiflows/resources/users.rbi +147 -0
  155. data/rbi/notiflows/version.rbi +5 -0
  156. data/sig/notiflows/client.rbs +41 -0
  157. data/sig/notiflows/errors.rbs +117 -0
  158. data/sig/notiflows/file_part.rbs +21 -0
  159. data/sig/notiflows/internal/cursor_page.rbs +22 -0
  160. data/sig/notiflows/internal/transport/base_client.rbs +133 -0
  161. data/sig/notiflows/internal/transport/pooled_net_requester.rbs +48 -0
  162. data/sig/notiflows/internal/type/array_of.rbs +48 -0
  163. data/sig/notiflows/internal/type/base_model.rbs +102 -0
  164. data/sig/notiflows/internal/type/base_page.rbs +24 -0
  165. data/sig/notiflows/internal/type/boolean.rbs +26 -0
  166. data/sig/notiflows/internal/type/converter.rbs +79 -0
  167. data/sig/notiflows/internal/type/enum.rbs +32 -0
  168. data/sig/notiflows/internal/type/file_input.rbs +25 -0
  169. data/sig/notiflows/internal/type/hash_of.rbs +48 -0
  170. data/sig/notiflows/internal/type/request_parameters.rbs +19 -0
  171. data/sig/notiflows/internal/type/union.rbs +52 -0
  172. data/sig/notiflows/internal/type/unknown.rbs +26 -0
  173. data/sig/notiflows/internal/util.rbs +185 -0
  174. data/sig/notiflows/internal.rbs +9 -0
  175. data/sig/notiflows/models/delivery.rbs +130 -0
  176. data/sig/notiflows/models/delivery_list_params.rbs +77 -0
  177. data/sig/notiflows/models/delivery_retrieve_params.rbs +15 -0
  178. data/sig/notiflows/models/notification.rbs +104 -0
  179. data/sig/notiflows/models/notification_list_deliveries_params.rbs +77 -0
  180. data/sig/notiflows/models/notification_list_params.rbs +70 -0
  181. data/sig/notiflows/models/notification_retrieve_params.rbs +15 -0
  182. data/sig/notiflows/models/notiflow_run_params.rbs +199 -0
  183. data/sig/notiflows/models/notiflow_run_response.rbs +13 -0
  184. data/sig/notiflows/models/topic.rbs +15 -0
  185. data/sig/notiflows/models/topic_delete_params.rbs +15 -0
  186. data/sig/notiflows/models/topic_list_params.rbs +38 -0
  187. data/sig/notiflows/models/topic_retrieve_params.rbs +15 -0
  188. data/sig/notiflows/models/topics/bulk_operation_response.rbs +39 -0
  189. data/sig/notiflows/models/topics/bulk_subscribe_request.rbs +15 -0
  190. data/sig/notiflows/models/topics/subscription_list_params.rbs +58 -0
  191. data/sig/notiflows/models/topics/subscription_subscribe_bulk_params.rbs +17 -0
  192. data/sig/notiflows/models/topics/subscription_unsubscribe_bulk_params.rbs +17 -0
  193. data/sig/notiflows/models/user.rbs +75 -0
  194. data/sig/notiflows/models/user_delete_params.rbs +15 -0
  195. data/sig/notiflows/models/user_list_params.rbs +56 -0
  196. data/sig/notiflows/models/user_retrieve_params.rbs +15 -0
  197. data/sig/notiflows/models/user_upsert_params.rbs +112 -0
  198. data/sig/notiflows/models/users/channel_setting_delete_params.rbs +26 -0
  199. data/sig/notiflows/models/users/channel_setting_retrieve_params.rbs +26 -0
  200. data/sig/notiflows/models/users/channel_setting_update_params.rbs +42 -0
  201. data/sig/notiflows/models/users/channel_settings.rbs +68 -0
  202. data/sig/notiflows/models/users/delivery_list_params.rbs +79 -0
  203. data/sig/notiflows/models/users/delivery_retrieve_params.rbs +26 -0
  204. data/sig/notiflows/models/users/mobile_push_settings.rbs +15 -0
  205. data/sig/notiflows/models/users/notification_list_params.rbs +72 -0
  206. data/sig/notiflows/models/users/notification_retrieve_params.rbs +26 -0
  207. data/sig/notiflows/models/users/preference_retrieve_params.rbs +17 -0
  208. data/sig/notiflows/models/users/preference_update_params.rbs +17 -0
  209. data/sig/notiflows/models/users/preferences.rbs +118 -0
  210. data/sig/notiflows/models/users/slack_settings.rbs +24 -0
  211. data/sig/notiflows/models/users/subscription.rbs +32 -0
  212. data/sig/notiflows/models/users/subscription_list_params.rbs +58 -0
  213. data/sig/notiflows/models/users/subscription_retrieve_params.rbs +26 -0
  214. data/sig/notiflows/models/users/subscription_subscribe_params.rbs +25 -0
  215. data/sig/notiflows/models/users/subscription_unsubscribe_params.rbs +26 -0
  216. data/sig/notiflows/models/users/update_preferences_request.rbs +52 -0
  217. data/sig/notiflows/models.rbs +39 -0
  218. data/sig/notiflows/request_options.rbs +34 -0
  219. data/sig/notiflows/resources/deliveries.rbs +24 -0
  220. data/sig/notiflows/resources/notifications.rbs +36 -0
  221. data/sig/notiflows/resources/notiflows.rbs +16 -0
  222. data/sig/notiflows/resources/topics/subscriptions.rbs +31 -0
  223. data/sig/notiflows/resources/topics.rbs +23 -0
  224. data/sig/notiflows/resources/users/channel_settings.rbs +28 -0
  225. data/sig/notiflows/resources/users/deliveries.rbs +28 -0
  226. data/sig/notiflows/resources/users/notifications.rbs +27 -0
  227. data/sig/notiflows/resources/users/preferences.rbs +21 -0
  228. data/sig/notiflows/resources/users/subscriptions.rbs +37 -0
  229. data/sig/notiflows/resources/users.rbs +52 -0
  230. data/sig/notiflows/version.rbs +3 -0
  231. metadata +302 -0
@@ -0,0 +1,93 @@
1
+ # typed: strong
2
+
3
+ module Notiflows
4
+ module Models
5
+ module Topics
6
+ class BulkOperationResponse < Notiflows::Internal::Type::BaseModel
7
+ OrHash =
8
+ T.type_alias do
9
+ T.any(
10
+ Notiflows::Topics::BulkOperationResponse,
11
+ Notiflows::Internal::AnyHash
12
+ )
13
+ end
14
+
15
+ # Failed operations with error details
16
+ sig do
17
+ returns(T::Array[Notiflows::Topics::BulkOperationResponse::Failed])
18
+ end
19
+ attr_accessor :failed
20
+
21
+ # Successfully processed subscriptions
22
+ sig { returns(T::Array[Notiflows::Users::Subscription]) }
23
+ attr_accessor :successful
24
+
25
+ # Response for bulk operations showing successful and failed items
26
+ sig do
27
+ params(
28
+ failed:
29
+ T::Array[
30
+ Notiflows::Topics::BulkOperationResponse::Failed::OrHash
31
+ ],
32
+ successful: T::Array[Notiflows::Users::Subscription::OrHash]
33
+ ).returns(T.attached_class)
34
+ end
35
+ def self.new(
36
+ # Failed operations with error details
37
+ failed:,
38
+ # Successfully processed subscriptions
39
+ successful:
40
+ )
41
+ end
42
+
43
+ sig do
44
+ override.returns(
45
+ {
46
+ failed:
47
+ T::Array[Notiflows::Topics::BulkOperationResponse::Failed],
48
+ successful: T::Array[Notiflows::Users::Subscription]
49
+ }
50
+ )
51
+ end
52
+ def to_hash
53
+ end
54
+
55
+ class Failed < Notiflows::Internal::Type::BaseModel
56
+ OrHash =
57
+ T.type_alias do
58
+ T.any(
59
+ Notiflows::Topics::BulkOperationResponse::Failed,
60
+ Notiflows::Internal::AnyHash
61
+ )
62
+ end
63
+
64
+ # The external ID that failed
65
+ sig { returns(String) }
66
+ attr_accessor :external_id
67
+
68
+ # Human-readable error reason
69
+ sig { returns(String) }
70
+ attr_accessor :reason
71
+
72
+ # Details of a failed bulk operation item
73
+ sig do
74
+ params(external_id: String, reason: String).returns(
75
+ T.attached_class
76
+ )
77
+ end
78
+ def self.new(
79
+ # The external ID that failed
80
+ external_id:,
81
+ # Human-readable error reason
82
+ reason:
83
+ )
84
+ end
85
+
86
+ sig { override.returns({ external_id: String, reason: String }) }
87
+ def to_hash
88
+ end
89
+ end
90
+ end
91
+ end
92
+ end
93
+ end
@@ -0,0 +1,35 @@
1
+ # typed: strong
2
+
3
+ module Notiflows
4
+ module Models
5
+ module Topics
6
+ class BulkSubscribeRequest < Notiflows::Internal::Type::BaseModel
7
+ OrHash =
8
+ T.type_alias do
9
+ T.any(
10
+ Notiflows::Topics::BulkSubscribeRequest,
11
+ Notiflows::Internal::AnyHash
12
+ )
13
+ end
14
+
15
+ # List of user external IDs to subscribe/unsubscribe
16
+ sig { returns(T::Array[String]) }
17
+ attr_accessor :user_external_ids
18
+
19
+ # Request body for bulk subscribe/unsubscribe operations
20
+ sig do
21
+ params(user_external_ids: T::Array[String]).returns(T.attached_class)
22
+ end
23
+ def self.new(
24
+ # List of user external IDs to subscribe/unsubscribe
25
+ user_external_ids:
26
+ )
27
+ end
28
+
29
+ sig { override.returns({ user_external_ids: T::Array[String] }) }
30
+ def to_hash
31
+ end
32
+ end
33
+ end
34
+ end
35
+ end
@@ -0,0 +1,95 @@
1
+ # typed: strong
2
+
3
+ module Notiflows
4
+ module Models
5
+ module Topics
6
+ class SubscriptionListParams < Notiflows::Internal::Type::BaseModel
7
+ extend Notiflows::Internal::Type::RequestParameters::Converter
8
+ include Notiflows::Internal::Type::RequestParameters
9
+
10
+ OrHash =
11
+ T.type_alias do
12
+ T.any(
13
+ Notiflows::Topics::SubscriptionListParams,
14
+ Notiflows::Internal::AnyHash
15
+ )
16
+ end
17
+
18
+ # Cursor for fetching the next page
19
+ sig { returns(T.nilable(String)) }
20
+ attr_reader :after
21
+
22
+ sig { params(after: String).void }
23
+ attr_writer :after
24
+
25
+ # Cursor for fetching the previous page
26
+ sig { returns(T.nilable(String)) }
27
+ attr_reader :before
28
+
29
+ sig { params(before: String).void }
30
+ attr_writer :before
31
+
32
+ # Filter by created after (ISO 8601 datetime)
33
+ sig { returns(T.nilable(String)) }
34
+ attr_reader :created_after
35
+
36
+ sig { params(created_after: String).void }
37
+ attr_writer :created_after
38
+
39
+ # Filter by created before (ISO 8601 datetime)
40
+ sig { returns(T.nilable(String)) }
41
+ attr_reader :created_before
42
+
43
+ sig { params(created_before: String).void }
44
+ attr_writer :created_before
45
+
46
+ # Number of items per page (default: 25, max: 1000)
47
+ sig { returns(T.nilable(Integer)) }
48
+ attr_reader :limit
49
+
50
+ sig { params(limit: Integer).void }
51
+ attr_writer :limit
52
+
53
+ sig do
54
+ params(
55
+ after: String,
56
+ before: String,
57
+ created_after: String,
58
+ created_before: String,
59
+ limit: Integer,
60
+ request_options: Notiflows::RequestOptions::OrHash
61
+ ).returns(T.attached_class)
62
+ end
63
+ def self.new(
64
+ # Cursor for fetching the next page
65
+ after: nil,
66
+ # Cursor for fetching the previous page
67
+ before: nil,
68
+ # Filter by created after (ISO 8601 datetime)
69
+ created_after: nil,
70
+ # Filter by created before (ISO 8601 datetime)
71
+ created_before: nil,
72
+ # Number of items per page (default: 25, max: 1000)
73
+ limit: nil,
74
+ request_options: {}
75
+ )
76
+ end
77
+
78
+ sig do
79
+ override.returns(
80
+ {
81
+ after: String,
82
+ before: String,
83
+ created_after: String,
84
+ created_before: String,
85
+ limit: Integer,
86
+ request_options: Notiflows::RequestOptions
87
+ }
88
+ )
89
+ end
90
+ def to_hash
91
+ end
92
+ end
93
+ end
94
+ end
95
+ end
@@ -0,0 +1,32 @@
1
+ # typed: strong
2
+
3
+ module Notiflows
4
+ module Models
5
+ module Topics
6
+ class SubscriptionSubscribeBulkParams < Notiflows::Models::Topics::BulkSubscribeRequest
7
+ extend Notiflows::Internal::Type::RequestParameters::Converter
8
+ include Notiflows::Internal::Type::RequestParameters
9
+
10
+ OrHash =
11
+ T.type_alias do
12
+ T.any(
13
+ Notiflows::Topics::SubscriptionSubscribeBulkParams,
14
+ Notiflows::Internal::AnyHash
15
+ )
16
+ end
17
+
18
+ sig do
19
+ params(request_options: Notiflows::RequestOptions::OrHash).returns(
20
+ T.attached_class
21
+ )
22
+ end
23
+ def self.new(request_options: {})
24
+ end
25
+
26
+ sig { override.returns({ request_options: Notiflows::RequestOptions }) }
27
+ def to_hash
28
+ end
29
+ end
30
+ end
31
+ end
32
+ end
@@ -0,0 +1,32 @@
1
+ # typed: strong
2
+
3
+ module Notiflows
4
+ module Models
5
+ module Topics
6
+ class SubscriptionUnsubscribeBulkParams < Notiflows::Models::Topics::BulkSubscribeRequest
7
+ extend Notiflows::Internal::Type::RequestParameters::Converter
8
+ include Notiflows::Internal::Type::RequestParameters
9
+
10
+ OrHash =
11
+ T.type_alias do
12
+ T.any(
13
+ Notiflows::Topics::SubscriptionUnsubscribeBulkParams,
14
+ Notiflows::Internal::AnyHash
15
+ )
16
+ end
17
+
18
+ sig do
19
+ params(request_options: Notiflows::RequestOptions::OrHash).returns(
20
+ T.attached_class
21
+ )
22
+ end
23
+ def self.new(request_options: {})
24
+ end
25
+
26
+ sig { override.returns({ request_options: Notiflows::RequestOptions }) }
27
+ def to_hash
28
+ end
29
+ end
30
+ end
31
+ end
32
+ end
@@ -0,0 +1,126 @@
1
+ # typed: strong
2
+
3
+ module Notiflows
4
+ module Models
5
+ class User < Notiflows::Internal::Type::BaseModel
6
+ OrHash =
7
+ T.type_alias { T.any(Notiflows::User, Notiflows::Internal::AnyHash) }
8
+
9
+ # Internal Notiflows user ID (UUIDv7)
10
+ sig { returns(String) }
11
+ attr_accessor :id
12
+
13
+ # When the user was created (ISO 8601)
14
+ sig { returns(Time) }
15
+ attr_accessor :created_at
16
+
17
+ # Your system's unique identifier for this user
18
+ sig { returns(String) }
19
+ attr_accessor :external_id
20
+
21
+ # When the user was last updated (ISO 8601)
22
+ sig { returns(Time) }
23
+ attr_accessor :updated_at
24
+
25
+ # URL to user's avatar image (must be https://)
26
+ sig { returns(T.nilable(String)) }
27
+ attr_accessor :avatar
28
+
29
+ # Arbitrary JSON object for additional user attributes. Accessible in templates as
30
+ # `recipient.custom_fields.*`
31
+ sig { returns(T.nilable(T.anything)) }
32
+ attr_accessor :custom_fields
33
+
34
+ # User's email address for email notifications
35
+ sig { returns(T.nilable(String)) }
36
+ attr_accessor :email
37
+
38
+ # User's first name for personalization
39
+ sig { returns(T.nilable(String)) }
40
+ attr_accessor :first_name
41
+
42
+ # User's last name for personalization
43
+ sig { returns(T.nilable(String)) }
44
+ attr_accessor :last_name
45
+
46
+ # BCP 47 locale code for localized notifications
47
+ sig { returns(T.nilable(String)) }
48
+ attr_accessor :locale
49
+
50
+ # User's phone number in E.164 format for SMS notifications
51
+ sig { returns(T.nilable(String)) }
52
+ attr_accessor :phone
53
+
54
+ # IANA timezone for time-sensitive notifications
55
+ sig { returns(T.nilable(String)) }
56
+ attr_accessor :timezone
57
+
58
+ # A user (recipient) in your project
59
+ sig do
60
+ params(
61
+ id: String,
62
+ created_at: Time,
63
+ external_id: String,
64
+ updated_at: Time,
65
+ avatar: T.nilable(String),
66
+ custom_fields: T.nilable(T.anything),
67
+ email: T.nilable(String),
68
+ first_name: T.nilable(String),
69
+ last_name: T.nilable(String),
70
+ locale: T.nilable(String),
71
+ phone: T.nilable(String),
72
+ timezone: T.nilable(String)
73
+ ).returns(T.attached_class)
74
+ end
75
+ def self.new(
76
+ # Internal Notiflows user ID (UUIDv7)
77
+ id:,
78
+ # When the user was created (ISO 8601)
79
+ created_at:,
80
+ # Your system's unique identifier for this user
81
+ external_id:,
82
+ # When the user was last updated (ISO 8601)
83
+ updated_at:,
84
+ # URL to user's avatar image (must be https://)
85
+ avatar: nil,
86
+ # Arbitrary JSON object for additional user attributes. Accessible in templates as
87
+ # `recipient.custom_fields.*`
88
+ custom_fields: nil,
89
+ # User's email address for email notifications
90
+ email: nil,
91
+ # User's first name for personalization
92
+ first_name: nil,
93
+ # User's last name for personalization
94
+ last_name: nil,
95
+ # BCP 47 locale code for localized notifications
96
+ locale: nil,
97
+ # User's phone number in E.164 format for SMS notifications
98
+ phone: nil,
99
+ # IANA timezone for time-sensitive notifications
100
+ timezone: nil
101
+ )
102
+ end
103
+
104
+ sig do
105
+ override.returns(
106
+ {
107
+ id: String,
108
+ created_at: Time,
109
+ external_id: String,
110
+ updated_at: Time,
111
+ avatar: T.nilable(String),
112
+ custom_fields: T.nilable(T.anything),
113
+ email: T.nilable(String),
114
+ first_name: T.nilable(String),
115
+ last_name: T.nilable(String),
116
+ locale: T.nilable(String),
117
+ phone: T.nilable(String),
118
+ timezone: T.nilable(String)
119
+ }
120
+ )
121
+ end
122
+ def to_hash
123
+ end
124
+ end
125
+ end
126
+ end
@@ -0,0 +1,27 @@
1
+ # typed: strong
2
+
3
+ module Notiflows
4
+ module Models
5
+ class UserDeleteParams < Notiflows::Internal::Type::BaseModel
6
+ extend Notiflows::Internal::Type::RequestParameters::Converter
7
+ include Notiflows::Internal::Type::RequestParameters
8
+
9
+ OrHash =
10
+ T.type_alias do
11
+ T.any(Notiflows::UserDeleteParams, Notiflows::Internal::AnyHash)
12
+ end
13
+
14
+ sig do
15
+ params(request_options: Notiflows::RequestOptions::OrHash).returns(
16
+ T.attached_class
17
+ )
18
+ end
19
+ def self.new(request_options: {})
20
+ end
21
+
22
+ sig { override.returns({ request_options: Notiflows::RequestOptions }) }
23
+ def to_hash
24
+ end
25
+ end
26
+ end
27
+ end
@@ -0,0 +1,90 @@
1
+ # typed: strong
2
+
3
+ module Notiflows
4
+ module Models
5
+ class UserListParams < Notiflows::Internal::Type::BaseModel
6
+ extend Notiflows::Internal::Type::RequestParameters::Converter
7
+ include Notiflows::Internal::Type::RequestParameters
8
+
9
+ OrHash =
10
+ T.type_alias do
11
+ T.any(Notiflows::UserListParams, Notiflows::Internal::AnyHash)
12
+ end
13
+
14
+ # Cursor for fetching the next page
15
+ sig { returns(T.nilable(String)) }
16
+ attr_reader :after
17
+
18
+ sig { params(after: String).void }
19
+ attr_writer :after
20
+
21
+ # Cursor for fetching the previous page
22
+ sig { returns(T.nilable(String)) }
23
+ attr_reader :before
24
+
25
+ sig { params(before: String).void }
26
+ attr_writer :before
27
+
28
+ # Filter users created after this datetime (ISO 8601)
29
+ sig { returns(T.nilable(String)) }
30
+ attr_reader :created_after
31
+
32
+ sig { params(created_after: String).void }
33
+ attr_writer :created_after
34
+
35
+ # Filter users created before this datetime (ISO 8601)
36
+ sig { returns(T.nilable(String)) }
37
+ attr_reader :created_before
38
+
39
+ sig { params(created_before: String).void }
40
+ attr_writer :created_before
41
+
42
+ # Number of items per page (default: 25, max: 1000)
43
+ sig { returns(T.nilable(Integer)) }
44
+ attr_reader :limit
45
+
46
+ sig { params(limit: Integer).void }
47
+ attr_writer :limit
48
+
49
+ sig do
50
+ params(
51
+ after: String,
52
+ before: String,
53
+ created_after: String,
54
+ created_before: String,
55
+ limit: Integer,
56
+ request_options: Notiflows::RequestOptions::OrHash
57
+ ).returns(T.attached_class)
58
+ end
59
+ def self.new(
60
+ # Cursor for fetching the next page
61
+ after: nil,
62
+ # Cursor for fetching the previous page
63
+ before: nil,
64
+ # Filter users created after this datetime (ISO 8601)
65
+ created_after: nil,
66
+ # Filter users created before this datetime (ISO 8601)
67
+ created_before: nil,
68
+ # Number of items per page (default: 25, max: 1000)
69
+ limit: nil,
70
+ request_options: {}
71
+ )
72
+ end
73
+
74
+ sig do
75
+ override.returns(
76
+ {
77
+ after: String,
78
+ before: String,
79
+ created_after: String,
80
+ created_before: String,
81
+ limit: Integer,
82
+ request_options: Notiflows::RequestOptions
83
+ }
84
+ )
85
+ end
86
+ def to_hash
87
+ end
88
+ end
89
+ end
90
+ end
@@ -0,0 +1,27 @@
1
+ # typed: strong
2
+
3
+ module Notiflows
4
+ module Models
5
+ class UserRetrieveParams < Notiflows::Internal::Type::BaseModel
6
+ extend Notiflows::Internal::Type::RequestParameters::Converter
7
+ include Notiflows::Internal::Type::RequestParameters
8
+
9
+ OrHash =
10
+ T.type_alias do
11
+ T.any(Notiflows::UserRetrieveParams, Notiflows::Internal::AnyHash)
12
+ end
13
+
14
+ sig do
15
+ params(request_options: Notiflows::RequestOptions::OrHash).returns(
16
+ T.attached_class
17
+ )
18
+ end
19
+ def self.new(request_options: {})
20
+ end
21
+
22
+ sig { override.returns({ request_options: Notiflows::RequestOptions }) }
23
+ def to_hash
24
+ end
25
+ end
26
+ end
27
+ end