sentdm 0.3.1 → 0.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (214) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +8 -0
  3. data/README.md +9 -9
  4. data/lib/sentdm/client.rb +0 -1
  5. data/lib/sentdm/models/api_meta.rb +1 -9
  6. data/lib/sentdm/models/brand_data.rb +235 -198
  7. data/lib/sentdm/models/brand_with_kyc.rb +249 -214
  8. data/lib/sentdm/models/brands/api_response_tcr_campaign_with_use_cases.rb +0 -1
  9. data/lib/sentdm/models/contact_create_params.rb +13 -6
  10. data/lib/sentdm/models/contact_delete_params.rb +8 -1
  11. data/lib/sentdm/models/contact_list_params.rb +10 -2
  12. data/lib/sentdm/models/contact_retrieve_params.rb +7 -1
  13. data/lib/sentdm/models/contact_update_params.rb +13 -6
  14. data/lib/sentdm/models/me_retrieve_params.rb +7 -1
  15. data/lib/sentdm/models/me_retrieve_response.rb +152 -7
  16. data/lib/sentdm/models/message_retrieve_activities_params.rb +7 -1
  17. data/lib/sentdm/models/message_retrieve_activities_response.rb +19 -5
  18. data/lib/sentdm/models/message_retrieve_status_params.rb +7 -1
  19. data/lib/sentdm/models/message_retrieve_status_response.rb +8 -1
  20. data/lib/sentdm/models/message_send_params.rb +17 -10
  21. data/lib/sentdm/models/mutation_request.rb +6 -6
  22. data/lib/sentdm/models/profile_complete_params.rb +13 -6
  23. data/lib/sentdm/models/profile_create_params.rb +192 -10
  24. data/lib/sentdm/models/profile_delete_params.rb +18 -18
  25. data/lib/sentdm/models/profile_detail.rb +144 -95
  26. data/lib/sentdm/models/profile_list_params.rb +7 -1
  27. data/lib/sentdm/models/profile_retrieve_params.rb +7 -1
  28. data/lib/sentdm/models/profile_update_params.rb +142 -22
  29. data/lib/sentdm/models/template_create_params.rb +17 -10
  30. data/lib/sentdm/models/template_delete_params.rb +13 -6
  31. data/lib/sentdm/models/template_list_params.rb +18 -2
  32. data/lib/sentdm/models/template_retrieve_params.rb +7 -1
  33. data/lib/sentdm/models/template_update_params.rb +17 -10
  34. data/lib/sentdm/models/template_variable.rb +7 -1
  35. data/lib/sentdm/models/user_invite_params.rb +13 -6
  36. data/lib/sentdm/models/user_list_params.rb +7 -1
  37. data/lib/sentdm/models/user_remove_params.rb +17 -17
  38. data/lib/sentdm/models/user_retrieve_params.rb +7 -1
  39. data/lib/sentdm/models/user_update_role_params.rb +15 -16
  40. data/lib/sentdm/models/webhook_create_params.rb +13 -6
  41. data/lib/sentdm/models/webhook_delete_params.rb +7 -1
  42. data/lib/sentdm/models/webhook_list_event_types_params.rb +7 -1
  43. data/lib/sentdm/models/webhook_list_events_params.rb +7 -1
  44. data/lib/sentdm/models/webhook_list_params.rb +7 -1
  45. data/lib/sentdm/models/webhook_retrieve_params.rb +7 -1
  46. data/lib/sentdm/models/webhook_rotate_secret_params.rb +7 -1
  47. data/lib/sentdm/models/webhook_test_params.rb +13 -6
  48. data/lib/sentdm/models/webhook_toggle_status_params.rb +13 -6
  49. data/lib/sentdm/models/webhook_update_params.rb +13 -6
  50. data/lib/sentdm/models.rb +0 -12
  51. data/lib/sentdm/resources/brands/campaigns.rb +0 -129
  52. data/lib/sentdm/resources/brands.rb +0 -112
  53. data/lib/sentdm/resources/contacts.rb +43 -20
  54. data/lib/sentdm/resources/lookup.rb +0 -21
  55. data/lib/sentdm/resources/me.rb +24 -5
  56. data/lib/sentdm/resources/messages.rb +24 -8
  57. data/lib/sentdm/resources/profiles.rb +116 -32
  58. data/lib/sentdm/resources/templates.rb +47 -24
  59. data/lib/sentdm/resources/users.rb +40 -23
  60. data/lib/sentdm/resources/webhooks.rb +92 -34
  61. data/lib/sentdm/version.rb +1 -1
  62. data/lib/sentdm.rb +1 -14
  63. data/rbi/sentdm/client.rbi +0 -1
  64. data/rbi/sentdm/models/api_meta.rbi +4 -18
  65. data/rbi/sentdm/models/brand_data.rbi +326 -203
  66. data/rbi/sentdm/models/brand_with_kyc.rbi +334 -216
  67. data/rbi/sentdm/models/brands/tcr_campaign_with_use_cases.rbi +6 -8
  68. data/rbi/sentdm/models/contact_create_params.rbi +19 -10
  69. data/rbi/sentdm/models/contact_delete_params.rbi +9 -0
  70. data/rbi/sentdm/models/contact_list_params.rbi +11 -0
  71. data/rbi/sentdm/models/contact_retrieve_params.rbi +13 -2
  72. data/rbi/sentdm/models/contact_update_params.rbi +19 -10
  73. data/rbi/sentdm/models/me_retrieve_params.rbi +16 -5
  74. data/rbi/sentdm/models/me_retrieve_response.rbi +316 -16
  75. data/rbi/sentdm/models/message_retrieve_activities_params.rbi +13 -2
  76. data/rbi/sentdm/models/message_retrieve_activities_response.rbi +18 -6
  77. data/rbi/sentdm/models/message_retrieve_status_params.rbi +13 -2
  78. data/rbi/sentdm/models/message_retrieve_status_response.rbi +6 -0
  79. data/rbi/sentdm/models/message_send_params.rbi +22 -13
  80. data/rbi/sentdm/models/mutation_request.rbi +10 -10
  81. data/rbi/sentdm/models/profile_complete_params.rbi +19 -10
  82. data/rbi/sentdm/models/profile_create_params.rbi +323 -15
  83. data/rbi/sentdm/models/profile_delete_params.rbi +36 -24
  84. data/rbi/sentdm/models/profile_detail.rbi +184 -128
  85. data/rbi/sentdm/models/profile_list_params.rbi +16 -5
  86. data/rbi/sentdm/models/profile_retrieve_params.rbi +13 -2
  87. data/rbi/sentdm/models/profile_update_params.rbi +231 -30
  88. data/rbi/sentdm/models/template_create_params.rbi +22 -13
  89. data/rbi/sentdm/models/template_delete_params.rbi +19 -10
  90. data/rbi/sentdm/models/template_list_params.rbi +19 -0
  91. data/rbi/sentdm/models/template_retrieve_params.rbi +13 -2
  92. data/rbi/sentdm/models/template_update_params.rbi +22 -13
  93. data/rbi/sentdm/models/template_variable.rbi +6 -0
  94. data/rbi/sentdm/models/user_invite_params.rbi +19 -10
  95. data/rbi/sentdm/models/user_list_params.rbi +16 -5
  96. data/rbi/sentdm/models/user_remove_params.rbi +35 -23
  97. data/rbi/sentdm/models/user_retrieve_params.rbi +13 -2
  98. data/rbi/sentdm/models/user_update_role_params.rbi +23 -25
  99. data/rbi/sentdm/models/webhook_create_params.rbi +19 -10
  100. data/rbi/sentdm/models/webhook_delete_params.rbi +13 -2
  101. data/rbi/sentdm/models/webhook_list_event_types_params.rbi +16 -5
  102. data/rbi/sentdm/models/webhook_list_events_params.rbi +16 -1
  103. data/rbi/sentdm/models/webhook_list_params.rbi +9 -0
  104. data/rbi/sentdm/models/webhook_retrieve_params.rbi +13 -2
  105. data/rbi/sentdm/models/webhook_rotate_secret_params.rbi +15 -1
  106. data/rbi/sentdm/models/webhook_test_params.rbi +19 -10
  107. data/rbi/sentdm/models/webhook_toggle_status_params.rbi +19 -10
  108. data/rbi/sentdm/models/webhook_update_params.rbi +19 -10
  109. data/rbi/sentdm/models.rbi +0 -12
  110. data/rbi/sentdm/resources/brands/campaigns.rbi +0 -95
  111. data/rbi/sentdm/resources/brands.rbi +0 -80
  112. data/rbi/sentdm/resources/contacts.rbi +37 -12
  113. data/rbi/sentdm/resources/lookup.rbi +0 -12
  114. data/rbi/sentdm/resources/me.rbi +25 -7
  115. data/rbi/sentdm/resources/messages.rbi +17 -4
  116. data/rbi/sentdm/resources/profiles.rbi +178 -38
  117. data/rbi/sentdm/resources/templates.rbi +47 -19
  118. data/rbi/sentdm/resources/users.rbi +47 -25
  119. data/rbi/sentdm/resources/webhooks.rbi +92 -20
  120. data/sig/sentdm/models/api_meta.rbs +2 -16
  121. data/sig/sentdm/models/brand_data.rbs +188 -142
  122. data/sig/sentdm/models/brand_with_kyc.rbs +184 -133
  123. data/sig/sentdm/models/contact_create_params.rbs +16 -5
  124. data/sig/sentdm/models/contact_delete_params.rbs +11 -1
  125. data/sig/sentdm/models/contact_list_params.rbs +8 -1
  126. data/sig/sentdm/models/contact_retrieve_params.rbs +12 -2
  127. data/sig/sentdm/models/contact_update_params.rbs +13 -6
  128. data/sig/sentdm/models/me_retrieve_params.rbs +14 -3
  129. data/sig/sentdm/models/me_retrieve_response.rbs +134 -7
  130. data/sig/sentdm/models/message_retrieve_activities_params.rbs +12 -2
  131. data/sig/sentdm/models/message_retrieve_activities_response.rbs +9 -4
  132. data/sig/sentdm/models/message_retrieve_status_params.rbs +12 -2
  133. data/sig/sentdm/models/message_retrieve_status_response.rbs +5 -0
  134. data/sig/sentdm/models/message_send_params.rbs +15 -8
  135. data/sig/sentdm/models/mutation_request.rbs +5 -5
  136. data/sig/sentdm/models/profile_complete_params.rbs +13 -6
  137. data/sig/sentdm/models/profile_create_params.rbs +111 -7
  138. data/sig/sentdm/models/profile_delete_params.rbs +23 -13
  139. data/sig/sentdm/models/profile_detail.rbs +105 -84
  140. data/sig/sentdm/models/profile_list_params.rbs +14 -3
  141. data/sig/sentdm/models/profile_retrieve_params.rbs +8 -1
  142. data/sig/sentdm/models/profile_update_params.rbs +86 -17
  143. data/sig/sentdm/models/template_create_params.rbs +15 -8
  144. data/sig/sentdm/models/template_delete_params.rbs +16 -5
  145. data/sig/sentdm/models/template_list_params.rbs +13 -1
  146. data/sig/sentdm/models/template_retrieve_params.rbs +12 -2
  147. data/sig/sentdm/models/template_update_params.rbs +15 -8
  148. data/sig/sentdm/models/template_variable.rbs +5 -0
  149. data/sig/sentdm/models/user_invite_params.rbs +13 -6
  150. data/sig/sentdm/models/user_list_params.rbs +14 -3
  151. data/sig/sentdm/models/user_remove_params.rbs +23 -13
  152. data/sig/sentdm/models/user_retrieve_params.rbs +8 -1
  153. data/sig/sentdm/models/user_update_role_params.rbs +17 -17
  154. data/sig/sentdm/models/webhook_create_params.rbs +13 -6
  155. data/sig/sentdm/models/webhook_delete_params.rbs +12 -2
  156. data/sig/sentdm/models/webhook_list_event_types_params.rbs +13 -3
  157. data/sig/sentdm/models/webhook_list_events_params.rbs +13 -1
  158. data/sig/sentdm/models/webhook_list_params.rbs +13 -1
  159. data/sig/sentdm/models/webhook_retrieve_params.rbs +12 -2
  160. data/sig/sentdm/models/webhook_rotate_secret_params.rbs +8 -1
  161. data/sig/sentdm/models/webhook_test_params.rbs +13 -6
  162. data/sig/sentdm/models/webhook_toggle_status_params.rbs +17 -5
  163. data/sig/sentdm/models/webhook_update_params.rbs +13 -6
  164. data/sig/sentdm/models.rbs +0 -12
  165. data/sig/sentdm/resources/brands/campaigns.rbs +0 -29
  166. data/sig/sentdm/resources/brands.rbs +0 -25
  167. data/sig/sentdm/resources/contacts.rbs +7 -2
  168. data/sig/sentdm/resources/lookup.rbs +0 -5
  169. data/sig/sentdm/resources/me.rbs +1 -0
  170. data/sig/sentdm/resources/messages.rbs +4 -1
  171. data/sig/sentdm/resources/profiles.rbs +19 -8
  172. data/sig/sentdm/resources/templates.rbs +9 -3
  173. data/sig/sentdm/resources/users.rbs +10 -7
  174. data/sig/sentdm/resources/webhooks.rbs +18 -5
  175. metadata +1 -40
  176. data/lib/sentdm/models/api_response_brand_with_kyc.rb +0 -43
  177. data/lib/sentdm/models/brand_create_params.rb +0 -41
  178. data/lib/sentdm/models/brand_delete_params.rb +0 -34
  179. data/lib/sentdm/models/brand_list_params.rb +0 -14
  180. data/lib/sentdm/models/brand_list_response.rb +0 -43
  181. data/lib/sentdm/models/brand_update_params.rb +0 -48
  182. data/lib/sentdm/models/brands/campaign_create_params.rb +0 -50
  183. data/lib/sentdm/models/brands/campaign_delete_params.rb +0 -43
  184. data/lib/sentdm/models/brands/campaign_list_params.rb +0 -22
  185. data/lib/sentdm/models/brands/campaign_list_response.rb +0 -47
  186. data/lib/sentdm/models/brands/campaign_update_params.rb +0 -57
  187. data/lib/sentdm/models/lookup_retrieve_phone_info_params.rb +0 -20
  188. data/lib/sentdm/models/lookup_retrieve_phone_info_response.rb +0 -104
  189. data/rbi/sentdm/models/api_response_brand_with_kyc.rbi +0 -74
  190. data/rbi/sentdm/models/brand_create_params.rbi +0 -68
  191. data/rbi/sentdm/models/brand_delete_params.rbi +0 -68
  192. data/rbi/sentdm/models/brand_list_params.rbi +0 -27
  193. data/rbi/sentdm/models/brand_list_response.rbi +0 -71
  194. data/rbi/sentdm/models/brand_update_params.rbi +0 -74
  195. data/rbi/sentdm/models/brands/campaign_create_params.rbi +0 -79
  196. data/rbi/sentdm/models/brands/campaign_delete_params.rbi +0 -84
  197. data/rbi/sentdm/models/brands/campaign_list_params.rbi +0 -37
  198. data/rbi/sentdm/models/brands/campaign_list_response.rbi +0 -82
  199. data/rbi/sentdm/models/brands/campaign_update_params.rbi +0 -85
  200. data/rbi/sentdm/models/lookup_retrieve_phone_info_params.rbi +0 -38
  201. data/rbi/sentdm/models/lookup_retrieve_phone_info_response.rbi +0 -183
  202. data/sig/sentdm/models/api_response_brand_with_kyc.rbs +0 -39
  203. data/sig/sentdm/models/brand_create_params.rbs +0 -36
  204. data/sig/sentdm/models/brand_delete_params.rbs +0 -36
  205. data/sig/sentdm/models/brand_list_params.rbs +0 -14
  206. data/sig/sentdm/models/brand_list_response.rbs +0 -39
  207. data/sig/sentdm/models/brand_update_params.rbs +0 -45
  208. data/sig/sentdm/models/brands/campaign_create_params.rbs +0 -47
  209. data/sig/sentdm/models/brands/campaign_delete_params.rbs +0 -46
  210. data/sig/sentdm/models/brands/campaign_list_params.rbs +0 -25
  211. data/sig/sentdm/models/brands/campaign_list_response.rbs +0 -41
  212. data/sig/sentdm/models/brands/campaign_update_params.rbs +0 -52
  213. data/sig/sentdm/models/lookup_retrieve_phone_info_params.rbs +0 -23
  214. data/sig/sentdm/models/lookup_retrieve_phone_info_response.rbs +0 -102
