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,197 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Notiflows
4
+ module Models
5
+ # @see Notiflows::Resources::Notiflows#run
6
+ class NotiflowRunParams < Notiflows::Internal::Type::BaseModel
7
+ extend Notiflows::Internal::Type::RequestParameters::Converter
8
+ include Notiflows::Internal::Type::RequestParameters
9
+
10
+ # @!attribute actor
11
+ # Actor (triggering user) specification. Accessible in templates as `actor.*`.
12
+ #
13
+ # @return [Notiflows::Models::NotiflowRunParams::Actor, nil]
14
+ optional :actor, -> { Notiflows::NotiflowRunParams::Actor }
15
+
16
+ # @!attribute data
17
+ # Template variables. Accessible in notification templates as `data.*`.
18
+ #
19
+ # @return [Object, nil]
20
+ optional :data, Notiflows::Internal::Type::Unknown
21
+
22
+ # @!attribute recipients
23
+ # List of recipients. Each recipient must have an `external_id`. Users are
24
+ # auto-created if they don't exist.
25
+ #
26
+ # @return [Array<Notiflows::Models::NotiflowRunParams::Recipient>, nil]
27
+ optional :recipients, -> { Notiflows::Internal::Type::ArrayOf[Notiflows::NotiflowRunParams::Recipient] }
28
+
29
+ # @!attribute topic
30
+ # Topic name for pub/sub targeting. Cannot be used with `recipients`.
31
+ #
32
+ # @return [String, nil]
33
+ optional :topic, String
34
+
35
+ # @!method initialize(actor: nil, data: nil, recipients: nil, topic: nil, request_options: {})
36
+ # Some parameter documentations has been truncated, see
37
+ # {Notiflows::Models::NotiflowRunParams} for more details.
38
+ #
39
+ # @param actor [Notiflows::Models::NotiflowRunParams::Actor] Actor (triggering user) specification. Accessible in templates as `actor.*`.
40
+ #
41
+ # @param data [Object] Template variables. Accessible in notification templates as `data.*`.
42
+ #
43
+ # @param recipients [Array<Notiflows::Models::NotiflowRunParams::Recipient>] List of recipients. Each recipient must have an `external_id`. Users are auto-cr
44
+ #
45
+ # @param topic [String] Topic name for pub/sub targeting. Cannot be used with `recipients`.
46
+ #
47
+ # @param request_options [Notiflows::RequestOptions, Hash{Symbol=>Object}]
48
+
49
+ class Actor < Notiflows::Internal::Type::BaseModel
50
+ # @!attribute external_id
51
+ # Your system's identifier for the actor (required)
52
+ #
53
+ # @return [String]
54
+ required :external_id, String
55
+
56
+ # @!attribute avatar
57
+ #
58
+ # @return [String, nil]
59
+ optional :avatar, String
60
+
61
+ # @!attribute custom_fields
62
+ #
63
+ # @return [Object, nil]
64
+ optional :custom_fields, Notiflows::Internal::Type::Unknown
65
+
66
+ # @!attribute email
67
+ #
68
+ # @return [String, nil]
69
+ optional :email, String
70
+
71
+ # @!attribute first_name
72
+ #
73
+ # @return [String, nil]
74
+ optional :first_name, String
75
+
76
+ # @!attribute last_name
77
+ #
78
+ # @return [String, nil]
79
+ optional :last_name, String
80
+
81
+ # @!attribute locale
82
+ #
83
+ # @return [String, nil]
84
+ optional :locale, String
85
+
86
+ # @!attribute phone
87
+ #
88
+ # @return [String, nil]
89
+ optional :phone, String
90
+
91
+ # @!attribute timezone
92
+ #
93
+ # @return [String, nil]
94
+ optional :timezone, String
95
+
96
+ # @!method initialize(external_id:, avatar: nil, custom_fields: nil, email: nil, first_name: nil, last_name: nil, locale: nil, phone: nil, timezone: nil)
97
+ # Actor (triggering user) specification. Accessible in templates as `actor.*`.
98
+ #
99
+ # @param external_id [String] Your system's identifier for the actor (required)
100
+ #
101
+ # @param avatar [String]
102
+ #
103
+ # @param custom_fields [Object]
104
+ #
105
+ # @param email [String]
106
+ #
107
+ # @param first_name [String]
108
+ #
109
+ # @param last_name [String]
110
+ #
111
+ # @param locale [String]
112
+ #
113
+ # @param phone [String]
114
+ #
115
+ # @param timezone [String]
116
+ end
117
+
118
+ class Recipient < Notiflows::Internal::Type::BaseModel
119
+ # @!attribute external_id
120
+ # Your system's unique identifier for this user (required)
121
+ #
122
+ # @return [String]
123
+ required :external_id, String
124
+
125
+ # @!attribute avatar
126
+ # Avatar URL
127
+ #
128
+ # @return [String, nil]
129
+ optional :avatar, String
130
+
131
+ # @!attribute custom_fields
132
+ # Custom attributes
133
+ #
134
+ # @return [Object, nil]
135
+ optional :custom_fields, Notiflows::Internal::Type::Unknown
136
+
137
+ # @!attribute email
138
+ # Email address (used if user is auto-created)
139
+ #
140
+ # @return [String, nil]
141
+ optional :email, String
142
+
143
+ # @!attribute first_name
144
+ # First name
145
+ #
146
+ # @return [String, nil]
147
+ optional :first_name, String
148
+
149
+ # @!attribute last_name
150
+ # Last name
151
+ #
152
+ # @return [String, nil]
153
+ optional :last_name, String
154
+
155
+ # @!attribute locale
156
+ # BCP 47 locale
157
+ #
158
+ # @return [String, nil]
159
+ optional :locale, String
160
+
161
+ # @!attribute phone
162
+ # Phone number in E.164 format
163
+ #
164
+ # @return [String, nil]
165
+ optional :phone, String
166
+
167
+ # @!attribute timezone
168
+ # IANA timezone
169
+ #
170
+ # @return [String, nil]
171
+ optional :timezone, String
172
+
173
+ # @!method initialize(external_id:, avatar: nil, custom_fields: nil, email: nil, first_name: nil, last_name: nil, locale: nil, phone: nil, timezone: nil)
174
+ # Recipient specification for running a notiflow. Users are auto-created if they
175
+ # don't exist.
176
+ #
177
+ # @param external_id [String] Your system's unique identifier for this user (required)
178
+ #
179
+ # @param avatar [String] Avatar URL
180
+ #
181
+ # @param custom_fields [Object] Custom attributes
182
+ #
183
+ # @param email [String] Email address (used if user is auto-created)
184
+ #
185
+ # @param first_name [String] First name
186
+ #
187
+ # @param last_name [String] Last name
188
+ #
189
+ # @param locale [String] BCP 47 locale
190
+ #
191
+ # @param phone [String] Phone number in E.164 format
192
+ #
193
+ # @param timezone [String] IANA timezone
194
+ end
195
+ end
196
+ end
197
+ end
@@ -0,0 +1,19 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Notiflows
4
+ module Models
5
+ # @see Notiflows::Resources::Notiflows#run
6
+ class NotiflowRunResponse < Notiflows::Internal::Type::BaseModel
7
+ # @!attribute notiflow_run_id
8
+ # ID of the notiflow run. Use this to query notifications created by this run.
9
+ #
10
+ # @return [String]
11
+ required :notiflow_run_id, String
12
+
13
+ # @!method initialize(notiflow_run_id:)
14
+ # Response after successfully running a notiflow
15
+ #
16
+ # @param notiflow_run_id [String] ID of the notiflow run. Use this to query notifications created by this run.
17
+ end
18
+ end
19
+ end
@@ -0,0 +1,27 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Notiflows
4
+ module Models
5
+ # @see Notiflows::Resources::Topics#retrieve
6
+ class Topic < Notiflows::Internal::Type::BaseModel
7
+ # @!attribute created_at
8
+ # When the topic was created
9
+ #
10
+ # @return [Time]
11
+ required :created_at, Time
12
+
13
+ # @!attribute name
14
+ # Unique topic name within your project
15
+ #
16
+ # @return [String]
17
+ required :name, String
18
+
19
+ # @!method initialize(created_at:, name:)
20
+ # A topic for pub/sub notification patterns
21
+ #
22
+ # @param created_at [Time] When the topic was created
23
+ #
24
+ # @param name [String] Unique topic name within your project
25
+ end
26
+ end
27
+ end
@@ -0,0 +1,14 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Notiflows
4
+ module Models
5
+ # @see Notiflows::Resources::Topics#delete
6
+ class TopicDeleteParams < Notiflows::Internal::Type::BaseModel
7
+ extend Notiflows::Internal::Type::RequestParameters::Converter
8
+ include Notiflows::Internal::Type::RequestParameters
9
+
10
+ # @!method initialize(request_options: {})
11
+ # @param request_options [Notiflows::RequestOptions, Hash{Symbol=>Object}]
12
+ end
13
+ end
14
+ end
@@ -0,0 +1,38 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Notiflows
4
+ module Models
5
+ # @see Notiflows::Resources::Topics#list
6
+ class TopicListParams < Notiflows::Internal::Type::BaseModel
7
+ extend Notiflows::Internal::Type::RequestParameters::Converter
8
+ include Notiflows::Internal::Type::RequestParameters
9
+
10
+ # @!attribute after
11
+ # Cursor for fetching the next page
12
+ #
13
+ # @return [String, nil]
14
+ optional :after, String
15
+
16
+ # @!attribute before
17
+ # Cursor for fetching the previous page
18
+ #
19
+ # @return [String, nil]
20
+ optional :before, String
21
+
22
+ # @!attribute limit
23
+ # Number of items per page (default: 25, max: 1000)
24
+ #
25
+ # @return [Integer, nil]
26
+ optional :limit, Integer
27
+
28
+ # @!method initialize(after: nil, before: nil, limit: nil, request_options: {})
29
+ # @param after [String] Cursor for fetching the next page
30
+ #
31
+ # @param before [String] Cursor for fetching the previous page
32
+ #
33
+ # @param limit [Integer] Number of items per page (default: 25, max: 1000)
34
+ #
35
+ # @param request_options [Notiflows::RequestOptions, Hash{Symbol=>Object}]
36
+ end
37
+ end
38
+ end
@@ -0,0 +1,14 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Notiflows
4
+ module Models
5
+ # @see Notiflows::Resources::Topics#retrieve
6
+ class TopicRetrieveParams < Notiflows::Internal::Type::BaseModel
7
+ extend Notiflows::Internal::Type::RequestParameters::Converter
8
+ include Notiflows::Internal::Type::RequestParameters
9
+
10
+ # @!method initialize(request_options: {})
11
+ # @param request_options [Notiflows::RequestOptions, Hash{Symbol=>Object}]
12
+ end
13
+ end
14
+ end
@@ -0,0 +1,51 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Notiflows
4
+ module Models
5
+ module Topics
6
+ # @see Notiflows::Resources::Topics::Subscriptions#subscribe_bulk
7
+ class BulkOperationResponse < Notiflows::Internal::Type::BaseModel
8
+ # @!attribute failed
9
+ # Failed operations with error details
10
+ #
11
+ # @return [Array<Notiflows::Models::Topics::BulkOperationResponse::Failed>]
12
+ required :failed,
13
+ -> { Notiflows::Internal::Type::ArrayOf[Notiflows::Topics::BulkOperationResponse::Failed] }
14
+
15
+ # @!attribute successful
16
+ # Successfully processed subscriptions
17
+ #
18
+ # @return [Array<Notiflows::Models::Users::Subscription>]
19
+ required :successful, -> { Notiflows::Internal::Type::ArrayOf[Notiflows::Users::Subscription] }
20
+
21
+ # @!method initialize(failed:, successful:)
22
+ # Response for bulk operations showing successful and failed items
23
+ #
24
+ # @param failed [Array<Notiflows::Models::Topics::BulkOperationResponse::Failed>] Failed operations with error details
25
+ #
26
+ # @param successful [Array<Notiflows::Models::Users::Subscription>] Successfully processed subscriptions
27
+
28
+ class Failed < Notiflows::Internal::Type::BaseModel
29
+ # @!attribute external_id
30
+ # The external ID that failed
31
+ #
32
+ # @return [String]
33
+ required :external_id, String
34
+
35
+ # @!attribute reason
36
+ # Human-readable error reason
37
+ #
38
+ # @return [String]
39
+ required :reason, String
40
+
41
+ # @!method initialize(external_id:, reason:)
42
+ # Details of a failed bulk operation item
43
+ #
44
+ # @param external_id [String] The external ID that failed
45
+ #
46
+ # @param reason [String] Human-readable error reason
47
+ end
48
+ end
49
+ end
50
+ end
51
+ end
@@ -0,0 +1,20 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Notiflows
4
+ module Models
5
+ module Topics
6
+ class BulkSubscribeRequest < Notiflows::Internal::Type::BaseModel
7
+ # @!attribute user_external_ids
8
+ # List of user external IDs to subscribe/unsubscribe
9
+ #
10
+ # @return [Array<String>]
11
+ required :user_external_ids, Notiflows::Internal::Type::ArrayOf[String]
12
+
13
+ # @!method initialize(user_external_ids:)
14
+ # Request body for bulk subscribe/unsubscribe operations
15
+ #
16
+ # @param user_external_ids [Array<String>] List of user external IDs to subscribe/unsubscribe
17
+ end
18
+ end
19
+ end
20
+ end
@@ -0,0 +1,56 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Notiflows
4
+ module Models
5
+ module Topics
6
+ # @see Notiflows::Resources::Topics::Subscriptions#list
7
+ class SubscriptionListParams < 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
+ # @!method initialize(after: nil, before: nil, created_after: nil, created_before: nil, limit: nil, request_options: {})
42
+ # @param after [String] Cursor for fetching the next page
43
+ #
44
+ # @param before [String] Cursor for fetching the previous page
45
+ #
46
+ # @param created_after [String] Filter by created after (ISO 8601 datetime)
47
+ #
48
+ # @param created_before [String] Filter by created before (ISO 8601 datetime)
49
+ #
50
+ # @param limit [Integer] Number of items per page (default: 25, max: 1000)
51
+ #
52
+ # @param request_options [Notiflows::RequestOptions, Hash{Symbol=>Object}]
53
+ end
54
+ end
55
+ end
56
+ end
@@ -0,0 +1,16 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Notiflows
4
+ module Models
5
+ module Topics
6
+ # @see Notiflows::Resources::Topics::Subscriptions#subscribe_bulk
7
+ class SubscriptionSubscribeBulkParams < Notiflows::Models::Topics::BulkSubscribeRequest
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 Topics
6
+ # @see Notiflows::Resources::Topics::Subscriptions#unsubscribe_bulk
7
+ class SubscriptionUnsubscribeBulkParams < Notiflows::Models::Topics::BulkSubscribeRequest
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,111 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Notiflows
4
+ module Models
5
+ # @see Notiflows::Resources::Users#retrieve
6
+ class User < Notiflows::Internal::Type::BaseModel
7
+ # @!attribute id
8
+ # Internal Notiflows user ID (UUIDv7)
9
+ #
10
+ # @return [String]
11
+ required :id, String
12
+
13
+ # @!attribute created_at
14
+ # When the user was created (ISO 8601)
15
+ #
16
+ # @return [Time]
17
+ required :created_at, Time
18
+
19
+ # @!attribute external_id
20
+ # Your system's unique identifier for this user
21
+ #
22
+ # @return [String]
23
+ required :external_id, String
24
+
25
+ # @!attribute updated_at
26
+ # When the user was last updated (ISO 8601)
27
+ #
28
+ # @return [Time]
29
+ required :updated_at, Time
30
+
31
+ # @!attribute avatar
32
+ # URL to user's avatar image (must be https://)
33
+ #
34
+ # @return [String, nil]
35
+ optional :avatar, String, nil?: true
36
+
37
+ # @!attribute custom_fields
38
+ # Arbitrary JSON object for additional user attributes. Accessible in templates as
39
+ # `recipient.custom_fields.*`
40
+ #
41
+ # @return [Object, nil]
42
+ optional :custom_fields, Notiflows::Internal::Type::Unknown, nil?: true
43
+
44
+ # @!attribute email
45
+ # User's email address for email notifications
46
+ #
47
+ # @return [String, nil]
48
+ optional :email, String, nil?: true
49
+
50
+ # @!attribute first_name
51
+ # User's first name for personalization
52
+ #
53
+ # @return [String, nil]
54
+ optional :first_name, String, nil?: true
55
+
56
+ # @!attribute last_name
57
+ # User's last name for personalization
58
+ #
59
+ # @return [String, nil]
60
+ optional :last_name, String, nil?: true
61
+
62
+ # @!attribute locale
63
+ # BCP 47 locale code for localized notifications
64
+ #
65
+ # @return [String, nil]
66
+ optional :locale, String, nil?: true
67
+
68
+ # @!attribute phone
69
+ # User's phone number in E.164 format for SMS notifications
70
+ #
71
+ # @return [String, nil]
72
+ optional :phone, String, nil?: true
73
+
74
+ # @!attribute timezone
75
+ # IANA timezone for time-sensitive notifications
76
+ #
77
+ # @return [String, nil]
78
+ optional :timezone, String, nil?: true
79
+
80
+ # @!method initialize(id:, created_at:, external_id:, updated_at:, avatar: nil, custom_fields: nil, email: nil, first_name: nil, last_name: nil, locale: nil, phone: nil, timezone: nil)
81
+ # Some parameter documentations has been truncated, see {Notiflows::Models::User}
82
+ # for more details.
83
+ #
84
+ # A user (recipient) in your project
85
+ #
86
+ # @param id [String] Internal Notiflows user ID (UUIDv7)
87
+ #
88
+ # @param created_at [Time] When the user was created (ISO 8601)
89
+ #
90
+ # @param external_id [String] Your system's unique identifier for this user
91
+ #
92
+ # @param updated_at [Time] When the user was last updated (ISO 8601)
93
+ #
94
+ # @param avatar [String, nil] URL to user's avatar image (must be https://)
95
+ #
96
+ # @param custom_fields [Object, nil] Arbitrary JSON object for additional user attributes. Accessible in templates as
97
+ #
98
+ # @param email [String, nil] User's email address for email notifications
99
+ #
100
+ # @param first_name [String, nil] User's first name for personalization
101
+ #
102
+ # @param last_name [String, nil] User's last name for personalization
103
+ #
104
+ # @param locale [String, nil] BCP 47 locale code for localized notifications
105
+ #
106
+ # @param phone [String, nil] User's phone number in E.164 format for SMS notifications
107
+ #
108
+ # @param timezone [String, nil] IANA timezone for time-sensitive notifications
109
+ end
110
+ end
111
+ end
@@ -0,0 +1,14 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Notiflows
4
+ module Models
5
+ # @see Notiflows::Resources::Users#delete
6
+ class UserDeleteParams < Notiflows::Internal::Type::BaseModel
7
+ extend Notiflows::Internal::Type::RequestParameters::Converter
8
+ include Notiflows::Internal::Type::RequestParameters
9
+
10
+ # @!method initialize(request_options: {})
11
+ # @param request_options [Notiflows::RequestOptions, Hash{Symbol=>Object}]
12
+ end
13
+ end
14
+ end
@@ -0,0 +1,54 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Notiflows
4
+ module Models
5
+ # @see Notiflows::Resources::Users#list
6
+ class UserListParams < Notiflows::Internal::Type::BaseModel
7
+ extend Notiflows::Internal::Type::RequestParameters::Converter
8
+ include Notiflows::Internal::Type::RequestParameters
9
+
10
+ # @!attribute after
11
+ # Cursor for fetching the next page
12
+ #
13
+ # @return [String, nil]
14
+ optional :after, String
15
+
16
+ # @!attribute before
17
+ # Cursor for fetching the previous page
18
+ #
19
+ # @return [String, nil]
20
+ optional :before, String
21
+
22
+ # @!attribute created_after
23
+ # Filter users created after this datetime (ISO 8601)
24
+ #
25
+ # @return [String, nil]
26
+ optional :created_after, String
27
+
28
+ # @!attribute created_before
29
+ # Filter users created before this datetime (ISO 8601)
30
+ #
31
+ # @return [String, nil]
32
+ optional :created_before, String
33
+
34
+ # @!attribute limit
35
+ # Number of items per page (default: 25, max: 1000)
36
+ #
37
+ # @return [Integer, nil]
38
+ optional :limit, Integer
39
+
40
+ # @!method initialize(after: nil, before: nil, created_after: nil, created_before: nil, limit: nil, request_options: {})
41
+ # @param after [String] Cursor for fetching the next page
42
+ #
43
+ # @param before [String] Cursor for fetching the previous page
44
+ #
45
+ # @param created_after [String] Filter users created after this datetime (ISO 8601)
46
+ #
47
+ # @param created_before [String] Filter users created before this datetime (ISO 8601)
48
+ #
49
+ # @param limit [Integer] Number of items per page (default: 25, max: 1000)
50
+ #
51
+ # @param request_options [Notiflows::RequestOptions, Hash{Symbol=>Object}]
52
+ end
53
+ end
54
+ end
@@ -0,0 +1,14 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Notiflows
4
+ module Models
5
+ # @see Notiflows::Resources::Users#retrieve
6
+ class UserRetrieveParams < Notiflows::Internal::Type::BaseModel
7
+ extend Notiflows::Internal::Type::RequestParameters::Converter
8
+ include Notiflows::Internal::Type::RequestParameters
9
+
10
+ # @!method initialize(request_options: {})
11
+ # @param request_options [Notiflows::RequestOptions, Hash{Symbol=>Object}]
12
+ end
13
+ end
14
+ end