@@ -11,7 +11,7 @@ module Sentdm
11
11
  # template can be submitted for review immediately or saved as draft for later
12
12
  # submission.
13
13
  #
14
- # @overload create(category: nil, creation_source: nil, definition: nil, language: nil, submit_for_review: nil, test_mode: nil, idempotency_key: nil, request_options: {})
14
+ # @overload create(category: nil, creation_source: nil, definition: nil, language: nil, sandbox: nil, submit_for_review: nil, idempotency_key: nil, x_profile_id: nil, request_options: {})
15
15
  #
16
16
  # @param category [String, nil] Body param: Template category: MARKETING, UTILITY, AUTHENTICATION (optional, aut
17
17
  #
@@ -21,12 +21,14 @@ module Sentdm
21
21
  #
22
22
  # @param language [String, nil] Body param: Template language code (e.g., en_US) (optional, auto-detected if not
23
23
  #
24
- # @param submit_for_review [Boolean] Body param: Whether to submit the template for review after creation (default: f
24
+ # @param sandbox [Boolean] Body param: Sandbox flag - when true, the operation is simulated without side ef
25
25
  #
26
- # @param test_mode [Boolean] Body param: Test mode flag - when true, the operation is simulated without side
26
+ # @param submit_for_review [Boolean] Body param: Whether to submit the template for review after creation (default: f
27
27
  #
28
28
  # @param idempotency_key [String] Header param: Unique key to ensure idempotent request processing. Must be 1-255
29
29
  #
30
+ # @param x_profile_id [String] Header param: Profile UUID to scope the request to a child profile. Only organiz
31
+ #
30
32
  # @param request_options [Sentdm::RequestOptions, Hash{Symbol=>Object}, nil]
31
33
  #
32
34
  # @return [Sentdm::Models::APIResponseTemplate]
@@ -34,7 +36,7 @@ module Sentdm
34
36
  # @see Sentdm::Models::TemplateCreateParams
35
37
  def create(params = {})
36
38
  parsed, options = Sentdm::TemplateCreateParams.dump_request(params)
37
- header_params = {idempotency_key: "idempotency-key"}
39
+ header_params = {idempotency_key: "idempotency-key", x_profile_id: "x-profile-id"}
38
40
  @client.request(
39
41
  method: :post,
40
42
  path: "v3/templates",
@@ -45,24 +47,31 @@ module Sentdm
45
47
  )
46
48
  end
47
49
 
50
+ # Some parameter documentations has been truncated, see
51
+ # {Sentdm::Models::TemplateRetrieveParams} for more details.
52
+ #
48
53
  # Retrieves a specific template by its ID. Returns template details including
49
54
  # name, category, language, status, and definition.
50
55
  #
51
- # @overload retrieve(id, request_options: {})
56
+ # @overload retrieve(id, x_profile_id: nil, request_options: {})
52
57
  #
53
58
  # @param id [String] Template ID from route parameter
54
59
  #
60
+ # @param x_profile_id [String] Profile UUID to scope the request to a child profile. Only organization API keys
61
+ #
55
62
  # @param request_options [Sentdm::RequestOptions, Hash{Symbol=>Object}, nil]
56
63
  #
57
64
  # @return [Sentdm::Models::APIResponseTemplate]
58
65
  #
59
66
  # @see Sentdm::Models::TemplateRetrieveParams
60
67
  def retrieve(id, params = {})
68
+ parsed, options = Sentdm::TemplateRetrieveParams.dump_request(params)
61
69
  @client.request(
62
70
  method: :get,
63
71
  path: ["v3/templates/%1$s", id],
72
+ headers: parsed.transform_keys(x_profile_id: "x-profile-id"),
64
73
  model: Sentdm::APIResponseTemplate,
65
- options: params[:request_options]
74
+ options: options
66
75
  )
67
76
  end
68
77
 
@@ -72,7 +81,7 @@ module Sentdm
72
81
  # Updates an existing template's name, category, language, definition, or submits
73
82
  # it for review.
74
83
  #
75
- # @overload update(id, category: nil, definition: nil, language: nil, name: nil, submit_for_review: nil, test_mode: nil, idempotency_key: nil, request_options: {})
84
+ # @overload update(id, category: nil, definition: nil, language: nil, name: nil, sandbox: nil, submit_for_review: nil, idempotency_key: nil, x_profile_id: nil, request_options: {})
76
85
  #
77
86
  # @param id [String] Path param: Template ID from route parameter
78
87
  #
@@ -84,12 +93,14 @@ module Sentdm
84
93
  #
85
94
  # @param name [String, nil] Body param: Template display name
86
95
  #
87
- # @param submit_for_review [Boolean] Body param: Whether to submit the template for review after updating (default: f
96
+ # @param sandbox [Boolean] Body param: Sandbox flag - when true, the operation is simulated without side ef
88
97
  #
89
- # @param test_mode [Boolean] Body param: Test mode flag - when true, the operation is simulated without side
98
+ # @param submit_for_review [Boolean] Body param: Whether to submit the template for review after updating (default: f
90
99
  #
91
100
  # @param idempotency_key [String] Header param: Unique key to ensure idempotent request processing. Must be 1-255
92
101
  #
102
+ # @param x_profile_id [String] Header param: Profile UUID to scope the request to a child profile. Only organiz
103
+ #
93
104
  # @param request_options [Sentdm::RequestOptions, Hash{Symbol=>Object}, nil]
94
105
  #
95
106
  # @return [Sentdm::Models::APIResponseTemplate]
@@ -97,7 +108,7 @@ module Sentdm
97
108
  # @see Sentdm::Models::TemplateUpdateParams
98
109
  def update(id, params = {})
99
110
  parsed, options = Sentdm::TemplateUpdateParams.dump_request(params)
100
- header_params = {idempotency_key: "idempotency-key"}
111
+ header_params = {idempotency_key: "idempotency-key", x_profile_id: "x-profile-id"}
101
112
  @client.request(
102
113
  method: :put,
103
114
  path: ["v3/templates/%1$s", id],
@@ -108,20 +119,27 @@ module Sentdm
108
119
  )
109
120
  end
110
121
 
122
+ # Some parameter documentations has been truncated, see
123
+ # {Sentdm::Models::TemplateListParams} for more details.
124
+ #
111
125
  # Retrieves a paginated list of message templates for the authenticated customer.
112
126
  # Supports filtering by status, category, and search term.
113
127
  #
114
- # @overload list(page:, page_size:, category: nil, search: nil, status: nil, request_options: {})
128
+ # @overload list(page:, page_size:, category: nil, is_welcome_playground: nil, search: nil, status: nil, x_profile_id: nil, request_options: {})
129
+ #
130
+ # @param page [Integer] Query param: Page number (1-indexed)
115
131
  #
116
- # @param page [Integer] Page number (1-indexed)
132
+ # @param page_size [Integer] Query param: Number of items per page
117
133
  #
118
- # @param page_size [Integer]
134
+ # @param category [String, nil] Query param: Optional category filter: MARKETING, UTILITY, AUTHENTICATION
119
135
  #
120
- # @param category [String, nil] Optional category filter: MARKETING, UTILITY, AUTHENTICATION
136
+ # @param is_welcome_playground [Boolean, nil] Query param: Optional filter by welcome playground flag
121
137
  #
122
- # @param search [String, nil] Optional search term for filtering templates
138
+ # @param search [String, nil] Query param: Optional search term for filtering templates
123
139
  #
124
- # @param status [String, nil] Optional status filter: APPROVED, PENDING, REJECTED
140
+ # @param status [String, nil] Query param: Optional status filter: APPROVED, PENDING, REJECTED
141
+ #
142
+ # @param x_profile_id [String] Header param: Profile UUID to scope the request to a child profile. Only organiz
125
143
  #
126
144
  # @param request_options [Sentdm::RequestOptions, Hash{Symbol=>Object}, nil]
127
145
  #
@@ -129,12 +147,14 @@ module Sentdm
129
147
  #
130
148
  # @see Sentdm::Models::TemplateListParams
131
149
  def list(params)
150
+ query_params = [:page, :page_size, :category, :is_welcome_playground, :search, :status]
132
151
  parsed, options = Sentdm::TemplateListParams.dump_request(params)
133
- query = Sentdm::Internal::Util.encode_query_params(parsed)
152
+ query = Sentdm::Internal::Util.encode_query_params(parsed.slice(*query_params))
134
153
  @client.request(
135
154
  method: :get,
136
155
  path: "v3/templates",
137
- query: query.transform_keys(page_size: "pageSize"),
156
+ query: query,
157
+ headers: parsed.except(*query_params).transform_keys(x_profile_id: "x-profile-id"),
138
158
  model: Sentdm::Models::TemplateListResponse,
139
159
  options: options
140
160
  )
@@ -146,13 +166,15 @@ module Sentdm
146
166
  # Deletes a template by ID. Optionally, you can also delete the template from
147
167
  # WhatsApp/Meta by setting delete_from_meta=true.
148
168
  #
149
- # @overload delete(id, delete_from_meta: nil, test_mode: nil, request_options: {})
169
+ # @overload delete(id, delete_from_meta: nil, sandbox: nil, x_profile_id: nil, request_options: {})
150
170
  #
151
- # @param id [String] Template ID from route parameter
171
+ # @param id [String] Path param: Template ID from route parameter
172
+ #
173
+ # @param delete_from_meta [Boolean, nil] Body param: Whether to also delete the template from WhatsApp/Meta (optional, de
152
174
  #
153
- # @param delete_from_meta [Boolean, nil] Whether to also delete the template from WhatsApp/Meta (optional, defaults to fa
175
+ # @param sandbox [Boolean] Body param: Sandbox flag - when true, the operation is simulated without side ef
154
176
  #
155
- # @param test_mode [Boolean] Test mode flag - when true, the operation is simulated without side effects
177
+ # @param x_profile_id [String] Header param: Profile UUID to scope the request to a child profile. Only organiz
156
178
  #
157
179
  # @param request_options [Sentdm::RequestOptions, Hash{Symbol=>Object}, nil]
158
180
  #
@@ -161,11 +183,12 @@ module Sentdm
161
183
  # @see Sentdm::Models::TemplateDeleteParams
162
184
  def delete(id, params = {})
163
185
  parsed, options = Sentdm::TemplateDeleteParams.dump_request(params)
186
+ header_params = {x_profile_id: "x-profile-id"}
164
187
  @client.request(
165
188
  method: :delete,
166
189
  path: ["v3/templates/%1$s", id],
167
- headers: {"content-type" => "*/*"},
168
- body: parsed,
190
+ headers: parsed.slice(*header_params.keys).transform_keys(header_params),
191
+ body: parsed.except(*header_params.keys),
169
192
  model: NilClass,
170
193
  options: options
171
194
  )
@@ -4,31 +4,44 @@ module Sentdm
4
4
  module Resources
5
5
  # Invite, update, and manage organization users and roles
6
6
  class Users
7
+ # Some parameter documentations has been truncated, see
8
+ # {Sentdm::Models::UserRetrieveParams} for more details.
9
+ #
7
10
  # Retrieves detailed information about a specific user in an organization or
8
11
  # profile. Requires developer role or higher.
9
12
  #
10
- # @overload retrieve(user_id, request_options: {})
13
+ # @overload retrieve(user_id, x_profile_id: nil, request_options: {})
11
14
  #
12
15
  # @param user_id [String]
16
+ #
17
+ # @param x_profile_id [String] Profile UUID to scope the request to a child profile. Only organization API keys
18
+ #
13
19
  # @param request_options [Sentdm::RequestOptions, Hash{Symbol=>Object}, nil]
14
20
  #
15
21
  # @return [Sentdm::Models::APIResponseOfUser]
16
22
  #
17
23
  # @see Sentdm::Models::UserRetrieveParams
18
24
  def retrieve(user_id, params = {})
25
+ parsed, options = Sentdm::UserRetrieveParams.dump_request(params)
19
26
  @client.request(
20
27
  method: :get,
21
28
  path: ["v3/users/%1$s", user_id],
29
+ headers: parsed.transform_keys(x_profile_id: "x-profile-id"),
22
30
  model: Sentdm::APIResponseOfUser,
23
- options: params[:request_options]
31
+ options: options
24
32
  )
25
33
  end
26
34
 
35
+ # Some parameter documentations has been truncated, see
36
+ # {Sentdm::Models::UserListParams} for more details.
37
+ #
27
38
  # Retrieves all users who have access to the organization or profile identified by
28
39
  # the API key, including their roles and status. Shows invited users (pending
29
40
  # acceptance) and active users. Requires developer role or higher.
30
41
  #
31
- # @overload list(request_options: {})
42
+ # @overload list(x_profile_id: nil, request_options: {})
43
+ #
44
+ # @param x_profile_id [String] Profile UUID to scope the request to a child profile. Only organization API keys
32
45
  #
33
46
  # @param request_options [Sentdm::RequestOptions, Hash{Symbol=>Object}, nil]
34
47
  #
@@ -36,11 +49,13 @@ module Sentdm
36
49
  #
37
50
  # @see Sentdm::Models::UserListParams
38
51
  def list(params = {})
52
+ parsed, options = Sentdm::UserListParams.dump_request(params)
39
53
  @client.request(
40
54
  method: :get,
41
55
  path: "v3/users",
56
+ headers: parsed.transform_keys(x_profile_id: "x-profile-id"),
42
57
  model: Sentdm::Models::UserListResponse,
43
- options: params[:request_options]
58
+ options: options
44
59
  )
45
60
  end
46
61
 
@@ -51,7 +66,7 @@ module Sentdm
51
66
  # specific role. Requires admin role. The user will receive an invitation email
52
67
  # with a token to accept. Invitation tokens expire after 7 days.
53
68
  #
54
- # @overload invite(email: nil, name: nil, role: nil, test_mode: nil, idempotency_key: nil, request_options: {})
69
+ # @overload invite(email: nil, name: nil, role: nil, sandbox: nil, idempotency_key: nil, x_profile_id: nil, request_options: {})
55
70
  #
56
71
  # @param email [String] Body param: User email address (required)
57
72
  #
@@ -59,10 +74,12 @@ module Sentdm
59
74
  #
60
75
  # @param role [String] Body param: User role: admin, billing, or developer (required)
61
76
  #
62
- # @param test_mode [Boolean] Body param: Test mode flag - when true, the operation is simulated without side
77
+ # @param sandbox [Boolean] Body param: Sandbox flag - when true, the operation is simulated without side ef
63
78
  #
64
79
  # @param idempotency_key [String] Header param: Unique key to ensure idempotent request processing. Must be 1-255
65
80
  #
81
+ # @param x_profile_id [String] Header param: Profile UUID to scope the request to a child profile. Only organiz
82
+ #
66
83
  # @param request_options [Sentdm::RequestOptions, Hash{Symbol=>Object}, nil]
67
84
  #
68
85
  # @return [Sentdm::Models::APIResponseOfUser]
@@ -70,7 +87,7 @@ module Sentdm
70
87
  # @see Sentdm::Models::UserInviteParams
71
88
  def invite(params = {})
72
89
  parsed, options = Sentdm::UserInviteParams.dump_request(params)
73
- header_params = {idempotency_key: "idempotency-key"}
90
+ header_params = {idempotency_key: "idempotency-key", x_profile_id: "x-profile-id"}
74
91
  @client.request(
75
92
  method: :post,
76
93
  path: "v3/users",
@@ -87,26 +104,26 @@ module Sentdm
87
104
  # Removes a user's access to an organization or profile. Requires admin role. You
88
105
  # cannot remove yourself or remove the last admin.
89
106
  #
90
- # @overload remove(path_user_id, test_mode: nil, body_user_id: nil, request_options: {})
107
+ # @overload remove(user_id, body:, x_profile_id: nil, request_options: {})
91
108
  #
92
- # @param path_user_id [String]
109
+ # @param user_id [String] Path param
93
110
  #
94
- # @param test_mode [Boolean] Test mode flag - when true, the operation is simulated without side effects
111
+ # @param body [Sentdm::Models::UserRemoveParams::Body] Body param: Request to remove a user from an organization
95
112
  #
96
- # @param body_user_id [String] User ID from route parameter
113
+ # @param x_profile_id [String] Header param: Profile UUID to scope the request to a child profile. Only organiz
97
114
  #
98
115
  # @param request_options [Sentdm::RequestOptions, Hash{Symbol=>Object}, nil]
99
116
  #
100
117
  # @return [nil]
101
118
  #
102
119
  # @see Sentdm::Models::UserRemoveParams
103
- def remove(path_user_id, params = {})
120
+ def remove(user_id, params)
104
121
  parsed, options = Sentdm::UserRemoveParams.dump_request(params)
105
122
  @client.request(
106
123
  method: :delete,
107
- path: ["v3/users/%1$s", path_user_id],
108
- headers: {"content-type" => "*/*"},
109
- body: parsed,
124
+ path: ["v3/users/%1$s", user_id],
125
+ headers: parsed.except(:body).transform_keys(x_profile_id: "x-profile-id"),
126
+ body: parsed[:body],
110
127
  model: NilClass,
111
128
  options: options
112
129
  )
@@ -118,29 +135,29 @@ module Sentdm
118
135
  # Updates a user's role in the organization or profile. Requires admin role. You
119
136
  # cannot change your own role or demote the last admin.
120
137
  #
121
- # @overload update_role(path_user_id, role: nil, test_mode: nil, body_user_id: nil, idempotency_key: nil, request_options: {})
138
+ # @overload update_role(user_id, role: nil, sandbox: nil, idempotency_key: nil, x_profile_id: nil, request_options: {})
122
139
  #
123
- # @param path_user_id [String] Path param
140
+ # @param user_id [String] Path param
124
141
  #
125
142
  # @param role [String] Body param: User role: admin, billing, or developer (required)
126
143
  #
127
- # @param test_mode [Boolean] Body param: Test mode flag - when true, the operation is simulated without side
128
- #
129
- # @param body_user_id [String] Body param: User ID from route parameter
144
+ # @param sandbox [Boolean] Body param: Sandbox flag - when true, the operation is simulated without side ef
130
145
  #
131
146
  # @param idempotency_key [String] Header param: Unique key to ensure idempotent request processing. Must be 1-255
132
147
  #
148
+ # @param x_profile_id [String] Header param: Profile UUID to scope the request to a child profile. Only organiz
149
+ #
133
150
  # @param request_options [Sentdm::RequestOptions, Hash{Symbol=>Object}, nil]
134
151
  #
135
152
  # @return [Sentdm::Models::APIResponseOfUser]
136
153
  #
137
154
  # @see Sentdm::Models::UserUpdateRoleParams
138
- def update_role(path_user_id, params = {})
155
+ def update_role(user_id, params = {})
139
156
  parsed, options = Sentdm::UserUpdateRoleParams.dump_request(params)
140
- header_params = {idempotency_key: "idempotency-key"}
157
+ header_params = {idempotency_key: "idempotency-key", x_profile_id: "x-profile-id"}
141
158
  @client.request(
142
159
  method: :patch,
143
- path: ["v3/users/%1$s", path_user_id],
160
+ path: ["v3/users/%1$s", user_id],
144
161
  headers: parsed.slice(*header_params.keys).transform_keys(header_params),
145
162
  body: parsed.except(*header_params.keys),
146
163
  model: Sentdm::APIResponseOfUser,